diff --git a/.gitignore b/.gitignore
index d16386367f7cd7dd3c1842c484239e9e82a25efc..88b3f2f47ba85c96fd5d1d4bb2950b3f8b8ebe96 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,5 @@
-build/
\ No newline at end of file
+build/
+Build/
+_skbuild/
+*.egg-info/
+dist/
diff --git a/.gitmodules b/.gitmodules
index 6b6dba47e7e9b6ea92e0257e456d9fb7dbb02868..65756464e24934c880adc097986b8bdc95b6e9a3 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -31,18 +31,21 @@
 [submodule "dep/clp"]
 	path = dep/clp
 	url = https://git.rwth-aachen.de/avt.svt/public/thirdparty/clp.git
-[submodule "dep/babbase"]
-	path = dep/babbase
-	url = https://git.rwth-aachen.de/avt.svt/public/babbase.git
-[submodule "dep/mcpp"]
-	path = dep/mcpp
-	url = https://git.rwth-aachen.de/avt.svt/public/thirdparty/mcpp.git
-[submodule "dep/libale"]
-	path = dep/libale
-	url = https://git.rwth-aachen.de/avt.svt/public/libale.git
 [submodule "dep/json"]
 	path = dep/json
 	url = https://git.rwth-aachen.de/avt.svt/public/thirdparty/json.git
+[submodule "dep/pybind11"]
+	path = dep/pybind11
+	url = https://github.com/pybind/pybind11
+[submodule "dep/babbase"]
+	path = dep/babbase
+	url = https://git.rwth-aachen.de/avt.svt/public/babbase.git
 [submodule "dep/melon"]
 	path = dep/melon
 	url = https://git.rwth-aachen.de/avt.svt/public/melon.git
+[submodule "dep/libale"]
+	path = dep/libale
+	url = https://git.rwth-aachen.de/avt.svt/public/libale.git
+[submodule "dep/mcpp"]
+	path = dep/mcpp
+	url = https://git.rwth-aachen.de/avt.svt/public/thirdparty/mcpp.git
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 94a2617837f8e384e6853fef8ee207fad7d40cf5..79e354526072c9077f82f9f40b722d21e7c72ad6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,88 +1,94 @@
-cmake_minimum_required(VERSION 3.8 FATAL_ERROR)
+cmake_minimum_required(VERSION 3.15)
 
 project(MAiNGO CXX)
 
+
 #--------------------------- Options --------------------------------
-set(MAiNGO_use_filib TRUE CACHE BOOL "Use filib++ as interval library (otherwise, the more basic interval library within MC++ will be used.")
-set(MAiNGO_build_parser TRUE CACHE BOOL "Build MAiNGO executable with parser (not compatible with Intel compiler due to missing C++17 features).")
 set(MAiNGO_build_standalone FALSE CACHE BOOL "Build MAiNGO as standalone solver with problem.h.")
-set(MAiNGO_build_melon TRUE CACHE BOOL "Build MAiNGO executable with the MeLOn toolbox (not compatible with Intel compiler due to missing C++17 features).")
-set(MAiNGO_use_mpi FALSE CACHE BOOL "Build parallel version of MAiNGO.")
+set(MAiNGO_build_parser TRUE CACHE BOOL "Build MAiNGO executable with parser (not compatible with Intel compiler due to missing C++17 features).")
+set(MAiNGO_build_python_interface FALSE CACHE BOOL "Build a Python extension module for calling MAiNGO from Python.")
 set(MAiNGO_build_test FALSE CACHE BOOL "Build MAiNGO test cases.")
-if(MAiNGO_build_test)
-    # The parser is required for the tests
-    set(MAiNGO_build_parser TRUE CACHE INTERNAL "Build MAiNGO executable with parser." FORCE)
-endif()
+set(MAiNGO_use_melon TRUE CACHE BOOL "Build MAiNGO executable with the MeLOn toolbox (not compatible with Intel compiler due to missing C++17 features).")
+set(MAiNGO_use_cplex TRUE CACHE BOOL "Use CPLEX if it is available on the system.")
+set(MAiNGO_use_knitro TRUE CACHE BOOL "Use KNITRO if it is available on the system.")
+set(MAiNGO_use_mpi FALSE CACHE BOOL "Build parallel version of MAiNGO.")
 
 
 #------------------------ MAiNGO library -----------------------------
-set(MAiNGO_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src)
-# Get all source files
-include(${MAiNGO_SOURCE_DIR}/MAiNGOSourceFiles.cmake)
-add_library(maingo-core STATIC
-    ${MAiNGO_SRC}
-)
-target_include_directories(maingo-core
-    PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/inc
-)
-target_link_libraries(maingo-core
-    babbase
-    fadbad
-    mcpp
-    nlopt
-    ipopt
-    clp
-    cplex-ilo cplex-concert cplex-lib
-)
-if(MAiNGO_build_melon)
-    target_link_libraries(maingo-core melon)
+include(${PROJECT_SOURCE_DIR}/cmake/MAiNGOsourceFiles.cmake)
+if(SKBUILD)
+    message(STATUS "The project is built using scikit-build, also building Python interface.")
+    set(MAiNGO_build_python_interface TRUE CACHE INTERNAL "" FORCE)
+    set(MAiNGO_use_cplex FALSE CACHE INTERNAL "" FORCE)
+    set(MAiNGO_use_knitro FALSE CACHE INTERNAL "" FORCE)
+    set(MAiNGO_use_mpi FALSE CACHE INTERNAL "" FORCE)
+    set(MAiNGO_build_standalone FALSE CACHE INTERNAL "" FORCE)
+    set(MAiNGO_build_parser FALSE CACHE INTERNAL "" FORCE)
+    set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
+    set(BUILD_SHARED_LIBS FALSE CACHE INTERNAL "" FORCE)
+    set(BLAS_usePrecompiledDll FALSE CACHE INTERNAL "" FORCE)
+    set(LAPACK_usePrecompiledDlls FALSE CACHE INTERNAL "" FORCE)
+    set(MUMPS_usePrecompiledDll FALSE CACHE INTERNAL "" FORCE)
 endif()
-if(MAiNGO_use_filib)
-    target_link_libraries(maingo-core filib)
-    target_compile_definitions(maingo-core PRIVATE USE_FILIB)
+if(MAiNGO_build_python_interface)
+    # if building the python interface, the generated module needs PIC, even if building static libraries
+    set(CMAKE_POSITION_INDEPENDENT_CODE ON)
 endif()
-
-if(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
-    target_link_libraries(maingo-core stdc++)
+add_library(maingo-core ${MAiNGO_SRC})
+if(WIN32 AND BUILD_SHARED_LIBS)
+    set_target_properties(maingo-core PRIVATE WINDOWS_EXPORT_ALL_SYMBOLS ON)
 endif()
 
-set_target_properties(maingo-core PROPERTIES CXX_STANDARD 14)
-if(NOT(MSVC))
+target_include_directories(maingo-core PUBLIC ${PROJECT_SOURCE_DIR}/inc)
+target_compile_features(maingo-core PRIVATE cxx_std_14)
+if(MSVC)
+    target_compile_options(maingo-core PRIVATE /MP;/Qpar)
+else()
     target_compile_options(maingo-core
         PRIVATE
             $<$<CXX_COMPILER_ID:Intel>: $<$<NOT:$<CONFIG:DEBUG>>:-O3> $<$<CONFIG:DEBUG>:-O0>>
             $<$<CXX_COMPILER_ID:GNU>: $<$<NOT:$<CONFIG:DEBUG>>:-O3> $<$<CONFIG:DEBUG>:-O0>>
             $<$<CXX_COMPILER_ID:AppleClang>: $<$<NOT:$<CONFIG:DEBUG>>:-O3> $<$<CONFIG:DEBUG>:-O0>>
             $<$<CXX_COMPILER_ID:Clang>: $<$<NOT:$<CONFIG:DEBUG>>:-O3> $<$<CONFIG:DEBUG>:-O0>>
+        )
+endif()
+
+if(MAiNGO_use_cplex)
+    # cplex has to be linked first, since on Linux/MacOS, it comes as a static library that contains BLAS etc.
+    # if linking it after our blas, this will result in multiply defined symbols
+    target_link_libraries(maingo-core PRIVATE cplex-ilo cplex-concert cplex-lib)
+endif()
+target_link_libraries(maingo-core
+    PUBLIC
+        babbase
+        mcpp
+    PRIVATE
+        filib
+        mumps
+        nlopt
+        ipopt
+        clp
     )
-else()
-    target_compile_options(maingo-core
-        PRIVATE
-            #/MP is for multithread compilation in MSVC
-            #/Qpar is parallel source code generation
-            $<$<CXX_COMPILER_ID:MSVC>:/MP;/Qpar>
-    )
+if(MAiNGO_use_melon)
+    target_link_libraries(maingo-core PUBLIC melon)
 endif()
 if(MAiNGO_build_parser)
-    add_library(parser STATIC
-        ${PARSER_SRC}
-    )
-    target_include_directories(parser
-        PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/inc
-    )
-    target_link_libraries(parser ale babbase mcpp)
-    set_target_properties(parser PROPERTIES CXX_STANDARD 17)
-    target_link_libraries(maingo-core parser)
+    add_library(parser STATIC ${PARSER_SRC})
+    target_include_directories(parser PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/inc)
+    target_link_libraries(parser PUBLIC ale babbase mcpp)
+    target_compile_features(parser PRIVATE cxx_std_17)
+    target_link_libraries(maingo-core PUBLIC parser)
+    target_compile_definitions(maingo-core PUBLIC HAVE_MAiNGO_PARSER)
+endif()
+if(MAiNGO_use_knitro)
+    # knitro always needs to be linked after all other math-related libraries because of incompatibility with several math routines
+    target_link_libraries(maingo-core PRIVATE knitro)
 endif()
-target_link_libraries(maingo-core knitro) # knitro always needs to be linked last because of incompatibility with several math routines
-
-
-#----------------- Search for MPI if requested --------------------
 if(MAiNGO_use_mpi)
-    include(${MAiNGO_SOURCE_DIR}/FindMPI.cmake)
-    target_include_directories(maingo-core PRIVATE ${MPI_INCLUDE_DIR})
-    target_compile_definitions(maingo-core PRIVATE HAVE_MAiNGO_MPI) # Define pre-processor variable HAVE_MAiNGO_MPI
-    target_link_libraries(maingo-core optimized "${MPI_LIBST}" debug "${MPI_LIBSTD}" )
+    find_package(MPI REQUIRED QUIET)
+    message("Found MPI. Run MAiNGO with MPI like this: ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS} ${MPIEXEC_PREFLAGS} <yourMAiNGOexecutable> ${MPIEXEC_POSTFLAGS} <yourCommandLineArguments>")
+    target_compile_definitions(maingo-core PUBLIC HAVE_MAiNGO_MPI) # Define pre-processor variable HAVE_MAiNGO_MPI
+    target_link_libraries(maingo-core PUBLIC MPI::MPI_CXX)
 endif()
 
 
@@ -90,20 +96,13 @@ endif()
 if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
 
     # --------------- Dependencies ---------------------------
-    function(add_dependency_subdir DEPENDENCY)
-        if(EXISTS ${PROJECT_SOURCE_DIR}/dep/${DEPENDENCY}/CMakeLists.txt)
-            add_subdirectory(${PROJECT_SOURCE_DIR}/dep/${DEPENDENCY})
-            message("${DEPENDENCY} OK.")
-            message("=================================================================")
-        else()
-            message(FATAL_ERROR "Error: Could not find CMakeLists.txt at ${PROJECT_SOURCE_DIR}/dep/${DEPENDENCY}. Did you initialize and update all submodules (cf. Readme.md or doc/html/index.html)?")
-        endif()
-    endfunction(add_dependency_subdir DEPENDENCY)
+    message("=================================================================")
+    message("=================================================================")
+    message("Configure dependencies...")
+    message("=================================================================")
+    include(${PROJECT_SOURCE_DIR}/cmake/addDependency.cmake)
     add_dependency_subdir(babbase)
     add_dependency_subdir(fadbad)
-    if(MAiNGO_use_filib OR MCPP_use_filib)
-        add_dependency_subdir(filib)
-    endif()
     add_dependency_subdir(blas)
     add_dependency_subdir(lapack)
     add_dependency_subdir(cpplapack)
@@ -111,111 +110,171 @@ if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
     add_dependency_subdir(mumps)
     add_dependency_subdir(ipopt)
     add_dependency_subdir(nlopt)
-    add_dependency_subdir(knitro)
     add_dependency_subdir(clp)
-    add_dependency_subdir(cplex)
-    if(MAiNGO_build_melon)
+    add_dependency_subdir(filib)
+    if(MAiNGO_use_melon)
         add_dependency_subdir(melon)
         add_dependency_subdir(json)
     endif()
     if(MAiNGO_build_parser)
         add_dependency_subdir(libale)
     endif()
+    if(MAiNGO_use_cplex)
+        add_dependency_subdir(cplex)
+    endif()
+    if(MAiNGO_use_knitro)
+        add_dependency_subdir(knitro)
+    endif()
+    if(MAiNGO_build_python_interface)
+        set(PYBIND11_FINDPYTHON FALSE CACHE BOOL "Whether to have pybind11 use FindPython")
+        if(SKBUILD)
+            set(Python_EXECUTABLE ${PYTHON_EXECUTABLE})
+            set(Python_VERSION ${PYTHON_VERSION_STRING})
+            set(Python_INCLUDE_DIRS ${PYTHON_INCLUDE_DIR})
+            set(Python_LIBRARIES ${PYTHON_LIBRARY})
+        endif()
+        add_dependency_subdir(pybind11)
+    endif()
+    message("Done configuring dependencies.")
+    message("=================================================================")
+    message("=================================================================")
+
+    if( (NOT BLAS_usePrecompiledDll) OR (NOT LAPACK_usePrecompiledDlls) OR (NOT MUMPS_usePrecompiledDll) )
+        enable_language(Fortran)
+    endif()
 
     # --------- Setup the Executable/.dll output Directory -------------
     set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR} CACHE PATH "Single Directory for all Executables.")
 
     # --------------- MAiNGO executable (using ALE parser) ---------------------------
     if (MAiNGO_build_parser)
-        add_executable(MAiNGO
-            ${PROJECT_SOURCE_DIR}/examples/mainAleParser.cpp
-        )
-        target_link_libraries(MAiNGO maingo-core)
-        set_target_properties(MAiNGO PROPERTIES CXX_STANDARD 17)
-        if(NOT(MSVC))
+        add_executable(MAiNGO ${PROJECT_SOURCE_DIR}/examples/mainAleParser.cpp)
+        target_link_libraries(MAiNGO PRIVATE maingo-core)
+        target_compile_features(MAiNGO PRIVATE cxx_std_17)
+        if(MSVC)
+            target_compile_options(MAiNGO PRIVATE /MP;/Qpar)
+            set_target_properties(MAiNGO PROPERTIES LINK_FLAGS /ignore:4099) #/ignore:4099 disables annoying linker warning because cplex does not provide debugging information
+        else()
             target_compile_options(MAiNGO
                 PRIVATE
                     $<$<CXX_COMPILER_ID:Intel>: $<$<NOT:$<CONFIG:DEBUG>>:-O3> $<$<CONFIG:DEBUG>:-O0>>
                     $<$<CXX_COMPILER_ID:GNU>: $<$<NOT:$<CONFIG:DEBUG>>:-O3> $<$<CONFIG:DEBUG>:-O0>>
                     $<$<CXX_COMPILER_ID:AppleClang>: $<$<NOT:$<CONFIG:DEBUG>>:-O3> $<$<CONFIG:DEBUG>:-O0>>
                     $<$<CXX_COMPILER_ID:Clang>: $<$<NOT:$<CONFIG:DEBUG>>:-O3> $<$<CONFIG:DEBUG>:-O0>>
-            )
-        else()
-            target_compile_options(MAiNGO
-                PRIVATE
-                    $<$<CXX_COMPILER_ID:MSVC>:/MP;/Qpar>
-            )
-            set_target_properties(MAiNGO PROPERTIES LINK_FLAGS /ignore:4099) #/ignore:4099 disables annoying linker warning because cplex does not provide debugging information
-        endif()
-        if(MAiNGO_use_mpi)
-            target_include_directories(MAiNGO PRIVATE ${MPI_INCLUDE_DIR})
-            target_compile_definitions(MAiNGO PRIVATE HAVE_MAiNGO_MPI) # Define pre-processor variable HAVE_MAiNGO_MPI
-            target_link_libraries(MAiNGO optimized "${MPI_LIBST}" debug "${MPI_LIBSTD}" )
+                )
         endif()
     endif()
 
     # --------------- Standalone MAiNGO executable (for C++ API) ---------------------------
     if (MAiNGO_build_standalone)
-        add_executable(MAiNGOcpp
-            ${PROJECT_SOURCE_DIR}/examples/mainCppApi.cpp
-        )
-        target_link_libraries(MAiNGOcpp
-            maingo-core
-        )
-        set_target_properties(MAiNGOcpp PROPERTIES CXX_STANDARD 14)
-        if(NOT(MSVC))
+        add_executable(MAiNGOcpp ${PROJECT_SOURCE_DIR}/examples/mainCppApi.cpp)
+        target_link_libraries(MAiNGOcpp PRIVATE maingo-core)
+        target_compile_features(MAiNGOcpp PRIVATE cxx_std_14)
+        if(MSVC)
+            target_compile_options(MAiNGOcpp PRIVATE /MP;/Qpar)
+            set_target_properties(MAiNGOcpp PROPERTIES LINK_FLAGS /ignore:4099) #/ignore:4099 disables annoying linker warning because cplex does not provide debugging information
+        else()
             target_compile_options(MAiNGOcpp
                 PRIVATE
                     $<$<CXX_COMPILER_ID:Intel>: $<$<NOT:$<CONFIG:DEBUG>>:-O3> $<$<CONFIG:DEBUG>:-O0>>
                     $<$<CXX_COMPILER_ID:GNU>: $<$<NOT:$<CONFIG:DEBUG>>:-O3> $<$<CONFIG:DEBUG>:-O0>>
                     $<$<CXX_COMPILER_ID:AppleClang>: $<$<NOT:$<CONFIG:DEBUG>>:-O3> $<$<CONFIG:DEBUG>:-O0>>
                     $<$<CXX_COMPILER_ID:Clang>: $<$<NOT:$<CONFIG:DEBUG>>:-O3> $<$<CONFIG:DEBUG>:-O0>>
-            )
-        else()
-            target_compile_options(MAiNGOcpp
-                PRIVATE
-                    $<$<CXX_COMPILER_ID:MSVC>:/MP;/Qpar>
-            )
-            set_target_properties(MAiNGOcpp PROPERTIES LINK_FLAGS /ignore:4099) #/ignore:4099 disables annoying linker warning because cplex does not provide debugging information
+                )
         endif()
+    endif()
 
-        if(MAiNGO_use_mpi)
-            target_include_directories(MAiNGOcpp PRIVATE ${MPI_INCLUDE_DIR})
-            target_compile_definitions(MAiNGOcpp PRIVATE HAVE_MAiNGO_MPI) # Define pre-processor variable HAVE_MAiNGO_MPI
-            target_link_libraries(MAiNGOcpp optimized "${MPI_LIBST}" debug "${MPI_LIBSTD}" )
+    # --------------- Python interface ---------------------------
+    if(MAiNGO_build_python_interface)
+        if(MSVC)
+            set(RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/Debug)
+            set(RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/Release)
+        else()
+            set(RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR})
+            set(RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR})
+        endif()
+        pybind11_add_module(_pymaingo pymaingo/_pymaingo.cpp)
+        target_compile_features(_pymaingo PRIVATE cxx_std_14)
+        target_link_libraries(_pymaingo PRIVATE maingo-core)
+        target_compile_options(_pymaingo PRIVATE $<$<CXX_COMPILER_ID:AppleClang>: -fvisibility=default>)
+        if(SKBUILD)
+            install(TARGETS maingo-core DESTINATION . )
+            install(TARGETS _pymaingo DESTINATION  .)
+        else()
+            set_target_properties(_pymaingo PROPERTIES
+                LIBRARY_OUTPUT_DIRECTORY $<$<CONFIG:Debug>:${RUNTIME_OUTPUT_DIRECTORY_DEBUG}>$<$<NOT:$<CONFIG:Debug>>:${RUNTIME_OUTPUT_DIRECTORY_RELEASE}>/pymaingo
+                )
+            add_custom_target(pymaingo ALL
+                COMMAND ${CMAKE_COMMAND} -E make_directory
+                    $<$<CONFIG:Debug>:${RUNTIME_OUTPUT_DIRECTORY_DEBUG}>$<$<NOT:$<CONFIG:Debug>>:${RUNTIME_OUTPUT_DIRECTORY_RELEASE}>/pymaingo
+                COMMAND ${CMAKE_COMMAND} -E copy
+                    ${PROJECT_SOURCE_DIR}/pymaingo/__init__.py
+                    $<$<CONFIG:Debug>:${RUNTIME_OUTPUT_DIRECTORY_DEBUG}>$<$<NOT:$<CONFIG:Debug>>:${RUNTIME_OUTPUT_DIRECTORY_RELEASE}>/pymaingo
+                )
+            if(${BLAS_usePrecompiledDll})
+                add_custom_target(copyBlasDllPymaingo ALL
+                    COMMAND ${CMAKE_COMMAND} -E copy
+                        $<$<CONFIG:Debug>:${RUNTIME_OUTPUT_DIRECTORY_DEBUG}/blasd.dll>$<$<NOT:$<CONFIG:Debug>>:${RUNTIME_OUTPUT_DIRECTORY_RELEASE}/blas.dll>
+                        $<$<CONFIG:Debug>:${RUNTIME_OUTPUT_DIRECTORY_DEBUG}/pymaingo/blasd.dll>$<$<NOT:$<CONFIG:Debug>>:${RUNTIME_OUTPUT_DIRECTORY_RELEASE}/pymaingo/blas.dll>)
+                add_dependencies(copyBlasDllPymaingo copyBlasDll)
+            endif()
+            if(${LAPACK_usePrecompiledDlls})
+                add_custom_target(copyLapackDllPymaingo ALL
+                    COMMAND ${CMAKE_COMMAND} -E copy
+                        $<$<CONFIG:Debug>:${RUNTIME_OUTPUT_DIRECTORY_DEBUG}/lapackd.dll>$<$<NOT:$<CONFIG:Debug>>:${RUNTIME_OUTPUT_DIRECTORY_RELEASE}/lapack.dll>
+                        $<$<CONFIG:Debug>:${RUNTIME_OUTPUT_DIRECTORY_DEBUG}/pymaingo/lapackd.dll>$<$<NOT:$<CONFIG:Debug>>:${RUNTIME_OUTPUT_DIRECTORY_RELEASE}/pymaingo/lapack.dll>)
+                add_dependencies(copyLapackDllPymaingo copyLapackDll)
+            endif()
+            if(${MUMPS_usePrecompiledDll})
+                add_custom_target(copyMumpsDllPymaingo ALL
+                    COMMAND ${CMAKE_COMMAND} -E copy
+                        $<$<CONFIG:Debug>:${RUNTIME_OUTPUT_DIRECTORY_DEBUG}/mumpsd.dll>$<$<NOT:$<CONFIG:Debug>>:${RUNTIME_OUTPUT_DIRECTORY_RELEASE}/mumps.dll>
+                        $<$<CONFIG:Debug>:${RUNTIME_OUTPUT_DIRECTORY_DEBUG}/pymaingo/mumpsd.dll>$<$<NOT:$<CONFIG:Debug>>:${RUNTIME_OUTPUT_DIRECTORY_RELEASE}/pymaingo/mumps.dll>)
+                add_dependencies(copyMumpsDllPymaingo copyMumpsDll)
+            endif()
         endif()
     endif()
 
+
     # --------------- MAiNGO Tests ---------------------------
     if(MAiNGO_build_test)
-        add_executable(test-maingo
-            ${PROJECT_SOURCE_DIR}/testcases/main.cpp
-        )
-        target_include_directories(test-maingo
-            PRIVATE ${PROJECT_SOURCE_DIR}/example
-        )
-        target_link_libraries(test-maingo maingo-core)
-        set_target_properties(test-maingo PROPERTIES CXX_STANDARD 17)
-        if(NOT(MSVC))
+        add_executable(test-maingo ${PROJECT_SOURCE_DIR}/tests/testProblems/main.cpp)
+        target_link_libraries(test-maingo PRIVATE maingo-core)
+        target_compile_features(test-maingo PRIVATE cxx_std_17)
+        if(MSVC)
+            target_compile_options(test-maingo PRIVATE /MP;/Qpar)
+            set_target_properties(test-maingo PROPERTIES LINK_FLAGS /ignore:4099) #/ignore:4099 disables annoying linker warning because cplex does not provide debugging information
+        else()
             target_compile_options(test-maingo
                 PRIVATE
                     $<$<CXX_COMPILER_ID:Intel>: $<$<NOT:$<CONFIG:DEBUG>>:-O3> $<$<CONFIG:DEBUG>:-O0>>
                     $<$<CXX_COMPILER_ID:GNU>: $<$<NOT:$<CONFIG:DEBUG>>:-O3> $<$<CONFIG:DEBUG>:-O0>>
                     $<$<CXX_COMPILER_ID:AppleClang>: $<$<NOT:$<CONFIG:DEBUG>>:-O3> $<$<CONFIG:DEBUG>:-O0>>
                     $<$<CXX_COMPILER_ID:Clang>: $<$<NOT:$<CONFIG:DEBUG>>:-O3> $<$<CONFIG:DEBUG>:-O0>>
-            )
-        else()
-            target_compile_options(test-maingo
-                PRIVATE
-                    $<$<CXX_COMPILER_ID:MSVC>:/MP;/Qpar>
-            )
-            set_target_properties(test-maingo PROPERTIES LINK_FLAGS /ignore:4099) #/ignore:4099 disables annoying linker warning because cplex does not provide debugging information
+                )
         endif()
-        if(MAiNGO_use_mpi)
-            target_include_directories(test-maingo PRIVATE ${MPI_INCLUDE_DIR})
-            target_compile_definitions(test-maingo PRIVATE HAVE_MAiNGO_MPI) # Define pre-processor variable HAVE_MAiNGO_MPI
-            target_link_libraries(test-maingo optimized "${MPI_LIBST}" debug "${MPI_LIBSTD}" )
+
+        if (MAiNGO_build_python_interface)
+            set(PYTHON_TEST_DIR ${PROJECT_SOURCE_DIR}/pymaingo/tests)
+            add_custom_target(test-pymaingo ALL
+                COMMAND ${CMAKE_COMMAND} -E copy
+                    ${PYTHON_TEST_DIR}/testPyMAiNGO.py
+                    $<$<CONFIG:Debug>:${RUNTIME_OUTPUT_DIRECTORY_DEBUG}>$<$<NOT:$<CONFIG:Debug>>:${RUNTIME_OUTPUT_DIRECTORY_RELEASE}>
+                COMMAND ${CMAKE_COMMAND} -E make_directory
+                    $<$<CONFIG:Debug>:${RUNTIME_OUTPUT_DIRECTORY_DEBUG}>$<$<NOT:$<CONFIG:Debug>>:${RUNTIME_OUTPUT_DIRECTORY_RELEASE}>/individualPythonTests
+                COMMAND ${CMAKE_COMMAND} -E copy
+                    ${PYTHON_TEST_DIR}/individualPythonTests/testEvaluationContainer.py
+                    ${PYTHON_TEST_DIR}/individualPythonTests/testIntrinsicFunctions.py
+                    ${PYTHON_TEST_DIR}/individualPythonTests/testMAiNGOmodel.py
+                    ${PYTHON_TEST_DIR}/individualPythonTests/testOptimizationVariables.py
+                    ${PYTHON_TEST_DIR}/individualPythonTests/testSolver.py
+                    ${PYTHON_TEST_DIR}/individualPythonTests/__init__.py
+                    $<$<CONFIG:Debug>:${RUNTIME_OUTPUT_DIRECTORY_DEBUG}>$<$<NOT:$<CONFIG:Debug>>:${RUNTIME_OUTPUT_DIRECTORY_RELEASE}>/individualPythonTests
+                COMMAND ${CMAKE_COMMAND} -E copy
+                    ${PROJECT_SOURCE_DIR}/examples/MAiNGOSettings.txt
+                    $<$<CONFIG:Debug>:${RUNTIME_OUTPUT_DIRECTORY_DEBUG}>$<$<NOT:$<CONFIG:Debug>>:${RUNTIME_OUTPUT_DIRECTORY_RELEASE}>/individualPythonTests
+                )
         endif()
     endif()
 
-endif()
\ No newline at end of file
+endif()
diff --git a/Readme.md b/Readme.md
index 5cb1026b39bb621eeacb1da80c8985193abc7168..0e2d0a9df8ba799f0940aa71eeb014027d699c56 100644
--- a/Readme.md
+++ b/Readme.md
@@ -1,13 +1,7 @@
-# ![MAiNGO](doc/images/MAiNGO.png) <br> McCormick-based Algorithm for mixed-integer Nonlinear Global Optimization
-
-Thank you for using the beta version 0.3.0 of MAiNGO! If you have any issues, concerns, or comments, please communicate them using the "Issues"
-functionality in [GitLab](https://git.rwth-aachen.de/avt.svt/public/maingo.git)	 or send an e-mail to MAiNGO@avt.rwth-aachen.de.
-
-## How to cite
-
-Please cite the latest [MAiNGO report](http://permalink.avt.rwth-aachen.de/?id=729717):<br>
-Bongartz, D., Najman, J., Sass, S., & Mitsos, A. (2018). MAiNGO - **M**cCormick-based **A**lgorithm for mixed-**i**nteger **N**onlinear **G**lobal **O**ptimization. Technical Report, Process Systems Engineering (AVT.SVT), RWTH Aachen University.
+# <img src="doc/images/MAiNGO.png" alt="MAiNGO" width="300"/> <br> McCormick-based Algorithm for mixed-integer Nonlinear Global Optimization
 
+Thank you for using the beta version of MAiNGO! If you have any issues, concerns, or comments, please communicate them using the ["Issues"
+functionality in GitLab](https://git.rwth-aachen.de/avt.svt/public/maingo/-/issues)	 or send an e-mail to [MAiNGO@avt.rwth-aachen.de](mailto:MAiNGO@avt.rwth-aachen.de).
 
 ## About
 
@@ -23,20 +17,12 @@ The MAiNGO git repository contains submodules for all dependencies. Hence, to ob
 	$ git submodule init
 	$ git submodule update -j 1
 
-Make sure that you navigate to the git MAiNGO directory before executing the `init` and `update` commands.
-
-For Windows users, we recommend to use https and for Linux OS users, we recommend SSH to avoid multiple username and password inputs.
-If you want to switch from https to SSH or do the reverse, simply execute the shell script `switchToSsh` or `switchToHttps` **after** executing the `git submodule init` command.
+If you want to switch from between HTTPS (default) and SSH protocols for obtaining the submodules, simply execute the shell scripts (only for Linux or MacOS) `switchToSsh` or `switchToHttps` **after** executing the `git submodule init` command.
 For more information on SSH keys, please refer to the git documentation on SSH authentication which can be found under `Help -> SSH authentication` in your GitLab.
 If you are having https authentication problems on Windows, please make sure that your credential manager has stored the correct settings. The Windows credential manager can be found at
 `Control Panel -> User Accounts -> Manage your credentials`.
 
 If you want to check if the above has worked, you can check that each subfolder in the `dep` folder is non-empty.
-In case that the above DID NOT work properly, use the following commands.
-
-	$ git submodule foreach git checkout master
-	$ git submodule foreach git pull
-
 A note for users more familiar with git: `git submodule update` is executed without the `--recursive` option.
 This avoids instantiating any indirect dependencies; in the repository design of MAiNGO, all dependencies (including indirect ones) are present in `dep`. Additionally, it is executed using only one process `-j 1` to avoid input failures.
 
@@ -45,13 +31,10 @@ This avoids instantiating any indirect dependencies; in the repository design of
 If you want to update to the latest MAiNGO version, use the following git commands
 
 	$ git pull
-	$ git submodule update
-
-If you changed any of the source files in MAiNGO or any dependency, found in the `dep` folder, you should restore the original state of MAiNGO by first saving a copy of the files you changed (or use `git stash`) and then executing
-
-	$ git checkout .
+	$ git submodule update -j 1
 
-in the MAiNGO repository and/or in any dependency repositories you edited. Then, update the MAiNGO repository with the `pull` and `submodule update` commands. Finally, you can replace the files of interest by your saved copies (or retrieve them via `git stash pop`).
+If you changed any of the source files in MAiNGO or any dependency found in the <tt>dep/</tt> folder, you should restore the original state of MAiNGO and the dependencies by running <tt>git stash</tt> in the corresponding repository.
+Then, update the MAiNGO repository with the <tt>git pull</tt> and <tt>git submodule update</tt> commands. Finally, you can retrieve your changes via <tt>git stash pop</tt>.
 
 ## First steps
 
@@ -74,13 +57,19 @@ MAiNGO works particularly well for problems which can be formulated in a reduced
 MAiNGO holds specialized relaxations for functions found in the field of process engineering ([Najman & Mitsos 2016](https://www.sciencedirect.com/science/article/pii/B9780444634283502721), [Najman et al. 2019](https://www.sciencedirect.com/science/article/abs/pii/S0098135419309494), [Bongartz et al. 2020](https://link.springer.com/article/10.1007/s11081-020-09502-1)).
 All implemented specialized intrinsic functions can be found at `doc/implementedFunctions/Implemented_functions.pdf`.
 
+## How to cite
+
+If you use MAiNGO, please cite the latest MAiNGO report:<br>
+Bongartz, D., Najman, J., Sass, S., & Mitsos, A. (2018). MAiNGO - **M**cCormick-based **A**lgorithm for mixed-**i**nteger **N**onlinear **G**lobal **O**ptimization. Technical Report, Process Systems Engineering (AVT.SVT), RWTH Aachen University. [http://permalink.avt.rwth-aachen.de/?id=729717](http://permalink.avt.rwth-aachen.de/?id=729717).
+
+
 ## References
 
 Bongartz, D., Najman, J., Sass, S., & Mitsos, A. (2018). [MAiNGO - **M**cCormick-based **A**lgorithm for mixed-**i**nteger **N**onlinear **G**lobal **O**ptimization](http://permalink.avt.rwth-aachen.de/?id=729717). *Technical Report*, Process Systems Engineering (AVT.SVT), RWTH Aachen University.<br><br>
 Bongartz, D., & Mitsos, A. (2017a). [Deterministic global optimization of process flowsheets in a reduced space using McCormick relaxations](https://link.springer.com/article/10.1007/s10898-017-0547-4). *Journal of Global Optimization*, 69(4), 761-796.<br><br>
 Bongartz, D., & Mitsos, A. (2017b). [Infeasible path global flowsheet optimization using McCormick relaxations](https://www.sciencedirect.com/science/article/pii/B9780444639653501070). In *Computer Aided Chemical Engineering* (Vol. 40, pp. 631-636). Elsevier.<br><br>
-Bongartz, D., & Mitsos, A. (2019). [Deterministic global flowsheet optimization: Between equation‐oriented and sequential‐modular methods](https://aiche.onlinelibrary.wiley.com/doi/full/10.1002/aic.16507). *AIChE Journal*, 65(3), 1022-1034.<br><br>
-Bongartz, D., Najman, J., & Mitsos, A. (2020). [Deterministic global optimization of steam cycles using the IAPWS‑IF97 model](https://link.springer.com/article/10.1007/s11081-020-09502-1). *Optimization & Engineering*, in press.<br><br>
+Bongartz, D., & Mitsos, A. (2019). [Deterministic global flowsheet optimization: Between equation-oriented and sequential-modular methods](https://aiche.onlinelibrary.wiley.com/doi/full/10.1002/aic.16507). *AIChE Journal*, 65(3), 1022-1034.<br><br>
+Bongartz, D., Najman, J., & Mitsos, A. (2020). [Deterministic global optimization of steam cycles using the IAPWS-IF97 model](https://link.springer.com/article/10.1007/s11081-020-09502-1). *Optimization & Engineering*, in press.<br><br>
 Huster, W. R., Schweidtmann, A. M., & Mitsos, A. (2019a). [Impact of accurate working fluid properties on the globally optimal design of an organic Rankine cycle](https://www.sciencedirect.com/science/article/pii/B9780128185971500680). In *Computer Aided Chemical Engineering* (Vol. 47, pp. 427-432). Elsevier.<br><br>
 Huster, W. R., Schweidtmann, A. M., & Mitsos, A. (2019b). [Working fluid selection for organic rankine cycles via deterministic global optimization of design and operation](https://link.springer.com/article/10.1007/s11081-019-09454-1). *Optimization and Engineering*, 1-20.<br><br>
 Najman, J., & Mitsos, A. (2016). [Convergence order of McCormick relaxations of LMTD function in heat exchanger networks](https://www.sciencedirect.com/science/article/pii/B9780444634283502721). In *Computer Aided Chemical Engineering* (Vol. 38, pp. 1605-1610). Elsevier.<br><br>
diff --git a/ReleaseNotes.txt b/ReleaseNotes.txt
index 9bbf658bd4e6cb50ac9761ba825c05a450acdcd4..39a765c03d754be3bd09f3a7373fa732a245cbe8 100644
--- a/ReleaseNotes.txt
+++ b/ReleaseNotes.txt
@@ -1,3 +1,22 @@
+Release version 0.4.0 (March 4th, 2021):
+    - New features:
+        - MAiNGO now has a Python API. It consists of Python bindings for the C++ API and thus works very similarly to the latter
+    - Examples & documentation:
+        - Added more information on output (screen & files) and algorithm of MAiNGO
+        - Added information on Python interface
+        - Added an example for the Python API to examples/01_BasicExample
+    - Misc:
+        - Various bugfixes (e.g., avoiding potential crashes of the B&B or in the parallel version etc.)
+        - Improved error reporting
+        - Renamed a few options as well as methods of the MAiNGO class to be more descriptive
+        - Fixed random seeds for CPLEX and CLP
+        - Improved diagnostic output for problems without objective or with constant objective
+    - Third party libraries:
+        - Included pybind11 for the Python API
+        - New version of babbase containing minor bugfixes, and now also allowing binary variables without explicit bounds
+        - New version of mcpp containing bugfixes in relaxations and constraint propagation
+
+
 Release version 0.3.0 (June 12th, 2020):
 	- New features:
 		- MAiNGO now uses the toolkit MeLOn - Machine Learning Models for Optimization
diff --git a/cmake/MAiNGOsourceFiles.cmake b/cmake/MAiNGOsourceFiles.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..14cfb9bd9ab7a4ce117609f0c2fa0d4dabeb59b9
--- /dev/null
+++ b/cmake/MAiNGOsourceFiles.cmake
@@ -0,0 +1,44 @@
+set(MAiNGO_SOURCE_DIR ${PROJECT_SOURCE_DIR}/src)
+set(MAiNGO_SRC
+    ${MAiNGO_SOURCE_DIR}/bab.cpp
+    ${MAiNGO_SOURCE_DIR}/getTime.cpp
+    ${MAiNGO_SOURCE_DIR}/ipoptProblem.cpp
+    ${MAiNGO_SOURCE_DIR}/knitroProblem.cpp
+    ${MAiNGO_SOURCE_DIR}/lbp.cpp
+    ${MAiNGO_SOURCE_DIR}/lbpFactory.cpp
+    ${MAiNGO_SOURCE_DIR}/lbpCplex.cpp
+    ${MAiNGO_SOURCE_DIR}/lbpClp.cpp
+    ${MAiNGO_SOURCE_DIR}/lbpDagObj.cpp
+    ${MAiNGO_SOURCE_DIR}/lbpInterval.cpp
+    ${MAiNGO_SOURCE_DIR}/lbpLinearizationStrats.cpp
+    ${MAiNGO_SOURCE_DIR}/logger.cpp
+    ${MAiNGO_SOURCE_DIR}/MAiNGO.cpp
+    ${MAiNGO_SOURCE_DIR}/MAiNGOevaluationFunctions.cpp
+    ${MAiNGO_SOURCE_DIR}/MAiNGOgetterFunctions.cpp
+    ${MAiNGO_SOURCE_DIR}/MAiNGOmodelEpsCon.cpp
+    ${MAiNGO_SOURCE_DIR}/MAiNGOprintingFunctions.cpp
+    ${MAiNGO_SOURCE_DIR}/MAiNGOreadSettings.cpp
+    ${MAiNGO_SOURCE_DIR}/MAiNGOsetOption.cpp
+    ${MAiNGO_SOURCE_DIR}/MAiNGOtoOtherLanguage.cpp
+    ${MAiNGO_SOURCE_DIR}/MAiNGOwritingFunctions.cpp
+    ${MAiNGO_SOURCE_DIR}/ubp.cpp
+    ${MAiNGO_SOURCE_DIR}/ubpClp.cpp
+    ${MAiNGO_SOURCE_DIR}/ubpCplex.cpp
+    ${MAiNGO_SOURCE_DIR}/ubpFactory.cpp
+    ${MAiNGO_SOURCE_DIR}/ubpIpopt.cpp
+    ${MAiNGO_SOURCE_DIR}/ubpKnitro.cpp
+    ${MAiNGO_SOURCE_DIR}/ubpNLopt.cpp
+)
+
+if(MAiNGO_build_parser)
+    set(PARSER_SRC
+        ${MAiNGO_SOURCE_DIR}/aleModel.cpp
+        ${MAiNGO_SOURCE_DIR}/programParser.cpp
+    )
+endif()
+
+if(MAiNGO_use_mpi)
+    set(MAiNGO_SRC ${MAiNGO_SRC}
+        ${MAiNGO_SOURCE_DIR}/babMpi.cpp
+    )
+endif()
\ No newline at end of file
diff --git a/cmake/addDependency.cmake b/cmake/addDependency.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..f967a0e1d3b30379db90e9d4211a4bebc9d3e70d
--- /dev/null
+++ b/cmake/addDependency.cmake
@@ -0,0 +1,9 @@
+function(add_dependency_subdir DEPENDENCY)
+    if(EXISTS ${PROJECT_SOURCE_DIR}/dep/${DEPENDENCY}/CMakeLists.txt)
+        add_subdirectory(${PROJECT_SOURCE_DIR}/dep/${DEPENDENCY})
+        message("${DEPENDENCY} OK.")
+        message("=================================================================")
+    else()
+        message(FATAL_ERROR "Error: Could not find CMakeLists.txt at ${PROJECT_SOURCE_DIR}/dep/${DEPENDENCY}. Did you initialize and update all submodules (cf. Readme.md or doc/html/index.html)?")
+    endif()
+endfunction(add_dependency_subdir DEPENDENCY)
\ No newline at end of file
diff --git a/dep/babbase b/dep/babbase
index dcf8e1e4492fd71f79e3ce1348696c0ea622b57b..b9ac45c6ca1a1b2c7f8424ca929af4ad82aff552 160000
--- a/dep/babbase
+++ b/dep/babbase
@@ -1 +1 @@
-Subproject commit dcf8e1e4492fd71f79e3ce1348696c0ea622b57b
+Subproject commit b9ac45c6ca1a1b2c7f8424ca929af4ad82aff552
diff --git a/dep/blas b/dep/blas
index 10411bb27820924be3e2e32f14cdaa70864ea84d..d0c480a3feeeaae52a9e343436aa9d299dddfcb4 160000
--- a/dep/blas
+++ b/dep/blas
@@ -1 +1 @@
-Subproject commit 10411bb27820924be3e2e32f14cdaa70864ea84d
+Subproject commit d0c480a3feeeaae52a9e343436aa9d299dddfcb4
diff --git a/dep/clp b/dep/clp
index 010f3e9eaf4e910c99ea4179282194dbc09a0f01..f64c5b746deaeb3fa8b13a081be53dfdfecc5374 160000
--- a/dep/clp
+++ b/dep/clp
@@ -1 +1 @@
-Subproject commit 010f3e9eaf4e910c99ea4179282194dbc09a0f01
+Subproject commit f64c5b746deaeb3fa8b13a081be53dfdfecc5374
diff --git a/dep/cplex b/dep/cplex
index 22802fe6e1d78e927bdc806bc48e305f3e944fc9..77243cfb7e99f6b24a5e919de9534e8d6a83e4fc 160000
--- a/dep/cplex
+++ b/dep/cplex
@@ -1 +1 @@
-Subproject commit 22802fe6e1d78e927bdc806bc48e305f3e944fc9
+Subproject commit 77243cfb7e99f6b24a5e919de9534e8d6a83e4fc
diff --git a/dep/cpplapack b/dep/cpplapack
index a5d4fc99508e50b77001152b0cb287cde733a1fb..0fe1a134bfd693652a2990a4dc37b4538fc691c0 160000
--- a/dep/cpplapack
+++ b/dep/cpplapack
@@ -1 +1 @@
-Subproject commit a5d4fc99508e50b77001152b0cb287cde733a1fb
+Subproject commit 0fe1a134bfd693652a2990a4dc37b4538fc691c0
diff --git a/dep/filib b/dep/filib
index 428c8ac74e7c82f9382e1403b1379c5d38057d5f..dd359bca5f0679dec0c07c1f0e13937e3787a5d7 160000
--- a/dep/filib
+++ b/dep/filib
@@ -1 +1 @@
-Subproject commit 428c8ac74e7c82f9382e1403b1379c5d38057d5f
+Subproject commit dd359bca5f0679dec0c07c1f0e13937e3787a5d7
diff --git a/dep/ipopt b/dep/ipopt
index 12e44293542d176f1150af649810cd2733f905a1..040cd37c56d7b9e3b20bbd4f8f10a282a29c83c8 160000
--- a/dep/ipopt
+++ b/dep/ipopt
@@ -1 +1 @@
-Subproject commit 12e44293542d176f1150af649810cd2733f905a1
+Subproject commit 040cd37c56d7b9e3b20bbd4f8f10a282a29c83c8
diff --git a/dep/lapack b/dep/lapack
index 39be3fb59ae4b1a3be4446635b07fbc82098ac92..b522ceed43f889eaa9adda8f279325fcafd770b9 160000
--- a/dep/lapack
+++ b/dep/lapack
@@ -1 +1 @@
-Subproject commit 39be3fb59ae4b1a3be4446635b07fbc82098ac92
+Subproject commit b522ceed43f889eaa9adda8f279325fcafd770b9
diff --git a/dep/mcpp b/dep/mcpp
index ebcef32f04b7f1acba88cc2cedeab033d68ce17d..da5a2f227ef57f2d88654b30149636a0b1557085 160000
--- a/dep/mcpp
+++ b/dep/mcpp
@@ -1 +1 @@
-Subproject commit ebcef32f04b7f1acba88cc2cedeab033d68ce17d
+Subproject commit da5a2f227ef57f2d88654b30149636a0b1557085
diff --git a/dep/melon b/dep/melon
index e086d1de7d0a69fe5381e4a5231d12360ea29e57..2418f3f20f4423498da4603c5befa2faf2da2e69 160000
--- a/dep/melon
+++ b/dep/melon
@@ -1 +1 @@
-Subproject commit e086d1de7d0a69fe5381e4a5231d12360ea29e57
+Subproject commit 2418f3f20f4423498da4603c5befa2faf2da2e69
diff --git a/dep/mumps b/dep/mumps
index 8a8161e2f5b667bde2fdc8eaa4a0c73a8e9ea3c6..72ec1603826019531be974367211eba253ddfb26 160000
--- a/dep/mumps
+++ b/dep/mumps
@@ -1 +1 @@
-Subproject commit 8a8161e2f5b667bde2fdc8eaa4a0c73a8e9ea3c6
+Subproject commit 72ec1603826019531be974367211eba253ddfb26
diff --git a/dep/nlopt b/dep/nlopt
index f748e5ea35b595d9ca2db2ab2bd0bb2db5dbee07..798f331644352daaeedc4cea0e8ca67bba2328f3 160000
--- a/dep/nlopt
+++ b/dep/nlopt
@@ -1 +1 @@
-Subproject commit f748e5ea35b595d9ca2db2ab2bd0bb2db5dbee07
+Subproject commit 798f331644352daaeedc4cea0e8ca67bba2328f3
diff --git a/dep/pybind11 b/dep/pybind11
new file mode 160000
index 0000000000000000000000000000000000000000..91a697203c80b52086244bb385f4d477ffaac787
--- /dev/null
+++ b/dep/pybind11
@@ -0,0 +1 @@
+Subproject commit 91a697203c80b52086244bb385f4d477ffaac787
diff --git a/doc/Doxyfile b/doc/Doxyfile
index 1aeff42f522c91720be918cced14c95c81cbcdd3..8099767d8b927e3a1309ec26a8caa2d7fb7aa49a 100644
--- a/doc/Doxyfile
+++ b/doc/Doxyfile
@@ -813,8 +813,10 @@ WARN_LOGFILE           =
 # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
 # Note: If this tag is empty the current directory is searched.
 
-INPUT                  = ../inc \
+INPUT                  = . \
+                         ../inc \
                          ../src \
+                         ../pymaingo \
                          ../dep/babbase/src \
                          ../dep/babbase/inc
 
@@ -898,7 +900,7 @@ RECURSIVE              = NO
 # Note that relative paths are relative to the directory from which doxygen is
 # run.
 
-EXCLUDE                =
+EXCLUDE                = ./../pymaingo/Readme.md
 
 # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
 # directories that are symbolic links (a Unix file system feature) are excluded
diff --git a/doc/html/____init_____8py.html b/doc/html/____init_____8py.html
new file mode 100644
index 0000000000000000000000000000000000000000..676a64770a6ce1e7d3b343d0709e60a7d8455842
--- /dev/null
+++ b/doc/html/____init_____8py.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>MAiNGO: C:/dobo01/maingo/pymaingo/__init__.py File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(initResizable);
+/* @license-end */</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><img alt="Logo" src="mango_only.png"/></td>
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">MAiNGO
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(document).ready(function(){initNavTree('____init_____8py.html','');});
+/* @license-end */
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">__init__.py File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespacepymaingo"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepymaingo.html">pymaingo</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_fb6b81e558fe2a09cdb3602de97a65f7.html">pymaingo</a></li><li class="navelem"><a class="el" href="____init_____8py.html">__init__.py</a></li>
+    <li class="footer">Generated by
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/doc/html/__pymaingo_8cpp.html b/doc/html/__pymaingo_8cpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..f76dfcead153265ad0c07ee64c308c38f7e54ce5
--- /dev/null
+++ b/doc/html/__pymaingo_8cpp.html
@@ -0,0 +1,157 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>MAiNGO: C:/dobo01/maingo/pymaingo/_pymaingo.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(initResizable);
+/* @license-end */</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><img alt="Logo" src="mango_only.png"/></td>
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">MAiNGO
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(document).ready(function(){initNavTree('__pymaingo_8cpp.html','');});
+/* @license-end */
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">_pymaingo.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_m_ai_n_g_o_8h_source.html">MAiNGO.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_m_ai_n_g_omodel_8h_source.html">MAiNGOmodel.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_m_ai_n_g_omodel_eps_con_8h_source.html">MAiNGOmodelEpsCon.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="function_wrapper_8h_source.html">functionWrapper.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="bab_opt_var_8h_source.html">babOptVar.h</a>&quot;</code><br />
+<code>#include &quot;ffunc.hpp&quot;</code><br />
+<code>#include &lt;pybind11/operators.h&gt;</code><br />
+<code>#include &lt;pybind11/pybind11.h&gt;</code><br />
+<code>#include &lt;pybind11/stl.h&gt;</code><br />
+</div><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_py_m_ai_n_g_omodel.html">PyMAiNGOmodel</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a75e1ee573073a440d528a799ccd1e331"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="__pymaingo_8cpp.html#a75e1ee573073a440d528a799ccd1e331">PYBIND11_MODULE</a> (_pymaingo, m)</td></tr>
+<tr class="separator:a75e1ee573073a440d528a799ccd1e331"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="a75e1ee573073a440d528a799ccd1e331"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a75e1ee573073a440d528a799ccd1e331">&#9670;&nbsp;</a></span>PYBIND11_MODULE()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">PYBIND11_MODULE </td>
+          <td>(</td>
+          <td class="paramtype">_pymaingo&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">m&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_fb6b81e558fe2a09cdb3602de97a65f7.html">pymaingo</a></li><li class="navelem"><a class="el" href="__pymaingo_8cpp.html">_pymaingo.cpp</a></li>
+    <li class="footer">Generated by
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/doc/html/__pymaingo_8cpp.js b/doc/html/__pymaingo_8cpp.js
new file mode 100644
index 0000000000000000000000000000000000000000..b0ee020c070eb92c3c5e6d01bf0afb3c9494dd45
--- /dev/null
+++ b/doc/html/__pymaingo_8cpp.js
@@ -0,0 +1,5 @@
+var __pymaingo_8cpp =
+[
+    [ "PyMAiNGOmodel", "class_py_m_ai_n_g_omodel.html", "class_py_m_ai_n_g_omodel" ],
+    [ "PYBIND11_MODULE", "__pymaingo_8cpp.html#a75e1ee573073a440d528a799ccd1e331", null ]
+];
\ No newline at end of file
diff --git a/doc/html/_m_ai_n_g_o_8cpp.html b/doc/html/_m_ai_n_g_o_8cpp.html
index c9c41bdf2119ba051c82394724c701c280e3df0b..132e041a466bfd16c53180de4fe95482e5fd81ef 100644
--- a/doc/html/_m_ai_n_g_o_8cpp.html
+++ b/doc/html/_m_ai_n_g_o_8cpp.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/src/MAiNGO.cpp File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/src/MAiNGO.cpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -91,9 +91,9 @@ $(document).ready(function(){initNavTree('_m_ai_n_g_o_8cpp.html','');});
 </div><!--header-->
 <div class="contents">
 <div class="textblock"><code>#include &quot;<a class="el" href="_m_ai_n_g_o_8h_source.html">MAiNGO.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_m_ai_n_g_o_exception_8h_source.html">MAiNGOException.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="_m_ai_n_g_omodel_eps_con_8h_source.html">MAiNGOmodelEpsCon.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="bab_8h_source.html">bab.h</a>&quot;</code><br />
-<code>#include &quot;<a class="el" href="exceptions_8h_source.html">exceptions.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="get_time_8h_source.html">getTime.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="interval_library_8h_source.html">intervalLibrary.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="lbp_8h_source.html">lbp.h</a>&quot;</code><br />
@@ -108,7 +108,7 @@ $(document).ready(function(){initNavTree('_m_ai_n_g_o_8cpp.html','');});
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="_m_ai_n_g_o_8cpp.html">MAiNGO.cpp</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/_m_ai_n_g_o_8h.html b/doc/html/_m_ai_n_g_o_8h.html
index 2aa30ff05fd37e0bfc0fba91342026f35462562d..e53b9e7b055b80300909e9bf84b071cc8afeb269 100644
--- a/doc/html/_m_ai_n_g_o_8h.html
+++ b/doc/html/_m_ai_n_g_o_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/MAiNGO.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/MAiNGO.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -97,7 +97,6 @@ $(document).ready(function(){initNavTree('_m_ai_n_g_o_8h.html','');});
 <code>#include &quot;<a class="el" href="_m_ai_n_g_omodel_8h_source.html">MAiNGOmodel.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="constraint_8h_source.html">constraint.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="logger_8h_source.html">logger.h</a>&quot;</code><br />
-<code>#include &quot;<a class="el" href="manual_8h_source.html">manual.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="return_codes_8h_source.html">returnCodes.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="settings_8h_source.html">settings.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="bab_node_8h_source.html">babNode.h</a>&quot;</code><br />
@@ -138,7 +137,7 @@ Namespaces</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="_m_ai_n_g_o_8h.html">MAiNGO.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/_m_ai_n_g_o_8h_source.html b/doc/html/_m_ai_n_g_o_8h_source.html
index 4e31f2e5e16fe72385c0f9816a1bc27e56403313..ea5b1ea9b07a593b1724ac9795d5c2a077344075 100644
--- a/doc/html/_m_ai_n_g_o_8h_source.html
+++ b/doc/html/_m_ai_n_g_o_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/MAiNGO.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/MAiNGO.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,173 +90,179 @@ $(document).ready(function(){initNavTree('_m_ai_n_g_o_8h_source.html','');});
 <div class="title">MAiNGO.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="_m_ai_n_g_o_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file MAiNGO.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing declaration of the MAiNGO class.</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_m_ai_n_g_odebug_8h.html">MAiNGOdebug.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_m_ai_n_g_omodel_8h.html">MAiNGOmodel.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="constraint_8h.html">constraint.h</a>&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="logger_8h.html">logger.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="manual_8h.html">manual.h</a>&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="return_codes_8h.html">returnCodes.h</a>&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="settings_8h.html">settings.h</a>&quot;</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_node_8h.html">babNode.h</a>&quot;</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_utils_8h.html">babUtils.h</a>&quot;</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &lt;list&gt;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &lt;utility&gt;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="comment">// Forward declarations to avoid excessive includes</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keyword">namespace </span>bab {</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="keyword">class </span>BranchAndBound;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;}    <span class="comment">// end namespace bab</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="keyword">namespace </span>lbp {</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="keyword">class </span>LowerBoundingSolver;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;}    <span class="comment">// end namespace lbp</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="keyword">namespace </span>ubp {</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="keyword">class </span>UpperBoundingSolver;</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;}    <span class="comment">// end namespace ubp</span></div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html">   56</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1_m_ai_n_g_o.html">MAiNGO</a> {</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ab4d0923334ce1323a91389117560a271">MAiNGO</a>(std::shared_ptr&lt;MAiNGOmodel&gt; myModel);</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#aa50b9f4993a803eb7ac98dee8ea2fcf1">   67</a></span>&#160;    <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#aa50b9f4993a803eb7ac98dee8ea2fcf1">~MAiNGO</a>() {}</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a1fe4e8690548362eb1ec74fb052a424e">set_model</a>(std::shared_ptr&lt;MAiNGOmodel&gt; myModel);</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    <a class="code" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621a">RETCODE</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a50062c75f198aab4cd975f34fdef1506">solve</a>();</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <a class="code" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621a">RETCODE</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a4cf012860282bcaff9890e182f4b6886">solve_epsilon_constraint</a>();</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a383bc41aef21457041b6a79d0a376bed">set_option</a>(<span class="keyword">const</span> std::string option, <span class="keyword">const</span> <span class="keywordtype">double</span> value);</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a9d2cbee1f5ecf3321e2e5334e70757fe">read_settings</a>(std::string settingsFile);</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ae99518c0b699295565d25c76b0187c58">set_log_file_name</a>(std::string logFileName = <span class="stringliteral">&quot;bab&quot;</span>);</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ade7741b5e86018f3167c9f34622a2733">set_res_file_name</a>(std::string resFileName = <span class="stringliteral">&quot;MAiNGO_res&quot;</span>);</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a530c347d65ac74a1cf871e385ec18cc4">set_csv_file_name</a>(std::string csvIterationsName = <span class="stringliteral">&quot;bab_Report_Iterations&quot;</span>, std::string csvGeneralName = <span class="stringliteral">&quot;bab_Report_General&quot;</span>);</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a755f6652395b3bad73976a26fa4243f9">set_json_file_name</a>(std::string jsonFileName = <span class="stringliteral">&quot;bab&quot;</span>);</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a66b60c8b60e9525e96e4d2dbb6398f88">set_output_stream</a>(std::ostream *outputStream);</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a4f888ef8f672e6ee7602951cd4b2c7a9">parse_maingo_to_other_language</a>(<span class="keyword">const</span> <a class="code" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299a">PARSING_LANGUAGE</a> parsing_language, <span class="keyword">const</span> std::string fileName = <span class="stringliteral">&quot;MAiNGO_parsed_file&quot;</span>, <span class="keyword">const</span> std::string solverName = <span class="stringliteral">&quot;SCIP&quot;</span>,</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;                                        <span class="keyword">const</span> <span class="keywordtype">bool</span> useMinMax = <span class="keyword">true</span>, <span class="keyword">const</span> <span class="keywordtype">bool</span> useTrig = <span class="keyword">true</span>, <span class="keyword">const</span> <span class="keywordtype">bool</span> ignoreBoundingFuncs = <span class="keyword">false</span>, <span class="keyword">const</span> <span class="keywordtype">bool</span> writeRelaxationOnly = <span class="keyword">true</span>);</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a6f3727adfe69c95ac8e0ca41a7b73fa6">get_objective_value</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a7821624172735057f67471776a8d4aa1">get_solution_point</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a0c15524b2884d3604fc0a5d4b40bcccb">get_cpu_solution_time</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ae1bfc496de0e05575a8f9ad290bd2b58">get_wallclock_solution_time</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a5922fb929208ad9341446f05683555f9">get_iterations</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a22af1a970a5fd23eb347a655c8ae549a">get_max_nodes_in_memory</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a7f8fb94bcf60d8e2ff8a943c12459061">get_UBP_count</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a30f5390432b5701f3ae3b7ff3b0ae680">get_LBP_count</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ace8e13bdb04862efd560c8d0d80950b4">get_final_LBD</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a0ec7e9601a2a5c8cc2f2bcb8d79c66a5">get_final_abs_gap</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#aa244aaeeb4a93592821ab741010df615">get_final_rel_gap</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;    <a class="code" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621a">RETCODE</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a16e579b3026a722169cf0f8819ac1ec5">get_status</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;    std::vector&lt;std::pair&lt;std::string, double&gt;&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#afd0f8acfe45a05c077810ef75b8d71dd">get_additional_outputs_at_solution_point</a>();</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a50df488dd7b110d7e4ebc137a8949696">get_model_at_solution_point</a>();</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#abd17e0e2d436da88f15738e8e0218ac8">get_model_at_point</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;point, std::vector&lt;double&gt; &amp;returnResult);</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;    std::vector&lt;std::pair&lt;std::string, double&gt;&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a52df8cc85640aaee13afb5cd5748dbcc">get_additional_outputs_at_point</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;point);</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a1a9fa4c0ae0a91178836350b5f5c22d3">print_MAiNGO</a>(std::ostream &amp;outstream = std::cout);</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;    <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ab4d0923334ce1323a91389117560a271">MAiNGO</a>();</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;    <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ab4d0923334ce1323a91389117560a271">MAiNGO</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html">MAiNGO</a> &amp;);</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;    <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html">MAiNGO</a> &amp;<a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a9d035ded892ca2fd6a0151f6ea761d54">operator=</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html">MAiNGO</a> &amp;);</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;    <a class="code" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621a">RETCODE</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a271c14d25b5423c7c077f8ea206f2818">_analyze_and_solve_problem</a>();</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;    <a class="code" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621a">RETCODE</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a9f726a054960d563d59032b8067701b2">_solve_MIQP</a>();</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;    <a class="code" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621a">RETCODE</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ab2b58e658363c359a205cbd435f1f3d3">_solve_MINLP</a>();</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a9908a4661a24667409c0a0fd5c06fe9f">_construct_DAG</a>();</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a874e8de2f4daafb262380b882a3d3553">_classify_constraints</a>(std::vector&lt;mc::FFVar&gt; &amp;tmpFunctions, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;tmpDAGVars);</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a9ad31f08fce43a453e9f8e1e39c889bb">_check_for_hidden_zero_constraints</a>(<span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;tmpDAGVars, std::vector&lt;mc::FFVar&gt; &amp;tmpDAGFunctions, std::vector&lt;mc::FFVar&gt; &amp;tmpDAGoutputFunctions);</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;</div><div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#af0fdf26f6ae26288a121e6912f0f1023">_add_auxiliary_variables_to_lbd_dag</a>();</div><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;</div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#acdc8a1d98aa50ee3d76dc4873dda787f">_initialize_solve</a>();</div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;</div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ae8688dd8669b0231af0fcedfaefab02c">_root_obbt_feasibility</a>();</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;</div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ac685bcf7b2be55e2d689941c1b90fa72">_root_obbt_feasibility_optimality</a>();</div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;</div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a622b9622d1e3515be1774111e33b0949">_root_constraint_propagation</a>();</div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;</div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#aa5d43df52f00ec1b854f0bf4e67d20de">_root_multistart</a>();</div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ab57d5aa6e5abb14b5d2bea4063f8db5e">_recognize_structure</a>();</div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;</div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a6c09add60cfffb752582cf21182a786d">_set_constraint_properties</a>();</div><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;</div><div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a108919c79fc8d5fd6e0389ce7b242acb">_print_statistics</a>();</div><div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;</div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a4919a41d851f89b85fbd2646d878a6b0">_print_solution</a>();</div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;</div><div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ab5ac4bb96785ca26617e81b55d9a5996">_print_time</a>();</div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;</div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a1056041b9ace71cfbf3807ec436cd80b">_print_additional_output</a>();</div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#acb69025e90c11f757a3f74c9b37daacd">_write_files</a>();</div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;</div><div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a72b6d958b300d7fc886b74790b001aeb">_write_files_error</a>(<span class="keyword">const</span> std::string &amp;error);</div><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;</div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a2287a4b633fd59097ce44a74e15f6660">_write_csv_general</a>();</div><div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;    </div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a9d8ceaac941b738db96be2326e4db27a">_write_json_file</a>();</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;</div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a76ffecbb5590c1dd40ec896059af4fda">_write_res_file</a>();</div><div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#abad3366b86f460d436d3c13bfecb147b">_check_feasibility_of_relaxation_only_constraints</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;solutionPoint, std::string &amp;str, <span class="keyword">const</span> std::string &amp;whitespaces);</div><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;</div><div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#af7aec196a4987e5f38ed642b21400aa9">_write_gams_file</a>(<span class="keyword">const</span> std::string gamsFileName = <span class="stringliteral">&quot;MAiNGO_GAMS_file&quot;</span>, <span class="keyword">const</span> std::string solverName = <span class="stringliteral">&quot;SCIP&quot;</span>, <span class="keyword">const</span> <span class="keywordtype">bool</span> writeRelaxationOnly = <span class="keyword">false</span>);</div><div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;</div><div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a1aff8d80ad642d24966454b8ef35e34a">_write_gams_variables</a>(std::ofstream &amp;gamsFile);</div><div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;</div><div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a0d24d4e085f56925079399567cdf70eb">_write_gams_functions</a>(std::ofstream &amp;gamsFile, <span class="keywordtype">bool</span> writeRelaxationOnly);</div><div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;</div><div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#aa3b2c105e3ebff61b3416c9cdd8bd964">_write_gams_options</a>(std::ofstream &amp;gamsFile, std::string solverName = <span class="stringliteral">&quot;SCIP&quot;</span>);</div><div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;</div><div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ac99ef891ef04bb26071bf37ba510ebfc">_add_linebreaks_to_gams_string</a>(std::string &amp;str);</div><div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;</div><div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a6e2e3685c938ae2e8605dab3f6a13632">_write_ale_file</a>(<span class="keyword">const</span> std::string aleFileName = <span class="stringliteral">&quot;MAiNGO_ALE_file&quot;</span>, <span class="keyword">const</span> std::string solverName = <span class="stringliteral">&quot;SCIP&quot;</span>, <span class="keyword">const</span> <span class="keywordtype">bool</span> writeRelaxationOnly = <span class="keyword">false</span>);</div><div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;</div><div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a6d10798d58ceeac812fb853ca7eccf5c">_write_ale_variables</a>(std::ofstream &amp;aleFile);</div><div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;</div><div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a20c235755de9f0c15ea62c28ae9e2ac8">_write_ale_functions</a>(std::ofstream &amp;aleFile, <span class="keywordtype">bool</span> writeRelaxationOnly);</div><div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;</div><div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a4681879414746b1ac89b905479d6fa1d">_write_ale_options</a>(std::ofstream &amp;aleFile, std::string solverName = <span class="stringliteral">&quot;SCIP&quot;</span>);</div><div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;</div><div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a93a8eadb777ce6ff95072f16dc6ef762">_print_MAiNGO_header_for_other_modeling_language</a>(<span class="keyword">const</span> <a class="code" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299a">PARSING_LANGUAGE</a> parsing_language, std::ofstream &amp;file);</div><div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a585967bc628b31b1fbba2105be7d36a2">_print_MAiNGO_header</a>();</div><div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;</div><div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a0a8c5d381ad5818cec8624db717de73a">_print_message</a>(<span class="keyword">const</span> std::string &amp;message);</div><div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;</div><div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a40c4e33f9034542409daa1f0497c776f">_write_epsilon_constraint_result</a>(<span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;objectiveValues, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;solutionPoints);</div><div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;</div><div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a0d372af3e069f9ff12f09936aa9099c0">_get_model_at_point</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;point, std::vector&lt;double&gt; &amp;returnResult);</div><div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;</div><div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;    std::vector&lt;std::pair&lt;std::string, double&gt;&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a14ac25981c3df0f6317418c8b9f4857c">_get_additional_outputs</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;point);</div><div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;</div><div class="line"><a name="l00552"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a54d978f1329af4acf801108591eea1f5">  552</a></span>&#160;    mc::FFGraph <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a54d978f1329af4acf801108591eea1f5">_DAG</a>;                                         </div><div class="line"><a name="l00553"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a06382d115db4ab79eb1c249ab367a086">  553</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a06382d115db4ab79eb1c249ab367a086">_DAGvars</a>;                          </div><div class="line"><a name="l00554"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#aa5de85da627e5dbdf3c6bf6be2ddad26">  554</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#aa5de85da627e5dbdf3c6bf6be2ddad26">_DAGfunctions</a>;                     </div><div class="line"><a name="l00555"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#ac7d4149849a607fa29b77b90a0a5fa2f">  555</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ac7d4149849a607fa29b77b90a0a5fa2f">_DAGoutputFunctions</a>;               </div><div class="line"><a name="l00556"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#aa6a02b134e037806dea96aab029ff908">  556</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#aa6a02b134e037806dea96aab029ff908">_resultVars</a>;                       </div><div class="line"><a name="l00557"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#adf764bba4c067716ca0d9948eca504a8">  557</a></span>&#160;    std::vector&lt;OptimizationVariable&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#adf764bba4c067716ca0d9948eca504a8">_originalVariables</a>;     </div><div class="line"><a name="l00558"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a49594efef0db3f36efcf342acf7c7525">  558</a></span>&#160;    std::vector&lt;OptimizationVariable *&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a49594efef0db3f36efcf342acf7c7525">_infeasibleVariables</a>; </div><div class="line"><a name="l00559"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a179c701e7f310080876879df45571aae">  559</a></span>&#160;    std::vector&lt;OptimizationVariable&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a179c701e7f310080876879df45571aae">_variables</a>;             </div><div class="line"><a name="l00560"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#abb425f08ebe9b1d4a71d6b455cd656b9">  560</a></span>&#160;    std::vector&lt;bool&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#abb425f08ebe9b1d4a71d6b455cd656b9">_removedVariables</a>;                      </div><div class="line"><a name="l00561"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a805b901f0e2e25ee5910b2b0e6a7c99a">  561</a></span>&#160;    std::vector&lt;std::string&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a805b901f0e2e25ee5910b2b0e6a7c99a">_uniqueNamesOriginal</a>;            </div><div class="line"><a name="l00562"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a4151ba2d1c6b6965001dbf7fc1a7c122">  562</a></span>&#160;    std::vector&lt;std::string&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a4151ba2d1c6b6965001dbf7fc1a7c122">_uniqueNames</a>;                    </div><div class="line"><a name="l00563"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a66df665b487a9136ff45a8e8a76c739c">  563</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a66df665b487a9136ff45a8e8a76c739c">_initialPointOriginal</a>;                </div><div class="line"><a name="l00564"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a6624f898a20299ccfa4a8fa2f8f7dd28">  564</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a6624f898a20299ccfa4a8fa2f8f7dd28">_initialPoint</a>;                        </div><div class="line"><a name="l00565"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a1143aeaa67ba99d6ddc224a44d0fbfb5">  565</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a1143aeaa67ba99d6ddc224a44d0fbfb5">_nvarOriginal</a>;                                   </div><div class="line"><a name="l00566"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a24bb95f23a26f300a8a4ca85b9284512">  566</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a24bb95f23a26f300a8a4ca85b9284512">_nvarOriginalContinuous</a>;                         </div><div class="line"><a name="l00567"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a63e3879fdb8009d459c08fd3a9c719b9">  567</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a63e3879fdb8009d459c08fd3a9c719b9">_nvarOriginalBinary</a>;                             </div><div class="line"><a name="l00568"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a43a173e24e19fbbd9ea819b105ab39d6">  568</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a43a173e24e19fbbd9ea819b105ab39d6">_nvarOriginalInteger</a>;                            </div><div class="line"><a name="l00569"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#adf4fee2adeb03682d2ea70239f75848d">  569</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#adf4fee2adeb03682d2ea70239f75848d">_nvar</a>;                                           </div><div class="line"><a name="l00570"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a91c7c1533effc9589f908b96b67789b3">  570</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a91c7c1533effc9589f908b96b67789b3">_nineq</a>;                                          </div><div class="line"><a name="l00571"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a4c8d80919a45473feb415dd8fc50b633">  571</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a4c8d80919a45473feb415dd8fc50b633">_neq</a>;                                            </div><div class="line"><a name="l00572"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a9fb77dded43644f931547ab9d7a3daba">  572</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a9fb77dded43644f931547ab9d7a3daba">_nineqRelaxationOnly</a>;                            </div><div class="line"><a name="l00573"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#aa369cfa7bcc0161aacefe22da9595d81">  573</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#aa369cfa7bcc0161aacefe22da9595d81">_neqRelaxationOnly</a>;                              </div><div class="line"><a name="l00574"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a65d8859f0f4b4e6dfec43c4238d24772">  574</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a65d8859f0f4b4e6dfec43c4238d24772">_nineqSquash</a>;                                    </div><div class="line"><a name="l00575"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#ae90a5539fd3c1790b49289c919948da7">  575</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ae90a5539fd3c1790b49289c919948da7">_noutputVariables</a>;                               </div><div class="line"><a name="l00576"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a0dac873a62bd24b60f87bb017d2db2c8">  576</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a0dac873a62bd24b60f87bb017d2db2c8">_nconstantIneq</a>;                                  </div><div class="line"><a name="l00577"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#ae327014202f53c1f3f0fab024b1d6da7">  577</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ae327014202f53c1f3f0fab024b1d6da7">_nconstantEq</a>;                                    </div><div class="line"><a name="l00578"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a0029f4da8b4ec58568bc2419f698e7d7">  578</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a0029f4da8b4ec58568bc2419f698e7d7">_nconstantIneqRelOnly</a>;                           </div><div class="line"><a name="l00579"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a11a108eb587e3fac7651f2969aadff2f">  579</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a11a108eb587e3fac7651f2969aadff2f">_nconstantEqRelOnly</a>;                             </div><div class="line"><a name="l00580"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#ac2442f5c69a4a26d3b6e764c8a3170b3">  580</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ac2442f5c69a4a26d3b6e764c8a3170b3">_nconstantIneqSquash</a>;                            </div><div class="line"><a name="l00581"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#ad33f6f1b9cb0e07b0e44bcb5297d860f">  581</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ad33f6f1b9cb0e07b0e44bcb5297d860f">_nconstantOutputVariables</a>;                       </div><div class="line"><a name="l00582"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a5cbd854078dc3fbef193c14af2e7a11d">  582</a></span>&#160;    std::vector&lt;std::string&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a5cbd854078dc3fbef193c14af2e7a11d">_outputNames</a>;                    </div><div class="line"><a name="l00583"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a690afb91dfea9350cd401dc4c9390c4a">  583</a></span>&#160;    std::shared_ptr&lt;MAiNGOmodel&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a690afb91dfea9350cd401dc4c9390c4a">_myFFVARmodel</a>;               </div><div class="line"><a name="l00584"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#aa19003266d3acb3b042f282e8bf1e575">  584</a></span>&#160;    <a class="code" href="structmaingo_1_1_evaluation_container.html">EvaluationContainer</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#aa19003266d3acb3b042f282e8bf1e575">_modelOutput</a>;                         </div><div class="line"><a name="l00585"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a9c4f03e80eafd073264fb0d2f186dc81">  585</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a9c4f03e80eafd073264fb0d2f186dc81">_readyToSolve</a>;                                       </div><div class="line"><a name="l00586"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a5d59280b371782eaeaf887073ae7b77a">  586</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a5d59280b371782eaeaf887073ae7b77a">_DAGconstructed</a>;                                     </div><div class="line"><a name="l00587"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#aeae47f2ca5ba67f042e035711690fec1">  587</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#aeae47f2ca5ba67f042e035711690fec1">_variablesFeasible</a>;                                  </div><div class="line"><a name="l00588"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#af917f2f3529a7c92bb0b972607c1e8df">  588</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#af917f2f3529a7c92bb0b972607c1e8df">_constantConstraintsFeasible</a>;                        </div><div class="line"><a name="l00589"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a0314c3c342e0483b85692344d79d8486">  589</a></span>&#160;    std::vector&lt;Constraint&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a0314c3c342e0483b85692344d79d8486">_originalConstraints</a>;             </div><div class="line"><a name="l00590"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a6094a619e5202a347ad3b755a0f13fe7">  590</a></span>&#160;    std::vector&lt;Constraint&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a6094a619e5202a347ad3b755a0f13fe7">_constantConstraints</a>;             </div><div class="line"><a name="l00591"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a92badf4c34413612706e7aeaefebe95a">  591</a></span>&#160;    std::vector&lt;Constraint&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a92badf4c34413612706e7aeaefebe95a">_nonconstantConstraints</a>;          </div><div class="line"><a name="l00592"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a7bce17d744313c9b489b19179eb0b4f0">  592</a></span>&#160;    std::vector&lt;Constraint&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a7bce17d744313c9b489b19179eb0b4f0">_nonconstantConstraintsUBP</a>;       </div><div class="line"><a name="l00593"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a9393fdd939148611496b665d537ca6cb">  593</a></span>&#160;    std::vector&lt;Constraint&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a9393fdd939148611496b665d537ca6cb">_constantOutputs</a>;                 </div><div class="line"><a name="l00594"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#ace95ba4340090ffaafec40a30504ccb4">  594</a></span>&#160;    std::vector&lt;Constraint&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ace95ba4340090ffaafec40a30504ccb4">_nonconstantOutputs</a>;              </div><div class="line"><a name="l00601"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a2771b7011d669e1db37b8b3ef00ab4a5">  601</a></span>&#160;    mc::FFGraph <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a2771b7011d669e1db37b8b3ef00ab4a5">_DAGlbd</a>;                             </div><div class="line"><a name="l00602"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a2fd3f75ee25d495eb9f08ab7597f3742">  602</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a2fd3f75ee25d495eb9f08ab7597f3742">_DAGvarsLbd</a>;              </div><div class="line"><a name="l00603"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a4751e009b5a1228a1324a8ff1ccac4fb">  603</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a4751e009b5a1228a1324a8ff1ccac4fb">_DAGfunctionsLbd</a>;         </div><div class="line"><a name="l00604"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a011bbb5f80dad5bc568f0537931a5369">  604</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a011bbb5f80dad5bc568f0537931a5369">_DAGoutputFunctionsLbd</a>;   </div><div class="line"><a name="l00605"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a3bfd617c12d3ee731e314f8f806b4da0">  605</a></span>&#160;    std::vector&lt;OptimizationVariable&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a3bfd617c12d3ee731e314f8f806b4da0">_variablesLbd</a>; </div><div class="line"><a name="l00606"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#af0c4e2dcc05ca034801db5400f8d2fa7">  606</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#af0c4e2dcc05ca034801db5400f8d2fa7">_nvarLbd</a>;                               </div><div class="line"><a name="l00607"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a35f8250e9023121b2b3303211a5cbc99">  607</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a35f8250e9023121b2b3303211a5cbc99">_nauxiliaryRelOnlyEqs</a>;                  </div><div class="line"><a name="l00614"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#ac39c6e7cc69822997e9fb18721e2e52f">  614</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ac39c6e7cc69822997e9fb18721e2e52f">_solutionPoint</a>;      </div><div class="line"><a name="l00615"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a462440b0556dae9e3c515a2d3c661b13">  615</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a462440b0556dae9e3c515a2d3c661b13">_solutionValue</a>;                   </div><div class="line"><a name="l00616"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#ac3c772c7a634ef58c452ba9921902b53">  616</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ac3c772c7a634ef58c452ba9921902b53">_solutionTime</a>;                    </div><div class="line"><a name="l00617"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#aa297393a110200243b693cf5f0fed0cb">  617</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#aa297393a110200243b693cf5f0fed0cb">_preprocessTime</a>;                  </div><div class="line"><a name="l00618"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a917d78c01e2442296f829977491e6107">  618</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a917d78c01e2442296f829977491e6107">_babTime</a>;                         </div><div class="line"><a name="l00619"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a101ac517abb98426ff61a29feb27e7a1">  619</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a101ac517abb98426ff61a29feb27e7a1">_outputTime</a>;                      </div><div class="line"><a name="l00620"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a041316b6a1ce0e0d78249719e5075d0b">  620</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a041316b6a1ce0e0d78249719e5075d0b">_solutionTimeWallClock</a>;           </div><div class="line"><a name="l00621"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#ace36a8a82262f885ae5f87be65d868db">  621</a></span>&#160;    <a class="code" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621a">RETCODE</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ace36a8a82262f885ae5f87be65d868db">_maingoStatus</a>;                   </div><div class="line"><a name="l00622"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a038bd07379ad5ac438d7253f67e5f456">  622</a></span>&#160;    <a class="code" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ece">PROBLEM_STRUCTURE</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a038bd07379ad5ac438d7253f67e5f456">_problemStructure</a>;     </div><div class="line"><a name="l00623"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#ae90d120eacc929b19609c6dcd9017fa6">  623</a></span>&#160;    <a class="code" href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fc">TIGHTENING_RETCODE</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ae90d120eacc929b19609c6dcd9017fa6">_rootObbtStatus</a>;      </div><div class="line"><a name="l00624"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#abd3d18c6d0825a1fdf892aed43ef5deb">  624</a></span>&#160;    <a class="code" href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fc">TIGHTENING_RETCODE</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#abd3d18c6d0825a1fdf892aed43ef5deb">_rootConPropStatus</a>;   </div><div class="line"><a name="l00625"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a4940dbf6b13e10e500cb7704b3f6d412">  625</a></span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a4940dbf6b13e10e500cb7704b3f6d412">_rootMultistartStatus</a>; </div><div class="line"><a name="l00626"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a31692cc54ec24e14fbd7bfccda000d16">  626</a></span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a31692cc54ec24e14fbd7bfccda000d16">_miqpStatus</a>;           </div><div class="line"><a name="l00627"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a08c2039814522b8addbf0a1d740397d3">  627</a></span>&#160;    <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a08c2039814522b8addbf0a1d740397d3">_rootNode</a>;              </div><div class="line"><a name="l00628"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a8fe800a4fd347fc64b3f26de987c13f5">  628</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2">babBase::enums::BAB_RETCODE</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a8fe800a4fd347fc64b3f26de987c13f5">_babStatus</a>;  </div><div class="line"><a name="l00635"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a4a3174283651d6da792c3270c9a0e4a6">  635</a></span>&#160;    std::shared_ptr&lt;lbp::LowerBoundingSolver&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a4a3174283651d6da792c3270c9a0e4a6">_myLBS</a>;    </div><div class="line"><a name="l00636"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a05c6ffd319ab0ee58791f14564871824">  636</a></span>&#160;    std::shared_ptr&lt;ubp::UpperBoundingSolver&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a05c6ffd319ab0ee58791f14564871824">_myUBSPre</a>; </div><div class="line"><a name="l00637"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a647cd64be05eac973598fc4b8328d866">  637</a></span>&#160;    std::shared_ptr&lt;ubp::UpperBoundingSolver&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a647cd64be05eac973598fc4b8328d866">_myUBSBab</a>; </div><div class="line"><a name="l00638"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#ab11fb623cd53b982490aa87f7f7da9e7">  638</a></span>&#160;    std::shared_ptr&lt;bab::BranchAndBound&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ab11fb623cd53b982490aa87f7f7da9e7">_myBaB</a>;         </div><div class="line"><a name="l00641"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#abdcc6fb032878028956050dcba5c9405">  641</a></span>&#160;    <a class="code" href="structmaingo_1_1_settings.html">Settings</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#abdcc6fb032878028956050dcba5c9405">_maingoSettings</a>;         </div><div class="line"><a name="l00642"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a020f2b61ca2d2baabf16031f078c2ddd">  642</a></span>&#160;    <a class="code" href="structmaingo_1_1_settings.html">Settings</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a020f2b61ca2d2baabf16031f078c2ddd">_maingoOriginalSettings</a>; </div><div class="line"><a name="l00643"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a96f1a3a2a8c24cdca954e63fdc155e01">  643</a></span>&#160;    <a class="code" href="classmaingo_1_1_logger.html">Logger</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a96f1a3a2a8c24cdca954e63fdc155e01">_logger</a>;                   </div><div class="line"><a name="l00649"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a11b956f66ea516b6951abe9dd2410484">  649</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a11b956f66ea516b6951abe9dd2410484">_objectivesAtRoot</a>;          </div><div class="line"><a name="l00650"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#ae51edfeecb90cf3be1d6cabf9d18c9eb">  650</a></span>&#160;    std::vector&lt;SUBSOLVER_RETCODE&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ae51edfeecb90cf3be1d6cabf9d18c9eb">_feasibleAtRoot</a>; </div><div class="line"><a name="l00651"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a7e35d3a30d8a5eab184d18fe256ffc57">  651</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a7e35d3a30d8a5eab184d18fe256ffc57">_initialPointFeasible</a>;                     </div><div class="line"><a name="l00652"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a9292f5cf116f7607400a75a036c88244">  652</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a9292f5cf116f7607400a75a036c88244">_inMAiNGOsolve</a> = <span class="keyword">false</span>;                    </div><div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;<span class="preprocessor">#ifdef HAVE_MAiNGO_MPI</span></div><div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;</div><div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;    <span class="keywordtype">int</span> _rank;   </div><div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;    <span class="keywordtype">int</span> _nProcs; </div><div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;</div><div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;};    <span class="comment">// end of class MAiNGO</span></div><div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;</div><div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;</div><div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;}    <span class="comment">// end of namespace maingo</span></div><div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_aa5d43df52f00ec1b854f0bf4e67d20de"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#aa5d43df52f00ec1b854f0bf4e67d20de">maingo::MAiNGO::_root_multistart</a></div><div class="ttdeci">void _root_multistart()</div><div class="ttdoc">Conducts multistart local search at the root node.</div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:1516</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a11b956f66ea516b6951abe9dd2410484"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a11b956f66ea516b6951abe9dd2410484">maingo::MAiNGO::_objectivesAtRoot</a></div><div class="ttdeci">std::vector&lt; double &gt; _objectivesAtRoot</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:649</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a038bd07379ad5ac438d7253f67e5f456"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a038bd07379ad5ac438d7253f67e5f456">maingo::MAiNGO::_problemStructure</a></div><div class="ttdeci">PROBLEM_STRUCTURE _problemStructure</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:622</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ac3c772c7a634ef58c452ba9921902b53"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ac3c772c7a634ef58c452ba9921902b53">maingo::MAiNGO::_solutionTime</a></div><div class="ttdeci">double _solutionTime</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:616</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ae8688dd8669b0231af0fcedfaefab02c"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ae8688dd8669b0231af0fcedfaefab02c">maingo::MAiNGO::_root_obbt_feasibility</a></div><div class="ttdeci">void _root_obbt_feasibility()</div><div class="ttdoc">Conducts feasibility-based bound tightening at the root node.</div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:1305</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a0029f4da8b4ec58568bc2419f698e7d7"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a0029f4da8b4ec58568bc2419f698e7d7">maingo::MAiNGO::_nconstantIneqRelOnly</a></div><div class="ttdeci">unsigned _nconstantIneqRelOnly</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:578</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a0dac873a62bd24b60f87bb017d2db2c8"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a0dac873a62bd24b60f87bb017d2db2c8">maingo::MAiNGO::_nconstantIneq</a></div><div class="ttdeci">unsigned _nconstantIneq</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:576</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a0314c3c342e0483b85692344d79d8486"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a0314c3c342e0483b85692344d79d8486">maingo::MAiNGO::_originalConstraints</a></div><div class="ttdeci">std::vector&lt; Constraint &gt; _originalConstraints</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:589</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a041316b6a1ce0e0d78249719e5075d0b"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a041316b6a1ce0e0d78249719e5075d0b">maingo::MAiNGO::_solutionTimeWallClock</a></div><div class="ttdeci">double _solutionTimeWallClock</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:620</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a647cd64be05eac973598fc4b8328d866"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a647cd64be05eac973598fc4b8328d866">maingo::MAiNGO::_myUBSBab</a></div><div class="ttdeci">std::shared_ptr&lt; ubp::UpperBoundingSolver &gt; _myUBSBab</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:637</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_aa297393a110200243b693cf5f0fed0cb"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#aa297393a110200243b693cf5f0fed0cb">maingo::MAiNGO::_preprocessTime</a></div><div class="ttdeci">double _preprocessTime</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:617</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a4751e009b5a1228a1324a8ff1ccac4fb"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a4751e009b5a1228a1324a8ff1ccac4fb">maingo::MAiNGO::_DAGfunctionsLbd</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; _DAGfunctionsLbd</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:603</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a92badf4c34413612706e7aeaefebe95a"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a92badf4c34413612706e7aeaefebe95a">maingo::MAiNGO::_nonconstantConstraints</a></div><div class="ttdeci">std::vector&lt; Constraint &gt; _nonconstantConstraints</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:591</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a4f888ef8f672e6ee7602951cd4b2c7a9"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a4f888ef8f672e6ee7602951cd4b2c7a9">maingo::MAiNGO::parse_maingo_to_other_language</a></div><div class="ttdeci">void parse_maingo_to_other_language(const PARSING_LANGUAGE parsing_language, const std::string fileName=&quot;MAiNGO_parsed_file&quot;, const std::string solverName=&quot;SCIP&quot;, const bool useMinMax=true, const bool useTrig=true, const bool ignoreBoundingFuncs=false, const bool writeRelaxationOnly=true)</div><div class="ttdoc">Writes MAiNGO model to a different modeling language.</div><div class="ttdef"><b>Definition:</b> MAiNGOtoOtherLanguage.cpp:35</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ae90a5539fd3c1790b49289c919948da7"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ae90a5539fd3c1790b49289c919948da7">maingo::MAiNGO::_noutputVariables</a></div><div class="ttdeci">unsigned _noutputVariables</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:575</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ae1bfc496de0e05575a8f9ad290bd2b58"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ae1bfc496de0e05575a8f9ad290bd2b58">maingo::MAiNGO::get_wallclock_solution_time</a></div><div class="ttdeci">double get_wallclock_solution_time() const</div><div class="ttdoc">Function returning wallclock solution time.</div><div class="ttdef"><b>Definition:</b> MAiNGOgetterFunctions.cpp:82</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_aa369cfa7bcc0161aacefe22da9595d81"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#aa369cfa7bcc0161aacefe22da9595d81">maingo::MAiNGO::_neqRelaxationOnly</a></div><div class="ttdeci">unsigned _neqRelaxationOnly</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:573</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a66b60c8b60e9525e96e4d2dbb6398f88"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a66b60c8b60e9525e96e4d2dbb6398f88">maingo::MAiNGO::set_output_stream</a></div><div class="ttdeci">void set_output_stream(std::ostream *outputStream)</div><div class="ttdoc">Sets output stream.</div><div class="ttdef"><b>Definition:</b> MAiNGOwritingFunctions.cpp:300</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a0a8c5d381ad5818cec8624db717de73a"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a0a8c5d381ad5818cec8624db717de73a">maingo::MAiNGO::_print_message</a></div><div class="ttdeci">void _print_message(const std::string &amp;message)</div><div class="ttdoc">Prints message with beautiful '*' box.</div><div class="ttdef"><b>Definition:</b> MAiNGOprintingFunctions.cpp:437</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ace36a8a82262f885ae5f87be65d868db"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ace36a8a82262f885ae5f87be65d868db">maingo::MAiNGO::_maingoStatus</a></div><div class="ttdeci">RETCODE _maingoStatus</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:621</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ade7741b5e86018f3167c9f34622a2733"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ade7741b5e86018f3167c9f34622a2733">maingo::MAiNGO::set_res_file_name</a></div><div class="ttdeci">void set_res_file_name(std::string resFileName=&quot;MAiNGO_res&quot;)</div><div class="ttdoc">Sets name of the res file.</div><div class="ttdef"><b>Definition:</b> MAiNGOwritingFunctions.cpp:249</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a5922fb929208ad9341446f05683555f9"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a5922fb929208ad9341446f05683555f9">maingo::MAiNGO::get_iterations</a></div><div class="ttdeci">double get_iterations() const</div><div class="ttdoc">Function returning the number of iterations.</div><div class="ttdef"><b>Definition:</b> MAiNGOgetterFunctions.cpp:96</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a4151ba2d1c6b6965001dbf7fc1a7c122"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a4151ba2d1c6b6965001dbf7fc1a7c122">maingo::MAiNGO::_uniqueNames</a></div><div class="ttdeci">std::vector&lt; std::string &gt; _uniqueNames</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:562</div></div>
-<div class="ttc" id="namespacebab_base_1_1enums_html_a2c4d021a83d3363ae57623c7376761d2"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2">babBase::enums::BAB_RETCODE</a></div><div class="ttdeci">BAB_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the B&amp;B solver.</div><div class="ttdef"><b>Definition:</b> babUtils.h:126</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a0d372af3e069f9ff12f09936aa9099c0"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a0d372af3e069f9ff12f09936aa9099c0">maingo::MAiNGO::_get_model_at_point</a></div><div class="ttdeci">bool _get_model_at_point(const std::vector&lt; double &gt; &amp;point, std::vector&lt; double &gt; &amp;returnResult)</div><div class="ttdoc">Function telling whether a point is feasible or not and returning values of the set model of the obje...</div><div class="ttdef"><b>Definition:</b> MAiNGOgetterFunctions.cpp:387</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a6d10798d58ceeac812fb853ca7eccf5c"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a6d10798d58ceeac812fb853ca7eccf5c">maingo::MAiNGO::_write_ale_variables</a></div><div class="ttdeci">void _write_ale_variables(std::ofstream &amp;aleFile)</div><div class="ttdoc">Function writing variables, variable bounds and a initial point in the ale file.</div><div class="ttdef"><b>Definition:</b> MAiNGOtoOtherLanguage.cpp:681</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ace8e13bdb04862efd560c8d0d80950b4"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ace8e13bdb04862efd560c8d0d80950b4">maingo::MAiNGO::get_final_LBD</a></div><div class="ttdeci">double get_final_LBD() const</div><div class="ttdoc">Function returning the final LBD.</div><div class="ttdef"><b>Definition:</b> MAiNGOgetterFunctions.cpp:172</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_abd3d18c6d0825a1fdf892aed43ef5deb"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#abd3d18c6d0825a1fdf892aed43ef5deb">maingo::MAiNGO::_rootConPropStatus</a></div><div class="ttdeci">TIGHTENING_RETCODE _rootConPropStatus</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:624</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_aeae47f2ca5ba67f042e035711690fec1"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#aeae47f2ca5ba67f042e035711690fec1">maingo::MAiNGO::_variablesFeasible</a></div><div class="ttdeci">bool _variablesFeasible</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:587</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a63e3879fdb8009d459c08fd3a9c719b9"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a63e3879fdb8009d459c08fd3a9c719b9">maingo::MAiNGO::_nvarOriginalBinary</a></div><div class="ttdeci">unsigned _nvarOriginalBinary</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:567</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a4c8d80919a45473feb415dd8fc50b633"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a4c8d80919a45473feb415dd8fc50b633">maingo::MAiNGO::_neq</a></div><div class="ttdeci">unsigned _neq</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:571</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ac685bcf7b2be55e2d689941c1b90fa72"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ac685bcf7b2be55e2d689941c1b90fa72">maingo::MAiNGO::_root_obbt_feasibility_optimality</a></div><div class="ttdeci">void _root_obbt_feasibility_optimality()</div><div class="ttdoc">Conducts feasibility- and optimality-based bound tightening at the root node.</div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:1376</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html"><div class="ttname"><a href="classbab_base_1_1_bab_node.html">babBase::BabNode</a></div><div class="ttdoc">Class representing a node in the Branch-and-Bound tree.</div><div class="ttdef"><b>Definition:</b> babNode.h:35</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a9d8ceaac941b738db96be2326e4db27a"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a9d8ceaac941b738db96be2326e4db27a">maingo::MAiNGO::_write_json_file</a></div><div class="ttdeci">void _write_json_file()</div><div class="ttdoc">Write json summaries to disk.</div><div class="ttdef"><b>Definition:</b> MAiNGOwritingFunctions.cpp:138</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a8fe800a4fd347fc64b3f26de987c13f5"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a8fe800a4fd347fc64b3f26de987c13f5">maingo::MAiNGO::_babStatus</a></div><div class="ttdeci">babBase::enums::BAB_RETCODE _babStatus</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:628</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a011bbb5f80dad5bc568f0537931a5369"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a011bbb5f80dad5bc568f0537931a5369">maingo::MAiNGO::_DAGoutputFunctionsLbd</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; _DAGoutputFunctionsLbd</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:604</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_afd0f8acfe45a05c077810ef75b8d71dd"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#afd0f8acfe45a05c077810ef75b8d71dd">maingo::MAiNGO::get_additional_outputs_at_solution_point</a></div><div class="ttdeci">std::vector&lt; std::pair&lt; std::string, double &gt; &gt; get_additional_outputs_at_solution_point()</div><div class="ttdoc">Function returning the additional model outputs at solution point.</div><div class="ttdef"><b>Definition:</b> MAiNGOgetterFunctions.cpp:262</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a462440b0556dae9e3c515a2d3c661b13"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a462440b0556dae9e3c515a2d3c661b13">maingo::MAiNGO::_solutionValue</a></div><div class="ttdeci">double _solutionValue</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:615</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_adf764bba4c067716ca0d9948eca504a8"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#adf764bba4c067716ca0d9948eca504a8">maingo::MAiNGO::_originalVariables</a></div><div class="ttdeci">std::vector&lt; OptimizationVariable &gt; _originalVariables</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:557</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ab57d5aa6e5abb14b5d2bea4063f8db5e"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ab57d5aa6e5abb14b5d2bea4063f8db5e">maingo::MAiNGO::_recognize_structure</a></div><div class="ttdeci">void _recognize_structure()</div><div class="ttdoc">Uses mc::FFDep properties and the DAG to obtain information on the structure of the underlying proble...</div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:1591</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_aa244aaeeb4a93592821ab741010df615"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#aa244aaeeb4a93592821ab741010df615">maingo::MAiNGO::get_final_rel_gap</a></div><div class="ttdeci">double get_final_rel_gap() const</div><div class="ttdoc">Function returning the final relative gap.</div><div class="ttdef"><b>Definition:</b> MAiNGOgetterFunctions.cpp:210</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_af7aec196a4987e5f38ed642b21400aa9"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#af7aec196a4987e5f38ed642b21400aa9">maingo::MAiNGO::_write_gams_file</a></div><div class="ttdeci">void _write_gams_file(const std::string gamsFileName=&quot;MAiNGO_GAMS_file&quot;, const std::string solverName=&quot;SCIP&quot;, const bool writeRelaxationOnly=false)</div><div class="ttdoc">Writes MAiNGO problem to GAMS file.</div><div class="ttdef"><b>Definition:</b> MAiNGOtoOtherLanguage.cpp:118</div></div>
+<a href="_m_ai_n_g_o_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_m_ai_n_g_odebug_8h.html">MAiNGOdebug.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_m_ai_n_g_omodel_8h.html">MAiNGOmodel.h</a>&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="constraint_8h.html">constraint.h</a>&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="logger_8h.html">logger.h</a>&quot;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="return_codes_8h.html">returnCodes.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="settings_8h.html">settings.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_node_8h.html">babNode.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_utils_8h.html">babUtils.h</a>&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;list&gt;</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;utility&gt;</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="comment">// Forward declarations to avoid excessive includes</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="keyword">namespace </span>bab {</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="keyword">class </span>BranchAndBound;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;}    <span class="comment">// end namespace bab</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="keyword">namespace </span>lbp {</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="keyword">class </span>LowerBoundingSolver;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;}    <span class="comment">// end namespace lbp</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="keyword">namespace </span>ubp {</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="keyword">class </span>UpperBoundingSolver;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;}    <span class="comment">// end namespace ubp</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html">   51</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1_m_ai_n_g_o.html">MAiNGO</a> {</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ab4d0923334ce1323a91389117560a271">MAiNGO</a>(std::shared_ptr&lt;MAiNGOmodel&gt; myModel);</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#aa50b9f4993a803eb7ac98dee8ea2fcf1">   62</a></span>&#160;    <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#aa50b9f4993a803eb7ac98dee8ea2fcf1">~MAiNGO</a>() {}</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a1fe4e8690548362eb1ec74fb052a424e">set_model</a>(std::shared_ptr&lt;MAiNGOmodel&gt; myModel);</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    <a class="code" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621a">RETCODE</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a50062c75f198aab4cd975f34fdef1506">solve</a>();</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    <a class="code" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621a">RETCODE</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a4cf012860282bcaff9890e182f4b6886">solve_epsilon_constraint</a>();</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ae2bc7507ee0341d7b0a8ac06702ca964">set_option</a>(<span class="keyword">const</span> std::string &amp;option, <span class="keyword">const</span> <span class="keywordtype">double</span> value);</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a21ee05457f51d5b22853d10cb4114b96">   95</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a21ee05457f51d5b22853d10cb4114b96">set_option</a>(<span class="keyword">const</span> std::string &amp;option, <span class="keyword">const</span> <span class="keywordtype">bool</span> value) { <span class="keywordflow">return</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a21ee05457f51d5b22853d10cb4114b96">set_option</a>(option, (<span class="keywordtype">double</span>)value); }</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a1f8ea652c3ae60bad558c3aeb66f1085">  105</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a1f8ea652c3ae60bad558c3aeb66f1085">set_option</a>(<span class="keyword">const</span> std::string &amp;option, <span class="keyword">const</span> <span class="keywordtype">int</span> value) { <span class="keywordflow">return</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a1f8ea652c3ae60bad558c3aeb66f1085">set_option</a>(option, (<span class="keywordtype">double</span>)value); }</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a0728bb641f5f269763663ce89280bd4f">read_settings</a>(<span class="keyword">const</span> std::string &amp;settingsFileName = <span class="stringliteral">&quot;MAiNGOSettings.txt&quot;</span>);</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a1a4ba608b818d6a2e303b836505e0234">  119</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a1a4ba608b818d6a2e303b836505e0234">set_output_stream</a>(std::ostream *<span class="keyword">const</span> outputStream) { <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#aad666fe69213402bdba8b9972a5985b3">_logger</a>-&gt;set_output_stream(outputStream); }</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a450f5ac09e6afa9e34dc86b59359ae20">  126</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a450f5ac09e6afa9e34dc86b59359ae20">set_log_file_name</a>(<span class="keyword">const</span> std::string &amp;logFileName) { <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#aad666fe69213402bdba8b9972a5985b3">_logger</a>-&gt;logFileName = logFileName; }</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a4dc94835e031b37290f96814486c2903">  133</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a4dc94835e031b37290f96814486c2903">set_result_file_name</a>(<span class="keyword">const</span> std::string &amp;resultFileName) { <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a0a9de764a3521782c3f6e3dc68f01324">_resultFileName</a> = resultFileName; }</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a0157c25ef59573826a916e301e836330">  140</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a0157c25ef59573826a916e301e836330">set_solution_and_statistics_csv_file_name</a>(<span class="keyword">const</span> std::string &amp;csvSolutionStatisticsName) { <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a689902b992cca417907471e82b9526b1">_csvSolutionStatisticsName</a> = csvSolutionStatisticsName; }</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#abe4f3a7b42c05c07e7962be17de02ed3">  147</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#abe4f3a7b42c05c07e7962be17de02ed3">set_iterations_csv_file_name</a>(<span class="keyword">const</span> std::string &amp;csvIterationsName) { <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#aad666fe69213402bdba8b9972a5985b3">_logger</a>-&gt;csvIterationsName = csvIterationsName; }</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a3caca275897742b038011e6fd00b2bdc">  154</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a3caca275897742b038011e6fd00b2bdc">set_json_file_name</a>(<span class="keyword">const</span> std::string &amp;jsonFileName) { <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a0dffde2ace38c3fad7a6cfb38f0f374c">_jsonFileName</a> = jsonFileName; }</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a8acf1fc912457043365faabd54861d50">write_model_to_file_in_other_language</a>(<span class="keyword">const</span> <a class="code" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39a">WRITING_LANGUAGE</a> writingLanguage, std::string fileName = <span class="stringliteral">&quot;&quot;</span>, <span class="keyword">const</span> std::string solverName = <span class="stringliteral">&quot;SCIP&quot;</span>,</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;                                               <span class="keyword">const</span> <span class="keywordtype">bool</span> useMinMax = <span class="keyword">true</span>, <span class="keyword">const</span> <span class="keywordtype">bool</span> useTrig = <span class="keyword">true</span>, <span class="keyword">const</span> <span class="keywordtype">bool</span> ignoreBoundingFuncs = <span class="keyword">false</span>, <span class="keyword">const</span> <span class="keywordtype">bool</span> writeRelaxationOnly = <span class="keyword">true</span>);</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a6f3727adfe69c95ac8e0ca41a7b73fa6">get_objective_value</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a7821624172735057f67471776a8d4aa1">get_solution_point</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a0c15524b2884d3604fc0a5d4b40bcccb">get_cpu_solution_time</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ae1bfc496de0e05575a8f9ad290bd2b58">get_wallclock_solution_time</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a5922fb929208ad9341446f05683555f9">get_iterations</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a22af1a970a5fd23eb347a655c8ae549a">get_max_nodes_in_memory</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a7f8fb94bcf60d8e2ff8a943c12459061">get_UBP_count</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a30f5390432b5701f3ae3b7ff3b0ae680">get_LBP_count</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ace8e13bdb04862efd560c8d0d80950b4">get_final_LBD</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a0ec7e9601a2a5c8cc2f2bcb8d79c66a5">get_final_abs_gap</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#aa244aaeeb4a93592821ab741010df615">get_final_rel_gap</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    <a class="code" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621a">RETCODE</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a16e579b3026a722169cf0f8819ac1ec5">get_status</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#acd561f4e9560a6a5c501bdf444f581b8">evaluate_model_at_solution_point</a>();</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;    std::vector&lt;std::pair&lt;std::string, double&gt;&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a5ee95afece75a72e91aff11274eda43a">evaluate_additional_outputs_at_solution_point</a>();</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;    std::pair&lt;std::vector&lt;double&gt;, <span class="keywordtype">bool</span>&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#aaaa69dd8b526f0d9966ce35bd102601f">evaluate_model_at_point</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;point);</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;    std::vector&lt;std::pair&lt;std::string, double&gt;&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#adeef2c9d324fa8f9a26819b3a3307ad7">evaluate_additional_outputs_at_point</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;point);</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a1a9fa4c0ae0a91178836350b5f5c22d3">print_MAiNGO</a>(std::ostream &amp;outstream = std::cout);</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;    <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ab4d0923334ce1323a91389117560a271">MAiNGO</a>();</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;    <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ab4d0923334ce1323a91389117560a271">MAiNGO</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html">MAiNGO</a> &amp;);</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;    <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html">MAiNGO</a> &amp;<a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a9d035ded892ca2fd6a0151f6ea761d54">operator=</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html">MAiNGO</a> &amp;);</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;</div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;    <a class="code" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621a">RETCODE</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a271c14d25b5423c7c077f8ea206f2818">_analyze_and_solve_problem</a>();</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;    <a class="code" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621a">RETCODE</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a9f726a054960d563d59032b8067701b2">_solve_MIQP</a>();</div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;</div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;    <a class="code" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621a">RETCODE</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ab2b58e658363c359a205cbd435f1f3d3">_solve_MINLP</a>();</div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a9908a4661a24667409c0a0fd5c06fe9f">_construct_DAG</a>();</div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;</div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a803800682d25b4edc28a3536faba2380">_classify_objective_and_constraints</a>(std::vector&lt;mc::FFVar&gt; &amp;tmpFunctions, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;tmpDAGVars);</div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;</div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a56d30ff7a1a221550e6c7c045e5c6feb">_ensure_valid_objective_function_using_dummy_variable</a>(<span class="keyword">const</span> mc::FFVar &amp;dummyVariable);</div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;</div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a9ad31f08fce43a453e9f8e1e39c889bb">_check_for_hidden_zero_constraints</a>(<span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;tmpDAGVars, std::vector&lt;mc::FFVar&gt; &amp;tmpDAGFunctions, std::vector&lt;mc::FFVar&gt; &amp;tmpDAGoutputFunctions);</div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;</div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#af0fdf26f6ae26288a121e6912f0f1023">_add_auxiliary_variables_to_lbd_dag</a>();</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;</div><div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#acdc8a1d98aa50ee3d76dc4873dda787f">_initialize_solve</a>();</div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;</div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ae8688dd8669b0231af0fcedfaefab02c">_root_obbt_feasibility</a>();</div><div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;</div><div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ac685bcf7b2be55e2d689941c1b90fa72">_root_obbt_feasibility_optimality</a>();</div><div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;</div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a622b9622d1e3515be1774111e33b0949">_root_constraint_propagation</a>();</div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;</div><div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#aa5d43df52f00ec1b854f0bf4e67d20de">_root_multistart</a>();</div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;</div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ab57d5aa6e5abb14b5d2bea4063f8db5e">_recognize_structure</a>();</div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;</div><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a6c09add60cfffb752582cf21182a786d">_set_constraint_properties</a>();</div><div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;</div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a108919c79fc8d5fd6e0389ce7b242acb">_print_statistics</a>();</div><div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;</div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a4919a41d851f89b85fbd2646d878a6b0">_print_solution</a>();</div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;</div><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ab5ac4bb96785ca26617e81b55d9a5996">_print_time</a>();</div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;</div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a1056041b9ace71cfbf3807ec436cd80b">_print_additional_output</a>();</div><div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#acb69025e90c11f757a3f74c9b37daacd">_write_files</a>();</div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;</div><div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a7ff011bd8ce28c9dc2e2d24c350698e1">_write_files_error</a>(<span class="keyword">const</span> std::string &amp;errorMessage);</div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;</div><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ab894162dd5074eea1d5dd153e4f72d9e">_write_solution_and_statistics_csv</a>();</div><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;</div><div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a9d8ceaac941b738db96be2326e4db27a">_write_json_file</a>();</div><div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;</div><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a83da0fbc8eeb9b2f336cd5d41707fbaf">_write_result_file</a>();</div><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#abad3366b86f460d436d3c13bfecb147b">_check_feasibility_of_relaxation_only_constraints</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;solutionPoint, std::string &amp;str, <span class="keyword">const</span> std::string &amp;whitespaces);</div><div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;</div><div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#af7aec196a4987e5f38ed642b21400aa9">_write_gams_file</a>(<span class="keyword">const</span> std::string gamsFileName = <span class="stringliteral">&quot;MAiNGO_GAMS_file&quot;</span>, <span class="keyword">const</span> std::string solverName = <span class="stringliteral">&quot;SCIP&quot;</span>, <span class="keyword">const</span> <span class="keywordtype">bool</span> writeRelaxationOnly = <span class="keyword">false</span>);</div><div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;</div><div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a1aff8d80ad642d24966454b8ef35e34a">_write_gams_variables</a>(std::ofstream &amp;gamsFile);</div><div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;</div><div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a0d24d4e085f56925079399567cdf70eb">_write_gams_functions</a>(std::ofstream &amp;gamsFile, <span class="keywordtype">bool</span> writeRelaxationOnly);</div><div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;</div><div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#aa3b2c105e3ebff61b3416c9cdd8bd964">_write_gams_options</a>(std::ofstream &amp;gamsFile, std::string solverName = <span class="stringliteral">&quot;SCIP&quot;</span>);</div><div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;</div><div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ac99ef891ef04bb26071bf37ba510ebfc">_add_linebreaks_to_gams_string</a>(std::string &amp;str);</div><div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;</div><div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a6e2e3685c938ae2e8605dab3f6a13632">_write_ale_file</a>(<span class="keyword">const</span> std::string aleFileName = <span class="stringliteral">&quot;MAiNGO_ALE_file&quot;</span>, <span class="keyword">const</span> std::string solverName = <span class="stringliteral">&quot;SCIP&quot;</span>, <span class="keyword">const</span> <span class="keywordtype">bool</span> writeRelaxationOnly = <span class="keyword">false</span>);</div><div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;</div><div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a6d10798d58ceeac812fb853ca7eccf5c">_write_ale_variables</a>(std::ofstream &amp;aleFile);</div><div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;</div><div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a20c235755de9f0c15ea62c28ae9e2ac8">_write_ale_functions</a>(std::ofstream &amp;aleFile, <span class="keywordtype">bool</span> writeRelaxationOnly);</div><div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;</div><div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a4681879414746b1ac89b905479d6fa1d">_write_ale_options</a>(std::ofstream &amp;aleFile, std::string solverName = <span class="stringliteral">&quot;SCIP&quot;</span>);</div><div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;</div><div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a1eeb14c069d224846f7684d95a90ed04">_print_MAiNGO_header_for_other_modeling_language</a>(<span class="keyword">const</span> <a class="code" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39a">WRITING_LANGUAGE</a> writingLanguage, std::ofstream &amp;file);</div><div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a585967bc628b31b1fbba2105be7d36a2">_print_MAiNGO_header</a>();</div><div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;</div><div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a0a8c5d381ad5818cec8624db717de73a">_print_message</a>(<span class="keyword">const</span> std::string &amp;message);</div><div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;</div><div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a40c4e33f9034542409daa1f0497c776f">_write_epsilon_constraint_result</a>(<span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;objectiveValues, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;solutionPoints);</div><div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;</div><div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;    std::pair&lt;std::vector&lt;double&gt;, <span class="keywordtype">bool</span>&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a241496b3e71881ee3cb7b8be661b44d4">_evaluate_model_at_point</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;point);</div><div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;</div><div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;    std::vector&lt;std::pair&lt;std::string, double&gt;&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a92cbd5e8a92e5c335d57bb23574cf6b2">_evaluate_additional_outputs_at_point</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;point);</div><div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;</div><div class="line"><a name="l00581"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a54d978f1329af4acf801108591eea1f5">  581</a></span>&#160;    mc::FFGraph <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a54d978f1329af4acf801108591eea1f5">_DAG</a>;                                                    </div><div class="line"><a name="l00582"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a06382d115db4ab79eb1c249ab367a086">  582</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a06382d115db4ab79eb1c249ab367a086">_DAGvars</a>;                                     </div><div class="line"><a name="l00583"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#aa5de85da627e5dbdf3c6bf6be2ddad26">  583</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#aa5de85da627e5dbdf3c6bf6be2ddad26">_DAGfunctions</a>;                                </div><div class="line"><a name="l00584"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#ac7d4149849a607fa29b77b90a0a5fa2f">  584</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ac7d4149849a607fa29b77b90a0a5fa2f">_DAGoutputFunctions</a>;                          </div><div class="line"><a name="l00585"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#aa6a02b134e037806dea96aab029ff908">  585</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#aa6a02b134e037806dea96aab029ff908">_resultVars</a>;                                  </div><div class="line"><a name="l00586"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#adf764bba4c067716ca0d9948eca504a8">  586</a></span>&#160;    std::vector&lt;OptimizationVariable&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#adf764bba4c067716ca0d9948eca504a8">_originalVariables</a>;                </div><div class="line"><a name="l00587"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a49594efef0db3f36efcf342acf7c7525">  587</a></span>&#160;    std::vector&lt;OptimizationVariable *&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a49594efef0db3f36efcf342acf7c7525">_infeasibleVariables</a>;            </div><div class="line"><a name="l00588"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a179c701e7f310080876879df45571aae">  588</a></span>&#160;    std::vector&lt;OptimizationVariable&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a179c701e7f310080876879df45571aae">_variables</a>;                        </div><div class="line"><a name="l00589"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#abb425f08ebe9b1d4a71d6b455cd656b9">  589</a></span>&#160;    std::vector&lt;bool&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#abb425f08ebe9b1d4a71d6b455cd656b9">_removedVariables</a>;                                 </div><div class="line"><a name="l00590"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a805b901f0e2e25ee5910b2b0e6a7c99a">  590</a></span>&#160;    std::vector&lt;std::string&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a805b901f0e2e25ee5910b2b0e6a7c99a">_uniqueNamesOriginal</a>;                       </div><div class="line"><a name="l00591"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a4151ba2d1c6b6965001dbf7fc1a7c122">  591</a></span>&#160;    std::vector&lt;std::string&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a4151ba2d1c6b6965001dbf7fc1a7c122">_uniqueNames</a>;                               </div><div class="line"><a name="l00592"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a66df665b487a9136ff45a8e8a76c739c">  592</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a66df665b487a9136ff45a8e8a76c739c">_initialPointOriginal</a>;                           </div><div class="line"><a name="l00593"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a6624f898a20299ccfa4a8fa2f8f7dd28">  593</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a6624f898a20299ccfa4a8fa2f8f7dd28">_initialPoint</a>;                                   </div><div class="line"><a name="l00594"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a1143aeaa67ba99d6ddc224a44d0fbfb5">  594</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a1143aeaa67ba99d6ddc224a44d0fbfb5">_nvarOriginal</a>;                                              </div><div class="line"><a name="l00595"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a24bb95f23a26f300a8a4ca85b9284512">  595</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a24bb95f23a26f300a8a4ca85b9284512">_nvarOriginalContinuous</a>;                                    </div><div class="line"><a name="l00596"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a63e3879fdb8009d459c08fd3a9c719b9">  596</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a63e3879fdb8009d459c08fd3a9c719b9">_nvarOriginalBinary</a>;                                        </div><div class="line"><a name="l00597"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a43a173e24e19fbbd9ea819b105ab39d6">  597</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a43a173e24e19fbbd9ea819b105ab39d6">_nvarOriginalInteger</a>;                                       </div><div class="line"><a name="l00598"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#adf4fee2adeb03682d2ea70239f75848d">  598</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#adf4fee2adeb03682d2ea70239f75848d">_nvar</a>;                                                      </div><div class="line"><a name="l00599"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a91c7c1533effc9589f908b96b67789b3">  599</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a91c7c1533effc9589f908b96b67789b3">_nineq</a>;                                                     </div><div class="line"><a name="l00600"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a4c8d80919a45473feb415dd8fc50b633">  600</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a4c8d80919a45473feb415dd8fc50b633">_neq</a>;                                                       </div><div class="line"><a name="l00601"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a9fb77dded43644f931547ab9d7a3daba">  601</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a9fb77dded43644f931547ab9d7a3daba">_nineqRelaxationOnly</a>;                                       </div><div class="line"><a name="l00602"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#aa369cfa7bcc0161aacefe22da9595d81">  602</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#aa369cfa7bcc0161aacefe22da9595d81">_neqRelaxationOnly</a>;                                         </div><div class="line"><a name="l00603"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a65d8859f0f4b4e6dfec43c4238d24772">  603</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a65d8859f0f4b4e6dfec43c4238d24772">_nineqSquash</a>;                                               </div><div class="line"><a name="l00604"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#ae90a5539fd3c1790b49289c919948da7">  604</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ae90a5539fd3c1790b49289c919948da7">_noutputVariables</a>;                                          </div><div class="line"><a name="l00605"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a0dac873a62bd24b60f87bb017d2db2c8">  605</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a0dac873a62bd24b60f87bb017d2db2c8">_nconstantIneq</a>;                                             </div><div class="line"><a name="l00606"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#ae327014202f53c1f3f0fab024b1d6da7">  606</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ae327014202f53c1f3f0fab024b1d6da7">_nconstantEq</a>;                                               </div><div class="line"><a name="l00607"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a0029f4da8b4ec58568bc2419f698e7d7">  607</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a0029f4da8b4ec58568bc2419f698e7d7">_nconstantIneqRelOnly</a>;                                      </div><div class="line"><a name="l00608"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a11a108eb587e3fac7651f2969aadff2f">  608</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a11a108eb587e3fac7651f2969aadff2f">_nconstantEqRelOnly</a>;                                        </div><div class="line"><a name="l00609"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#ac2442f5c69a4a26d3b6e764c8a3170b3">  609</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ac2442f5c69a4a26d3b6e764c8a3170b3">_nconstantIneqSquash</a>;                                       </div><div class="line"><a name="l00610"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#ad33f6f1b9cb0e07b0e44bcb5297d860f">  610</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ad33f6f1b9cb0e07b0e44bcb5297d860f">_nconstantOutputVariables</a>;                                  </div><div class="line"><a name="l00611"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a5cbd854078dc3fbef193c14af2e7a11d">  611</a></span>&#160;    std::vector&lt;std::string&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a5cbd854078dc3fbef193c14af2e7a11d">_outputNames</a>;                               </div><div class="line"><a name="l00612"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a690afb91dfea9350cd401dc4c9390c4a">  612</a></span>&#160;    std::shared_ptr&lt;MAiNGOmodel&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a690afb91dfea9350cd401dc4c9390c4a">_myFFVARmodel</a>;                          </div><div class="line"><a name="l00613"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#aa19003266d3acb3b042f282e8bf1e575">  613</a></span>&#160;    <a class="code" href="structmaingo_1_1_evaluation_container.html">EvaluationContainer</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#aa19003266d3acb3b042f282e8bf1e575">_modelOutput</a>;                                    </div><div class="line"><a name="l00614"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a9c4f03e80eafd073264fb0d2f186dc81">  614</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a9c4f03e80eafd073264fb0d2f186dc81">_readyToSolve</a>;                                                  </div><div class="line"><a name="l00615"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a5d59280b371782eaeaf887073ae7b77a">  615</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a5d59280b371782eaeaf887073ae7b77a">_DAGconstructed</a>;                                                </div><div class="line"><a name="l00616"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#aeae47f2ca5ba67f042e035711690fec1">  616</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#aeae47f2ca5ba67f042e035711690fec1">_variablesFeasible</a>;                                             </div><div class="line"><a name="l00617"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#af917f2f3529a7c92bb0b972607c1e8df">  617</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#af917f2f3529a7c92bb0b972607c1e8df">_constantConstraintsFeasible</a>;                                   </div><div class="line"><a name="l00618"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a8b2bcd5e079464178341f24169e45bbc">  618</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a8b2bcd5e079464178341f24169e45bbc">_feasibilityProblem</a>;                                            </div><div class="line"><a name="l00619"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a88c7a2689b32500ebf09bf37de06d47f">  619</a></span>&#160;    std::shared_ptr&lt;std::vector&lt;Constraint&gt;&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a88c7a2689b32500ebf09bf37de06d47f">_originalConstraints</a>;       </div><div class="line"><a name="l00620"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#abb011b283ec6da5387c24804ba59ff6d">  620</a></span>&#160;    std::shared_ptr&lt;std::vector&lt;Constraint&gt;&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#abb011b283ec6da5387c24804ba59ff6d">_constantConstraints</a>;       </div><div class="line"><a name="l00621"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a8dacc1f270014ea3c70dee5451abae62">  621</a></span>&#160;    std::shared_ptr&lt;std::vector&lt;Constraint&gt;&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a8dacc1f270014ea3c70dee5451abae62">_nonconstantConstraints</a>;    </div><div class="line"><a name="l00622"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a0d1cde74073424f84d8b4692a8406101">  622</a></span>&#160;    std::shared_ptr&lt;std::vector&lt;Constraint&gt;&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a0d1cde74073424f84d8b4692a8406101">_nonconstantConstraintsUBP</a>; </div><div class="line"><a name="l00623"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#aded61d763cefceab6bf099cf9d891cff">  623</a></span>&#160;    std::shared_ptr&lt;std::vector&lt;Constraint&gt;&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#aded61d763cefceab6bf099cf9d891cff">_constantOutputs</a>;           </div><div class="line"><a name="l00624"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#ae1bb7b84481f6f827f61d84601fe9869">  624</a></span>&#160;    std::shared_ptr&lt;std::vector&lt;Constraint&gt;&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ae1bb7b84481f6f827f61d84601fe9869">_nonconstantOutputs</a>;        </div><div class="line"><a name="l00631"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a2771b7011d669e1db37b8b3ef00ab4a5">  631</a></span>&#160;    mc::FFGraph <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a2771b7011d669e1db37b8b3ef00ab4a5">_DAGlbd</a>;                             </div><div class="line"><a name="l00632"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a2fd3f75ee25d495eb9f08ab7597f3742">  632</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a2fd3f75ee25d495eb9f08ab7597f3742">_DAGvarsLbd</a>;              </div><div class="line"><a name="l00633"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a4751e009b5a1228a1324a8ff1ccac4fb">  633</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a4751e009b5a1228a1324a8ff1ccac4fb">_DAGfunctionsLbd</a>;         </div><div class="line"><a name="l00634"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a011bbb5f80dad5bc568f0537931a5369">  634</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a011bbb5f80dad5bc568f0537931a5369">_DAGoutputFunctionsLbd</a>;   </div><div class="line"><a name="l00635"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a3bfd617c12d3ee731e314f8f806b4da0">  635</a></span>&#160;    std::vector&lt;OptimizationVariable&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a3bfd617c12d3ee731e314f8f806b4da0">_variablesLbd</a>; </div><div class="line"><a name="l00636"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#af0c4e2dcc05ca034801db5400f8d2fa7">  636</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#af0c4e2dcc05ca034801db5400f8d2fa7">_nvarLbd</a>;                               </div><div class="line"><a name="l00637"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a35f8250e9023121b2b3303211a5cbc99">  637</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a35f8250e9023121b2b3303211a5cbc99">_nauxiliaryRelOnlyEqs</a>;                  </div><div class="line"><a name="l00644"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#ac39c6e7cc69822997e9fb18721e2e52f">  644</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ac39c6e7cc69822997e9fb18721e2e52f">_solutionPoint</a>;      </div><div class="line"><a name="l00645"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a462440b0556dae9e3c515a2d3c661b13">  645</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a462440b0556dae9e3c515a2d3c661b13">_solutionValue</a>;                   </div><div class="line"><a name="l00646"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#ac3c772c7a634ef58c452ba9921902b53">  646</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ac3c772c7a634ef58c452ba9921902b53">_solutionTime</a>;                    </div><div class="line"><a name="l00647"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#aa297393a110200243b693cf5f0fed0cb">  647</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#aa297393a110200243b693cf5f0fed0cb">_preprocessTime</a>;                  </div><div class="line"><a name="l00648"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a917d78c01e2442296f829977491e6107">  648</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a917d78c01e2442296f829977491e6107">_babTime</a>;                         </div><div class="line"><a name="l00649"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a101ac517abb98426ff61a29feb27e7a1">  649</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a101ac517abb98426ff61a29feb27e7a1">_outputTime</a>;                      </div><div class="line"><a name="l00650"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a041316b6a1ce0e0d78249719e5075d0b">  650</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a041316b6a1ce0e0d78249719e5075d0b">_solutionTimeWallClock</a>;           </div><div class="line"><a name="l00651"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#ace36a8a82262f885ae5f87be65d868db">  651</a></span>&#160;    <a class="code" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621a">RETCODE</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ace36a8a82262f885ae5f87be65d868db">_maingoStatus</a>;                   </div><div class="line"><a name="l00652"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a038bd07379ad5ac438d7253f67e5f456">  652</a></span>&#160;    <a class="code" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ece">PROBLEM_STRUCTURE</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a038bd07379ad5ac438d7253f67e5f456">_problemStructure</a>;     </div><div class="line"><a name="l00653"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#ae90d120eacc929b19609c6dcd9017fa6">  653</a></span>&#160;    <a class="code" href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fc">TIGHTENING_RETCODE</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ae90d120eacc929b19609c6dcd9017fa6">_rootObbtStatus</a>;      </div><div class="line"><a name="l00654"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#abd3d18c6d0825a1fdf892aed43ef5deb">  654</a></span>&#160;    <a class="code" href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fc">TIGHTENING_RETCODE</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#abd3d18c6d0825a1fdf892aed43ef5deb">_rootConPropStatus</a>;   </div><div class="line"><a name="l00655"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a4940dbf6b13e10e500cb7704b3f6d412">  655</a></span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a4940dbf6b13e10e500cb7704b3f6d412">_rootMultistartStatus</a>; </div><div class="line"><a name="l00656"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a31692cc54ec24e14fbd7bfccda000d16">  656</a></span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a31692cc54ec24e14fbd7bfccda000d16">_miqpStatus</a>;           </div><div class="line"><a name="l00657"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a08c2039814522b8addbf0a1d740397d3">  657</a></span>&#160;    <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a08c2039814522b8addbf0a1d740397d3">_rootNode</a>;              </div><div class="line"><a name="l00658"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a8fe800a4fd347fc64b3f26de987c13f5">  658</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2">babBase::enums::BAB_RETCODE</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a8fe800a4fd347fc64b3f26de987c13f5">_babStatus</a>;  </div><div class="line"><a name="l00665"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a4a3174283651d6da792c3270c9a0e4a6">  665</a></span>&#160;    std::shared_ptr&lt;lbp::LowerBoundingSolver&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a4a3174283651d6da792c3270c9a0e4a6">_myLBS</a>;    </div><div class="line"><a name="l00666"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a05c6ffd319ab0ee58791f14564871824">  666</a></span>&#160;    std::shared_ptr&lt;ubp::UpperBoundingSolver&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a05c6ffd319ab0ee58791f14564871824">_myUBSPre</a>; </div><div class="line"><a name="l00667"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a647cd64be05eac973598fc4b8328d866">  667</a></span>&#160;    std::shared_ptr&lt;ubp::UpperBoundingSolver&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a647cd64be05eac973598fc4b8328d866">_myUBSBab</a>; </div><div class="line"><a name="l00668"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#ab11fb623cd53b982490aa87f7f7da9e7">  668</a></span>&#160;    std::shared_ptr&lt;bab::BranchAndBound&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ab11fb623cd53b982490aa87f7f7da9e7">_myBaB</a>;         </div><div class="line"><a name="l00675"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#acdbebd94e2fcccad46515741516799de">  675</a></span>&#160;    std::shared_ptr&lt;Settings&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#acdbebd94e2fcccad46515741516799de">_maingoSettings</a> = std::make_shared&lt;Settings&gt;(); </div><div class="line"><a name="l00676"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a020f2b61ca2d2baabf16031f078c2ddd">  676</a></span>&#160;    <a class="code" href="structmaingo_1_1_settings.html">Settings</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a020f2b61ca2d2baabf16031f078c2ddd">_maingoOriginalSettings</a>;                                         </div><div class="line"><a name="l00682"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#aad666fe69213402bdba8b9972a5985b3">  682</a></span>&#160;    std::shared_ptr&lt;Logger&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#aad666fe69213402bdba8b9972a5985b3">_logger</a>        = std::make_shared&lt;Logger&gt;();   </div><div class="line"><a name="l00683"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a0dffde2ace38c3fad7a6cfb38f0f374c">  683</a></span>&#160;    std::string <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a0dffde2ace38c3fad7a6cfb38f0f374c">_jsonFileName</a>              = <span class="stringliteral">&quot;statisticsAndSolution.json&quot;</span>; </div><div class="line"><a name="l00684"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a0a9de764a3521782c3f6e3dc68f01324">  684</a></span>&#160;    std::string <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a0a9de764a3521782c3f6e3dc68f01324">_resultFileName</a>            = <span class="stringliteral">&quot;MAiNGOresult.txt&quot;</span>;           </div><div class="line"><a name="l00685"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a689902b992cca417907471e82b9526b1">  685</a></span>&#160;    std::string <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a689902b992cca417907471e82b9526b1">_csvSolutionStatisticsName</a> = <span class="stringliteral">&quot;statisticsAndSolution.csv&quot;</span>;  </div><div class="line"><a name="l00692"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a11b956f66ea516b6951abe9dd2410484">  692</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a11b956f66ea516b6951abe9dd2410484">_objectivesAtRoot</a>;          </div><div class="line"><a name="l00693"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#ae51edfeecb90cf3be1d6cabf9d18c9eb">  693</a></span>&#160;    std::vector&lt;SUBSOLVER_RETCODE&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#ae51edfeecb90cf3be1d6cabf9d18c9eb">_feasibleAtRoot</a>; </div><div class="line"><a name="l00694"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a7e35d3a30d8a5eab184d18fe256ffc57">  694</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a7e35d3a30d8a5eab184d18fe256ffc57">_initialPointFeasible</a>;                     </div><div class="line"><a name="l00695"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o.html#a9292f5cf116f7607400a75a036c88244">  695</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o.html#a9292f5cf116f7607400a75a036c88244">_inMAiNGOsolve</a> = <span class="keyword">false</span>;                    </div><div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;<span class="preprocessor">#ifdef HAVE_MAiNGO_MPI</span></div><div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;</div><div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;    <span class="keywordtype">int</span> _rank;   </div><div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;    <span class="keywordtype">int</span> _nProcs; </div><div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;</div><div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;};    <span class="comment">// end of class MAiNGO</span></div><div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;</div><div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;</div><div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;}    <span class="comment">// end of namespace maingo</span></div><div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a450f5ac09e6afa9e34dc86b59359ae20"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a450f5ac09e6afa9e34dc86b59359ae20">maingo::MAiNGO::set_log_file_name</a></div><div class="ttdeci">void set_log_file_name(const std::string &amp;logFileName)</div><div class="ttdoc">Sets name of the log file into which logging information may be written. </div><div class="ttdef"><b>Definition:</b> MAiNGO.h:126</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_aa5d43df52f00ec1b854f0bf4e67d20de"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#aa5d43df52f00ec1b854f0bf4e67d20de">maingo::MAiNGO::_root_multistart</a></div><div class="ttdeci">void _root_multistart()</div><div class="ttdoc">Conducts multistart local search at the root node. </div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:1476</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a11b956f66ea516b6951abe9dd2410484"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a11b956f66ea516b6951abe9dd2410484">maingo::MAiNGO::_objectivesAtRoot</a></div><div class="ttdeci">std::vector&lt; double &gt; _objectivesAtRoot</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:692</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a038bd07379ad5ac438d7253f67e5f456"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a038bd07379ad5ac438d7253f67e5f456">maingo::MAiNGO::_problemStructure</a></div><div class="ttdeci">PROBLEM_STRUCTURE _problemStructure</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:652</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ac3c772c7a634ef58c452ba9921902b53"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ac3c772c7a634ef58c452ba9921902b53">maingo::MAiNGO::_solutionTime</a></div><div class="ttdeci">double _solutionTime</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:646</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ae8688dd8669b0231af0fcedfaefab02c"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ae8688dd8669b0231af0fcedfaefab02c">maingo::MAiNGO::_root_obbt_feasibility</a></div><div class="ttdeci">void _root_obbt_feasibility()</div><div class="ttdoc">Conducts feasibility-based bound tightening at the root node. </div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:1265</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a0029f4da8b4ec58568bc2419f698e7d7"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a0029f4da8b4ec58568bc2419f698e7d7">maingo::MAiNGO::_nconstantIneqRelOnly</a></div><div class="ttdeci">unsigned _nconstantIneqRelOnly</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:607</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a0dac873a62bd24b60f87bb017d2db2c8"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a0dac873a62bd24b60f87bb017d2db2c8">maingo::MAiNGO::_nconstantIneq</a></div><div class="ttdeci">unsigned _nconstantIneq</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:605</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a041316b6a1ce0e0d78249719e5075d0b"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a041316b6a1ce0e0d78249719e5075d0b">maingo::MAiNGO::_solutionTimeWallClock</a></div><div class="ttdeci">double _solutionTimeWallClock</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:650</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a647cd64be05eac973598fc4b8328d866"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a647cd64be05eac973598fc4b8328d866">maingo::MAiNGO::_myUBSBab</a></div><div class="ttdeci">std::shared_ptr&lt; ubp::UpperBoundingSolver &gt; _myUBSBab</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:667</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_aa297393a110200243b693cf5f0fed0cb"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#aa297393a110200243b693cf5f0fed0cb">maingo::MAiNGO::_preprocessTime</a></div><div class="ttdeci">double _preprocessTime</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:647</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a4751e009b5a1228a1324a8ff1ccac4fb"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a4751e009b5a1228a1324a8ff1ccac4fb">maingo::MAiNGO::_DAGfunctionsLbd</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; _DAGfunctionsLbd</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:633</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ae90a5539fd3c1790b49289c919948da7"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ae90a5539fd3c1790b49289c919948da7">maingo::MAiNGO::_noutputVariables</a></div><div class="ttdeci">unsigned _noutputVariables</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:604</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ae1bfc496de0e05575a8f9ad290bd2b58"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ae1bfc496de0e05575a8f9ad290bd2b58">maingo::MAiNGO::get_wallclock_solution_time</a></div><div class="ttdeci">double get_wallclock_solution_time() const</div><div class="ttdoc">Function returning wallclock solution time. </div><div class="ttdef"><b>Definition:</b> MAiNGOgetterFunctions.cpp:78</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a803800682d25b4edc28a3536faba2380"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a803800682d25b4edc28a3536faba2380">maingo::MAiNGO::_classify_objective_and_constraints</a></div><div class="ttdeci">void _classify_objective_and_constraints(std::vector&lt; mc::FFVar &gt; &amp;tmpFunctions, const std::vector&lt; mc::FFVar &gt; &amp;tmpDAGVars)</div><div class="ttdoc">Fills the constraints vectors (original, constant, non-constant) and outputs and writes non-constant ...</div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:1716</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_aa369cfa7bcc0161aacefe22da9595d81"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#aa369cfa7bcc0161aacefe22da9595d81">maingo::MAiNGO::_neqRelaxationOnly</a></div><div class="ttdeci">unsigned _neqRelaxationOnly</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:602</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a0a8c5d381ad5818cec8624db717de73a"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a0a8c5d381ad5818cec8624db717de73a">maingo::MAiNGO::_print_message</a></div><div class="ttdeci">void _print_message(const std::string &amp;message)</div><div class="ttdoc">Prints message with beautiful &amp;#39;*&amp;#39; box. </div><div class="ttdef"><b>Definition:</b> MAiNGOprintingFunctions.cpp:441</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ace36a8a82262f885ae5f87be65d868db"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ace36a8a82262f885ae5f87be65d868db">maingo::MAiNGO::_maingoStatus</a></div><div class="ttdeci">RETCODE _maingoStatus</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:651</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a0157c25ef59573826a916e301e836330"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a0157c25ef59573826a916e301e836330">maingo::MAiNGO::set_solution_and_statistics_csv_file_name</a></div><div class="ttdeci">void set_solution_and_statistics_csv_file_name(const std::string &amp;csvSolutionStatisticsName)</div><div class="ttdoc">Sets names of the csv file into which the solution and statistics may be written. ...</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:140</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_aded61d763cefceab6bf099cf9d891cff"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#aded61d763cefceab6bf099cf9d891cff">maingo::MAiNGO::_constantOutputs</a></div><div class="ttdeci">std::shared_ptr&lt; std::vector&lt; Constraint &gt; &gt; _constantOutputs</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:623</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a5922fb929208ad9341446f05683555f9"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a5922fb929208ad9341446f05683555f9">maingo::MAiNGO::get_iterations</a></div><div class="ttdeci">double get_iterations() const</div><div class="ttdoc">Function returning the number of iterations. </div><div class="ttdef"><b>Definition:</b> MAiNGOgetterFunctions.cpp:92</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a4151ba2d1c6b6965001dbf7fc1a7c122"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a4151ba2d1c6b6965001dbf7fc1a7c122">maingo::MAiNGO::_uniqueNames</a></div><div class="ttdeci">std::vector&lt; std::string &gt; _uniqueNames</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:591</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ae1bb7b84481f6f827f61d84601fe9869"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ae1bb7b84481f6f827f61d84601fe9869">maingo::MAiNGO::_nonconstantOutputs</a></div><div class="ttdeci">std::shared_ptr&lt; std::vector&lt; Constraint &gt; &gt; _nonconstantOutputs</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:624</div></div>
+<div class="ttc" id="namespacebab_base_1_1enums_html_a2c4d021a83d3363ae57623c7376761d2"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2">babBase::enums::BAB_RETCODE</a></div><div class="ttdeci">BAB_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the B&amp;B solver. </div><div class="ttdef"><b>Definition:</b> babUtils.h:126</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a6d10798d58ceeac812fb853ca7eccf5c"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a6d10798d58ceeac812fb853ca7eccf5c">maingo::MAiNGO::_write_ale_variables</a></div><div class="ttdeci">void _write_ale_variables(std::ofstream &amp;aleFile)</div><div class="ttdoc">Function writing variables, variable bounds and a initial point in the ale file. </div><div class="ttdef"><b>Definition:</b> MAiNGOtoOtherLanguage.cpp:683</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ace8e13bdb04862efd560c8d0d80950b4"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ace8e13bdb04862efd560c8d0d80950b4">maingo::MAiNGO::get_final_LBD</a></div><div class="ttdeci">double get_final_LBD() const</div><div class="ttdoc">Function returning the final LBD. </div><div class="ttdef"><b>Definition:</b> MAiNGOgetterFunctions.cpp:168</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_abd3d18c6d0825a1fdf892aed43ef5deb"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#abd3d18c6d0825a1fdf892aed43ef5deb">maingo::MAiNGO::_rootConPropStatus</a></div><div class="ttdeci">TIGHTENING_RETCODE _rootConPropStatus</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:654</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_aeae47f2ca5ba67f042e035711690fec1"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#aeae47f2ca5ba67f042e035711690fec1">maingo::MAiNGO::_variablesFeasible</a></div><div class="ttdeci">bool _variablesFeasible</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:616</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a63e3879fdb8009d459c08fd3a9c719b9"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a63e3879fdb8009d459c08fd3a9c719b9">maingo::MAiNGO::_nvarOriginalBinary</a></div><div class="ttdeci">unsigned _nvarOriginalBinary</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:596</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a4c8d80919a45473feb415dd8fc50b633"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a4c8d80919a45473feb415dd8fc50b633">maingo::MAiNGO::_neq</a></div><div class="ttdeci">unsigned _neq</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:600</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ac685bcf7b2be55e2d689941c1b90fa72"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ac685bcf7b2be55e2d689941c1b90fa72">maingo::MAiNGO::_root_obbt_feasibility_optimality</a></div><div class="ttdeci">void _root_obbt_feasibility_optimality()</div><div class="ttdoc">Conducts feasibility- and optimality-based bound tightening at the root node. </div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:1336</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html"><div class="ttname"><a href="classbab_base_1_1_bab_node.html">babBase::BabNode</a></div><div class="ttdoc">Class representing a node in the Branch-and-Bound tree. </div><div class="ttdef"><b>Definition:</b> babNode.h:35</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a9d8ceaac941b738db96be2326e4db27a"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a9d8ceaac941b738db96be2326e4db27a">maingo::MAiNGO::_write_json_file</a></div><div class="ttdeci">void _write_json_file()</div><div class="ttdoc">Write json summaries to disk. </div><div class="ttdef"><b>Definition:</b> MAiNGOwritingFunctions.cpp:298</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a8fe800a4fd347fc64b3f26de987c13f5"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a8fe800a4fd347fc64b3f26de987c13f5">maingo::MAiNGO::_babStatus</a></div><div class="ttdeci">babBase::enums::BAB_RETCODE _babStatus</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:658</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a011bbb5f80dad5bc568f0537931a5369"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a011bbb5f80dad5bc568f0537931a5369">maingo::MAiNGO::_DAGoutputFunctionsLbd</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; _DAGoutputFunctionsLbd</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:634</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a462440b0556dae9e3c515a2d3c661b13"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a462440b0556dae9e3c515a2d3c661b13">maingo::MAiNGO::_solutionValue</a></div><div class="ttdeci">double _solutionValue</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:645</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_adf764bba4c067716ca0d9948eca504a8"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#adf764bba4c067716ca0d9948eca504a8">maingo::MAiNGO::_originalVariables</a></div><div class="ttdeci">std::vector&lt; OptimizationVariable &gt; _originalVariables</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:586</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ab57d5aa6e5abb14b5d2bea4063f8db5e"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ab57d5aa6e5abb14b5d2bea4063f8db5e">maingo::MAiNGO::_recognize_structure</a></div><div class="ttdeci">void _recognize_structure()</div><div class="ttdoc">Uses mc::FFDep properties and the DAG to obtain information on the structure of the underlying proble...</div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:1551</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_aa244aaeeb4a93592821ab741010df615"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#aa244aaeeb4a93592821ab741010df615">maingo::MAiNGO::get_final_rel_gap</a></div><div class="ttdeci">double get_final_rel_gap() const</div><div class="ttdoc">Function returning the final relative gap. </div><div class="ttdef"><b>Definition:</b> MAiNGOgetterFunctions.cpp:206</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_af7aec196a4987e5f38ed642b21400aa9"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#af7aec196a4987e5f38ed642b21400aa9">maingo::MAiNGO::_write_gams_file</a></div><div class="ttdeci">void _write_gams_file(const std::string gamsFileName=&quot;MAiNGO_GAMS_file&quot;, const std::string solverName=&quot;SCIP&quot;, const bool writeRelaxationOnly=false)</div><div class="ttdoc">Writes MAiNGO problem to GAMS file. </div><div class="ttdef"><b>Definition:</b> MAiNGOtoOtherLanguage.cpp:114</div></div>
 <div class="ttc" id="bab_node_8h_html"><div class="ttname"><a href="bab_node_8h.html">babNode.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a7821624172735057f67471776a8d4aa1"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a7821624172735057f67471776a8d4aa1">maingo::MAiNGO::get_solution_point</a></div><div class="ttdeci">std::vector&lt; double &gt; get_solution_point() const</div><div class="ttdoc">Function returning solution point.</div><div class="ttdef"><b>Definition:</b> MAiNGOgetterFunctions.cpp:41</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a179c701e7f310080876879df45571aae"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a179c701e7f310080876879df45571aae">maingo::MAiNGO::_variables</a></div><div class="ttdeci">std::vector&lt; OptimizationVariable &gt; _variables</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:559</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a9d2cbee1f5ecf3321e2e5334e70757fe"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a9d2cbee1f5ecf3321e2e5334e70757fe">maingo::MAiNGO::read_settings</a></div><div class="ttdeci">void read_settings(std::string settingsFile)</div><div class="ttdoc">Reads settings from text file.</div><div class="ttdef"><b>Definition:</b> MAiNGOwritingFunctions.cpp:492</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html"><div class="ttname"><a href="structmaingo_1_1_settings.html">maingo::Settings</a></div><div class="ttdoc">Struct for storing settings for MAiNGO.</div><div class="ttdef"><b>Definition:</b> settings.h:143</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a52df8cc85640aaee13afb5cd5748dbcc"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a52df8cc85640aaee13afb5cd5748dbcc">maingo::MAiNGO::get_additional_outputs_at_point</a></div><div class="ttdeci">std::vector&lt; std::pair&lt; std::string, double &gt; &gt; get_additional_outputs_at_point(const std::vector&lt; double &gt; &amp;point)</div><div class="ttdoc">Function returning values of the additional outputs of the set model at a point.</div><div class="ttdef"><b>Definition:</b> MAiNGOgetterFunctions.cpp:319</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a2771b7011d669e1db37b8b3ef00ab4a5"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a2771b7011d669e1db37b8b3ef00ab4a5">maingo::MAiNGO::_DAGlbd</a></div><div class="ttdeci">mc::FFGraph _DAGlbd</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:601</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a31692cc54ec24e14fbd7bfccda000d16"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a31692cc54ec24e14fbd7bfccda000d16">maingo::MAiNGO::_miqpStatus</a></div><div class="ttdeci">SUBSOLVER_RETCODE _miqpStatus</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:626</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a9292f5cf116f7607400a75a036c88244"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a9292f5cf116f7607400a75a036c88244">maingo::MAiNGO::_inMAiNGOsolve</a></div><div class="ttdeci">bool _inMAiNGOsolve</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:652</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a530c347d65ac74a1cf871e385ec18cc4"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a530c347d65ac74a1cf871e385ec18cc4">maingo::MAiNGO::set_csv_file_name</a></div><div class="ttdeci">void set_csv_file_name(std::string csvIterationsName=&quot;bab_Report_Iterations&quot;, std::string csvGeneralName=&quot;bab_Report_General&quot;)</div><div class="ttdoc">Sets names of the csv files.</div><div class="ttdef"><b>Definition:</b> MAiNGOwritingFunctions.cpp:264</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a7f8fb94bcf60d8e2ff8a943c12459061"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a7f8fb94bcf60d8e2ff8a943c12459061">maingo::MAiNGO::get_UBP_count</a></div><div class="ttdeci">double get_UBP_count() const</div><div class="ttdoc">Function returning number of UBD problems solved.</div><div class="ttdef"><b>Definition:</b> MAiNGOgetterFunctions.cpp:134</div></div>
-<div class="ttc" id="manual_8h_html"><div class="ttname"><a href="manual_8h.html">manual.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a6c09add60cfffb752582cf21182a786d"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a6c09add60cfffb752582cf21182a786d">maingo::MAiNGO::_set_constraint_properties</a></div><div class="ttdeci">void _set_constraint_properties()</div><div class="ttdoc">Uses mc::FFDep properties and the DAG to obtain information on the properties of constraints.</div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:2352</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a4a3174283651d6da792c3270c9a0e4a6"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a4a3174283651d6da792c3270c9a0e4a6">maingo::MAiNGO::_myLBS</a></div><div class="ttdeci">std::shared_ptr&lt; lbp::LowerBoundingSolver &gt; _myLBS</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:635</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a9ad31f08fce43a453e9f8e1e39c889bb"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a9ad31f08fce43a453e9f8e1e39c889bb">maingo::MAiNGO::_check_for_hidden_zero_constraints</a></div><div class="ttdeci">bool _check_for_hidden_zero_constraints(const std::vector&lt; mc::FFVar &gt; &amp;tmpDAGVars, std::vector&lt; mc::FFVar &gt; &amp;tmpDAGFunctions, std::vector&lt; mc::FFVar &gt; &amp;tmpDAGoutputFunctions)</div><div class="ttdoc">Checks if the constraints are non-zero (constant) after the DAG has been constructed (this may happen...</div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:1981</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a06382d115db4ab79eb1c249ab367a086"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a06382d115db4ab79eb1c249ab367a086">maingo::MAiNGO::_DAGvars</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; _DAGvars</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:553</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a108919c79fc8d5fd6e0389ce7b242acb"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a108919c79fc8d5fd6e0389ce7b242acb">maingo::MAiNGO::_print_statistics</a></div><div class="ttdeci">void _print_statistics()</div><div class="ttdoc">Prints problem &amp; solution statistics on screen.</div><div class="ttdef"><b>Definition:</b> MAiNGOprintingFunctions.cpp:29</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a72b6d958b300d7fc886b74790b001aeb"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a72b6d958b300d7fc886b74790b001aeb">maingo::MAiNGO::_write_files_error</a></div><div class="ttdeci">void _write_files_error(const std::string &amp;error)</div><div class="ttdoc">Writes logging and csv information to disk when an error occurs.</div><div class="ttdef"><b>Definition:</b> MAiNGOwritingFunctions.cpp:56</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a101ac517abb98426ff61a29feb27e7a1"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a101ac517abb98426ff61a29feb27e7a1">maingo::MAiNGO::_outputTime</a></div><div class="ttdeci">double _outputTime</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:619</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a08c2039814522b8addbf0a1d740397d3"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a08c2039814522b8addbf0a1d740397d3">maingo::MAiNGO::_rootNode</a></div><div class="ttdeci">babBase::BabNode _rootNode</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:627</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a7e35d3a30d8a5eab184d18fe256ffc57"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a7e35d3a30d8a5eab184d18fe256ffc57">maingo::MAiNGO::_initialPointFeasible</a></div><div class="ttdeci">bool _initialPointFeasible</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:651</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a6624f898a20299ccfa4a8fa2f8f7dd28"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a6624f898a20299ccfa4a8fa2f8f7dd28">maingo::MAiNGO::_initialPoint</a></div><div class="ttdeci">std::vector&lt; double &gt; _initialPoint</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:564</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ace95ba4340090ffaafec40a30504ccb4"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ace95ba4340090ffaafec40a30504ccb4">maingo::MAiNGO::_nonconstantOutputs</a></div><div class="ttdeci">std::vector&lt; Constraint &gt; _nonconstantOutputs</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:594</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a4cf012860282bcaff9890e182f4b6886"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a4cf012860282bcaff9890e182f4b6886">maingo::MAiNGO::solve_epsilon_constraint</a></div><div class="ttdeci">RETCODE solve_epsilon_constraint()</div><div class="ttdoc">Solve a multi-objective problem using the epsilon-constraint method.</div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:179</div></div>
-<div class="ttc" id="namespacemaingo_html_ae85bf383216b1907f0021c60fa20621a"><div class="ttname"><a href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621a">maingo::RETCODE</a></div><div class="ttdeci">RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by MAiNGO after the solve() function was called.</div><div class="ttdef"><b>Definition:</b> returnCodes.h:26</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a020f2b61ca2d2baabf16031f078c2ddd"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a020f2b61ca2d2baabf16031f078c2ddd">maingo::MAiNGO::_maingoOriginalSettings</a></div><div class="ttdeci">Settings _maingoOriginalSettings</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:642</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_aa19003266d3acb3b042f282e8bf1e575"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#aa19003266d3acb3b042f282e8bf1e575">maingo::MAiNGO::_modelOutput</a></div><div class="ttdeci">EvaluationContainer _modelOutput</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:584</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_acdc8a1d98aa50ee3d76dc4873dda787f"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#acdc8a1d98aa50ee3d76dc4873dda787f">maingo::MAiNGO::_initialize_solve</a></div><div class="ttdeci">void _initialize_solve()</div><div class="ttdoc">Initializes subsolvers and internal solution variables for the solution of an LP, MIP,...</div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:1220</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a91c7c1533effc9589f908b96b67789b3"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a91c7c1533effc9589f908b96b67789b3">maingo::MAiNGO::_nineq</a></div><div class="ttdeci">unsigned _nineq</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:570</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a22af1a970a5fd23eb347a655c8ae549a"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a22af1a970a5fd23eb347a655c8ae549a">maingo::MAiNGO::get_max_nodes_in_memory</a></div><div class="ttdeci">double get_max_nodes_in_memory() const</div><div class="ttdoc">Function returning the maximum number of nodes in memory.</div><div class="ttdef"><b>Definition:</b> MAiNGOgetterFunctions.cpp:115</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a24bb95f23a26f300a8a4ca85b9284512"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a24bb95f23a26f300a8a4ca85b9284512">maingo::MAiNGO::_nvarOriginalContinuous</a></div><div class="ttdeci">unsigned _nvarOriginalContinuous</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:566</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a622b9622d1e3515be1774111e33b0949"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a622b9622d1e3515be1774111e33b0949">maingo::MAiNGO::_root_constraint_propagation</a></div><div class="ttdeci">void _root_constraint_propagation()</div><div class="ttdoc">Conducts feasibility- and optimality-based bound tightening at the root node.</div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:1448</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ae90d120eacc929b19609c6dcd9017fa6"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ae90d120eacc929b19609c6dcd9017fa6">maingo::MAiNGO::_rootObbtStatus</a></div><div class="ttdeci">TIGHTENING_RETCODE _rootObbtStatus</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:623</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a2287a4b633fd59097ce44a74e15f6660"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a2287a4b633fd59097ce44a74e15f6660">maingo::MAiNGO::_write_csv_general</a></div><div class="ttdeci">void _write_csv_general()</div><div class="ttdoc">Write csv summaries to disk.</div><div class="ttdef"><b>Definition:</b> MAiNGOwritingFunctions.cpp:74</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_aa3b2c105e3ebff61b3416c9cdd8bd964"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#aa3b2c105e3ebff61b3416c9cdd8bd964">maingo::MAiNGO::_write_gams_options</a></div><div class="ttdeci">void _write_gams_options(std::ofstream &amp;gamsFile, std::string solverName=&quot;SCIP&quot;)</div><div class="ttdoc">Function writing options and model information into gams file.</div><div class="ttdef"><b>Definition:</b> MAiNGOtoOtherLanguage.cpp:549</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ae99518c0b699295565d25c76b0187c58"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ae99518c0b699295565d25c76b0187c58">maingo::MAiNGO::set_log_file_name</a></div><div class="ttdeci">void set_log_file_name(std::string logFileName=&quot;bab&quot;)</div><div class="ttdoc">Sets name of the log file.</div><div class="ttdef"><b>Definition:</b> MAiNGOwritingFunctions.cpp:234</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html"><div class="ttname"><a href="classmaingo_1_1_logger.html">maingo::Logger</a></div><div class="ttdoc">This class contains all logging and output information.</div><div class="ttdef"><b>Definition:</b> logger.h:101</div></div>
-<div class="ttc" id="structmaingo_1_1_evaluation_container_html"><div class="ttname"><a href="structmaingo_1_1_evaluation_container.html">maingo::EvaluationContainer</a></div><div class="ttdoc">Struct for storing the values returned by model evaluation at the given point &quot;var&quot;.</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:192</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a35f8250e9023121b2b3303211a5cbc99"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a35f8250e9023121b2b3303211a5cbc99">maingo::MAiNGO::_nauxiliaryRelOnlyEqs</a></div><div class="ttdeci">unsigned _nauxiliaryRelOnlyEqs</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:607</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a5d59280b371782eaeaf887073ae7b77a"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a5d59280b371782eaeaf887073ae7b77a">maingo::MAiNGO::_DAGconstructed</a></div><div class="ttdeci">bool _DAGconstructed</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:586</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a9c4f03e80eafd073264fb0d2f186dc81"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a9c4f03e80eafd073264fb0d2f186dc81">maingo::MAiNGO::_readyToSolve</a></div><div class="ttdeci">bool _readyToSolve</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:585</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a76ffecbb5590c1dd40ec896059af4fda"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a76ffecbb5590c1dd40ec896059af4fda">maingo::MAiNGO::_write_res_file</a></div><div class="ttdeci">void _write_res_file()</div><div class="ttdoc">Write res file to disk containing non-standard model information such as, e.g., residuals It will be ...</div><div class="ttdef"><b>Definition:</b> MAiNGOwritingFunctions.cpp:346</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a1056041b9ace71cfbf3807ec436cd80b"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a1056041b9ace71cfbf3807ec436cd80b">maingo::MAiNGO::_print_additional_output</a></div><div class="ttdeci">void _print_additional_output()</div><div class="ttdoc">Prints additional model output on screen.</div><div class="ttdef"><b>Definition:</b> MAiNGOprintingFunctions.cpp:352</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a6f3727adfe69c95ac8e0ca41a7b73fa6"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a6f3727adfe69c95ac8e0ca41a7b73fa6">maingo::MAiNGO::get_objective_value</a></div><div class="ttdeci">double get_objective_value() const</div><div class="ttdoc">Function returning objective value.</div><div class="ttdef"><b>Definition:</b> MAiNGOgetterFunctions.cpp:27</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a3bfd617c12d3ee731e314f8f806b4da0"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a3bfd617c12d3ee731e314f8f806b4da0">maingo::MAiNGO::_variablesLbd</a></div><div class="ttdeci">std::vector&lt; OptimizationVariable &gt; _variablesLbd</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:605</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a7821624172735057f67471776a8d4aa1"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a7821624172735057f67471776a8d4aa1">maingo::MAiNGO::get_solution_point</a></div><div class="ttdeci">std::vector&lt; double &gt; get_solution_point() const</div><div class="ttdoc">Function returning solution point. </div><div class="ttdef"><b>Definition:</b> MAiNGOgetterFunctions.cpp:37</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a689902b992cca417907471e82b9526b1"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a689902b992cca417907471e82b9526b1">maingo::MAiNGO::_csvSolutionStatisticsName</a></div><div class="ttdeci">std::string _csvSolutionStatisticsName</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:685</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a179c701e7f310080876879df45571aae"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a179c701e7f310080876879df45571aae">maingo::MAiNGO::_variables</a></div><div class="ttdeci">std::vector&lt; OptimizationVariable &gt; _variables</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:588</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html"><div class="ttname"><a href="structmaingo_1_1_settings.html">maingo::Settings</a></div><div class="ttdoc">Struct for storing settings for MAiNGO. </div><div class="ttdef"><b>Definition:</b> settings.h:125</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a2771b7011d669e1db37b8b3ef00ab4a5"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a2771b7011d669e1db37b8b3ef00ab4a5">maingo::MAiNGO::_DAGlbd</a></div><div class="ttdeci">mc::FFGraph _DAGlbd</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:631</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a31692cc54ec24e14fbd7bfccda000d16"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a31692cc54ec24e14fbd7bfccda000d16">maingo::MAiNGO::_miqpStatus</a></div><div class="ttdeci">SUBSOLVER_RETCODE _miqpStatus</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:656</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a9292f5cf116f7607400a75a036c88244"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a9292f5cf116f7607400a75a036c88244">maingo::MAiNGO::_inMAiNGOsolve</a></div><div class="ttdeci">bool _inMAiNGOsolve</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:695</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a7f8fb94bcf60d8e2ff8a943c12459061"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a7f8fb94bcf60d8e2ff8a943c12459061">maingo::MAiNGO::get_UBP_count</a></div><div class="ttdeci">double get_UBP_count() const</div><div class="ttdoc">Function returning number of UBD problems solved. </div><div class="ttdef"><b>Definition:</b> MAiNGOgetterFunctions.cpp:130</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a6c09add60cfffb752582cf21182a786d"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a6c09add60cfffb752582cf21182a786d">maingo::MAiNGO::_set_constraint_properties</a></div><div class="ttdeci">void _set_constraint_properties()</div><div class="ttdoc">Uses mc::FFDep properties and the DAG to obtain information on the properties of constraints. </div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:2329</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a4a3174283651d6da792c3270c9a0e4a6"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a4a3174283651d6da792c3270c9a0e4a6">maingo::MAiNGO::_myLBS</a></div><div class="ttdeci">std::shared_ptr&lt; lbp::LowerBoundingSolver &gt; _myLBS</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:665</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a9ad31f08fce43a453e9f8e1e39c889bb"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a9ad31f08fce43a453e9f8e1e39c889bb">maingo::MAiNGO::_check_for_hidden_zero_constraints</a></div><div class="ttdeci">bool _check_for_hidden_zero_constraints(const std::vector&lt; mc::FFVar &gt; &amp;tmpDAGVars, std::vector&lt; mc::FFVar &gt; &amp;tmpDAGFunctions, std::vector&lt; mc::FFVar &gt; &amp;tmpDAGoutputFunctions)</div><div class="ttdoc">Checks if the constraints are non-zero (constant) after the DAG has been constructed (this may happen...</div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:1958</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a06382d115db4ab79eb1c249ab367a086"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a06382d115db4ab79eb1c249ab367a086">maingo::MAiNGO::_DAGvars</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; _DAGvars</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:582</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a108919c79fc8d5fd6e0389ce7b242acb"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a108919c79fc8d5fd6e0389ce7b242acb">maingo::MAiNGO::_print_statistics</a></div><div class="ttdeci">void _print_statistics()</div><div class="ttdoc">Prints problem &amp; solution statistics on screen. </div><div class="ttdef"><b>Definition:</b> MAiNGOprintingFunctions.cpp:25</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_adeef2c9d324fa8f9a26819b3a3307ad7"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#adeef2c9d324fa8f9a26819b3a3307ad7">maingo::MAiNGO::evaluate_additional_outputs_at_point</a></div><div class="ttdeci">std::vector&lt; std::pair&lt; std::string, double &gt; &gt; evaluate_additional_outputs_at_point(const std::vector&lt; double &gt; &amp;point)</div><div class="ttdoc">Function returning values of the additional outputs of the set model at a point. </div><div class="ttdef"><b>Definition:</b> MAiNGOevaluationFunctions.cpp:100</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a101ac517abb98426ff61a29feb27e7a1"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a101ac517abb98426ff61a29feb27e7a1">maingo::MAiNGO::_outputTime</a></div><div class="ttdeci">double _outputTime</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:649</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a08c2039814522b8addbf0a1d740397d3"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a08c2039814522b8addbf0a1d740397d3">maingo::MAiNGO::_rootNode</a></div><div class="ttdeci">babBase::BabNode _rootNode</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:657</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a7e35d3a30d8a5eab184d18fe256ffc57"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a7e35d3a30d8a5eab184d18fe256ffc57">maingo::MAiNGO::_initialPointFeasible</a></div><div class="ttdeci">bool _initialPointFeasible</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:694</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a6624f898a20299ccfa4a8fa2f8f7dd28"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a6624f898a20299ccfa4a8fa2f8f7dd28">maingo::MAiNGO::_initialPoint</a></div><div class="ttdeci">std::vector&lt; double &gt; _initialPoint</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:593</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a4cf012860282bcaff9890e182f4b6886"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a4cf012860282bcaff9890e182f4b6886">maingo::MAiNGO::solve_epsilon_constraint</a></div><div class="ttdeci">RETCODE solve_epsilon_constraint()</div><div class="ttdoc">Solve a multi-objective problem using the epsilon-constraint method. </div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:165</div></div>
+<div class="ttc" id="namespacemaingo_html_ae85bf383216b1907f0021c60fa20621a"><div class="ttname"><a href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621a">maingo::RETCODE</a></div><div class="ttdeci">RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by MAiNGO after the solve() function was called...</div><div class="ttdef"><b>Definition:</b> returnCodes.h:22</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a020f2b61ca2d2baabf16031f078c2ddd"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a020f2b61ca2d2baabf16031f078c2ddd">maingo::MAiNGO::_maingoOriginalSettings</a></div><div class="ttdeci">Settings _maingoOriginalSettings</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:676</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a241496b3e71881ee3cb7b8be661b44d4"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a241496b3e71881ee3cb7b8be661b44d4">maingo::MAiNGO::_evaluate_model_at_point</a></div><div class="ttdeci">std::pair&lt; std::vector&lt; double &gt;, bool &gt; _evaluate_model_at_point(const std::vector&lt; double &gt; &amp;point)</div><div class="ttdoc">Function telling whether a point is feasible or not and returning values of the set model of the obje...</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluationFunctions.cpp:168</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_aa19003266d3acb3b042f282e8bf1e575"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#aa19003266d3acb3b042f282e8bf1e575">maingo::MAiNGO::_modelOutput</a></div><div class="ttdeci">EvaluationContainer _modelOutput</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:613</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_acdc8a1d98aa50ee3d76dc4873dda787f"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#acdc8a1d98aa50ee3d76dc4873dda787f">maingo::MAiNGO::_initialize_solve</a></div><div class="ttdeci">void _initialize_solve()</div><div class="ttdoc">Initializes subsolvers and internal solution variables for the solution of an LP, MIP...</div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:1185</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a91c7c1533effc9589f908b96b67789b3"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a91c7c1533effc9589f908b96b67789b3">maingo::MAiNGO::_nineq</a></div><div class="ttdeci">unsigned _nineq</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:599</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a22af1a970a5fd23eb347a655c8ae549a"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a22af1a970a5fd23eb347a655c8ae549a">maingo::MAiNGO::get_max_nodes_in_memory</a></div><div class="ttdeci">double get_max_nodes_in_memory() const</div><div class="ttdoc">Function returning the maximum number of nodes in memory. </div><div class="ttdef"><b>Definition:</b> MAiNGOgetterFunctions.cpp:111</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a24bb95f23a26f300a8a4ca85b9284512"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a24bb95f23a26f300a8a4ca85b9284512">maingo::MAiNGO::_nvarOriginalContinuous</a></div><div class="ttdeci">unsigned _nvarOriginalContinuous</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:595</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a622b9622d1e3515be1774111e33b0949"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a622b9622d1e3515be1774111e33b0949">maingo::MAiNGO::_root_constraint_propagation</a></div><div class="ttdeci">void _root_constraint_propagation()</div><div class="ttdoc">Conducts feasibility- and optimality-based bound tightening at the root node. </div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:1408</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ae90d120eacc929b19609c6dcd9017fa6"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ae90d120eacc929b19609c6dcd9017fa6">maingo::MAiNGO::_rootObbtStatus</a></div><div class="ttdeci">TIGHTENING_RETCODE _rootObbtStatus</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:653</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_aa3b2c105e3ebff61b3416c9cdd8bd964"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#aa3b2c105e3ebff61b3416c9cdd8bd964">maingo::MAiNGO::_write_gams_options</a></div><div class="ttdeci">void _write_gams_options(std::ofstream &amp;gamsFile, std::string solverName=&quot;SCIP&quot;)</div><div class="ttdoc">Function writing options and model information into gams file. </div><div class="ttdef"><b>Definition:</b> MAiNGOtoOtherLanguage.cpp:551</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a8b2bcd5e079464178341f24169e45bbc"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a8b2bcd5e079464178341f24169e45bbc">maingo::MAiNGO::_feasibilityProblem</a></div><div class="ttdeci">bool _feasibilityProblem</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:618</div></div>
+<div class="ttc" id="structmaingo_1_1_evaluation_container_html"><div class="ttname"><a href="structmaingo_1_1_evaluation_container.html">maingo::EvaluationContainer</a></div><div class="ttdoc">Struct for storing the values returned by model evaluation at the given point &quot;var&quot;. </div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:208</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a35f8250e9023121b2b3303211a5cbc99"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a35f8250e9023121b2b3303211a5cbc99">maingo::MAiNGO::_nauxiliaryRelOnlyEqs</a></div><div class="ttdeci">unsigned _nauxiliaryRelOnlyEqs</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:637</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a7ff011bd8ce28c9dc2e2d24c350698e1"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a7ff011bd8ce28c9dc2e2d24c350698e1">maingo::MAiNGO::_write_files_error</a></div><div class="ttdeci">void _write_files_error(const std::string &amp;errorMessage)</div><div class="ttdoc">Writes logging and csv information to disk when an error occurs. </div><div class="ttdef"><b>Definition:</b> MAiNGOwritingFunctions.cpp:47</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a5d59280b371782eaeaf887073ae7b77a"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a5d59280b371782eaeaf887073ae7b77a">maingo::MAiNGO::_DAGconstructed</a></div><div class="ttdeci">bool _DAGconstructed</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:615</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a9c4f03e80eafd073264fb0d2f186dc81"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a9c4f03e80eafd073264fb0d2f186dc81">maingo::MAiNGO::_readyToSolve</a></div><div class="ttdeci">bool _readyToSolve</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:614</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a1056041b9ace71cfbf3807ec436cd80b"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a1056041b9ace71cfbf3807ec436cd80b">maingo::MAiNGO::_print_additional_output</a></div><div class="ttdeci">void _print_additional_output()</div><div class="ttdoc">Prints additional model output on screen. </div><div class="ttdef"><b>Definition:</b> MAiNGOprintingFunctions.cpp:356</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a6f3727adfe69c95ac8e0ca41a7b73fa6"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a6f3727adfe69c95ac8e0ca41a7b73fa6">maingo::MAiNGO::get_objective_value</a></div><div class="ttdeci">double get_objective_value() const</div><div class="ttdoc">Function returning objective value. </div><div class="ttdef"><b>Definition:</b> MAiNGOgetterFunctions.cpp:23</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a3bfd617c12d3ee731e314f8f806b4da0"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a3bfd617c12d3ee731e314f8f806b4da0">maingo::MAiNGO::_variablesLbd</a></div><div class="ttdeci">std::vector&lt; OptimizationVariable &gt; _variablesLbd</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:635</div></div>
 <div class="ttc" id="return_codes_8h_html"><div class="ttname"><a href="return_codes_8h.html">returnCodes.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a6094a619e5202a347ad3b755a0f13fe7"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a6094a619e5202a347ad3b755a0f13fe7">maingo::MAiNGO::_constantConstraints</a></div><div class="ttdeci">std::vector&lt; Constraint &gt; _constantConstraints</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:590</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a2fd3f75ee25d495eb9f08ab7597f3742"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a2fd3f75ee25d495eb9f08ab7597f3742">maingo::MAiNGO::_DAGvarsLbd</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; _DAGvarsLbd</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:602</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a1aff8d80ad642d24966454b8ef35e34a"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a1aff8d80ad642d24966454b8ef35e34a">maingo::MAiNGO::_write_gams_variables</a></div><div class="ttdeci">void _write_gams_variables(std::ofstream &amp;gamsFile)</div><div class="ttdoc">Function writing variables, variable bounds and a initial point in the gams file.</div><div class="ttdef"><b>Definition:</b> MAiNGOtoOtherLanguage.cpp:155</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_aa50b9f4993a803eb7ac98dee8ea2fcf1"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#aa50b9f4993a803eb7ac98dee8ea2fcf1">maingo::MAiNGO::~MAiNGO</a></div><div class="ttdeci">~MAiNGO()</div><div class="ttdoc">Destructor.</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:67</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a271c14d25b5423c7c077f8ea206f2818"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a271c14d25b5423c7c077f8ea206f2818">maingo::MAiNGO::_analyze_and_solve_problem</a></div><div class="ttdeci">RETCODE _analyze_and_solve_problem()</div><div class="ttdoc">Internal function conducts structure recognition, sets constraint properties, and invokes the correct...</div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:526</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a30f5390432b5701f3ae3b7ff3b0ae680"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a30f5390432b5701f3ae3b7ff3b0ae680">maingo::MAiNGO::get_LBP_count</a></div><div class="ttdeci">double get_LBP_count() const</div><div class="ttdoc">Function returning number of LBD problems solved.</div><div class="ttdef"><b>Definition:</b> MAiNGOgetterFunctions.cpp:153</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_abd17e0e2d436da88f15738e8e0218ac8"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#abd17e0e2d436da88f15738e8e0218ac8">maingo::MAiNGO::get_model_at_point</a></div><div class="ttdeci">bool get_model_at_point(const std::vector&lt; double &gt; &amp;point, std::vector&lt; double &gt; &amp;returnResult)</div><div class="ttdoc">Function telling whether a point is feasible or not and returning values of the set model of the obje...</div><div class="ttdef"><b>Definition:</b> MAiNGOgetterFunctions.cpp:284</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ac2442f5c69a4a26d3b6e764c8a3170b3"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ac2442f5c69a4a26d3b6e764c8a3170b3">maingo::MAiNGO::_nconstantIneqSquash</a></div><div class="ttdeci">unsigned _nconstantIneqSquash</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:580</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a0d24d4e085f56925079399567cdf70eb"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a0d24d4e085f56925079399567cdf70eb">maingo::MAiNGO::_write_gams_functions</a></div><div class="ttdeci">void _write_gams_functions(std::ofstream &amp;gamsFile, bool writeRelaxationOnly)</div><div class="ttdoc">Function writing functions into the gams file.</div><div class="ttdef"><b>Definition:</b> MAiNGOtoOtherLanguage.cpp:300</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></div><div class="ttdoc">This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:56</div></div>
-<div class="ttc" id="namespacemaingo_html_af7f79f3a80779720285a182fb0fd4ece"><div class="ttname"><a href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ece">maingo::PROBLEM_STRUCTURE</a></div><div class="ttdeci">PROBLEM_STRUCTURE</div><div class="ttdoc">Enum for representing the problem structure.</div><div class="ttdef"><b>Definition:</b> constraint.h:30</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a49594efef0db3f36efcf342acf7c7525"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a49594efef0db3f36efcf342acf7c7525">maingo::MAiNGO::_infeasibleVariables</a></div><div class="ttdeci">std::vector&lt; OptimizationVariable * &gt; _infeasibleVariables</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:558</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a9f726a054960d563d59032b8067701b2"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a9f726a054960d563d59032b8067701b2">maingo::MAiNGO::_solve_MIQP</a></div><div class="ttdeci">RETCODE _solve_MIQP()</div><div class="ttdoc">Solves an LP, MIP, QP or MIQP.</div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:627</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a11a108eb587e3fac7651f2969aadff2f"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a11a108eb587e3fac7651f2969aadff2f">maingo::MAiNGO::_nconstantEqRelOnly</a></div><div class="ttdeci">unsigned _nconstantEqRelOnly</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:579</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a66df665b487a9136ff45a8e8a76c739c"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a66df665b487a9136ff45a8e8a76c739c">maingo::MAiNGO::_initialPointOriginal</a></div><div class="ttdeci">std::vector&lt; double &gt; _initialPointOriginal</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:563</div></div>
-<div class="ttc" id="namespacemaingo_html_aa02add9895dfda997b2d9036a49bf6fc"><div class="ttname"><a href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fc">maingo::TIGHTENING_RETCODE</a></div><div class="ttdeci">TIGHTENING_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by LowerBoundingSolvers when solving OBBT or constrai...</div><div class="ttdef"><b>Definition:</b> returnCodes.h:49</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_af0fdf26f6ae26288a121e6912f0f1023"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#af0fdf26f6ae26288a121e6912f0f1023">maingo::MAiNGO::_add_auxiliary_variables_to_lbd_dag</a></div><div class="ttdeci">void _add_auxiliary_variables_to_lbd_dag()</div><div class="ttdoc">Modifies the lower bound DAG _DAGlbd by adding auxiliary optimization variables for intermediate fact...</div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:2186</div></div>
-<div class="ttc" id="namespacemaingo_html_ab7a1cb5c265f8d1c287d43fec7988020"><div class="ttname"><a href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">maingo::SUBSOLVER_RETCODE</a></div><div class="ttdeci">SUBSOLVER_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the different sub-solvers (UpperBoundingSolver,...</div><div class="ttdef"><b>Definition:</b> returnCodes.h:40</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a16e579b3026a722169cf0f8819ac1ec5"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a16e579b3026a722169cf0f8819ac1ec5">maingo::MAiNGO::get_status</a></div><div class="ttdeci">RETCODE get_status() const</div><div class="ttdoc">Funcition returning whether MAiNGO solved the problem or not.</div><div class="ttdef"><b>Definition:</b> MAiNGOgetterFunctions.cpp:229</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a585967bc628b31b1fbba2105be7d36a2"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a585967bc628b31b1fbba2105be7d36a2">maingo::MAiNGO::_print_MAiNGO_header</a></div><div class="ttdeci">void _print_MAiNGO_header()</div><div class="ttdoc">Write MAiNGO header.</div><div class="ttdef"><b>Definition:</b> MAiNGOprintingFunctions.cpp:414</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_abdcc6fb032878028956050dcba5c9405"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#abdcc6fb032878028956050dcba5c9405">maingo::MAiNGO::_maingoSettings</a></div><div class="ttdeci">Settings _maingoSettings</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:641</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a383bc41aef21457041b6a79d0a376bed"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a383bc41aef21457041b6a79d0a376bed">maingo::MAiNGO::set_option</a></div><div class="ttdeci">bool set_option(const std::string option, const double value)</div><div class="ttdoc">Sets an option.</div><div class="ttdef"><b>Definition:</b> MAiNGOwritingFunctions.cpp:541</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ac99ef891ef04bb26071bf37ba510ebfc"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ac99ef891ef04bb26071bf37ba510ebfc">maingo::MAiNGO::_add_linebreaks_to_gams_string</a></div><div class="ttdeci">void _add_linebreaks_to_gams_string(std::string &amp;str)</div><div class="ttdoc">Function for adding linebreaks in gams string. Older GAMS versions allow only for 40000 characters in...</div><div class="ttdef"><b>Definition:</b> MAiNGOtoOtherLanguage.cpp:621</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a54d978f1329af4acf801108591eea1f5"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a54d978f1329af4acf801108591eea1f5">maingo::MAiNGO::_DAG</a></div><div class="ttdeci">mc::FFGraph _DAG</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:552</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a0d1cde74073424f84d8b4692a8406101"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a0d1cde74073424f84d8b4692a8406101">maingo::MAiNGO::_nonconstantConstraintsUBP</a></div><div class="ttdeci">std::shared_ptr&lt; std::vector&lt; Constraint &gt; &gt; _nonconstantConstraintsUBP</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:622</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a2fd3f75ee25d495eb9f08ab7597f3742"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a2fd3f75ee25d495eb9f08ab7597f3742">maingo::MAiNGO::_DAGvarsLbd</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; _DAGvarsLbd</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:632</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a1aff8d80ad642d24966454b8ef35e34a"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a1aff8d80ad642d24966454b8ef35e34a">maingo::MAiNGO::_write_gams_variables</a></div><div class="ttdeci">void _write_gams_variables(std::ofstream &amp;gamsFile)</div><div class="ttdoc">Function writing variables, variable bounds and a initial point in the gams file. ...</div><div class="ttdef"><b>Definition:</b> MAiNGOtoOtherLanguage.cpp:151</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a0a9de764a3521782c3f6e3dc68f01324"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a0a9de764a3521782c3f6e3dc68f01324">maingo::MAiNGO::_resultFileName</a></div><div class="ttdeci">std::string _resultFileName</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:684</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_aa50b9f4993a803eb7ac98dee8ea2fcf1"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#aa50b9f4993a803eb7ac98dee8ea2fcf1">maingo::MAiNGO::~MAiNGO</a></div><div class="ttdeci">~MAiNGO()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> MAiNGO.h:62</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a271c14d25b5423c7c077f8ea206f2818"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a271c14d25b5423c7c077f8ea206f2818">maingo::MAiNGO::_analyze_and_solve_problem</a></div><div class="ttdeci">RETCODE _analyze_and_solve_problem()</div><div class="ttdoc">Internal function conducts structure recognition, sets constraint properties, and invokes the correct...</div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:513</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a30f5390432b5701f3ae3b7ff3b0ae680"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a30f5390432b5701f3ae3b7ff3b0ae680">maingo::MAiNGO::get_LBP_count</a></div><div class="ttdeci">double get_LBP_count() const</div><div class="ttdoc">Function returning number of LBD problems solved. </div><div class="ttdef"><b>Definition:</b> MAiNGOgetterFunctions.cpp:149</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ac2442f5c69a4a26d3b6e764c8a3170b3"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ac2442f5c69a4a26d3b6e764c8a3170b3">maingo::MAiNGO::_nconstantIneqSquash</a></div><div class="ttdeci">unsigned _nconstantIneqSquash</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:609</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a0d24d4e085f56925079399567cdf70eb"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a0d24d4e085f56925079399567cdf70eb">maingo::MAiNGO::_write_gams_functions</a></div><div class="ttdeci">void _write_gams_functions(std::ofstream &amp;gamsFile, bool writeRelaxationOnly)</div><div class="ttdoc">Function writing functions into the gams file. </div><div class="ttdef"><b>Definition:</b> MAiNGOtoOtherLanguage.cpp:302</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a88c7a2689b32500ebf09bf37de06d47f"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a88c7a2689b32500ebf09bf37de06d47f">maingo::MAiNGO::_originalConstraints</a></div><div class="ttdeci">std::shared_ptr&lt; std::vector&lt; Constraint &gt; &gt; _originalConstraints</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:619</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></div><div class="ttdoc">This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:51</div></div>
+<div class="ttc" id="namespacemaingo_html_af7f79f3a80779720285a182fb0fd4ece"><div class="ttname"><a href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ece">maingo::PROBLEM_STRUCTURE</a></div><div class="ttdeci">PROBLEM_STRUCTURE</div><div class="ttdoc">Enum for representing the problem structure. </div><div class="ttdef"><b>Definition:</b> constraint.h:25</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_aaaa69dd8b526f0d9966ce35bd102601f"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#aaaa69dd8b526f0d9966ce35bd102601f">maingo::MAiNGO::evaluate_model_at_point</a></div><div class="ttdeci">std::pair&lt; std::vector&lt; double &gt;, bool &gt; evaluate_model_at_point(const std::vector&lt; double &gt; &amp;point)</div><div class="ttdoc">Function telling whether a point is feasible or not and returning values of the set model of the obje...</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluationFunctions.cpp:64</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a0728bb641f5f269763663ce89280bd4f"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a0728bb641f5f269763663ce89280bd4f">maingo::MAiNGO::read_settings</a></div><div class="ttdeci">void read_settings(const std::string &amp;settingsFileName=&quot;MAiNGOSettings.txt&quot;)</div><div class="ttdoc">Reads settings from text file. </div><div class="ttdef"><b>Definition:</b> MAiNGOreadSettings.cpp:26</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a49594efef0db3f36efcf342acf7c7525"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a49594efef0db3f36efcf342acf7c7525">maingo::MAiNGO::_infeasibleVariables</a></div><div class="ttdeci">std::vector&lt; OptimizationVariable * &gt; _infeasibleVariables</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:587</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a3caca275897742b038011e6fd00b2bdc"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a3caca275897742b038011e6fd00b2bdc">maingo::MAiNGO::set_json_file_name</a></div><div class="ttdeci">void set_json_file_name(const std::string &amp;jsonFileName)</div><div class="ttdoc">Sets name of the json file into which information on the problem and solution may be written...</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:154</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a92cbd5e8a92e5c335d57bb23574cf6b2"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a92cbd5e8a92e5c335d57bb23574cf6b2">maingo::MAiNGO::_evaluate_additional_outputs_at_point</a></div><div class="ttdeci">std::vector&lt; std::pair&lt; std::string, double &gt; &gt; _evaluate_additional_outputs_at_point(const std::vector&lt; double &gt; &amp;point)</div><div class="ttdoc">Function returning values of the additional outputs of the set model at a point. </div><div class="ttdef"><b>Definition:</b> MAiNGOevaluationFunctions.cpp:135</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a9f726a054960d563d59032b8067701b2"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a9f726a054960d563d59032b8067701b2">maingo::MAiNGO::_solve_MIQP</a></div><div class="ttdeci">RETCODE _solve_MIQP()</div><div class="ttdoc">Solves an LP, MIP, QP or MIQP. </div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:621</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a0dffde2ace38c3fad7a6cfb38f0f374c"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a0dffde2ace38c3fad7a6cfb38f0f374c">maingo::MAiNGO::_jsonFileName</a></div><div class="ttdeci">std::string _jsonFileName</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:683</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a11a108eb587e3fac7651f2969aadff2f"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a11a108eb587e3fac7651f2969aadff2f">maingo::MAiNGO::_nconstantEqRelOnly</a></div><div class="ttdeci">unsigned _nconstantEqRelOnly</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:608</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a66df665b487a9136ff45a8e8a76c739c"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a66df665b487a9136ff45a8e8a76c739c">maingo::MAiNGO::_initialPointOriginal</a></div><div class="ttdeci">std::vector&lt; double &gt; _initialPointOriginal</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:592</div></div>
+<div class="ttc" id="namespacemaingo_html_aa02add9895dfda997b2d9036a49bf6fc"><div class="ttname"><a href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fc">maingo::TIGHTENING_RETCODE</a></div><div class="ttdeci">TIGHTENING_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by LowerBoundingSolvers when solving OBBT or constrai...</div><div class="ttdef"><b>Definition:</b> returnCodes.h:45</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_af0fdf26f6ae26288a121e6912f0f1023"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#af0fdf26f6ae26288a121e6912f0f1023">maingo::MAiNGO::_add_auxiliary_variables_to_lbd_dag</a></div><div class="ttdeci">void _add_auxiliary_variables_to_lbd_dag()</div><div class="ttdoc">Modifies the lower bound DAG _DAGlbd by adding auxiliary optimization variables for intermediate fact...</div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:2163</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a8dacc1f270014ea3c70dee5451abae62"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a8dacc1f270014ea3c70dee5451abae62">maingo::MAiNGO::_nonconstantConstraints</a></div><div class="ttdeci">std::shared_ptr&lt; std::vector&lt; Constraint &gt; &gt; _nonconstantConstraints</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:621</div></div>
+<div class="ttc" id="namespacemaingo_html_ab7a1cb5c265f8d1c287d43fec7988020"><div class="ttname"><a href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">maingo::SUBSOLVER_RETCODE</a></div><div class="ttdeci">SUBSOLVER_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the different sub-solvers (UpperBoundingSolver, LowerBoundingSolver). </div><div class="ttdef"><b>Definition:</b> returnCodes.h:36</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a16e579b3026a722169cf0f8819ac1ec5"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a16e579b3026a722169cf0f8819ac1ec5">maingo::MAiNGO::get_status</a></div><div class="ttdeci">RETCODE get_status() const</div><div class="ttdoc">Funcition returning whether MAiNGO solved the problem or not. </div><div class="ttdef"><b>Definition:</b> MAiNGOgetterFunctions.cpp:225</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a585967bc628b31b1fbba2105be7d36a2"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a585967bc628b31b1fbba2105be7d36a2">maingo::MAiNGO::_print_MAiNGO_header</a></div><div class="ttdeci">void _print_MAiNGO_header()</div><div class="ttdoc">Write MAiNGO header. </div><div class="ttdef"><b>Definition:</b> MAiNGOprintingFunctions.cpp:418</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ac99ef891ef04bb26071bf37ba510ebfc"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ac99ef891ef04bb26071bf37ba510ebfc">maingo::MAiNGO::_add_linebreaks_to_gams_string</a></div><div class="ttdeci">void _add_linebreaks_to_gams_string(std::string &amp;str)</div><div class="ttdoc">Function for adding linebreaks in gams string. Older GAMS versions allow only for 40000 characters in...</div><div class="ttdef"><b>Definition:</b> MAiNGOtoOtherLanguage.cpp:623</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a54d978f1329af4acf801108591eea1f5"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a54d978f1329af4acf801108591eea1f5">maingo::MAiNGO::_DAG</a></div><div class="ttdeci">mc::FFGraph _DAG</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:581</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a1f8ea652c3ae60bad558c3aeb66f1085"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a1f8ea652c3ae60bad558c3aeb66f1085">maingo::MAiNGO::set_option</a></div><div class="ttdeci">bool set_option(const std::string &amp;option, const int value)</div><div class="ttdoc">Sets an option with an integer value - just forwards to version with double value. </div><div class="ttdef"><b>Definition:</b> MAiNGO.h:105</div></div>
 <div class="ttc" id="constraint_8h_html"><div class="ttname"><a href="constraint_8h.html">constraint.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ab2b58e658363c359a205cbd435f1f3d3"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ab2b58e658363c359a205cbd435f1f3d3">maingo::MAiNGO::_solve_MINLP</a></div><div class="ttdeci">RETCODE _solve_MINLP()</div><div class="ttdoc">Solves an NLP or MINLP.</div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:804</div></div>
-<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO</div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_abb425f08ebe9b1d4a71d6b455cd656b9"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#abb425f08ebe9b1d4a71d6b455cd656b9">maingo::MAiNGO::_removedVariables</a></div><div class="ttdeci">std::vector&lt; bool &gt; _removedVariables</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:560</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ab2b58e658363c359a205cbd435f1f3d3"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ab2b58e658363c359a205cbd435f1f3d3">maingo::MAiNGO::_solve_MINLP</a></div><div class="ttdeci">RETCODE _solve_MINLP()</div><div class="ttdoc">Solves an NLP or MINLP. </div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:769</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_abb011b283ec6da5387c24804ba59ff6d"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#abb011b283ec6da5387c24804ba59ff6d">maingo::MAiNGO::_constantConstraints</a></div><div class="ttdeci">std::shared_ptr&lt; std::vector&lt; Constraint &gt; &gt; _constantConstraints</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:620</div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_abb425f08ebe9b1d4a71d6b455cd656b9"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#abb425f08ebe9b1d4a71d6b455cd656b9">maingo::MAiNGO::_removedVariables</a></div><div class="ttdeci">std::vector&lt; bool &gt; _removedVariables</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:589</div></div>
 <div class="ttc" id="_m_ai_n_g_omodel_8h_html"><div class="ttname"><a href="_m_ai_n_g_omodel_8h.html">MAiNGOmodel.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a43a173e24e19fbbd9ea819b105ab39d6"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a43a173e24e19fbbd9ea819b105ab39d6">maingo::MAiNGO::_nvarOriginalInteger</a></div><div class="ttdeci">unsigned _nvarOriginalInteger</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:568</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_abad3366b86f460d436d3c13bfecb147b"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#abad3366b86f460d436d3c13bfecb147b">maingo::MAiNGO::_check_feasibility_of_relaxation_only_constraints</a></div><div class="ttdeci">bool _check_feasibility_of_relaxation_only_constraints(const std::vector&lt; double &gt; &amp;solutionPoint, std::string &amp;str, const std::string &amp;whitespaces)</div><div class="ttdoc">Checks whether the current incumbent satisfies relaxation only constraints and gives a warning if not...</div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:1687</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ae51edfeecb90cf3be1d6cabf9d18c9eb"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ae51edfeecb90cf3be1d6cabf9d18c9eb">maingo::MAiNGO::_feasibleAtRoot</a></div><div class="ttdeci">std::vector&lt; SUBSOLVER_RETCODE &gt; _feasibleAtRoot</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:650</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a43a173e24e19fbbd9ea819b105ab39d6"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a43a173e24e19fbbd9ea819b105ab39d6">maingo::MAiNGO::_nvarOriginalInteger</a></div><div class="ttdeci">unsigned _nvarOriginalInteger</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:597</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_abad3366b86f460d436d3c13bfecb147b"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#abad3366b86f460d436d3c13bfecb147b">maingo::MAiNGO::_check_feasibility_of_relaxation_only_constraints</a></div><div class="ttdeci">bool _check_feasibility_of_relaxation_only_constraints(const std::vector&lt; double &gt; &amp;solutionPoint, std::string &amp;str, const std::string &amp;whitespaces)</div><div class="ttdoc">Checks whether the current incumbent satisfies relaxation only constraints and gives a warning if not...</div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:1647</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_aad666fe69213402bdba8b9972a5985b3"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#aad666fe69213402bdba8b9972a5985b3">maingo::MAiNGO::_logger</a></div><div class="ttdeci">std::shared_ptr&lt; Logger &gt; _logger</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:682</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ae51edfeecb90cf3be1d6cabf9d18c9eb"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ae51edfeecb90cf3be1d6cabf9d18c9eb">maingo::MAiNGO::_feasibleAtRoot</a></div><div class="ttdeci">std::vector&lt; SUBSOLVER_RETCODE &gt; _feasibleAtRoot</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:693</div></div>
 <div class="ttc" id="bab_utils_8h_html"><div class="ttname"><a href="bab_utils_8h.html">babUtils.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_acb69025e90c11f757a3f74c9b37daacd"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#acb69025e90c11f757a3f74c9b37daacd">maingo::MAiNGO::_write_files</a></div><div class="ttdeci">void _write_files()</div><div class="ttdoc">Writes logging and csv information to disk.</div><div class="ttdef"><b>Definition:</b> MAiNGOwritingFunctions.cpp:30</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_adf4fee2adeb03682d2ea70239f75848d"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#adf4fee2adeb03682d2ea70239f75848d">maingo::MAiNGO::_nvar</a></div><div class="ttdeci">unsigned _nvar</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:569</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_aa6a02b134e037806dea96aab029ff908"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#aa6a02b134e037806dea96aab029ff908">maingo::MAiNGO::_resultVars</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; _resultVars</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:556</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a20c235755de9f0c15ea62c28ae9e2ac8"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a20c235755de9f0c15ea62c28ae9e2ac8">maingo::MAiNGO::_write_ale_functions</a></div><div class="ttdeci">void _write_ale_functions(std::ofstream &amp;aleFile, bool writeRelaxationOnly)</div><div class="ttdoc">Function writing functions into the ale file.</div><div class="ttdef"><b>Definition:</b> MAiNGOtoOtherLanguage.cpp:787</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a40c4e33f9034542409daa1f0497c776f"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a40c4e33f9034542409daa1f0497c776f">maingo::MAiNGO::_write_epsilon_constraint_result</a></div><div class="ttdeci">void _write_epsilon_constraint_result(const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;objectiveValues, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;solutionPoints)</div><div class="ttdoc">Function for writing the pareto front to MAiNGO_epsilon_constraint_objective_values....</div><div class="ttdef"><b>Definition:</b> MAiNGOwritingFunctions.cpp:309</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a9d035ded892ca2fd6a0151f6ea761d54"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a9d035ded892ca2fd6a0151f6ea761d54">maingo::MAiNGO::operator=</a></div><div class="ttdeci">MAiNGO &amp; operator=(const MAiNGO &amp;)</div><div class="ttdoc">Preventing use of default copy assignment.</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a6e2e3685c938ae2e8605dab3f6a13632"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a6e2e3685c938ae2e8605dab3f6a13632">maingo::MAiNGO::_write_ale_file</a></div><div class="ttdeci">void _write_ale_file(const std::string aleFileName=&quot;MAiNGO_ALE_file&quot;, const std::string solverName=&quot;SCIP&quot;, const bool writeRelaxationOnly=false)</div><div class="ttdoc">Writes MAiNGO problem to ALE file.</div><div class="ttdef"><b>Definition:</b> MAiNGOtoOtherLanguage.cpp:643</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a50df488dd7b110d7e4ebc137a8949696"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a50df488dd7b110d7e4ebc137a8949696">maingo::MAiNGO::get_model_at_solution_point</a></div><div class="ttdeci">std::vector&lt; double &gt; get_model_at_solution_point()</div><div class="ttdoc">Function returning all model function values at solution point. The ordering of the returned vector i...</div><div class="ttdef"><b>Definition:</b> MAiNGOgetterFunctions.cpp:243</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a9fb77dded43644f931547ab9d7a3daba"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a9fb77dded43644f931547ab9d7a3daba">maingo::MAiNGO::_nineqRelaxationOnly</a></div><div class="ttdeci">unsigned _nineqRelaxationOnly</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:572</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a5cbd854078dc3fbef193c14af2e7a11d"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a5cbd854078dc3fbef193c14af2e7a11d">maingo::MAiNGO::_outputNames</a></div><div class="ttdeci">std::vector&lt; std::string &gt; _outputNames</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:582</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_af917f2f3529a7c92bb0b972607c1e8df"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#af917f2f3529a7c92bb0b972607c1e8df">maingo::MAiNGO::_constantConstraintsFeasible</a></div><div class="ttdeci">bool _constantConstraintsFeasible</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:588</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a05c6ffd319ab0ee58791f14564871824"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a05c6ffd319ab0ee58791f14564871824">maingo::MAiNGO::_myUBSPre</a></div><div class="ttdeci">std::shared_ptr&lt; ubp::UpperBoundingSolver &gt; _myUBSPre</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:636</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a1fe4e8690548362eb1ec74fb052a424e"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a1fe4e8690548362eb1ec74fb052a424e">maingo::MAiNGO::set_model</a></div><div class="ttdeci">void set_model(std::shared_ptr&lt; MAiNGOmodel &gt; myModel)</div><div class="ttdoc">Initializes model.</div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:1001</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a917d78c01e2442296f829977491e6107"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a917d78c01e2442296f829977491e6107">maingo::MAiNGO::_babTime</a></div><div class="ttdeci">double _babTime</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:618</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a4919a41d851f89b85fbd2646d878a6b0"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a4919a41d851f89b85fbd2646d878a6b0">maingo::MAiNGO::_print_solution</a></div><div class="ttdeci">void _print_solution()</div><div class="ttdoc">Prints solution on screen.</div><div class="ttdef"><b>Definition:</b> MAiNGOprintingFunctions.cpp:115</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_acb69025e90c11f757a3f74c9b37daacd"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#acb69025e90c11f757a3f74c9b37daacd">maingo::MAiNGO::_write_files</a></div><div class="ttdeci">void _write_files()</div><div class="ttdoc">Writes logging and csv information to disk. </div><div class="ttdef"><b>Definition:</b> MAiNGOwritingFunctions.cpp:23</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_adf4fee2adeb03682d2ea70239f75848d"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#adf4fee2adeb03682d2ea70239f75848d">maingo::MAiNGO::_nvar</a></div><div class="ttdeci">unsigned _nvar</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:598</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_aa6a02b134e037806dea96aab029ff908"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#aa6a02b134e037806dea96aab029ff908">maingo::MAiNGO::_resultVars</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; _resultVars</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:585</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a20c235755de9f0c15ea62c28ae9e2ac8"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a20c235755de9f0c15ea62c28ae9e2ac8">maingo::MAiNGO::_write_ale_functions</a></div><div class="ttdeci">void _write_ale_functions(std::ofstream &amp;aleFile, bool writeRelaxationOnly)</div><div class="ttdoc">Function writing functions into the ale file. </div><div class="ttdef"><b>Definition:</b> MAiNGOtoOtherLanguage.cpp:792</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a40c4e33f9034542409daa1f0497c776f"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a40c4e33f9034542409daa1f0497c776f">maingo::MAiNGO::_write_epsilon_constraint_result</a></div><div class="ttdeci">void _write_epsilon_constraint_result(const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;objectiveValues, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;solutionPoints)</div><div class="ttdoc">Function for writing the pareto front to MAiNGO_epsilon_constraint_objective_values.csv and the corresponding solution points to MAiNGO_epsilon_constraint_solution_points.csv. </div><div class="ttdef"><b>Definition:</b> MAiNGOwritingFunctions.cpp:426</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a9d035ded892ca2fd6a0151f6ea761d54"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a9d035ded892ca2fd6a0151f6ea761d54">maingo::MAiNGO::operator=</a></div><div class="ttdeci">MAiNGO &amp; operator=(const MAiNGO &amp;)</div><div class="ttdoc">Preventing use of default copy assignment. </div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a6e2e3685c938ae2e8605dab3f6a13632"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a6e2e3685c938ae2e8605dab3f6a13632">maingo::MAiNGO::_write_ale_file</a></div><div class="ttdeci">void _write_ale_file(const std::string aleFileName=&quot;MAiNGO_ALE_file&quot;, const std::string solverName=&quot;SCIP&quot;, const bool writeRelaxationOnly=false)</div><div class="ttdoc">Writes MAiNGO problem to ALE file. </div><div class="ttdef"><b>Definition:</b> MAiNGOtoOtherLanguage.cpp:645</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a9fb77dded43644f931547ab9d7a3daba"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a9fb77dded43644f931547ab9d7a3daba">maingo::MAiNGO::_nineqRelaxationOnly</a></div><div class="ttdeci">unsigned _nineqRelaxationOnly</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:601</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a5cbd854078dc3fbef193c14af2e7a11d"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a5cbd854078dc3fbef193c14af2e7a11d">maingo::MAiNGO::_outputNames</a></div><div class="ttdeci">std::vector&lt; std::string &gt; _outputNames</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:611</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_af917f2f3529a7c92bb0b972607c1e8df"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#af917f2f3529a7c92bb0b972607c1e8df">maingo::MAiNGO::_constantConstraintsFeasible</a></div><div class="ttdeci">bool _constantConstraintsFeasible</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:617</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a05c6ffd319ab0ee58791f14564871824"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a05c6ffd319ab0ee58791f14564871824">maingo::MAiNGO::_myUBSPre</a></div><div class="ttdeci">std::shared_ptr&lt; ubp::UpperBoundingSolver &gt; _myUBSPre</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:666</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a4dc94835e031b37290f96814486c2903"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a4dc94835e031b37290f96814486c2903">maingo::MAiNGO::set_result_file_name</a></div><div class="ttdeci">void set_result_file_name(const std::string &amp;resultFileName)</div><div class="ttdoc">Sets name of the text file into which information on the solution may be written. ...</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:133</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a1fe4e8690548362eb1ec74fb052a424e"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a1fe4e8690548362eb1ec74fb052a424e">maingo::MAiNGO::set_model</a></div><div class="ttdeci">void set_model(std::shared_ptr&lt; MAiNGOmodel &gt; myModel)</div><div class="ttdoc">Initializes model. </div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:967</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a5ee95afece75a72e91aff11274eda43a"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a5ee95afece75a72e91aff11274eda43a">maingo::MAiNGO::evaluate_additional_outputs_at_solution_point</a></div><div class="ttdeci">std::vector&lt; std::pair&lt; std::string, double &gt; &gt; evaluate_additional_outputs_at_solution_point()</div><div class="ttdoc">Function returning the additional model outputs at the solution point. </div><div class="ttdef"><b>Definition:</b> MAiNGOevaluationFunctions.cpp:42</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a917d78c01e2442296f829977491e6107"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a917d78c01e2442296f829977491e6107">maingo::MAiNGO::_babTime</a></div><div class="ttdeci">double _babTime</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:648</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a4919a41d851f89b85fbd2646d878a6b0"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a4919a41d851f89b85fbd2646d878a6b0">maingo::MAiNGO::_print_solution</a></div><div class="ttdeci">void _print_solution()</div><div class="ttdoc">Prints solution on screen. </div><div class="ttdef"><b>Definition:</b> MAiNGOprintingFunctions.cpp:116</div></div>
 <div class="ttc" id="settings_8h_html"><div class="ttname"><a href="settings_8h.html">settings.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a9393fdd939148611496b665d537ca6cb"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a9393fdd939148611496b665d537ca6cb">maingo::MAiNGO::_constantOutputs</a></div><div class="ttdeci">std::vector&lt; Constraint &gt; _constantOutputs</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:593</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a9908a4661a24667409c0a0fd5c06fe9f"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a9908a4661a24667409c0a0fd5c06fe9f">maingo::MAiNGO::_construct_DAG</a></div><div class="ttdeci">void _construct_DAG()</div><div class="ttdoc">Construct DAG.</div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:1068</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a874e8de2f4daafb262380b882a3d3553"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a874e8de2f4daafb262380b882a3d3553">maingo::MAiNGO::_classify_constraints</a></div><div class="ttdeci">void _classify_constraints(std::vector&lt; mc::FFVar &gt; &amp;tmpFunctions, const std::vector&lt; mc::FFVar &gt; &amp;tmpDAGVars)</div><div class="ttdoc">Fills the constraints vectors (original, constant, non-constant) and outputs and writes non-constant ...</div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:1755</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_aa5de85da627e5dbdf3c6bf6be2ddad26"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#aa5de85da627e5dbdf3c6bf6be2ddad26">maingo::MAiNGO::_DAGfunctions</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; _DAGfunctions</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:554</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_abe4f3a7b42c05c07e7962be17de02ed3"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#abe4f3a7b42c05c07e7962be17de02ed3">maingo::MAiNGO::set_iterations_csv_file_name</a></div><div class="ttdeci">void set_iterations_csv_file_name(const std::string &amp;csvIterationsName)</div><div class="ttdoc">Sets names of the csv file into which information on the individual B&amp;B iterations may be written...</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:147</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a9908a4661a24667409c0a0fd5c06fe9f"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a9908a4661a24667409c0a0fd5c06fe9f">maingo::MAiNGO::_construct_DAG</a></div><div class="ttdeci">void _construct_DAG()</div><div class="ttdoc">Construct DAG. </div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:1035</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_aa5de85da627e5dbdf3c6bf6be2ddad26"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#aa5de85da627e5dbdf3c6bf6be2ddad26">maingo::MAiNGO::_DAGfunctions</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; _DAGfunctions</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:583</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ab894162dd5074eea1d5dd153e4f72d9e"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ab894162dd5074eea1d5dd153e4f72d9e">maingo::MAiNGO::_write_solution_and_statistics_csv</a></div><div class="ttdeci">void _write_solution_and_statistics_csv()</div><div class="ttdoc">Write csv summaries to disk. </div><div class="ttdef"><b>Definition:</b> MAiNGOwritingFunctions.cpp:204</div></div>
 <div class="ttc" id="logger_8h_html"><div class="ttname"><a href="logger_8h.html">logger.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a93a8eadb777ce6ff95072f16dc6ef762"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a93a8eadb777ce6ff95072f16dc6ef762">maingo::MAiNGO::_print_MAiNGO_header_for_other_modeling_language</a></div><div class="ttdeci">void _print_MAiNGO_header_for_other_modeling_language(const PARSING_LANGUAGE parsing_language, std::ofstream &amp;file)</div><div class="ttdoc">Write MAiNGO header for a different modeling language.</div><div class="ttdef"><b>Definition:</b> MAiNGOtoOtherLanguage.cpp:986</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ac7d4149849a607fa29b77b90a0a5fa2f"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ac7d4149849a607fa29b77b90a0a5fa2f">maingo::MAiNGO::_DAGoutputFunctions</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; _DAGoutputFunctions</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:555</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a0ec7e9601a2a5c8cc2f2bcb8d79c66a5"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a0ec7e9601a2a5c8cc2f2bcb8d79c66a5">maingo::MAiNGO::get_final_abs_gap</a></div><div class="ttdeci">double get_final_abs_gap() const</div><div class="ttdoc">Function returning the final absolute gap.</div><div class="ttdef"><b>Definition:</b> MAiNGOgetterFunctions.cpp:191</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a690afb91dfea9350cd401dc4c9390c4a"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a690afb91dfea9350cd401dc4c9390c4a">maingo::MAiNGO::_myFFVARmodel</a></div><div class="ttdeci">std::shared_ptr&lt; MAiNGOmodel &gt; _myFFVARmodel</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:583</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a0c15524b2884d3604fc0a5d4b40bcccb"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a0c15524b2884d3604fc0a5d4b40bcccb">maingo::MAiNGO::get_cpu_solution_time</a></div><div class="ttdeci">double get_cpu_solution_time() const</div><div class="ttdoc">Function returning CPU solution time.</div><div class="ttdef"><b>Definition:</b> MAiNGOgetterFunctions.cpp:68</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ab5ac4bb96785ca26617e81b55d9a5996"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ab5ac4bb96785ca26617e81b55d9a5996">maingo::MAiNGO::_print_time</a></div><div class="ttdeci">void _print_time()</div><div class="ttdoc">Prints solution time on screen.</div><div class="ttdef"><b>Definition:</b> MAiNGOprintingFunctions.cpp:309</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a7bce17d744313c9b489b19179eb0b4f0"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a7bce17d744313c9b489b19179eb0b4f0">maingo::MAiNGO::_nonconstantConstraintsUBP</a></div><div class="ttdeci">std::vector&lt; Constraint &gt; _nonconstantConstraintsUBP</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:592</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a755f6652395b3bad73976a26fa4243f9"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a755f6652395b3bad73976a26fa4243f9">maingo::MAiNGO::set_json_file_name</a></div><div class="ttdeci">void set_json_file_name(std::string jsonFileName=&quot;bab&quot;)</div><div class="ttdoc">Sets name of the json file.</div><div class="ttdef"><b>Definition:</b> MAiNGOwritingFunctions.cpp:286</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ab11fb623cd53b982490aa87f7f7da9e7"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ab11fb623cd53b982490aa87f7f7da9e7">maingo::MAiNGO::_myBaB</a></div><div class="ttdeci">std::shared_ptr&lt; bab::BranchAndBound &gt; _myBaB</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:638</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a4681879414746b1ac89b905479d6fa1d"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a4681879414746b1ac89b905479d6fa1d">maingo::MAiNGO::_write_ale_options</a></div><div class="ttdeci">void _write_ale_options(std::ofstream &amp;aleFile, std::string solverName=&quot;SCIP&quot;)</div><div class="ttdoc">Function writing options and model information into ale file.</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a1a9fa4c0ae0a91178836350b5f5c22d3"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a1a9fa4c0ae0a91178836350b5f5c22d3">maingo::MAiNGO::print_MAiNGO</a></div><div class="ttdeci">void print_MAiNGO(std::ostream &amp;outstream=std::cout)</div><div class="ttdoc">Function printing an ASCII MAiNGO with copyright.</div><div class="ttdef"><b>Definition:</b> MAiNGOprintingFunctions.cpp:385</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a14ac25981c3df0f6317418c8b9f4857c"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a14ac25981c3df0f6317418c8b9f4857c">maingo::MAiNGO::_get_additional_outputs</a></div><div class="ttdeci">std::vector&lt; std::pair&lt; std::string, double &gt; &gt; _get_additional_outputs(const std::vector&lt; double &gt; &amp;point)</div><div class="ttdoc">Function returning values of the additional outputs of the set model at a point.</div><div class="ttdef"><b>Definition:</b> MAiNGOgetterFunctions.cpp:354</div></div>
+<div class="ttc" id="namespacemaingo_html_a76021544553e05d3b4de6cbcf58db39a"><div class="ttname"><a href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39a">maingo::WRITING_LANGUAGE</a></div><div class="ttdeci">WRITING_LANGUAGE</div><div class="ttdoc">Enum for representing the modeling language in which MAiNGO is supposed to write the current model to...</div><div class="ttdef"><b>Definition:</b> settings.h:49</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_acdbebd94e2fcccad46515741516799de"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#acdbebd94e2fcccad46515741516799de">maingo::MAiNGO::_maingoSettings</a></div><div class="ttdeci">std::shared_ptr&lt; Settings &gt; _maingoSettings</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:675</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ac7d4149849a607fa29b77b90a0a5fa2f"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ac7d4149849a607fa29b77b90a0a5fa2f">maingo::MAiNGO::_DAGoutputFunctions</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; _DAGoutputFunctions</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:584</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a0ec7e9601a2a5c8cc2f2bcb8d79c66a5"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a0ec7e9601a2a5c8cc2f2bcb8d79c66a5">maingo::MAiNGO::get_final_abs_gap</a></div><div class="ttdeci">double get_final_abs_gap() const</div><div class="ttdoc">Function returning the final absolute gap. </div><div class="ttdef"><b>Definition:</b> MAiNGOgetterFunctions.cpp:187</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a56d30ff7a1a221550e6c7c045e5c6feb"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a56d30ff7a1a221550e6c7c045e5c6feb">maingo::MAiNGO::_ensure_valid_objective_function_using_dummy_variable</a></div><div class="ttdeci">void _ensure_valid_objective_function_using_dummy_variable(const mc::FFVar &amp;dummyVariable)</div><div class="ttdoc">Ensures that the objective function stored in the _modelOutput is valid. In particular, if _modelOutput is an empty vector, a constant will be used as objective function. If the objective function is a constant, this functions makes sure it is still correctly associated with the DAG. </div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:1929</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a690afb91dfea9350cd401dc4c9390c4a"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a690afb91dfea9350cd401dc4c9390c4a">maingo::MAiNGO::_myFFVARmodel</a></div><div class="ttdeci">std::shared_ptr&lt; MAiNGOmodel &gt; _myFFVARmodel</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:612</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a0c15524b2884d3604fc0a5d4b40bcccb"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a0c15524b2884d3604fc0a5d4b40bcccb">maingo::MAiNGO::get_cpu_solution_time</a></div><div class="ttdeci">double get_cpu_solution_time() const</div><div class="ttdoc">Function returning CPU solution time. </div><div class="ttdef"><b>Definition:</b> MAiNGOgetterFunctions.cpp:64</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ab5ac4bb96785ca26617e81b55d9a5996"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ab5ac4bb96785ca26617e81b55d9a5996">maingo::MAiNGO::_print_time</a></div><div class="ttdeci">void _print_time()</div><div class="ttdoc">Prints solution time on screen. </div><div class="ttdef"><b>Definition:</b> MAiNGOprintingFunctions.cpp:313</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ab11fb623cd53b982490aa87f7f7da9e7"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ab11fb623cd53b982490aa87f7f7da9e7">maingo::MAiNGO::_myBaB</a></div><div class="ttdeci">std::shared_ptr&lt; bab::BranchAndBound &gt; _myBaB</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:668</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a4681879414746b1ac89b905479d6fa1d"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a4681879414746b1ac89b905479d6fa1d">maingo::MAiNGO::_write_ale_options</a></div><div class="ttdeci">void _write_ale_options(std::ofstream &amp;aleFile, std::string solverName=&quot;SCIP&quot;)</div><div class="ttdoc">Function writing options and model information into ale file. </div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a1eeb14c069d224846f7684d95a90ed04"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a1eeb14c069d224846f7684d95a90ed04">maingo::MAiNGO::_print_MAiNGO_header_for_other_modeling_language</a></div><div class="ttdeci">void _print_MAiNGO_header_for_other_modeling_language(const WRITING_LANGUAGE writingLanguage, std::ofstream &amp;file)</div><div class="ttdoc">Write MAiNGO header for a different modeling language. </div><div class="ttdef"><b>Definition:</b> MAiNGOtoOtherLanguage.cpp:991</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a1a9fa4c0ae0a91178836350b5f5c22d3"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a1a9fa4c0ae0a91178836350b5f5c22d3">maingo::MAiNGO::print_MAiNGO</a></div><div class="ttdeci">void print_MAiNGO(std::ostream &amp;outstream=std::cout)</div><div class="ttdoc">Function printing an ASCII MAiNGO with copyright. </div><div class="ttdef"><b>Definition:</b> MAiNGOprintingFunctions.cpp:389</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a83da0fbc8eeb9b2f336cd5d41707fbaf"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a83da0fbc8eeb9b2f336cd5d41707fbaf">maingo::MAiNGO::_write_result_file</a></div><div class="ttdeci">void _write_result_file()</div><div class="ttdoc">Write res file to disk containing non-standard model information such as, e.g., residuals It will be ...</div><div class="ttdef"><b>Definition:</b> MAiNGOwritingFunctions.cpp:62</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a1a4ba608b818d6a2e303b836505e0234"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a1a4ba608b818d6a2e303b836505e0234">maingo::MAiNGO::set_output_stream</a></div><div class="ttdeci">void set_output_stream(std::ostream *const outputStream)</div><div class="ttdoc">Sets output stream onto which logging information may be printed. </div><div class="ttdef"><b>Definition:</b> MAiNGO.h:119</div></div>
 <div class="ttc" id="_m_ai_n_g_odebug_8h_html"><div class="ttname"><a href="_m_ai_n_g_odebug_8h.html">MAiNGOdebug.h</a></div></div>
-<div class="ttc" id="namespacemaingo_html_a7fda513a30bb172152b96406e370299a"><div class="ttname"><a href="namespacemaingo.html#a7fda513a30bb172152b96406e370299a">maingo::PARSING_LANGUAGE</a></div><div class="ttdeci">PARSING_LANGUAGE</div><div class="ttdoc">Enum for representing possible modeling language for parsing a MAiNGO model to.</div><div class="ttdef"><b>Definition:</b> settings.h:56</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ab4d0923334ce1323a91389117560a271"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ab4d0923334ce1323a91389117560a271">maingo::MAiNGO::MAiNGO</a></div><div class="ttdeci">MAiNGO()</div><div class="ttdoc">Preventing use of default constructor.</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a1143aeaa67ba99d6ddc224a44d0fbfb5"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a1143aeaa67ba99d6ddc224a44d0fbfb5">maingo::MAiNGO::_nvarOriginal</a></div><div class="ttdeci">unsigned _nvarOriginal</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:565</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_af0c4e2dcc05ca034801db5400f8d2fa7"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#af0c4e2dcc05ca034801db5400f8d2fa7">maingo::MAiNGO::_nvarLbd</a></div><div class="ttdeci">unsigned _nvarLbd</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:606</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a65d8859f0f4b4e6dfec43c4238d24772"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a65d8859f0f4b4e6dfec43c4238d24772">maingo::MAiNGO::_nineqSquash</a></div><div class="ttdeci">unsigned _nineqSquash</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:574</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ac39c6e7cc69822997e9fb18721e2e52f"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ac39c6e7cc69822997e9fb18721e2e52f">maingo::MAiNGO::_solutionPoint</a></div><div class="ttdeci">std::vector&lt; double &gt; _solutionPoint</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:614</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a805b901f0e2e25ee5910b2b0e6a7c99a"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a805b901f0e2e25ee5910b2b0e6a7c99a">maingo::MAiNGO::_uniqueNamesOriginal</a></div><div class="ttdeci">std::vector&lt; std::string &gt; _uniqueNamesOriginal</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:561</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ad33f6f1b9cb0e07b0e44bcb5297d860f"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ad33f6f1b9cb0e07b0e44bcb5297d860f">maingo::MAiNGO::_nconstantOutputVariables</a></div><div class="ttdeci">unsigned _nconstantOutputVariables</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:581</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a96f1a3a2a8c24cdca954e63fdc155e01"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a96f1a3a2a8c24cdca954e63fdc155e01">maingo::MAiNGO::_logger</a></div><div class="ttdeci">Logger _logger</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:643</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a4940dbf6b13e10e500cb7704b3f6d412"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a4940dbf6b13e10e500cb7704b3f6d412">maingo::MAiNGO::_rootMultistartStatus</a></div><div class="ttdeci">SUBSOLVER_RETCODE _rootMultistartStatus</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:625</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ae327014202f53c1f3f0fab024b1d6da7"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ae327014202f53c1f3f0fab024b1d6da7">maingo::MAiNGO::_nconstantEq</a></div><div class="ttdeci">unsigned _nconstantEq</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:577</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a50062c75f198aab4cd975f34fdef1506"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a50062c75f198aab4cd975f34fdef1506">maingo::MAiNGO::solve</a></div><div class="ttdeci">RETCODE solve()</div><div class="ttdoc">Solves the problem.</div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:50</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ab4d0923334ce1323a91389117560a271"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ab4d0923334ce1323a91389117560a271">maingo::MAiNGO::MAiNGO</a></div><div class="ttdeci">MAiNGO()</div><div class="ttdoc">Preventing use of default constructor. </div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a1143aeaa67ba99d6ddc224a44d0fbfb5"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a1143aeaa67ba99d6ddc224a44d0fbfb5">maingo::MAiNGO::_nvarOriginal</a></div><div class="ttdeci">unsigned _nvarOriginal</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:594</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_af0c4e2dcc05ca034801db5400f8d2fa7"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#af0c4e2dcc05ca034801db5400f8d2fa7">maingo::MAiNGO::_nvarLbd</a></div><div class="ttdeci">unsigned _nvarLbd</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:636</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a65d8859f0f4b4e6dfec43c4238d24772"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a65d8859f0f4b4e6dfec43c4238d24772">maingo::MAiNGO::_nineqSquash</a></div><div class="ttdeci">unsigned _nineqSquash</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:603</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ac39c6e7cc69822997e9fb18721e2e52f"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ac39c6e7cc69822997e9fb18721e2e52f">maingo::MAiNGO::_solutionPoint</a></div><div class="ttdeci">std::vector&lt; double &gt; _solutionPoint</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:644</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a21ee05457f51d5b22853d10cb4114b96"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a21ee05457f51d5b22853d10cb4114b96">maingo::MAiNGO::set_option</a></div><div class="ttdeci">bool set_option(const std::string &amp;option, const bool value)</div><div class="ttdoc">Sets an option with a boolean value. </div><div class="ttdef"><b>Definition:</b> MAiNGO.h:95</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a805b901f0e2e25ee5910b2b0e6a7c99a"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a805b901f0e2e25ee5910b2b0e6a7c99a">maingo::MAiNGO::_uniqueNamesOriginal</a></div><div class="ttdeci">std::vector&lt; std::string &gt; _uniqueNamesOriginal</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:590</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a8acf1fc912457043365faabd54861d50"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a8acf1fc912457043365faabd54861d50">maingo::MAiNGO::write_model_to_file_in_other_language</a></div><div class="ttdeci">void write_model_to_file_in_other_language(const WRITING_LANGUAGE writingLanguage, std::string fileName=&quot;&quot;, const std::string solverName=&quot;SCIP&quot;, const bool useMinMax=true, const bool useTrig=true, const bool ignoreBoundingFuncs=false, const bool writeRelaxationOnly=true)</div><div class="ttdoc">Writes MAiNGO model to a a file in a different modeling language. </div><div class="ttdef"><b>Definition:</b> MAiNGOtoOtherLanguage.cpp:29</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ae2bc7507ee0341d7b0a8ac06702ca964"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ae2bc7507ee0341d7b0a8ac06702ca964">maingo::MAiNGO::set_option</a></div><div class="ttdeci">bool set_option(const std::string &amp;option, const double value)</div><div class="ttdoc">Sets an option with a double value. This function is used for all options. </div><div class="ttdef"><b>Definition:</b> MAiNGOsetOption.cpp:27</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ad33f6f1b9cb0e07b0e44bcb5297d860f"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ad33f6f1b9cb0e07b0e44bcb5297d860f">maingo::MAiNGO::_nconstantOutputVariables</a></div><div class="ttdeci">unsigned _nconstantOutputVariables</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:610</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_acd561f4e9560a6a5c501bdf444f581b8"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#acd561f4e9560a6a5c501bdf444f581b8">maingo::MAiNGO::evaluate_model_at_solution_point</a></div><div class="ttdeci">std::vector&lt; double &gt; evaluate_model_at_solution_point()</div><div class="ttdoc">Function returning all model function values at solution point. The ordering of the returned vector i...</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluationFunctions.cpp:22</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a4940dbf6b13e10e500cb7704b3f6d412"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a4940dbf6b13e10e500cb7704b3f6d412">maingo::MAiNGO::_rootMultistartStatus</a></div><div class="ttdeci">SUBSOLVER_RETCODE _rootMultistartStatus</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:655</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_ae327014202f53c1f3f0fab024b1d6da7"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#ae327014202f53c1f3f0fab024b1d6da7">maingo::MAiNGO::_nconstantEq</a></div><div class="ttdeci">unsigned _nconstantEq</div><div class="ttdef"><b>Definition:</b> MAiNGO.h:606</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_html_a50062c75f198aab4cd975f34fdef1506"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o.html#a50062c75f198aab4cd975f34fdef1506">maingo::MAiNGO::solve</a></div><div class="ttdeci">RETCODE solve()</div><div class="ttdoc">Solves the problem. </div><div class="ttdef"><b>Definition:</b> MAiNGO.cpp:46</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -265,7 +271,7 @@ $(document).ready(function(){initNavTree('_m_ai_n_g_o_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="_m_ai_n_g_o_8h.html">MAiNGO.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/_m_ai_n_g_o_exception_8h.html b/doc/html/_m_ai_n_g_o_exception_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..a6005c64e16be68a854bff7c47318329fb0de02f
--- /dev/null
+++ b/doc/html/_m_ai_n_g_o_exception_8h.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>MAiNGO: C:/dobo01/maingo/inc/MAiNGOException.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(initResizable);
+/* @license-end */</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><img alt="Logo" src="mango_only.png"/></td>
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">MAiNGO
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(document).ready(function(){initNavTree('_m_ai_n_g_o_exception_8h.html','');});
+/* @license-end */
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">MAiNGOException.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="bab_node_8h_source.html">babNode.h</a>&quot;</code><br />
+<code>#include &lt;exception&gt;</code><br />
+<code>#include &lt;sstream&gt;</code><br />
+<code>#include &lt;string&gt;</code><br />
+<code>#include &lt;typeinfo&gt;</code><br />
+</div>
+<p><a href="_m_ai_n_g_o_exception_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">maingo::MAiNGOException</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This class defines the exceptions thrown by <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a>.  <a href="classmaingo_1_1_m_ai_n_g_o_exception.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespacemaingo"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo.html">maingo</a></td></tr>
+<tr class="memdesc:namespacemaingo"><td class="mdescLeft">&#160;</td><td class="mdescRight">namespace holding all essentials of <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="_m_ai_n_g_o_exception_8h.html">MAiNGOException.h</a></li>
+    <li class="footer">Generated by
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/doc/html/_m_ai_n_g_o_exception_8h_source.html b/doc/html/_m_ai_n_g_o_exception_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..47789cf9a0a6e2bccf47c827f4643907221766a9
--- /dev/null
+++ b/doc/html/_m_ai_n_g_o_exception_8h_source.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>MAiNGO: C:/dobo01/maingo/inc/MAiNGOException.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(initResizable);
+/* @license-end */</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><img alt="Logo" src="mango_only.png"/></td>
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">MAiNGO
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(document).ready(function(){initNavTree('_m_ai_n_g_o_exception_8h_source.html','');});
+/* @license-end */
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">MAiNGOException.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_m_ai_n_g_o_exception_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_node_8h.html">babNode.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &lt;exception&gt;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &lt;sstream&gt;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &lt;typeinfo&gt;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o_exception.html">   35</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>: <span class="keyword">public</span> std::exception {</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html#ae27b9410e3135e7784dae78c11e682f6">MAiNGOException</a>()                       = <span class="keyword">delete</span>;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html#ae27b9410e3135e7784dae78c11e682f6">MAiNGOException</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>&amp;) = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html#ae27b9410e3135e7784dae78c11e682f6">MAiNGOException</a>(<a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>&amp;&amp;)      = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>&amp; <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html#aa38305aacfa2e2ebce4c5067dee75df9">operator=</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>&amp;) = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>&amp; <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html#aa38305aacfa2e2ebce4c5067dee75df9">operator=</a>(<a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>&amp;&amp;) = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a2bddf4891f256ffd2f7395626412568a">~MAiNGOException</a>()                    = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a61855f24f971602b43e26c16b0593e4f">   45</a></span>&#160;    <span class="keyword">explicit</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a61855f24f971602b43e26c16b0593e4f">MAiNGOException</a>(<span class="keyword">const</span> std::string&amp; errorMessage)</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    {</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;        <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a5cc5c15e7cb9d14f7877731fabb46189">_construct_complete_error_message</a>(errorMessage, <span class="keyword">nullptr</span>, <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    }</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a6f3fb2a660e871f2949a18b4a6986019">   50</a></span>&#160;    <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a6f3fb2a660e871f2949a18b4a6986019">MAiNGOException</a>(<span class="keyword">const</span> std::string&amp; errorMessage, <span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a>&amp; nodeThatErrorOccurredIn)</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    {</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;        <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a5cc5c15e7cb9d14f7877731fabb46189">_construct_complete_error_message</a>(errorMessage, <span class="keyword">nullptr</span>, &amp;nodeThatErrorOccurredIn);</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    }</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a457b8be0f33fcfeb9ab096345e60b75c">   55</a></span>&#160;    <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a457b8be0f33fcfeb9ab096345e60b75c">MAiNGOException</a>(<span class="keyword">const</span> std::string&amp; errorMessage, <span class="keyword">const</span> std::exception&amp; originalException)</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    {</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a5cc5c15e7cb9d14f7877731fabb46189">_construct_complete_error_message</a>(errorMessage, &amp;originalException, <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    }</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o_exception.html#af37f598a1339901938a6bbf3b67a3247">   60</a></span>&#160;    <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html#af37f598a1339901938a6bbf3b67a3247">MAiNGOException</a>(<span class="keyword">const</span> std::string&amp; errorMessage, <span class="keyword">const</span> std::exception&amp; originalException, <span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a>&amp; nodeThatErrorOccurredIn)</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    {</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;        <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a5cc5c15e7cb9d14f7877731fabb46189">_construct_complete_error_message</a>(errorMessage, &amp;originalException, &amp;nodeThatErrorOccurredIn);</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    }</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a07682a0877265a921df4401bb1dbb3f6">   65</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a07682a0877265a921df4401bb1dbb3f6">what</a>() const noexcept<span class="keyword"> override</span></div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="keyword">    </span>{</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html#ac3cd87bc11baff35170096a9a4fd8007">_errorMessage</a>.c_str();</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    }</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o_exception.html#ac3cd87bc11baff35170096a9a4fd8007">   72</a></span>&#160;    std::string <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html#ac3cd87bc11baff35170096a9a4fd8007">_errorMessage</a>{<span class="stringliteral">&quot;&quot;</span>};</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a5cc5c15e7cb9d14f7877731fabb46189">   74</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a5cc5c15e7cb9d14f7877731fabb46189">_construct_complete_error_message</a>(<span class="keyword">const</span> std::string&amp; errorMessage, <span class="keyword">const</span> std::exception* originalException, <span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a>* nodeThatErrorOccurredIn)</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    {</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;        std::ostringstream errorMessageStream;</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;        <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a9cd783e2e9ac6fcaf813bd8f94f2300d">_append_original_exception_info_to_message</a>(originalException, errorMessageStream);</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a978212ab50e44b92bc27cb853df35733">_append_current_error_message_to_message</a>(errorMessage, errorMessageStream);</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;        <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a78cc259eb3c775814b2214262f026b8a">_append_node_info_to_message</a>(nodeThatErrorOccurredIn, errorMessageStream);</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;        <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html#ac3cd87bc11baff35170096a9a4fd8007">_errorMessage</a> = errorMessageStream.str();</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    }</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a978212ab50e44b92bc27cb853df35733">   85</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a978212ab50e44b92bc27cb853df35733">_append_current_error_message_to_message</a>(<span class="keyword">const</span> std::string&amp; currentErrorMessage, std::ostringstream&amp; completeErrorMessage)</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    {</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;        completeErrorMessage &lt;&lt; currentErrorMessage;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    }</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a9cd783e2e9ac6fcaf813bd8f94f2300d">   90</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a9cd783e2e9ac6fcaf813bd8f94f2300d">_append_original_exception_info_to_message</a>(<span class="keyword">const</span> std::exception* originalException, std::ostringstream&amp; completeErrorMessage)</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    {</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        <span class="keywordflow">if</span> (originalException) {</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;            <span class="keywordflow">if</span> (<span class="keyword">typeid</span>(*originalException).name() != <span class="keyword">typeid</span>(*this).name()) {</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                completeErrorMessage &lt;&lt; <span class="stringliteral">&quot;  Original exception type: &quot;</span> &lt;&lt; <span class="keyword">typeid</span>(*originalException).name() &lt;&lt; <span class="stringliteral">&quot;: &quot;</span> &lt;&lt; std::endl</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;                                     &lt;&lt; <span class="stringliteral">&quot;   &quot;</span>;</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;            }</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;            completeErrorMessage &lt;&lt; originalException-&gt;what() &lt;&lt; std::endl;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;        }</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    }</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a78cc259eb3c775814b2214262f026b8a">  101</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a78cc259eb3c775814b2214262f026b8a">_append_node_info_to_message</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a>* nodeThatErrorOccurredIn, std::ostringstream&amp; completeErrorMessage)</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    {</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        <span class="keywordflow">if</span> (nodeThatErrorOccurredIn) {</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;            std::vector&lt;double&gt; lowerVarBounds(nodeThatErrorOccurredIn-&gt;<a class="code" href="classbab_base_1_1_bab_node.html#a00e68c3242d5180d302cf5c8e1f8de2c">get_lower_bounds</a>()), upperVarBounds(nodeThatErrorOccurredIn-&gt;<a class="code" href="classbab_base_1_1_bab_node.html#a2a0922468fbfe492d9d70231c54c4bf9">get_upper_bounds</a>());</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;            completeErrorMessage &lt;&lt; std::endl</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;                                 &lt;&lt; <span class="stringliteral">&quot;  Exception was thrown while processing node no. &quot;</span> &lt;&lt; nodeThatErrorOccurredIn-&gt;<a class="code" href="classbab_base_1_1_bab_node.html#a12e23225255660e57238ecb0820ea420">get_ID</a>() &lt;&lt; <span class="stringliteral">&quot;:&quot;</span>;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;            <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; lowerVarBounds.size(); i++) {</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;                completeErrorMessage &lt;&lt; std::endl</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;                                     &lt;&lt; <span class="stringliteral">&quot;    x(&quot;</span> &lt;&lt; i &lt;&lt; <span class="stringliteral">&quot;): &quot;</span> &lt;&lt; std::setprecision(16) &lt;&lt; lowerVarBounds[i] &lt;&lt; <span class="stringliteral">&quot;:&quot;</span> &lt;&lt; upperVarBounds[i];</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;            }</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        }</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    }</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;};</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_exception_html_ac3cd87bc11baff35170096a9a4fd8007"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o_exception.html#ac3cd87bc11baff35170096a9a4fd8007">maingo::MAiNGOException::_errorMessage</a></div><div class="ttdeci">std::string _errorMessage</div><div class="ttdef"><b>Definition:</b> MAiNGOException.h:72</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html_a12e23225255660e57238ecb0820ea420"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a12e23225255660e57238ecb0820ea420">babBase::BabNode::get_ID</a></div><div class="ttdeci">int get_ID() const</div><div class="ttdoc">Function for querying the node ID. </div><div class="ttdef"><b>Definition:</b> babNode.h:100</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html"><div class="ttname"><a href="classbab_base_1_1_bab_node.html">babBase::BabNode</a></div><div class="ttdoc">Class representing a node in the Branch-and-Bound tree. </div><div class="ttdef"><b>Definition:</b> babNode.h:35</div></div>
+<div class="ttc" id="bab_node_8h_html"><div class="ttname"><a href="bab_node_8h.html">babNode.h</a></div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_exception_html_a457b8be0f33fcfeb9ab096345e60b75c"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o_exception.html#a457b8be0f33fcfeb9ab096345e60b75c">maingo::MAiNGOException::MAiNGOException</a></div><div class="ttdeci">MAiNGOException(const std::string &amp;errorMessage, const std::exception &amp;originalException)</div><div class="ttdef"><b>Definition:</b> MAiNGOException.h:55</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_exception_html_a78cc259eb3c775814b2214262f026b8a"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o_exception.html#a78cc259eb3c775814b2214262f026b8a">maingo::MAiNGOException::_append_node_info_to_message</a></div><div class="ttdeci">void _append_node_info_to_message(const babBase::BabNode *nodeThatErrorOccurredIn, std::ostringstream &amp;completeErrorMessage)</div><div class="ttdef"><b>Definition:</b> MAiNGOException.h:101</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_exception_html_af37f598a1339901938a6bbf3b67a3247"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o_exception.html#af37f598a1339901938a6bbf3b67a3247">maingo::MAiNGOException::MAiNGOException</a></div><div class="ttdeci">MAiNGOException(const std::string &amp;errorMessage, const std::exception &amp;originalException, const babBase::BabNode &amp;nodeThatErrorOccurredIn)</div><div class="ttdef"><b>Definition:</b> MAiNGOException.h:60</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html_a00e68c3242d5180d302cf5c8e1f8de2c"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a00e68c3242d5180d302cf5c8e1f8de2c">babBase::BabNode::get_lower_bounds</a></div><div class="ttdeci">std::vector&lt; double &gt; get_lower_bounds() const</div><div class="ttdoc">Function for querying the lower bounds on the optimization variables within this node. </div><div class="ttdef"><b>Definition:</b> babNode.h:90</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_exception_html_a9cd783e2e9ac6fcaf813bd8f94f2300d"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o_exception.html#a9cd783e2e9ac6fcaf813bd8f94f2300d">maingo::MAiNGOException::_append_original_exception_info_to_message</a></div><div class="ttdeci">void _append_original_exception_info_to_message(const std::exception *originalException, std::ostringstream &amp;completeErrorMessage)</div><div class="ttdef"><b>Definition:</b> MAiNGOException.h:90</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_exception_html_a07682a0877265a921df4401bb1dbb3f6"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o_exception.html#a07682a0877265a921df4401bb1dbb3f6">maingo::MAiNGOException::what</a></div><div class="ttdeci">const char * what() const noexcept override</div><div class="ttdef"><b>Definition:</b> MAiNGOException.h:65</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_exception_html_a6f3fb2a660e871f2949a18b4a6986019"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o_exception.html#a6f3fb2a660e871f2949a18b4a6986019">maingo::MAiNGOException::MAiNGOException</a></div><div class="ttdeci">MAiNGOException(const std::string &amp;errorMessage, const babBase::BabNode &amp;nodeThatErrorOccurredIn)</div><div class="ttdef"><b>Definition:</b> MAiNGOException.h:50</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_exception_html_a5cc5c15e7cb9d14f7877731fabb46189"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o_exception.html#a5cc5c15e7cb9d14f7877731fabb46189">maingo::MAiNGOException::_construct_complete_error_message</a></div><div class="ttdeci">void _construct_complete_error_message(const std::string &amp;errorMessage, const std::exception *originalException, const babBase::BabNode *nodeThatErrorOccurredIn)</div><div class="ttdef"><b>Definition:</b> MAiNGOException.h:74</div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_exception_html_a2bddf4891f256ffd2f7395626412568a"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o_exception.html#a2bddf4891f256ffd2f7395626412568a">maingo::MAiNGOException::~MAiNGOException</a></div><div class="ttdeci">virtual ~MAiNGOException()=default</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_exception_html_aa38305aacfa2e2ebce4c5067dee75df9"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o_exception.html#aa38305aacfa2e2ebce4c5067dee75df9">maingo::MAiNGOException::operator=</a></div><div class="ttdeci">MAiNGOException &amp; operator=(const MAiNGOException &amp;)=default</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_exception_html_a61855f24f971602b43e26c16b0593e4f"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o_exception.html#a61855f24f971602b43e26c16b0593e4f">maingo::MAiNGOException::MAiNGOException</a></div><div class="ttdeci">MAiNGOException(const std::string &amp;errorMessage)</div><div class="ttdef"><b>Definition:</b> MAiNGOException.h:45</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html_a2a0922468fbfe492d9d70231c54c4bf9"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a2a0922468fbfe492d9d70231c54c4bf9">babBase::BabNode::get_upper_bounds</a></div><div class="ttdeci">std::vector&lt; double &gt; get_upper_bounds() const</div><div class="ttdoc">Function for querying the upper bounds on the optimization variables within this node. </div><div class="ttdef"><b>Definition:</b> babNode.h:95</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_exception_html"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o_exception.html">maingo::MAiNGOException</a></div><div class="ttdoc">This class defines the exceptions thrown by MAiNGO. </div><div class="ttdef"><b>Definition:</b> MAiNGOException.h:35</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_exception_html_a978212ab50e44b92bc27cb853df35733"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o_exception.html#a978212ab50e44b92bc27cb853df35733">maingo::MAiNGOException::_append_current_error_message_to_message</a></div><div class="ttdeci">void _append_current_error_message_to_message(const std::string &amp;currentErrorMessage, std::ostringstream &amp;completeErrorMessage)</div><div class="ttdef"><b>Definition:</b> MAiNGOException.h:85</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_exception_html_ae27b9410e3135e7784dae78c11e682f6"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o_exception.html#ae27b9410e3135e7784dae78c11e682f6">maingo::MAiNGOException::MAiNGOException</a></div><div class="ttdeci">MAiNGOException()=delete</div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="_m_ai_n_g_o_exception_8h.html">MAiNGOException.h</a></li>
+    <li class="footer">Generated by
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/doc/html/_m_ai_n_g_o_mpi_exception_8h.html b/doc/html/_m_ai_n_g_o_mpi_exception_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..e39d78d184a883949a9397264b6004a89a660225
--- /dev/null
+++ b/doc/html/_m_ai_n_g_o_mpi_exception_8h.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>MAiNGO: C:/dobo01/maingo/inc/MAiNGOMpiException.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(initResizable);
+/* @license-end */</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><img alt="Logo" src="mango_only.png"/></td>
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">MAiNGO
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(document).ready(function(){initNavTree('_m_ai_n_g_o_mpi_exception_8h.html','');});
+/* @license-end */
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">MAiNGOMpiException.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="_m_ai_n_g_o_mpi_exception_8h_source.html">Go to the source code of this file.</a></p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="_m_ai_n_g_o_mpi_exception_8h.html">MAiNGOMpiException.h</a></li>
+    <li class="footer">Generated by
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/doc/html/_m_ai_n_g_o_mpi_exception_8h_source.html b/doc/html/_m_ai_n_g_o_mpi_exception_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..1db047e8b773ae6042da6259cdfcc3118b466937
--- /dev/null
+++ b/doc/html/_m_ai_n_g_o_mpi_exception_8h_source.html
@@ -0,0 +1,109 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>MAiNGO: C:/dobo01/maingo/inc/MAiNGOMpiException.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(initResizable);
+/* @license-end */</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><img alt="Logo" src="mango_only.png"/></td>
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">MAiNGO
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(document).ready(function(){initNavTree('_m_ai_n_g_o_mpi_exception_8h_source.html','');});
+/* @license-end */
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">MAiNGOMpiException.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_m_ai_n_g_o_mpi_exception_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#ifdef HAVE_MAiNGO_MPI</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_m_ai_n_g_o_exception_8h.html">MAiNGOException.h</a>&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_node_8h.html">babNode.h</a>&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="keyword">class </span>MAiNGOMpiException: <span class="keyword">public</span> MAiNGOException {</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    MAiNGOMpiException()                          = <span class="keyword">delete</span>;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    MAiNGOMpiException(<span class="keyword">const</span> MAiNGOMpiException&amp;) = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    MAiNGOMpiException(MAiNGOMpiException&amp;&amp;)      = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    MAiNGOMpiException&amp; operator=(<span class="keyword">const</span> MAiNGOMpiException&amp;) = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    MAiNGOMpiException&amp; operator=(MAiNGOMpiException&amp;&amp;) = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    ~MAiNGOMpiException()                               = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    <span class="keyword">enum</span> ORIGIN {</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        ORIGIN_ME = 1, </div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;        ORIGIN_OTHER   </div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    };</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    MAiNGOMpiException(<span class="keyword">const</span> std::string&amp; errorMessage, <span class="keyword">const</span> ORIGIN origin):</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;        MAiNGOException(errorMessage), _origin(origin)</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    {</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    }</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    MAiNGOMpiException(<span class="keyword">const</span> std::string&amp; errorMessage, <span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a>&amp; nodeThatProblemOccurredIn, <span class="keyword">const</span> ORIGIN origin):</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;        MAiNGOException(errorMessage, nodeThatProblemOccurredIn), _origin(origin)</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    {</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    }</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    MAiNGOMpiException(<span class="keyword">const</span> std::string&amp; errorMessage, <span class="keyword">const</span> std::exception&amp; originalException, <span class="keyword">const</span> ORIGIN origin):</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        MAiNGOException(errorMessage, originalException), _origin(origin)</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    {</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    }</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    MAiNGOMpiException(<span class="keyword">const</span> std::string&amp; errorMessage, <span class="keyword">const</span> std::exception&amp; originalException, <span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a>&amp; nodeThatProblemOccurredIn, <span class="keyword">const</span> ORIGIN origin):</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;        MAiNGOException(errorMessage, originalException, nodeThatProblemOccurredIn), _origin(origin)</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    {</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    }</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    MAiNGOMpiException(MAiNGOException&amp; originalException, ORIGIN origin):</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        MAiNGOException(originalException), _origin(origin)</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    {</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    }</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    ORIGIN origin() const noexcept { <span class="keywordflow">return</span> _origin; }</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    ORIGIN _origin;</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;};</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="preprocessor">#endif</span></div><div class="ttc" id="classbab_base_1_1_bab_node_html"><div class="ttname"><a href="classbab_base_1_1_bab_node.html">babBase::BabNode</a></div><div class="ttdoc">Class representing a node in the Branch-and-Bound tree. </div><div class="ttdef"><b>Definition:</b> babNode.h:35</div></div>
+<div class="ttc" id="bab_node_8h_html"><div class="ttname"><a href="bab_node_8h.html">babNode.h</a></div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
+<div class="ttc" id="_m_ai_n_g_o_exception_8h_html"><div class="ttname"><a href="_m_ai_n_g_o_exception_8h.html">MAiNGOException.h</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="_m_ai_n_g_o_mpi_exception_8h.html">MAiNGOMpiException.h</a></li>
+    <li class="footer">Generated by
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/doc/html/_m_ai_n_g_odebug_8h.html b/doc/html/_m_ai_n_g_odebug_8h.html
index 4275da47e41736cc45c3dcd5d4a22a4dc3347312..3c197562cf2e9c8fdcbd636c16f2f11a473d22d7 100644
--- a/doc/html/_m_ai_n_g_odebug_8h.html
+++ b/doc/html/_m_ai_n_g_odebug_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/MAiNGOdebug.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/MAiNGOdebug.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -123,7 +123,7 @@ Macros</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="_m_ai_n_g_odebug_8h.html">MAiNGOdebug.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/_m_ai_n_g_odebug_8h_source.html b/doc/html/_m_ai_n_g_odebug_8h_source.html
index 6f99f12174dcaef7acc2c70fd973a6b94ec1dc2c..38d3dc10344195561861e5f1b2a9136f1df38a25 100644
--- a/doc/html/_m_ai_n_g_odebug_8h_source.html
+++ b/doc/html/_m_ai_n_g_odebug_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/MAiNGOdebug.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/MAiNGOdebug.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,7 +90,7 @@ $(document).ready(function(){initNavTree('_m_ai_n_g_odebug_8h_source.html','');}
 <div class="title">MAiNGOdebug.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="_m_ai_n_g_odebug_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file MAiNGOdebug.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File declaring pre-processor variables for debugging</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment">// Pre-processor variable for specific additional output in MAiNGO useful for debugging</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#undef MAiNGO_DEBUG_MODE</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment">// Pre-processor variable enabling infeasibility, optimality and feasibility checks for the lower bounding LP</span></div><div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="_m_ai_n_g_odebug_8h.html#a2426c899a5c3a34bfa2fb0f61f6dcaf5">   22</a></span>&#160;<span class="preprocessor">#define LP__OPTIMALITY_CHECK</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment">// Pre-processor variable enabling writing of files for the above checks</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#undef LP__WRITE_CHECK_FILES</span></div></div><!-- fragment --></div><!-- contents -->
+<a href="_m_ai_n_g_odebug_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment">// Pre-processor variable for specific additional output in MAiNGO useful for debugging</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#undef MAiNGO_DEBUG_MODE</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment">// Pre-processor variable enabling infeasibility, optimality and feasibility checks for the lower bounding LP</span></div><div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="_m_ai_n_g_odebug_8h.html#a2426c899a5c3a34bfa2fb0f61f6dcaf5">   18</a></span>&#160;<span class="preprocessor">#define LP__OPTIMALITY_CHECK</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment">// Pre-processor variable enabling writing of files for the above checks</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#undef LP__WRITE_CHECK_FILES</span></div></div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
@@ -98,7 +98,7 @@ $(document).ready(function(){initNavTree('_m_ai_n_g_odebug_8h_source.html','');}
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="_m_ai_n_g_odebug_8h.html">MAiNGOdebug.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/_m_ai_n_g_oevaluation_functions_8cpp.html b/doc/html/_m_ai_n_g_oevaluation_functions_8cpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..d8de132fe146fc0aaf0037606a543b9f857b0d35
--- /dev/null
+++ b/doc/html/_m_ai_n_g_oevaluation_functions_8cpp.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>MAiNGO: C:/dobo01/maingo/src/MAiNGOevaluationFunctions.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(initResizable);
+/* @license-end */</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><img alt="Logo" src="mango_only.png"/></td>
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">MAiNGO
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(document).ready(function(){initNavTree('_m_ai_n_g_oevaluation_functions_8cpp.html','');});
+/* @license-end */
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">MAiNGOevaluationFunctions.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_m_ai_n_g_o_8h_source.html">MAiNGO.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_m_ai_n_g_o_exception_8h_source.html">MAiNGOException.h</a>&quot;</code><br />
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="_m_ai_n_g_oevaluation_functions_8cpp.html">MAiNGOevaluationFunctions.cpp</a></li>
+    <li class="footer">Generated by
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/doc/html/_m_ai_n_g_oevaluator_8h.html b/doc/html/_m_ai_n_g_oevaluator_8h.html
index 2bfb3728f524b241fd4feebe937d4df8c55c3c29..9284ff132bad9d74ca90a740544255b5edac54c8 100644
--- a/doc/html/_m_ai_n_g_oevaluator_8h.html
+++ b/doc/html/_m_ai_n_g_oevaluator_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/MAiNGOevaluator.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/MAiNGOevaluator.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -94,7 +94,7 @@ $(document).ready(function(){initNavTree('_m_ai_n_g_oevaluator_8h.html','');});
 <div class="title">MAiNGOevaluator.h File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="textblock"><code>#include &quot;<a class="el" href="exceptions_8h_source.html">exceptions.h</a>&quot;</code><br />
+<div class="textblock"><code>#include &quot;<a class="el" href="_m_ai_n_g_o_exception_8h_source.html">MAiNGOException.h</a>&quot;</code><br />
 <code>#include &quot;symbol_table.hpp&quot;</code><br />
 <code>#include &quot;util/evaluator.hpp&quot;</code><br />
 <code>#include &quot;ffunc.hpp&quot;</code><br />
@@ -129,7 +129,7 @@ Typedefs</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="_m_ai_n_g_oevaluator_8h.html">MAiNGOevaluator.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/_m_ai_n_g_oevaluator_8h_source.html b/doc/html/_m_ai_n_g_oevaluator_8h_source.html
index 8d1cecdab95641a5d44699e4a91c3989820c13c1..3df7fc352914eeb328d6bb314be2b49f68500292 100644
--- a/doc/html/_m_ai_n_g_oevaluator_8h_source.html
+++ b/doc/html/_m_ai_n_g_oevaluator_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/MAiNGOevaluator.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/MAiNGOevaluator.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,136 +90,138 @@ $(document).ready(function(){initNavTree('_m_ai_n_g_oevaluator_8h_source.html','
 <div class="title">MAiNGOevaluator.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="_m_ai_n_g_oevaluator_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file maingoEvaluator.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing the MaingoEvaluator class that evaluates ALE expression</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *        with mc:FFVar.</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="exceptions_8h.html">exceptions.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;symbol_table.hpp&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &quot;util/evaluator.hpp&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &quot;ffunc.hpp&quot;</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="keyword">using namespace </span>ale;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="keyword">using namespace </span>ale::util;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">   32</a></span>&#160;<span class="keyword">using</span> <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> = mc::FFVar;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint_container.html">   38</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> {</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint_container.html#ad875878c83b9f5e2ab0ff68c7452a53e">   39</a></span>&#160;    std::vector&lt;Var&gt; <a class="code" href="structmaingo_1_1_constraint_container.html#ad875878c83b9f5e2ab0ff68c7452a53e">eq</a>;   </div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint_container.html#ac1b8182544f5f0fe5357d748b690dab2">   40</a></span>&#160;    std::vector&lt;Var&gt; <a class="code" href="structmaingo_1_1_constraint_container.html#ac1b8182544f5f0fe5357d748b690dab2">ineq</a>; </div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;};</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html">   47</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1_maingo_evaluator.html">MaingoEvaluator</a> {</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#aba0042d5950c2d3af0e2a2b721bc5a93">   57</a></span>&#160;    <a class="code" href="classmaingo_1_1_maingo_evaluator.html#aba0042d5950c2d3af0e2a2b721bc5a93">MaingoEvaluator</a>(</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;        symbol_table&amp; symbols,</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;        <span class="keyword">const</span> std::vector&lt;Var&gt;&amp; variables,</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;        <span class="keyword">const</span> std::unordered_map&lt;std::string, int&gt;&amp; positions):</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;        _symbols(symbols),</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;        _variables(variables),</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;        _positions(positions)</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    {</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    }</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a62f29683214d92021c6d75c598f5ed9c">   72</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a62f29683214d92021c6d75c598f5ed9c">dispatch</a>(expression&lt;real&lt;0&gt;&gt;&amp; expr)</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    {</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        <span class="keywordflow">return</span> dispatch(expr.get());</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    }</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a189928b722ebcd7c497932dcc8c3f0bb">   77</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a189928b722ebcd7c497932dcc8c3f0bb">dispatch</a>(expression&lt;boolean&lt;0&gt;&gt;&amp; expr)</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    {</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        <span class="keywordflow">return</span> dispatch(expr.get());</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    }</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <span class="keyword">template</span> &lt;<span class="keyword">typename</span> TReturn, <span class="keyword">typename</span> TType&gt;</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a6fbb9286991e1487d9eb2e69044d3e05">   83</a></span>&#160;    TReturn <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a6fbb9286991e1487d9eb2e69044d3e05">dispatch</a>(value_node&lt;TType&gt;* node)</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    {</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Used unsupported dispatch&quot;</span>);</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    }</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    <span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> IDim&gt;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a8d9966ebe96ee46c9485972573b72599">   89</a></span>&#160;    <span class="keyword">typename</span> ale::index&lt;IDim&gt;::ref_type <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a8d9966ebe96ee46c9485972573b72599">dispatch</a>(value_node&lt;ale::index&lt;IDim&gt;&gt;* node)</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    {</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;        evaluator eval(_symbols);</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        <span class="keywordflow">return</span> eval.dispatch(node);</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    }</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    <span class="keyword">template</span> &lt;<span class="keyword">typename</span> TType&gt;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a3cc2929f387db7fa699e9a0fb7659f23">   96</a></span>&#160;    <span class="keyword">typename</span> set&lt;TType, 0&gt;::basic_type <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a3cc2929f387db7fa699e9a0fb7659f23">dispatch</a>(value_node&lt;set&lt;TType, 0&gt;&gt;* node)</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    {</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;        evaluator eval(_symbols);</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        <span class="keywordflow">return</span> eval.dispatch(node);</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    }</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    <span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> IDim&gt;</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ab7c1fc07e79504989e5a41dfbfa44912">  104</a></span>&#160;    tensor&lt;Var, IDim&gt; <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ab7c1fc07e79504989e5a41dfbfa44912">dispatch</a>(value_node&lt;real&lt;IDim&gt;&gt;* node)</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    {</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;        <span class="keywordflow">return</span> std::visit(*<span class="keyword">this</span>, node-&gt;get_variant());</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    }</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#af382e6992b13663334e0ba4644020cd1">  110</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#af382e6992b13663334e0ba4644020cd1">dispatch</a>(value_node&lt;real&lt;0&gt;&gt;* node)</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    {</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        <span class="keywordflow">return</span> std::visit(*<span class="keyword">this</span>, node-&gt;get_variant());</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    }</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ae450535b9b4b29e3467b75b68caf06ec">  116</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ae450535b9b4b29e3467b75b68caf06ec">dispatch</a>(value_node&lt;boolean&lt;0&gt;&gt;* node)</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    {</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;        <span class="keywordflow">return</span> std::visit(*<span class="keyword">this</span>, node-&gt;get_variant());</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    }</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    <span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> IDim&gt;</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#af49e6aba43ce791131d18346111523a1">  123</a></span>&#160;    tensor&lt;Var, IDim&gt; <a class="code" href="classmaingo_1_1_maingo_evaluator.html#af49e6aba43ce791131d18346111523a1">dispatch</a>(value_symbol&lt;real&lt;IDim&gt;&gt;* sym)</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    {</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        <span class="keywordflow">return</span> std::visit(*<span class="keyword">this</span>, sym-&gt;get_value_variant());</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    }</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a5ef7cf61b17720593357de03c2e07837">  128</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a5ef7cf61b17720593357de03c2e07837">dispatch</a>(value_symbol&lt;real&lt;0&gt;&gt;* sym)</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    {</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;        <span class="keywordflow">return</span> std::visit(*<span class="keyword">this</span>, sym-&gt;get_value_variant());</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    }</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    <span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> IDim&gt;</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a16353f72cbe6a6857f94eeb0a2a8ca2e">  140</a></span>&#160;    tensor&lt;Var, IDim&gt; <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a16353f72cbe6a6857f94eeb0a2a8ca2e">operator()</a>(constant_node&lt;real&lt;IDim&gt;&gt;* node)</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    {</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        tensor&lt;Var, IDim&gt; result(node-&gt;value.shape());</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        result.ref().assign(node-&gt;value);</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    }</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#aebe214bf52d3d9054561dbd279ea630e">  148</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#aebe214bf52d3d9054561dbd279ea630e">operator()</a>(constant_node&lt;real&lt;0&gt;&gt;* node)</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    {</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;        <span class="keywordflow">return</span> node-&gt;value;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    }</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a1eb1cdd102a6fdbefefa99006bb14d98">  154</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a1eb1cdd102a6fdbefefa99006bb14d98">operator()</a>(constant_node&lt;boolean&lt;0&gt;&gt;* node)</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    {</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Evaluated unsupported general logical expression&quot;</span>);</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a>();</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    }</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;    <span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> IDim&gt;</div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a232490b0b1f7b0601343ec002fd461fb">  162</a></span>&#160;    tensor&lt;Var, IDim&gt; <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a232490b0b1f7b0601343ec002fd461fb">operator()</a>(parameter_node&lt;real&lt;IDim&gt;&gt;* node)</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    {</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;        <span class="keyword">auto</span> sym = _symbols.resolve&lt;real&lt;IDim&gt;&gt;(node-&gt;name);</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;        <span class="keywordflow">if</span> (!sym) {</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Symbol &quot;</span> + node-&gt;name + <span class="stringliteral">&quot; has unexpected type&quot;</span>);</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;        }</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;        <span class="keywordflow">return</span> dispatch(sym);</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    }</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a632562f52010db675b32172ba9b8f9f8">  171</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a632562f52010db675b32172ba9b8f9f8">operator()</a>(parameter_node&lt;real&lt;0&gt;&gt;* node)</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    {</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;        <span class="keyword">auto</span> sym = _symbols.resolve&lt;real&lt;0&gt;&gt;(node-&gt;name);</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;        <span class="keywordflow">if</span> (!sym) {</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Symbol &quot;</span> + node-&gt;name + <span class="stringliteral">&quot; has unexpected type&quot;</span>);</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;        }</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;        <span class="keywordflow">return</span> dispatch(sym);</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;    }</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a8db905522b621724e056807193a361ed">  181</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a8db905522b621724e056807193a361ed">operator()</a>(parameter_node&lt;boolean&lt;0&gt;&gt;* node)</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;    {</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Evaluated unsupported general logical expression&quot;</span>);</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a>();</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;    }</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;    <span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> IDim&gt;</div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ae64d0f887011fb7b2f45f904b651212d">  189</a></span>&#160;    tensor&lt;Var, IDim&gt; <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ae64d0f887011fb7b2f45f904b651212d">operator()</a>(parameter_symbol&lt;real&lt;IDim&gt;&gt;* sym)</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;    {</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;        tensor&lt;Var, IDim&gt; result(sym-&gt;m_value.shape());</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;        result.ref().assign(sym-&gt;m_value);</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;        <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;    }</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a313d06a1b681bda32d1baaf73b4c1ae0">  197</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a313d06a1b681bda32d1baaf73b4c1ae0">operator()</a>(parameter_symbol&lt;real&lt;0&gt;&gt;* sym)</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;    {</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;        <span class="keywordflow">return</span> sym-&gt;m_value;</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    }</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;    <span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> IDim&gt;</div><div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a4f675a797c18eaf2fd523a4f559313d9">  204</a></span>&#160;    tensor&lt;Var, IDim&gt; <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a4f675a797c18eaf2fd523a4f559313d9">operator()</a>(variable_symbol&lt;real&lt;IDim&gt;&gt;* sym)</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    {</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;        tensor&lt;Var, IDim&gt; result(sym-&gt;shape());</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;        <span class="keywordtype">size_t</span> indexes[IDim];</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; IDim; ++i) {</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;            indexes[i] = 0;</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;        }</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;        <span class="keywordtype">int</span> position = _positions.at(sym-&gt;m_name);</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;        <span class="keywordflow">while</span> (indexes[0] &lt; result.shape(0)) {</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;            result[indexes] = _variables[position];</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;            ++position;</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;            <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = IDim - 1; i &gt;= 0; --i) {</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;                <span class="keywordflow">if</span> (++indexes[i] &lt; sym-&gt;shape(i)) {</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;                }</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (i != 0) {</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;                    indexes[i] = 0;</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;                }</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;            }</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;        }</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;        <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;    }</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ad4281e7a946eb516f8e361be386226ad">  228</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ad4281e7a946eb516f8e361be386226ad">operator()</a>(variable_symbol&lt;real&lt;0&gt;&gt;* sym)</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    {</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;        <span class="keywordflow">return</span> _variables[_positions.at(sym-&gt;m_name)];</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    }</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ab699cabd08e37c8f90b253b8410f3e03">  234</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ab699cabd08e37c8f90b253b8410f3e03">operator()</a>(expression_symbol&lt;real&lt;0&gt;&gt;* sym)</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;    {</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;        <span class="keywordflow">return</span> dispatch(sym-&gt;m_value.get());</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    }</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a1120421ca19b8fefd77ad0c67149ef5a">  240</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a1120421ca19b8fefd77ad0c67149ef5a">operator()</a>(expression_symbol&lt;boolean&lt;0&gt;&gt;* sym)</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    {</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;        <span class="keywordflow">return</span> dispatch(sym-&gt;m_value.get());</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;    }</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;    <span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> IDim&gt;</div><div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ac806eb4a69b3d31ee8930c575f9b5405">  247</a></span>&#160;    tensor&lt;Var, IDim&gt; <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ac806eb4a69b3d31ee8930c575f9b5405">operator()</a>(entry_node&lt;real&lt;IDim&gt;&gt;* node)</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;    {</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;        <span class="keywordflow">return</span> dispatch(node-&gt;template get_child&lt;0&gt;())[dispatch(node-&gt;template get_child&lt;1&gt;()) - 1];</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;    }</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a0ba00f6e3f0c57560cc4385382f90041">  253</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a0ba00f6e3f0c57560cc4385382f90041">operator()</a>(entry_node&lt;real&lt;0&gt;&gt;* node)</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;    {</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;        <span class="keywordflow">return</span> dispatch(node-&gt;get_child&lt;0&gt;())[dispatch(node-&gt;get_child&lt;1&gt;()) - 1];</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;    }</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a31bd4e5857f2eeb30cc919dfdda17bf8">  259</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a31bd4e5857f2eeb30cc919dfdda17bf8">operator()</a>(minus_node* node)</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;    {</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;        <span class="keywordflow">return</span> -dispatch(node-&gt;get_child&lt;0&gt;());</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;    }</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a2c93ca479683e45af6dc24953434cf05">  265</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a2c93ca479683e45af6dc24953434cf05">operator()</a>(inverse_node* node)</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;    {</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;        <span class="keywordflow">return</span> 1 / dispatch(node-&gt;get_child&lt;0&gt;());</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;    }</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;</div><div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a14d44b2a4bfbb0a7c8abe784707c03d8">  271</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a14d44b2a4bfbb0a7c8abe784707c03d8">operator()</a>(addition_node* node)</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;    {</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;        <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> result = 0;</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = node-&gt;children.begin(); it != node-&gt;children.end(); ++it) {</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;            result += dispatch(it-&gt;get());</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;        }</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;        <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;    }</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;</div><div class="line"><a name="l00281"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#aef325a790e281683bfe3e17160a07495">  281</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#aef325a790e281683bfe3e17160a07495">operator()</a>(sum_div_node* node)</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;    {</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;        <span class="keywordflow">if</span> (node-&gt;children.size() % 2 == 0) {</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator --  Called sum_div with even number of arguments&quot;</span>);</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;        }</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;        <span class="keywordflow">if</span> (node-&gt;children.size() &lt; 3) {</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Called sum_div with less than 3 arguments&quot;</span>);</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;        }</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;        std::vector&lt;Var&gt; vars;</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;        std::vector&lt;double&gt; coeff;</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = node-&gt;children.begin(); it != node-&gt;children.end(); ++it) {</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;            <span class="keywordflow">if</span> (distance(node-&gt;children.begin(), it) &lt; (<span class="keywordtype">int</span>)(node-&gt;children.size() / 2)) {</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;                vars.emplace_back(dispatch(it-&gt;get()));</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;            }</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;            <span class="keywordflow">else</span> {</div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;                <span class="keywordflow">if</span> (!dispatch(it-&gt;get()).cst()) {</div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;                    <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  MaingoEvaluator -- Error: The &quot;</span> + std::to_string(distance(node-&gt;children.begin(), it)) + <span class="stringliteral">&quot;-th coefficient in sum_div is not a constant&quot;</span>);</div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;                }</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;                coeff.emplace_back(dispatch(it-&gt;get()).num().val());</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;            }</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;        }</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;        <span class="keywordflow">return</span> mc::sum_div(vars, coeff);</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;    }</div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a7529b1ae0a3303aaa6ccb92c6f67b08a">  306</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a7529b1ae0a3303aaa6ccb92c6f67b08a">operator()</a>(xlog_sum_node* node)</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;    {</div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;        <span class="keywordflow">if</span> (!(node-&gt;children.size() % 2 == 0)) {</div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Called xlog_sum with odd number of arguments&quot;</span>);</div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;        }</div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;        <span class="keywordflow">if</span> (node-&gt;children.size() &lt; 2) {</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Called xlog_sum with less than arguments&quot;</span>);</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;        }</div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;        std::vector&lt;Var&gt; vars;</div><div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;        std::vector&lt;double&gt; coeff;</div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = node-&gt;children.begin(); it != node-&gt;children.end(); ++it) {</div><div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;            <span class="keywordflow">if</span> (distance(node-&gt;children.begin(), it) &lt; (<span class="keywordtype">int</span>)(node-&gt;children.size() / 2)) {</div><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;                vars.emplace_back(dispatch(it-&gt;get()));</div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;            }</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;            <span class="keywordflow">else</span> {</div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;                <span class="keywordflow">if</span> (!dispatch(it-&gt;get()).cst()) {</div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;                    <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- The &quot;</span> + std::to_string(distance(node-&gt;children.begin(), it)) + <span class="stringliteral">&quot;-th coefficient in xlog_sum is not a constant&quot;</span>);</div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;                }</div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;                coeff.emplace_back(dispatch(it-&gt;get()).num().val());</div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;            }</div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;        }</div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;        <span class="keywordflow">return</span> mc::xlog_sum(vars, coeff);</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;    }</div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;</div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;</div><div class="line"><a name="l00331"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a9a60a214575eb25ae40706df9577dfcd">  331</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a9a60a214575eb25ae40706df9577dfcd">operator()</a>(multiplication_node* node)</div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;    {</div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;        <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> result = 1;</div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = node-&gt;children.begin(); it != node-&gt;children.end(); ++it) {</div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;            result *= dispatch(it-&gt;get());</div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;        }</div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;        <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;    }</div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;</div><div class="line"><a name="l00341"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#aa7d7c8734d8a04afbad0c3dcccc0248c">  341</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#aa7d7c8734d8a04afbad0c3dcccc0248c">operator()</a>(exponentiation_node* node)</div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;    {</div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;        <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> result = 1;</div><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = node-&gt;children.rbegin(); it != node-&gt;children.rend(); ++it) {</div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;            result = pow(dispatch(it-&gt;get()), result);</div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;        }</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;        <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;    }</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;</div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;</div><div class="line"><a name="l00351"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a8ad6bd708e1a633daf74931f0f2b6b13">  351</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a8ad6bd708e1a633daf74931f0f2b6b13">operator()</a>(min_node* node)</div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;    {</div><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;        <span class="keywordflow">if</span> (node-&gt;children.size() == 0) {</div><div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator --  Called min without arguments&quot;</span>);</div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;        }</div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;        <span class="keyword">auto</span> it    = node-&gt;children.begin();</div><div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;        <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> result = dispatch(it-&gt;get());</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;        it++;</div><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;        <span class="keywordflow">for</span> (; it != node-&gt;children.end(); ++it) {</div><div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;            result = mc::min(dispatch(it-&gt;get()), result);</div><div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;        }</div><div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;        <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;    }</div><div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;</div><div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;</div><div class="line"><a name="l00366"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ad02f330ab99494a3d3ede57d86626f5d">  366</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ad02f330ab99494a3d3ede57d86626f5d">operator()</a>(max_node* node)</div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;    {</div><div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;        <span class="keywordflow">if</span> (node-&gt;children.size() == 0) {</div><div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Called max without arguments&quot;</span>);</div><div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;        }</div><div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;        <span class="keyword">auto</span> it    = node-&gt;children.begin();</div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;        <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> result = dispatch(it-&gt;get());</div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;        it++;</div><div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;        <span class="keywordflow">for</span> (; it != node-&gt;children.end(); ++it) {</div><div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;            result = mc::max(dispatch(it-&gt;get()), result);</div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;        }</div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;        <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;    }</div><div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;</div><div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;</div><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;    <span class="keyword">template</span> &lt;<span class="keyword">typename</span> TType&gt;</div><div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a9e5dbc374f5bd51ce3b4c7d00cdfa5f8">  382</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a9e5dbc374f5bd51ce3b4c7d00cdfa5f8">operator()</a>(set_min_node&lt;TType&gt;* node)</div><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;    {</div><div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;        <span class="keyword">auto</span> elements = dispatch(node-&gt;template get_child&lt;0&gt;());</div><div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;        _symbols.push_scope();</div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;        <span class="keywordflow">if</span> (elements.begin() == elements.end()) {</div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Called set_min with empty set&quot;</span>);</div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;        }</div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;        <span class="keyword">auto</span> it = elements.begin();</div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;        _symbols.define(node-&gt;name, <span class="keyword">new</span> parameter_symbol&lt;TType&gt;(node-&gt;name, *it));</div><div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;        <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> result = dispatch(node-&gt;template get_child&lt;1&gt;());</div><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;        ++it;</div><div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;        <span class="keywordflow">for</span> (; it != elements.end(); ++it) {</div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;            _symbols.define(node-&gt;name, <span class="keyword">new</span> parameter_symbol&lt;TType&gt;(node-&gt;name, *it));</div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;            result = mc::min(dispatch(node-&gt;template get_child&lt;1&gt;()), result);</div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;        }</div><div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;        _symbols.pop_scope();</div><div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;        <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;    }</div><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;</div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;    <span class="keyword">template</span> &lt;<span class="keyword">typename</span> TType&gt;</div><div class="line"><a name="l00403"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ac1d0e8fb250f926a2d2af2211de283d3">  403</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ac1d0e8fb250f926a2d2af2211de283d3">operator()</a>(set_max_node&lt;TType&gt;* node)</div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;    {</div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;        <span class="keyword">auto</span> elements = dispatch(node-&gt;template get_child&lt;0&gt;());</div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;        _symbols.push_scope();</div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;        <span class="keywordflow">if</span> (elements.begin() == elements.end()) {</div><div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Called set_max with empty set&quot;</span>);</div><div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;        }</div><div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;        <span class="keyword">auto</span> it = elements.begin();</div><div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;        _symbols.define(node-&gt;name, <span class="keyword">new</span> parameter_symbol&lt;TType&gt;(node-&gt;name, *it));</div><div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;        <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> result = dispatch(node-&gt;template get_child&lt;1&gt;());</div><div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;        ++it;</div><div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;        <span class="keywordflow">for</span> (; it != elements.end(); ++it) {</div><div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;            _symbols.define(node-&gt;name, <span class="keyword">new</span> parameter_symbol&lt;TType&gt;(node-&gt;name, *it));</div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;            result = mc::max(dispatch(node-&gt;template get_child&lt;1&gt;()), result);</div><div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;        }</div><div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;        _symbols.pop_scope();</div><div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;        <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;    }</div><div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;</div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;</div><div class="line"><a name="l00423"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ac24478492893dbb5575bfae77ad2e3d6">  423</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ac24478492893dbb5575bfae77ad2e3d6">operator()</a>(exp_node* node)</div><div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;    {</div><div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;        <span class="keywordflow">return</span> exp(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;    }</div><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;</div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;</div><div class="line"><a name="l00429"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a741318a5ea6c313146b9370e5a77741f">  429</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a741318a5ea6c313146b9370e5a77741f">operator()</a>(log_node* node)</div><div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;    {</div><div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;        <span class="keywordflow">return</span> log(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;    }</div><div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;</div><div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;</div><div class="line"><a name="l00435"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a24dab2d1d77aebdf8732fb679ab20a6c">  435</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a24dab2d1d77aebdf8732fb679ab20a6c">operator()</a>(sqrt_node* node)</div><div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;    {</div><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;        <span class="keywordflow">return</span> sqrt(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;    }</div><div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;</div><div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;</div><div class="line"><a name="l00441"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#aa01d67f98a790198ae94253cdac6663d">  441</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#aa01d67f98a790198ae94253cdac6663d">operator()</a>(sin_node* node)</div><div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;    {</div><div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;        <span class="keywordflow">return</span> sin(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;    }</div><div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;</div><div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;</div><div class="line"><a name="l00447"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a6c4708474d08fcb76fd7dfce2a1a03cb">  447</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a6c4708474d08fcb76fd7dfce2a1a03cb">operator()</a>(asin_node* node)</div><div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;    {</div><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;        <span class="keywordflow">return</span> asin(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;    }</div><div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;</div><div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;</div><div class="line"><a name="l00453"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#aaaf0982bff30d6d269a986aa1f8d5fd3">  453</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#aaaf0982bff30d6d269a986aa1f8d5fd3">operator()</a>(cos_node* node)</div><div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;    {</div><div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;        <span class="keywordflow">return</span> cos(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;    }</div><div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;</div><div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;</div><div class="line"><a name="l00459"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a10b29d970cca4412cdf09ee3d38bbf3a">  459</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a10b29d970cca4412cdf09ee3d38bbf3a">operator()</a>(acos_node* node)</div><div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;    {</div><div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;        <span class="keywordflow">return</span> acos(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;    }</div><div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;</div><div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;</div><div class="line"><a name="l00465"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a21b576ce22533cc7cd433a5110e7d3e5">  465</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a21b576ce22533cc7cd433a5110e7d3e5">operator()</a>(tan_node* node)</div><div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;    {</div><div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;        <span class="keywordflow">return</span> tan(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;    }</div><div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;</div><div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;</div><div class="line"><a name="l00471"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a1027a0674db3d2b20cb8b5a3e8175468">  471</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a1027a0674db3d2b20cb8b5a3e8175468">operator()</a>(atan_node* node)</div><div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;    {</div><div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;        <span class="keywordflow">return</span> atan(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;    }</div><div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;</div><div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;</div><div class="line"><a name="l00477"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a704a43ae1089dabde8ae3fedb4e7e91c">  477</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a704a43ae1089dabde8ae3fedb4e7e91c">operator()</a>(lmtd_node* node)</div><div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;    {</div><div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;        <span class="keywordflow">return</span> mc::lmtd(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()));</div><div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;    }</div><div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;</div><div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;</div><div class="line"><a name="l00483"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a72f7201c2d261bd4a9848567bc15b82e">  483</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a72f7201c2d261bd4a9848567bc15b82e">operator()</a>(xexpax_node* node)</div><div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;    {</div><div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Second argument in xexpax is not a constant&quot;</span>);</div><div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;        }</div><div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;        <span class="keywordflow">return</span> mc::xexpax(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()).num().val());</div><div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;    }</div><div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;</div><div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;</div><div class="line"><a name="l00492"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#aa268019790af86f24dd20e117e53601d">  492</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#aa268019790af86f24dd20e117e53601d">operator()</a>(arh_node* node)</div><div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;    {</div><div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Second argument in arh is not a constant&quot;</span>);</div><div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;        }</div><div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;        <span class="keywordflow">return</span> mc::Op&lt;mc::FFVar&gt;::arh(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()).num().val());</div><div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;    }</div><div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;</div><div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;</div><div class="line"><a name="l00501"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#acd5e6660b34c3fb57dc4e4a597cc3246">  501</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#acd5e6660b34c3fb57dc4e4a597cc3246">operator()</a>(lb_func_node* node)</div><div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;    {</div><div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Second argument in lb_func is not a constant&quot;</span>);</div><div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;        }</div><div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;        <span class="keywordflow">return</span> mc::lb_func(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()).num().val());</div><div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;    }</div><div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;</div><div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;</div><div class="line"><a name="l00510"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ae93e844c247f347914f8745238d9f12f">  510</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ae93e844c247f347914f8745238d9f12f">operator()</a>(ub_func_node* node)</div><div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;    {</div><div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Second argument in ub_func is not a constant&quot;</span>);</div><div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;        }</div><div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;        <span class="keywordflow">return</span> mc::ub_func(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()).num().val());</div><div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;    }</div><div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;</div><div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;</div><div class="line"><a name="l00519"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a8580e54b758078f424368157c9998177">  519</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a8580e54b758078f424368157c9998177">operator()</a>(bounding_func_node* node)</div><div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;    {</div><div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Second argument in bounding_func is not a constant&quot;</span>);</div><div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;        }</div><div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Third argument in bounding_func is not a constant&quot;</span>);</div><div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;        }</div><div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;        <span class="keywordflow">return</span> mc::bounding_func(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), dispatch(node-&gt;get_child&lt;2&gt;()).num().val());</div><div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;    }</div><div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;</div><div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;</div><div class="line"><a name="l00531"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a0d18706b8c5403a359ae4fb3c4535dd8">  531</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a0d18706b8c5403a359ae4fb3c4535dd8">operator()</a>(ale::squash_node* node)</div><div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;    {</div><div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Second argument in squash_node is not a constant&quot;</span>);</div><div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;        }</div><div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Third argument in squash_node is not a constant&quot;</span>);</div><div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;        }</div><div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;        <span class="keywordflow">return</span> mc::squash_node(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), dispatch(node-&gt;get_child&lt;2&gt;()).num().val());</div><div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;    }</div><div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;</div><div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;</div><div class="line"><a name="l00543"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a97099c993ba68c78fcda43917a89d6aa">  543</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a97099c993ba68c78fcda43917a89d6aa">operator()</a>(ale::af_lcb_node* node)</div><div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;    {</div><div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Third argument in af_lcb_node is not a constant&quot;</span>);</div><div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;        }</div><div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;        <span class="keywordflow">return</span> mc::acquisition_function(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()), 1, dispatch(node-&gt;get_child&lt;2&gt;()).num().val());</div><div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;    }</div><div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;</div><div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;</div><div class="line"><a name="l00552"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a1fd539de40d9a846e3bc1a8d7319cd3c">  552</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a1fd539de40d9a846e3bc1a8d7319cd3c">operator()</a>(ale::af_ei_node* node)</div><div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;    {</div><div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Third argument in af_ei_node is not a constant&quot;</span>);</div><div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;        }</div><div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;        <span class="keywordflow">return</span> mc::acquisition_function(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()), 2, dispatch(node-&gt;get_child&lt;2&gt;()).num().val());</div><div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;    }</div><div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;</div><div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;</div><div class="line"><a name="l00561"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a11edbd2e3bfa2eb751ad55d0676630a6">  561</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a11edbd2e3bfa2eb751ad55d0676630a6">operator()</a>(ale::af_pi_node* node)</div><div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;    {</div><div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Third argument in af_pi_node is not a constant&quot;</span>);</div><div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;        }</div><div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;        <span class="keywordflow">return</span> mc::acquisition_function(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()), 3, dispatch(node-&gt;get_child&lt;2&gt;()).num().val());</div><div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;    }</div><div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;</div><div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;</div><div class="line"><a name="l00570"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a51dbeb4db4c48128191a4850893e54ec">  570</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a51dbeb4db4c48128191a4850893e54ec">operator()</a>(ale::regnormal_node* node)</div><div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;    {</div><div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Second argument in regnormal_node is not a constant&quot;</span>);</div><div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;        }</div><div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Third argument in regnormal_node is not a constant&quot;</span>);</div><div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;        }</div><div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;        <span class="keywordflow">return</span> mc::regnormal(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), dispatch(node-&gt;get_child&lt;2&gt;()).num().val());</div><div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;    }</div><div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;</div><div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;</div><div class="line"><a name="l00582"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a94eb83d21f8727c36807e91b786e7ed0">  582</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a94eb83d21f8727c36807e91b786e7ed0">operator()</a>(nrtl_dtau_node* node)</div><div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;    {</div><div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Second argument in nrtl_dtau is not a constant&quot;</span>);</div><div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;        }</div><div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Third argument in nrtl_dtau is not a constant&quot;</span>);</div><div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;        }</div><div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Fourth argument in nrtl_dtau is not a constant&quot;</span>);</div><div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;        }</div><div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="function_wrapper_8h.html#af7f639d12a57ad25c80a3e4a0a15def6">mc::nrtl_dtau</a>(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;                             dispatch(node-&gt;get_child&lt;3&gt;()).num().val());</div><div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;    }</div><div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;</div><div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;</div><div class="line"><a name="l00598"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a6fc97c4d18c62acaba6353636a277fcf">  598</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a6fc97c4d18c62acaba6353636a277fcf">operator()</a>(ext_antoine_psat_node* node)</div><div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;    {</div><div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p1 in ext_antoine_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;        }</div><div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p2 in ext_antoine_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;        }</div><div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p3 in ext_antoine_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;        }</div><div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;4&gt;()).cst()) {</div><div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p4 in ext_antoine_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;        }</div><div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;5&gt;()).cst()) {</div><div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p5 in ext_antoine_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;        }</div><div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;6&gt;()).cst()) {</div><div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p6 in ext_antoine_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;        }</div><div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;7&gt;()).cst()) {</div><div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p7 in ext_antoine_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;        }</div><div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;        <span class="comment">// ext_antoine_psat = type 1</span></div><div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;        <span class="keywordflow">return</span> mc::vapor_pressure(dispatch(node-&gt;get_child&lt;0&gt;()), 1, dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;                                  dispatch(node-&gt;get_child&lt;3&gt;()).num().val(), dispatch(node-&gt;get_child&lt;4&gt;()).num().val(), dispatch(node-&gt;get_child&lt;5&gt;()).num().val(),</div><div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;                                  dispatch(node-&gt;get_child&lt;6&gt;()).num().val(), dispatch(node-&gt;get_child&lt;7&gt;()).num().val());</div><div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;    }</div><div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;</div><div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;</div><div class="line"><a name="l00628"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a77f9255d62b085460410be784cbc9029">  628</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a77f9255d62b085460410be784cbc9029">operator()</a>(antoine_psat_node* node)</div><div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;    {</div><div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p1 in antoine_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;        }</div><div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p2 in antoine_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;        }</div><div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p3 in antoine_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;        }</div><div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;        <span class="comment">// antoine_psat = type 2</span></div><div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;        <span class="keywordflow">return</span> mc::vapor_pressure(dispatch(node-&gt;get_child&lt;0&gt;()), 2, dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;                                  dispatch(node-&gt;get_child&lt;3&gt;()).num().val());</div><div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;    }</div><div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;</div><div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;</div><div class="line"><a name="l00645"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#aeed3a236612945d6ccc2918b4b200485">  645</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#aeed3a236612945d6ccc2918b4b200485">operator()</a>(wagner_psat_node* node)</div><div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;    {</div><div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p1 in wagner_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;        }</div><div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p2 in wagner_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;        }</div><div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p3 in wagner_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;        }</div><div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;4&gt;()).cst()) {</div><div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p4 in wagner_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;        }</div><div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;5&gt;()).cst()) {</div><div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p5 in wagner_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;        }</div><div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;6&gt;()).cst()) {</div><div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p6 in wagner_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;        }</div><div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;        <span class="comment">// wagner_psat = type 3</span></div><div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;        <span class="keywordflow">return</span> mc::vapor_pressure(dispatch(node-&gt;get_child&lt;0&gt;()), 3, dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;                                  dispatch(node-&gt;get_child&lt;3&gt;()).num().val(), dispatch(node-&gt;get_child&lt;4&gt;()).num().val(), dispatch(node-&gt;get_child&lt;5&gt;()).num().val(),</div><div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;                                  dispatch(node-&gt;get_child&lt;6&gt;()).num().val());</div><div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;    }</div><div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;</div><div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160;</div><div class="line"><a name="l00672"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a2a8d0c06f3f8c10c75f83fdfa4d5864f">  672</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a2a8d0c06f3f8c10c75f83fdfa4d5864f">operator()</a>(ik_cape_psat_node* node)</div><div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160;    {</div><div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p1 in ik_cape_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;        }</div><div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p2 in ik_cape_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160;        }</div><div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p3 in ik_cape_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;        }</div><div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;4&gt;()).cst()) {</div><div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p4 in ik_cape_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00685"></a><span class="lineno">  685</span>&#160;        }</div><div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;5&gt;()).cst()) {</div><div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p5 in ik_cape_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;        }</div><div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;6&gt;()).cst()) {</div><div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p6 in ik_cape_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;        }</div><div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;7&gt;()).cst()) {</div><div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p7 in ik_cape_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;        }</div><div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;8&gt;()).cst()) {</div><div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p8 in ik_cape_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;        }</div><div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;9&gt;()).cst()) {</div><div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p9 in ik_cape_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;        }</div><div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;10&gt;()).cst()) {</div><div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p10 in ik_cape_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;        }</div><div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;        <span class="comment">// ik_cape_psat = type 4</span></div><div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;        <span class="keywordflow">return</span> mc::vapor_pressure(dispatch(node-&gt;get_child&lt;0&gt;()), 4, dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;                                  dispatch(node-&gt;get_child&lt;3&gt;()).num().val(), dispatch(node-&gt;get_child&lt;4&gt;()).num().val(), dispatch(node-&gt;get_child&lt;5&gt;()).num().val(),</div><div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;                                  dispatch(node-&gt;get_child&lt;6&gt;()).num().val(), dispatch(node-&gt;get_child&lt;7&gt;()).num().val(), dispatch(node-&gt;get_child&lt;8&gt;()).num().val(),</div><div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;                                  dispatch(node-&gt;get_child&lt;9&gt;()).num().val(), dispatch(node-&gt;get_child&lt;10&gt;()).num().val());</div><div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;    }</div><div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;</div><div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;</div><div class="line"><a name="l00712"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ae707063e517fbc96144557e22a18c2bd">  712</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ae707063e517fbc96144557e22a18c2bd">operator()</a>(aspen_hig_node* node)</div><div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;    {</div><div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p1 in aspen_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;        }</div><div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p2 in aspen_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;        }</div><div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p3 in aspen_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160;        }</div><div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;4&gt;()).cst()) {</div><div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p4 in aspen_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;        }</div><div class="line"><a name="l00726"></a><span class="lineno">  726</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;5&gt;()).cst()) {</div><div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p5 in aspen_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;        }</div><div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;6&gt;()).cst()) {</div><div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p6 in aspen_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;        }</div><div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;7&gt;()).cst()) {</div><div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p7 in aspen_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;        }</div><div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;        <span class="comment">// aspen_hig = type 1</span></div><div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160;        <span class="keywordflow">return</span> mc::ideal_gas_enthalpy(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), 1, dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;                                      dispatch(node-&gt;get_child&lt;3&gt;()).num().val(), dispatch(node-&gt;get_child&lt;4&gt;()).num().val(), dispatch(node-&gt;get_child&lt;5&gt;()).num().val(),</div><div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;                                      dispatch(node-&gt;get_child&lt;6&gt;()).num().val(), dispatch(node-&gt;get_child&lt;7&gt;()).num().val());</div><div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160;    }</div><div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;</div><div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160;</div><div class="line"><a name="l00742"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#af8a35b9814e04b03b506911e89117630">  742</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#af8a35b9814e04b03b506911e89117630">operator()</a>(nasa9_hig_node* node)</div><div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;    {</div><div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p1 in nasa9_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;        }</div><div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p2 in nasa9_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;        }</div><div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p3 in nasa9_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;        }</div><div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;4&gt;()).cst()) {</div><div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p4 in nasa9_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;        }</div><div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;5&gt;()).cst()) {</div><div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p5 in nasa9_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;        }</div><div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;6&gt;()).cst()) {</div><div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p6 in nasa9_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;        }</div><div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;7&gt;()).cst()) {</div><div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p7 in nasa9_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160;        }</div><div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;8&gt;()).cst()) {</div><div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p8 in nasa9_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;        }</div><div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;        <span class="comment">// nasa9_hig = type 2</span></div><div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;        <span class="keywordflow">return</span> mc::ideal_gas_enthalpy(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), 2, dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160;                                      dispatch(node-&gt;get_child&lt;3&gt;()).num().val(), dispatch(node-&gt;get_child&lt;4&gt;()).num().val(), dispatch(node-&gt;get_child&lt;5&gt;()).num().val(),</div><div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160;                                      dispatch(node-&gt;get_child&lt;6&gt;()).num().val(), dispatch(node-&gt;get_child&lt;7&gt;()).num().val(), dispatch(node-&gt;get_child&lt;8&gt;()).num().val());</div><div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;    }</div><div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;</div><div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;</div><div class="line"><a name="l00775"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a1d42b0997bcaebb756c432f50ab6d408">  775</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a1d42b0997bcaebb756c432f50ab6d408">operator()</a>(dippr107_hig_node* node)</div><div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;    {</div><div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p1 in dippr107_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;        }</div><div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p2 in dippr107_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;        }</div><div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p3 in dippr107_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160;        }</div><div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;4&gt;()).cst()) {</div><div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p4 in dippr107_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00788"></a><span class="lineno">  788</span>&#160;        }</div><div class="line"><a name="l00789"></a><span class="lineno">  789</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;5&gt;()).cst()) {</div><div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p5 in dippr107_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160;        }</div><div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;6&gt;()).cst()) {</div><div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p6 in dippr107_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;        }</div><div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;        <span class="comment">// dippr107_hig_node = type 3</span></div><div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;        <span class="keywordflow">return</span> mc::ideal_gas_enthalpy(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), 3, dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;                                      dispatch(node-&gt;get_child&lt;3&gt;()).num().val(), dispatch(node-&gt;get_child&lt;4&gt;()).num().val(), dispatch(node-&gt;get_child&lt;5&gt;()).num().val(),</div><div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;                                      dispatch(node-&gt;get_child&lt;6&gt;()).num().val());</div><div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;    }</div><div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;</div><div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160;</div><div class="line"><a name="l00802"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a6d55b4a02a1dfddc06cb0f394184063f">  802</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a6d55b4a02a1dfddc06cb0f394184063f">operator()</a>(dippr127_hig_node* node)</div><div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;    {</div><div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p1 in dippr127_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160;        }</div><div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p2 in dippr127_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;        }</div><div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p3 in dippr127_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;        }</div><div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;4&gt;()).cst()) {</div><div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p4 in dippr127_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;        }</div><div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;5&gt;()).cst()) {</div><div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p5 in dippr127_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160;        }</div><div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;6&gt;()).cst()) {</div><div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p6 in dippr127_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160;        }</div><div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;7&gt;()).cst()) {</div><div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p7 in dippr127_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160;        }</div><div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;8&gt;()).cst()) {</div><div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p8 in dippr127_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;        }</div><div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;        <span class="comment">// dippr127_hig = type 4</span></div><div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160;        <span class="keywordflow">return</span> mc::ideal_gas_enthalpy(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), 4, dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;                                      dispatch(node-&gt;get_child&lt;3&gt;()).num().val(), dispatch(node-&gt;get_child&lt;4&gt;()).num().val(), dispatch(node-&gt;get_child&lt;5&gt;()).num().val(),</div><div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160;                                      dispatch(node-&gt;get_child&lt;6&gt;()).num().val(), dispatch(node-&gt;get_child&lt;7&gt;()).num().val(), dispatch(node-&gt;get_child&lt;8&gt;()).num().val());</div><div class="line"><a name="l00832"></a><span class="lineno">  832</span>&#160;    }</div><div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;</div><div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160;</div><div class="line"><a name="l00835"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ab6c947dfb36b02d479c6aa3e68a062bb">  835</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ab6c947dfb36b02d479c6aa3e68a062bb">operator()</a>(antoine_tsat_node* node)</div><div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;    {</div><div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p1 in antoine_tsat is not a constant&quot;</span>);</div><div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160;        }</div><div class="line"><a name="l00840"></a><span class="lineno">  840</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00841"></a><span class="lineno">  841</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p2 in antoine_tsat is not a constant&quot;</span>);</div><div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160;        }</div><div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p3 in antoine_tsat is not a constant&quot;</span>);</div><div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;        }</div><div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160;        <span class="comment">// antoine_tsat = type 2</span></div><div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160;        <span class="keywordflow">return</span> mc::saturation_temperature(dispatch(node-&gt;get_child&lt;0&gt;()), 2, dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160;                                          dispatch(node-&gt;get_child&lt;3&gt;()).num().val());</div><div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160;    }</div><div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160;</div><div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160;</div><div class="line"><a name="l00852"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a4f5be3d4ae94197d759efb3cea878f66">  852</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a4f5be3d4ae94197d759efb3cea878f66">operator()</a>(watson_dhvap_node* node)</div><div class="line"><a name="l00853"></a><span class="lineno">  853</span>&#160;    {</div><div class="line"><a name="l00854"></a><span class="lineno">  854</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00855"></a><span class="lineno">  855</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p1 in watson_dhvap is not a constant&quot;</span>);</div><div class="line"><a name="l00856"></a><span class="lineno">  856</span>&#160;        }</div><div class="line"><a name="l00857"></a><span class="lineno">  857</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00858"></a><span class="lineno">  858</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p2 in watson_dhvap is not a constant&quot;</span>);</div><div class="line"><a name="l00859"></a><span class="lineno">  859</span>&#160;        }</div><div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l00861"></a><span class="lineno">  861</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p3 in watson_dhvap is not a constant&quot;</span>);</div><div class="line"><a name="l00862"></a><span class="lineno">  862</span>&#160;        }</div><div class="line"><a name="l00863"></a><span class="lineno">  863</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;4&gt;()).cst()) {</div><div class="line"><a name="l00864"></a><span class="lineno">  864</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p4 in watson_dhvap is not a constant&quot;</span>);</div><div class="line"><a name="l00865"></a><span class="lineno">  865</span>&#160;        }</div><div class="line"><a name="l00866"></a><span class="lineno">  866</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;5&gt;()).cst()) {</div><div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p5 in watson_dhvap is not a constant&quot;</span>);</div><div class="line"><a name="l00868"></a><span class="lineno">  868</span>&#160;        }</div><div class="line"><a name="l00869"></a><span class="lineno">  869</span>&#160;        <span class="comment">// watson_dhvap = type 1</span></div><div class="line"><a name="l00870"></a><span class="lineno">  870</span>&#160;        <span class="keywordflow">return</span> mc::enthalpy_of_vaporization(dispatch(node-&gt;get_child&lt;0&gt;()), 1, dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l00871"></a><span class="lineno">  871</span>&#160;                                            dispatch(node-&gt;get_child&lt;3&gt;()).num().val(), dispatch(node-&gt;get_child&lt;4&gt;()).num().val(), dispatch(node-&gt;get_child&lt;5&gt;()).num().val());</div><div class="line"><a name="l00872"></a><span class="lineno">  872</span>&#160;    }</div><div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160;</div><div class="line"><a name="l00874"></a><span class="lineno">  874</span>&#160;</div><div class="line"><a name="l00875"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#af3ca56408e5353f5034379f22e9c5f27">  875</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#af3ca56408e5353f5034379f22e9c5f27">operator()</a>(dippr106_dhvap_node* node)</div><div class="line"><a name="l00876"></a><span class="lineno">  876</span>&#160;    {</div><div class="line"><a name="l00877"></a><span class="lineno">  877</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00878"></a><span class="lineno">  878</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p1 in dippr106_dhvap is not a constant&quot;</span>);</div><div class="line"><a name="l00879"></a><span class="lineno">  879</span>&#160;        }</div><div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p2 in dippr106_dhvap is not a constant&quot;</span>);</div><div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;        }</div><div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p3 in dippr106_dhvap is not a constant&quot;</span>);</div><div class="line"><a name="l00885"></a><span class="lineno">  885</span>&#160;        }</div><div class="line"><a name="l00886"></a><span class="lineno">  886</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;4&gt;()).cst()) {</div><div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p4 in dippr106_dhvap is not a constant&quot;</span>);</div><div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160;        }</div><div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;5&gt;()).cst()) {</div><div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p5 in dippr106_dhvap is not a constant&quot;</span>);</div><div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;        }</div><div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;6&gt;()).cst()) {</div><div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p6 in dippr106_dhvap is not a constant&quot;</span>);</div><div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;        }</div><div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;        <span class="comment">// dippr106_dhvap = type 2</span></div><div class="line"><a name="l00896"></a><span class="lineno">  896</span>&#160;        <span class="keywordflow">return</span> mc::enthalpy_of_vaporization(dispatch(node-&gt;get_child&lt;0&gt;()), 2, dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;                                            dispatch(node-&gt;get_child&lt;3&gt;()).num().val(), dispatch(node-&gt;get_child&lt;4&gt;()).num().val(), dispatch(node-&gt;get_child&lt;5&gt;()).num().val(),</div><div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160;                                            dispatch(node-&gt;get_child&lt;6&gt;()).num().val());</div><div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;    }</div><div class="line"><a name="l00900"></a><span class="lineno">  900</span>&#160;</div><div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;</div><div class="line"><a name="l00902"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a6b720b79afa07ec215ff2ae7c8f6e37e">  902</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a6b720b79afa07ec215ff2ae7c8f6e37e">operator()</a>(cost_turton_node* node)</div><div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;    {</div><div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p1 in cost_turton is not a constant&quot;</span>);</div><div class="line"><a name="l00906"></a><span class="lineno">  906</span>&#160;        }</div><div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p2 in cost_turton is not a constant&quot;</span>);</div><div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;        }</div><div class="line"><a name="l00910"></a><span class="lineno">  910</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p3 in cost_turton is not a constant&quot;</span>);</div><div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160;        }</div><div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160;        <span class="comment">// cost_turton = type 1</span></div><div class="line"><a name="l00914"></a><span class="lineno">  914</span>&#160;        <span class="keywordflow">return</span> mc::cost_function(dispatch(node-&gt;get_child&lt;0&gt;()), 1, dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160;                                 dispatch(node-&gt;get_child&lt;3&gt;()).num().val());</div><div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;    }</div><div class="line"><a name="l00917"></a><span class="lineno">  917</span>&#160;</div><div class="line"><a name="l00918"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a1551aa4a7ce3f452f8635618a49a5266">  918</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a1551aa4a7ce3f452f8635618a49a5266">operator()</a>(covar_matern_1_node* node)</div><div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;    {</div><div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160;        <span class="comment">// covar_matern_1 = type 1</span></div><div class="line"><a name="l00921"></a><span class="lineno">  921</span>&#160;        <span class="keywordflow">return</span> mc::covariance_function(dispatch(node-&gt;get_child&lt;0&gt;()), 1);</div><div class="line"><a name="l00922"></a><span class="lineno">  922</span>&#160;    }</div><div class="line"><a name="l00923"></a><span class="lineno">  923</span>&#160;</div><div class="line"><a name="l00924"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a0dc466bd95d72232cac6ee6bf8728a2e">  924</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a0dc466bd95d72232cac6ee6bf8728a2e">operator()</a>(covar_matern_3_node* node)</div><div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160;    {</div><div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160;        <span class="comment">// covar_matern_3 = type 1</span></div><div class="line"><a name="l00927"></a><span class="lineno">  927</span>&#160;        <span class="keywordflow">return</span> mc::covariance_function(dispatch(node-&gt;get_child&lt;0&gt;()), 2);</div><div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160;    }</div><div class="line"><a name="l00929"></a><span class="lineno">  929</span>&#160;</div><div class="line"><a name="l00930"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a4c67cfa8ca5bf2793ef3b81e37853427">  930</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a4c67cfa8ca5bf2793ef3b81e37853427">operator()</a>(covar_matern_5_node* node)</div><div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160;    {</div><div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;        <span class="comment">// covar_matern_5 = type 1</span></div><div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160;        <span class="keywordflow">return</span> mc::covariance_function(dispatch(node-&gt;get_child&lt;0&gt;()), 3);</div><div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;    }</div><div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;</div><div class="line"><a name="l00936"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a27403d7ebd0ba9c1c3763bd92bf76dd0">  936</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a27403d7ebd0ba9c1c3763bd92bf76dd0">operator()</a>(covar_sqrexp_node* node)</div><div class="line"><a name="l00937"></a><span class="lineno">  937</span>&#160;    {</div><div class="line"><a name="l00938"></a><span class="lineno">  938</span>&#160;        <span class="comment">// covar_sqrexp = type 1</span></div><div class="line"><a name="l00939"></a><span class="lineno">  939</span>&#160;        <span class="keywordflow">return</span> mc::covariance_function(dispatch(node-&gt;get_child&lt;0&gt;()), 4);</div><div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160;    }</div><div class="line"><a name="l00941"></a><span class="lineno">  941</span>&#160;</div><div class="line"><a name="l00942"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#aa308ce0ebbd92b2d9a499c352248e54b">  942</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#aa308ce0ebbd92b2d9a499c352248e54b">operator()</a>(gpdf_node* node)</div><div class="line"><a name="l00943"></a><span class="lineno">  943</span>&#160;    {</div><div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160;        <span class="keywordflow">return</span> mc::gaussian_probability_density_function(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;    }</div><div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;</div><div class="line"><a name="l00947"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#aa7a1e7a8b70cb171f020cb61e7ef007a">  947</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#aa7a1e7a8b70cb171f020cb61e7ef007a">operator()</a>(nrtl_tau_node* node)</div><div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;    {</div><div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Second argument in nrtl_tau is not a constant&quot;</span>);</div><div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;        }</div><div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00953"></a><span class="lineno">  953</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Third argument in nrtl_tau is not a constant&quot;</span>);</div><div class="line"><a name="l00954"></a><span class="lineno">  954</span>&#160;        }</div><div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l00956"></a><span class="lineno">  956</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Fourth argument in nrtl_tau is not a constant&quot;</span>);</div><div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160;        }</div><div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;4&gt;()).cst()) {</div><div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Fifth argument in nrtl_tau is not a constant&quot;</span>);</div><div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160;        }</div><div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="function_wrapper_8h.html#a8d1832b6e26bba0d76ead168b5260a77">mc::nrtl_tau</a>(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;                            dispatch(node-&gt;get_child&lt;3&gt;()).num().val(), dispatch(node-&gt;get_child&lt;4&gt;()).num().val());</div><div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;    }</div><div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;</div><div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160;</div><div class="line"><a name="l00966"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a031c984312a092292ba8e5faab96615f">  966</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a031c984312a092292ba8e5faab96615f">operator()</a>(nrtl_g_node* node)</div><div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;    {</div><div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Second argument in nrtl_g is not a constant&quot;</span>);</div><div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160;        }</div><div class="line"><a name="l00971"></a><span class="lineno">  971</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00972"></a><span class="lineno">  972</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Third argument in nrtl_g is not a constant&quot;</span>);</div><div class="line"><a name="l00973"></a><span class="lineno">  973</span>&#160;        }</div><div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Fourth argument in nrtl_g is not a constant&quot;</span>);</div><div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160;        }</div><div class="line"><a name="l00977"></a><span class="lineno">  977</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;4&gt;()).cst()) {</div><div class="line"><a name="l00978"></a><span class="lineno">  978</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Fifth argument in nrtl_g is not a constant&quot;</span>);</div><div class="line"><a name="l00979"></a><span class="lineno">  979</span>&#160;        }</div><div class="line"><a name="l00980"></a><span class="lineno">  980</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;5&gt;()).cst()) {</div><div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Sixth argument in nrtl_g is not a constant&quot;</span>);</div><div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160;        }</div><div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160;        <span class="keywordflow">return</span> mc::nrtl_G(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l00984"></a><span class="lineno">  984</span>&#160;                          dispatch(node-&gt;get_child&lt;3&gt;()).num().val(), dispatch(node-&gt;get_child&lt;4&gt;()).num().val(), dispatch(node-&gt;get_child&lt;5&gt;()).num().val());</div><div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;    }</div><div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;</div><div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;</div><div class="line"><a name="l00988"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a2c96bb53c78b614fa21f09b34b06a240">  988</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a2c96bb53c78b614fa21f09b34b06a240">operator()</a>(nrtl_gtau_node* node)</div><div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;    {</div><div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00991"></a><span class="lineno">  991</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Second argument in nrtl_gtau is not a constant&quot;</span>);</div><div class="line"><a name="l00992"></a><span class="lineno">  992</span>&#160;        }</div><div class="line"><a name="l00993"></a><span class="lineno">  993</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00994"></a><span class="lineno">  994</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Third argument in nrtl_gtau is not a constant&quot;</span>);</div><div class="line"><a name="l00995"></a><span class="lineno">  995</span>&#160;        }</div><div class="line"><a name="l00996"></a><span class="lineno">  996</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l00997"></a><span class="lineno">  997</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Fourth argument in nrtl_gtau is not a constant&quot;</span>);</div><div class="line"><a name="l00998"></a><span class="lineno">  998</span>&#160;        }</div><div class="line"><a name="l00999"></a><span class="lineno">  999</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;4&gt;()).cst()) {</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Fifth argument in nrtl_gtau is not a constant&quot;</span>);</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;        }</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;5&gt;()).cst()) {</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Sixth argument in nrtl_gtau is not a constant&quot;</span>);</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;        }</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;        <span class="keywordflow">return</span> mc::nrtl_Gtau(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;                             dispatch(node-&gt;get_child&lt;3&gt;()).num().val(), dispatch(node-&gt;get_child&lt;4&gt;()).num().val(), dispatch(node-&gt;get_child&lt;5&gt;()).num().val());</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;    }</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;</div><div class="line"><a name="l01010"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ab5756cf7f7eaf69bc3aba7e98bf5cb2f"> 1010</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ab5756cf7f7eaf69bc3aba7e98bf5cb2f">operator()</a>(nrtl_gdtau_node* node)</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;    {</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Second argument in nrtl_gdtau is not a constant&quot;</span>);</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;        }</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Third argument in nrtl_gdtau is not a constant&quot;</span>);</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;        }</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Fourth argument in nrtl_gdtau is not a constant&quot;</span>);</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;        }</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;4&gt;()).cst()) {</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Fifth argument in nrtl_gdtau is not a constant&quot;</span>);</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;        }</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;5&gt;()).cst()) {</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Sixth argument in nrtl_gdtau is not a constant&quot;</span>);</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;        }</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;        <span class="keywordflow">return</span> mc::nrtl_Gdtau(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;                              dispatch(node-&gt;get_child&lt;3&gt;()).num().val(), dispatch(node-&gt;get_child&lt;4&gt;()).num().val(), dispatch(node-&gt;get_child&lt;5&gt;()).num().val());</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;    }</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;</div><div class="line"><a name="l01032"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a1e9902a05a7ab138bcf8afbfe8f3b38c"> 1032</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a1e9902a05a7ab138bcf8afbfe8f3b38c">operator()</a>(nrtl_dgtau_node* node)</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;    {</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Second argument in nrtl_dgtau is not a constant&quot;</span>);</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;        }</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Third argument in nrtl_dgtau is not a constant&quot;</span>);</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;        }</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Fourth argument in nrtl_dgtau is not a constant&quot;</span>);</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;        }</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;4&gt;()).cst()) {</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Fifth argument in nrtl_dgtau is not a constant&quot;</span>);</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;        }</div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;5&gt;()).cst()) {</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Sixth argument in nrtl_dgtau is not a constant&quot;</span>);</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;        }</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;        <span class="keywordflow">return</span> mc::nrtl_dGtau(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;                              dispatch(node-&gt;get_child&lt;3&gt;()).num().val(), dispatch(node-&gt;get_child&lt;4&gt;()).num().val(), dispatch(node-&gt;get_child&lt;5&gt;()).num().val());</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;    }</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;</div><div class="line"><a name="l01054"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#aa260a715d85bede7bf1358216a5612e5"> 1054</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#aa260a715d85bede7bf1358216a5612e5">operator()</a>(norm2_node* node)</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;    {</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;        <span class="keywordflow">return</span> mc::euclidean_norm_2d(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()));</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;    }</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;</div><div class="line"><a name="l01060"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#afeccf82551359ea4fd78e0421d5b0d9d"> 1060</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#afeccf82551359ea4fd78e0421d5b0d9d">operator()</a>(abs_node* node)</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;    {</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;        <span class="keywordflow">return</span> mc::fabs(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;    }</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;</div><div class="line"><a name="l01066"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a35b02acae9a26d0ce4582c6563bf4dcf"> 1066</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a35b02acae9a26d0ce4582c6563bf4dcf">operator()</a>(xabsx_node* node)</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;    {</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;        <span class="keywordflow">return</span> mc::fabsx_times_x(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;    }</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;</div><div class="line"><a name="l01072"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a61a1564a2c7d7c6c2b35c310eaec9194"> 1072</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a61a1564a2c7d7c6c2b35c310eaec9194">operator()</a>(xlogx_node* node)</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;    {</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;        <span class="keywordflow">return</span> mc::xlog(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;    }</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;</div><div class="line"><a name="l01078"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a2dbaa9c47035a9150d8c442ea7e90b1b"> 1078</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a2dbaa9c47035a9150d8c442ea7e90b1b">operator()</a>(cosh_node* node)</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;    {</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;        <span class="keywordflow">return</span> mc::cosh(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;    }</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;</div><div class="line"><a name="l01084"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a283892ea852d019132ca549048dc8ae9"> 1084</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a283892ea852d019132ca549048dc8ae9">operator()</a>(sinh_node* node)</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;    {</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;        <span class="keywordflow">return</span> mc::sinh(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;    }</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;</div><div class="line"><a name="l01090"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#abc322bed0d4f468566f79debecc7ad6a"> 1090</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#abc322bed0d4f468566f79debecc7ad6a">operator()</a>(tanh_node* node)</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;    {</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;        <span class="keywordflow">return</span> mc::tanh(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;    }</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;</div><div class="line"><a name="l01096"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a163893d7e2595d48b90be04de44c7061"> 1096</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a163893d7e2595d48b90be04de44c7061">operator()</a>(coth_node* node)</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;    {</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;        <span class="keywordflow">return</span> mc::coth(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;    }</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;</div><div class="line"><a name="l01102"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a6517c3ebb6d059284d6ecaf7840d29ba"> 1102</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a6517c3ebb6d059284d6ecaf7840d29ba">operator()</a>(acosh_node* node)</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;    {</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;        <span class="keywordflow">return</span> mc::Op&lt;mc::FFVar&gt;::acosh(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;    }</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;</div><div class="line"><a name="l01108"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ab341ee757f15b233e9e0f660c34db0da"> 1108</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ab341ee757f15b233e9e0f660c34db0da">operator()</a>(asinh_node* node)</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;    {</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;        <span class="keywordflow">return</span> mc::Op&lt;mc::FFVar&gt;::asinh(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;    }</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;</div><div class="line"><a name="l01114"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a08711d8a2b9de11b55a06d1eb2f42878"> 1114</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a08711d8a2b9de11b55a06d1eb2f42878">operator()</a>(atanh_node* node)</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;    {</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;        <span class="keywordflow">return</span> mc::Op&lt;mc::FFVar&gt;::atanh(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;    }</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;</div><div class="line"><a name="l01120"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a348178557f010db15a6eded737e23c89"> 1120</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a348178557f010db15a6eded737e23c89">operator()</a>(acoth_node* node)</div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;    {</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;        <span class="keywordflow">return</span> mc::Op&lt;mc::FFVar&gt;::acoth(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;    }</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;</div><div class="line"><a name="l01126"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#aebc25e0d2231b4302278caa9aab888c3"> 1126</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#aebc25e0d2231b4302278caa9aab888c3">operator()</a>(erf_node* node)</div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;    {</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;        <span class="keywordflow">return</span> mc::erf(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;    }</div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;</div><div class="line"><a name="l01132"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a7673de1c345b61081ed47433f9b08af0"> 1132</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a7673de1c345b61081ed47433f9b08af0">operator()</a>(erfc_node* node)</div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;    {</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;        <span class="keywordflow">return</span> mc::erfc(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;    }</div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;</div><div class="line"><a name="l01138"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a714981c9af175ff13728dbaa38cf77f5"> 1138</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a714981c9af175ff13728dbaa38cf77f5">operator()</a>(pos_node* node)</div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;    {</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;        <span class="keywordflow">return</span> mc::pos(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;    }</div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;</div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;</div><div class="line"><a name="l01144"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a7b33a9063bc3277ebf7cbe26a40eed33"> 1144</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a7b33a9063bc3277ebf7cbe26a40eed33">operator()</a>(neg_node* node)</div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;    {</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;        <span class="keywordflow">return</span> mc::neg(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;    }</div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;</div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;</div><div class="line"><a name="l01150"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ae71759bc3c5007aa5c5c5b2ebea96fde"> 1150</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ae71759bc3c5007aa5c5c5b2ebea96fde">operator()</a>(rlmtd_node* node)</div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;    {</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;        <span class="keywordflow">return</span> mc::rlmtd(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()));</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;    }</div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;</div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;</div><div class="line"><a name="l01156"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a6925f0560f9a7fe3420eae4b24bea451"> 1156</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a6925f0560f9a7fe3420eae4b24bea451">operator()</a>(xexpy_node* node)</div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;    {</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;        <span class="keywordflow">return</span> mc::expx_times_y(dispatch(node-&gt;get_child&lt;1&gt;()), dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;    }</div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;</div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;</div><div class="line"><a name="l01162"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a6ef677783d508a5856fe2096fa5d8770"> 1162</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a6ef677783d508a5856fe2096fa5d8770">operator()</a>(schroeder_ethanol_p_node* node)</div><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;    {</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;        <span class="keywordflow">return</span> mc::p_sat_ethanol_schroeder(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;    }</div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;</div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;</div><div class="line"><a name="l01168"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ae6b3e2f4fa022cf02999b702886d31fc"> 1168</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ae6b3e2f4fa022cf02999b702886d31fc">operator()</a>(schroeder_ethanol_rhovap_node* node)</div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;    {</div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;        <span class="keywordflow">return</span> mc::rho_vap_sat_ethanol_schroeder(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;    }</div><div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;</div><div class="line"><a name="l01174"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a0e56aaa973cca94ba40aaa36a46762c6"> 1174</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a0e56aaa973cca94ba40aaa36a46762c6">operator()</a>(schroeder_ethanol_rholiq_node* node)</div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;    {</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;        <span class="keywordflow">return</span> mc::rho_liq_sat_ethanol_schroeder(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;    }</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;</div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;</div><div class="line"><a name="l01180"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ac91a3285778e063fbfd98473222aeb1a"> 1180</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ac91a3285778e063fbfd98473222aeb1a">operator()</a>(mid_node* node)</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;    {</div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;        <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> arg1 = dispatch(node-&gt;get_child&lt;0&gt;());</div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;        <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> arg2 = dispatch(node-&gt;get_child&lt;1&gt;());</div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;        <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> arg3 = dispatch(node-&gt;get_child&lt;2&gt;());</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;        <span class="keywordflow">return</span> mc::min(mc::max(arg1, arg2), mc::min(mc::max(arg2, arg3), mc::max(arg3, arg1)));</div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;    }</div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;    <span class="keyword">template</span> &lt;<span class="keyword">typename</span> TType&gt;</div><div class="line"><a name="l01190"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#aedadd4c9d55f27225e84c41b5e34a8c8"> 1190</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#aedadd4c9d55f27225e84c41b5e34a8c8">operator()</a>(sum_node&lt;TType&gt;* node)</div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;    {</div><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;        <span class="keyword">auto</span> elements = dispatch(node-&gt;template get_child&lt;0&gt;());</div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;        _symbols.push_scope();</div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;        <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> result = 0;</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = elements.begin(); it != elements.end(); ++it) {</div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;            _symbols.define(node-&gt;name, <span class="keyword">new</span> parameter_symbol&lt;TType&gt;(node-&gt;name, *it));</div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;            result += dispatch(node-&gt;template get_child&lt;1&gt;());</div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;        }</div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;        _symbols.pop_scope();</div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;        <span class="keywordflow">return</span> result;</div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;    }</div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;</div><div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;</div><div class="line"><a name="l01204"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a258bac7136624bc05fc9aad23fcd2bae"> 1204</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a258bac7136624bc05fc9aad23fcd2bae">operator()</a>(negation_node* node)</div><div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160;    {</div><div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Evaluated unsupported negation expression&quot;</span>);</div><div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a>();</div><div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;    }</div><div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;</div><div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;</div><div class="line"><a name="l01211"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ad498ec5587d1e19ebf6cf9984e46b7ce"> 1211</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ad498ec5587d1e19ebf6cf9984e46b7ce">operator()</a>(equal_node&lt;real&lt;0&gt;&gt;* node)</div><div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;    {</div><div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160;        <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> result;</div><div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160;        result.<a class="code" href="structmaingo_1_1_constraint_container.html#ad875878c83b9f5e2ab0ff68c7452a53e">eq</a>.push_back(dispatch(node-&gt;get_child&lt;0&gt;()) - dispatch(node-&gt;get_child&lt;1&gt;()));</div><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;        <span class="keywordflow">return</span> result;</div><div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160;    }</div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;</div><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160;</div><div class="line"><a name="l01219"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a84a7e6ac759e75188dcd33fed310f627"> 1219</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a84a7e6ac759e75188dcd33fed310f627">operator()</a>(less_node&lt;real&lt;0&gt;&gt;* node)</div><div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160;    {</div><div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Evaluated unsupported strict inequality expression&quot;</span>);</div><div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a>();</div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160;    }</div><div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160;</div><div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160;</div><div class="line"><a name="l01226"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ac6be9f2eb4e5a95173b9990cf1d76ade"> 1226</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ac6be9f2eb4e5a95173b9990cf1d76ade">operator()</a>(less_equal_node&lt;real&lt;0&gt;&gt;* node)</div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;    {</div><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160;        <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> result;</div><div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;        result.<a class="code" href="structmaingo_1_1_constraint_container.html#ac1b8182544f5f0fe5357d748b690dab2">ineq</a>.push_back(dispatch(node-&gt;get_child&lt;0&gt;()) - dispatch(node-&gt;get_child&lt;1&gt;()));</div><div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;        <span class="keywordflow">return</span> result;</div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160;    }</div><div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160;</div><div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160;</div><div class="line"><a name="l01234"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ac958f70dbd1204a83b603ea0fde2c3eb"> 1234</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ac958f70dbd1204a83b603ea0fde2c3eb">operator()</a>(greater_node&lt;real&lt;0&gt;&gt;* node)</div><div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160;    {</div><div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Evaluated unsupported strict inequality expression&quot;</span>);</div><div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a>();</div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;    }</div><div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160;</div><div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160;</div><div class="line"><a name="l01241"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#aced0f321eb6c52625eaaf23ec1860c21"> 1241</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#aced0f321eb6c52625eaaf23ec1860c21">operator()</a>(greater_equal_node&lt;real&lt;0&gt;&gt;* node)</div><div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160;    {</div><div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160;        <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> result;</div><div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160;        result.<a class="code" href="structmaingo_1_1_constraint_container.html#ac1b8182544f5f0fe5357d748b690dab2">ineq</a>.push_back(dispatch(node-&gt;get_child&lt;1&gt;()) - dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160;        <span class="keywordflow">return</span> result;</div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160;    }</div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160;</div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160;</div><div class="line"><a name="l01249"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a95861005344bd24f1d6fa640ff3f1705"> 1249</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a95861005344bd24f1d6fa640ff3f1705">operator()</a>(equal_node&lt;ale::index&lt;0&gt;&gt;* node)</div><div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160;    {</div><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot; Error: MaingoEvaluator -- Evaluated unsupported index comparison expression&quot;</span>);</div><div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a>();</div><div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160;    }</div><div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160;</div><div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160;</div><div class="line"><a name="l01256"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a51845deccf33ee00ecac24bfb23536cd"> 1256</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a51845deccf33ee00ecac24bfb23536cd">operator()</a>(less_node&lt;ale::index&lt;0&gt;&gt;* node)</div><div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160;    {</div><div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Evaluated unsupported index comparison expression&quot;</span>);</div><div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a>();</div><div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160;    }</div><div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160;</div><div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160;</div><div class="line"><a name="l01263"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ac486f0a11622d88874ad9dbc32f7c199"> 1263</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ac486f0a11622d88874ad9dbc32f7c199">operator()</a>(less_equal_node&lt;ale::index&lt;0&gt;&gt;* node)</div><div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160;    {</div><div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Evaluated unsupported index comparison expression&quot;</span>);</div><div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a>();</div><div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160;    }</div><div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160;</div><div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160;</div><div class="line"><a name="l01270"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#affaae2ae54803baa45024d31b05eec55"> 1270</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#affaae2ae54803baa45024d31b05eec55">operator()</a>(greater_node&lt;ale::index&lt;0&gt;&gt;* node)</div><div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160;    {</div><div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Evaluated unsupported index comparison expression&quot;</span>);</div><div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a>();</div><div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160;    }</div><div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160;</div><div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160;</div><div class="line"><a name="l01277"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#aa85cfa020de772e6baefcd3f966531bb"> 1277</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#aa85cfa020de772e6baefcd3f966531bb">operator()</a>(greater_equal_node&lt;ale::index&lt;0&gt;&gt;* node)</div><div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160;    {</div><div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Evaluated unsupported index comparison expression&quot;</span>);</div><div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a>();</div><div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160;    }</div><div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160;</div><div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160;</div><div class="line"><a name="l01284"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a778b2f802db3ec8a15162c834f9cd24c"> 1284</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a778b2f802db3ec8a15162c834f9cd24c">operator()</a>(disjunction_node* node)</div><div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160;    {</div><div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Evaluated unsupported disjunction expression&quot;</span>);</div><div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a>();</div><div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160;    }</div><div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160;</div><div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160;</div><div class="line"><a name="l01291"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a9744f02a6a480e828154bc92af6e5a89"> 1291</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a9744f02a6a480e828154bc92af6e5a89">operator()</a>(conjunction_node* node)</div><div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160;    {</div><div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Evaluated unsupported conjunction expression&quot;</span>);</div><div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a>();</div><div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160;    }</div><div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160;</div><div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160;</div><div class="line"><a name="l01298"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a49f0a248a70b10ca4b9024b211b65a88"> 1298</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a49f0a248a70b10ca4b9024b211b65a88">operator()</a>(element_node* node)</div><div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160;    {</div><div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Evaluated unsupported general logical expression&quot;</span>);</div><div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a>();</div><div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;    };</div><div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160;</div><div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;</div><div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;    <span class="keyword">template</span> &lt;<span class="keyword">typename</span> TType&gt;</div><div class="line"><a name="l01306"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#aa80cc4ed77e60745a289c4a7754d1aba"> 1306</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#aa80cc4ed77e60745a289c4a7754d1aba">operator()</a>(forall_node&lt;TType&gt;* node)</div><div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160;    {</div><div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160;        <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> result;</div><div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160;        <span class="keyword">auto</span> elements = dispatch(node-&gt;template get_child&lt;0&gt;());</div><div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160;        _symbols.push_scope();</div><div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = elements.begin(); it != elements.end(); ++it) {</div><div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;            _symbols.define(node-&gt;name, <span class="keyword">new</span> parameter_symbol&lt;TType&gt;(node-&gt;name, *it));</div><div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160;            <span class="keyword">auto</span> cons = dispatch(node-&gt;template get_child&lt;1&gt;());</div><div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160;            result.<a class="code" href="structmaingo_1_1_constraint_container.html#ad875878c83b9f5e2ab0ff68c7452a53e">eq</a>.insert(result.<a class="code" href="structmaingo_1_1_constraint_container.html#ad875878c83b9f5e2ab0ff68c7452a53e">eq</a>.end(), cons.eq.begin(), cons.eq.end());</div><div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160;            result.<a class="code" href="structmaingo_1_1_constraint_container.html#ac1b8182544f5f0fe5357d748b690dab2">ineq</a>.insert(result.<a class="code" href="structmaingo_1_1_constraint_container.html#ac1b8182544f5f0fe5357d748b690dab2">ineq</a>.end(), cons.ineq.begin(), cons.ineq.end());</div><div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160;        }</div><div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160;        _symbols.pop_scope();</div><div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160;        <span class="keywordflow">return</span> result;</div><div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160;    }</div><div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l01323"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ac3b368860bbe5327ccbf817365ca5279"> 1323</a></span>&#160;    symbol_table&amp; <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ac3b368860bbe5327ccbf817365ca5279">_symbols</a>;                                 <span class="comment">/*&lt; symbol_table for symbol lookup*/</span></div><div class="line"><a name="l01324"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a857486607beb96bd9688982671f260aa"> 1324</a></span>&#160;    <span class="keyword">const</span> std::vector&lt;Var&gt;&amp; <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a857486607beb96bd9688982671f260aa">_variables</a>;                     <span class="comment">/*&lt; MAiNGO variable vector*/</span></div><div class="line"><a name="l01325"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a467265384252d1e9027dece7661976bb"> 1325</a></span>&#160;    <span class="keyword">const</span> std::unordered_map&lt;std::string, int&gt;&amp; <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a467265384252d1e9027dece7661976bb">_positions</a>; <span class="comment">/*&lt; ALE symbol positions in MAiNGO variable vector*/</span></div><div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160;};</div><div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160;</div><div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160;</div><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160;}    <span class="comment">// namespace maingo</span></div><div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ac3b368860bbe5327ccbf817365ca5279"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ac3b368860bbe5327ccbf817365ca5279">maingo::MaingoEvaluator::_symbols</a></div><div class="ttdeci">symbol_table &amp; _symbols</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1323</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a313d06a1b681bda32d1baaf73b4c1ae0"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a313d06a1b681bda32d1baaf73b4c1ae0">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(parameter_symbol&lt; real&lt; 0 &gt;&gt; *sym)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:197</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a9e5dbc374f5bd51ce3b4c7d00cdfa5f8"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a9e5dbc374f5bd51ce3b4c7d00cdfa5f8">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(set_min_node&lt; TType &gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:382</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a467265384252d1e9027dece7661976bb"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a467265384252d1e9027dece7661976bb">maingo::MaingoEvaluator::_positions</a></div><div class="ttdeci">const std::unordered_map&lt; std::string, int &gt; &amp; _positions</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1325</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a77f9255d62b085460410be784cbc9029"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a77f9255d62b085460410be784cbc9029">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(antoine_psat_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:628</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_aef325a790e281683bfe3e17160a07495"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#aef325a790e281683bfe3e17160a07495">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(sum_div_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:281</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a2c96bb53c78b614fa21f09b34b06a240"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a2c96bb53c78b614fa21f09b34b06a240">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(nrtl_gtau_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:988</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ae64d0f887011fb7b2f45f904b651212d"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ae64d0f887011fb7b2f45f904b651212d">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">tensor&lt; Var, IDim &gt; operator()(parameter_symbol&lt; real&lt; IDim &gt;&gt; *sym)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:189</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a14d44b2a4bfbb0a7c8abe784707c03d8"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a14d44b2a4bfbb0a7c8abe784707c03d8">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(addition_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:271</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ad4281e7a946eb516f8e361be386226ad"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ad4281e7a946eb516f8e361be386226ad">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(variable_symbol&lt; real&lt; 0 &gt;&gt; *sym)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:228</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_af8a35b9814e04b03b506911e89117630"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#af8a35b9814e04b03b506911e89117630">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(nasa9_hig_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:742</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ac91a3285778e063fbfd98473222aeb1a"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ac91a3285778e063fbfd98473222aeb1a">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(mid_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1180</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a1120421ca19b8fefd77ad0c67149ef5a"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a1120421ca19b8fefd77ad0c67149ef5a">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(expression_symbol&lt; boolean&lt; 0 &gt;&gt; *sym)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:240</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ae707063e517fbc96144557e22a18c2bd"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ae707063e517fbc96144557e22a18c2bd">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(aspen_hig_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:712</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_aedadd4c9d55f27225e84c41b5e34a8c8"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#aedadd4c9d55f27225e84c41b5e34a8c8">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(sum_node&lt; TType &gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1190</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a258bac7136624bc05fc9aad23fcd2bae"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a258bac7136624bc05fc9aad23fcd2bae">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(negation_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1204</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a0d18706b8c5403a359ae4fb3c4535dd8"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a0d18706b8c5403a359ae4fb3c4535dd8">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(ale::squash_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:531</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a27403d7ebd0ba9c1c3763bd92bf76dd0"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a27403d7ebd0ba9c1c3763bd92bf76dd0">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(covar_sqrexp_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:936</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a632562f52010db675b32172ba9b8f9f8"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a632562f52010db675b32172ba9b8f9f8">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(parameter_node&lt; real&lt; 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:171</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a21b576ce22533cc7cd433a5110e7d3e5"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a21b576ce22533cc7cd433a5110e7d3e5">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(tan_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:465</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a778b2f802db3ec8a15162c834f9cd24c"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a778b2f802db3ec8a15162c834f9cd24c">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(disjunction_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1284</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a51845deccf33ee00ecac24bfb23536cd"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a51845deccf33ee00ecac24bfb23536cd">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(less_node&lt; ale::index&lt; 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1256</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a9a60a214575eb25ae40706df9577dfcd"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a9a60a214575eb25ae40706df9577dfcd">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(multiplication_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:331</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a2dbaa9c47035a9150d8c442ea7e90b1b"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a2dbaa9c47035a9150d8c442ea7e90b1b">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(cosh_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1078</div></div>
-<div class="ttc" id="structmaingo_1_1_constraint_container_html_ad875878c83b9f5e2ab0ff68c7452a53e"><div class="ttname"><a href="structmaingo_1_1_constraint_container.html#ad875878c83b9f5e2ab0ff68c7452a53e">maingo::ConstraintContainer::eq</a></div><div class="ttdeci">std::vector&lt; Var &gt; eq</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:39</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ae93e844c247f347914f8745238d9f12f"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ae93e844c247f347914f8745238d9f12f">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(ub_func_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:510</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ac958f70dbd1204a83b603ea0fde2c3eb"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ac958f70dbd1204a83b603ea0fde2c3eb">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(greater_node&lt; real&lt; 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1234</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ac1d0e8fb250f926a2d2af2211de283d3"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ac1d0e8fb250f926a2d2af2211de283d3">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(set_max_node&lt; TType &gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:403</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_aaaf0982bff30d6d269a986aa1f8d5fd3"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#aaaf0982bff30d6d269a986aa1f8d5fd3">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(cos_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:453</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a348178557f010db15a6eded737e23c89"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a348178557f010db15a6eded737e23c89">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(acoth_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1120</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a6b720b79afa07ec215ff2ae7c8f6e37e"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a6b720b79afa07ec215ff2ae7c8f6e37e">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(cost_turton_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:902</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_aa85cfa020de772e6baefcd3f966531bb"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#aa85cfa020de772e6baefcd3f966531bb">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(greater_equal_node&lt; ale::index&lt; 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1277</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a7529b1ae0a3303aaa6ccb92c6f67b08a"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a7529b1ae0a3303aaa6ccb92c6f67b08a">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(xlog_sum_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:306</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a283892ea852d019132ca549048dc8ae9"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a283892ea852d019132ca549048dc8ae9">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(sinh_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1084</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a62f29683214d92021c6d75c598f5ed9c"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a62f29683214d92021c6d75c598f5ed9c">maingo::MaingoEvaluator::dispatch</a></div><div class="ttdeci">Var dispatch(expression&lt; real&lt; 0 &gt;&gt; &amp;expr)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:72</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a857486607beb96bd9688982671f260aa"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a857486607beb96bd9688982671f260aa">maingo::MaingoEvaluator::_variables</a></div><div class="ttdeci">const std::vector&lt; Var &gt; &amp; _variables</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1324</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ac806eb4a69b3d31ee8930c575f9b5405"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ac806eb4a69b3d31ee8930c575f9b5405">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">tensor&lt; Var, IDim &gt; operator()(entry_node&lt; real&lt; IDim &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:247</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a031c984312a092292ba8e5faab96615f"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a031c984312a092292ba8e5faab96615f">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(nrtl_g_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:966</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a1fd539de40d9a846e3bc1a8d7319cd3c"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a1fd539de40d9a846e3bc1a8d7319cd3c">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(ale::af_ei_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:552</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_affaae2ae54803baa45024d31b05eec55"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#affaae2ae54803baa45024d31b05eec55">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(greater_node&lt; ale::index&lt; 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1270</div></div>
-<div class="ttc" id="structmaingo_1_1_constraint_container_html_ac1b8182544f5f0fe5357d748b690dab2"><div class="ttname"><a href="structmaingo_1_1_constraint_container.html#ac1b8182544f5f0fe5357d748b690dab2">maingo::ConstraintContainer::ineq</a></div><div class="ttdeci">std::vector&lt; Var &gt; ineq</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:40</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a8580e54b758078f424368157c9998177"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a8580e54b758078f424368157c9998177">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(bounding_func_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:519</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_afeccf82551359ea4fd78e0421d5b0d9d"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#afeccf82551359ea4fd78e0421d5b0d9d">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(abs_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1060</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a6925f0560f9a7fe3420eae4b24bea451"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a6925f0560f9a7fe3420eae4b24bea451">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(xexpy_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1156</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_aa7d7c8734d8a04afbad0c3dcccc0248c"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#aa7d7c8734d8a04afbad0c3dcccc0248c">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(exponentiation_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:341</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a1eb1cdd102a6fdbefefa99006bb14d98"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a1eb1cdd102a6fdbefefa99006bb14d98">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(constant_node&lt; boolean&lt; 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:154</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a1551aa4a7ce3f452f8635618a49a5266"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a1551aa4a7ce3f452f8635618a49a5266">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(covar_matern_1_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:918</div></div>
-<div class="ttc" id="structmaingo_1_1_constraint_container_html"><div class="ttname"><a href="structmaingo_1_1_constraint_container.html">maingo::ConstraintContainer</a></div><div class="ttdoc">Containter for constraint evaluation.</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:38</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a3cc2929f387db7fa699e9a0fb7659f23"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a3cc2929f387db7fa699e9a0fb7659f23">maingo::MaingoEvaluator::dispatch</a></div><div class="ttdeci">set&lt; TType, 0 &gt;::basic_type dispatch(value_node&lt; set&lt; TType, 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:96</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a51dbeb4db4c48128191a4850893e54ec"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a51dbeb4db4c48128191a4850893e54ec">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(ale::regnormal_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:570</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_aa308ce0ebbd92b2d9a499c352248e54b"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#aa308ce0ebbd92b2d9a499c352248e54b">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(gpdf_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:942</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a94eb83d21f8727c36807e91b786e7ed0"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a94eb83d21f8727c36807e91b786e7ed0">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(nrtl_dtau_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:582</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a232490b0b1f7b0601343ec002fd461fb"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a232490b0b1f7b0601343ec002fd461fb">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">tensor&lt; Var, IDim &gt; operator()(parameter_node&lt; real&lt; IDim &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:162</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a6ef677783d508a5856fe2096fa5d8770"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a6ef677783d508a5856fe2096fa5d8770">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(schroeder_ethanol_p_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1162</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a7673de1c345b61081ed47433f9b08af0"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a7673de1c345b61081ed47433f9b08af0">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(erfc_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1132</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ab699cabd08e37c8f90b253b8410f3e03"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ab699cabd08e37c8f90b253b8410f3e03">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(expression_symbol&lt; real&lt; 0 &gt;&gt; *sym)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:234</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_aa268019790af86f24dd20e117e53601d"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#aa268019790af86f24dd20e117e53601d">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(arh_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:492</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ab341ee757f15b233e9e0f660c34db0da"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ab341ee757f15b233e9e0f660c34db0da">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(asinh_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1108</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ae6b3e2f4fa022cf02999b702886d31fc"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ae6b3e2f4fa022cf02999b702886d31fc">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(schroeder_ethanol_rhovap_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1168</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a84a7e6ac759e75188dcd33fed310f627"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a84a7e6ac759e75188dcd33fed310f627">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(less_node&lt; real&lt; 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1219</div></div>
-<div class="ttc" id="namespacemaingo_html_af5ee07a403d9ee6e7075d41518d93f77"><div class="ttname"><a href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">maingo::Var</a></div><div class="ttdeci">mc::FFVar Var</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:32</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a9744f02a6a480e828154bc92af6e5a89"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a9744f02a6a480e828154bc92af6e5a89">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(conjunction_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1291</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_aa7a1e7a8b70cb171f020cb61e7ef007a"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#aa7a1e7a8b70cb171f020cb61e7ef007a">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(nrtl_tau_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:947</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html">maingo::MaingoEvaluator</a></div><div class="ttdoc">Evaluates ALE expressions to Var.</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:47</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a4f5be3d4ae94197d759efb3cea878f66"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a4f5be3d4ae94197d759efb3cea878f66">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(watson_dhvap_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:852</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_aa260a715d85bede7bf1358216a5612e5"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#aa260a715d85bede7bf1358216a5612e5">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(norm2_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1054</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a163893d7e2595d48b90be04de44c7061"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a163893d7e2595d48b90be04de44c7061">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(coth_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1096</div></div>
-<div class="ttc" id="exceptions_8h_html"><div class="ttname"><a href="exceptions_8h.html">exceptions.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_aced0f321eb6c52625eaaf23ec1860c21"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#aced0f321eb6c52625eaaf23ec1860c21">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(greater_equal_node&lt; real&lt; 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1241</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a6fbb9286991e1487d9eb2e69044d3e05"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a6fbb9286991e1487d9eb2e69044d3e05">maingo::MaingoEvaluator::dispatch</a></div><div class="ttdeci">TReturn dispatch(value_node&lt; TType &gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:83</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ab6c947dfb36b02d479c6aa3e68a062bb"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ab6c947dfb36b02d479c6aa3e68a062bb">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(antoine_tsat_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:835</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a8db905522b621724e056807193a361ed"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a8db905522b621724e056807193a361ed">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(parameter_node&lt; boolean&lt; 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:181</div></div>
-<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO</div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a7b33a9063bc3277ebf7cbe26a40eed33"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a7b33a9063bc3277ebf7cbe26a40eed33">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(neg_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1144</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_acd5e6660b34c3fb57dc4e4a597cc3246"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#acd5e6660b34c3fb57dc4e4a597cc3246">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(lb_func_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:501</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_af382e6992b13663334e0ba4644020cd1"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#af382e6992b13663334e0ba4644020cd1">maingo::MaingoEvaluator::dispatch</a></div><div class="ttdeci">Var dispatch(value_node&lt; real&lt; 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:110</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a2c93ca479683e45af6dc24953434cf05"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a2c93ca479683e45af6dc24953434cf05">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(inverse_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:265</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a8d9966ebe96ee46c9485972573b72599"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a8d9966ebe96ee46c9485972573b72599">maingo::MaingoEvaluator::dispatch</a></div><div class="ttdeci">ale::index&lt; IDim &gt;::ref_type dispatch(value_node&lt; ale::index&lt; IDim &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:89</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ac6be9f2eb4e5a95173b9990cf1d76ade"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ac6be9f2eb4e5a95173b9990cf1d76ade">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(less_equal_node&lt; real&lt; 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1226</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a1027a0674db3d2b20cb8b5a3e8175468"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a1027a0674db3d2b20cb8b5a3e8175468">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(atan_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:471</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a6d55b4a02a1dfddc06cb0f394184063f"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a6d55b4a02a1dfddc06cb0f394184063f">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(dippr127_hig_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:802</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a35b02acae9a26d0ce4582c6563bf4dcf"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a35b02acae9a26d0ce4582c6563bf4dcf">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(xabsx_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1066</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_af3ca56408e5353f5034379f22e9c5f27"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#af3ca56408e5353f5034379f22e9c5f27">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(dippr106_dhvap_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:875</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a189928b722ebcd7c497932dcc8c3f0bb"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a189928b722ebcd7c497932dcc8c3f0bb">maingo::MaingoEvaluator::dispatch</a></div><div class="ttdeci">ConstraintContainer dispatch(expression&lt; boolean&lt; 0 &gt;&gt; &amp;expr)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:77</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_abc322bed0d4f468566f79debecc7ad6a"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#abc322bed0d4f468566f79debecc7ad6a">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(tanh_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1090</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a741318a5ea6c313146b9370e5a77741f"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a741318a5ea6c313146b9370e5a77741f">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(log_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:429</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a0e56aaa973cca94ba40aaa36a46762c6"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a0e56aaa973cca94ba40aaa36a46762c6">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(schroeder_ethanol_rholiq_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1174</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a61a1564a2c7d7c6c2b35c310eaec9194"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a61a1564a2c7d7c6c2b35c310eaec9194">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(xlogx_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1072</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a5ef7cf61b17720593357de03c2e07837"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a5ef7cf61b17720593357de03c2e07837">maingo::MaingoEvaluator::dispatch</a></div><div class="ttdeci">Var dispatch(value_symbol&lt; real&lt; 0 &gt;&gt; *sym)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:128</div></div>
-<div class="ttc" id="function_wrapper_8h_html_a8d1832b6e26bba0d76ead168b5260a77"><div class="ttname"><a href="function_wrapper_8h.html#a8d1832b6e26bba0d76ead168b5260a77">nrtl_tau</a></div><div class="ttdeci">mc::FFVar nrtl_tau(const mc::FFVar &amp;T, const std::vector&lt; double &gt; p)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:206</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a72f7201c2d261bd4a9848567bc15b82e"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a72f7201c2d261bd4a9848567bc15b82e">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(xexpax_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:483</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a0dc466bd95d72232cac6ee6bf8728a2e"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a0dc466bd95d72232cac6ee6bf8728a2e">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(covar_matern_3_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:924</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ad498ec5587d1e19ebf6cf9984e46b7ce"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ad498ec5587d1e19ebf6cf9984e46b7ce">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(equal_node&lt; real&lt; 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1211</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a8ad6bd708e1a633daf74931f0f2b6b13"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a8ad6bd708e1a633daf74931f0f2b6b13">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(min_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:351</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a704a43ae1089dabde8ae3fedb4e7e91c"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a704a43ae1089dabde8ae3fedb4e7e91c">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(lmtd_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:477</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ae450535b9b4b29e3467b75b68caf06ec"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ae450535b9b4b29e3467b75b68caf06ec">maingo::MaingoEvaluator::dispatch</a></div><div class="ttdeci">ConstraintContainer dispatch(value_node&lt; boolean&lt; 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:116</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a24dab2d1d77aebdf8732fb679ab20a6c"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a24dab2d1d77aebdf8732fb679ab20a6c">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(sqrt_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:435</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a95861005344bd24f1d6fa640ff3f1705"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a95861005344bd24f1d6fa640ff3f1705">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(equal_node&lt; ale::index&lt; 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1249</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a49f0a248a70b10ca4b9024b211b65a88"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a49f0a248a70b10ca4b9024b211b65a88">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(element_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1298</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a6517c3ebb6d059284d6ecaf7840d29ba"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a6517c3ebb6d059284d6ecaf7840d29ba">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(acosh_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1102</div></div>
-<div class="ttc" id="function_wrapper_8h_html_af7f639d12a57ad25c80a3e4a0a15def6"><div class="ttname"><a href="function_wrapper_8h.html#af7f639d12a57ad25c80a3e4a0a15def6">nrtl_dtau</a></div><div class="ttdeci">mc::FFVar nrtl_dtau(const mc::FFVar &amp;T, const std::vector&lt; double &gt; p)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:213</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a08711d8a2b9de11b55a06d1eb2f42878"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a08711d8a2b9de11b55a06d1eb2f42878">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(atanh_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1114</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a1d42b0997bcaebb756c432f50ab6d408"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a1d42b0997bcaebb756c432f50ab6d408">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(dippr107_hig_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:775</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a1e9902a05a7ab138bcf8afbfe8f3b38c"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a1e9902a05a7ab138bcf8afbfe8f3b38c">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(nrtl_dgtau_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1032</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ae71759bc3c5007aa5c5c5b2ebea96fde"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ae71759bc3c5007aa5c5c5b2ebea96fde">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(rlmtd_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1150</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_aba0042d5950c2d3af0e2a2b721bc5a93"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#aba0042d5950c2d3af0e2a2b721bc5a93">maingo::MaingoEvaluator::MaingoEvaluator</a></div><div class="ttdeci">MaingoEvaluator(symbol_table &amp;symbols, const std::vector&lt; Var &gt; &amp;variables, const std::unordered_map&lt; std::string, int &gt; &amp;positions)</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:57</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a2a8d0c06f3f8c10c75f83fdfa4d5864f"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a2a8d0c06f3f8c10c75f83fdfa4d5864f">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(ik_cape_psat_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:672</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_aa80cc4ed77e60745a289c4a7754d1aba"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#aa80cc4ed77e60745a289c4a7754d1aba">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(forall_node&lt; TType &gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1306</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a4c67cfa8ca5bf2793ef3b81e37853427"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a4c67cfa8ca5bf2793ef3b81e37853427">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(covar_matern_5_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:930</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_af49e6aba43ce791131d18346111523a1"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#af49e6aba43ce791131d18346111523a1">maingo::MaingoEvaluator::dispatch</a></div><div class="ttdeci">tensor&lt; Var, IDim &gt; dispatch(value_symbol&lt; real&lt; IDim &gt;&gt; *sym)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:123</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_exception_html"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o_exception.html">maingo::MAiNGOException</a></div><div class="ttdoc">This class defines the exceptions thrown by MAiNGO.</div><div class="ttdef"><b>Definition:</b> exceptions.h:39</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ad02f330ab99494a3d3ede57d86626f5d"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ad02f330ab99494a3d3ede57d86626f5d">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(max_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:366</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a6c4708474d08fcb76fd7dfce2a1a03cb"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a6c4708474d08fcb76fd7dfce2a1a03cb">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(asin_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:447</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ac486f0a11622d88874ad9dbc32f7c199"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ac486f0a11622d88874ad9dbc32f7c199">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(less_equal_node&lt; ale::index&lt; 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1263</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ab5756cf7f7eaf69bc3aba7e98bf5cb2f"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ab5756cf7f7eaf69bc3aba7e98bf5cb2f">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(nrtl_gdtau_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1010</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ab7c1fc07e79504989e5a41dfbfa44912"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ab7c1fc07e79504989e5a41dfbfa44912">maingo::MaingoEvaluator::dispatch</a></div><div class="ttdeci">tensor&lt; Var, IDim &gt; dispatch(value_node&lt; real&lt; IDim &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:104</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a31bd4e5857f2eeb30cc919dfdda17bf8"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a31bd4e5857f2eeb30cc919dfdda17bf8">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(minus_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:259</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a0ba00f6e3f0c57560cc4385382f90041"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a0ba00f6e3f0c57560cc4385382f90041">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(entry_node&lt; real&lt; 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:253</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a97099c993ba68c78fcda43917a89d6aa"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a97099c993ba68c78fcda43917a89d6aa">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(ale::af_lcb_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:543</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ac24478492893dbb5575bfae77ad2e3d6"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ac24478492893dbb5575bfae77ad2e3d6">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(exp_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:423</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_aa01d67f98a790198ae94253cdac6663d"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#aa01d67f98a790198ae94253cdac6663d">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(sin_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:441</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a11edbd2e3bfa2eb751ad55d0676630a6"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a11edbd2e3bfa2eb751ad55d0676630a6">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(ale::af_pi_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:561</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a6fc97c4d18c62acaba6353636a277fcf"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a6fc97c4d18c62acaba6353636a277fcf">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(ext_antoine_psat_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:598</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_aebe214bf52d3d9054561dbd279ea630e"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#aebe214bf52d3d9054561dbd279ea630e">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(constant_node&lt; real&lt; 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:148</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a16353f72cbe6a6857f94eeb0a2a8ca2e"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a16353f72cbe6a6857f94eeb0a2a8ca2e">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">tensor&lt; Var, IDim &gt; operator()(constant_node&lt; real&lt; IDim &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:140</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a10b29d970cca4412cdf09ee3d38bbf3a"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a10b29d970cca4412cdf09ee3d38bbf3a">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(acos_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:459</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_aebc25e0d2231b4302278caa9aab888c3"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#aebc25e0d2231b4302278caa9aab888c3">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(erf_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1126</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_aeed3a236612945d6ccc2918b4b200485"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#aeed3a236612945d6ccc2918b4b200485">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(wagner_psat_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:645</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a4f675a797c18eaf2fd523a4f559313d9"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a4f675a797c18eaf2fd523a4f559313d9">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">tensor&lt; Var, IDim &gt; operator()(variable_symbol&lt; real&lt; IDim &gt;&gt; *sym)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:204</div></div>
-<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a714981c9af175ff13728dbaa38cf77f5"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a714981c9af175ff13728dbaa38cf77f5">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(pos_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1138</div></div>
+<a href="_m_ai_n_g_oevaluator_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_m_ai_n_g_o_exception_8h.html">MAiNGOException.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &quot;symbol_table.hpp&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &quot;util/evaluator.hpp&quot;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;ffunc.hpp&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceale.html">ale</a>;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceale_1_1util.html">ale::util</a>;</div><div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">   27</a></span>&#160;<span class="keyword">using</span> <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> = mc::FFVar;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint_container.html">   33</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> {</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint_container.html#ad875878c83b9f5e2ab0ff68c7452a53e">   34</a></span>&#160;    std::vector&lt;Var&gt; <a class="code" href="structmaingo_1_1_constraint_container.html#ad875878c83b9f5e2ab0ff68c7452a53e">eq</a>;   </div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint_container.html#ac1b8182544f5f0fe5357d748b690dab2">   35</a></span>&#160;    std::vector&lt;Var&gt; <a class="code" href="structmaingo_1_1_constraint_container.html#ac1b8182544f5f0fe5357d748b690dab2">ineq</a>; </div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;};</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html">   42</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1_maingo_evaluator.html">MaingoEvaluator</a> {</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#aba0042d5950c2d3af0e2a2b721bc5a93">   52</a></span>&#160;    <a class="code" href="classmaingo_1_1_maingo_evaluator.html#aba0042d5950c2d3af0e2a2b721bc5a93">MaingoEvaluator</a>(</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;        symbol_table&amp; symbols,</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;        <span class="keyword">const</span> std::vector&lt;Var&gt;&amp; variables,</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;        <span class="keyword">const</span> std::unordered_map&lt;std::string, int&gt;&amp; positions):</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;        _symbols(symbols),</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        _variables(variables),</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;        _positions(positions)</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    {</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    }</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a62f29683214d92021c6d75c598f5ed9c">   67</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a62f29683214d92021c6d75c598f5ed9c">dispatch</a>(expression&lt;real&lt;0&gt;&gt;&amp; expr)</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    {</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;        <span class="keywordflow">return</span> dispatch(expr.get());</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    }</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a189928b722ebcd7c497932dcc8c3f0bb">   72</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a189928b722ebcd7c497932dcc8c3f0bb">dispatch</a>(expression&lt;boolean&lt;0&gt;&gt;&amp; expr)</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    {</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        <span class="keywordflow">return</span> dispatch(expr.get());</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    }</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    <span class="keyword">template</span> &lt;<span class="keyword">typename</span> TReturn, <span class="keyword">typename</span> TType&gt;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a6fbb9286991e1487d9eb2e69044d3e05">   78</a></span>&#160;    TReturn <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a6fbb9286991e1487d9eb2e69044d3e05">dispatch</a>(value_node&lt;TType&gt;* node)</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    {</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Used unsupported dispatch&quot;</span>);</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    }</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    <span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> IDim&gt;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a8d9966ebe96ee46c9485972573b72599">   84</a></span>&#160;    <span class="keyword">typename</span> ale::index&lt;IDim&gt;::ref_type <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a8d9966ebe96ee46c9485972573b72599">dispatch</a>(value_node&lt;ale::index&lt;IDim&gt;&gt;* node)</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    {</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;        evaluator eval(_symbols);</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;        <span class="keywordflow">return</span> eval.dispatch(node);</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    }</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    <span class="keyword">template</span> &lt;<span class="keyword">typename</span> TType&gt;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a3cc2929f387db7fa699e9a0fb7659f23">   91</a></span>&#160;    <span class="keyword">typename</span> set&lt;TType, 0&gt;::basic_type <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a3cc2929f387db7fa699e9a0fb7659f23">dispatch</a>(value_node&lt;set&lt;TType, 0&gt;&gt;* node)</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    {</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;        evaluator eval(_symbols);</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;        <span class="keywordflow">return</span> eval.dispatch(node);</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    }</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    <span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> IDim&gt;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ab7c1fc07e79504989e5a41dfbfa44912">   99</a></span>&#160;    tensor&lt;Var, IDim&gt; <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ab7c1fc07e79504989e5a41dfbfa44912">dispatch</a>(value_node&lt;real&lt;IDim&gt;&gt;* node)</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    {</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;        <span class="keywordflow">return</span> std::visit(*<span class="keyword">this</span>, node-&gt;get_variant());</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    }</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#af382e6992b13663334e0ba4644020cd1">  105</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#af382e6992b13663334e0ba4644020cd1">dispatch</a>(value_node&lt;real&lt;0&gt;&gt;* node)</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    {</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;        <span class="keywordflow">return</span> std::visit(*<span class="keyword">this</span>, node-&gt;get_variant());</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    }</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ae450535b9b4b29e3467b75b68caf06ec">  111</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ae450535b9b4b29e3467b75b68caf06ec">dispatch</a>(value_node&lt;boolean&lt;0&gt;&gt;* node)</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    {</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        <span class="keywordflow">return</span> std::visit(*<span class="keyword">this</span>, node-&gt;get_variant());</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    }</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    <span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> IDim&gt;</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#af49e6aba43ce791131d18346111523a1">  118</a></span>&#160;    tensor&lt;Var, IDim&gt; <a class="code" href="classmaingo_1_1_maingo_evaluator.html#af49e6aba43ce791131d18346111523a1">dispatch</a>(value_symbol&lt;real&lt;IDim&gt;&gt;* sym)</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    {</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;        <span class="keywordflow">return</span> std::visit(*<span class="keyword">this</span>, sym-&gt;get_value_variant());</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    }</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a5ef7cf61b17720593357de03c2e07837">  123</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a5ef7cf61b17720593357de03c2e07837">dispatch</a>(value_symbol&lt;real&lt;0&gt;&gt;* sym)</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    {</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        <span class="keywordflow">return</span> std::visit(*<span class="keyword">this</span>, sym-&gt;get_value_variant());</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    }</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    <span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> IDim&gt;</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a16353f72cbe6a6857f94eeb0a2a8ca2e">  135</a></span>&#160;    tensor&lt;Var, IDim&gt; <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a16353f72cbe6a6857f94eeb0a2a8ca2e">operator()</a>(constant_node&lt;real&lt;IDim&gt;&gt;* node)</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    {</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        tensor&lt;Var, IDim&gt; result(node-&gt;value.shape());</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        result.ref().assign(node-&gt;value);</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;    }</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#aebe214bf52d3d9054561dbd279ea630e">  143</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#aebe214bf52d3d9054561dbd279ea630e">operator()</a>(constant_node&lt;real&lt;0&gt;&gt;* node)</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    {</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;        <span class="keywordflow">return</span> node-&gt;value;</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;    }</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a1eb1cdd102a6fdbefefa99006bb14d98">  149</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a1eb1cdd102a6fdbefefa99006bb14d98">operator()</a>(constant_node&lt;boolean&lt;0&gt;&gt;* node)</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    {</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Evaluated unsupported general logical expression&quot;</span>);</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a>();</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    }</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    <span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> IDim&gt;</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a232490b0b1f7b0601343ec002fd461fb">  157</a></span>&#160;    tensor&lt;Var, IDim&gt; <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a232490b0b1f7b0601343ec002fd461fb">operator()</a>(parameter_node&lt;real&lt;IDim&gt;&gt;* node)</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    {</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;        <span class="keyword">auto</span> sym = _symbols.resolve&lt;real&lt;IDim&gt;&gt;(node-&gt;name);</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        <span class="keywordflow">if</span> (!sym) {</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Symbol &quot;</span> + node-&gt;name + <span class="stringliteral">&quot; has unexpected type&quot;</span>);</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;        }</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;        <span class="keywordflow">return</span> dispatch(sym);</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    }</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a632562f52010db675b32172ba9b8f9f8">  166</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a632562f52010db675b32172ba9b8f9f8">operator()</a>(parameter_node&lt;real&lt;0&gt;&gt;* node)</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    {</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;        <span class="keyword">auto</span> sym = _symbols.resolve&lt;real&lt;0&gt;&gt;(node-&gt;name);</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;        <span class="keywordflow">if</span> (!sym) {</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Symbol &quot;</span> + node-&gt;name + <span class="stringliteral">&quot; has unexpected type&quot;</span>);</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;        }</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;        <span class="keywordflow">return</span> dispatch(sym);</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;    }</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a8db905522b621724e056807193a361ed">  176</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a8db905522b621724e056807193a361ed">operator()</a>(parameter_node&lt;boolean&lt;0&gt;&gt;* node)</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    {</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Evaluated unsupported general logical expression&quot;</span>);</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a>();</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    }</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;    <span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> IDim&gt;</div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ae64d0f887011fb7b2f45f904b651212d">  184</a></span>&#160;    tensor&lt;Var, IDim&gt; <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ae64d0f887011fb7b2f45f904b651212d">operator()</a>(parameter_symbol&lt;real&lt;IDim&gt;&gt;* sym)</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;    {</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;        tensor&lt;Var, IDim&gt; result(sym-&gt;m_value.shape());</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;        result.ref().assign(sym-&gt;m_value);</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;        <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;    }</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a313d06a1b681bda32d1baaf73b4c1ae0">  192</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a313d06a1b681bda32d1baaf73b4c1ae0">operator()</a>(parameter_symbol&lt;real&lt;0&gt;&gt;* sym)</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;    {</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;        <span class="keywordflow">return</span> sym-&gt;m_value;</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    }</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;    <span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> IDim&gt;</div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a4f675a797c18eaf2fd523a4f559313d9">  199</a></span>&#160;    tensor&lt;Var, IDim&gt; <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a4f675a797c18eaf2fd523a4f559313d9">operator()</a>(variable_symbol&lt;real&lt;IDim&gt;&gt;* sym)</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    {</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;        tensor&lt;Var, IDim&gt; result(sym-&gt;shape());</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;        <span class="keywordtype">size_t</span> indexes[IDim];</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; IDim; ++i) {</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;            indexes[i] = 0;</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;        }</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;        <span class="keywordtype">int</span> position = _positions.at(sym-&gt;m_name);</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;        <span class="keywordflow">while</span> (indexes[0] &lt; result.shape(0)) {</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;            result[indexes] = _variables[position];</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;            ++position;</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;            <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = IDim - 1; i &gt;= 0; --i) {</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;                <span class="keywordflow">if</span> (++indexes[i] &lt; sym-&gt;shape(i)) {</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;                }</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (i != 0) {</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;                    indexes[i] = 0;</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;                }</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;            }</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;        }</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;        <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;    }</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ad4281e7a946eb516f8e361be386226ad">  223</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ad4281e7a946eb516f8e361be386226ad">operator()</a>(variable_symbol&lt;real&lt;0&gt;&gt;* sym)</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;    {</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;        <span class="keywordflow">return</span> _variables[_positions.at(sym-&gt;m_name)];</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    }</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ab699cabd08e37c8f90b253b8410f3e03">  229</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ab699cabd08e37c8f90b253b8410f3e03">operator()</a>(expression_symbol&lt;real&lt;0&gt;&gt;* sym)</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;    {</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;        <span class="keywordflow">return</span> dispatch(sym-&gt;m_value.get());</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    }</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a1120421ca19b8fefd77ad0c67149ef5a">  235</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a1120421ca19b8fefd77ad0c67149ef5a">operator()</a>(expression_symbol&lt;boolean&lt;0&gt;&gt;* sym)</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;    {</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;        <span class="keywordflow">return</span> dispatch(sym-&gt;m_value.get());</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;    }</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    <span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> IDim&gt;</div><div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ac806eb4a69b3d31ee8930c575f9b5405">  242</a></span>&#160;    tensor&lt;Var, IDim&gt; <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ac806eb4a69b3d31ee8930c575f9b5405">operator()</a>(entry_node&lt;real&lt;IDim&gt;&gt;* node)</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;    {</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;        <span class="keywordflow">return</span> dispatch(node-&gt;template get_child&lt;0&gt;())[dispatch(node-&gt;template get_child&lt;1&gt;()) - 1];</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;    }</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a0ba00f6e3f0c57560cc4385382f90041">  248</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a0ba00f6e3f0c57560cc4385382f90041">operator()</a>(entry_node&lt;real&lt;0&gt;&gt;* node)</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;    {</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;        <span class="keywordflow">return</span> dispatch(node-&gt;get_child&lt;0&gt;())[dispatch(node-&gt;get_child&lt;1&gt;()) - 1];</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;    }</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a31bd4e5857f2eeb30cc919dfdda17bf8">  254</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a31bd4e5857f2eeb30cc919dfdda17bf8">operator()</a>(minus_node* node)</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;    {</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;        <span class="keywordflow">return</span> -dispatch(node-&gt;get_child&lt;0&gt;());</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;    }</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a2c93ca479683e45af6dc24953434cf05">  260</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a2c93ca479683e45af6dc24953434cf05">operator()</a>(inverse_node* node)</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;    {</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;        <span class="keywordflow">return</span> 1 / dispatch(node-&gt;get_child&lt;0&gt;());</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;    }</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;</div><div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a14d44b2a4bfbb0a7c8abe784707c03d8">  266</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a14d44b2a4bfbb0a7c8abe784707c03d8">operator()</a>(addition_node* node)</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;    {</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;        <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> result = 0;</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = node-&gt;children.begin(); it != node-&gt;children.end(); ++it) {</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;            result += dispatch(it-&gt;get());</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;        }</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;        <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;    }</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#aef325a790e281683bfe3e17160a07495">  276</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#aef325a790e281683bfe3e17160a07495">operator()</a>(sum_div_node* node)</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;    {</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;        <span class="keywordflow">if</span> (node-&gt;children.size() % 2 == 0) {</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator --  Called sum_div with even number of arguments&quot;</span>);</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;        }</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;        <span class="keywordflow">if</span> (node-&gt;children.size() &lt; 3) {</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Called sum_div with less than 3 arguments&quot;</span>);</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;        }</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;        std::vector&lt;Var&gt; vars;</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;        std::vector&lt;double&gt; coeff;</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = node-&gt;children.begin(); it != node-&gt;children.end(); ++it) {</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;            <span class="keywordflow">if</span> (distance(node-&gt;children.begin(), it) &lt; (<span class="keywordtype">int</span>)(node-&gt;children.size() / 2)) {</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;                vars.emplace_back(dispatch(it-&gt;get()));</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;            }</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;            <span class="keywordflow">else</span> {</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;                <span class="keywordflow">if</span> (!dispatch(it-&gt;get()).cst()) {</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;                    <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  MaingoEvaluator -- Error: The &quot;</span> + std::to_string(distance(node-&gt;children.begin(), it)) + <span class="stringliteral">&quot;-th coefficient in sum_div is not a constant&quot;</span>);</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;                }</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;                coeff.emplace_back(dispatch(it-&gt;get()).num().val());</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;            }</div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;        }</div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;        <span class="keywordflow">return</span> mc::sum_div(vars, coeff);</div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;    }</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a7529b1ae0a3303aaa6ccb92c6f67b08a">  301</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a7529b1ae0a3303aaa6ccb92c6f67b08a">operator()</a>(xlog_sum_node* node)</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;    {</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;        <span class="keywordflow">if</span> (!(node-&gt;children.size() % 2 == 0)) {</div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Called xlog_sum with odd number of arguments&quot;</span>);</div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;        }</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;        <span class="keywordflow">if</span> (node-&gt;children.size() &lt; 2) {</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Called xlog_sum with less than arguments&quot;</span>);</div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;        }</div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;        std::vector&lt;Var&gt; vars;</div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;        std::vector&lt;double&gt; coeff;</div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = node-&gt;children.begin(); it != node-&gt;children.end(); ++it) {</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;            <span class="keywordflow">if</span> (distance(node-&gt;children.begin(), it) &lt; (<span class="keywordtype">int</span>)(node-&gt;children.size() / 2)) {</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;                vars.emplace_back(dispatch(it-&gt;get()));</div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;            }</div><div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;            <span class="keywordflow">else</span> {</div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;                <span class="keywordflow">if</span> (!dispatch(it-&gt;get()).cst()) {</div><div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;                    <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- The &quot;</span> + std::to_string(distance(node-&gt;children.begin(), it)) + <span class="stringliteral">&quot;-th coefficient in xlog_sum is not a constant&quot;</span>);</div><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;                }</div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;                coeff.emplace_back(dispatch(it-&gt;get()).num().val());</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;            }</div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;        }</div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;        <span class="keywordflow">return</span> mc::xlog_sum(vars, coeff);</div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;    }</div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;</div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a9a60a214575eb25ae40706df9577dfcd">  326</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a9a60a214575eb25ae40706df9577dfcd">operator()</a>(multiplication_node* node)</div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;    {</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;        <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> result = 1;</div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = node-&gt;children.begin(); it != node-&gt;children.end(); ++it) {</div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;            result *= dispatch(it-&gt;get());</div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;        }</div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;        <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;    }</div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;</div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;</div><div class="line"><a name="l00336"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#aa7d7c8734d8a04afbad0c3dcccc0248c">  336</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#aa7d7c8734d8a04afbad0c3dcccc0248c">operator()</a>(exponentiation_node* node)</div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;    {</div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;        <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> result = 1;</div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = node-&gt;children.rbegin(); it != node-&gt;children.rend(); ++it) {</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;            result = pow(dispatch(it-&gt;get()), result);</div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;        }</div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;        <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;    }</div><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;</div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;</div><div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a8ad6bd708e1a633daf74931f0f2b6b13">  346</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a8ad6bd708e1a633daf74931f0f2b6b13">operator()</a>(min_node* node)</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;    {</div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;        <span class="keywordflow">if</span> (node-&gt;children.size() == 0) {</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator --  Called min without arguments&quot;</span>);</div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;        }</div><div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;        <span class="keyword">auto</span> it    = node-&gt;children.begin();</div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;        <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> result = dispatch(it-&gt;get());</div><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;        it++;</div><div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;        <span class="keywordflow">for</span> (; it != node-&gt;children.end(); ++it) {</div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;            result = mc::min(dispatch(it-&gt;get()), result);</div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;        }</div><div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;        <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;    }</div><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;</div><div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;</div><div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ad02f330ab99494a3d3ede57d86626f5d">  361</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ad02f330ab99494a3d3ede57d86626f5d">operator()</a>(max_node* node)</div><div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;    {</div><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;        <span class="keywordflow">if</span> (node-&gt;children.size() == 0) {</div><div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Called max without arguments&quot;</span>);</div><div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;        }</div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;        <span class="keyword">auto</span> it    = node-&gt;children.begin();</div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;        <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> result = dispatch(it-&gt;get());</div><div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;        it++;</div><div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;        <span class="keywordflow">for</span> (; it != node-&gt;children.end(); ++it) {</div><div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;            result = mc::max(dispatch(it-&gt;get()), result);</div><div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;        }</div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;        <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;    }</div><div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;</div><div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;</div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;    <span class="keyword">template</span> &lt;<span class="keyword">typename</span> TType&gt;</div><div class="line"><a name="l00377"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a9e5dbc374f5bd51ce3b4c7d00cdfa5f8">  377</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a9e5dbc374f5bd51ce3b4c7d00cdfa5f8">operator()</a>(set_min_node&lt;TType&gt;* node)</div><div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;    {</div><div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;        <span class="keyword">auto</span> elements = dispatch(node-&gt;template get_child&lt;0&gt;());</div><div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;        _symbols.push_scope();</div><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;        <span class="keywordflow">if</span> (elements.begin() == elements.end()) {</div><div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Called set_min with empty set&quot;</span>);</div><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;        }</div><div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;        <span class="keyword">auto</span> it = elements.begin();</div><div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;        _symbols.define(node-&gt;name, <span class="keyword">new</span> parameter_symbol&lt;TType&gt;(node-&gt;name, *it));</div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;        <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> result = dispatch(node-&gt;template get_child&lt;1&gt;());</div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;        ++it;</div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;        <span class="keywordflow">for</span> (; it != elements.end(); ++it) {</div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;            _symbols.define(node-&gt;name, <span class="keyword">new</span> parameter_symbol&lt;TType&gt;(node-&gt;name, *it));</div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;            result = mc::min(dispatch(node-&gt;template get_child&lt;1&gt;()), result);</div><div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;        }</div><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;        _symbols.pop_scope();</div><div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;        <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;    }</div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;</div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;</div><div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;    <span class="keyword">template</span> &lt;<span class="keyword">typename</span> TType&gt;</div><div class="line"><a name="l00398"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ac1d0e8fb250f926a2d2af2211de283d3">  398</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ac1d0e8fb250f926a2d2af2211de283d3">operator()</a>(set_max_node&lt;TType&gt;* node)</div><div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;    {</div><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;        <span class="keyword">auto</span> elements = dispatch(node-&gt;template get_child&lt;0&gt;());</div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;        _symbols.push_scope();</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;        <span class="keywordflow">if</span> (elements.begin() == elements.end()) {</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Called set_max with empty set&quot;</span>);</div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;        }</div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;        <span class="keyword">auto</span> it = elements.begin();</div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;        _symbols.define(node-&gt;name, <span class="keyword">new</span> parameter_symbol&lt;TType&gt;(node-&gt;name, *it));</div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;        <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> result = dispatch(node-&gt;template get_child&lt;1&gt;());</div><div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;        ++it;</div><div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;        <span class="keywordflow">for</span> (; it != elements.end(); ++it) {</div><div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;            _symbols.define(node-&gt;name, <span class="keyword">new</span> parameter_symbol&lt;TType&gt;(node-&gt;name, *it));</div><div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;            result = mc::max(dispatch(node-&gt;template get_child&lt;1&gt;()), result);</div><div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;        }</div><div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;        _symbols.pop_scope();</div><div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;        <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;    }</div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;</div><div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;</div><div class="line"><a name="l00418"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ac24478492893dbb5575bfae77ad2e3d6">  418</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ac24478492893dbb5575bfae77ad2e3d6">operator()</a>(exp_node* node)</div><div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;    {</div><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;        <span class="keywordflow">return</span> exp(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;    }</div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;</div><div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;</div><div class="line"><a name="l00424"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a741318a5ea6c313146b9370e5a77741f">  424</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a741318a5ea6c313146b9370e5a77741f">operator()</a>(log_node* node)</div><div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;    {</div><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;        <span class="keywordflow">return</span> log(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;    }</div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;</div><div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;</div><div class="line"><a name="l00430"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a24dab2d1d77aebdf8732fb679ab20a6c">  430</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a24dab2d1d77aebdf8732fb679ab20a6c">operator()</a>(sqrt_node* node)</div><div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;    {</div><div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;        <span class="keywordflow">return</span> sqrt(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;    }</div><div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;</div><div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;</div><div class="line"><a name="l00436"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#aa01d67f98a790198ae94253cdac6663d">  436</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#aa01d67f98a790198ae94253cdac6663d">operator()</a>(sin_node* node)</div><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;    {</div><div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;        <span class="keywordflow">return</span> sin(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;    }</div><div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;</div><div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;</div><div class="line"><a name="l00442"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a6c4708474d08fcb76fd7dfce2a1a03cb">  442</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a6c4708474d08fcb76fd7dfce2a1a03cb">operator()</a>(asin_node* node)</div><div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;    {</div><div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;        <span class="keywordflow">return</span> asin(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;    }</div><div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;</div><div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;</div><div class="line"><a name="l00448"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#aaaf0982bff30d6d269a986aa1f8d5fd3">  448</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#aaaf0982bff30d6d269a986aa1f8d5fd3">operator()</a>(cos_node* node)</div><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;    {</div><div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;        <span class="keywordflow">return</span> cos(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;    }</div><div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;</div><div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;</div><div class="line"><a name="l00454"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a10b29d970cca4412cdf09ee3d38bbf3a">  454</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a10b29d970cca4412cdf09ee3d38bbf3a">operator()</a>(acos_node* node)</div><div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;    {</div><div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;        <span class="keywordflow">return</span> acos(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;    }</div><div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;</div><div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;</div><div class="line"><a name="l00460"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a21b576ce22533cc7cd433a5110e7d3e5">  460</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a21b576ce22533cc7cd433a5110e7d3e5">operator()</a>(tan_node* node)</div><div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;    {</div><div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;        <span class="keywordflow">return</span> tan(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;    }</div><div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;</div><div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;</div><div class="line"><a name="l00466"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a1027a0674db3d2b20cb8b5a3e8175468">  466</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a1027a0674db3d2b20cb8b5a3e8175468">operator()</a>(atan_node* node)</div><div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;    {</div><div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;        <span class="keywordflow">return</span> atan(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;    }</div><div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;</div><div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;</div><div class="line"><a name="l00472"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a704a43ae1089dabde8ae3fedb4e7e91c">  472</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a704a43ae1089dabde8ae3fedb4e7e91c">operator()</a>(lmtd_node* node)</div><div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;    {</div><div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;        <span class="keywordflow">return</span> mc::lmtd(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()));</div><div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;    }</div><div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;</div><div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;</div><div class="line"><a name="l00478"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a72f7201c2d261bd4a9848567bc15b82e">  478</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a72f7201c2d261bd4a9848567bc15b82e">operator()</a>(xexpax_node* node)</div><div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;    {</div><div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Second argument in xexpax is not a constant&quot;</span>);</div><div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;        }</div><div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;        <span class="keywordflow">return</span> mc::xexpax(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()).num().val());</div><div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;    }</div><div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;</div><div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;</div><div class="line"><a name="l00487"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#aa268019790af86f24dd20e117e53601d">  487</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#aa268019790af86f24dd20e117e53601d">operator()</a>(arh_node* node)</div><div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;    {</div><div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Second argument in arh is not a constant&quot;</span>);</div><div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;        }</div><div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;        <span class="keywordflow">return</span> mc::Op&lt;mc::FFVar&gt;::arh(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()).num().val());</div><div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;    }</div><div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;</div><div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;</div><div class="line"><a name="l00496"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#acd5e6660b34c3fb57dc4e4a597cc3246">  496</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#acd5e6660b34c3fb57dc4e4a597cc3246">operator()</a>(lb_func_node* node)</div><div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;    {</div><div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Second argument in lb_func is not a constant&quot;</span>);</div><div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;        }</div><div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;        <span class="keywordflow">return</span> mc::lb_func(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()).num().val());</div><div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;    }</div><div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;</div><div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;</div><div class="line"><a name="l00505"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ae93e844c247f347914f8745238d9f12f">  505</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ae93e844c247f347914f8745238d9f12f">operator()</a>(ub_func_node* node)</div><div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;    {</div><div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Second argument in ub_func is not a constant&quot;</span>);</div><div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;        }</div><div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;        <span class="keywordflow">return</span> mc::ub_func(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()).num().val());</div><div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;    }</div><div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;</div><div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;</div><div class="line"><a name="l00514"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a8580e54b758078f424368157c9998177">  514</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a8580e54b758078f424368157c9998177">operator()</a>(bounding_func_node* node)</div><div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;    {</div><div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Second argument in bounding_func is not a constant&quot;</span>);</div><div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;        }</div><div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Third argument in bounding_func is not a constant&quot;</span>);</div><div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;        }</div><div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;        <span class="keywordflow">return</span> mc::bounding_func(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), dispatch(node-&gt;get_child&lt;2&gt;()).num().val());</div><div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;    }</div><div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;</div><div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;</div><div class="line"><a name="l00526"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a0d18706b8c5403a359ae4fb3c4535dd8">  526</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a0d18706b8c5403a359ae4fb3c4535dd8">operator()</a>(ale::squash_node* node)</div><div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;    {</div><div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Second argument in squash_node is not a constant&quot;</span>);</div><div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;        }</div><div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Third argument in squash_node is not a constant&quot;</span>);</div><div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;        }</div><div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;        <span class="keywordflow">return</span> mc::squash_node(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), dispatch(node-&gt;get_child&lt;2&gt;()).num().val());</div><div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;    }</div><div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;</div><div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;</div><div class="line"><a name="l00538"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a97099c993ba68c78fcda43917a89d6aa">  538</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a97099c993ba68c78fcda43917a89d6aa">operator()</a>(ale::af_lcb_node* node)</div><div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;    {</div><div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Third argument in af_lcb_node is not a constant&quot;</span>);</div><div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;        }</div><div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;        <span class="keywordflow">return</span> mc::acquisition_function(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()), 1, dispatch(node-&gt;get_child&lt;2&gt;()).num().val());</div><div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;    }</div><div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;</div><div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;</div><div class="line"><a name="l00547"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a1fd539de40d9a846e3bc1a8d7319cd3c">  547</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a1fd539de40d9a846e3bc1a8d7319cd3c">operator()</a>(ale::af_ei_node* node)</div><div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;    {</div><div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Third argument in af_ei_node is not a constant&quot;</span>);</div><div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;        }</div><div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;        <span class="keywordflow">return</span> mc::acquisition_function(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()), 2, dispatch(node-&gt;get_child&lt;2&gt;()).num().val());</div><div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;    }</div><div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;</div><div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;</div><div class="line"><a name="l00556"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a11edbd2e3bfa2eb751ad55d0676630a6">  556</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a11edbd2e3bfa2eb751ad55d0676630a6">operator()</a>(ale::af_pi_node* node)</div><div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;    {</div><div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Third argument in af_pi_node is not a constant&quot;</span>);</div><div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;        }</div><div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;        <span class="keywordflow">return</span> mc::acquisition_function(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()), 3, dispatch(node-&gt;get_child&lt;2&gt;()).num().val());</div><div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;    }</div><div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;</div><div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;</div><div class="line"><a name="l00565"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a51dbeb4db4c48128191a4850893e54ec">  565</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a51dbeb4db4c48128191a4850893e54ec">operator()</a>(ale::regnormal_node* node)</div><div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;    {</div><div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Second argument in regnormal_node is not a constant&quot;</span>);</div><div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;        }</div><div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Third argument in regnormal_node is not a constant&quot;</span>);</div><div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;        }</div><div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;        <span class="keywordflow">return</span> mc::regnormal(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), dispatch(node-&gt;get_child&lt;2&gt;()).num().val());</div><div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;    }</div><div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;</div><div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;</div><div class="line"><a name="l00577"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a94eb83d21f8727c36807e91b786e7ed0">  577</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a94eb83d21f8727c36807e91b786e7ed0">operator()</a>(nrtl_dtau_node* node)</div><div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;    {</div><div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Second argument in nrtl_dtau is not a constant&quot;</span>);</div><div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;        }</div><div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Third argument in nrtl_dtau is not a constant&quot;</span>);</div><div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;        }</div><div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Fourth argument in nrtl_dtau is not a constant&quot;</span>);</div><div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;        }</div><div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="function_wrapper_8h.html#af7f639d12a57ad25c80a3e4a0a15def6">mc::nrtl_dtau</a>(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;                             dispatch(node-&gt;get_child&lt;3&gt;()).num().val());</div><div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;    }</div><div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;</div><div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;</div><div class="line"><a name="l00593"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a6fc97c4d18c62acaba6353636a277fcf">  593</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a6fc97c4d18c62acaba6353636a277fcf">operator()</a>(ext_antoine_psat_node* node)</div><div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;    {</div><div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p1 in ext_antoine_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;        }</div><div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p2 in ext_antoine_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;        }</div><div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p3 in ext_antoine_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;        }</div><div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;4&gt;()).cst()) {</div><div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p4 in ext_antoine_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;        }</div><div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;5&gt;()).cst()) {</div><div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p5 in ext_antoine_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;        }</div><div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;6&gt;()).cst()) {</div><div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p6 in ext_antoine_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;        }</div><div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;7&gt;()).cst()) {</div><div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p7 in ext_antoine_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;        }</div><div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;        <span class="comment">// ext_antoine_psat = type 1</span></div><div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;        <span class="keywordflow">return</span> mc::vapor_pressure(dispatch(node-&gt;get_child&lt;0&gt;()), 1, dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;                                  dispatch(node-&gt;get_child&lt;3&gt;()).num().val(), dispatch(node-&gt;get_child&lt;4&gt;()).num().val(), dispatch(node-&gt;get_child&lt;5&gt;()).num().val(),</div><div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;                                  dispatch(node-&gt;get_child&lt;6&gt;()).num().val(), dispatch(node-&gt;get_child&lt;7&gt;()).num().val());</div><div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;    }</div><div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;</div><div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;</div><div class="line"><a name="l00623"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a77f9255d62b085460410be784cbc9029">  623</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a77f9255d62b085460410be784cbc9029">operator()</a>(antoine_psat_node* node)</div><div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;    {</div><div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p1 in antoine_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;        }</div><div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p2 in antoine_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;        }</div><div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p3 in antoine_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;        }</div><div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;        <span class="comment">// antoine_psat = type 2</span></div><div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;        <span class="keywordflow">return</span> mc::vapor_pressure(dispatch(node-&gt;get_child&lt;0&gt;()), 2, dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;                                  dispatch(node-&gt;get_child&lt;3&gt;()).num().val());</div><div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;    }</div><div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;</div><div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;</div><div class="line"><a name="l00640"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#aeed3a236612945d6ccc2918b4b200485">  640</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#aeed3a236612945d6ccc2918b4b200485">operator()</a>(wagner_psat_node* node)</div><div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;    {</div><div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p1 in wagner_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;        }</div><div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p2 in wagner_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;        }</div><div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p3 in wagner_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;        }</div><div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;4&gt;()).cst()) {</div><div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p4 in wagner_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;        }</div><div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;5&gt;()).cst()) {</div><div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p5 in wagner_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;        }</div><div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;6&gt;()).cst()) {</div><div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p6 in wagner_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;        }</div><div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;        <span class="comment">// wagner_psat = type 3</span></div><div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;        <span class="keywordflow">return</span> mc::vapor_pressure(dispatch(node-&gt;get_child&lt;0&gt;()), 3, dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;                                  dispatch(node-&gt;get_child&lt;3&gt;()).num().val(), dispatch(node-&gt;get_child&lt;4&gt;()).num().val(), dispatch(node-&gt;get_child&lt;5&gt;()).num().val(),</div><div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;                                  dispatch(node-&gt;get_child&lt;6&gt;()).num().val());</div><div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;    }</div><div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;</div><div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;</div><div class="line"><a name="l00667"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a2a8d0c06f3f8c10c75f83fdfa4d5864f">  667</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a2a8d0c06f3f8c10c75f83fdfa4d5864f">operator()</a>(ik_cape_psat_node* node)</div><div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;    {</div><div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p1 in ik_cape_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160;        }</div><div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p2 in ik_cape_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;        }</div><div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p3 in ik_cape_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160;        }</div><div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;4&gt;()).cst()) {</div><div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p4 in ik_cape_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;        }</div><div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;5&gt;()).cst()) {</div><div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p5 in ik_cape_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160;        }</div><div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;6&gt;()).cst()) {</div><div class="line"><a name="l00685"></a><span class="lineno">  685</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p6 in ik_cape_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;        }</div><div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;7&gt;()).cst()) {</div><div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p7 in ik_cape_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;        }</div><div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;8&gt;()).cst()) {</div><div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p8 in ik_cape_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;        }</div><div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;9&gt;()).cst()) {</div><div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p9 in ik_cape_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;        }</div><div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;10&gt;()).cst()) {</div><div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p10 in ik_cape_psat is not a constant&quot;</span>);</div><div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;        }</div><div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;        <span class="comment">// ik_cape_psat = type 4</span></div><div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;        <span class="keywordflow">return</span> mc::vapor_pressure(dispatch(node-&gt;get_child&lt;0&gt;()), 4, dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;                                  dispatch(node-&gt;get_child&lt;3&gt;()).num().val(), dispatch(node-&gt;get_child&lt;4&gt;()).num().val(), dispatch(node-&gt;get_child&lt;5&gt;()).num().val(),</div><div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;                                  dispatch(node-&gt;get_child&lt;6&gt;()).num().val(), dispatch(node-&gt;get_child&lt;7&gt;()).num().val(), dispatch(node-&gt;get_child&lt;8&gt;()).num().val(),</div><div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;                                  dispatch(node-&gt;get_child&lt;9&gt;()).num().val(), dispatch(node-&gt;get_child&lt;10&gt;()).num().val());</div><div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;    }</div><div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;</div><div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;</div><div class="line"><a name="l00707"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ae707063e517fbc96144557e22a18c2bd">  707</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ae707063e517fbc96144557e22a18c2bd">operator()</a>(aspen_hig_node* node)</div><div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;    {</div><div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p1 in aspen_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;        }</div><div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p2 in aspen_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;        }</div><div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p3 in aspen_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;        }</div><div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;4&gt;()).cst()) {</div><div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p4 in aspen_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;        }</div><div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;5&gt;()).cst()) {</div><div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p5 in aspen_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160;        }</div><div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;6&gt;()).cst()) {</div><div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p6 in aspen_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00726"></a><span class="lineno">  726</span>&#160;        }</div><div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;7&gt;()).cst()) {</div><div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p7 in aspen_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160;        }</div><div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160;        <span class="comment">// aspen_hig = type 1</span></div><div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;        <span class="keywordflow">return</span> mc::ideal_gas_enthalpy(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), 1, dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160;                                      dispatch(node-&gt;get_child&lt;3&gt;()).num().val(), dispatch(node-&gt;get_child&lt;4&gt;()).num().val(), dispatch(node-&gt;get_child&lt;5&gt;()).num().val(),</div><div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160;                                      dispatch(node-&gt;get_child&lt;6&gt;()).num().val(), dispatch(node-&gt;get_child&lt;7&gt;()).num().val());</div><div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;    }</div><div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;</div><div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160;</div><div class="line"><a name="l00737"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#af8a35b9814e04b03b506911e89117630">  737</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#af8a35b9814e04b03b506911e89117630">operator()</a>(nasa9_hig_node* node)</div><div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;    {</div><div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p1 in nasa9_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160;        }</div><div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p2 in nasa9_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;        }</div><div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p3 in nasa9_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;        }</div><div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;4&gt;()).cst()) {</div><div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p4 in nasa9_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160;        }</div><div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;5&gt;()).cst()) {</div><div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p5 in nasa9_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;        }</div><div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;6&gt;()).cst()) {</div><div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p6 in nasa9_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;        }</div><div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;7&gt;()).cst()) {</div><div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p7 in nasa9_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160;        }</div><div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;8&gt;()).cst()) {</div><div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p8 in nasa9_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;        }</div><div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;        <span class="comment">// nasa9_hig = type 2</span></div><div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160;        <span class="keywordflow">return</span> mc::ideal_gas_enthalpy(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), 2, dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;                                      dispatch(node-&gt;get_child&lt;3&gt;()).num().val(), dispatch(node-&gt;get_child&lt;4&gt;()).num().val(), dispatch(node-&gt;get_child&lt;5&gt;()).num().val(),</div><div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;                                      dispatch(node-&gt;get_child&lt;6&gt;()).num().val(), dispatch(node-&gt;get_child&lt;7&gt;()).num().val(), dispatch(node-&gt;get_child&lt;8&gt;()).num().val());</div><div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;    }</div><div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;</div><div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;</div><div class="line"><a name="l00770"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a1d42b0997bcaebb756c432f50ab6d408">  770</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a1d42b0997bcaebb756c432f50ab6d408">operator()</a>(dippr107_hig_node* node)</div><div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160;    {</div><div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p1 in dippr107_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;        }</div><div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p2 in dippr107_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160;        }</div><div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p3 in dippr107_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160;        }</div><div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;4&gt;()).cst()) {</div><div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p4 in dippr107_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160;        }</div><div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;5&gt;()).cst()) {</div><div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p5 in dippr107_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160;        }</div><div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;6&gt;()).cst()) {</div><div class="line"><a name="l00788"></a><span class="lineno">  788</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p6 in dippr107_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00789"></a><span class="lineno">  789</span>&#160;        }</div><div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;        <span class="comment">// dippr107_hig_node = type 3</span></div><div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160;        <span class="keywordflow">return</span> mc::ideal_gas_enthalpy(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), 3, dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;                                      dispatch(node-&gt;get_child&lt;3&gt;()).num().val(), dispatch(node-&gt;get_child&lt;4&gt;()).num().val(), dispatch(node-&gt;get_child&lt;5&gt;()).num().val(),</div><div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160;                                      dispatch(node-&gt;get_child&lt;6&gt;()).num().val());</div><div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;    }</div><div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;</div><div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;</div><div class="line"><a name="l00797"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a6d55b4a02a1dfddc06cb0f394184063f">  797</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a6d55b4a02a1dfddc06cb0f394184063f">operator()</a>(dippr127_hig_node* node)</div><div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;    {</div><div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p1 in dippr127_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160;        }</div><div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p2 in dippr127_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;        }</div><div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p3 in dippr127_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;        }</div><div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;4&gt;()).cst()) {</div><div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p4 in dippr127_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;        }</div><div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;5&gt;()).cst()) {</div><div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p5 in dippr127_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;        }</div><div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;6&gt;()).cst()) {</div><div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p6 in dippr127_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;        }</div><div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;7&gt;()).cst()) {</div><div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p7 in dippr127_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;        }</div><div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;8&gt;()).cst()) {</div><div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p8 in dippr127_hig is not a constant&quot;</span>);</div><div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;        }</div><div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;        <span class="comment">// dippr127_hig = type 4</span></div><div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160;        <span class="keywordflow">return</span> mc::ideal_gas_enthalpy(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), 4, dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;                                      dispatch(node-&gt;get_child&lt;3&gt;()).num().val(), dispatch(node-&gt;get_child&lt;4&gt;()).num().val(), dispatch(node-&gt;get_child&lt;5&gt;()).num().val(),</div><div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;                                      dispatch(node-&gt;get_child&lt;6&gt;()).num().val(), dispatch(node-&gt;get_child&lt;7&gt;()).num().val(), dispatch(node-&gt;get_child&lt;8&gt;()).num().val());</div><div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;    }</div><div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;</div><div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160;</div><div class="line"><a name="l00830"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ab6c947dfb36b02d479c6aa3e68a062bb">  830</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ab6c947dfb36b02d479c6aa3e68a062bb">operator()</a>(antoine_tsat_node* node)</div><div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160;    {</div><div class="line"><a name="l00832"></a><span class="lineno">  832</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p1 in antoine_tsat is not a constant&quot;</span>);</div><div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160;        }</div><div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p2 in antoine_tsat is not a constant&quot;</span>);</div><div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;        }</div><div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p3 in antoine_tsat is not a constant&quot;</span>);</div><div class="line"><a name="l00840"></a><span class="lineno">  840</span>&#160;        }</div><div class="line"><a name="l00841"></a><span class="lineno">  841</span>&#160;        <span class="comment">// antoine_tsat = type 2</span></div><div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160;        <span class="keywordflow">return</span> mc::saturation_temperature(dispatch(node-&gt;get_child&lt;0&gt;()), 2, dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160;                                          dispatch(node-&gt;get_child&lt;3&gt;()).num().val());</div><div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160;    }</div><div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;</div><div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160;</div><div class="line"><a name="l00847"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a4f5be3d4ae94197d759efb3cea878f66">  847</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a4f5be3d4ae94197d759efb3cea878f66">operator()</a>(watson_dhvap_node* node)</div><div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160;    {</div><div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p1 in watson_dhvap is not a constant&quot;</span>);</div><div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160;        }</div><div class="line"><a name="l00852"></a><span class="lineno">  852</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00853"></a><span class="lineno">  853</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p2 in watson_dhvap is not a constant&quot;</span>);</div><div class="line"><a name="l00854"></a><span class="lineno">  854</span>&#160;        }</div><div class="line"><a name="l00855"></a><span class="lineno">  855</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l00856"></a><span class="lineno">  856</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p3 in watson_dhvap is not a constant&quot;</span>);</div><div class="line"><a name="l00857"></a><span class="lineno">  857</span>&#160;        }</div><div class="line"><a name="l00858"></a><span class="lineno">  858</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;4&gt;()).cst()) {</div><div class="line"><a name="l00859"></a><span class="lineno">  859</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p4 in watson_dhvap is not a constant&quot;</span>);</div><div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160;        }</div><div class="line"><a name="l00861"></a><span class="lineno">  861</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;5&gt;()).cst()) {</div><div class="line"><a name="l00862"></a><span class="lineno">  862</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p5 in watson_dhvap is not a constant&quot;</span>);</div><div class="line"><a name="l00863"></a><span class="lineno">  863</span>&#160;        }</div><div class="line"><a name="l00864"></a><span class="lineno">  864</span>&#160;        <span class="comment">// watson_dhvap = type 1</span></div><div class="line"><a name="l00865"></a><span class="lineno">  865</span>&#160;        <span class="keywordflow">return</span> mc::enthalpy_of_vaporization(dispatch(node-&gt;get_child&lt;0&gt;()), 1, dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l00866"></a><span class="lineno">  866</span>&#160;                                            dispatch(node-&gt;get_child&lt;3&gt;()).num().val(), dispatch(node-&gt;get_child&lt;4&gt;()).num().val(), dispatch(node-&gt;get_child&lt;5&gt;()).num().val());</div><div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160;    }</div><div class="line"><a name="l00868"></a><span class="lineno">  868</span>&#160;</div><div class="line"><a name="l00869"></a><span class="lineno">  869</span>&#160;</div><div class="line"><a name="l00870"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#af3ca56408e5353f5034379f22e9c5f27">  870</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#af3ca56408e5353f5034379f22e9c5f27">operator()</a>(dippr106_dhvap_node* node)</div><div class="line"><a name="l00871"></a><span class="lineno">  871</span>&#160;    {</div><div class="line"><a name="l00872"></a><span class="lineno">  872</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p1 in dippr106_dhvap is not a constant&quot;</span>);</div><div class="line"><a name="l00874"></a><span class="lineno">  874</span>&#160;        }</div><div class="line"><a name="l00875"></a><span class="lineno">  875</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00876"></a><span class="lineno">  876</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p2 in dippr106_dhvap is not a constant&quot;</span>);</div><div class="line"><a name="l00877"></a><span class="lineno">  877</span>&#160;        }</div><div class="line"><a name="l00878"></a><span class="lineno">  878</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l00879"></a><span class="lineno">  879</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p3 in dippr106_dhvap is not a constant&quot;</span>);</div><div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160;        }</div><div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;4&gt;()).cst()) {</div><div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p4 in dippr106_dhvap is not a constant&quot;</span>);</div><div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160;        }</div><div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;5&gt;()).cst()) {</div><div class="line"><a name="l00885"></a><span class="lineno">  885</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p5 in dippr106_dhvap is not a constant&quot;</span>);</div><div class="line"><a name="l00886"></a><span class="lineno">  886</span>&#160;        }</div><div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;6&gt;()).cst()) {</div><div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p6 in dippr106_dhvap is not a constant&quot;</span>);</div><div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160;        }</div><div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160;        <span class="comment">// dippr106_dhvap = type 2</span></div><div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;        <span class="keywordflow">return</span> mc::enthalpy_of_vaporization(dispatch(node-&gt;get_child&lt;0&gt;()), 2, dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160;                                            dispatch(node-&gt;get_child&lt;3&gt;()).num().val(), dispatch(node-&gt;get_child&lt;4&gt;()).num().val(), dispatch(node-&gt;get_child&lt;5&gt;()).num().val(),</div><div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;                                            dispatch(node-&gt;get_child&lt;6&gt;()).num().val());</div><div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;    }</div><div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;</div><div class="line"><a name="l00896"></a><span class="lineno">  896</span>&#160;</div><div class="line"><a name="l00897"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a6b720b79afa07ec215ff2ae7c8f6e37e">  897</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a6b720b79afa07ec215ff2ae7c8f6e37e">operator()</a>(cost_turton_node* node)</div><div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160;    {</div><div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00900"></a><span class="lineno">  900</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p1 in cost_turton is not a constant&quot;</span>);</div><div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;        }</div><div class="line"><a name="l00902"></a><span class="lineno">  902</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p2 in cost_turton is not a constant&quot;</span>);</div><div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160;        }</div><div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l00906"></a><span class="lineno">  906</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Parameter p3 in cost_turton is not a constant&quot;</span>);</div><div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160;        }</div><div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160;        <span class="comment">// cost_turton = type 1</span></div><div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;        <span class="keywordflow">return</span> mc::cost_function(dispatch(node-&gt;get_child&lt;0&gt;()), 1, dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l00910"></a><span class="lineno">  910</span>&#160;                                 dispatch(node-&gt;get_child&lt;3&gt;()).num().val());</div><div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;    }</div><div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160;</div><div class="line"><a name="l00913"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a1551aa4a7ce3f452f8635618a49a5266">  913</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a1551aa4a7ce3f452f8635618a49a5266">operator()</a>(covar_matern_1_node* node)</div><div class="line"><a name="l00914"></a><span class="lineno">  914</span>&#160;    {</div><div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160;        <span class="comment">// covar_matern_1 = type 1</span></div><div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;        <span class="keywordflow">return</span> mc::covariance_function(dispatch(node-&gt;get_child&lt;0&gt;()), 1);</div><div class="line"><a name="l00917"></a><span class="lineno">  917</span>&#160;    }</div><div class="line"><a name="l00918"></a><span class="lineno">  918</span>&#160;</div><div class="line"><a name="l00919"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a0dc466bd95d72232cac6ee6bf8728a2e">  919</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a0dc466bd95d72232cac6ee6bf8728a2e">operator()</a>(covar_matern_3_node* node)</div><div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160;    {</div><div class="line"><a name="l00921"></a><span class="lineno">  921</span>&#160;        <span class="comment">// covar_matern_3 = type 1</span></div><div class="line"><a name="l00922"></a><span class="lineno">  922</span>&#160;        <span class="keywordflow">return</span> mc::covariance_function(dispatch(node-&gt;get_child&lt;0&gt;()), 2);</div><div class="line"><a name="l00923"></a><span class="lineno">  923</span>&#160;    }</div><div class="line"><a name="l00924"></a><span class="lineno">  924</span>&#160;</div><div class="line"><a name="l00925"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a4c67cfa8ca5bf2793ef3b81e37853427">  925</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a4c67cfa8ca5bf2793ef3b81e37853427">operator()</a>(covar_matern_5_node* node)</div><div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160;    {</div><div class="line"><a name="l00927"></a><span class="lineno">  927</span>&#160;        <span class="comment">// covar_matern_5 = type 1</span></div><div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160;        <span class="keywordflow">return</span> mc::covariance_function(dispatch(node-&gt;get_child&lt;0&gt;()), 3);</div><div class="line"><a name="l00929"></a><span class="lineno">  929</span>&#160;    }</div><div class="line"><a name="l00930"></a><span class="lineno">  930</span>&#160;</div><div class="line"><a name="l00931"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a27403d7ebd0ba9c1c3763bd92bf76dd0">  931</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a27403d7ebd0ba9c1c3763bd92bf76dd0">operator()</a>(covar_sqrexp_node* node)</div><div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;    {</div><div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160;        <span class="comment">// covar_sqrexp = type 1</span></div><div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;        <span class="keywordflow">return</span> mc::covariance_function(dispatch(node-&gt;get_child&lt;0&gt;()), 4);</div><div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;    }</div><div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160;</div><div class="line"><a name="l00937"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#aa308ce0ebbd92b2d9a499c352248e54b">  937</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#aa308ce0ebbd92b2d9a499c352248e54b">operator()</a>(gpdf_node* node)</div><div class="line"><a name="l00938"></a><span class="lineno">  938</span>&#160;    {</div><div class="line"><a name="l00939"></a><span class="lineno">  939</span>&#160;        <span class="keywordflow">return</span> mc::gaussian_probability_density_function(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160;    }</div><div class="line"><a name="l00941"></a><span class="lineno">  941</span>&#160;</div><div class="line"><a name="l00942"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#aa7a1e7a8b70cb171f020cb61e7ef007a">  942</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#aa7a1e7a8b70cb171f020cb61e7ef007a">operator()</a>(nrtl_tau_node* node)</div><div class="line"><a name="l00943"></a><span class="lineno">  943</span>&#160;    {</div><div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Second argument in nrtl_tau is not a constant&quot;</span>);</div><div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;        }</div><div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Third argument in nrtl_tau is not a constant&quot;</span>);</div><div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;        }</div><div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Fourth argument in nrtl_tau is not a constant&quot;</span>);</div><div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;        }</div><div class="line"><a name="l00953"></a><span class="lineno">  953</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;4&gt;()).cst()) {</div><div class="line"><a name="l00954"></a><span class="lineno">  954</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Fifth argument in nrtl_tau is not a constant&quot;</span>);</div><div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160;        }</div><div class="line"><a name="l00956"></a><span class="lineno">  956</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="function_wrapper_8h.html#a8d1832b6e26bba0d76ead168b5260a77">mc::nrtl_tau</a>(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160;                            dispatch(node-&gt;get_child&lt;3&gt;()).num().val(), dispatch(node-&gt;get_child&lt;4&gt;()).num().val());</div><div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;    }</div><div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160;</div><div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160;</div><div class="line"><a name="l00961"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a031c984312a092292ba8e5faab96615f">  961</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a031c984312a092292ba8e5faab96615f">operator()</a>(nrtl_g_node* node)</div><div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;    {</div><div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Second argument in nrtl_g is not a constant&quot;</span>);</div><div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160;        }</div><div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Third argument in nrtl_g is not a constant&quot;</span>);</div><div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;        }</div><div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Fourth argument in nrtl_g is not a constant&quot;</span>);</div><div class="line"><a name="l00971"></a><span class="lineno">  971</span>&#160;        }</div><div class="line"><a name="l00972"></a><span class="lineno">  972</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;4&gt;()).cst()) {</div><div class="line"><a name="l00973"></a><span class="lineno">  973</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Fifth argument in nrtl_g is not a constant&quot;</span>);</div><div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160;        }</div><div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;5&gt;()).cst()) {</div><div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Sixth argument in nrtl_g is not a constant&quot;</span>);</div><div class="line"><a name="l00977"></a><span class="lineno">  977</span>&#160;        }</div><div class="line"><a name="l00978"></a><span class="lineno">  978</span>&#160;        <span class="keywordflow">return</span> mc::nrtl_G(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l00979"></a><span class="lineno">  979</span>&#160;                          dispatch(node-&gt;get_child&lt;3&gt;()).num().val(), dispatch(node-&gt;get_child&lt;4&gt;()).num().val(), dispatch(node-&gt;get_child&lt;5&gt;()).num().val());</div><div class="line"><a name="l00980"></a><span class="lineno">  980</span>&#160;    }</div><div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160;</div><div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160;</div><div class="line"><a name="l00983"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a2c96bb53c78b614fa21f09b34b06a240">  983</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a2c96bb53c78b614fa21f09b34b06a240">operator()</a>(nrtl_gtau_node* node)</div><div class="line"><a name="l00984"></a><span class="lineno">  984</span>&#160;    {</div><div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Second argument in nrtl_gtau is not a constant&quot;</span>);</div><div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;        }</div><div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Third argument in nrtl_gtau is not a constant&quot;</span>);</div><div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160;        }</div><div class="line"><a name="l00991"></a><span class="lineno">  991</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l00992"></a><span class="lineno">  992</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Fourth argument in nrtl_gtau is not a constant&quot;</span>);</div><div class="line"><a name="l00993"></a><span class="lineno">  993</span>&#160;        }</div><div class="line"><a name="l00994"></a><span class="lineno">  994</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;4&gt;()).cst()) {</div><div class="line"><a name="l00995"></a><span class="lineno">  995</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Fifth argument in nrtl_gtau is not a constant&quot;</span>);</div><div class="line"><a name="l00996"></a><span class="lineno">  996</span>&#160;        }</div><div class="line"><a name="l00997"></a><span class="lineno">  997</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;5&gt;()).cst()) {</div><div class="line"><a name="l00998"></a><span class="lineno">  998</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Sixth argument in nrtl_gtau is not a constant&quot;</span>);</div><div class="line"><a name="l00999"></a><span class="lineno">  999</span>&#160;        }</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;        <span class="keywordflow">return</span> mc::nrtl_Gtau(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;                             dispatch(node-&gt;get_child&lt;3&gt;()).num().val(), dispatch(node-&gt;get_child&lt;4&gt;()).num().val(), dispatch(node-&gt;get_child&lt;5&gt;()).num().val());</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;    }</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;</div><div class="line"><a name="l01005"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ab5756cf7f7eaf69bc3aba7e98bf5cb2f"> 1005</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ab5756cf7f7eaf69bc3aba7e98bf5cb2f">operator()</a>(nrtl_gdtau_node* node)</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;    {</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Second argument in nrtl_gdtau is not a constant&quot;</span>);</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;        }</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Third argument in nrtl_gdtau is not a constant&quot;</span>);</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;        }</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Fourth argument in nrtl_gdtau is not a constant&quot;</span>);</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;        }</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;4&gt;()).cst()) {</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Fifth argument in nrtl_gdtau is not a constant&quot;</span>);</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;        }</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;5&gt;()).cst()) {</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Sixth argument in nrtl_gdtau is not a constant&quot;</span>);</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;        }</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;        <span class="keywordflow">return</span> mc::nrtl_Gdtau(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;                              dispatch(node-&gt;get_child&lt;3&gt;()).num().val(), dispatch(node-&gt;get_child&lt;4&gt;()).num().val(), dispatch(node-&gt;get_child&lt;5&gt;()).num().val());</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;    }</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;</div><div class="line"><a name="l01027"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a1e9902a05a7ab138bcf8afbfe8f3b38c"> 1027</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a1e9902a05a7ab138bcf8afbfe8f3b38c">operator()</a>(nrtl_dgtau_node* node)</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;    {</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;1&gt;()).cst()) {</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Second argument in nrtl_dgtau is not a constant&quot;</span>);</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;        }</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;2&gt;()).cst()) {</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Third argument in nrtl_dgtau is not a constant&quot;</span>);</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;        }</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;3&gt;()).cst()) {</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Fourth argument in nrtl_dgtau is not a constant&quot;</span>);</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;        }</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;4&gt;()).cst()) {</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Fifth argument in nrtl_dgtau is not a constant&quot;</span>);</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;        }</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;        <span class="keywordflow">if</span> (!dispatch(node-&gt;get_child&lt;5&gt;()).cst()) {</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Sixth argument in nrtl_dgtau is not a constant&quot;</span>);</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;        }</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;        <span class="keywordflow">return</span> mc::nrtl_dGtau(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()).num().val(), dispatch(node-&gt;get_child&lt;2&gt;()).num().val(),</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;                              dispatch(node-&gt;get_child&lt;3&gt;()).num().val(), dispatch(node-&gt;get_child&lt;4&gt;()).num().val(), dispatch(node-&gt;get_child&lt;5&gt;()).num().val());</div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;    }</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;</div><div class="line"><a name="l01049"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#aa260a715d85bede7bf1358216a5612e5"> 1049</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#aa260a715d85bede7bf1358216a5612e5">operator()</a>(norm2_node* node)</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;    {</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;        <span class="keywordflow">return</span> mc::euclidean_norm_2d(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()));</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;    }</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;</div><div class="line"><a name="l01055"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#afeccf82551359ea4fd78e0421d5b0d9d"> 1055</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#afeccf82551359ea4fd78e0421d5b0d9d">operator()</a>(abs_node* node)</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;    {</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;        <span class="keywordflow">return</span> mc::fabs(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;    }</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;</div><div class="line"><a name="l01061"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a35b02acae9a26d0ce4582c6563bf4dcf"> 1061</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a35b02acae9a26d0ce4582c6563bf4dcf">operator()</a>(xabsx_node* node)</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;    {</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;        <span class="keywordflow">return</span> mc::fabsx_times_x(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;    }</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;</div><div class="line"><a name="l01067"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a61a1564a2c7d7c6c2b35c310eaec9194"> 1067</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a61a1564a2c7d7c6c2b35c310eaec9194">operator()</a>(xlogx_node* node)</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;    {</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;        <span class="keywordflow">return</span> mc::xlog(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;    }</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;</div><div class="line"><a name="l01073"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a2dbaa9c47035a9150d8c442ea7e90b1b"> 1073</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a2dbaa9c47035a9150d8c442ea7e90b1b">operator()</a>(cosh_node* node)</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;    {</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;        <span class="keywordflow">return</span> mc::cosh(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;    }</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;</div><div class="line"><a name="l01079"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a283892ea852d019132ca549048dc8ae9"> 1079</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a283892ea852d019132ca549048dc8ae9">operator()</a>(sinh_node* node)</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;    {</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;        <span class="keywordflow">return</span> mc::sinh(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;    }</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;</div><div class="line"><a name="l01085"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#abc322bed0d4f468566f79debecc7ad6a"> 1085</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#abc322bed0d4f468566f79debecc7ad6a">operator()</a>(tanh_node* node)</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;    {</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;        <span class="keywordflow">return</span> mc::tanh(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;    }</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;</div><div class="line"><a name="l01091"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a163893d7e2595d48b90be04de44c7061"> 1091</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a163893d7e2595d48b90be04de44c7061">operator()</a>(coth_node* node)</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;    {</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;        <span class="keywordflow">return</span> mc::coth(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;    }</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;</div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;</div><div class="line"><a name="l01097"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a6517c3ebb6d059284d6ecaf7840d29ba"> 1097</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a6517c3ebb6d059284d6ecaf7840d29ba">operator()</a>(acosh_node* node)</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;    {</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;        <span class="keywordflow">return</span> mc::Op&lt;mc::FFVar&gt;::acosh(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;    }</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;</div><div class="line"><a name="l01103"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ab341ee757f15b233e9e0f660c34db0da"> 1103</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ab341ee757f15b233e9e0f660c34db0da">operator()</a>(asinh_node* node)</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;    {</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;        <span class="keywordflow">return</span> mc::Op&lt;mc::FFVar&gt;::asinh(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;    }</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;</div><div class="line"><a name="l01109"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a08711d8a2b9de11b55a06d1eb2f42878"> 1109</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a08711d8a2b9de11b55a06d1eb2f42878">operator()</a>(atanh_node* node)</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;    {</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;        <span class="keywordflow">return</span> mc::Op&lt;mc::FFVar&gt;::atanh(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;    }</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;</div><div class="line"><a name="l01115"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a348178557f010db15a6eded737e23c89"> 1115</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a348178557f010db15a6eded737e23c89">operator()</a>(acoth_node* node)</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;    {</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;        <span class="keywordflow">return</span> mc::Op&lt;mc::FFVar&gt;::acoth(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;    }</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;</div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;</div><div class="line"><a name="l01121"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#aebc25e0d2231b4302278caa9aab888c3"> 1121</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#aebc25e0d2231b4302278caa9aab888c3">operator()</a>(erf_node* node)</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;    {</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;        <span class="keywordflow">return</span> mc::erf(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;    }</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;</div><div class="line"><a name="l01127"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a7673de1c345b61081ed47433f9b08af0"> 1127</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a7673de1c345b61081ed47433f9b08af0">operator()</a>(erfc_node* node)</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;    {</div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;        <span class="keywordflow">return</span> mc::erfc(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;    }</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;</div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;</div><div class="line"><a name="l01133"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a714981c9af175ff13728dbaa38cf77f5"> 1133</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a714981c9af175ff13728dbaa38cf77f5">operator()</a>(pos_node* node)</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;    {</div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;        <span class="keywordflow">return</span> mc::pos(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;    }</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;</div><div class="line"><a name="l01139"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a7b33a9063bc3277ebf7cbe26a40eed33"> 1139</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a7b33a9063bc3277ebf7cbe26a40eed33">operator()</a>(neg_node* node)</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;    {</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;        <span class="keywordflow">return</span> mc::neg(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;    }</div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;</div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;</div><div class="line"><a name="l01145"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ae71759bc3c5007aa5c5c5b2ebea96fde"> 1145</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ae71759bc3c5007aa5c5c5b2ebea96fde">operator()</a>(rlmtd_node* node)</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;    {</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;        <span class="keywordflow">return</span> mc::rlmtd(dispatch(node-&gt;get_child&lt;0&gt;()), dispatch(node-&gt;get_child&lt;1&gt;()));</div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;    }</div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;</div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;</div><div class="line"><a name="l01151"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a6925f0560f9a7fe3420eae4b24bea451"> 1151</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a6925f0560f9a7fe3420eae4b24bea451">operator()</a>(xexpy_node* node)</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;    {</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;        <span class="keywordflow">return</span> mc::expx_times_y(dispatch(node-&gt;get_child&lt;1&gt;()), dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;    }</div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;</div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;</div><div class="line"><a name="l01157"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a6ef677783d508a5856fe2096fa5d8770"> 1157</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a6ef677783d508a5856fe2096fa5d8770">operator()</a>(schroeder_ethanol_p_node* node)</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;    {</div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;        <span class="keywordflow">return</span> mc::p_sat_ethanol_schroeder(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;    }</div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;</div><div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;</div><div class="line"><a name="l01163"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ae6b3e2f4fa022cf02999b702886d31fc"> 1163</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ae6b3e2f4fa022cf02999b702886d31fc">operator()</a>(schroeder_ethanol_rhovap_node* node)</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;    {</div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;        <span class="keywordflow">return</span> mc::rho_vap_sat_ethanol_schroeder(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;    }</div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;</div><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;</div><div class="line"><a name="l01169"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a0e56aaa973cca94ba40aaa36a46762c6"> 1169</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a0e56aaa973cca94ba40aaa36a46762c6">operator()</a>(schroeder_ethanol_rholiq_node* node)</div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;    {</div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;        <span class="keywordflow">return</span> mc::rho_liq_sat_ethanol_schroeder(dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;    }</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;</div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160;</div><div class="line"><a name="l01175"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ac91a3285778e063fbfd98473222aeb1a"> 1175</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ac91a3285778e063fbfd98473222aeb1a">operator()</a>(mid_node* node)</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;    {</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;        <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> arg1 = dispatch(node-&gt;get_child&lt;0&gt;());</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;        <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> arg2 = dispatch(node-&gt;get_child&lt;1&gt;());</div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;        <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> arg3 = dispatch(node-&gt;get_child&lt;2&gt;());</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;        <span class="keywordflow">return</span> mc::min(mc::max(arg1, arg2), mc::min(mc::max(arg2, arg3), mc::max(arg3, arg1)));</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;    }</div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;</div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;</div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;    <span class="keyword">template</span> &lt;<span class="keyword">typename</span> TType&gt;</div><div class="line"><a name="l01185"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#aedadd4c9d55f27225e84c41b5e34a8c8"> 1185</a></span>&#160;    <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#aedadd4c9d55f27225e84c41b5e34a8c8">operator()</a>(sum_node&lt;TType&gt;* node)</div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;    {</div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;        <span class="keyword">auto</span> elements = dispatch(node-&gt;template get_child&lt;0&gt;());</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;        _symbols.push_scope();</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;        <a class="code" href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">Var</a> result = 0;</div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = elements.begin(); it != elements.end(); ++it) {</div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;            _symbols.define(node-&gt;name, <span class="keyword">new</span> parameter_symbol&lt;TType&gt;(node-&gt;name, *it));</div><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;            result += dispatch(node-&gt;template get_child&lt;1&gt;());</div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;        }</div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;        _symbols.pop_scope();</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;        <span class="keywordflow">return</span> result;</div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;    }</div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;</div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;</div><div class="line"><a name="l01199"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a258bac7136624bc05fc9aad23fcd2bae"> 1199</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a258bac7136624bc05fc9aad23fcd2bae">operator()</a>(negation_node* node)</div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;    {</div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Evaluated unsupported negation expression&quot;</span>);</div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a>();</div><div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;    }</div><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160;</div><div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160;</div><div class="line"><a name="l01206"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ad498ec5587d1e19ebf6cf9984e46b7ce"> 1206</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ad498ec5587d1e19ebf6cf9984e46b7ce">operator()</a>(equal_node&lt;real&lt;0&gt;&gt;* node)</div><div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160;    {</div><div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;        <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> result;</div><div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;        result.<a class="code" href="structmaingo_1_1_constraint_container.html#ad875878c83b9f5e2ab0ff68c7452a53e">eq</a>.push_back(dispatch(node-&gt;get_child&lt;0&gt;()) - dispatch(node-&gt;get_child&lt;1&gt;()));</div><div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;        <span class="keywordflow">return</span> result;</div><div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160;    }</div><div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;</div><div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160;</div><div class="line"><a name="l01214"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a84a7e6ac759e75188dcd33fed310f627"> 1214</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a84a7e6ac759e75188dcd33fed310f627">operator()</a>(less_node&lt;real&lt;0&gt;&gt;* node)</div><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;    {</div><div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Evaluated unsupported strict inequality expression&quot;</span>);</div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a>();</div><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160;    }</div><div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160;</div><div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160;</div><div class="line"><a name="l01221"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ac6be9f2eb4e5a95173b9990cf1d76ade"> 1221</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ac6be9f2eb4e5a95173b9990cf1d76ade">operator()</a>(less_equal_node&lt;real&lt;0&gt;&gt;* node)</div><div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160;    {</div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160;        <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> result;</div><div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160;        result.<a class="code" href="structmaingo_1_1_constraint_container.html#ac1b8182544f5f0fe5357d748b690dab2">ineq</a>.push_back(dispatch(node-&gt;get_child&lt;0&gt;()) - dispatch(node-&gt;get_child&lt;1&gt;()));</div><div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160;        <span class="keywordflow">return</span> result;</div><div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160;    }</div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;</div><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160;</div><div class="line"><a name="l01229"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ac958f70dbd1204a83b603ea0fde2c3eb"> 1229</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ac958f70dbd1204a83b603ea0fde2c3eb">operator()</a>(greater_node&lt;real&lt;0&gt;&gt;* node)</div><div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;    {</div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Evaluated unsupported strict inequality expression&quot;</span>);</div><div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a>();</div><div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160;    }</div><div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160;</div><div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160;</div><div class="line"><a name="l01236"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#aced0f321eb6c52625eaaf23ec1860c21"> 1236</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#aced0f321eb6c52625eaaf23ec1860c21">operator()</a>(greater_equal_node&lt;real&lt;0&gt;&gt;* node)</div><div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160;    {</div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;        <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> result;</div><div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160;        result.<a class="code" href="structmaingo_1_1_constraint_container.html#ac1b8182544f5f0fe5357d748b690dab2">ineq</a>.push_back(dispatch(node-&gt;get_child&lt;1&gt;()) - dispatch(node-&gt;get_child&lt;0&gt;()));</div><div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160;        <span class="keywordflow">return</span> result;</div><div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160;    }</div><div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160;</div><div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160;</div><div class="line"><a name="l01244"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a95861005344bd24f1d6fa640ff3f1705"> 1244</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a95861005344bd24f1d6fa640ff3f1705">operator()</a>(equal_node&lt;ale::index&lt;0&gt;&gt;* node)</div><div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160;    {</div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot; Error: MaingoEvaluator -- Evaluated unsupported index comparison expression&quot;</span>);</div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a>();</div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160;    }</div><div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160;</div><div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160;</div><div class="line"><a name="l01251"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a51845deccf33ee00ecac24bfb23536cd"> 1251</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a51845deccf33ee00ecac24bfb23536cd">operator()</a>(less_node&lt;ale::index&lt;0&gt;&gt;* node)</div><div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160;    {</div><div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Evaluated unsupported index comparison expression&quot;</span>);</div><div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a>();</div><div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160;    }</div><div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160;</div><div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160;</div><div class="line"><a name="l01258"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ac486f0a11622d88874ad9dbc32f7c199"> 1258</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ac486f0a11622d88874ad9dbc32f7c199">operator()</a>(less_equal_node&lt;ale::index&lt;0&gt;&gt;* node)</div><div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160;    {</div><div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Evaluated unsupported index comparison expression&quot;</span>);</div><div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a>();</div><div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160;    }</div><div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160;</div><div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160;</div><div class="line"><a name="l01265"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#affaae2ae54803baa45024d31b05eec55"> 1265</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#affaae2ae54803baa45024d31b05eec55">operator()</a>(greater_node&lt;ale::index&lt;0&gt;&gt;* node)</div><div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160;    {</div><div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Evaluated unsupported index comparison expression&quot;</span>);</div><div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a>();</div><div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160;    }</div><div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160;</div><div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160;</div><div class="line"><a name="l01272"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#aa85cfa020de772e6baefcd3f966531bb"> 1272</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#aa85cfa020de772e6baefcd3f966531bb">operator()</a>(greater_equal_node&lt;ale::index&lt;0&gt;&gt;* node)</div><div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160;    {</div><div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Evaluated unsupported index comparison expression&quot;</span>);</div><div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a>();</div><div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160;    }</div><div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160;</div><div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160;</div><div class="line"><a name="l01279"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a778b2f802db3ec8a15162c834f9cd24c"> 1279</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a778b2f802db3ec8a15162c834f9cd24c">operator()</a>(disjunction_node* node)</div><div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160;    {</div><div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Evaluated unsupported disjunction expression&quot;</span>);</div><div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a>();</div><div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160;    }</div><div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160;</div><div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160;</div><div class="line"><a name="l01286"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a9744f02a6a480e828154bc92af6e5a89"> 1286</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a9744f02a6a480e828154bc92af6e5a89">operator()</a>(conjunction_node* node)</div><div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160;    {</div><div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Evaluated unsupported conjunction expression&quot;</span>);</div><div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a>();</div><div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160;    }</div><div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160;</div><div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160;</div><div class="line"><a name="l01293"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a49f0a248a70b10ca4b9024b211b65a88"> 1293</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a49f0a248a70b10ca4b9024b211b65a88">operator()</a>(element_node* node)</div><div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160;    {</div><div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: MaingoEvaluator -- Evaluated unsupported general logical expression&quot;</span>);</div><div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a>();</div><div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160;    };</div><div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160;</div><div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160;</div><div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160;    <span class="keyword">template</span> &lt;<span class="keyword">typename</span> TType&gt;</div><div class="line"><a name="l01301"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#aa80cc4ed77e60745a289c4a7754d1aba"> 1301</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> <a class="code" href="classmaingo_1_1_maingo_evaluator.html#aa80cc4ed77e60745a289c4a7754d1aba">operator()</a>(forall_node&lt;TType&gt;* node)</div><div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;    {</div><div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160;        <a class="code" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> result;</div><div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;        <span class="keyword">auto</span> elements = dispatch(node-&gt;template get_child&lt;0&gt;());</div><div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;        _symbols.push_scope();</div><div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = elements.begin(); it != elements.end(); ++it) {</div><div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160;            _symbols.define(node-&gt;name, <span class="keyword">new</span> parameter_symbol&lt;TType&gt;(node-&gt;name, *it));</div><div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160;            <span class="keyword">auto</span> cons = dispatch(node-&gt;template get_child&lt;1&gt;());</div><div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160;            result.<a class="code" href="structmaingo_1_1_constraint_container.html#ad875878c83b9f5e2ab0ff68c7452a53e">eq</a>.insert(result.<a class="code" href="structmaingo_1_1_constraint_container.html#ad875878c83b9f5e2ab0ff68c7452a53e">eq</a>.end(), cons.eq.begin(), cons.eq.end());</div><div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160;            result.<a class="code" href="structmaingo_1_1_constraint_container.html#ac1b8182544f5f0fe5357d748b690dab2">ineq</a>.insert(result.<a class="code" href="structmaingo_1_1_constraint_container.html#ac1b8182544f5f0fe5357d748b690dab2">ineq</a>.end(), cons.ineq.begin(), cons.ineq.end());</div><div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160;        }</div><div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;        _symbols.pop_scope();</div><div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160;        <span class="keywordflow">return</span> result;</div><div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160;    }</div><div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l01318"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#ac3b368860bbe5327ccbf817365ca5279"> 1318</a></span>&#160;    symbol_table&amp; <a class="code" href="classmaingo_1_1_maingo_evaluator.html#ac3b368860bbe5327ccbf817365ca5279">_symbols</a>;                                 <span class="comment">/*&lt; symbol_table for symbol lookup*/</span></div><div class="line"><a name="l01319"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a857486607beb96bd9688982671f260aa"> 1319</a></span>&#160;    <span class="keyword">const</span> std::vector&lt;Var&gt;&amp; <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a857486607beb96bd9688982671f260aa">_variables</a>;                     <span class="comment">/*&lt; MAiNGO variable vector*/</span></div><div class="line"><a name="l01320"></a><span class="lineno"><a class="line" href="classmaingo_1_1_maingo_evaluator.html#a467265384252d1e9027dece7661976bb"> 1320</a></span>&#160;    <span class="keyword">const</span> std::unordered_map&lt;std::string, int&gt;&amp; <a class="code" href="classmaingo_1_1_maingo_evaluator.html#a467265384252d1e9027dece7661976bb">_positions</a>; <span class="comment">/*&lt; ALE symbol positions in MAiNGO variable vector*/</span></div><div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160;};</div><div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160;</div><div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160;</div><div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160;}    <span class="comment">// namespace maingo</span></div><div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ac3b368860bbe5327ccbf817365ca5279"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ac3b368860bbe5327ccbf817365ca5279">maingo::MaingoEvaluator::_symbols</a></div><div class="ttdeci">symbol_table &amp; _symbols</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1318</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a313d06a1b681bda32d1baaf73b4c1ae0"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a313d06a1b681bda32d1baaf73b4c1ae0">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(parameter_symbol&lt; real&lt; 0 &gt;&gt; *sym)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:192</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a9e5dbc374f5bd51ce3b4c7d00cdfa5f8"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a9e5dbc374f5bd51ce3b4c7d00cdfa5f8">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(set_min_node&lt; TType &gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:377</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a467265384252d1e9027dece7661976bb"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a467265384252d1e9027dece7661976bb">maingo::MaingoEvaluator::_positions</a></div><div class="ttdeci">const std::unordered_map&lt; std::string, int &gt; &amp; _positions</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1320</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a77f9255d62b085460410be784cbc9029"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a77f9255d62b085460410be784cbc9029">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(antoine_psat_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:623</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_aef325a790e281683bfe3e17160a07495"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#aef325a790e281683bfe3e17160a07495">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(sum_div_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:276</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a2c96bb53c78b614fa21f09b34b06a240"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a2c96bb53c78b614fa21f09b34b06a240">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(nrtl_gtau_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:983</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ae64d0f887011fb7b2f45f904b651212d"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ae64d0f887011fb7b2f45f904b651212d">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">tensor&lt; Var, IDim &gt; operator()(parameter_symbol&lt; real&lt; IDim &gt;&gt; *sym)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:184</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a14d44b2a4bfbb0a7c8abe784707c03d8"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a14d44b2a4bfbb0a7c8abe784707c03d8">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(addition_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:266</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ad4281e7a946eb516f8e361be386226ad"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ad4281e7a946eb516f8e361be386226ad">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(variable_symbol&lt; real&lt; 0 &gt;&gt; *sym)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:223</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_af8a35b9814e04b03b506911e89117630"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#af8a35b9814e04b03b506911e89117630">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(nasa9_hig_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:737</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ac91a3285778e063fbfd98473222aeb1a"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ac91a3285778e063fbfd98473222aeb1a">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(mid_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1175</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a1120421ca19b8fefd77ad0c67149ef5a"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a1120421ca19b8fefd77ad0c67149ef5a">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(expression_symbol&lt; boolean&lt; 0 &gt;&gt; *sym)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:235</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ae707063e517fbc96144557e22a18c2bd"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ae707063e517fbc96144557e22a18c2bd">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(aspen_hig_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:707</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_aedadd4c9d55f27225e84c41b5e34a8c8"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#aedadd4c9d55f27225e84c41b5e34a8c8">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(sum_node&lt; TType &gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1185</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a258bac7136624bc05fc9aad23fcd2bae"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a258bac7136624bc05fc9aad23fcd2bae">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(negation_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1199</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a0d18706b8c5403a359ae4fb3c4535dd8"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a0d18706b8c5403a359ae4fb3c4535dd8">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(ale::squash_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:526</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a27403d7ebd0ba9c1c3763bd92bf76dd0"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a27403d7ebd0ba9c1c3763bd92bf76dd0">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(covar_sqrexp_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:931</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a632562f52010db675b32172ba9b8f9f8"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a632562f52010db675b32172ba9b8f9f8">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(parameter_node&lt; real&lt; 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:166</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a21b576ce22533cc7cd433a5110e7d3e5"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a21b576ce22533cc7cd433a5110e7d3e5">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(tan_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:460</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a778b2f802db3ec8a15162c834f9cd24c"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a778b2f802db3ec8a15162c834f9cd24c">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(disjunction_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1279</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a51845deccf33ee00ecac24bfb23536cd"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a51845deccf33ee00ecac24bfb23536cd">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(less_node&lt; ale::index&lt; 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1251</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a9a60a214575eb25ae40706df9577dfcd"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a9a60a214575eb25ae40706df9577dfcd">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(multiplication_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:326</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a2dbaa9c47035a9150d8c442ea7e90b1b"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a2dbaa9c47035a9150d8c442ea7e90b1b">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(cosh_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1073</div></div>
+<div class="ttc" id="structmaingo_1_1_constraint_container_html_ad875878c83b9f5e2ab0ff68c7452a53e"><div class="ttname"><a href="structmaingo_1_1_constraint_container.html#ad875878c83b9f5e2ab0ff68c7452a53e">maingo::ConstraintContainer::eq</a></div><div class="ttdeci">std::vector&lt; Var &gt; eq</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:34</div></div>
+<div class="ttc" id="namespaceale_1_1util_html"><div class="ttname"><a href="namespaceale_1_1util.html">util</a></div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ae93e844c247f347914f8745238d9f12f"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ae93e844c247f347914f8745238d9f12f">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(ub_func_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:505</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ac958f70dbd1204a83b603ea0fde2c3eb"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ac958f70dbd1204a83b603ea0fde2c3eb">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(greater_node&lt; real&lt; 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1229</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ac1d0e8fb250f926a2d2af2211de283d3"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ac1d0e8fb250f926a2d2af2211de283d3">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(set_max_node&lt; TType &gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:398</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_aaaf0982bff30d6d269a986aa1f8d5fd3"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#aaaf0982bff30d6d269a986aa1f8d5fd3">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(cos_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:448</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a348178557f010db15a6eded737e23c89"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a348178557f010db15a6eded737e23c89">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(acoth_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1115</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a6b720b79afa07ec215ff2ae7c8f6e37e"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a6b720b79afa07ec215ff2ae7c8f6e37e">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(cost_turton_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:897</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_aa85cfa020de772e6baefcd3f966531bb"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#aa85cfa020de772e6baefcd3f966531bb">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(greater_equal_node&lt; ale::index&lt; 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1272</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a7529b1ae0a3303aaa6ccb92c6f67b08a"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a7529b1ae0a3303aaa6ccb92c6f67b08a">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(xlog_sum_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:301</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a283892ea852d019132ca549048dc8ae9"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a283892ea852d019132ca549048dc8ae9">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(sinh_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1079</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a62f29683214d92021c6d75c598f5ed9c"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a62f29683214d92021c6d75c598f5ed9c">maingo::MaingoEvaluator::dispatch</a></div><div class="ttdeci">Var dispatch(expression&lt; real&lt; 0 &gt;&gt; &amp;expr)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:67</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a857486607beb96bd9688982671f260aa"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a857486607beb96bd9688982671f260aa">maingo::MaingoEvaluator::_variables</a></div><div class="ttdeci">const std::vector&lt; Var &gt; &amp; _variables</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1319</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ac806eb4a69b3d31ee8930c575f9b5405"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ac806eb4a69b3d31ee8930c575f9b5405">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">tensor&lt; Var, IDim &gt; operator()(entry_node&lt; real&lt; IDim &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:242</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a031c984312a092292ba8e5faab96615f"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a031c984312a092292ba8e5faab96615f">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(nrtl_g_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:961</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a1fd539de40d9a846e3bc1a8d7319cd3c"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a1fd539de40d9a846e3bc1a8d7319cd3c">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(ale::af_ei_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:547</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_affaae2ae54803baa45024d31b05eec55"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#affaae2ae54803baa45024d31b05eec55">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(greater_node&lt; ale::index&lt; 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1265</div></div>
+<div class="ttc" id="structmaingo_1_1_constraint_container_html_ac1b8182544f5f0fe5357d748b690dab2"><div class="ttname"><a href="structmaingo_1_1_constraint_container.html#ac1b8182544f5f0fe5357d748b690dab2">maingo::ConstraintContainer::ineq</a></div><div class="ttdeci">std::vector&lt; Var &gt; ineq</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:35</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a8580e54b758078f424368157c9998177"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a8580e54b758078f424368157c9998177">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(bounding_func_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:514</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_afeccf82551359ea4fd78e0421d5b0d9d"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#afeccf82551359ea4fd78e0421d5b0d9d">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(abs_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1055</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a6925f0560f9a7fe3420eae4b24bea451"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a6925f0560f9a7fe3420eae4b24bea451">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(xexpy_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1151</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_aa7d7c8734d8a04afbad0c3dcccc0248c"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#aa7d7c8734d8a04afbad0c3dcccc0248c">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(exponentiation_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:336</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a1eb1cdd102a6fdbefefa99006bb14d98"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a1eb1cdd102a6fdbefefa99006bb14d98">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(constant_node&lt; boolean&lt; 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:149</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a1551aa4a7ce3f452f8635618a49a5266"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a1551aa4a7ce3f452f8635618a49a5266">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(covar_matern_1_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:913</div></div>
+<div class="ttc" id="structmaingo_1_1_constraint_container_html"><div class="ttname"><a href="structmaingo_1_1_constraint_container.html">maingo::ConstraintContainer</a></div><div class="ttdoc">Containter for constraint evaluation. </div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:33</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a3cc2929f387db7fa699e9a0fb7659f23"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a3cc2929f387db7fa699e9a0fb7659f23">maingo::MaingoEvaluator::dispatch</a></div><div class="ttdeci">set&lt; TType, 0 &gt;::basic_type dispatch(value_node&lt; set&lt; TType, 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:91</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a51dbeb4db4c48128191a4850893e54ec"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a51dbeb4db4c48128191a4850893e54ec">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(ale::regnormal_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:565</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_aa308ce0ebbd92b2d9a499c352248e54b"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#aa308ce0ebbd92b2d9a499c352248e54b">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(gpdf_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:937</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a94eb83d21f8727c36807e91b786e7ed0"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a94eb83d21f8727c36807e91b786e7ed0">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(nrtl_dtau_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:577</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a232490b0b1f7b0601343ec002fd461fb"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a232490b0b1f7b0601343ec002fd461fb">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">tensor&lt; Var, IDim &gt; operator()(parameter_node&lt; real&lt; IDim &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:157</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a6ef677783d508a5856fe2096fa5d8770"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a6ef677783d508a5856fe2096fa5d8770">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(schroeder_ethanol_p_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1157</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a7673de1c345b61081ed47433f9b08af0"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a7673de1c345b61081ed47433f9b08af0">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(erfc_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1127</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ab699cabd08e37c8f90b253b8410f3e03"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ab699cabd08e37c8f90b253b8410f3e03">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(expression_symbol&lt; real&lt; 0 &gt;&gt; *sym)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:229</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_aa268019790af86f24dd20e117e53601d"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#aa268019790af86f24dd20e117e53601d">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(arh_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:487</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ab341ee757f15b233e9e0f660c34db0da"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ab341ee757f15b233e9e0f660c34db0da">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(asinh_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1103</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ae6b3e2f4fa022cf02999b702886d31fc"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ae6b3e2f4fa022cf02999b702886d31fc">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(schroeder_ethanol_rhovap_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1163</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a84a7e6ac759e75188dcd33fed310f627"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a84a7e6ac759e75188dcd33fed310f627">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(less_node&lt; real&lt; 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1214</div></div>
+<div class="ttc" id="namespacemaingo_html_af5ee07a403d9ee6e7075d41518d93f77"><div class="ttname"><a href="namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77">maingo::Var</a></div><div class="ttdeci">mc::FFVar Var</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:27</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a9744f02a6a480e828154bc92af6e5a89"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a9744f02a6a480e828154bc92af6e5a89">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(conjunction_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1286</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_aa7a1e7a8b70cb171f020cb61e7ef007a"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#aa7a1e7a8b70cb171f020cb61e7ef007a">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(nrtl_tau_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:942</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html">maingo::MaingoEvaluator</a></div><div class="ttdoc">Evaluates ALE expressions to Var. </div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:42</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a4f5be3d4ae94197d759efb3cea878f66"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a4f5be3d4ae94197d759efb3cea878f66">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(watson_dhvap_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:847</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_aa260a715d85bede7bf1358216a5612e5"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#aa260a715d85bede7bf1358216a5612e5">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(norm2_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1049</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a163893d7e2595d48b90be04de44c7061"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a163893d7e2595d48b90be04de44c7061">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(coth_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1091</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_aced0f321eb6c52625eaaf23ec1860c21"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#aced0f321eb6c52625eaaf23ec1860c21">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(greater_equal_node&lt; real&lt; 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1236</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a6fbb9286991e1487d9eb2e69044d3e05"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a6fbb9286991e1487d9eb2e69044d3e05">maingo::MaingoEvaluator::dispatch</a></div><div class="ttdeci">TReturn dispatch(value_node&lt; TType &gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:78</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ab6c947dfb36b02d479c6aa3e68a062bb"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ab6c947dfb36b02d479c6aa3e68a062bb">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(antoine_tsat_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:830</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a8db905522b621724e056807193a361ed"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a8db905522b621724e056807193a361ed">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(parameter_node&lt; boolean&lt; 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:176</div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a7b33a9063bc3277ebf7cbe26a40eed33"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a7b33a9063bc3277ebf7cbe26a40eed33">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(neg_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1139</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_acd5e6660b34c3fb57dc4e4a597cc3246"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#acd5e6660b34c3fb57dc4e4a597cc3246">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(lb_func_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:496</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_af382e6992b13663334e0ba4644020cd1"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#af382e6992b13663334e0ba4644020cd1">maingo::MaingoEvaluator::dispatch</a></div><div class="ttdeci">Var dispatch(value_node&lt; real&lt; 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:105</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a2c93ca479683e45af6dc24953434cf05"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a2c93ca479683e45af6dc24953434cf05">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(inverse_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:260</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a8d9966ebe96ee46c9485972573b72599"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a8d9966ebe96ee46c9485972573b72599">maingo::MaingoEvaluator::dispatch</a></div><div class="ttdeci">ale::index&lt; IDim &gt;::ref_type dispatch(value_node&lt; ale::index&lt; IDim &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:84</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ac6be9f2eb4e5a95173b9990cf1d76ade"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ac6be9f2eb4e5a95173b9990cf1d76ade">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(less_equal_node&lt; real&lt; 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1221</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a1027a0674db3d2b20cb8b5a3e8175468"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a1027a0674db3d2b20cb8b5a3e8175468">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(atan_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:466</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a6d55b4a02a1dfddc06cb0f394184063f"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a6d55b4a02a1dfddc06cb0f394184063f">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(dippr127_hig_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:797</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a35b02acae9a26d0ce4582c6563bf4dcf"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a35b02acae9a26d0ce4582c6563bf4dcf">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(xabsx_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1061</div></div>
+<div class="ttc" id="_m_ai_n_g_o_exception_8h_html"><div class="ttname"><a href="_m_ai_n_g_o_exception_8h.html">MAiNGOException.h</a></div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_af3ca56408e5353f5034379f22e9c5f27"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#af3ca56408e5353f5034379f22e9c5f27">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(dippr106_dhvap_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:870</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a189928b722ebcd7c497932dcc8c3f0bb"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a189928b722ebcd7c497932dcc8c3f0bb">maingo::MaingoEvaluator::dispatch</a></div><div class="ttdeci">ConstraintContainer dispatch(expression&lt; boolean&lt; 0 &gt;&gt; &amp;expr)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:72</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_abc322bed0d4f468566f79debecc7ad6a"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#abc322bed0d4f468566f79debecc7ad6a">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(tanh_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1085</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a741318a5ea6c313146b9370e5a77741f"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a741318a5ea6c313146b9370e5a77741f">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(log_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:424</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a0e56aaa973cca94ba40aaa36a46762c6"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a0e56aaa973cca94ba40aaa36a46762c6">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(schroeder_ethanol_rholiq_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1169</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a61a1564a2c7d7c6c2b35c310eaec9194"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a61a1564a2c7d7c6c2b35c310eaec9194">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(xlogx_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1067</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a5ef7cf61b17720593357de03c2e07837"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a5ef7cf61b17720593357de03c2e07837">maingo::MaingoEvaluator::dispatch</a></div><div class="ttdeci">Var dispatch(value_symbol&lt; real&lt; 0 &gt;&gt; *sym)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:123</div></div>
+<div class="ttc" id="function_wrapper_8h_html_a8d1832b6e26bba0d76ead168b5260a77"><div class="ttname"><a href="function_wrapper_8h.html#a8d1832b6e26bba0d76ead168b5260a77">nrtl_tau</a></div><div class="ttdeci">mc::FFVar nrtl_tau(const mc::FFVar &amp;T, const std::vector&lt; double &gt; p)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:200</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a72f7201c2d261bd4a9848567bc15b82e"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a72f7201c2d261bd4a9848567bc15b82e">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(xexpax_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:478</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a0dc466bd95d72232cac6ee6bf8728a2e"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a0dc466bd95d72232cac6ee6bf8728a2e">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(covar_matern_3_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:919</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ad498ec5587d1e19ebf6cf9984e46b7ce"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ad498ec5587d1e19ebf6cf9984e46b7ce">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(equal_node&lt; real&lt; 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1206</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a8ad6bd708e1a633daf74931f0f2b6b13"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a8ad6bd708e1a633daf74931f0f2b6b13">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(min_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:346</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a704a43ae1089dabde8ae3fedb4e7e91c"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a704a43ae1089dabde8ae3fedb4e7e91c">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(lmtd_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:472</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ae450535b9b4b29e3467b75b68caf06ec"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ae450535b9b4b29e3467b75b68caf06ec">maingo::MaingoEvaluator::dispatch</a></div><div class="ttdeci">ConstraintContainer dispatch(value_node&lt; boolean&lt; 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:111</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a24dab2d1d77aebdf8732fb679ab20a6c"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a24dab2d1d77aebdf8732fb679ab20a6c">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(sqrt_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:430</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a95861005344bd24f1d6fa640ff3f1705"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a95861005344bd24f1d6fa640ff3f1705">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(equal_node&lt; ale::index&lt; 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1244</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a49f0a248a70b10ca4b9024b211b65a88"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a49f0a248a70b10ca4b9024b211b65a88">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(element_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1293</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a6517c3ebb6d059284d6ecaf7840d29ba"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a6517c3ebb6d059284d6ecaf7840d29ba">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(acosh_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1097</div></div>
+<div class="ttc" id="function_wrapper_8h_html_af7f639d12a57ad25c80a3e4a0a15def6"><div class="ttname"><a href="function_wrapper_8h.html#af7f639d12a57ad25c80a3e4a0a15def6">nrtl_dtau</a></div><div class="ttdeci">mc::FFVar nrtl_dtau(const mc::FFVar &amp;T, const std::vector&lt; double &gt; p)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:207</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a08711d8a2b9de11b55a06d1eb2f42878"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a08711d8a2b9de11b55a06d1eb2f42878">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(atanh_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1109</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a1d42b0997bcaebb756c432f50ab6d408"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a1d42b0997bcaebb756c432f50ab6d408">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(dippr107_hig_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:770</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a1e9902a05a7ab138bcf8afbfe8f3b38c"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a1e9902a05a7ab138bcf8afbfe8f3b38c">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(nrtl_dgtau_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1027</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ae71759bc3c5007aa5c5c5b2ebea96fde"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ae71759bc3c5007aa5c5c5b2ebea96fde">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(rlmtd_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1145</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_aba0042d5950c2d3af0e2a2b721bc5a93"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#aba0042d5950c2d3af0e2a2b721bc5a93">maingo::MaingoEvaluator::MaingoEvaluator</a></div><div class="ttdeci">MaingoEvaluator(symbol_table &amp;symbols, const std::vector&lt; Var &gt; &amp;variables, const std::unordered_map&lt; std::string, int &gt; &amp;positions)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:52</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a2a8d0c06f3f8c10c75f83fdfa4d5864f"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a2a8d0c06f3f8c10c75f83fdfa4d5864f">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(ik_cape_psat_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:667</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_aa80cc4ed77e60745a289c4a7754d1aba"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#aa80cc4ed77e60745a289c4a7754d1aba">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(forall_node&lt; TType &gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1301</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a4c67cfa8ca5bf2793ef3b81e37853427"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a4c67cfa8ca5bf2793ef3b81e37853427">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(covar_matern_5_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:925</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_af49e6aba43ce791131d18346111523a1"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#af49e6aba43ce791131d18346111523a1">maingo::MaingoEvaluator::dispatch</a></div><div class="ttdeci">tensor&lt; Var, IDim &gt; dispatch(value_symbol&lt; real&lt; IDim &gt;&gt; *sym)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:118</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_exception_html"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o_exception.html">maingo::MAiNGOException</a></div><div class="ttdoc">This class defines the exceptions thrown by MAiNGO. </div><div class="ttdef"><b>Definition:</b> MAiNGOException.h:35</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ad02f330ab99494a3d3ede57d86626f5d"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ad02f330ab99494a3d3ede57d86626f5d">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(max_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:361</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a6c4708474d08fcb76fd7dfce2a1a03cb"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a6c4708474d08fcb76fd7dfce2a1a03cb">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(asin_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:442</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ac486f0a11622d88874ad9dbc32f7c199"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ac486f0a11622d88874ad9dbc32f7c199">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">ConstraintContainer operator()(less_equal_node&lt; ale::index&lt; 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1258</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ab5756cf7f7eaf69bc3aba7e98bf5cb2f"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ab5756cf7f7eaf69bc3aba7e98bf5cb2f">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(nrtl_gdtau_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1005</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ab7c1fc07e79504989e5a41dfbfa44912"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ab7c1fc07e79504989e5a41dfbfa44912">maingo::MaingoEvaluator::dispatch</a></div><div class="ttdeci">tensor&lt; Var, IDim &gt; dispatch(value_node&lt; real&lt; IDim &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:99</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a31bd4e5857f2eeb30cc919dfdda17bf8"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a31bd4e5857f2eeb30cc919dfdda17bf8">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(minus_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:254</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a0ba00f6e3f0c57560cc4385382f90041"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a0ba00f6e3f0c57560cc4385382f90041">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(entry_node&lt; real&lt; 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:248</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a97099c993ba68c78fcda43917a89d6aa"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a97099c993ba68c78fcda43917a89d6aa">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(ale::af_lcb_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:538</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_ac24478492893dbb5575bfae77ad2e3d6"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#ac24478492893dbb5575bfae77ad2e3d6">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(exp_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:418</div></div>
+<div class="ttc" id="namespaceale_html"><div class="ttname"><a href="namespaceale.html">ale</a></div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_aa01d67f98a790198ae94253cdac6663d"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#aa01d67f98a790198ae94253cdac6663d">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(sin_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:436</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a11edbd2e3bfa2eb751ad55d0676630a6"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a11edbd2e3bfa2eb751ad55d0676630a6">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(ale::af_pi_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:556</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a6fc97c4d18c62acaba6353636a277fcf"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a6fc97c4d18c62acaba6353636a277fcf">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(ext_antoine_psat_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:593</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_aebe214bf52d3d9054561dbd279ea630e"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#aebe214bf52d3d9054561dbd279ea630e">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(constant_node&lt; real&lt; 0 &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:143</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a16353f72cbe6a6857f94eeb0a2a8ca2e"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a16353f72cbe6a6857f94eeb0a2a8ca2e">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">tensor&lt; Var, IDim &gt; operator()(constant_node&lt; real&lt; IDim &gt;&gt; *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:135</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a10b29d970cca4412cdf09ee3d38bbf3a"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a10b29d970cca4412cdf09ee3d38bbf3a">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(acos_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:454</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_aebc25e0d2231b4302278caa9aab888c3"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#aebc25e0d2231b4302278caa9aab888c3">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(erf_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1121</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_aeed3a236612945d6ccc2918b4b200485"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#aeed3a236612945d6ccc2918b4b200485">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(wagner_psat_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:640</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a4f675a797c18eaf2fd523a4f559313d9"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a4f675a797c18eaf2fd523a4f559313d9">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">tensor&lt; Var, IDim &gt; operator()(variable_symbol&lt; real&lt; IDim &gt;&gt; *sym)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:199</div></div>
+<div class="ttc" id="classmaingo_1_1_maingo_evaluator_html_a714981c9af175ff13728dbaa38cf77f5"><div class="ttname"><a href="classmaingo_1_1_maingo_evaluator.html#a714981c9af175ff13728dbaa38cf77f5">maingo::MaingoEvaluator::operator()</a></div><div class="ttdeci">Var operator()(pos_node *node)</div><div class="ttdef"><b>Definition:</b> MAiNGOevaluator.h:1133</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -228,7 +230,7 @@ $(document).ready(function(){initNavTree('_m_ai_n_g_oevaluator_8h_source.html','
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="_m_ai_n_g_oevaluator_8h.html">MAiNGOevaluator.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/_m_ai_n_g_ogetter_functions_8cpp.html b/doc/html/_m_ai_n_g_ogetter_functions_8cpp.html
index 032e33b813ea6be01298ebbbc148a3140087424b..b56f1ad1b69f24f655e9182e9153d5430c3e3be3 100644
--- a/doc/html/_m_ai_n_g_ogetter_functions_8cpp.html
+++ b/doc/html/_m_ai_n_g_ogetter_functions_8cpp.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/src/MAiNGOgetterFunctions.cpp File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/src/MAiNGOgetterFunctions.cpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -91,8 +91,8 @@ $(document).ready(function(){initNavTree('_m_ai_n_g_ogetter_functions_8cpp.html'
 </div><!--header-->
 <div class="contents">
 <div class="textblock"><code>#include &quot;<a class="el" href="_m_ai_n_g_o_8h_source.html">MAiNGO.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_m_ai_n_g_o_exception_8h_source.html">MAiNGOException.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="bab_8h_source.html">bab.h</a>&quot;</code><br />
-<code>#include &quot;<a class="el" href="exceptions_8h_source.html">exceptions.h</a>&quot;</code><br />
 </div></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -101,7 +101,7 @@ $(document).ready(function(){initNavTree('_m_ai_n_g_ogetter_functions_8cpp.html'
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="_m_ai_n_g_ogetter_functions_8cpp.html">MAiNGOgetterFunctions.cpp</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/_m_ai_n_g_omodel_8h.html b/doc/html/_m_ai_n_g_omodel_8h.html
index d631975788fb5deb3829f4c3d131a2eeeeb96959..39a30e00a683d051887c6a3cb869fc9c089cd73c 100644
--- a/doc/html/_m_ai_n_g_omodel_8h.html
+++ b/doc/html/_m_ai_n_g_omodel_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/MAiNGOmodel.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/MAiNGOmodel.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -142,7 +142,7 @@ Variables</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="_m_ai_n_g_omodel_8h.html">MAiNGOmodel.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/_m_ai_n_g_omodel_8h_source.html b/doc/html/_m_ai_n_g_omodel_8h_source.html
index 8012a194d83fc03a82d21898424b98c1d9d1433d..c9b8eac5d70b9589528281ce8dc01b9df924e731 100644
--- a/doc/html/_m_ai_n_g_omodel_8h_source.html
+++ b/doc/html/_m_ai_n_g_omodel_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/MAiNGOmodel.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/MAiNGOmodel.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,31 +90,31 @@ $(document).ready(function(){initNavTree('_m_ai_n_g_omodel_8h_source.html','');}
 <div class="title">MAiNGOmodel.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="_m_ai_n_g_omodel_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file MAiNGOmodel.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing declaration of the MAiNGOmodel class that needs to be</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *        specialized when specifying models via the C++ API of MAiNGO.</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="evaluation_container_8h.html">evaluationContainer.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_opt_var_8h.html">babOptVar.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_utils_8h.html">babUtils.h</a>&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &quot;ffunc.hpp&quot;</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="function_wrapper_8h.html">functionWrapper.h</a>&quot;</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment">// Using declarations of all additional functions defined in MC++ for a comfortable use of these functions in the model</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="keyword">using</span> mc::acquisition_function;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="keyword">using</span> mc::arh;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="keyword">using</span> mc::bounding_func;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="keyword">using</span> mc::cost_function;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="keyword">using</span> mc::covariance_function;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="keyword">using</span> mc::enthalpy_of_vaporization;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="keyword">using</span> mc::euclidean_norm_2d;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keyword">using</span> mc::expx_times_y;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="keyword">using</span> mc::fabsx_times_x;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="keyword">using</span> mc::gaussian_probability_density_function;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="keyword">using</span> mc::iapws;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="keyword">using</span> mc::ideal_gas_enthalpy;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="keyword">using</span> mc::lb_func;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="keyword">using</span> mc::lmtd;</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="keyword">using</span> mc::mc_print;</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="keyword">using</span> mc::neg;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="keyword">using</span> mc::nrtl_dGtau;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="keyword">using</span> <a class="code" href="function_wrapper_8h.html#af7f639d12a57ad25c80a3e4a0a15def6">mc::nrtl_dtau</a>;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="keyword">using</span> mc::nrtl_G;</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="keyword">using</span> mc::nrtl_Gdtau;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="keyword">using</span> mc::nrtl_Gtau;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="keyword">using</span> <a class="code" href="function_wrapper_8h.html#a8d1832b6e26bba0d76ead168b5260a77">mc::nrtl_tau</a>;</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="keyword">using</span> mc::p_sat_ethanol_schroeder;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="keyword">using</span> mc::pos;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="keyword">using</span> mc::regnormal;</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="keyword">using</span> mc::rho_liq_sat_ethanol_schroeder;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="keyword">using</span> mc::rho_vap_sat_ethanol_schroeder;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="keyword">using</span> mc::rlmtd;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="keyword">using</span> mc::saturation_temperature;</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="keyword">using</span> mc::sqr;</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="keyword">using</span> mc::squash_node;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="keyword">using</span> mc::sum_div;</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="keyword">using</span> mc::ub_func;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="keyword">using</span> mc::vapor_pressure;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="keyword">using</span> mc::xexpax;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="keyword">using</span> mc::xlog;</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<span class="keyword">using</span> mc::xlog_sum;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="keyword">using</span> std::max;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="keyword">using</span> std::min;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="namespacemaingo.html#adf4533c14585b7b44a5849066d6637cc">   79</a></span>&#160;<span class="keyword">using</span> <a class="code" href="classbab_base_1_1_optimization_variable.html">OptimizationVariable</a> = <a class="code" href="namespacemaingo.html#adf4533c14585b7b44a5849066d6637cc">babBase::OptimizationVariable</a>; </div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a56be7240143795082f52dcb10cb2d1ba">   80</a></span>&#160;<span class="keyword">using</span> <a class="code" href="structbab_base_1_1_bounds.html">Bounds</a>               = <a class="code" href="namespacemaingo.html#a56be7240143795082f52dcb10cb2d1ba">babBase::Bounds</a>;               </div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a6754e89435e018272f9b618e78f255f0">   81</a></span>&#160;<span class="keyword">using</span> <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">VT</a>                   = <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">babBase::enums::VT</a>;            </div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a89cab929c81b85f38d710492c504a2aa">   82</a></span>&#160;constexpr <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">VT</a> <a class="code" href="namespacemaingo.html#a89cab929c81b85f38d710492c504a2aa">VT_CONTINUOUS</a> = <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48ba0b98d296343ee5946f17e4c1c2cfa1f7">babBase::enums::VT_CONTINUOUS</a>; </div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a2636675161b046fa4c46354e7496b821">   83</a></span>&#160;constexpr <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">VT</a> <a class="code" href="namespacemaingo.html#a2636675161b046fa4c46354e7496b821">VT_BINARY</a>     = <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48baeee7e08680959528bc9a9412081d5222">babBase::enums::VT_BINARY</a>;     </div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a041341062af0bec7f553f388a88f63fc">   84</a></span>&#160;constexpr <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">VT</a> <a class="code" href="namespacemaingo.html#a041341062af0bec7f553f388a88f63fc">VT_INTEGER</a>    = <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48babe2d3761c7831bdffa20a737d7c7f56e">babBase::enums::VT_INTEGER</a>;    </div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_omodel.html">   92</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1_m_ai_n_g_omodel.html">MAiNGOmodel</a> {</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_omodel.html#a8f7352764701bb71ca5845f354bfbd00">   95</a></span>&#160;    <span class="keyword">using</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel.html#a8f7352764701bb71ca5845f354bfbd00">Var</a> = mc::FFVar; </div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_omodel.html#ac1ff18446d407e6f663d4bf41fdb1003">  100</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel.html#ac1ff18446d407e6f663d4bf41fdb1003">~MAiNGOmodel</a>() {}</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="structmaingo_1_1_evaluation_container.html">EvaluationContainer</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel.html#a7a50f1c3477c117936d2b59876e608d6">evaluate</a>(<span class="keyword">const</span> std::vector&lt;Var&gt; &amp;optVars) = 0;</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    <span class="keyword">virtual</span> std::vector&lt;OptimizationVariable&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel.html#a9faead087bd24822a0d249e257b4df8d">get_variables</a>() = 0;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_omodel.html#a929215d08a5412b014d39fcda6e5d62a">  117</a></span>&#160;    <span class="keyword">virtual</span> std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel.html#a929215d08a5412b014d39fcda6e5d62a">get_initial_point</a>() { <span class="keywordflow">return</span> std::vector&lt;double&gt;(); }</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;};</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;}    <span class="comment">// namespace maingo</span></div><div class="ttc" id="namespacebab_base_1_1enums_html_a6b926f3dfa42fc3a3324c8b0ac99c48babe2d3761c7831bdffa20a737d7c7f56e"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48babe2d3761c7831bdffa20a737d7c7f56e">babBase::enums::VT_INTEGER</a></div><div class="ttdef"><b>Definition:</b> babOptVar.h:44</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_html_a7a50f1c3477c117936d2b59876e608d6"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel.html#a7a50f1c3477c117936d2b59876e608d6">maingo::MAiNGOmodel::evaluate</a></div><div class="ttdeci">virtual EvaluationContainer evaluate(const std::vector&lt; Var &gt; &amp;optVars)=0</div><div class="ttdoc">Virtual function which has to be implemented by the user in order to enable evaluation of the model.</div></div>
+<a href="_m_ai_n_g_omodel_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="evaluation_container_8h.html">evaluationContainer.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_opt_var_8h.html">babOptVar.h</a>&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_utils_8h.html">babUtils.h</a>&quot;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;ffunc.hpp&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="function_wrapper_8h.html">functionWrapper.h</a>&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment">// Using declarations of all additional functions defined in MC++ for a comfortable use of these functions in the model</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="keyword">using</span> mc::acquisition_function;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="keyword">using</span> mc::arh;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="keyword">using</span> mc::bounding_func;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="keyword">using</span> mc::cost_function;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="keyword">using</span> mc::covariance_function;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="keyword">using</span> mc::enthalpy_of_vaporization;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="keyword">using</span> mc::euclidean_norm_2d;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="keyword">using</span> mc::expx_times_y;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="keyword">using</span> mc::fabsx_times_x;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="keyword">using</span> mc::gaussian_probability_density_function;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="keyword">using</span> mc::iapws;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="keyword">using</span> mc::ideal_gas_enthalpy;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keyword">using</span> mc::lb_func;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="keyword">using</span> mc::lmtd;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="keyword">using</span> mc::mc_print;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="keyword">using</span> mc::neg;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="keyword">using</span> mc::nrtl_dGtau;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="keyword">using</span> <a class="code" href="function_wrapper_8h.html#af7f639d12a57ad25c80a3e4a0a15def6">mc::nrtl_dtau</a>;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="keyword">using</span> mc::nrtl_G;</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="keyword">using</span> mc::nrtl_Gdtau;</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="keyword">using</span> mc::nrtl_Gtau;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="keyword">using</span> <a class="code" href="function_wrapper_8h.html#a8d1832b6e26bba0d76ead168b5260a77">mc::nrtl_tau</a>;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="keyword">using</span> mc::p_sat_ethanol_schroeder;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="keyword">using</span> mc::pos;</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="keyword">using</span> mc::regnormal;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="keyword">using</span> mc::rho_liq_sat_ethanol_schroeder;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="keyword">using</span> mc::rho_vap_sat_ethanol_schroeder;</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="keyword">using</span> mc::rlmtd;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="keyword">using</span> mc::saturation_temperature;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="keyword">using</span> mc::sqr;</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="keyword">using</span> mc::squash_node;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="keyword">using</span> mc::sum_div;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="keyword">using</span> mc::ub_func;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="keyword">using</span> mc::vapor_pressure;</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="keyword">using</span> mc::xexpax;</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="keyword">using</span> mc::xlog;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="keyword">using</span> mc::xlog_sum;</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="keyword">using</span> std::max;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="keyword">using</span> std::min;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="namespacemaingo.html#adf4533c14585b7b44a5849066d6637cc">   74</a></span>&#160;<span class="keyword">using</span> <a class="code" href="classbab_base_1_1_optimization_variable.html">OptimizationVariable</a> = <a class="code" href="namespacemaingo.html#adf4533c14585b7b44a5849066d6637cc">babBase::OptimizationVariable</a>; </div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a56be7240143795082f52dcb10cb2d1ba">   75</a></span>&#160;<span class="keyword">using</span> <a class="code" href="structbab_base_1_1_bounds.html">Bounds</a>               = <a class="code" href="namespacemaingo.html#a56be7240143795082f52dcb10cb2d1ba">babBase::Bounds</a>;               </div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a6754e89435e018272f9b618e78f255f0">   76</a></span>&#160;<span class="keyword">using</span> <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">VT</a>                   = <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">babBase::enums::VT</a>;            </div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a89cab929c81b85f38d710492c504a2aa">   77</a></span>&#160;constexpr <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">VT</a> <a class="code" href="namespacemaingo.html#a89cab929c81b85f38d710492c504a2aa">VT_CONTINUOUS</a> = <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48ba0b98d296343ee5946f17e4c1c2cfa1f7">babBase::enums::VT_CONTINUOUS</a>; </div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a2636675161b046fa4c46354e7496b821">   78</a></span>&#160;constexpr <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">VT</a> <a class="code" href="namespacemaingo.html#a2636675161b046fa4c46354e7496b821">VT_BINARY</a>     = <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48baeee7e08680959528bc9a9412081d5222">babBase::enums::VT_BINARY</a>;     </div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a041341062af0bec7f553f388a88f63fc">   79</a></span>&#160;constexpr <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">VT</a> <a class="code" href="namespacemaingo.html#a041341062af0bec7f553f388a88f63fc">VT_INTEGER</a>    = <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48babe2d3761c7831bdffa20a737d7c7f56e">babBase::enums::VT_INTEGER</a>;    </div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_omodel.html">   87</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1_m_ai_n_g_omodel.html">MAiNGOmodel</a> {</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_omodel.html#a8f7352764701bb71ca5845f354bfbd00">   90</a></span>&#160;    <span class="keyword">using</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel.html#a8f7352764701bb71ca5845f354bfbd00">Var</a> = mc::FFVar; </div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_omodel.html#ac1ff18446d407e6f663d4bf41fdb1003">   95</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel.html#ac1ff18446d407e6f663d4bf41fdb1003">~MAiNGOmodel</a>() {}</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="structmaingo_1_1_evaluation_container.html">EvaluationContainer</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel.html#a7a50f1c3477c117936d2b59876e608d6">evaluate</a>(<span class="keyword">const</span> std::vector&lt;Var&gt; &amp;optVars) = 0;</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <span class="keyword">virtual</span> std::vector&lt;OptimizationVariable&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel.html#a9faead087bd24822a0d249e257b4df8d">get_variables</a>() = 0;</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_omodel.html#a929215d08a5412b014d39fcda6e5d62a">  112</a></span>&#160;    <span class="keyword">virtual</span> std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel.html#a929215d08a5412b014d39fcda6e5d62a">get_initial_point</a>() { <span class="keywordflow">return</span> std::vector&lt;double&gt;(); }</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;};</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;}    <span class="comment">// namespace maingo</span></div><div class="ttc" id="namespacebab_base_1_1enums_html_a6b926f3dfa42fc3a3324c8b0ac99c48babe2d3761c7831bdffa20a737d7c7f56e"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48babe2d3761c7831bdffa20a737d7c7f56e">babBase::enums::VT_INTEGER</a></div><div class="ttdef"><b>Definition:</b> babOptVar.h:46</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_html_a7a50f1c3477c117936d2b59876e608d6"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel.html#a7a50f1c3477c117936d2b59876e608d6">maingo::MAiNGOmodel::evaluate</a></div><div class="ttdeci">virtual EvaluationContainer evaluate(const std::vector&lt; Var &gt; &amp;optVars)=0</div><div class="ttdoc">Virtual function which has to be implemented by the user in order to enable evaluation of the model...</div></div>
 <div class="ttc" id="evaluation_container_8h_html"><div class="ttname"><a href="evaluation_container_8h.html">evaluationContainer.h</a></div></div>
-<div class="ttc" id="structbab_base_1_1_bounds_html"><div class="ttname"><a href="structbab_base_1_1_bounds.html">babBase::Bounds</a></div><div class="ttdoc">Auxiliary struct for representing bounds on an optimization variable.</div><div class="ttdef"><b>Definition:</b> babOptVar.h:57</div></div>
-<div class="ttc" id="namespacebab_base_1_1enums_html_a6b926f3dfa42fc3a3324c8b0ac99c48ba0b98d296343ee5946f17e4c1c2cfa1f7"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48ba0b98d296343ee5946f17e4c1c2cfa1f7">babBase::enums::VT_CONTINUOUS</a></div><div class="ttdef"><b>Definition:</b> babOptVar.h:41</div></div>
-<div class="ttc" id="classbab_base_1_1_optimization_variable_html"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></div><div class="ttdoc">Class for representing an optimization variable specified by the user.</div><div class="ttdef"><b>Definition:</b> babOptVar.h:100</div></div>
-<div class="ttc" id="namespacemaingo_html_a041341062af0bec7f553f388a88f63fc"><div class="ttname"><a href="namespacemaingo.html#a041341062af0bec7f553f388a88f63fc">maingo::VT_INTEGER</a></div><div class="ttdeci">constexpr VT VT_INTEGER</div><div class="ttdef"><b>Definition:</b> MAiNGOmodel.h:84</div></div>
-<div class="ttc" id="structmaingo_1_1_evaluation_container_html"><div class="ttname"><a href="structmaingo_1_1_evaluation_container.html">maingo::EvaluationContainer</a></div><div class="ttdoc">Struct for storing the values returned by model evaluation at the given point &quot;var&quot;.</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:192</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_html"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel.html">maingo::MAiNGOmodel</a></div><div class="ttdoc">This class is the base class for models to be solved by MAiNGO.</div><div class="ttdef"><b>Definition:</b> MAiNGOmodel.h:92</div></div>
-<div class="ttc" id="namespacemaingo_html_a89cab929c81b85f38d710492c504a2aa"><div class="ttname"><a href="namespacemaingo.html#a89cab929c81b85f38d710492c504a2aa">maingo::VT_CONTINUOUS</a></div><div class="ttdeci">constexpr VT VT_CONTINUOUS</div><div class="ttdef"><b>Definition:</b> MAiNGOmodel.h:82</div></div>
-<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO</div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_html_a8f7352764701bb71ca5845f354bfbd00"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel.html#a8f7352764701bb71ca5845f354bfbd00">maingo::MAiNGOmodel::Var</a></div><div class="ttdeci">mc::FFVar Var</div><div class="ttdef"><b>Definition:</b> MAiNGOmodel.h:95</div></div>
+<div class="ttc" id="structbab_base_1_1_bounds_html"><div class="ttname"><a href="structbab_base_1_1_bounds.html">babBase::Bounds</a></div><div class="ttdoc">Auxiliary struct for representing bounds on an optimization variable. </div><div class="ttdef"><b>Definition:</b> babBounds.h:32</div></div>
+<div class="ttc" id="namespacebab_base_1_1enums_html_a6b926f3dfa42fc3a3324c8b0ac99c48ba0b98d296343ee5946f17e4c1c2cfa1f7"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48ba0b98d296343ee5946f17e4c1c2cfa1f7">babBase::enums::VT_CONTINUOUS</a></div><div class="ttdef"><b>Definition:</b> babOptVar.h:44</div></div>
+<div class="ttc" id="classbab_base_1_1_optimization_variable_html"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></div><div class="ttdoc">Class for representing an optimization variable specified by the user. </div><div class="ttdef"><b>Definition:</b> babOptVar.h:60</div></div>
+<div class="ttc" id="namespacemaingo_html_a041341062af0bec7f553f388a88f63fc"><div class="ttname"><a href="namespacemaingo.html#a041341062af0bec7f553f388a88f63fc">maingo::VT_INTEGER</a></div><div class="ttdeci">constexpr VT VT_INTEGER</div><div class="ttdef"><b>Definition:</b> MAiNGOmodel.h:79</div></div>
+<div class="ttc" id="structmaingo_1_1_evaluation_container_html"><div class="ttname"><a href="structmaingo_1_1_evaluation_container.html">maingo::EvaluationContainer</a></div><div class="ttdoc">Struct for storing the values returned by model evaluation at the given point &quot;var&quot;. </div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:208</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_html"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel.html">maingo::MAiNGOmodel</a></div><div class="ttdoc">This class is the base class for models to be solved by MAiNGO. </div><div class="ttdef"><b>Definition:</b> MAiNGOmodel.h:87</div></div>
+<div class="ttc" id="namespacemaingo_html_a89cab929c81b85f38d710492c504a2aa"><div class="ttname"><a href="namespacemaingo.html#a89cab929c81b85f38d710492c504a2aa">maingo::VT_CONTINUOUS</a></div><div class="ttdeci">constexpr VT VT_CONTINUOUS</div><div class="ttdef"><b>Definition:</b> MAiNGOmodel.h:77</div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_html_a8f7352764701bb71ca5845f354bfbd00"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel.html#a8f7352764701bb71ca5845f354bfbd00">maingo::MAiNGOmodel::Var</a></div><div class="ttdeci">mc::FFVar Var</div><div class="ttdef"><b>Definition:</b> MAiNGOmodel.h:90</div></div>
 <div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_html_a9faead087bd24822a0d249e257b4df8d"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel.html#a9faead087bd24822a0d249e257b4df8d">maingo::MAiNGOmodel::get_variables</a></div><div class="ttdeci">virtual std::vector&lt; OptimizationVariable &gt; get_variables()=0</div><div class="ttdoc">Virtual function which has to be implemented by the user in order to enable getting data on optimizat...</div></div>
 <div class="ttc" id="bab_utils_8h_html"><div class="ttname"><a href="bab_utils_8h.html">babUtils.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_html_a929215d08a5412b014d39fcda6e5d62a"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel.html#a929215d08a5412b014d39fcda6e5d62a">maingo::MAiNGOmodel::get_initial_point</a></div><div class="ttdeci">virtual std::vector&lt; double &gt; get_initial_point()</div><div class="ttdoc">Virtual function which has to be implemented by the user in order to enable getting data on the initi...</div><div class="ttdef"><b>Definition:</b> MAiNGOmodel.h:117</div></div>
-<div class="ttc" id="function_wrapper_8h_html_a8d1832b6e26bba0d76ead168b5260a77"><div class="ttname"><a href="function_wrapper_8h.html#a8d1832b6e26bba0d76ead168b5260a77">nrtl_tau</a></div><div class="ttdeci">mc::FFVar nrtl_tau(const mc::FFVar &amp;T, const std::vector&lt; double &gt; p)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:206</div></div>
-<div class="ttc" id="function_wrapper_8h_html_af7f639d12a57ad25c80a3e4a0a15def6"><div class="ttname"><a href="function_wrapper_8h.html#af7f639d12a57ad25c80a3e4a0a15def6">nrtl_dtau</a></div><div class="ttdeci">mc::FFVar nrtl_dtau(const mc::FFVar &amp;T, const std::vector&lt; double &gt; p)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:213</div></div>
-<div class="ttc" id="namespacemaingo_html_adf4533c14585b7b44a5849066d6637cc"><div class="ttname"><a href="namespacemaingo.html#adf4533c14585b7b44a5849066d6637cc">maingo::OptimizationVariable</a></div><div class="ttdeci">babBase::OptimizationVariable OptimizationVariable</div><div class="ttdef"><b>Definition:</b> MAiNGOmodel.h:79</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_html_a929215d08a5412b014d39fcda6e5d62a"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel.html#a929215d08a5412b014d39fcda6e5d62a">maingo::MAiNGOmodel::get_initial_point</a></div><div class="ttdeci">virtual std::vector&lt; double &gt; get_initial_point()</div><div class="ttdoc">Virtual function which has to be implemented by the user in order to enable getting data on the initi...</div><div class="ttdef"><b>Definition:</b> MAiNGOmodel.h:112</div></div>
+<div class="ttc" id="function_wrapper_8h_html_a8d1832b6e26bba0d76ead168b5260a77"><div class="ttname"><a href="function_wrapper_8h.html#a8d1832b6e26bba0d76ead168b5260a77">nrtl_tau</a></div><div class="ttdeci">mc::FFVar nrtl_tau(const mc::FFVar &amp;T, const std::vector&lt; double &gt; p)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:200</div></div>
+<div class="ttc" id="function_wrapper_8h_html_af7f639d12a57ad25c80a3e4a0a15def6"><div class="ttname"><a href="function_wrapper_8h.html#af7f639d12a57ad25c80a3e4a0a15def6">nrtl_dtau</a></div><div class="ttdeci">mc::FFVar nrtl_dtau(const mc::FFVar &amp;T, const std::vector&lt; double &gt; p)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:207</div></div>
+<div class="ttc" id="namespacemaingo_html_adf4533c14585b7b44a5849066d6637cc"><div class="ttname"><a href="namespacemaingo.html#adf4533c14585b7b44a5849066d6637cc">maingo::OptimizationVariable</a></div><div class="ttdeci">babBase::OptimizationVariable OptimizationVariable</div><div class="ttdef"><b>Definition:</b> MAiNGOmodel.h:74</div></div>
 <div class="ttc" id="function_wrapper_8h_html"><div class="ttname"><a href="function_wrapper_8h.html">functionWrapper.h</a></div></div>
-<div class="ttc" id="namespacebab_base_1_1enums_html_a6b926f3dfa42fc3a3324c8b0ac99c48b"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">babBase::enums::VT</a></div><div class="ttdeci">VT</div><div class="ttdoc">Enum for representing the Variable Type of an optimization variable as specified by the user.</div><div class="ttdef"><b>Definition:</b> babOptVar.h:40</div></div>
-<div class="ttc" id="namespacemaingo_html_a2636675161b046fa4c46354e7496b821"><div class="ttname"><a href="namespacemaingo.html#a2636675161b046fa4c46354e7496b821">maingo::VT_BINARY</a></div><div class="ttdeci">constexpr VT VT_BINARY</div><div class="ttdef"><b>Definition:</b> MAiNGOmodel.h:83</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_html_ac1ff18446d407e6f663d4bf41fdb1003"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel.html#ac1ff18446d407e6f663d4bf41fdb1003">maingo::MAiNGOmodel::~MAiNGOmodel</a></div><div class="ttdeci">virtual ~MAiNGOmodel()</div><div class="ttdoc">Destructor.</div><div class="ttdef"><b>Definition:</b> MAiNGOmodel.h:100</div></div>
-<div class="ttc" id="namespacemaingo_html_a56be7240143795082f52dcb10cb2d1ba"><div class="ttname"><a href="namespacemaingo.html#a56be7240143795082f52dcb10cb2d1ba">maingo::Bounds</a></div><div class="ttdeci">babBase::Bounds Bounds</div><div class="ttdef"><b>Definition:</b> MAiNGOmodel.h:80</div></div>
+<div class="ttc" id="namespacebab_base_1_1enums_html_a6b926f3dfa42fc3a3324c8b0ac99c48b"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">babBase::enums::VT</a></div><div class="ttdeci">VT</div><div class="ttdoc">Enum for representing the Variable Type of an optimization variable as specified by the user...</div><div class="ttdef"><b>Definition:</b> babOptVar.h:43</div></div>
+<div class="ttc" id="namespacemaingo_html_a2636675161b046fa4c46354e7496b821"><div class="ttname"><a href="namespacemaingo.html#a2636675161b046fa4c46354e7496b821">maingo::VT_BINARY</a></div><div class="ttdeci">constexpr VT VT_BINARY</div><div class="ttdef"><b>Definition:</b> MAiNGOmodel.h:78</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_html_ac1ff18446d407e6f663d4bf41fdb1003"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel.html#ac1ff18446d407e6f663d4bf41fdb1003">maingo::MAiNGOmodel::~MAiNGOmodel</a></div><div class="ttdeci">virtual ~MAiNGOmodel()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> MAiNGOmodel.h:95</div></div>
+<div class="ttc" id="namespacemaingo_html_a56be7240143795082f52dcb10cb2d1ba"><div class="ttname"><a href="namespacemaingo.html#a56be7240143795082f52dcb10cb2d1ba">maingo::Bounds</a></div><div class="ttdeci">babBase::Bounds Bounds</div><div class="ttdef"><b>Definition:</b> MAiNGOmodel.h:75</div></div>
 <div class="ttc" id="bab_opt_var_8h_html"><div class="ttname"><a href="bab_opt_var_8h.html">babOptVar.h</a></div></div>
-<div class="ttc" id="namespacebab_base_1_1enums_html_a6b926f3dfa42fc3a3324c8b0ac99c48baeee7e08680959528bc9a9412081d5222"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48baeee7e08680959528bc9a9412081d5222">babBase::enums::VT_BINARY</a></div><div class="ttdef"><b>Definition:</b> babOptVar.h:43</div></div>
+<div class="ttc" id="namespacebab_base_1_1enums_html_a6b926f3dfa42fc3a3324c8b0ac99c48baeee7e08680959528bc9a9412081d5222"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48baeee7e08680959528bc9a9412081d5222">babBase::enums::VT_BINARY</a></div><div class="ttdef"><b>Definition:</b> babOptVar.h:45</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -123,7 +123,7 @@ $(document).ready(function(){initNavTree('_m_ai_n_g_omodel_8h_source.html','');}
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="_m_ai_n_g_omodel_8h.html">MAiNGOmodel.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/_m_ai_n_g_omodel_eps_con_8cpp.html b/doc/html/_m_ai_n_g_omodel_eps_con_8cpp.html
index b72313fc20e4bc26816e5e06366d153f40ed0e65..1455a276e37a77632fba69aa86a4233da00795ca 100644
--- a/doc/html/_m_ai_n_g_omodel_eps_con_8cpp.html
+++ b/doc/html/_m_ai_n_g_omodel_eps_con_8cpp.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/src/MAiNGOmodelEpsCon.cpp File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/src/MAiNGOmodelEpsCon.cpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -93,7 +93,7 @@ $(document).ready(function(){initNavTree('_m_ai_n_g_omodel_eps_con_8cpp.html',''
 </div><!--header-->
 <div class="contents">
 <div class="textblock"><code>#include &quot;<a class="el" href="_m_ai_n_g_omodel_eps_con_8h_source.html">MAiNGOmodelEpsCon.h</a>&quot;</code><br />
-<code>#include &quot;<a class="el" href="exceptions_8h_source.html">exceptions.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_m_ai_n_g_o_exception_8h_source.html">MAiNGOException.h</a>&quot;</code><br />
 <code>#include &lt;string&gt;</code><br />
 </div><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
@@ -110,7 +110,7 @@ Namespaces</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="_m_ai_n_g_omodel_eps_con_8cpp.html">MAiNGOmodelEpsCon.cpp</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/_m_ai_n_g_omodel_eps_con_8h.html b/doc/html/_m_ai_n_g_omodel_eps_con_8h.html
index e05748b02d99837684c64d7a89f77f5820e97078..7782a6a29d31c89bdcd9a43dc14903dc7603d273 100644
--- a/doc/html/_m_ai_n_g_omodel_eps_con_8h.html
+++ b/doc/html/_m_ai_n_g_omodel_eps_con_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/MAiNGOmodelEpsCon.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/MAiNGOmodelEpsCon.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -117,7 +117,7 @@ Namespaces</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="_m_ai_n_g_omodel_eps_con_8h.html">MAiNGOmodelEpsCon.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/_m_ai_n_g_omodel_eps_con_8h_source.html b/doc/html/_m_ai_n_g_omodel_eps_con_8h_source.html
index 33a6f1cd1bbabf7421cfddfa83dd4f33754b67ce..413001070db035779322b307794e1de1a1fe25a3 100644
--- a/doc/html/_m_ai_n_g_omodel_eps_con_8h_source.html
+++ b/doc/html/_m_ai_n_g_omodel_eps_con_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/MAiNGOmodelEpsCon.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/MAiNGOmodelEpsCon.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,22 +90,22 @@ $(document).ready(function(){initNavTree('_m_ai_n_g_omodel_eps_con_8h_source.htm
 <div class="title">MAiNGOmodelEpsCon.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="_m_ai_n_g_omodel_eps_con_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file MAiNGOmodelEpsCon.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing declaration of the MAiNGOmodelEpsCon class,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *        which specializes the MAiNGOmodel class for bi-objective problems</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *        to be solved with the epsilon-constraint method.</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_m_ai_n_g_omodel_8h.html">MAiNGOmodel.h</a>&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html">   36</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html">MAiNGOmodelEpsCon</a>: <span class="keyword">public</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel.html">MAiNGOmodel</a> {</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a0024c407e035cdadcf47b27e862b27ae">   42</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a0024c407e035cdadcf47b27e862b27ae">~MAiNGOmodelEpsCon</a>() {}</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="structmaingo_1_1_evaluation_container.html">EvaluationContainer</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a2f0d0fb0d9bc6abc37e3ba544612ef98">evaluate_user_model</a>(<span class="keyword">const</span> std::vector&lt;Var&gt; &amp;optVars) = 0;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    <span class="keyword">virtual</span> std::vector&lt;OptimizationVariable&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a5829ce6c25e38821c747faf90c5ffbbe">get_variables</a>() = 0;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    <a class="code" href="structmaingo_1_1_evaluation_container.html">EvaluationContainer</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#aa52fe81513f6d8f35020b3c492a5837d">evaluate</a>(<span class="keyword">const</span> std::vector&lt;Var&gt; &amp;optVars) <span class="keyword">final</span>;</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#af97462f303e12760d3bff115983515d4">   66</a></span>&#160;    <span class="keyword">virtual</span> std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#af97462f303e12760d3bff115983515d4">get_initial_point</a>() { <span class="keywordflow">return</span> std::vector&lt;double&gt;(); }</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a5999eaab9bb4b9c7dba95ed6553da048">   73</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a5999eaab9bb4b9c7dba95ed6553da048">set_epsilon</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;epsilon)</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    {</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;        <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#aee5a75bf580e8f53812e4698e9876b89">_epsilon</a> = epsilon;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    }</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#aef1305b0d90fe52fdd99b6545cf77755">   83</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#aef1305b0d90fe52fdd99b6545cf77755">set_objective_index</a>(<span class="keyword">const</span> <span class="keywordtype">size_t</span> objectiveIndex)</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    {</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a4c8484eaefea039156dceeac768e0996">_objectiveIndex</a> = objectiveIndex;</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    }</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a20ba39ce81ad97f3c58e1fa78c0356af">   93</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a20ba39ce81ad97f3c58e1fa78c0356af">set_single_objective</a>(<span class="keywordtype">bool</span> singleObjective)</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    {</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;        <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#ac35ec9e02499998423827310675309b6">_singleObjective</a> = singleObjective;</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    }</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#aee5a75bf580e8f53812e4698e9876b89">   99</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#aee5a75bf580e8f53812e4698e9876b89">_epsilon</a>; </div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a4c8484eaefea039156dceeac768e0996">  100</a></span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a4c8484eaefea039156dceeac768e0996">_objectiveIndex</a>;       </div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#ac35ec9e02499998423827310675309b6">  101</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#ac35ec9e02499998423827310675309b6">_singleObjective</a> = <span class="keyword">true</span>; </div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;};</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_eps_con_html_a20ba39ce81ad97f3c58e1fa78c0356af"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a20ba39ce81ad97f3c58e1fa78c0356af">maingo::MAiNGOmodelEpsCon::set_single_objective</a></div><div class="ttdeci">void set_single_objective(bool singleObjective)</div><div class="ttdoc">Function for setting the _singleObjective flag.</div><div class="ttdef"><b>Definition:</b> MAiNGOmodelEpsCon.h:93</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_eps_con_html"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html">maingo::MAiNGOmodelEpsCon</a></div><div class="ttdoc">This class is the base class for implementing bi-objective problems.</div><div class="ttdef"><b>Definition:</b> MAiNGOmodelEpsCon.h:36</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_eps_con_html_ac35ec9e02499998423827310675309b6"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#ac35ec9e02499998423827310675309b6">maingo::MAiNGOmodelEpsCon::_singleObjective</a></div><div class="ttdeci">bool _singleObjective</div><div class="ttdef"><b>Definition:</b> MAiNGOmodelEpsCon.h:101</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_eps_con_html_aa52fe81513f6d8f35020b3c492a5837d"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#aa52fe81513f6d8f35020b3c492a5837d">maingo::MAiNGOmodelEpsCon::evaluate</a></div><div class="ttdeci">EvaluationContainer evaluate(const std::vector&lt; Var &gt; &amp;optVars) final</div><div class="ttdoc">Virtual function which has to be implemented by the user in order to enable evaluation of the model.</div><div class="ttdef"><b>Definition:</b> MAiNGOmodelEpsCon.cpp:33</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_eps_con_html_af97462f303e12760d3bff115983515d4"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#af97462f303e12760d3bff115983515d4">maingo::MAiNGOmodelEpsCon::get_initial_point</a></div><div class="ttdeci">virtual std::vector&lt; double &gt; get_initial_point()</div><div class="ttdoc">Virtual function which has to be implemented by the user in order to enable getting data on the initi...</div><div class="ttdef"><b>Definition:</b> MAiNGOmodelEpsCon.h:66</div></div>
-<div class="ttc" id="structmaingo_1_1_evaluation_container_html"><div class="ttname"><a href="structmaingo_1_1_evaluation_container.html">maingo::EvaluationContainer</a></div><div class="ttdoc">Struct for storing the values returned by model evaluation at the given point &quot;var&quot;.</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:192</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_eps_con_html_a2f0d0fb0d9bc6abc37e3ba544612ef98"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a2f0d0fb0d9bc6abc37e3ba544612ef98">maingo::MAiNGOmodelEpsCon::evaluate_user_model</a></div><div class="ttdeci">virtual EvaluationContainer evaluate_user_model(const std::vector&lt; Var &gt; &amp;optVars)=0</div><div class="ttdoc">Virtual function which has to be implemented by the user in order to enable evaluation of the model.</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_html"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel.html">maingo::MAiNGOmodel</a></div><div class="ttdoc">This class is the base class for models to be solved by MAiNGO.</div><div class="ttdef"><b>Definition:</b> MAiNGOmodel.h:92</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_eps_con_html_a5999eaab9bb4b9c7dba95ed6553da048"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a5999eaab9bb4b9c7dba95ed6553da048">maingo::MAiNGOmodelEpsCon::set_epsilon</a></div><div class="ttdeci">void set_epsilon(const std::vector&lt; double &gt; &amp;epsilon)</div><div class="ttdoc">Function for changing the epsilon-parameters.</div><div class="ttdef"><b>Definition:</b> MAiNGOmodelEpsCon.h:73</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_eps_con_html_a4c8484eaefea039156dceeac768e0996"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a4c8484eaefea039156dceeac768e0996">maingo::MAiNGOmodelEpsCon::_objectiveIndex</a></div><div class="ttdeci">size_t _objectiveIndex</div><div class="ttdef"><b>Definition:</b> MAiNGOmodelEpsCon.h:100</div></div>
-<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO</div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
+<a href="_m_ai_n_g_omodel_eps_con_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_m_ai_n_g_omodel_8h.html">MAiNGOmodel.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html">   30</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html">MAiNGOmodelEpsCon</a>: <span class="keyword">public</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel.html">MAiNGOmodel</a> {</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a0024c407e035cdadcf47b27e862b27ae">   36</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a0024c407e035cdadcf47b27e862b27ae">~MAiNGOmodelEpsCon</a>() {}</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="structmaingo_1_1_evaluation_container.html">EvaluationContainer</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a2f0d0fb0d9bc6abc37e3ba544612ef98">evaluate_user_model</a>(<span class="keyword">const</span> std::vector&lt;Var&gt; &amp;optVars) = 0;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    <span class="keyword">virtual</span> std::vector&lt;OptimizationVariable&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a5829ce6c25e38821c747faf90c5ffbbe">get_variables</a>() = 0;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    <a class="code" href="structmaingo_1_1_evaluation_container.html">EvaluationContainer</a> <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#aa52fe81513f6d8f35020b3c492a5837d">evaluate</a>(<span class="keyword">const</span> std::vector&lt;Var&gt; &amp;optVars) <span class="keyword">final</span>;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#af97462f303e12760d3bff115983515d4">   60</a></span>&#160;    <span class="keyword">virtual</span> std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#af97462f303e12760d3bff115983515d4">get_initial_point</a>() { <span class="keywordflow">return</span> std::vector&lt;double&gt;(); }</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a5999eaab9bb4b9c7dba95ed6553da048">   67</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a5999eaab9bb4b9c7dba95ed6553da048">set_epsilon</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;epsilon)</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    {</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;        <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#aee5a75bf580e8f53812e4698e9876b89">_epsilon</a> = epsilon;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    }</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#aef1305b0d90fe52fdd99b6545cf77755">   77</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#aef1305b0d90fe52fdd99b6545cf77755">set_objective_index</a>(<span class="keyword">const</span> <span class="keywordtype">size_t</span> objectiveIndex)</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    {</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a4c8484eaefea039156dceeac768e0996">_objectiveIndex</a> = objectiveIndex;</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    }</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a20ba39ce81ad97f3c58e1fa78c0356af">   87</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a20ba39ce81ad97f3c58e1fa78c0356af">set_single_objective</a>(<span class="keywordtype">bool</span> singleObjective)</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    {</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;        <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#ac35ec9e02499998423827310675309b6">_singleObjective</a> = singleObjective;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    }</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#aee5a75bf580e8f53812e4698e9876b89">   93</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#aee5a75bf580e8f53812e4698e9876b89">_epsilon</a>; </div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a4c8484eaefea039156dceeac768e0996">   94</a></span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a4c8484eaefea039156dceeac768e0996">_objectiveIndex</a>;       </div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#ac35ec9e02499998423827310675309b6">   95</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#ac35ec9e02499998423827310675309b6">_singleObjective</a> = <span class="keyword">true</span>; </div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;};</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_eps_con_html_a20ba39ce81ad97f3c58e1fa78c0356af"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a20ba39ce81ad97f3c58e1fa78c0356af">maingo::MAiNGOmodelEpsCon::set_single_objective</a></div><div class="ttdeci">void set_single_objective(bool singleObjective)</div><div class="ttdoc">Function for setting the _singleObjective flag. </div><div class="ttdef"><b>Definition:</b> MAiNGOmodelEpsCon.h:87</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_eps_con_html"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html">maingo::MAiNGOmodelEpsCon</a></div><div class="ttdoc">This class is the base class for implementing bi-objective problems. </div><div class="ttdef"><b>Definition:</b> MAiNGOmodelEpsCon.h:30</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_eps_con_html_ac35ec9e02499998423827310675309b6"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#ac35ec9e02499998423827310675309b6">maingo::MAiNGOmodelEpsCon::_singleObjective</a></div><div class="ttdeci">bool _singleObjective</div><div class="ttdef"><b>Definition:</b> MAiNGOmodelEpsCon.h:95</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_eps_con_html_aa52fe81513f6d8f35020b3c492a5837d"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#aa52fe81513f6d8f35020b3c492a5837d">maingo::MAiNGOmodelEpsCon::evaluate</a></div><div class="ttdeci">EvaluationContainer evaluate(const std::vector&lt; Var &gt; &amp;optVars) final</div><div class="ttdoc">Virtual function which has to be implemented by the user in order to enable evaluation of the model...</div><div class="ttdef"><b>Definition:</b> MAiNGOmodelEpsCon.cpp:27</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_eps_con_html_af97462f303e12760d3bff115983515d4"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#af97462f303e12760d3bff115983515d4">maingo::MAiNGOmodelEpsCon::get_initial_point</a></div><div class="ttdeci">virtual std::vector&lt; double &gt; get_initial_point()</div><div class="ttdoc">Virtual function which has to be implemented by the user in order to enable getting data on the initi...</div><div class="ttdef"><b>Definition:</b> MAiNGOmodelEpsCon.h:60</div></div>
+<div class="ttc" id="structmaingo_1_1_evaluation_container_html"><div class="ttname"><a href="structmaingo_1_1_evaluation_container.html">maingo::EvaluationContainer</a></div><div class="ttdoc">Struct for storing the values returned by model evaluation at the given point &quot;var&quot;. </div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:208</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_eps_con_html_a2f0d0fb0d9bc6abc37e3ba544612ef98"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a2f0d0fb0d9bc6abc37e3ba544612ef98">maingo::MAiNGOmodelEpsCon::evaluate_user_model</a></div><div class="ttdeci">virtual EvaluationContainer evaluate_user_model(const std::vector&lt; Var &gt; &amp;optVars)=0</div><div class="ttdoc">Virtual function which has to be implemented by the user in order to enable evaluation of the model...</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_html"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel.html">maingo::MAiNGOmodel</a></div><div class="ttdoc">This class is the base class for models to be solved by MAiNGO. </div><div class="ttdef"><b>Definition:</b> MAiNGOmodel.h:87</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_eps_con_html_a5999eaab9bb4b9c7dba95ed6553da048"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a5999eaab9bb4b9c7dba95ed6553da048">maingo::MAiNGOmodelEpsCon::set_epsilon</a></div><div class="ttdeci">void set_epsilon(const std::vector&lt; double &gt; &amp;epsilon)</div><div class="ttdoc">Function for changing the epsilon-parameters. </div><div class="ttdef"><b>Definition:</b> MAiNGOmodelEpsCon.h:67</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_eps_con_html_a4c8484eaefea039156dceeac768e0996"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a4c8484eaefea039156dceeac768e0996">maingo::MAiNGOmodelEpsCon::_objectiveIndex</a></div><div class="ttdeci">size_t _objectiveIndex</div><div class="ttdef"><b>Definition:</b> MAiNGOmodelEpsCon.h:94</div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
 <div class="ttc" id="_m_ai_n_g_omodel_8h_html"><div class="ttname"><a href="_m_ai_n_g_omodel_8h.html">MAiNGOmodel.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_eps_con_html_a0024c407e035cdadcf47b27e862b27ae"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a0024c407e035cdadcf47b27e862b27ae">maingo::MAiNGOmodelEpsCon::~MAiNGOmodelEpsCon</a></div><div class="ttdeci">virtual ~MAiNGOmodelEpsCon()</div><div class="ttdoc">Destructor.</div><div class="ttdef"><b>Definition:</b> MAiNGOmodelEpsCon.h:42</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_eps_con_html_a0024c407e035cdadcf47b27e862b27ae"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a0024c407e035cdadcf47b27e862b27ae">maingo::MAiNGOmodelEpsCon::~MAiNGOmodelEpsCon</a></div><div class="ttdeci">virtual ~MAiNGOmodelEpsCon()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> MAiNGOmodelEpsCon.h:36</div></div>
 <div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_eps_con_html_a5829ce6c25e38821c747faf90c5ffbbe"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a5829ce6c25e38821c747faf90c5ffbbe">maingo::MAiNGOmodelEpsCon::get_variables</a></div><div class="ttdeci">virtual std::vector&lt; OptimizationVariable &gt; get_variables()=0</div><div class="ttdoc">Virtual function which has to be implemented by the user in order to enable getting data on optimizat...</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_eps_con_html_aee5a75bf580e8f53812e4698e9876b89"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#aee5a75bf580e8f53812e4698e9876b89">maingo::MAiNGOmodelEpsCon::_epsilon</a></div><div class="ttdeci">std::vector&lt; double &gt; _epsilon</div><div class="ttdef"><b>Definition:</b> MAiNGOmodelEpsCon.h:99</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_eps_con_html_aef1305b0d90fe52fdd99b6545cf77755"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#aef1305b0d90fe52fdd99b6545cf77755">maingo::MAiNGOmodelEpsCon::set_objective_index</a></div><div class="ttdeci">void set_objective_index(const size_t objectiveIndex)</div><div class="ttdoc">Function for setting the objective index.</div><div class="ttdef"><b>Definition:</b> MAiNGOmodelEpsCon.h:83</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_eps_con_html_aee5a75bf580e8f53812e4698e9876b89"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#aee5a75bf580e8f53812e4698e9876b89">maingo::MAiNGOmodelEpsCon::_epsilon</a></div><div class="ttdeci">std::vector&lt; double &gt; _epsilon</div><div class="ttdef"><b>Definition:</b> MAiNGOmodelEpsCon.h:93</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_eps_con_html_aef1305b0d90fe52fdd99b6545cf77755"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#aef1305b0d90fe52fdd99b6545cf77755">maingo::MAiNGOmodelEpsCon::set_objective_index</a></div><div class="ttdeci">void set_objective_index(const size_t objectiveIndex)</div><div class="ttdoc">Function for setting the objective index. </div><div class="ttdef"><b>Definition:</b> MAiNGOmodelEpsCon.h:77</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -114,7 +114,7 @@ $(document).ready(function(){initNavTree('_m_ai_n_g_omodel_eps_con_8h_source.htm
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="_m_ai_n_g_omodel_eps_con_8h.html">MAiNGOmodelEpsCon.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/_m_ai_n_g_oprinting_functions_8cpp.html b/doc/html/_m_ai_n_g_oprinting_functions_8cpp.html
index 7ed37ef0f82f5e5e74a8a3bfcfee792579c37580..2d79d757f1e7bc2c3ca27646cec65e18d551d304 100644
--- a/doc/html/_m_ai_n_g_oprinting_functions_8cpp.html
+++ b/doc/html/_m_ai_n_g_oprinting_functions_8cpp.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/src/MAiNGOprintingFunctions.cpp File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/src/MAiNGOprintingFunctions.cpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -91,8 +91,8 @@ $(document).ready(function(){initNavTree('_m_ai_n_g_oprinting_functions_8cpp.htm
 </div><!--header-->
 <div class="contents">
 <div class="textblock"><code>#include &quot;<a class="el" href="_m_ai_n_g_o_8h_source.html">MAiNGO.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_m_ai_n_g_o_exception_8h_source.html">MAiNGOException.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="bab_8h_source.html">bab.h</a>&quot;</code><br />
-<code>#include &quot;<a class="el" href="exceptions_8h_source.html">exceptions.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="get_time_8h_source.html">getTime.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="utilities_8h_source.html">utilities.h</a>&quot;</code><br />
 </div></div><!-- contents -->
@@ -103,7 +103,7 @@ $(document).ready(function(){initNavTree('_m_ai_n_g_oprinting_functions_8cpp.htm
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="_m_ai_n_g_oprinting_functions_8cpp.html">MAiNGOprintingFunctions.cpp</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/_m_ai_n_g_oread_settings_8cpp.html b/doc/html/_m_ai_n_g_oread_settings_8cpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..b9817b774c7d7d793ba6eb42459e39c81b2bc9c2
--- /dev/null
+++ b/doc/html/_m_ai_n_g_oread_settings_8cpp.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>MAiNGO: C:/dobo01/maingo/src/MAiNGOreadSettings.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(initResizable);
+/* @license-end */</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><img alt="Logo" src="mango_only.png"/></td>
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">MAiNGO
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(document).ready(function(){initNavTree('_m_ai_n_g_oread_settings_8cpp.html','');});
+/* @license-end */
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">MAiNGOreadSettings.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_m_ai_n_g_o_8h_source.html">MAiNGO.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="settings_8h_source.html">settings.h</a>&quot;</code><br />
+<code>#include &lt;fstream&gt;</code><br />
+<code>#include &lt;sstream&gt;</code><br />
+<code>#include &lt;string&gt;</code><br />
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="_m_ai_n_g_oread_settings_8cpp.html">MAiNGOreadSettings.cpp</a></li>
+    <li class="footer">Generated by
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/doc/html/_m_ai_n_g_oset_option_8cpp.html b/doc/html/_m_ai_n_g_oset_option_8cpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..c7c7e5bf63769a746f54847cb604fbe63e0b8268
--- /dev/null
+++ b/doc/html/_m_ai_n_g_oset_option_8cpp.html
@@ -0,0 +1,109 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>MAiNGO: C:/dobo01/maingo/src/MAiNGOsetOption.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(initResizable);
+/* @license-end */</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><img alt="Logo" src="mango_only.png"/></td>
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">MAiNGO
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(document).ready(function(){initNavTree('_m_ai_n_g_oset_option_8cpp.html','');});
+/* @license-end */
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">MAiNGOsetOption.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_m_ai_n_g_o_8h_source.html">MAiNGO.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="settings_8h_source.html">settings.h</a>&quot;</code><br />
+<code>#include &lt;limits&gt;</code><br />
+<code>#include &lt;string&gt;</code><br />
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="_m_ai_n_g_oset_option_8cpp.html">MAiNGOsetOption.cpp</a></li>
+    <li class="footer">Generated by
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/doc/html/_m_ai_n_g_oto_other_language_8cpp.html b/doc/html/_m_ai_n_g_oto_other_language_8cpp.html
index 8af13aa9b0ec0ce1059797b11c8cc166afab23eb..f0a88a49417ffdf22cb580fb335004ce6addbc8a 100644
--- a/doc/html/_m_ai_n_g_oto_other_language_8cpp.html
+++ b/doc/html/_m_ai_n_g_oto_other_language_8cpp.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/src/MAiNGOtoOtherLanguage.cpp File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/src/MAiNGOtoOtherLanguage.cpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -91,7 +91,7 @@ $(document).ready(function(){initNavTree('_m_ai_n_g_oto_other_language_8cpp.html
 </div><!--header-->
 <div class="contents">
 <div class="textblock"><code>#include &quot;<a class="el" href="_m_ai_n_g_o_8h_source.html">MAiNGO.h</a>&quot;</code><br />
-<code>#include &quot;<a class="el" href="exceptions_8h_source.html">exceptions.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_m_ai_n_g_o_exception_8h_source.html">MAiNGOException.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="utilities_8h_source.html">utilities.h</a>&quot;</code><br />
 <code>#include &quot;fftostring.hpp&quot;</code><br />
 <code>#include &lt;cctype&gt;</code><br />
@@ -106,7 +106,7 @@ $(document).ready(function(){initNavTree('_m_ai_n_g_oto_other_language_8cpp.html
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="_m_ai_n_g_oto_other_language_8cpp.html">MAiNGOtoOtherLanguage.cpp</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/_m_ai_n_g_owriting_functions_8cpp.html b/doc/html/_m_ai_n_g_owriting_functions_8cpp.html
index 1cb0e611939266402d6f2cbaf18e6f654e098617..19f7c6306eb75eb8da04bc4521b607168845b1cf 100644
--- a/doc/html/_m_ai_n_g_owriting_functions_8cpp.html
+++ b/doc/html/_m_ai_n_g_owriting_functions_8cpp.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/src/MAiNGOwritingFunctions.cpp File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/src/MAiNGOwritingFunctions.cpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -92,9 +92,7 @@ $(document).ready(function(){initNavTree('_m_ai_n_g_owriting_functions_8cpp.html
 <div class="contents">
 <div class="textblock"><code>#include &quot;<a class="el" href="_m_ai_n_g_o_8h_source.html">MAiNGO.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="bab_8h_source.html">bab.h</a>&quot;</code><br />
-<code>#include &quot;<a class="el" href="exceptions_8h_source.html">exceptions.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="utilities_8h_source.html">utilities.h</a>&quot;</code><br />
-<code>#include &lt;limits.h&gt;</code><br />
 </div></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -103,7 +101,7 @@ $(document).ready(function(){initNavTree('_m_ai_n_g_owriting_functions_8cpp.html
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="_m_ai_n_g_owriting_functions_8cpp.html">MAiNGOwritingFunctions.cpp</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/ale_model_8cpp.html b/doc/html/ale_model_8cpp.html
index fdcfeb91062fcfcd0a0791b9e197760dc91403b2..9dd2247edf269d525a23d82dadd6afe71b7aaf7f 100644
--- a/doc/html/ale_model_8cpp.html
+++ b/doc/html/ale_model_8cpp.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/src/aleModel.cpp File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/src/aleModel.cpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -104,7 +104,7 @@ $(document).ready(function(){initNavTree('ale_model_8cpp.html','');});
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="ale_model_8cpp.html">aleModel.cpp</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/ale_model_8h.html b/doc/html/ale_model_8h.html
index a88372ba48e3172f861b040f0f2b3da74854a2aa..617952a7ec0d04e7d882f29cb0eb5d251fc9c9a2 100644
--- a/doc/html/ale_model_8h.html
+++ b/doc/html/ale_model_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/aleModel.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/aleModel.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -95,7 +95,6 @@ $(document).ready(function(){initNavTree('ale_model_8h.html','');});
 </div><!--header-->
 <div class="contents">
 <div class="textblock"><code>#include &quot;<a class="el" href="_m_ai_n_g_omodel_8h_source.html">MAiNGOmodel.h</a>&quot;</code><br />
-<code>#include &quot;<a class="el" href="exceptions_8h_source.html">exceptions.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="program_8h_source.html">program.h</a>&quot;</code><br />
 <code>#include &quot;symbol_table.hpp&quot;</code><br />
 <code>#include &lt;unordered_map&gt;</code><br />
@@ -142,7 +141,7 @@ Typedefs</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="ale_model_8h.html">aleModel.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/ale_model_8h_source.html b/doc/html/ale_model_8h_source.html
index cd4055ec44b9464b0e5e996ba50b00e7f092b886..fb6c7c08087a09a4e37931b3fce7720f9314f20c 100644
--- a/doc/html/ale_model_8h_source.html
+++ b/doc/html/ale_model_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/aleModel.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/aleModel.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,26 +90,25 @@ $(document).ready(function(){initNavTree('ale_model_8h_source.html','');});
 <div class="title">aleModel.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="ale_model_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file aleModel.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing the AleModel specialization of MAiNGModel needed for the</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *        ALE parser.</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_m_ai_n_g_omodel_8h.html">MAiNGOmodel.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="exceptions_8h.html">exceptions.h</a>&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="program_8h.html">program.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;symbol_table.hpp&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;unordered_map&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">   28</a></span>&#160;<span class="keyword">using</span> <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a> = mc::FFVar;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="namespacemaingo.html">   31</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="classmaingo_1_1_ale_model.html">   37</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1_ale_model.html">AleModel</a>: <span class="keyword">public</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel.html">MAiNGOmodel</a> {</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    <a class="code" href="structmaingo_1_1_evaluation_container.html">EvaluationContainer</a> <a class="code" href="classmaingo_1_1_ale_model.html#a3ef454e2c543640ff4f77217396019f2">evaluate</a>(<span class="keyword">const</span> std::vector&lt;Var&gt;&amp; optVars);</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="classmaingo_1_1_ale_model.html#a3bb9ac4b8b424d7828893cddefe1d9e8">   53</a></span>&#160;    <a class="code" href="classmaingo_1_1_ale_model.html#a3bb9ac4b8b424d7828893cddefe1d9e8">AleModel</a>(<a class="code" href="structmaingo_1_1_program.html">Program</a> prog, ale::symbol_table&amp; symbols):</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;        <a class="code" href="classmaingo_1_1_ale_model.html#a7e3a43566149a7d691bc4e74c622ed5c">_prog</a>(prog), <a class="code" href="classmaingo_1_1_ale_model.html#a0cf66bb00b12a13525d9b6e80fa55fe3">_symbols</a>(symbols)</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    {</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;        <a class="code" href="classmaingo_1_1_ale_model.html#aa779cdbfe41d12b35cf6b5fa7581782a">make_variables</a>();</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    };</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    std::vector&lt;OptimizationVariable&gt; <a class="code" href="classmaingo_1_1_ale_model.html#a9d29639440ec6fae90238a0a6d32ab53">get_variables</a>();</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    <span class="keyword">const</span> std::unordered_map&lt;std::string, int&gt;&amp; <a class="code" href="classmaingo_1_1_ale_model.html#a0a095d7223a77ebb198bfe6f910bd376">get_positions</a>();</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1_ale_model.html#ad16d625c2b0ab88cdf8c200680477510">get_initial_point</a>();</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_ale_model.html#aa779cdbfe41d12b35cf6b5fa7581782a">make_variables</a>();</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classmaingo_1_1_ale_model.html#a7e3a43566149a7d691bc4e74c622ed5c">   80</a></span>&#160;    <a class="code" href="structmaingo_1_1_program.html">Program</a> <a class="code" href="classmaingo_1_1_ale_model.html#a7e3a43566149a7d691bc4e74c622ed5c">_prog</a>;               </div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classmaingo_1_1_ale_model.html#a0cf66bb00b12a13525d9b6e80fa55fe3">   81</a></span>&#160;    ale::symbol_table&amp; <a class="code" href="classmaingo_1_1_ale_model.html#a0cf66bb00b12a13525d9b6e80fa55fe3">_symbols</a>; </div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classmaingo_1_1_ale_model.html#a8074ec7e8aa37574089920ad172ae964">   83</a></span>&#160;    std::vector&lt;OptimizationVariable&gt; <a class="code" href="classmaingo_1_1_ale_model.html#a8074ec7e8aa37574089920ad172ae964">_variables</a>;    </div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classmaingo_1_1_ale_model.html#aa3d5f1a6297be3f397256bc1321d9053">   84</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1_ale_model.html#aa3d5f1a6297be3f397256bc1321d9053">_initials</a>;                   </div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classmaingo_1_1_ale_model.html#a56aeb872452a335f5ca091e7d6e3583f">   85</a></span>&#160;    std::unordered_map&lt;std::string, int&gt; <a class="code" href="classmaingo_1_1_ale_model.html#a56aeb872452a335f5ca091e7d6e3583f">_positions</a>; </div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;};</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;}    <span class="comment">// namespace maingo</span></div><div class="ttc" id="classmaingo_1_1_ale_model_html_a0cf66bb00b12a13525d9b6e80fa55fe3"><div class="ttname"><a href="classmaingo_1_1_ale_model.html#a0cf66bb00b12a13525d9b6e80fa55fe3">maingo::AleModel::_symbols</a></div><div class="ttdeci">ale::symbol_table &amp; _symbols</div><div class="ttdef"><b>Definition:</b> aleModel.h:81</div></div>
-<div class="ttc" id="classmaingo_1_1_ale_model_html_a9d29639440ec6fae90238a0a6d32ab53"><div class="ttname"><a href="classmaingo_1_1_ale_model.html#a9d29639440ec6fae90238a0a6d32ab53">maingo::AleModel::get_variables</a></div><div class="ttdeci">std::vector&lt; OptimizationVariable &gt; get_variables()</div><div class="ttdoc">Function for getting optimization variables data.</div><div class="ttdef"><b>Definition:</b> aleModel.cpp:31</div></div>
-<div class="ttc" id="classmaingo_1_1_ale_model_html_ad16d625c2b0ab88cdf8c200680477510"><div class="ttname"><a href="classmaingo_1_1_ale_model.html#ad16d625c2b0ab88cdf8c200680477510">maingo::AleModel::get_initial_point</a></div><div class="ttdeci">std::vector&lt; double &gt; get_initial_point()</div><div class="ttdoc">Function for getting initial point data.</div><div class="ttdef"><b>Definition:</b> aleModel.cpp:49</div></div>
-<div class="ttc" id="ale_model_8h_html_a9c4e868adf1bc404290197d3c92f56bc"><div class="ttname"><a href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a></div><div class="ttdeci">mc::FFVar Var</div><div class="ttdef"><b>Definition:</b> aleModel.h:28</div></div>
-<div class="ttc" id="structmaingo_1_1_program_html"><div class="ttname"><a href="structmaingo_1_1_program.html">maingo::Program</a></div><div class="ttdoc">Container Class for ALE expressions comprising an optimization problem.</div><div class="ttdef"><b>Definition:</b> program.h:29</div></div>
-<div class="ttc" id="structmaingo_1_1_evaluation_container_html"><div class="ttname"><a href="structmaingo_1_1_evaluation_container.html">maingo::EvaluationContainer</a></div><div class="ttdoc">Struct for storing the values returned by model evaluation at the given point &quot;var&quot;.</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:192</div></div>
+<a href="ale_model_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_m_ai_n_g_omodel_8h.html">MAiNGOmodel.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="program_8h.html">program.h</a>&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &quot;symbol_table.hpp&quot;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &lt;unordered_map&gt;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">   22</a></span>&#160;<span class="keyword">using</span> <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a> = mc::FFVar;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="namespacemaingo.html">   25</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="classmaingo_1_1_ale_model.html">   31</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1_ale_model.html">AleModel</a>: <span class="keyword">public</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_omodel.html">MAiNGOmodel</a> {</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    <a class="code" href="structmaingo_1_1_evaluation_container.html">EvaluationContainer</a> <a class="code" href="classmaingo_1_1_ale_model.html#a3ef454e2c543640ff4f77217396019f2">evaluate</a>(<span class="keyword">const</span> std::vector&lt;Var&gt;&amp; optVars);</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classmaingo_1_1_ale_model.html#a3bb9ac4b8b424d7828893cddefe1d9e8">   47</a></span>&#160;    <a class="code" href="classmaingo_1_1_ale_model.html#a3bb9ac4b8b424d7828893cddefe1d9e8">AleModel</a>(<a class="code" href="structmaingo_1_1_program.html">Program</a> prog, ale::symbol_table&amp; symbols):</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;        <a class="code" href="classmaingo_1_1_ale_model.html#a7e3a43566149a7d691bc4e74c622ed5c">_prog</a>(prog), <a class="code" href="classmaingo_1_1_ale_model.html#a0cf66bb00b12a13525d9b6e80fa55fe3">_symbols</a>(symbols)</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    {</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;        <a class="code" href="classmaingo_1_1_ale_model.html#aa779cdbfe41d12b35cf6b5fa7581782a">make_variables</a>();</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    };</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    std::vector&lt;OptimizationVariable&gt; <a class="code" href="classmaingo_1_1_ale_model.html#a9d29639440ec6fae90238a0a6d32ab53">get_variables</a>();</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    <span class="keyword">const</span> std::unordered_map&lt;std::string, int&gt;&amp; <a class="code" href="classmaingo_1_1_ale_model.html#a0a095d7223a77ebb198bfe6f910bd376">get_positions</a>();</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1_ale_model.html#ad16d625c2b0ab88cdf8c200680477510">get_initial_point</a>();</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_ale_model.html#aa779cdbfe41d12b35cf6b5fa7581782a">make_variables</a>();</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classmaingo_1_1_ale_model.html#a7e3a43566149a7d691bc4e74c622ed5c">   74</a></span>&#160;    <a class="code" href="structmaingo_1_1_program.html">Program</a> <a class="code" href="classmaingo_1_1_ale_model.html#a7e3a43566149a7d691bc4e74c622ed5c">_prog</a>;               </div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classmaingo_1_1_ale_model.html#a0cf66bb00b12a13525d9b6e80fa55fe3">   75</a></span>&#160;    ale::symbol_table&amp; <a class="code" href="classmaingo_1_1_ale_model.html#a0cf66bb00b12a13525d9b6e80fa55fe3">_symbols</a>; </div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classmaingo_1_1_ale_model.html#a8074ec7e8aa37574089920ad172ae964">   77</a></span>&#160;    std::vector&lt;OptimizationVariable&gt; <a class="code" href="classmaingo_1_1_ale_model.html#a8074ec7e8aa37574089920ad172ae964">_variables</a>;    </div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classmaingo_1_1_ale_model.html#aa3d5f1a6297be3f397256bc1321d9053">   78</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1_ale_model.html#aa3d5f1a6297be3f397256bc1321d9053">_initials</a>;                   </div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classmaingo_1_1_ale_model.html#a56aeb872452a335f5ca091e7d6e3583f">   79</a></span>&#160;    std::unordered_map&lt;std::string, int&gt; <a class="code" href="classmaingo_1_1_ale_model.html#a56aeb872452a335f5ca091e7d6e3583f">_positions</a>; </div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;};</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;}    <span class="comment">// namespace maingo</span></div><div class="ttc" id="classmaingo_1_1_ale_model_html_a0cf66bb00b12a13525d9b6e80fa55fe3"><div class="ttname"><a href="classmaingo_1_1_ale_model.html#a0cf66bb00b12a13525d9b6e80fa55fe3">maingo::AleModel::_symbols</a></div><div class="ttdeci">ale::symbol_table &amp; _symbols</div><div class="ttdef"><b>Definition:</b> aleModel.h:75</div></div>
+<div class="ttc" id="classmaingo_1_1_ale_model_html_a9d29639440ec6fae90238a0a6d32ab53"><div class="ttname"><a href="classmaingo_1_1_ale_model.html#a9d29639440ec6fae90238a0a6d32ab53">maingo::AleModel::get_variables</a></div><div class="ttdeci">std::vector&lt; OptimizationVariable &gt; get_variables()</div><div class="ttdoc">Function for getting optimization variables data. </div><div class="ttdef"><b>Definition:</b> aleModel.cpp:27</div></div>
+<div class="ttc" id="classmaingo_1_1_ale_model_html_ad16d625c2b0ab88cdf8c200680477510"><div class="ttname"><a href="classmaingo_1_1_ale_model.html#ad16d625c2b0ab88cdf8c200680477510">maingo::AleModel::get_initial_point</a></div><div class="ttdeci">std::vector&lt; double &gt; get_initial_point()</div><div class="ttdoc">Function for getting initial point data. </div><div class="ttdef"><b>Definition:</b> aleModel.cpp:45</div></div>
+<div class="ttc" id="ale_model_8h_html_a9c4e868adf1bc404290197d3c92f56bc"><div class="ttname"><a href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a></div><div class="ttdeci">mc::FFVar Var</div><div class="ttdef"><b>Definition:</b> aleModel.h:22</div></div>
+<div class="ttc" id="structmaingo_1_1_program_html"><div class="ttname"><a href="structmaingo_1_1_program.html">maingo::Program</a></div><div class="ttdoc">Container Class for ALE expressions comprising an optimization problem. </div><div class="ttdef"><b>Definition:</b> program.h:24</div></div>
+<div class="ttc" id="structmaingo_1_1_evaluation_container_html"><div class="ttname"><a href="structmaingo_1_1_evaluation_container.html">maingo::EvaluationContainer</a></div><div class="ttdoc">Struct for storing the values returned by model evaluation at the given point &quot;var&quot;. </div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:208</div></div>
 <div class="ttc" id="program_8h_html"><div class="ttname"><a href="program_8h.html">program.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1_ale_model_html_aa779cdbfe41d12b35cf6b5fa7581782a"><div class="ttname"><a href="classmaingo_1_1_ale_model.html#aa779cdbfe41d12b35cf6b5fa7581782a">maingo::AleModel::make_variables</a></div><div class="ttdeci">void make_variables()</div><div class="ttdoc">Function for populating _variables, _initials, and _positions.</div><div class="ttdef"><b>Definition:</b> aleModel.cpp:95</div></div>
-<div class="ttc" id="classmaingo_1_1_ale_model_html_aa3d5f1a6297be3f397256bc1321d9053"><div class="ttname"><a href="classmaingo_1_1_ale_model.html#aa3d5f1a6297be3f397256bc1321d9053">maingo::AleModel::_initials</a></div><div class="ttdeci">std::vector&lt; double &gt; _initials</div><div class="ttdef"><b>Definition:</b> aleModel.h:84</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_html"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel.html">maingo::MAiNGOmodel</a></div><div class="ttdoc">This class is the base class for models to be solved by MAiNGO.</div><div class="ttdef"><b>Definition:</b> MAiNGOmodel.h:92</div></div>
-<div class="ttc" id="classmaingo_1_1_ale_model_html"><div class="ttname"><a href="classmaingo_1_1_ale_model.html">maingo::AleModel</a></div><div class="ttdoc">This class provides the interface for a program composed of ALE expressions.</div><div class="ttdef"><b>Definition:</b> aleModel.h:37</div></div>
-<div class="ttc" id="classmaingo_1_1_ale_model_html_a3ef454e2c543640ff4f77217396019f2"><div class="ttname"><a href="classmaingo_1_1_ale_model.html#a3ef454e2c543640ff4f77217396019f2">maingo::AleModel::evaluate</a></div><div class="ttdeci">EvaluationContainer evaluate(const std::vector&lt; Var &gt; &amp;optVars)</div><div class="ttdoc">Main function used to evaluate the model and construct a directed acyclic graph.</div><div class="ttdef"><b>Definition:</b> aleModel.cpp:58</div></div>
-<div class="ttc" id="exceptions_8h_html"><div class="ttname"><a href="exceptions_8h.html">exceptions.h</a></div></div>
-<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO</div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
+<div class="ttc" id="classmaingo_1_1_ale_model_html_aa779cdbfe41d12b35cf6b5fa7581782a"><div class="ttname"><a href="classmaingo_1_1_ale_model.html#aa779cdbfe41d12b35cf6b5fa7581782a">maingo::AleModel::make_variables</a></div><div class="ttdeci">void make_variables()</div><div class="ttdoc">Function for populating _variables, _initials, and _positions. </div><div class="ttdef"><b>Definition:</b> aleModel.cpp:94</div></div>
+<div class="ttc" id="classmaingo_1_1_ale_model_html_aa3d5f1a6297be3f397256bc1321d9053"><div class="ttname"><a href="classmaingo_1_1_ale_model.html#aa3d5f1a6297be3f397256bc1321d9053">maingo::AleModel::_initials</a></div><div class="ttdeci">std::vector&lt; double &gt; _initials</div><div class="ttdef"><b>Definition:</b> aleModel.h:78</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_omodel_html"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_omodel.html">maingo::MAiNGOmodel</a></div><div class="ttdoc">This class is the base class for models to be solved by MAiNGO. </div><div class="ttdef"><b>Definition:</b> MAiNGOmodel.h:87</div></div>
+<div class="ttc" id="classmaingo_1_1_ale_model_html"><div class="ttname"><a href="classmaingo_1_1_ale_model.html">maingo::AleModel</a></div><div class="ttdoc">This class provides the interface for a program composed of ALE expressions. </div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
+<div class="ttc" id="classmaingo_1_1_ale_model_html_a3ef454e2c543640ff4f77217396019f2"><div class="ttname"><a href="classmaingo_1_1_ale_model.html#a3ef454e2c543640ff4f77217396019f2">maingo::AleModel::evaluate</a></div><div class="ttdeci">EvaluationContainer evaluate(const std::vector&lt; Var &gt; &amp;optVars)</div><div class="ttdoc">Main function used to evaluate the model and construct a directed acyclic graph. </div><div class="ttdef"><b>Definition:</b> aleModel.cpp:54</div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
 <div class="ttc" id="_m_ai_n_g_omodel_8h_html"><div class="ttname"><a href="_m_ai_n_g_omodel_8h.html">MAiNGOmodel.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1_ale_model_html_a7e3a43566149a7d691bc4e74c622ed5c"><div class="ttname"><a href="classmaingo_1_1_ale_model.html#a7e3a43566149a7d691bc4e74c622ed5c">maingo::AleModel::_prog</a></div><div class="ttdeci">Program _prog</div><div class="ttdef"><b>Definition:</b> aleModel.h:80</div></div>
-<div class="ttc" id="classmaingo_1_1_ale_model_html_a56aeb872452a335f5ca091e7d6e3583f"><div class="ttname"><a href="classmaingo_1_1_ale_model.html#a56aeb872452a335f5ca091e7d6e3583f">maingo::AleModel::_positions</a></div><div class="ttdeci">std::unordered_map&lt; std::string, int &gt; _positions</div><div class="ttdef"><b>Definition:</b> aleModel.h:85</div></div>
-<div class="ttc" id="classmaingo_1_1_ale_model_html_a8074ec7e8aa37574089920ad172ae964"><div class="ttname"><a href="classmaingo_1_1_ale_model.html#a8074ec7e8aa37574089920ad172ae964">maingo::AleModel::_variables</a></div><div class="ttdeci">std::vector&lt; OptimizationVariable &gt; _variables</div><div class="ttdef"><b>Definition:</b> aleModel.h:83</div></div>
-<div class="ttc" id="classmaingo_1_1_ale_model_html_a0a095d7223a77ebb198bfe6f910bd376"><div class="ttname"><a href="classmaingo_1_1_ale_model.html#a0a095d7223a77ebb198bfe6f910bd376">maingo::AleModel::get_positions</a></div><div class="ttdeci">const std::unordered_map&lt; std::string, int &gt; &amp; get_positions()</div><div class="ttdoc">Function for getting optimization variable position data.</div><div class="ttdef"><b>Definition:</b> aleModel.cpp:40</div></div>
-<div class="ttc" id="classmaingo_1_1_ale_model_html_a3bb9ac4b8b424d7828893cddefe1d9e8"><div class="ttname"><a href="classmaingo_1_1_ale_model.html#a3bb9ac4b8b424d7828893cddefe1d9e8">maingo::AleModel::AleModel</a></div><div class="ttdeci">AleModel(Program prog, ale::symbol_table &amp;symbols)</div><div class="ttdoc">Constructor taking a ALE-based Program and an ALE symbol_table.</div><div class="ttdef"><b>Definition:</b> aleModel.h:53</div></div>
+<div class="ttc" id="classmaingo_1_1_ale_model_html_a7e3a43566149a7d691bc4e74c622ed5c"><div class="ttname"><a href="classmaingo_1_1_ale_model.html#a7e3a43566149a7d691bc4e74c622ed5c">maingo::AleModel::_prog</a></div><div class="ttdeci">Program _prog</div><div class="ttdef"><b>Definition:</b> aleModel.h:74</div></div>
+<div class="ttc" id="classmaingo_1_1_ale_model_html_a56aeb872452a335f5ca091e7d6e3583f"><div class="ttname"><a href="classmaingo_1_1_ale_model.html#a56aeb872452a335f5ca091e7d6e3583f">maingo::AleModel::_positions</a></div><div class="ttdeci">std::unordered_map&lt; std::string, int &gt; _positions</div><div class="ttdef"><b>Definition:</b> aleModel.h:79</div></div>
+<div class="ttc" id="classmaingo_1_1_ale_model_html_a8074ec7e8aa37574089920ad172ae964"><div class="ttname"><a href="classmaingo_1_1_ale_model.html#a8074ec7e8aa37574089920ad172ae964">maingo::AleModel::_variables</a></div><div class="ttdeci">std::vector&lt; OptimizationVariable &gt; _variables</div><div class="ttdef"><b>Definition:</b> aleModel.h:77</div></div>
+<div class="ttc" id="classmaingo_1_1_ale_model_html_a0a095d7223a77ebb198bfe6f910bd376"><div class="ttname"><a href="classmaingo_1_1_ale_model.html#a0a095d7223a77ebb198bfe6f910bd376">maingo::AleModel::get_positions</a></div><div class="ttdeci">const std::unordered_map&lt; std::string, int &gt; &amp; get_positions()</div><div class="ttdoc">Function for getting optimization variable position data. </div><div class="ttdef"><b>Definition:</b> aleModel.cpp:36</div></div>
+<div class="ttc" id="classmaingo_1_1_ale_model_html_a3bb9ac4b8b424d7828893cddefe1d9e8"><div class="ttname"><a href="classmaingo_1_1_ale_model.html#a3bb9ac4b8b424d7828893cddefe1d9e8">maingo::AleModel::AleModel</a></div><div class="ttdeci">AleModel(Program prog, ale::symbol_table &amp;symbols)</div><div class="ttdoc">Constructor taking a ALE-based Program and an ALE symbol_table. </div><div class="ttdef"><b>Definition:</b> aleModel.h:47</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -118,7 +117,7 @@ $(document).ready(function(){initNavTree('ale_model_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="ale_model_8h.html">aleModel.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/algorithm.html b/doc/html/algorithm.html
index 89338e489ff83ee692fb4ef41b32da27adef76dc..7987a0f736386008414c02e016ff639537bea3b8 100644
--- a/doc/html/algorithm.html
+++ b/doc/html/algorithm.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: How does MAiNGO work?</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -85,21 +85,21 @@ $(document).ready(function(){initNavTree('algorithm.html','');});
 </iframe>
 </div>
 
-<div class="PageDoc"><div class="header">
+<div class="header">
   <div class="headertitle">
 <div class="title">How does MAiNGO work? </div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="textblock"><p>MAiNGO implements a relatively basic spatial Branch-and-Bound (B&amp;B) algorithm, enhanced with some features for range reduction and a multi-start heuristic. The basic structure of the solver is as follows (where x includes both the integer and continuous variables):</p>
+<div class="textblock"><h1><a class="anchor" id="basic_structure"></a>
+Basic Structure</h1>
+<p>MAiNGO implements a relatively basic spatial Branch-and-Bound (B&amp;B) algorithm, enhanced with some features for range reduction and a multi-start heuristic. The basic structure of the solver is as follows (where x includes both the integer and continuous variables):</p>
 <p> <style>div.image img[src="Structure.PNG"]{width:20cm;align:left}</style>  </p><div class="image">
 <img src="Structure.PNG" alt="Structure.PNG" width="20cm"/>
 </div>
-<p>Here, f, g, and h are bounded factorable functions (also including multivariate outer functions) that can be defined by some computer code not visible to the optimizer. The objective function and the constraints can either be modelled in C++ or via ALE as described in <a class="el" href="writing_problem.html">Modeling in MAiNGO</a>. Based on this implementation, MAiNGO will evaluate the functions to construct a directed acyclic graph represention of the model first using the MC++ library. We use automatic differentiation via FADBAD++ in order to obtain first and second derivatives of the functions and provide them to the desired local solver. Convex and concave relaxations together with their subgradients are constructed through MC++ using the McCormick theorems, where the required intervals are obtained via FILIB++. Note that in contrast to current state-of-the-art global solvers, MAiNGO does not introduce auxiliary variables when constructing the lower bounding problem synergizing with the reduced-space philosophy of modelling in MAiNGO.</p>
-<p>Each B&amp;B node k, defined by its lower and upper bounds on the optimization variables x, is successively handed to wrappers for lower and upper bounding that communicate with the respective subsolvers and return the respective lower (LBD) and upper (UBD) bounds, as well as the optimal solution points (see Figure above). To obtain a lower bound, a relaxation of the original problem on the current node is constructed by relaxing the integrality requirements, replacing equalities by two inequalities each, and using the relaxations of the objective function and constraints obtained from MC++. However, in general the McCormick relaxations are non-smooth, and therefore a further affine relaxation based on linearization using the subgradients at one or more linearization points xLin is conducted to obtain a linear program (LP) and thus allow the use of robust LP solvers (shown for one linearization point, but multiple points can be used in analogy):</p>
-<p> <style>div.image img[src="Relaxed_LBP.PNG"]{width:12.5cm;align:left}</style>  </p><div class="image">
-<img src="Relaxed_LBP.PNG" alt="Relaxed_LBP.PNG"/>
-</div>
-<p>If MAiNGO detects the problem to be a (mixed-integer) linear program or a (mixed-integer) quadratic program, then it simply calls an available (MI)LP or (MI)QP solver to solve the problem. Otherwise, the problem is handled as a (mixed-integer) non-linear program and the solution procedure is as follows (in the following, UBD denotes the current global upper bound on the optimal objective value, i.e., the best objective value encountered at a feasible point so far, and LBD denotes the lower bound on the optimal objective value):</p>
+<p>Here, f, g, and h are bounded factorable functions (also including multivariate outer functions) that can be implemented by some computer code or given in text format (see Section <a class="el" href="writing_problem.html">Modeling in MAiNGO</a>). Based on this implementation, MAiNGO will evaluate the functions to construct a directed acyclic graph (DAG) represention of the model using the <a href="https://omega-icl.github.io/mcpp/">MC++ library</a>. Later while solving the problem, MAiNGO works only with this DAG to evaluate the functions in different arithmetics: We use automatic differentiation via <a href="http://www.fadbad.com/fadbad.html">FADBAD++</a> to obtain first and second derivatives of the functions. Convex and concave relaxations together with their subgradients are constructed through MC++ using the McCormick theorems, where the required intervals are obtained via <a href="http://www2.math.uni-wuppertal.de/wrswt/software/filib.html">FILIB++</a>. To compute lower (LBD) and upper bounds (UBD) on the optimal objective value based on the gradients and relaxations, MAiNGO uses several linear programming and local nonlinear programming solvers. These are accessed through lower and upper bounding wrappers.</p>
+<h1><a class="anchor" id="algorithm_details"></a>
+Details of MINLP solution algorithm</h1>
+<p>Initially, the structure of the problem is analyzed to treat special cases. If MAiNGO detects the problem to be a (mixed-integer) linear program or a (mixed-integer) quadratic program, then it simply calls an available (MI)LP or (MI)QP solver to solve the problem. Otherwise, the problem is handled as a (mixed-integer) non-linear program and the solution procedure is as described in the following (in the following, UBD denotes the current global upper bound on the optimal objective value, i.e., the best objective value encountered at a feasible point so far, and LBD denotes the global lower bound on the optimal objective value):</p>
 <ul>
 <li>Step 0: Preprocessing at the root node <br />
 <br />
@@ -117,7 +117,7 @@ $(document).ready(function(){initNavTree('algorithm.html','');});
  To balance the effort spent for OBBT and the gain through tightened bounds, we implemented the 'trivial filtering' heuristic described by Gleixner et al. Thus, you can adjust the minimum OBBT improvement (in [0,1]) to determine that a certain variable should only be considered for OBBT if this could improve its bound by at least <a class="el" href="structmaingo_1_1_settings.html#ad537d2e602f8eccbbaa1b3c4d0f3a135">LBP_obbtMinImprovement</a> times the width of its interval bound in the current node. While this is not as crucial at the root node, it can make a big difference when using OBBT within the B&amp;B loop. <br />
 <br />
 </li>
-<li>e: Multi-start (optional): If the number of <a class="el" href="structmaingo_1_1_settings.html#a3003863167eab673fbeae391bfeb802b">maximum local searches</a> is &gt;0 and steps 0c-d did not prove the problem to be infeasible, several runs of local optimization will be conducted using the local NLP solver specified by <a class="el" href="structmaingo_1_1_settings.html#a50403ef83f8de6e5a774825a56715012">UBP_solverPreprocessing</a>. If an initial point is specified by the user as part of the problem definition, it will be checked for feasibility first, then the first local search will start from here. The next local search starts from the midpoint of the root node, while all remaining searches start from randomly generated initial points within the root node.<br />
+<li>e: Multi-start (optional): If the number of <a class="el" href="structmaingo_1_1_settings.html#a3003863167eab673fbeae391bfeb802b">PRE_maxLocalSearches</a> is &gt;0 and steps 0c-d did not prove the problem to be infeasible, several runs of local optimization will be conducted using the local NLP solver specified by <a class="el" href="structmaingo_1_1_settings.html#a50403ef83f8de6e5a774825a56715012">UBP_solverPreprocessing</a>. If an initial point is specified by the user as part of the problem definition, it will be checked for feasibility first, then the first local search will start from here. The next local search starts from the midpoint of the root node, while all remaining searches start from randomly generated initial points within the root node.<br />
  By default, output is only written about these local searches when a new incumbent (i.e., best solution point so far) is found. If you want to display the results of every local solution, enable <a class="el" href="structmaingo_1_1_settings.html#aed67a51e2390de794d1e7e98a1a90206">PRE_printEveryLocalSearch</a>. <br />
  If you wish to perform a pure multi-start you can activate option <a class="el" href="structmaingo_1_1_settings.html#af507cbfa73588513df3746e104c76c01">PRE_pureMultistart</a>. Steps 0b, 0c, 0e and 1-10 are then not performed at all and in step 0a only an upper bounding solver is initialized. <br />
 <br />
@@ -125,7 +125,7 @@ $(document).ready(function(){initNavTree('algorithm.html','');});
 <li>f: Constraint propagation (optional): If <a class="el" href="structmaingo_1_1_settings.html#a774378c7d329fb73be3cbb765f035cb6">BAB_constraintPropagation</a> is turned on, constraint propagation is executed for the root node. If a feasible point is available, we set the bounds of the objective to (-infinity, solution value) and to (-infinity,infinity) otherwise.<br />
 <br />
 </li>
-<li>g: OBBT (optional): If OBBT was conducted in 0c and a feasible point was found in 0d, one additional round of OBBT is conducted that also considers optimality in additiona to feasibility. That is, when maximizing and minimizing each variable, a constraint that the relaxed objective function be equal to or smaller than UBD is added in addition to the relaxed versions of the original constraints. Locatelli &amp; Schoen call this step 'standard range reduction'. <br />
+<li>g: OBBT (optional): If OBBT was conducted in 0c and a feasible point was found in 0d, one additional round of OBBT is conducted that also considers optimality in addition to feasibility. That is, when maximizing and minimizing each variable, a constraint that the relaxed objective function be equal to or smaller than UBD is added in addition to the relaxed versions of the original constraints. Locatelli &amp; Schoen call this step 'standard range reduction'. <br />
 <br />
 </li>
 </ul>
@@ -137,21 +137,24 @@ $(document).ready(function(){initNavTree('algorithm.html','');});
 <br />
 </li>
 <li>2: Pre-processing (constraint propagation and OBBT, optional):<ul>
-<li>a: If <a class="el" href="structmaingo_1_1_settings.html#a774378c7d329fb73be3cbb765f035cb6">BAB_constraintPropagation</a> is turned on, constraint propagation is executed for the current node. If a feasible point is available, we set the bounds of the objective to (-infinity, solution value) and to (-infinity,infinity) otherwise.<br />
+<li>a: If <a class="el" href="structmaingo_1_1_settings.html#a774378c7d329fb73be3cbb765f035cb6">BAB_constraintPropagation</a> is turned on, constraint propagation is executed for the current node. If a feasible point is available, we set the bounds of the objective to (-infinity, UBD) and to (-infinity,infinity) otherwise.<br />
 <br />
 </li>
-<li>b: If <a class="el" href="structmaingo_1_1_settings.html#a8fd91a3766129137cae15447565e7923">BAB_alwaysSolveObbt</a> is turned on, OBBT is conducted for the current node. If a feasible point has already been found, it considers both feasibility and optimality, otherwise it uses feasibility only. While many established global solvers (at least by default) do not perform OBBT at every node because the computational cost can get prohibitive for problems containing many variables (recall that we need to solve two additional LPs per variable), we decided to implement it since by construction the problems that MAiNGO is designed for should have relatively few variables. Here, it can pay off to set <a class="el" href="structmaingo_1_1_settings.html#ad537d2e602f8eccbbaa1b3c4d0f3a135">LBP_obbtMinImprovement</a> (cf. 0c) to limit OBBT to those variables for which significant improvements can be achieved. <br />
+<li>b: If <a class="el" href="structmaingo_1_1_settings.html#a8fd91a3766129137cae15447565e7923">BAB_alwaysSolveObbt</a> is turned on, OBBT is conducted for the current node. If a feasible point has already been found, it considers both feasibility and optimality, otherwise it uses feasibility only. While many established global solvers (at least by default) do not perform OBBT at every node because the computational cost can get prohibitive for problems containing many variables (recall that we need to solve two additional LPs per variable), we decided to implement it since by construction the problems that MAiNGO is designed for (i.e., those with reduced-space formulations) should have relatively few variables. Here, it can pay off to set <a class="el" href="structmaingo_1_1_settings.html#ad537d2e602f8eccbbaa1b3c4d0f3a135">LBP_obbtMinImprovement</a> (cf. 0c) to limit OBBT to those variables for which significant improvements can be achieved. <br />
  If the node is proven to be infeasible during OBBT, it is fathomed by infeasibility and thus simply discarded (i.e., we go back directly to 10 and then back to 1).<br />
 <br />
 </li>
 </ul>
 </li>
-<li>3: Lower bounding: The lower bounding problem (LBP) is solved for the current node using one of the <a class="el" href="structmaingo_1_1_settings.html#a3e066fd5fb513813ec370f23a1cf5332">LBP solvers</a>. If the LP is infeasible, the node is fathomed by infeasibility and thus, simply discarded (i.e., we go directly to 10 and then back to 1). Otherwise, if the computed lower bound is greater than the current incumbent UBD or above UBD but within tolerance, it is fathomed by value dominance and thus also discarded.<br />
+<li>3: Lower bounding: To obtain a lower bound, a relaxation of the original problem on the current node is constructed in three steps: 1) Relax the integrality requirements. 2) Replace equalities by two inequalities each. 3) Using the McCormick relaxations of the objective function and constraints obtained from MC++. However, in general the McCormick relaxations are non-smooth, and therefore a further affine relaxation based on linearization using the subgradients at one or more linearization points xLin (controlled by the setting <a class="el" href="structmaingo_1_1_settings.html#a33a203b4798d1c1ca0897fe897f86e5e">LBP_linPoints</a>) is conducted. We thus obtain a lower bounding problem (LBP) in the form of a linear program (LP), which allows the use of robust LP solvers (shown for one linearization point; the index <em>k</em> denotes the current B&amp;B node):  <style>div.image img[src="Relaxed_LBP.PNG"]{width:12.5cm;align:left}</style>  <div class="image">
+<img src="Relaxed_LBP.PNG" alt="Relaxed_LBP.PNG"/>
+</div>
+ Note that in contrast to current state-of-the-art global solvers, MAiNGO typically does not introduce auxiliary variables when constructing the lower bounding problem, synergizing with the reduced-space philosophy of modeling in MAiNGO. Thus, the above LBP typically has the same number of variables as the original problem. MAiNGO will only add a few auxiliary variables for re-occurring nonlinear factors within the functions if the setting <a class="el" href="structmaingo_1_1_settings.html#a8d340ab819d3da6d5378765c1699dad2">LBP_addAuxiliaryVars</a> is set to true. This can lead to tighter relaxations, at the expense of a slightly larger LBP. The LBP is solved for the current node using one of the <a class="el" href="structmaingo_1_1_settings.html#a3e066fd5fb513813ec370f23a1cf5332">LBP solvers</a>. If the LBP is infeasible, the node is fathomed by infeasibility and thus, simply discarded (i.e., we go directly to 10 and then back to 1). Otherwise, if the computed lower bound is greater than the current incumbent UBD or above UBD but within tolerance, the node is fathomed by value dominance and thus also discarded.<br />
 <br />
 </li>
-<li>4: Upper bounding: The original problem (UBP) is solved using the local NLP solver specified by <a class="el" href="structmaingo_1_1_settings.html#acef4fa75216bfea7bd19dbb9d226320f">UBP_solverBab</a>. If available, the LBP solution point is used as an initial point. Otherwise, the center of the current node is used.<br />
- The solution point returned by the NLP solver is checked for feasibility within the user-specified feasibility tolerances (<a class="el" href="structmaingo_1_1_settings.html#af995a33f43f5609d3e941cbdf72a94de">deltaIneq</a>, <a class="el" href="structmaingo_1_1_settings.html#a4152b7df19df2bfd3b4e43d13aea1841">deltaEq</a>) regardless of the return code of the NLP solver. If using binary variables, these are checked for integrality. If no NLP solver is used, a single <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac9dd69c054981d95b5633af8eada06b7">function evaluation</a> is conducted and feasibility is checked at the LBP solution point or the node center. <br />
- If a feasible point was found this way, it is compared to UBD and if it is better, it is stored as the new incumbent and it is represented by an asterisk '*' in the B&amp;B output. The asterisk is only shown if the new incumbent is at significantly better, i.e., is not within optimality tolerances of the previous best upper bound. In this case, all nodes in the B&amp;B tree (possibly including the current one) with a (node) lower bound greater than this new UBD are fathomed by value dominance and thus deleted from the tree.<br />
+<li>4: Upper bounding: The original problem (UBP) is solved using the local NLP solver specified by <a class="el" href="structmaingo_1_1_settings.html#acef4fa75216bfea7bd19dbb9d226320f">UBP_solverBab</a>. If available, the LBP solution point is used as an initial point. Otherwise, the center of the current node is used. The solution point returned by the NLP solver is checked for feasibility within the user-specified feasibility tolerances (<a class="el" href="structmaingo_1_1_settings.html#af995a33f43f5609d3e941cbdf72a94de">deltaIneq</a>, <a class="el" href="structmaingo_1_1_settings.html#a4152b7df19df2bfd3b4e43d13aea1841">deltaEq</a>) regardless of the return code of the NLP solver. If no NLP solver is used, a single <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da15b7028091e5f95408a2a26e643cb972">function evaluation</a> is conducted at the initial point. <br />
+ If the problem contains integer (or binary) variables, these are relaxed in the problem handed to the NLP solver. If the returned solution is not (integer) feasible, the integer variables are fixed to the nearest integer value and the problem is re-solved with only the continuous variables being free to be varied by the NLP solver.<br />
+ If a feasible point was found this way, it is compared to the current incumbent. If it is better, the new point becomes the new incumbent and UBD is lowered to the objective value of this new incumbent. In this case, all nodes in the B&amp;B tree (possibly including the current one) with a (node) lower bound greater than this new UBD are fathomed by value dominance and thus deleted from the tree. If the new UBD is significantly better than the previous one (i.e., they are not equal within the optimality tolerances), an asterisk '*' will be shown in the B&amp;B output. <br />
 <br />
 </li>
 <li>5: Post-processing (DBBT &amp; probing, optional): If <a class="el" href="structmaingo_1_1_settings.html#a5e457d44f0301389da787556d4e9aebe">duality-based bound tightening</a> (DBBT) is activated, (cf. Ryoo &amp; Sahinidis, J. Global Optim. 8 (1996) 107), we exploit dual information from the LBP solution to tighten bounds based on optimality. This only works if the LBP solution lies at a bound of the current node, and if the dual multipliers for this variable bound were successfully extracted from the underlying (MI)LP solver. <br />
@@ -170,14 +173,13 @@ $(document).ready(function(){initNavTree('algorithm.html','');});
 <li>9: Updating statistics: All information regarding number of iterations, solved upper and lower bounding problems etc. are augmented.<br />
 <br />
 </li>
-<li>10: Output: If <a class="el" href="structmaingo_1_1_settings.html#a635996885baa7cb82d4f5cf91c2921bc">B&amp;B verbosity</a> is set to anything other than <a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991bea564fb96cc42aa72474169a9d7e3fd844">VERB_NONE</a>, output on the solution progress will be printed every <a class="el" href="structmaingo_1_1_settings.html#a151445349406eb6567b9ef0930b94a57">BAB_printFreq</a> nodes. Additionally, output will be printed whenever a new incumbent is found (marked by an asterisk in the first column). Note that <a class="el" href="structmaingo_1_1_settings.html#a3bca851ad2486ec398bf0cff511fb805">LBP_verbosity</a> and <a class="el" href="structmaingo_1_1_settings.html#af98e35447c8568c1613daf7447a30307">UBP_verbosity</a> should only be changed from their default ( <a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991bea564fb96cc42aa72474169a9d7e3fd844">VERB_NONE</a> ) for diagnostic reasons since they are very noisy (so is <a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991bea492f57f7be5a28760409792b99e09bd8">VERB_ALL</a> for <a class="el" href="structmaingo_1_1_settings.html#a635996885baa7cb82d4f5cf91c2921bc">BAB_verbosity</a>). By default, the printed output includes:<ul>
-<li>the ID of the node treated</li>
-<li>the lower bound of the node (after solving the LBP, i.e., not the one inherited from the parent node)</li>
-<li>the overall LBD <em>before</em> treating the current node</li>
-<li>the current UBD <em>after</em> treating the current node</li>
+<li>10: Output: If <a class="el" href="structmaingo_1_1_settings.html#a635996885baa7cb82d4f5cf91c2921bc">B&amp;B verbosity</a> is set to anything other than <a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991bea564fb96cc42aa72474169a9d7e3fd844">VERB_NONE</a>, output on the solution progress will be printed every <a class="el" href="structmaingo_1_1_settings.html#a151445349406eb6567b9ef0930b94a57">BAB_printFreq</a> nodes. Additionally, output will be printed whenever a new (and significantly better) incumbent is found (marked by an asterisk in the first column). Note that <a class="el" href="structmaingo_1_1_settings.html#a3bca851ad2486ec398bf0cff511fb805">LBP_verbosity</a> and <a class="el" href="structmaingo_1_1_settings.html#af98e35447c8568c1613daf7447a30307">UBP_verbosity</a> should only be changed from their default ( <a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991bea564fb96cc42aa72474169a9d7e3fd844">VERB_NONE</a> ) for diagnostic reasons since they are very noisy (so is <a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991bea492f57f7be5a28760409792b99e09bd8">VERB_ALL</a> for <a class="el" href="structmaingo_1_1_settings.html#a635996885baa7cb82d4f5cf91c2921bc">BAB_verbosity</a>). By default, the printed output includes:<ul>
+<li>the iteration number</li>
+<li>the overall LBD after treating the current node</li>
+<li>the current UBD after treating the current node</li>
 <li>the number of nodes currently in the B&amp;B tree</li>
-<li>the absolute difference between UBP and LBP</li>
-<li>the relative gap between UBP and LBP</li>
+<li>the absolute gap defined as UBD-LBD</li>
+<li>the relative gap defined as (UBD-LBD)/|UBD|</li>
 <li>the CPU time spent so far <br />
 <br />
 </li>
@@ -185,12 +187,13 @@ $(document).ready(function(){initNavTree('algorithm.html','');});
 </li>
 </ul>
 </li>
-<li>Step 11: Final Output<ul>
+<li>Step 11: Final Output (afer termination of B&amp;B loop):<ul>
 <li>The incumbent as well as its objective value are returned (if a feasible point has been found) along with a message stating the termination status. Note that the returned solution only corresponds to the global solution if MAiNGO reports regular termination. If it terminated because of surpassed CPU time or node limits, the solution may not even be a local optimum. If it reports the problem to be infeasible, this means it was actually proven to be infeasible through the LBPs and/or range reduction.</li>
 <li>Statistics are also given on the total number of nodes treated, the number of LBPs solved, the number of UBPs solved, and the maximum number of nodes held in memory at any point during solution. This values can differ since for a node that is found infeasible during OBBT, neither LBP nor UBP will be solved. If a node is found infeasible during LBP, UBP is omitted.</li>
 <li>If additional output variables were specified as part of the problem definition, the value of these variables will be calculated at the solution point and reported at the very end of the solution.</li>
-<li>If <a class="el" href="structmaingo_1_1_settings.html#acec36c3b03a651632336594c40d5026a">writeLog</a> is enabled, a log file is now written in the background that contains the same content as the screen output, except that the print frequency may be different (set through <a class="el" href="structmaingo_1_1_settings.html#ae0e50e9403f37080cd79667947af8c1b">BAB_logFreq</a>). Currently, the log file will be written in the working directory and is named bab.log.</li>
-<li>If <a class="el" href="structmaingo_1_1_settings.html#a6d6da9a089684ecd8eb3dc560e14c0ca">writeResFile</a> is enabled, a result file is written after a regular termination of the optimization process. The result file contains the value of all variables, the objective and all constraints at the final solution point. A result file is only written if the problem is feasible.</li>
+<li>Depending on the value of <a class="el" href="structmaingo_1_1_settings.html#ad665aeee888f2746d7892ffc66bd5340">loggingDestination</a>, a log file may now be written in the background that contains the same content as the screen output, except that the print frequency may be different (set through <a class="el" href="structmaingo_1_1_settings.html#ae0e50e9403f37080cd79667947af8c1b">BAB_logFreq</a>).</li>
+<li>If the setting <a class="el" href="structmaingo_1_1_settings.html#a56d7d3b6246ae45af98b44102edbb28b">writeResultFile</a> is enabled, a result file is written after a regular termination of the optimization process. The result file contains the value of all variables, the objective and all constraints at the final solution point. A result file is only written if a feasible point was found.</li>
+<li>Depending on the value of the settings <a class="el" href="structmaingo_1_1_settings.html#a891666257be2a508061697ea80a01ada">writeJson</a> and <a class="el" href="structmaingo_1_1_settings.html#a6fb19c2296412e1143f77fd7b949e7e3">writeCsv</a>, the optimal solution along with some statistics and (in case of the csv) a summary of the B&amp;B iterations is written to corresponding files.</li>
 <li>Finally, the overall CPU time is reported. <br />
 <br />
 </li>
@@ -199,12 +202,11 @@ $(document).ready(function(){initNavTree('algorithm.html','');});
 </ul>
 <h1><a class="anchor" id="LBS"></a>
 Lower Bounding Solvers</h1>
-<p>MAiNGO currently supports four different lower bounding solvers, namely a MAiNGO internal solver, a solver based on interval arithmetics only, CLP and CPLEX. The <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4beab21ba68ca9d31ece2a6ac8006b39027e">MAiNGO</a> internal solver relaxes constraints via natural interval extensions, linearizes the McCormick relaxations of the objective function at the mid point and then solves this very simple linear program. The <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4beabbf2c359f240461a8859bea8b628179d">interval-based</a> solver uses interval arithmetics only in order to solve the lower bounding problem. Both solvers, <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4beab21ba68ca9d31ece2a6ac8006b39027e">MAiNGO</a> and <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4beabbf2c359f240461a8859bea8b628179d">interval-based</a> do not support OBBT or multiple-point linearization strategies. <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea7461c27f75e0601f39252dd553b686e6">CPLEX</a> is the third supported lower bounding solver and supports the full range of options implemented in MAiNGO. Note that the current version of CPLEX cannot work with values &gt;1e19. This is automatically detected within MAiNGO and handled appropriately. <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea0a3210e4f9065f1ead5177bfdfbc27d1">CLP</a> is the fourth supported lower bounding solver and supports the full range of options implemented in MAiNGO. Note that while CLP may be faster for small problems than CPLEX, it is more error-prone (all errors are caught by MAiNGO and handled properly). It is recommended to use <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea7461c27f75e0601f39252dd553b686e6">CPLEX</a> as lower bounding solver to achieve best computational results.</p>
+<p>MAiNGO currently supports four lower bounding solvers: a MAiNGO internal solver, a solver based on interval arithmetics only, <a href="https://github.com/coin-or/Clp">CLP</a> and <a href="https://www.ibm.com/products/ilog-cplex-optimization-studio">CPLEX</a>. The <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea32fa8aaeff8ed8f41d95ce72acc04ce1">MAiNGO</a> internal solver relaxes constraints via natural interval extensions, linearizes the McCormick relaxations of the objective function at the mid point and then solves this very simple linear program. The <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4beafc7bfbfe657af2fff8e3800860388f89">interval-based</a> solver uses interval arithmetics only in order to solve the lower bounding problem. Both solvers, <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea32fa8aaeff8ed8f41d95ce72acc04ce1">MAiNGO</a> and <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4beafc7bfbfe657af2fff8e3800860388f89">interval-based</a> do not support OBBT or multiple-point linearization strategies. <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea016b6bae02feefafd679a8d57149aff5">CPLEX</a> is the third supported lower bounding solver and supports the full range of options implemented in MAiNGO. Note that the current version of CPLEX cannot work with values &gt;1e19. This is automatically detected within MAiNGO and handled appropriately. <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea9c0bfb2a028e4a3ab6011619009d62d9">CLP</a> is the fourth supported lower bounding solver and supports the full range of options implemented in MAiNGO. Note that while CLP may be faster for small problems than CPLEX, it is more error-prone (all errors are caught by MAiNGO and handled properly). In general, it is recommended to use <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea016b6bae02feefafd679a8d57149aff5">CPLEX</a> as lower bounding solver to achieve best computational performance.</p>
 <h1><a class="anchor" id="UBS"></a>
 Upper Bounding Solvers</h1>
-<p>MAiNGO currently supports local solvers found in the NLopt package, IPOPT and Knitro. Additionally, you can optimize without any local solver by the use of <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac9dd69c054981d95b5633af8eada06b7">simple function evaluations</a>. <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac449153333e544edc3b78977ab02ea20">IPOPT</a> is an interior point optimizer. The NLopt package provides the two derivative free solvers <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac5701f2847e960c47f46914beac6a128">Cobyla</a> and <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da54ed347065f9c65c37a71a3cb4db7451">Bobyqa</a> and two gradient-based solvers <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da816c98ce5f16248a60f78e76bc534823">LBFGS</a> and <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da24b4fd10f12919d2825cb493c71d3cf8">SLSQP</a>. <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da6cc859f77befbec62acf36cb2ef82683">Knitro</a> is a commercial local (MI)NLP solver consisting of many different algorithms. For additional information, visit <a href="https://projects.coin-or.org/Ipopt">https://projects.coin-or.org/Ipopt</a> , <a href="https://nlopt.readthedocs.io/en/latest/">https://nlopt.readthedocs.io/en/latest/</a> and <a href="https://www.artelys.com/docs/knitro/2_userGuide/feasibility.html">https://www.artelys.com/docs/knitro/2_userGuide/feasibility.html</a> . </p>
-</div></div><!-- PageDoc -->
-</div><!-- contents -->
+<p>MAiNGO currently supports local solvers found in the <a href="https://nlopt.readthedocs.io/en/latest/">NLopt package</a>, <a href="https://github.com/coin-or/Ipopt">IPOPT</a> and <a href="https://www.artelys.com/docs/knitro/index.html">Knitro</a>. Additionally, you can optimize without any local solver by the use of <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da15b7028091e5f95408a2a26e643cb972">simple function evaluations</a>. <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da3d2c4a7fd42fd747fe825ec8f0b1a1ad">IPOPT</a> is an interior point optimizer. The NLopt package provides the two derivative free solvers <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9daaff3b4a7dfedf2a8f66396d01c4e1645">Cobyla</a> and <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da16910a5ab42fd9bcd71489c0f07d7791">Bobyqa</a> and two gradient-based solvers <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac4da4292c1a20fb6a199fc7b540bc2d3">LBFGS</a> and <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da5e8733223dd08864a8d5effbb341992a">SLSQP</a>. <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da019153052e3b77622e3f2a7f0ce339e8">Knitro</a> is a commercial local (MI)NLP solver consisting of many different algorithms. </p>
+</div></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
@@ -212,7 +214,7 @@ Upper Bounding Solvers</h1>
     <li class="navelem"><a class="el" href="index.html">McCormick-based Algorithm for mixed-integer Nonlinear Global Optimization</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/annotated.html b/doc/html/annotated.html
index df824421194a31d69f5d19ccdc0422b4a9dfed5a..08fa753db47414b178151eecb8dc7904534b02d2 100644
--- a/doc/html/annotated.html
+++ b/doc/html/annotated.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -92,7 +92,7 @@ $(document).ready(function(){initNavTree('annotated.html','');});
 <div class="contents">
 <div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
 <div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span>]</div><table class="directory">
-<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacebab_base.html" target="_self">babBase</a></td><td class="desc">Namespace holding all essentials of the <a class="el" href="namespacebab_base.html" title="namespace holding all essentials of the babBase submodule">babBase</a> submodule </td></tr>
+<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacebab_base.html" target="_self">babBase</a></td><td class="desc">Namespace holding all essentials of the <a class="el" href="namespacebab_base.html" title="namespace holding all essentials of the babBase submodule ">babBase</a> submodule </td></tr>
 <tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structbab_base_1_1_bab_log.html" target="_self">BabLog</a></td><td class="desc">Struct storing logging information during B&amp;B prodcedure </td></tr>
 <tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classbab_base_1_1_bab_node.html" target="_self">BabNode</a></td><td class="desc">Class representing a node in the Branch-and-Bound tree </td></tr>
 <tr id="row_0_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classbab_base_1_1_bab_node_with_info.html" target="_self">BabNodeWithInfo</a></td><td class="desc">This class represents an node in the B&amp;B-Tree with additional information attached that is used in selecting nodes or branching variables </td></tr>
@@ -102,50 +102,50 @@ $(document).ready(function(){initNavTree('annotated.html','');});
 <tr id="row_0_6_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classbab_base_1_1_brancher.html" target="_self">Brancher</a></td><td class="desc">This class contains the logic for branching on nodes in the B&amp;B-Tree and selecting nodes to be processed </td></tr>
 <tr id="row_0_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structbab_base_1_1_branching_history_info.html" target="_self">BranchingHistoryInfo</a></td><td class="desc">Struct for collecting all information that must be saved about a node, so that after it is retrieved from the tree and processed, pseudocosts can be calculated </td></tr>
 <tr id="row_0_8_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structbab_base_1_1_node_priority_comparator.html" target="_self">NodePriorityComparator</a></td><td class="desc">Functor for comparing node priorities </td></tr>
-<tr id="row_0_9_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_9_" class="arrow" onclick="toggleFolder('0_9_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classbab_base_1_1_optimization_variable.html" target="_self">OptimizationVariable</a></td><td class="desc">Class for representing an optimization variable specified by the user </td></tr>
-<tr id="row_0_9_0_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html" target="_self">ChangedBounds</a></td><td class="desc">Auxiliary struct for storing changed bounds of an optimization variable </td></tr>
-<tr id="row_0_10_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classbab_base_1_1_out_var.html" target="_self">OutVar</a></td><td class="desc">Helper class that can be used to enforce the caller to explicitly state that the variable he passed may be changed </td></tr>
-<tr id="row_0_11_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structbab_base_1_1_pruning_score_comparator.html" target="_self">PruningScoreComparator</a></td><td class="desc">Functor for comparing pruning scores </td></tr>
-<tr id="row_1_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemaingo.html" target="_self">maingo</a></td><td class="desc">Namespace holding all essentials of <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> </td></tr>
-<tr id="row_1_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_1_0_" class="arrow" onclick="toggleFolder('1_0_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemaingo_1_1bab.html" target="_self">bab</a></td><td class="desc">Namespace holding everything related to the actual branch-and-bound algorithm </td></tr>
-<tr id="row_1_0_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html" target="_self">BranchAndBound</a></td><td class="desc">This class contains the main algorithm, including handling of pre-processing routines and managing the B&amp;B tree as well as the respective sub-solvers </td></tr>
-<tr id="row_1_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_1_1_" class="arrow" onclick="toggleFolder('1_1_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemaingo_1_1lbp.html" target="_self">lbp</a></td><td class="desc">Namespace holding all essentials of the lower bounding solver </td></tr>
-<tr id="row_1_1_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html" target="_self">DagObj</a></td><td class="desc">Struct for storing all needed Directed acyclic Graph objects for the upper bounding solver </td></tr>
-<tr id="row_1_1_1_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html" target="_self">LbpClp</a></td><td class="desc">Wrapper for handling the lower bounding problems by interfacing CLP </td></tr>
-<tr id="row_1_1_2_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html" target="_self">LbpCplex</a></td><td class="desc">Wrapper for handling the lower bounding problems by interfacing CPLEX </td></tr>
-<tr id="row_1_1_3_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html" target="_self">LbpDualInfo</a></td><td class="desc">Container for information from the LBP that is needed in DBBT and probing, used for communicating the results via bab </td></tr>
-<tr id="row_1_1_4_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html" target="_self">LbpInterval</a></td><td class="desc">Wrapper for handling the lower bounding problems by using interval arithmetics. We currently do a bit too much work, if the subgradient interval heuristic is not used, since we additionally compute the McCormick relaxations </td></tr>
-<tr id="row_1_1_5_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html" target="_self">LowerBoundingSolver</a></td><td class="desc">Wrapper for handling the lower bounding problems as well as optimization-based bounds tightening (OBBT) </td></tr>
-<tr id="row_1_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_1_2_" class="arrow" onclick="toggleFolder('1_2_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemaingo_1_1ubp.html" target="_self">ubp</a></td><td class="desc">Namespace holding all essentials of the upper bounding solvers </td></tr>
-<tr id="row_1_2_0_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html" target="_self">DagObj</a></td><td class="desc">Struct for storing all needed Directed acyclic Graph objects for the upper bounding solver </td></tr>
-<tr id="row_1_2_1_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html" target="_self">IpoptProblem</a></td><td class="desc">Class for representing problems to be solved by IpOpt, providing an interface to the problem definition in problem.h used by MC++ </td></tr>
-<tr id="row_1_2_2_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html" target="_self">KnitroProblem</a></td><td class="desc">Class for representing problems to be solved by Knitro, providing an interface to the problem definition in problem.h </td></tr>
-<tr id="row_1_2_3_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html" target="_self">UbpClp</a></td><td class="desc">Wrapper for handling the upper bounding problems by interfacing CLP </td></tr>
-<tr id="row_1_2_4_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1ubp_1_1_ubp_cplex.html" target="_self">UbpCplex</a></td><td class="desc">Wrapper for handling the upper bounding problems by interfacing CPLEX </td></tr>
-<tr id="row_1_2_5_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html" target="_self">UbpIpopt</a></td><td class="desc">Wrapper for handling the upper bounding problems by interfacing Ipopt </td></tr>
-<tr id="row_1_2_6_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1ubp_1_1_ubp_knitro.html" target="_self">UbpKnitro</a></td><td class="desc">Wrapper for handling the upper bounding problems by interfacing Knitro </td></tr>
-<tr id="row_1_2_7_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html" target="_self">UbpNLopt</a></td><td class="desc">Wrapper for handling the upper bounding problems by interfacing NLopt </td></tr>
-<tr id="row_1_2_8_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" target="_self">UbpQuadExpr</a></td><td class="desc">Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage </td></tr>
-<tr id="row_1_2_9_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1ubp_1_1_ubp_structure.html" target="_self">UbpStructure</a></td><td class="desc">Struct for storing structure information for the upper bounding solver </td></tr>
-<tr id="row_1_2_10_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html" target="_self">UpperBoundingSolver</a></td><td class="desc">Base class for wrappers for handling the upper bounding problems </td></tr>
-<tr id="row_1_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_ale_model.html" target="_self">AleModel</a></td><td class="desc">This class provides the interface for a program composed of ALE expressions </td></tr>
-<tr id="row_1_4_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1_constraint.html" target="_self">Constraint</a></td><td class="desc">Struct for storing information about constraints </td></tr>
-<tr id="row_1_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1_constraint_container.html" target="_self">ConstraintContainer</a></td><td class="desc">Containter for constraint evaluation </td></tr>
-<tr id="row_1_6_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1_evaluation_container.html" target="_self">EvaluationContainer</a></td><td class="desc">Struct for storing the values returned by model evaluation at the given point "var" </td></tr>
-<tr id="row_1_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_logger.html" target="_self">Logger</a></td><td class="desc">This class contains all logging and output information </td></tr>
-<tr id="row_1_8_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" target="_self">MAiNGO</a></td><td class="desc">This class is the <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> solver holding the B&amp;B tree, upper bounding solver, lower bounding solver and settings </td></tr>
-<tr id="row_1_9_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_maingo_evaluator.html" target="_self">MaingoEvaluator</a></td><td class="desc">Evaluates ALE expressions to Var </td></tr>
-<tr id="row_1_10_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html" target="_self">MAiNGOException</a></td><td class="desc">This class defines the exceptions thrown by <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> </td></tr>
-<tr id="row_1_11_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html" target="_self">MAiNGOmodel</a></td><td class="desc">This class is the base class for models to be solved by <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> </td></tr>
-<tr id="row_1_12_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html" target="_self">MAiNGOmodelEpsCon</a></td><td class="desc">This class is the base class for implementing bi-objective problems </td></tr>
-<tr id="row_1_13_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1model_function.html" target="_self">modelFunction</a></td><td class="desc">Struct for making work with the <a class="el" href="structmaingo_1_1_evaluation_container.html" title="Struct for storing the values returned by model evaluation at the given point &quot;var&quot;.">EvaluationContainer</a> easier for the user and also to ensure backward compatibility </td></tr>
-<tr id="row_1_14_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1_output_variable.html" target="_self">OutputVariable</a></td><td class="desc">Struct for storing additional output variables </td></tr>
-<tr id="row_1_15_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1_program.html" target="_self">Program</a></td><td class="desc">Container Class for ALE expressions comprising an optimization problem </td></tr>
-<tr id="row_1_16_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_program_parser.html" target="_self">ProgramParser</a></td><td class="desc">Parser specialization for parsing a <a class="el" href="structmaingo_1_1_program.html" title="Container Class for ALE expressions comprising an optimization problem.">maingo::Program</a> </td></tr>
-<tr id="row_1_17_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1_settings.html" target="_self">Settings</a></td><td class="desc">Struct for storing settings for <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> </td></tr>
-<tr id="row_1_18_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_variable_lister.html" target="_self">VariableLister</a></td><td class="desc">Serializes a given symbol and lists it into a vector </td></tr>
-<tr id="row_2_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_2_" class="arrow" onclick="toggleFolder('2_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemc.html" target="_self">mc</a></td><td class="desc">Namespace holding forward declaration of McCormick objects. For more info refer to the open-source library MC++ </td></tr>
-<tr id="row_2_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html" target="_self">Op&lt; maingo::ubp::UbpQuadExpr &gt;</a></td><td class="desc">Specialization of the structure mc::Op for use of the type UbpQuadExpr as a template parameter in other MC++ types </td></tr>
+<tr id="row_0_9_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classbab_base_1_1_optimization_variable.html" target="_self">OptimizationVariable</a></td><td class="desc">Class for representing an optimization variable specified by the user </td></tr>
+<tr id="row_0_10_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classbab_base_1_1_out_var.html" target="_self">OutVar</a></td><td class="desc">Helper class that can be used to enforce the caller to explicitly state that the variable he passed may be changed </td></tr>
+<tr id="row_0_11_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structbab_base_1_1_pruning_score_comparator.html" target="_self">PruningScoreComparator</a></td><td class="desc">Functor for comparing pruning scores </td></tr>
+<tr id="row_1_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemaingo.html" target="_self">maingo</a></td><td class="desc">Namespace holding all essentials of <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> </td></tr>
+<tr id="row_1_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_1_0_" class="arrow" onclick="toggleFolder('1_0_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemaingo_1_1bab.html" target="_self">bab</a></td><td class="desc">Namespace holding everything related to the actual branch-and-bound algorithm </td></tr>
+<tr id="row_1_0_0_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html" target="_self">BranchAndBound</a></td><td class="desc">This class contains the main algorithm, including handling of pre-processing routines and managing the B&amp;B tree as well as the respective sub-solvers </td></tr>
+<tr id="row_1_1_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_1_1_" class="arrow" onclick="toggleFolder('1_1_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemaingo_1_1lbp.html" target="_self">lbp</a></td><td class="desc">Namespace holding all essentials of the lower bounding solver </td></tr>
+<tr id="row_1_1_0_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html" target="_self">DagObj</a></td><td class="desc">Struct for storing all needed Directed acyclic Graph objects for the upper bounding solver </td></tr>
+<tr id="row_1_1_1_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html" target="_self">LbpClp</a></td><td class="desc">Wrapper for handling the lower bounding problems by interfacing CLP </td></tr>
+<tr id="row_1_1_2_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html" target="_self">LbpCplex</a></td><td class="desc">Wrapper for handling the lower bounding problems by interfacing CPLEX </td></tr>
+<tr id="row_1_1_3_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html" target="_self">LbpDualInfo</a></td><td class="desc">Container for information from the LBP that is needed in DBBT and probing, used for communicating the results via bab </td></tr>
+<tr id="row_1_1_4_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html" target="_self">LbpInterval</a></td><td class="desc">Wrapper for handling the lower bounding problems by using interval arithmetics. We currently do a bit too much work, if the subgradient interval heuristic is not used, since we additionally compute the McCormick relaxations </td></tr>
+<tr id="row_1_1_5_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html" target="_self">LowerBoundingSolver</a></td><td class="desc">Wrapper for handling the lower bounding problems as well as optimization-based bounds tightening (OBBT) </td></tr>
+<tr id="row_1_2_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_1_2_" class="arrow" onclick="toggleFolder('1_2_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemaingo_1_1ubp.html" target="_self">ubp</a></td><td class="desc">Namespace holding all essentials of the upper bounding solvers </td></tr>
+<tr id="row_1_2_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html" target="_self">DagObj</a></td><td class="desc">Struct for storing all needed Directed acyclic Graph objects for the upper bounding solver </td></tr>
+<tr id="row_1_2_1_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html" target="_self">IpoptProblem</a></td><td class="desc">Class for representing problems to be solved by IpOpt, providing an interface to the problem definition in problem.h used by MC++ </td></tr>
+<tr id="row_1_2_2_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html" target="_self">KnitroProblem</a></td><td class="desc">Class for representing problems to be solved by Knitro, providing an interface to the problem definition in problem.h </td></tr>
+<tr id="row_1_2_3_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html" target="_self">UbpClp</a></td><td class="desc">Wrapper for handling the upper bounding problems by interfacing CLP </td></tr>
+<tr id="row_1_2_4_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1ubp_1_1_ubp_cplex.html" target="_self">UbpCplex</a></td><td class="desc">Wrapper for handling the upper bounding problems by interfacing CPLEX </td></tr>
+<tr id="row_1_2_5_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html" target="_self">UbpIpopt</a></td><td class="desc">Wrapper for handling the upper bounding problems by interfacing Ipopt </td></tr>
+<tr id="row_1_2_6_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1ubp_1_1_ubp_knitro.html" target="_self">UbpKnitro</a></td><td class="desc">Wrapper for handling the upper bounding problems by interfacing Knitro </td></tr>
+<tr id="row_1_2_7_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html" target="_self">UbpNLopt</a></td><td class="desc">Wrapper for handling the upper bounding problems by interfacing NLopt </td></tr>
+<tr id="row_1_2_8_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" target="_self">UbpQuadExpr</a></td><td class="desc">Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage </td></tr>
+<tr id="row_1_2_9_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1ubp_1_1_ubp_structure.html" target="_self">UbpStructure</a></td><td class="desc">Struct for storing structure information for the upper bounding solver </td></tr>
+<tr id="row_1_2_10_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html" target="_self">UpperBoundingSolver</a></td><td class="desc">Base class for wrappers for handling the upper bounding problems </td></tr>
+<tr id="row_1_3_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_ale_model.html" target="_self">AleModel</a></td><td class="desc">This class provides the interface for a program composed of ALE expressions </td></tr>
+<tr id="row_1_4_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1_constraint.html" target="_self">Constraint</a></td><td class="desc">Struct for storing information about constraints </td></tr>
+<tr id="row_1_5_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1_constraint_container.html" target="_self">ConstraintContainer</a></td><td class="desc">Containter for constraint evaluation </td></tr>
+<tr id="row_1_6_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1_evaluation_container.html" target="_self">EvaluationContainer</a></td><td class="desc">Struct for storing the values returned by model evaluation at the given point "var" </td></tr>
+<tr id="row_1_7_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_logger.html" target="_self">Logger</a></td><td class="desc">This class contains all logging and output information </td></tr>
+<tr id="row_1_8_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" target="_self">MAiNGO</a></td><td class="desc">This class is the <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> solver holding the B&amp;B tree, upper bounding solver, lower bounding solver and settings </td></tr>
+<tr id="row_1_9_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_maingo_evaluator.html" target="_self">MaingoEvaluator</a></td><td class="desc">Evaluates ALE expressions to Var </td></tr>
+<tr id="row_1_10_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html" target="_self">MAiNGOException</a></td><td class="desc">This class defines the exceptions thrown by <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> </td></tr>
+<tr id="row_1_11_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html" target="_self">MAiNGOmodel</a></td><td class="desc">This class is the base class for models to be solved by <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> </td></tr>
+<tr id="row_1_12_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html" target="_self">MAiNGOmodelEpsCon</a></td><td class="desc">This class is the base class for implementing bi-objective problems </td></tr>
+<tr id="row_1_13_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1_model_function.html" target="_self">ModelFunction</a></td><td class="desc">Struct for making work with the <a class="el" href="structmaingo_1_1_evaluation_container.html" title="Struct for storing the values returned by model evaluation at the given point &quot;var&quot;. ">EvaluationContainer</a> easier for the user and also to ensure backward compatibility </td></tr>
+<tr id="row_1_14_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1_output_variable.html" target="_self">OutputVariable</a></td><td class="desc">Struct for storing additional output variables </td></tr>
+<tr id="row_1_15_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1_program.html" target="_self">Program</a></td><td class="desc">Container Class for ALE expressions comprising an optimization problem </td></tr>
+<tr id="row_1_16_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_program_parser.html" target="_self">ProgramParser</a></td><td class="desc">Parser specialization for parsing a <a class="el" href="structmaingo_1_1_program.html" title="Container Class for ALE expressions comprising an optimization problem. ">maingo::Program</a> </td></tr>
+<tr id="row_1_17_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1_settings.html" target="_self">Settings</a></td><td class="desc">Struct for storing settings for <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> </td></tr>
+<tr id="row_1_18_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_variable_lister.html" target="_self">VariableLister</a></td><td class="desc">Serializes a given symbol and lists it into a vector </td></tr>
+<tr id="row_2_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_2_" class="arrow" onclick="toggleFolder('2_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemc.html" target="_self">mc</a></td><td class="desc">Namespace holding forward declaration of McCormick objects. For more info refer to the open-source library MC++ </td></tr>
+<tr id="row_2_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html" target="_self">Op&lt; maingo::ubp::UbpQuadExpr &gt;</a></td><td class="desc">Specialization of the structure mc::Op for use of the type UbpQuadExpr as a template parameter in other MC++ types </td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_py_m_ai_n_g_omodel.html" target="_self">PyMAiNGOmodel</a></td><td class="desc"></td></tr>
 </table>
 </div><!-- directory -->
 </div><!-- contents -->
@@ -155,7 +155,7 @@ $(document).ready(function(){initNavTree('annotated.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/annotated_dup.js b/doc/html/annotated_dup.js
index 91c834c77115dcb048bdc674175e28ddff4d9406..88ff43767ef8e8fda737402003aab645a4b8e0e7 100644
--- a/doc/html/annotated_dup.js
+++ b/doc/html/annotated_dup.js
@@ -2,5 +2,6 @@ var annotated_dup =
 [
     [ "babBase", "namespacebab_base.html", "namespacebab_base" ],
     [ "maingo", "namespacemaingo.html", "namespacemaingo" ],
-    [ "mc", "namespacemc.html", "namespacemc" ]
+    [ "mc", "namespacemc.html", "namespacemc" ],
+    [ "PyMAiNGOmodel", "class_py_m_ai_n_g_omodel.html", "class_py_m_ai_n_g_omodel" ]
 ];
\ No newline at end of file
diff --git a/doc/html/bab_8cpp.html b/doc/html/bab_8cpp.html
index 1c963bbbbbfd522cbbfd6364c2607cee749b58a8..3a5e682395807697d9f972a49152236d7a3b4a78 100644
--- a/doc/html/bab_8cpp.html
+++ b/doc/html/bab_8cpp.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/src/bab.cpp File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/src/bab.cpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -91,7 +91,7 @@ $(document).ready(function(){initNavTree('bab_8cpp.html','');});
 </div><!--header-->
 <div class="contents">
 <div class="textblock"><code>#include &quot;<a class="el" href="bab_8h_source.html">bab.h</a>&quot;</code><br />
-<code>#include &quot;<a class="el" href="exceptions_8h_source.html">exceptions.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_m_ai_n_g_o_exception_8h_source.html">MAiNGOException.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="get_time_8h_source.html">getTime.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="lbp_8h_source.html">lbp.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="mpi_utilities_8h_source.html">mpiUtilities.h</a>&quot;</code><br />
@@ -106,7 +106,7 @@ $(document).ready(function(){initNavTree('bab_8cpp.html','');});
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="bab_8cpp.html">bab.cpp</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/bab_8h.html b/doc/html/bab_8h.html
index 5f39645cfacb4a92a709d398b9f49dd7736759dc..0095a696be19883fb8170602d4a972d2d93dd77e 100644
--- a/doc/html/bab_8h.html
+++ b/doc/html/bab_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/bab.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/bab.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -134,7 +134,7 @@ Namespaces</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="bab_8h.html">bab.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/bab_8h_source.html b/doc/html/bab_8h_source.html
index 1db5ef2d4ee2ec49680c8a39a59f365dd19c829e..6027ae9c33aa08dc5adb8bdcfe0c0fc369767c41 100644
--- a/doc/html/bab_8h_source.html
+++ b/doc/html/bab_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/bab.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/bab.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,90 +90,88 @@ $(document).ready(function(){initNavTree('bab_8h_source.html','');});
 <div class="title">bab.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="bab_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file bab.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File declaring the BranchAndBound solver class which manages the tree</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *        and the respective sub-solvers.</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_m_ai_n_g_odebug_8h.html">MAiNGOdebug.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="logger_8h.html">logger.h</a>&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="mpi_utilities_8h.html">mpiUtilities.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#ifdef HAVE_MAiNGO_MPI</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="exceptions_8h.html">exceptions.h</a>&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_brancher_8h.html">babBrancher.h</a>&quot;</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &lt;cmath&gt;</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &lt;map&gt;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html">   38</a></span>&#160;<span class="keyword">namespace </span>lbp {</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">LowerBoundingSolver</a>;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="keyword">struct </span><a class="code" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html">LbpDualInfo</a>;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;}    <span class="comment">// namespace lbp</span></div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html">   42</a></span>&#160;<span class="keyword">namespace </span>ubp {</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">UpperBoundingSolver</a>;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;}    <span class="comment">// namespace ubp</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="keyword">namespace </span>bab {</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html">   63</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html">BranchAndBound</a> {</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a0795ab80ed85f416a1834c2bc62f2d88">BranchAndBound</a>(<span class="keyword">const</span> std::vector&lt;babBase::OptimizationVariable&gt; &amp;variables, std::shared_ptr&lt;lbp::LowerBoundingSolver&gt; LBSIn, std::shared_ptr&lt;ubp::UpperBoundingSolver&gt; UBSIn,</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;                   <a class="code" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="code" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nvarWOaux);</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a7db5251fcd9ad3ca2892a9b17cb7b197">   82</a></span>&#160;    <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a7db5251fcd9ad3ca2892a9b17cb7b197">~BranchAndBound</a>() {}</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2">babBase::enums::BAB_RETCODE</a> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#afbbe46b34b476fa5b54c5faa112581b6">solve</a>(<a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;rootNodeIn, <span class="keywordtype">double</span> &amp;solutionValue, std::vector&lt;double&gt; &amp;solutionPoint, <span class="keyword">const</span> <span class="keywordtype">double</span> preprocessTime, <span class="keywordtype">double</span> &amp;timePassed);</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a90cf43573f5755481bdd020dcaa7d351">   98</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a90cf43573f5755481bdd020dcaa7d351">get_iterations</a>() { <span class="keywordflow">return</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a3b90d97c448a84541e48eeb4388358a9">_iterations</a>; }</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a668165551fb2c2cc69a05b1956755147">  103</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a668165551fb2c2cc69a05b1956755147">get_max_nodes_in_memory</a>() { <span class="keywordflow">return</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a88be959487932d46d6ff8227bd8f3f5b">_nNodesMaxInMemory</a>; }</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a3da7e60c4fad8100f38732fc06d2547c">  108</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a3da7e60c4fad8100f38732fc06d2547c">get_UBP_count</a>() { <span class="keywordflow">return</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a85091bc9965339278cc9c02b2baf354b">_ubdcnt</a>; }</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#af593cef9ed1bcfa512f7302732b9a614">  113</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#af593cef9ed1bcfa512f7302732b9a614">get_LBP_count</a>() { <span class="keywordflow">return</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a278e8c37f4d71abed1e0cb62b6366e5e">_lbdcnt</a>; }</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a2a6ba10d4cba3be0656bdc1f434b796d">  118</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a2a6ba10d4cba3be0656bdc1f434b796d">get_final_LBD</a>() { <span class="keywordflow">return</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a7329b6c29c7a8686f7b417f3cfe93026">_lbd</a>; }</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a4b993e6ced9b383b2ec2e3b4e617009a">  123</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a4b993e6ced9b383b2ec2e3b4e617009a">get_final_abs_gap</a>() { <span class="keywordflow">return</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#adf8377615ee4d86485f589700902126c">_ubd</a> - <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a7329b6c29c7a8686f7b417f3cfe93026">_lbd</a>; }</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a18915a6568908d9aba4e09f1d2d8b23c">  128</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a18915a6568908d9aba4e09f1d2d8b23c">get_final_rel_gap</a>() { <span class="keywordflow">return</span> ((<a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#adf8377615ee4d86485f589700902126c">_ubd</a> == 0) ? (<a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a4b993e6ced9b383b2ec2e3b4e617009a">get_final_abs_gap</a>()) : ((<a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#adf8377615ee4d86485f589700902126c">_ubd</a> - <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a7329b6c29c7a8686f7b417f3cfe93026">_lbd</a>) / std::fabs(<a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#adf8377615ee4d86485f589700902126c">_ubd</a>))); }</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a63faf2c1a9fa6aaa062a271455813c01">  133</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a63faf2c1a9fa6aaa062a271455813c01">get_first_found</a>() { <span class="keywordflow">return</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a88880806d0ddfe42862a876ca961cbf6">_firstFound</a>; }</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ae420e5187f1c1595d132a27bdc656529">  138</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ae420e5187f1c1595d132a27bdc656529">get_nodes_left</a>() { <span class="keywordflow">return</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#af0c2fdc294a5197cc5cf2931945f1ec6">_nNodesLeft</a>; }</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1">  145</a></span>&#160;    <span class="keyword">enum</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1">_TERMINATION_TYPE</a> {</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ac0b46b223d15cc2e3851dcaf961b9e7a">  146</a></span>&#160;        <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ac0b46b223d15cc2e3851dcaf961b9e7a">_TERMINATED</a> = 0,            </div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ab77e9f73c90db0ea95610d8103738966">  147</a></span>&#160;        <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ab77e9f73c90db0ea95610d8103738966">_TERMINATED_WORKERS_ACTIVE</a>, </div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a244a114749491f6b442fd2563fefbc5e">  148</a></span>&#160;        <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a244a114749491f6b442fd2563fefbc5e">_NOT_TERMINATED</a>             </div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    };</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    std::tuple&lt;bool, bool, int, int, double, std::vector&lt;double&gt;, bool, double, std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a15520696d8e8e38197992c71ffd91c53">_process_node</a>(<a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNodeInOut);</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a990927b31d0abc3c0df5ab3883c12de1">_preprocess_node</a>(<a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNodeInOut);</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    std::tuple&lt;bool, bool, double, std::vector&lt;double&gt;, <a class="code" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html">lbp::LbpDualInfo</a>&gt; <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a969736750315215126c3bad4b398d2e9">_solve_LBP</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode);</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;    std::tuple&lt;bool, bool, double&gt; <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#acab7696c07ae41c7a9296c0977359b1e">_solve_UBP</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode, std::vector&lt;double&gt; &amp;ubpSolutionPoint, <span class="keyword">const</span> <span class="keywordtype">double</span> currentLBD);</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a29001119914eca2657390048e11db609">_postprocess_node</a>(<a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNodeInOut, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lbpSolutionPoint, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html">lbp::LbpDualInfo</a> &amp;dualInfo);</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a13e706473cf2f26ac9b3d20344270aaa">_update_incumbent_and_fathom</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> solval, <span class="keyword">const</span> std::vector&lt;double&gt; sol, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> currentNodeID);</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a5cbefb1e86ca300d67ae3c65eab1099b">_update_lowest_lbd</a>();</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ad5e5e8e1a0f2a3dda0a6deac59409fd6">_check_if_more_scaling_needed</a>();</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;    <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1">_TERMINATION_TYPE</a> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a535696550d694df9bc017ef6cd144a58">_check_termination</a>();</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ad2b56f40c7255d731c196b1661cee2d4">_display_and_log_progress</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> currentNodeLBD, <span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode);</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a80be7a4efd5e0f39765c635d6be13116">_print_termination</a>(std::string message);</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ad1c6f9191a7ab197f5a48ea554594462">_print_one_node</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> theLBD, <span class="keyword">const</span> <span class="keywordtype">int</span> ID, <span class="keyword">const</span> std::vector&lt;double&gt; lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; upperVarBounds);</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ad1c6f9191a7ab197f5a48ea554594462">_print_one_node</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> theLBD, <span class="keyword">const</span> <span class="keywordtype">int</span> ID, <span class="keyword">const</span> std::vector&lt;double&gt; lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; upperVarBounds, std::ostream &amp;outstream);</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;</div><div class="line"><a name="l00261"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a1f542019964ce925a4d19eb951049da7">  261</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a1f542019964ce925a4d19eb951049da7">_print_one_node</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> theLBD, <span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;theNode) { <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a1f542019964ce925a4d19eb951049da7">_print_one_node</a>(theLBD, theNode.<a class="code" href="classbab_base_1_1_bab_node.html#a12e23225255660e57238ecb0820ea420">get_ID</a>(), theNode.<a class="code" href="classbab_base_1_1_bab_node.html#a00e68c3242d5180d302cf5c8e1f8de2c">get_lower_bounds</a>(), theNode.<a class="code" href="classbab_base_1_1_bab_node.html#a2a0922468fbfe492d9d70231c54c4bf9">get_upper_bounds</a>()); }</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ad301660df21f804bccefa3da694aa743">  270</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ad301660df21f804bccefa3da694aa743">_print_one_node</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> theLBD, <span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;theNode, std::ostream &amp;outstream) { <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ad301660df21f804bccefa3da694aa743">_print_one_node</a>(theLBD, theNode.<a class="code" href="classbab_base_1_1_bab_node.html#a12e23225255660e57238ecb0820ea420">get_ID</a>(), theNode.<a class="code" href="classbab_base_1_1_bab_node.html#a00e68c3242d5180d302cf5c8e1f8de2c">get_lower_bounds</a>(), theNode.<a class="code" href="classbab_base_1_1_bab_node.html#a2a0922468fbfe492d9d70231c54c4bf9">get_upper_bounds</a>(), outstream); }</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;<span class="preprocessor">#ifdef HAVE_MAiNGO_MPI</span></div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;    <span class="keywordtype">void</span> _handle_exception(maingo::MAiNGOMpiException &amp;e);</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;    <span class="keywordtype">void</span> _recv_solved_problem(<a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;node, <span class="keywordtype">double</span> &amp;lbd, std::vector&lt;double&gt; &amp;lbdSolutionPoint, <span class="keywordtype">unsigned</span> &amp;lbdcnt,</div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;                              <span class="keywordtype">unsigned</span> &amp;ubdcnt, <span class="keyword">const</span> COMMUNICATION_TAG status, <span class="keyword">const</span> <span class="keywordtype">int</span> src);</div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;</div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;    <span class="keywordtype">void</span> _send_new_problem(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;node, <span class="keyword">const</span> <span class="keywordtype">int</span> dest);</div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;    <span class="keywordtype">void</span> _inform_worker_about_event(<span class="keyword">const</span> BCAST_TAG eventTag, <span class="keyword">const</span> <span class="keywordtype">bool</span> blocking);</div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;    <span class="keywordtype">void</span> _recv_new_problem(<a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;node);</div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;</div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;    <span class="keywordtype">void</span> _send_incumbent(<span class="keyword">const</span> <span class="keywordtype">double</span> ubd, <span class="keyword">const</span> std::vector&lt;double&gt; incumbent, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> incumbentID);</div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;</div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;    <span class="keywordtype">void</span> _send_solved_problem(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> node, <span class="keyword">const</span> <span class="keywordtype">double</span> lbd, <span class="keyword">const</span> std::vector&lt;double&gt; lbdSolutionPoint,</div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;                              <span class="keyword">const</span> <span class="keywordtype">unsigned</span> lbdcnt, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> ubdcnt, <span class="keyword">const</span> COMMUNICATION_TAG status);</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;</div><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;    <span class="keywordtype">void</span> _sync_with_master(MPI_Request &amp;req);</div><div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;</div><div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;    <span class="keywordtype">void</span> _sync_with_master(MPI_Request &amp;req, <span class="keywordtype">bool</span> &amp;terminate);</div><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;</div><div class="line"><a name="l00365"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a88d35fc68351774dadb831c38ffd93ee">  365</a></span>&#160;    std::unique_ptr&lt;babBase::Brancher&gt; <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a88d35fc68351774dadb831c38ffd93ee">_brancher</a>;   </div><div class="line"><a name="l00366"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#af1853b2ef51e8bddd0a9ab2404340037">  366</a></span>&#160;    std::shared_ptr&lt;ubp::UpperBoundingSolver&gt; <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#af1853b2ef51e8bddd0a9ab2404340037">_UBS</a>; </div><div class="line"><a name="l00367"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a16bbea3c96042145acc5df3830cd72b4">  367</a></span>&#160;    std::shared_ptr&lt;lbp::LowerBoundingSolver&gt; <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a16bbea3c96042145acc5df3830cd72b4">_LBS</a>; </div><div class="line"><a name="l00369"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#acca388f26f5e0c94b58643b566b8a235">  369</a></span>&#160;    <a class="code" href="structmaingo_1_1_settings.html">Settings</a> *<a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#acca388f26f5e0c94b58643b566b8a235">_maingoSettings</a>; </div><div class="line"><a name="l00375"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aa47a427d6c433a26a35b5882e54480e4">  375</a></span>&#160;    std::vector&lt;babBase::OptimizationVariable&gt; <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aa47a427d6c433a26a35b5882e54480e4">_originalVariables</a>; </div><div class="line"><a name="l00376"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aa66393ce301be8002cdea9b1b43aa5b2">  376</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aa66393ce301be8002cdea9b1b43aa5b2">_nvar</a>;                                          </div><div class="line"><a name="l00377"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a109e3a4afa84d559ec9b88376b0a63b2">  377</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a109e3a4afa84d559ec9b88376b0a63b2">_nvarWOaux</a>;                                     </div><div class="line"><a name="l00378"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a0a241298a1b0f9b0707386e9143e0186">  378</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a0a241298a1b0f9b0707386e9143e0186">_lowerVarBoundsOrig</a>;                       </div><div class="line"><a name="l00379"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a5bd0987c7dde438e8d52af87421d78c5">  379</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a5bd0987c7dde438e8d52af87421d78c5">_upperVarBoundsOrig</a>;                       </div><div class="line"><a name="l00386"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ac3e65fd10f0294c31f8428330e517f85">  386</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ac3e65fd10f0294c31f8428330e517f85">_incumbent</a>;      </div><div class="line"><a name="l00387"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#acc2f5918ff76d313d9f0d9eae3c749cd">  387</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#acc2f5918ff76d313d9f0d9eae3c749cd">_initialPoint</a>;   </div><div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#adf8377615ee4d86485f589700902126c">  388</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#adf8377615ee4d86485f589700902126c">_ubd</a>;                         </div><div class="line"><a name="l00389"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a7329b6c29c7a8686f7b417f3cfe93026">  389</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a7329b6c29c7a8686f7b417f3cfe93026">_lbd</a>;                         </div><div class="line"><a name="l00390"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a8855b78bf4580af1d40f463eb88f9883">  390</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a8855b78bf4580af1d40f463eb88f9883">_bestLbdFathomed</a>;             </div><div class="line"><a name="l00391"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aa52c4379706307b5d5834a702d824854">  391</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aa52c4379706307b5d5834a702d824854">_foundFeas</a>;                     </div><div class="line"><a name="l00392"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a88880806d0ddfe42862a876ca961cbf6">  392</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a88880806d0ddfe42862a876ca961cbf6">_firstFound</a>;                </div><div class="line"><a name="l00393"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a2defed7ca937feacb124cc97b8f7915f">  393</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a2defed7ca937feacb124cc97b8f7915f">_incumbentNodeId</a>;           </div><div class="line"><a name="l00394"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a010075b80170c61b0c30490e64ec979d">  394</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2">babBase::enums::BAB_RETCODE</a> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a010075b80170c61b0c30490e64ec979d">_status</a>; </div><div class="line"><a name="l00401"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#adaeb5fb5c51be07833bf51f921ce2e65">  401</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#adaeb5fb5c51be07833bf51f921ce2e65">_lbdOld</a>;             </div><div class="line"><a name="l00402"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a67bce3a5b8585ec930b305d9a77a3d47">  402</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a67bce3a5b8585ec930b305d9a77a3d47">_lbdNotChanged</a>;    </div><div class="line"><a name="l00403"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#acc9b140b91203d6ca5d45f84b697be42">  403</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#acc9b140b91203d6ca5d45f84b697be42">_moreScalingActivated</a>; </div><div class="line"><a name="l00410"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aa66b24455102ab0550c9ed6c611e88a2">  410</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aa66b24455102ab0550c9ed6c611e88a2">_nNodesTotal</a>;       </div><div class="line"><a name="l00411"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#af0c2fdc294a5197cc5cf2931945f1ec6">  411</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#af0c2fdc294a5197cc5cf2931945f1ec6">_nNodesLeft</a>;        </div><div class="line"><a name="l00412"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a88be959487932d46d6ff8227bd8f3f5b">  412</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a88be959487932d46d6ff8227bd8f3f5b">_nNodesMaxInMemory</a>; </div><div class="line"><a name="l00413"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a10bf89f5a097f9d865ad5546eeee9b40">  413</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a10bf89f5a097f9d865ad5546eeee9b40">_nNodesDeleted</a>;     </div><div class="line"><a name="l00414"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a70df6922540227a62b49549e0d6f9dcf">  414</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a70df6922540227a62b49549e0d6f9dcf">_nNodesFathomed</a>;    </div><div class="line"><a name="l00421"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a278e8c37f4d71abed1e0cb62b6366e5e">  421</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a278e8c37f4d71abed1e0cb62b6366e5e">_lbdcnt</a>;       </div><div class="line"><a name="l00422"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a85091bc9965339278cc9c02b2baf354b">  422</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a85091bc9965339278cc9c02b2baf354b">_ubdcnt</a>;       </div><div class="line"><a name="l00423"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#af4816842caa40287b9fcda0401238236">  423</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#af4816842caa40287b9fcda0401238236">_timePassed</a>;     </div><div class="line"><a name="l00424"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a17af9af1c4195bb491a0624d3a4edb36">  424</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a17af9af1c4195bb491a0624d3a4edb36">_timePreprocess</a>; </div><div class="line"><a name="l00425"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ab0c17e7072887baa0bf2377a7be7a4bc">  425</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ab0c17e7072887baa0bf2377a7be7a4bc">_daysPassed</a>;   </div><div class="line"><a name="l00432"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a46473e89580e44ef3576e9040e469478">  432</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a46473e89580e44ef3576e9040e469478">_linesprinted</a>;       </div><div class="line"><a name="l00433"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a3b90d97c448a84541e48eeb4388358a9">  433</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a3b90d97c448a84541e48eeb4388358a9">_iterations</a>;         </div><div class="line"><a name="l00434"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a4d1d7552bc0294281b7453a757a5b1c4">  434</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a4d1d7552bc0294281b7453a757a5b1c4">_iterationsgap</a>;      </div><div class="line"><a name="l00435"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a733596f5150a34554a2e001bc2a7bd1e">  435</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a733596f5150a34554a2e001bc2a7bd1e">_printNewIncumbent</a>;      </div><div class="line"><a name="l00436"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a193f594912e00a2c4d8cacfd4efbdfd5">  436</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a193f594912e00a2c4d8cacfd4efbdfd5">_writeToLogEverySec</a>; </div><div class="line"><a name="l00437"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aaf1e5ea028afe7d2700a6cc573d67674">  437</a></span>&#160;    <a class="code" href="classmaingo_1_1_logger.html">Logger</a> *<a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aaf1e5ea028afe7d2700a6cc573d67674">_logger</a>;              </div><div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;<span class="preprocessor">#ifdef HAVE_MAiNGO_MPI</span></div><div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;</div><div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;    <span class="keywordtype">int</span> _rank;             </div><div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;    <span class="keywordtype">int</span> _nProcs;           </div><div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;    BCAST_TAG _bcastTag;   </div><div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;    MPI_Request _bcastReq; </div><div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;    std::vector&lt;bool&gt; _informedWorkerAboutIncumbent;           </div><div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;    <span class="keywordtype">bool</span> _checkForNodeWithIncumbent;                           </div><div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;    <span class="keywordtype">bool</span> _confirmedTermination;                                </div><div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;    <span class="keywordtype">unsigned</span> _workCount;                                       </div><div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;    std::vector&lt;std::pair&lt;bool, double&gt;&gt; _nodesGivenToWorkers; </div><div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;    <span class="keywordtype">bool</span> _pendingIncumbentUpdate; </div><div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;    MPI_Request _incumbentReq;    </div><div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;};</div><div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;</div><div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;</div><div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;}    <span class="comment">// end namespace bab</span></div><div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;</div><div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;</div><div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></div><div class="ttdoc">Wrapper for handling the lower bounding problems as well as optimization-based bounds tightening (OBB...</div><div class="ttdef"><b>Definition:</b> lbp.h:60</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a80be7a4efd5e0f39765c635d6be13116"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a80be7a4efd5e0f39765c635d6be13116">maingo::bab::BranchAndBound::_print_termination</a></div><div class="ttdeci">void _print_termination(std::string message)</div><div class="ttdoc">Function printing a termination message.</div><div class="ttdef"><b>Definition:</b> bab.cpp:1247</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_ad2b56f40c7255d731c196b1661cee2d4"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#ad2b56f40c7255d731c196b1661cee2d4">maingo::bab::BranchAndBound::_display_and_log_progress</a></div><div class="ttdeci">void _display_and_log_progress(const double currentNodeLBD, const babBase::BabNode &amp;currentNode)</div><div class="ttdoc">Function for printing the current progress on the screen and appending it to the internal log to be w...</div><div class="ttdef"><b>Definition:</b> bab.cpp:907</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_aa47a427d6c433a26a35b5882e54480e4"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#aa47a427d6c433a26a35b5882e54480e4">maingo::bab::BranchAndBound::_originalVariables</a></div><div class="ttdeci">std::vector&lt; babBase::OptimizationVariable &gt; _originalVariables</div><div class="ttdef"><b>Definition:</b> bab.h:375</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html_a12e23225255660e57238ecb0820ea420"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a12e23225255660e57238ecb0820ea420">babBase::BabNode::get_ID</a></div><div class="ttdeci">int get_ID() const</div><div class="ttdoc">Function for querying the node ID.</div><div class="ttdef"><b>Definition:</b> babNode.h:100</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></div><div class="ttdoc">This class contains the main algorithm, including handling of pre-processing routines and managing th...</div><div class="ttdef"><b>Definition:</b> bab.h:63</div></div>
-<div class="ttc" id="namespacebab_base_1_1enums_html_a2c4d021a83d3363ae57623c7376761d2"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2">babBase::enums::BAB_RETCODE</a></div><div class="ttdeci">BAB_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the B&amp;B solver.</div><div class="ttdef"><b>Definition:</b> babUtils.h:126</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a07ba7b9ae290bc913f2d2ca19c7c49e1a244a114749491f6b442fd2563fefbc5e"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a244a114749491f6b442fd2563fefbc5e">maingo::bab::BranchAndBound::_NOT_TERMINATED</a></div><div class="ttdef"><b>Definition:</b> bab.h:148</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_aa52c4379706307b5d5834a702d824854"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#aa52c4379706307b5d5834a702d824854">maingo::bab::BranchAndBound::_foundFeas</a></div><div class="ttdeci">bool _foundFeas</div><div class="ttdef"><b>Definition:</b> bab.h:391</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a67bce3a5b8585ec930b305d9a77a3d47"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a67bce3a5b8585ec930b305d9a77a3d47">maingo::bab::BranchAndBound::_lbdNotChanged</a></div><div class="ttdeci">unsigned _lbdNotChanged</div><div class="ttdef"><b>Definition:</b> bab.h:402</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html"><div class="ttname"><a href="classbab_base_1_1_bab_node.html">babBase::BabNode</a></div><div class="ttdoc">Class representing a node in the Branch-and-Bound tree.</div><div class="ttdef"><b>Definition:</b> babNode.h:35</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a15520696d8e8e38197992c71ffd91c53"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a15520696d8e8e38197992c71ffd91c53">maingo::bab::BranchAndBound::_process_node</a></div><div class="ttdeci">std::tuple&lt; bool, bool, int, int, double, std::vector&lt; double &gt;, bool, double, std::vector&lt; double &gt; &gt; _process_node(babBase::BabNode &amp;currentNodeInOut)</div><div class="ttdoc">Function processing the current node.</div><div class="ttdef"><b>Definition:</b> bab.cpp:549</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a07ba7b9ae290bc913f2d2ca19c7c49e1ac0b46b223d15cc2e3851dcaf961b9e7a"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ac0b46b223d15cc2e3851dcaf961b9e7a">maingo::bab::BranchAndBound::_TERMINATED</a></div><div class="ttdef"><b>Definition:</b> bab.h:146</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_af4816842caa40287b9fcda0401238236"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#af4816842caa40287b9fcda0401238236">maingo::bab::BranchAndBound::_timePassed</a></div><div class="ttdeci">double _timePassed</div><div class="ttdef"><b>Definition:</b> bab.h:423</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a85091bc9965339278cc9c02b2baf354b"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a85091bc9965339278cc9c02b2baf354b">maingo::bab::BranchAndBound::_ubdcnt</a></div><div class="ttdeci">unsigned _ubdcnt</div><div class="ttdef"><b>Definition:</b> bab.h:422</div></div>
-<div class="ttc" id="bab_brancher_8h_html"><div class="ttname"><a href="bab_brancher_8h.html">babBrancher.h</a></div><div class="ttdoc">File containing definition of the Branch-and-Bound brancher class.</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html"><div class="ttname"><a href="structmaingo_1_1_settings.html">maingo::Settings</a></div><div class="ttdoc">Struct for storing settings for MAiNGO.</div><div class="ttdef"><b>Definition:</b> settings.h:143</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a193f594912e00a2c4d8cacfd4efbdfd5"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a193f594912e00a2c4d8cacfd4efbdfd5">maingo::bab::BranchAndBound::_writeToLogEverySec</a></div><div class="ttdeci">unsigned _writeToLogEverySec</div><div class="ttdef"><b>Definition:</b> bab.h:436</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a13e706473cf2f26ac9b3d20344270aaa"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a13e706473cf2f26ac9b3d20344270aaa">maingo::bab::BranchAndBound::_update_incumbent_and_fathom</a></div><div class="ttdeci">void _update_incumbent_and_fathom(const double solval, const std::vector&lt; double &gt; sol, const unsigned int currentNodeID)</div><div class="ttdoc">Function for updating the incumbent and fathoming accordingly.</div><div class="ttdef"><b>Definition:</b> bab.cpp:803</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_af1853b2ef51e8bddd0a9ab2404340037"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#af1853b2ef51e8bddd0a9ab2404340037">maingo::bab::BranchAndBound::_UBS</a></div><div class="ttdeci">std::shared_ptr&lt; ubp::UpperBoundingSolver &gt; _UBS</div><div class="ttdef"><b>Definition:</b> bab.h:366</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a90cf43573f5755481bdd020dcaa7d351"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a90cf43573f5755481bdd020dcaa7d351">maingo::bab::BranchAndBound::get_iterations</a></div><div class="ttdeci">double get_iterations()</div><div class="ttdoc">Function returning the number of iterations.</div><div class="ttdef"><b>Definition:</b> bab.h:98</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a63faf2c1a9fa6aaa062a271455813c01"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a63faf2c1a9fa6aaa062a271455813c01">maingo::bab::BranchAndBound::get_first_found</a></div><div class="ttdeci">double get_first_found()</div><div class="ttdoc">Function returning the ID of the node where the incumbent was first found.</div><div class="ttdef"><b>Definition:</b> bab.h:133</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a3da7e60c4fad8100f38732fc06d2547c"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a3da7e60c4fad8100f38732fc06d2547c">maingo::bab::BranchAndBound::get_UBP_count</a></div><div class="ttdeci">double get_UBP_count()</div><div class="ttdoc">Function returning number of UBD problems solved.</div><div class="ttdef"><b>Definition:</b> bab.h:108</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a8855b78bf4580af1d40f463eb88f9883"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a8855b78bf4580af1d40f463eb88f9883">maingo::bab::BranchAndBound::_bestLbdFathomed</a></div><div class="ttdeci">double _bestLbdFathomed</div><div class="ttdef"><b>Definition:</b> bab.h:390</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a969736750315215126c3bad4b398d2e9"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a969736750315215126c3bad4b398d2e9">maingo::bab::BranchAndBound::_solve_LBP</a></div><div class="ttdeci">std::tuple&lt; bool, bool, double, std::vector&lt; double &gt;, lbp::LbpDualInfo &gt; _solve_LBP(const babBase::BabNode &amp;currentNode)</div><div class="ttdoc">Function invoking the LBS to solve the lower bounding problem.</div><div class="ttdef"><b>Definition:</b> bab.cpp:672</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_acc9b140b91203d6ca5d45f84b697be42"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#acc9b140b91203d6ca5d45f84b697be42">maingo::bab::BranchAndBound::_moreScalingActivated</a></div><div class="ttdeci">bool _moreScalingActivated</div><div class="ttdef"><b>Definition:</b> bab.h:403</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_aaf1e5ea028afe7d2700a6cc573d67674"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#aaf1e5ea028afe7d2700a6cc573d67674">maingo::bab::BranchAndBound::_logger</a></div><div class="ttdeci">Logger * _logger</div><div class="ttdef"><b>Definition:</b> bab.h:437</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html"><div class="ttname"><a href="classmaingo_1_1_logger.html">maingo::Logger</a></div><div class="ttdoc">This class contains all logging and output information.</div><div class="ttdef"><b>Definition:</b> logger.h:101</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a990927b31d0abc3c0df5ab3883c12de1"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a990927b31d0abc3c0df5ab3883c12de1">maingo::bab::BranchAndBound::_preprocess_node</a></div><div class="ttdeci">bool _preprocess_node(babBase::BabNode &amp;currentNodeInOut)</div><div class="ttdoc">Function for pre-processing the current node. Includes bound tightening and OBBT.</div><div class="ttdef"><b>Definition:</b> bab.cpp:616</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a010075b80170c61b0c30490e64ec979d"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a010075b80170c61b0c30490e64ec979d">maingo::bab::BranchAndBound::_status</a></div><div class="ttdeci">babBase::enums::BAB_RETCODE _status</div><div class="ttdef"><b>Definition:</b> bab.h:394</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a535696550d694df9bc017ef6cd144a58"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a535696550d694df9bc017ef6cd144a58">maingo::bab::BranchAndBound::_check_termination</a></div><div class="ttdeci">_TERMINATION_TYPE _check_termination()</div><div class="ttdoc">Function for checking if the B&amp;B algorithm terminated.</div><div class="ttdef"><b>Definition:</b> bab.cpp:1059</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html_a00e68c3242d5180d302cf5c8e1f8de2c"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a00e68c3242d5180d302cf5c8e1f8de2c">babBase::BabNode::get_lower_bounds</a></div><div class="ttdeci">std::vector&lt; double &gt; get_lower_bounds() const</div><div class="ttdoc">Function for querying the lower bounds on the optimization variables within this node.</div><div class="ttdef"><b>Definition:</b> babNode.h:90</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a0795ab80ed85f416a1834c2bc62f2d88"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a0795ab80ed85f416a1834c2bc62f2d88">maingo::bab::BranchAndBound::BranchAndBound</a></div><div class="ttdeci">BranchAndBound(const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, std::shared_ptr&lt; lbp::LowerBoundingSolver &gt; LBSIn, std::shared_ptr&lt; ubp::UpperBoundingSolver &gt; UBSIn, Settings *settingsIn, Logger *loggerIn, const unsigned nvarWOaux)</div><div class="ttdoc">Constructor, stores information on problem and settings.</div><div class="ttdef"><b>Definition:</b> bab.cpp:34</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a109e3a4afa84d559ec9b88376b0a63b2"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a109e3a4afa84d559ec9b88376b0a63b2">maingo::bab::BranchAndBound::_nvarWOaux</a></div><div class="ttdeci">const unsigned _nvarWOaux</div><div class="ttdef"><b>Definition:</b> bab.h:377</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a18915a6568908d9aba4e09f1d2d8b23c"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a18915a6568908d9aba4e09f1d2d8b23c">maingo::bab::BranchAndBound::get_final_rel_gap</a></div><div class="ttdeci">double get_final_rel_gap()</div><div class="ttdoc">Function returning the final relative gap.</div><div class="ttdef"><b>Definition:</b> bab.h:128</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a29001119914eca2657390048e11db609"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a29001119914eca2657390048e11db609">maingo::bab::BranchAndBound::_postprocess_node</a></div><div class="ttdeci">bool _postprocess_node(babBase::BabNode &amp;currentNodeInOut, const std::vector&lt; double &gt; &amp;lbpSolutionPoint, const lbp::LbpDualInfo &amp;dualInfo)</div><div class="ttdoc">Function for post-processing the current node. Includes bound DBBT and probing.</div><div class="ttdef"><b>Definition:</b> bab.cpp:777</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a4d1d7552bc0294281b7453a757a5b1c4"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a4d1d7552bc0294281b7453a757a5b1c4">maingo::bab::BranchAndBound::_iterationsgap</a></div><div class="ttdeci">unsigned _iterationsgap</div><div class="ttdef"><b>Definition:</b> bab.h:434</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_afbbe46b34b476fa5b54c5faa112581b6"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#afbbe46b34b476fa5b54c5faa112581b6">maingo::bab::BranchAndBound::solve</a></div><div class="ttdeci">babBase::enums::BAB_RETCODE solve(babBase::BabNode &amp;rootNodeIn, double &amp;solutionValue, std::vector&lt; double &gt; &amp;solutionPoint, const double preprocessTime, double &amp;timePassed)</div><div class="ttdoc">Main function to solve the optimization problem.</div><div class="ttdef"><b>Definition:</b> bab.cpp:115</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a07ba7b9ae290bc913f2d2ca19c7c49e1ab77e9f73c90db0ea95610d8103738966"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ab77e9f73c90db0ea95610d8103738966">maingo::bab::BranchAndBound::_TERMINATED_WORKERS_ACTIVE</a></div><div class="ttdef"><b>Definition:</b> bab.h:147</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_adaeb5fb5c51be07833bf51f921ce2e65"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#adaeb5fb5c51be07833bf51f921ce2e65">maingo::bab::BranchAndBound::_lbdOld</a></div><div class="ttdeci">double _lbdOld</div><div class="ttdef"><b>Definition:</b> bab.h:401</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a88be959487932d46d6ff8227bd8f3f5b"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a88be959487932d46d6ff8227bd8f3f5b">maingo::bab::BranchAndBound::_nNodesMaxInMemory</a></div><div class="ttdeci">unsigned _nNodesMaxInMemory</div><div class="ttdef"><b>Definition:</b> bab.h:412</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></div><div class="ttdoc">Base class for wrappers for handling the upper bounding problems.</div><div class="ttdef"><b>Definition:</b> ubp.h:49</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a46473e89580e44ef3576e9040e469478"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a46473e89580e44ef3576e9040e469478">maingo::bab::BranchAndBound::_linesprinted</a></div><div class="ttdeci">unsigned _linesprinted</div><div class="ttdef"><b>Definition:</b> bab.h:432</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a70df6922540227a62b49549e0d6f9dcf"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a70df6922540227a62b49549e0d6f9dcf">maingo::bab::BranchAndBound::_nNodesFathomed</a></div><div class="ttdeci">unsigned _nNodesFathomed</div><div class="ttdef"><b>Definition:</b> bab.h:414</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a0a241298a1b0f9b0707386e9143e0186"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a0a241298a1b0f9b0707386e9143e0186">maingo::bab::BranchAndBound::_lowerVarBoundsOrig</a></div><div class="ttdeci">std::vector&lt; double &gt; _lowerVarBoundsOrig</div><div class="ttdef"><b>Definition:</b> bab.h:378</div></div>
-<div class="ttc" id="exceptions_8h_html"><div class="ttname"><a href="exceptions_8h.html">exceptions.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_ac3e65fd10f0294c31f8428330e517f85"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#ac3e65fd10f0294c31f8428330e517f85">maingo::bab::BranchAndBound::_incumbent</a></div><div class="ttdeci">std::vector&lt; double &gt; _incumbent</div><div class="ttdef"><b>Definition:</b> bab.h:386</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_ad301660df21f804bccefa3da694aa743"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#ad301660df21f804bccefa3da694aa743">maingo::bab::BranchAndBound::_print_one_node</a></div><div class="ttdeci">void _print_one_node(const double theLBD, const babBase::BabNode &amp;theNode, std::ostream &amp;outstream)</div><div class="ttdoc">Function printing one node.</div><div class="ttdef"><b>Definition:</b> bab.h:270</div></div>
+<a href="bab_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_m_ai_n_g_odebug_8h.html">MAiNGOdebug.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="logger_8h.html">logger.h</a>&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="mpi_utilities_8h.html">mpiUtilities.h</a>&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#ifdef HAVE_MAiNGO_MPI</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_m_ai_n_g_o_mpi_exception_8h.html">MAiNGOMpiException.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_brancher_8h.html">babBrancher.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;cmath&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;map&gt;</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html">   33</a></span>&#160;<span class="keyword">namespace </span>lbp {</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">LowerBoundingSolver</a>;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="keyword">struct </span><a class="code" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html">LbpDualInfo</a>;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;}    <span class="comment">// namespace lbp</span></div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html">   37</a></span>&#160;<span class="keyword">namespace </span>ubp {</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">UpperBoundingSolver</a>;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;}    <span class="comment">// namespace ubp</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="keyword">namespace </span>bab {</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html">   58</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html">BranchAndBound</a> {</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ab1e963d56b3adc807decb6e4dc1bee85">BranchAndBound</a>(<span class="keyword">const</span> std::vector&lt;babBase::OptimizationVariable&gt; &amp;variables, std::shared_ptr&lt;lbp::LowerBoundingSolver&gt; LBSIn, std::shared_ptr&lt;ubp::UpperBoundingSolver&gt; UBSIn,</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                   std::shared_ptr&lt;Settings&gt; settingsIn, std::shared_ptr&lt;Logger&gt; loggerIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nvarWOaux);</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a7db5251fcd9ad3ca2892a9b17cb7b197">   77</a></span>&#160;    <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a7db5251fcd9ad3ca2892a9b17cb7b197">~BranchAndBound</a>() {}</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2">babBase::enums::BAB_RETCODE</a> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#afbbe46b34b476fa5b54c5faa112581b6">solve</a>(<a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;rootNodeIn, <span class="keywordtype">double</span> &amp;solutionValue, std::vector&lt;double&gt; &amp;solutionPoint, <span class="keyword">const</span> <span class="keywordtype">double</span> preprocessTime, <span class="keywordtype">double</span> &amp;timePassed);</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a90cf43573f5755481bdd020dcaa7d351">   93</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a90cf43573f5755481bdd020dcaa7d351">get_iterations</a>() { <span class="keywordflow">return</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a3b90d97c448a84541e48eeb4388358a9">_iterations</a>; }</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a668165551fb2c2cc69a05b1956755147">   98</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a668165551fb2c2cc69a05b1956755147">get_max_nodes_in_memory</a>() { <span class="keywordflow">return</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a88be959487932d46d6ff8227bd8f3f5b">_nNodesMaxInMemory</a>; }</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a3da7e60c4fad8100f38732fc06d2547c">  103</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a3da7e60c4fad8100f38732fc06d2547c">get_UBP_count</a>() { <span class="keywordflow">return</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a85091bc9965339278cc9c02b2baf354b">_ubdcnt</a>; }</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#af593cef9ed1bcfa512f7302732b9a614">  108</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#af593cef9ed1bcfa512f7302732b9a614">get_LBP_count</a>() { <span class="keywordflow">return</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a278e8c37f4d71abed1e0cb62b6366e5e">_lbdcnt</a>; }</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a2a6ba10d4cba3be0656bdc1f434b796d">  113</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a2a6ba10d4cba3be0656bdc1f434b796d">get_final_LBD</a>() { <span class="keywordflow">return</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a7329b6c29c7a8686f7b417f3cfe93026">_lbd</a>; }</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a4b993e6ced9b383b2ec2e3b4e617009a">  118</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a4b993e6ced9b383b2ec2e3b4e617009a">get_final_abs_gap</a>() { <span class="keywordflow">return</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#adf8377615ee4d86485f589700902126c">_ubd</a> - <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a7329b6c29c7a8686f7b417f3cfe93026">_lbd</a>; }</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a18915a6568908d9aba4e09f1d2d8b23c">  123</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a18915a6568908d9aba4e09f1d2d8b23c">get_final_rel_gap</a>() { <span class="keywordflow">return</span> ((<a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#adf8377615ee4d86485f589700902126c">_ubd</a> == 0) ? (<a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a4b993e6ced9b383b2ec2e3b4e617009a">get_final_abs_gap</a>()) : ((<a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#adf8377615ee4d86485f589700902126c">_ubd</a> - <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a7329b6c29c7a8686f7b417f3cfe93026">_lbd</a>) / std::fabs(<a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#adf8377615ee4d86485f589700902126c">_ubd</a>))); }</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a63faf2c1a9fa6aaa062a271455813c01">  128</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a63faf2c1a9fa6aaa062a271455813c01">get_first_found</a>() { <span class="keywordflow">return</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a88880806d0ddfe42862a876ca961cbf6">_firstFound</a>; }</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ae420e5187f1c1595d132a27bdc656529">  133</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ae420e5187f1c1595d132a27bdc656529">get_nodes_left</a>() { <span class="keywordflow">return</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#af0c2fdc294a5197cc5cf2931945f1ec6">_nNodesLeft</a>; }</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1">  140</a></span>&#160;    <span class="keyword">enum</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1">_TERMINATION_TYPE</a> {</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a1a904c0cb2e9786677bfd0c13951dec7">  141</a></span>&#160;        <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a1a904c0cb2e9786677bfd0c13951dec7">_TERMINATED</a> = 0,            </div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a803a5e6c3589e7407f7993fff57c30dd">  142</a></span>&#160;        <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a803a5e6c3589e7407f7993fff57c30dd">_TERMINATED_WORKERS_ACTIVE</a>, </div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a4606d4d76cdd55c82480e7e28a65d67a">  143</a></span>&#160;        <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a4606d4d76cdd55c82480e7e28a65d67a">_NOT_TERMINATED</a>             </div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    };</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    std::tuple&lt;bool, bool, int, int, double, std::vector&lt;double&gt;, bool, double, std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a15520696d8e8e38197992c71ffd91c53">_process_node</a>(<a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNodeInOut);</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a990927b31d0abc3c0df5ab3883c12de1">_preprocess_node</a>(<a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNodeInOut);</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    std::tuple&lt;bool, bool, double, std::vector&lt;double&gt;, <a class="code" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html">lbp::LbpDualInfo</a>&gt; <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a969736750315215126c3bad4b398d2e9">_solve_LBP</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode);</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    std::tuple&lt;bool, bool, double&gt; <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#acab7696c07ae41c7a9296c0977359b1e">_solve_UBP</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode, std::vector&lt;double&gt; &amp;ubpSolutionPoint, <span class="keyword">const</span> <span class="keywordtype">double</span> currentLBD);</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a29001119914eca2657390048e11db609">_postprocess_node</a>(<a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNodeInOut, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lbpSolutionPoint, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html">lbp::LbpDualInfo</a> &amp;dualInfo);</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a13e706473cf2f26ac9b3d20344270aaa">_update_incumbent_and_fathom</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> solval, <span class="keyword">const</span> std::vector&lt;double&gt; sol, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> currentNodeID);</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a5cbefb1e86ca300d67ae3c65eab1099b">_update_lowest_lbd</a>();</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ad5e5e8e1a0f2a3dda0a6deac59409fd6">_check_if_more_scaling_needed</a>();</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;    <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1">_TERMINATION_TYPE</a> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a535696550d694df9bc017ef6cd144a58">_check_termination</a>();</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ad2b56f40c7255d731c196b1661cee2d4">_display_and_log_progress</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> currentNodeLBD, <span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode);</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a80be7a4efd5e0f39765c635d6be13116">_print_termination</a>(std::string message);</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ad1c6f9191a7ab197f5a48ea554594462">_print_one_node</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> theLBD, <span class="keyword">const</span> <span class="keywordtype">int</span> ID, <span class="keyword">const</span> std::vector&lt;double&gt; lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; upperVarBounds);</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ad1c6f9191a7ab197f5a48ea554594462">_print_one_node</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> theLBD, <span class="keyword">const</span> <span class="keywordtype">int</span> ID, <span class="keyword">const</span> std::vector&lt;double&gt; lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; upperVarBounds, std::ostream &amp;outstream);</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a1f542019964ce925a4d19eb951049da7">  256</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a1f542019964ce925a4d19eb951049da7">_print_one_node</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> theLBD, <span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;theNode) { <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a1f542019964ce925a4d19eb951049da7">_print_one_node</a>(theLBD, theNode.<a class="code" href="classbab_base_1_1_bab_node.html#a12e23225255660e57238ecb0820ea420">get_ID</a>(), theNode.<a class="code" href="classbab_base_1_1_bab_node.html#a00e68c3242d5180d302cf5c8e1f8de2c">get_lower_bounds</a>(), theNode.<a class="code" href="classbab_base_1_1_bab_node.html#a2a0922468fbfe492d9d70231c54c4bf9">get_upper_bounds</a>()); }</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ad301660df21f804bccefa3da694aa743">  265</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ad301660df21f804bccefa3da694aa743">_print_one_node</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> theLBD, <span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;theNode, std::ostream &amp;outstream) { <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ad301660df21f804bccefa3da694aa743">_print_one_node</a>(theLBD, theNode.<a class="code" href="classbab_base_1_1_bab_node.html#a12e23225255660e57238ecb0820ea420">get_ID</a>(), theNode.<a class="code" href="classbab_base_1_1_bab_node.html#a00e68c3242d5180d302cf5c8e1f8de2c">get_lower_bounds</a>(), theNode.<a class="code" href="classbab_base_1_1_bab_node.html#a2a0922468fbfe492d9d70231c54c4bf9">get_upper_bounds</a>(), outstream); }</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;<span class="preprocessor">#ifdef HAVE_MAiNGO_MPI</span></div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;    <span class="keywordtype">void</span> _communicate_exception_and_throw(<span class="keyword">const</span> maingo::MAiNGOMpiException &amp;e);</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;    <span class="keywordtype">void</span> _recv_solved_problem(<a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;node, <span class="keywordtype">double</span> &amp;lbd, std::vector&lt;double&gt; &amp;lbdSolutionPoint, <span class="keywordtype">unsigned</span> &amp;lbdcnt,</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;                              <span class="keywordtype">unsigned</span> &amp;ubdcnt, <span class="keyword">const</span> COMMUNICATION_TAG status, <span class="keyword">const</span> <span class="keywordtype">int</span> src);</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;    <span class="keywordtype">void</span> _send_new_problem(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;node, <span class="keyword">const</span> <span class="keywordtype">int</span> dest);</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;    <span class="keywordtype">void</span> _inform_worker_about_event(<span class="keyword">const</span> BCAST_TAG eventTag, <span class="keyword">const</span> <span class="keywordtype">bool</span> blocking);</div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;    <span class="keywordtype">void</span> _recv_new_problem(<a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;node);</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;    <span class="keywordtype">void</span> _send_incumbent(<span class="keyword">const</span> <span class="keywordtype">double</span> ubd, <span class="keyword">const</span> std::vector&lt;double&gt; incumbent, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> incumbentID);</div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;    <span class="keywordtype">void</span> _send_solved_problem(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> node, <span class="keyword">const</span> <span class="keywordtype">double</span> lbd, <span class="keyword">const</span> std::vector&lt;double&gt; lbdSolutionPoint,</div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;                              <span class="keyword">const</span> <span class="keywordtype">unsigned</span> lbdcnt, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> ubdcnt, <span class="keyword">const</span> COMMUNICATION_TAG status);</div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;</div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;    <span class="keywordtype">void</span> _sync_with_master(MPI_Request &amp;req);</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;</div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;    <span class="keywordtype">void</span> _sync_with_master(MPI_Request &amp;req, <span class="keywordtype">bool</span> &amp;terminate);</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;</div><div class="line"><a name="l00360"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ae1454635b53b98cc4e395fd3ed7faca0">  360</a></span>&#160;    std::unique_ptr&lt;babBase::Brancher&gt; <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ae1454635b53b98cc4e395fd3ed7faca0">_brancher</a>;   </div><div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aba6e92ef8af1e76b62a543e1334b4948">  361</a></span>&#160;    std::shared_ptr&lt;ubp::UpperBoundingSolver&gt; <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aba6e92ef8af1e76b62a543e1334b4948">_UBS</a>; </div><div class="line"><a name="l00362"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a4a63abd1f85d04b411bd3f46c95c994b">  362</a></span>&#160;    std::shared_ptr&lt;lbp::LowerBoundingSolver&gt; <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a4a63abd1f85d04b411bd3f46c95c994b">_LBS</a>; </div><div class="line"><a name="l00364"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#abb34f49557e1d417e5a87a467cee2ec8">  364</a></span>&#160;    std::shared_ptr&lt;Settings&gt; <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#abb34f49557e1d417e5a87a467cee2ec8">_maingoSettings</a>; </div><div class="line"><a name="l00370"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a54fa45d1751c9a81b346bd7cd1f5969c">  370</a></span>&#160;    std::vector&lt;babBase::OptimizationVariable&gt; <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a54fa45d1751c9a81b346bd7cd1f5969c">_originalVariables</a>; </div><div class="line"><a name="l00371"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aa66393ce301be8002cdea9b1b43aa5b2">  371</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aa66393ce301be8002cdea9b1b43aa5b2">_nvar</a>;                                          </div><div class="line"><a name="l00372"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a109e3a4afa84d559ec9b88376b0a63b2">  372</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a109e3a4afa84d559ec9b88376b0a63b2">_nvarWOaux</a>;                                     </div><div class="line"><a name="l00373"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a9836ba957bbfd2acace285065fe81710">  373</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a9836ba957bbfd2acace285065fe81710">_lowerVarBoundsOrig</a>;                       </div><div class="line"><a name="l00374"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a6087a84349286d46bfc4a6633f5c881b">  374</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a6087a84349286d46bfc4a6633f5c881b">_upperVarBoundsOrig</a>;                       </div><div class="line"><a name="l00381"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a2685cdd222deff1b30e3b83c7b4bb259">  381</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a2685cdd222deff1b30e3b83c7b4bb259">_incumbent</a>;      </div><div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a1f509aa5a3de69ff00e8d2c31b654d48">  382</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a1f509aa5a3de69ff00e8d2c31b654d48">_initialPoint</a>;   </div><div class="line"><a name="l00383"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#adf8377615ee4d86485f589700902126c">  383</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#adf8377615ee4d86485f589700902126c">_ubd</a>;                         </div><div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a7329b6c29c7a8686f7b417f3cfe93026">  384</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a7329b6c29c7a8686f7b417f3cfe93026">_lbd</a>;                         </div><div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a8855b78bf4580af1d40f463eb88f9883">  385</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a8855b78bf4580af1d40f463eb88f9883">_bestLbdFathomed</a>;             </div><div class="line"><a name="l00386"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aa52c4379706307b5d5834a702d824854">  386</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aa52c4379706307b5d5834a702d824854">_foundFeas</a>;                     </div><div class="line"><a name="l00387"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a88880806d0ddfe42862a876ca961cbf6">  387</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a88880806d0ddfe42862a876ca961cbf6">_firstFound</a>;                </div><div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a2defed7ca937feacb124cc97b8f7915f">  388</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a2defed7ca937feacb124cc97b8f7915f">_incumbentNodeId</a>;           </div><div class="line"><a name="l00389"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a010075b80170c61b0c30490e64ec979d">  389</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2">babBase::enums::BAB_RETCODE</a> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a010075b80170c61b0c30490e64ec979d">_status</a>; </div><div class="line"><a name="l00396"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#adaeb5fb5c51be07833bf51f921ce2e65">  396</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#adaeb5fb5c51be07833bf51f921ce2e65">_lbdOld</a>;             </div><div class="line"><a name="l00397"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a67bce3a5b8585ec930b305d9a77a3d47">  397</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a67bce3a5b8585ec930b305d9a77a3d47">_lbdNotChanged</a>;    </div><div class="line"><a name="l00398"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#acc9b140b91203d6ca5d45f84b697be42">  398</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#acc9b140b91203d6ca5d45f84b697be42">_moreScalingActivated</a>; </div><div class="line"><a name="l00405"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aa66b24455102ab0550c9ed6c611e88a2">  405</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aa66b24455102ab0550c9ed6c611e88a2">_nNodesTotal</a>;       </div><div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#af0c2fdc294a5197cc5cf2931945f1ec6">  406</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#af0c2fdc294a5197cc5cf2931945f1ec6">_nNodesLeft</a>;        </div><div class="line"><a name="l00407"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a88be959487932d46d6ff8227bd8f3f5b">  407</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a88be959487932d46d6ff8227bd8f3f5b">_nNodesMaxInMemory</a>; </div><div class="line"><a name="l00408"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a10bf89f5a097f9d865ad5546eeee9b40">  408</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a10bf89f5a097f9d865ad5546eeee9b40">_nNodesDeleted</a>;     </div><div class="line"><a name="l00409"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a70df6922540227a62b49549e0d6f9dcf">  409</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a70df6922540227a62b49549e0d6f9dcf">_nNodesFathomed</a>;    </div><div class="line"><a name="l00416"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a278e8c37f4d71abed1e0cb62b6366e5e">  416</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a278e8c37f4d71abed1e0cb62b6366e5e">_lbdcnt</a>;       </div><div class="line"><a name="l00417"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a85091bc9965339278cc9c02b2baf354b">  417</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a85091bc9965339278cc9c02b2baf354b">_ubdcnt</a>;       </div><div class="line"><a name="l00418"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#af4816842caa40287b9fcda0401238236">  418</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#af4816842caa40287b9fcda0401238236">_timePassed</a>;     </div><div class="line"><a name="l00419"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a17af9af1c4195bb491a0624d3a4edb36">  419</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a17af9af1c4195bb491a0624d3a4edb36">_timePreprocess</a>; </div><div class="line"><a name="l00420"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ab0c17e7072887baa0bf2377a7be7a4bc">  420</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ab0c17e7072887baa0bf2377a7be7a4bc">_daysPassed</a>;   </div><div class="line"><a name="l00427"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a46473e89580e44ef3576e9040e469478">  427</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a46473e89580e44ef3576e9040e469478">_linesprinted</a>;          </div><div class="line"><a name="l00428"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a3b90d97c448a84541e48eeb4388358a9">  428</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a3b90d97c448a84541e48eeb4388358a9">_iterations</a>;            </div><div class="line"><a name="l00429"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a4d1d7552bc0294281b7453a757a5b1c4">  429</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a4d1d7552bc0294281b7453a757a5b1c4">_iterationsgap</a>;         </div><div class="line"><a name="l00430"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a733596f5150a34554a2e001bc2a7bd1e">  430</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a733596f5150a34554a2e001bc2a7bd1e">_printNewIncumbent</a>;         </div><div class="line"><a name="l00431"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a193f594912e00a2c4d8cacfd4efbdfd5">  431</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a193f594912e00a2c4d8cacfd4efbdfd5">_writeToLogEverySec</a>;    </div><div class="line"><a name="l00432"></a><span class="lineno"><a class="line" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a7bd1a5254c74b3adac3b74712d92257e">  432</a></span>&#160;    std::shared_ptr&lt;Logger&gt; <a class="code" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a7bd1a5254c74b3adac3b74712d92257e">_logger</a>; </div><div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;<span class="preprocessor">#ifdef HAVE_MAiNGO_MPI</span></div><div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;</div><div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;    <span class="keywordtype">int</span> _rank;             </div><div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;    <span class="keywordtype">int</span> _nProcs;           </div><div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;    BCAST_TAG _bcastTag;   </div><div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;    MPI_Request _bcastReq; </div><div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;    std::vector&lt;bool&gt; _informedWorkerAboutIncumbent;           </div><div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;    <span class="keywordtype">bool</span> _checkForNodeWithIncumbent;                           </div><div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;    <span class="keywordtype">bool</span> _confirmedTermination;                                </div><div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;    <span class="keywordtype">unsigned</span> _workCount;                                       </div><div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;    std::vector&lt;std::pair&lt;bool, double&gt;&gt; _nodesGivenToWorkers; </div><div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;    <span class="keywordtype">bool</span> _pendingIncumbentUpdate; </div><div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;    MPI_Request _incumbentReq;    </div><div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;};</div><div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;</div><div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;</div><div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;}    <span class="comment">// end namespace bab</span></div><div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;</div><div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;</div><div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></div><div class="ttdoc">Wrapper for handling the lower bounding problems as well as optimization-based bounds tightening (OBB...</div><div class="ttdef"><b>Definition:</b> lbp.h:65</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a80be7a4efd5e0f39765c635d6be13116"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a80be7a4efd5e0f39765c635d6be13116">maingo::bab::BranchAndBound::_print_termination</a></div><div class="ttdeci">void _print_termination(std::string message)</div><div class="ttdoc">Function printing a termination message. </div><div class="ttdef"><b>Definition:</b> bab.cpp:1232</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_ad2b56f40c7255d731c196b1661cee2d4"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#ad2b56f40c7255d731c196b1661cee2d4">maingo::bab::BranchAndBound::_display_and_log_progress</a></div><div class="ttdeci">void _display_and_log_progress(const double currentNodeLBD, const babBase::BabNode &amp;currentNode)</div><div class="ttdoc">Function for printing the current progress on the screen and appending it to the internal log to be w...</div><div class="ttdef"><b>Definition:</b> bab.cpp:897</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a9836ba957bbfd2acace285065fe81710"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a9836ba957bbfd2acace285065fe81710">maingo::bab::BranchAndBound::_lowerVarBoundsOrig</a></div><div class="ttdeci">std::vector&lt; double &gt; _lowerVarBoundsOrig</div><div class="ttdef"><b>Definition:</b> bab.h:373</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html_a12e23225255660e57238ecb0820ea420"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a12e23225255660e57238ecb0820ea420">babBase::BabNode::get_ID</a></div><div class="ttdeci">int get_ID() const</div><div class="ttdoc">Function for querying the node ID. </div><div class="ttdef"><b>Definition:</b> babNode.h:100</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></div><div class="ttdoc">This class contains the main algorithm, including handling of pre-processing routines and managing th...</div><div class="ttdef"><b>Definition:</b> bab.h:58</div></div>
+<div class="ttc" id="namespacebab_base_1_1enums_html_a2c4d021a83d3363ae57623c7376761d2"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2">babBase::enums::BAB_RETCODE</a></div><div class="ttdeci">BAB_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the B&amp;B solver. </div><div class="ttdef"><b>Definition:</b> babUtils.h:126</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_aa52c4379706307b5d5834a702d824854"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#aa52c4379706307b5d5834a702d824854">maingo::bab::BranchAndBound::_foundFeas</a></div><div class="ttdeci">bool _foundFeas</div><div class="ttdef"><b>Definition:</b> bab.h:386</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a67bce3a5b8585ec930b305d9a77a3d47"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a67bce3a5b8585ec930b305d9a77a3d47">maingo::bab::BranchAndBound::_lbdNotChanged</a></div><div class="ttdeci">unsigned _lbdNotChanged</div><div class="ttdef"><b>Definition:</b> bab.h:397</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html"><div class="ttname"><a href="classbab_base_1_1_bab_node.html">babBase::BabNode</a></div><div class="ttdoc">Class representing a node in the Branch-and-Bound tree. </div><div class="ttdef"><b>Definition:</b> babNode.h:35</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a15520696d8e8e38197992c71ffd91c53"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a15520696d8e8e38197992c71ffd91c53">maingo::bab::BranchAndBound::_process_node</a></div><div class="ttdeci">std::tuple&lt; bool, bool, int, int, double, std::vector&lt; double &gt;, bool, double, std::vector&lt; double &gt; &gt; _process_node(babBase::BabNode &amp;currentNodeInOut)</div><div class="ttdoc">Function processing the current node. </div><div class="ttdef"><b>Definition:</b> bab.cpp:535</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_ae1454635b53b98cc4e395fd3ed7faca0"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#ae1454635b53b98cc4e395fd3ed7faca0">maingo::bab::BranchAndBound::_brancher</a></div><div class="ttdeci">std::unique_ptr&lt; babBase::Brancher &gt; _brancher</div><div class="ttdef"><b>Definition:</b> bab.h:360</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_ab1e963d56b3adc807decb6e4dc1bee85"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#ab1e963d56b3adc807decb6e4dc1bee85">maingo::bab::BranchAndBound::BranchAndBound</a></div><div class="ttdeci">BranchAndBound(const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, std::shared_ptr&lt; lbp::LowerBoundingSolver &gt; LBSIn, std::shared_ptr&lt; ubp::UpperBoundingSolver &gt; UBSIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, const unsigned nvarWOaux)</div><div class="ttdoc">Constructor, stores information on problem and settings. </div><div class="ttdef"><b>Definition:</b> bab.cpp:28</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_af4816842caa40287b9fcda0401238236"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#af4816842caa40287b9fcda0401238236">maingo::bab::BranchAndBound::_timePassed</a></div><div class="ttdeci">double _timePassed</div><div class="ttdef"><b>Definition:</b> bab.h:418</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a85091bc9965339278cc9c02b2baf354b"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a85091bc9965339278cc9c02b2baf354b">maingo::bab::BranchAndBound::_ubdcnt</a></div><div class="ttdeci">unsigned _ubdcnt</div><div class="ttdef"><b>Definition:</b> bab.h:417</div></div>
+<div class="ttc" id="bab_brancher_8h_html"><div class="ttname"><a href="bab_brancher_8h.html">babBrancher.h</a></div><div class="ttdoc">File containing definition of the Branch-and-Bound brancher class. </div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a193f594912e00a2c4d8cacfd4efbdfd5"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a193f594912e00a2c4d8cacfd4efbdfd5">maingo::bab::BranchAndBound::_writeToLogEverySec</a></div><div class="ttdeci">unsigned _writeToLogEverySec</div><div class="ttdef"><b>Definition:</b> bab.h:431</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a54fa45d1751c9a81b346bd7cd1f5969c"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a54fa45d1751c9a81b346bd7cd1f5969c">maingo::bab::BranchAndBound::_originalVariables</a></div><div class="ttdeci">std::vector&lt; babBase::OptimizationVariable &gt; _originalVariables</div><div class="ttdef"><b>Definition:</b> bab.h:370</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a13e706473cf2f26ac9b3d20344270aaa"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a13e706473cf2f26ac9b3d20344270aaa">maingo::bab::BranchAndBound::_update_incumbent_and_fathom</a></div><div class="ttdeci">void _update_incumbent_and_fathom(const double solval, const std::vector&lt; double &gt; sol, const unsigned int currentNodeID)</div><div class="ttdoc">Function for updating the incumbent and fathoming accordingly. </div><div class="ttdef"><b>Definition:</b> bab.cpp:792</div></div>
+<div class="ttc" id="_m_ai_n_g_o_mpi_exception_8h_html"><div class="ttname"><a href="_m_ai_n_g_o_mpi_exception_8h.html">MAiNGOMpiException.h</a></div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a90cf43573f5755481bdd020dcaa7d351"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a90cf43573f5755481bdd020dcaa7d351">maingo::bab::BranchAndBound::get_iterations</a></div><div class="ttdeci">double get_iterations()</div><div class="ttdoc">Function returning the number of iterations. </div><div class="ttdef"><b>Definition:</b> bab.h:93</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a63faf2c1a9fa6aaa062a271455813c01"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a63faf2c1a9fa6aaa062a271455813c01">maingo::bab::BranchAndBound::get_first_found</a></div><div class="ttdeci">double get_first_found()</div><div class="ttdoc">Function returning the ID of the node where the incumbent was first found. </div><div class="ttdef"><b>Definition:</b> bab.h:128</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a3da7e60c4fad8100f38732fc06d2547c"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a3da7e60c4fad8100f38732fc06d2547c">maingo::bab::BranchAndBound::get_UBP_count</a></div><div class="ttdeci">double get_UBP_count()</div><div class="ttdoc">Function returning number of UBD problems solved. </div><div class="ttdef"><b>Definition:</b> bab.h:103</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a8855b78bf4580af1d40f463eb88f9883"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a8855b78bf4580af1d40f463eb88f9883">maingo::bab::BranchAndBound::_bestLbdFathomed</a></div><div class="ttdeci">double _bestLbdFathomed</div><div class="ttdef"><b>Definition:</b> bab.h:385</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a07ba7b9ae290bc913f2d2ca19c7c49e1a1a904c0cb2e9786677bfd0c13951dec7"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a1a904c0cb2e9786677bfd0c13951dec7">maingo::bab::BranchAndBound::_TERMINATED</a></div><div class="ttdef"><b>Definition:</b> bab.h:141</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a969736750315215126c3bad4b398d2e9"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a969736750315215126c3bad4b398d2e9">maingo::bab::BranchAndBound::_solve_LBP</a></div><div class="ttdeci">std::tuple&lt; bool, bool, double, std::vector&lt; double &gt;, lbp::LbpDualInfo &gt; _solve_LBP(const babBase::BabNode &amp;currentNode)</div><div class="ttdoc">Function invoking the LBS to solve the lower bounding problem. </div><div class="ttdef"><b>Definition:</b> bab.cpp:658</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_acc9b140b91203d6ca5d45f84b697be42"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#acc9b140b91203d6ca5d45f84b697be42">maingo::bab::BranchAndBound::_moreScalingActivated</a></div><div class="ttdeci">bool _moreScalingActivated</div><div class="ttdef"><b>Definition:</b> bab.h:398</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a990927b31d0abc3c0df5ab3883c12de1"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a990927b31d0abc3c0df5ab3883c12de1">maingo::bab::BranchAndBound::_preprocess_node</a></div><div class="ttdeci">bool _preprocess_node(babBase::BabNode &amp;currentNodeInOut)</div><div class="ttdoc">Function for pre-processing the current node. Includes bound tightening and OBBT. ...</div><div class="ttdef"><b>Definition:</b> bab.cpp:602</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a010075b80170c61b0c30490e64ec979d"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a010075b80170c61b0c30490e64ec979d">maingo::bab::BranchAndBound::_status</a></div><div class="ttdeci">babBase::enums::BAB_RETCODE _status</div><div class="ttdef"><b>Definition:</b> bab.h:389</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a535696550d694df9bc017ef6cd144a58"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a535696550d694df9bc017ef6cd144a58">maingo::bab::BranchAndBound::_check_termination</a></div><div class="ttdeci">_TERMINATION_TYPE _check_termination()</div><div class="ttdoc">Function for checking if the B&amp;B algorithm terminated. </div><div class="ttdef"><b>Definition:</b> bab.cpp:1047</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html_a00e68c3242d5180d302cf5c8e1f8de2c"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a00e68c3242d5180d302cf5c8e1f8de2c">babBase::BabNode::get_lower_bounds</a></div><div class="ttdeci">std::vector&lt; double &gt; get_lower_bounds() const</div><div class="ttdoc">Function for querying the lower bounds on the optimization variables within this node. </div><div class="ttdef"><b>Definition:</b> babNode.h:90</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a6087a84349286d46bfc4a6633f5c881b"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a6087a84349286d46bfc4a6633f5c881b">maingo::bab::BranchAndBound::_upperVarBoundsOrig</a></div><div class="ttdeci">std::vector&lt; double &gt; _upperVarBoundsOrig</div><div class="ttdef"><b>Definition:</b> bab.h:374</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a109e3a4afa84d559ec9b88376b0a63b2"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a109e3a4afa84d559ec9b88376b0a63b2">maingo::bab::BranchAndBound::_nvarWOaux</a></div><div class="ttdeci">const unsigned _nvarWOaux</div><div class="ttdef"><b>Definition:</b> bab.h:372</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a18915a6568908d9aba4e09f1d2d8b23c"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a18915a6568908d9aba4e09f1d2d8b23c">maingo::bab::BranchAndBound::get_final_rel_gap</a></div><div class="ttdeci">double get_final_rel_gap()</div><div class="ttdoc">Function returning the final relative gap. </div><div class="ttdef"><b>Definition:</b> bab.h:123</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a29001119914eca2657390048e11db609"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a29001119914eca2657390048e11db609">maingo::bab::BranchAndBound::_postprocess_node</a></div><div class="ttdeci">bool _postprocess_node(babBase::BabNode &amp;currentNodeInOut, const std::vector&lt; double &gt; &amp;lbpSolutionPoint, const lbp::LbpDualInfo &amp;dualInfo)</div><div class="ttdoc">Function for post-processing the current node. Includes bound DBBT and probing. </div><div class="ttdef"><b>Definition:</b> bab.cpp:763</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a4d1d7552bc0294281b7453a757a5b1c4"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a4d1d7552bc0294281b7453a757a5b1c4">maingo::bab::BranchAndBound::_iterationsgap</a></div><div class="ttdeci">unsigned _iterationsgap</div><div class="ttdef"><b>Definition:</b> bab.h:429</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_afbbe46b34b476fa5b54c5faa112581b6"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#afbbe46b34b476fa5b54c5faa112581b6">maingo::bab::BranchAndBound::solve</a></div><div class="ttdeci">babBase::enums::BAB_RETCODE solve(babBase::BabNode &amp;rootNodeIn, double &amp;solutionValue, std::vector&lt; double &gt; &amp;solutionPoint, const double preprocessTime, double &amp;timePassed)</div><div class="ttdoc">Main function to solve the optimization problem. </div><div class="ttdef"><b>Definition:</b> bab.cpp:109</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_adaeb5fb5c51be07833bf51f921ce2e65"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#adaeb5fb5c51be07833bf51f921ce2e65">maingo::bab::BranchAndBound::_lbdOld</a></div><div class="ttdeci">double _lbdOld</div><div class="ttdef"><b>Definition:</b> bab.h:396</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a88be959487932d46d6ff8227bd8f3f5b"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a88be959487932d46d6ff8227bd8f3f5b">maingo::bab::BranchAndBound::_nNodesMaxInMemory</a></div><div class="ttdeci">unsigned _nNodesMaxInMemory</div><div class="ttdef"><b>Definition:</b> bab.h:407</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></div><div class="ttdoc">Base class for wrappers for handling the upper bounding problems. </div><div class="ttdef"><b>Definition:</b> ubp.h:44</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a46473e89580e44ef3576e9040e469478"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a46473e89580e44ef3576e9040e469478">maingo::bab::BranchAndBound::_linesprinted</a></div><div class="ttdeci">unsigned _linesprinted</div><div class="ttdef"><b>Definition:</b> bab.h:427</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a70df6922540227a62b49549e0d6f9dcf"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a70df6922540227a62b49549e0d6f9dcf">maingo::bab::BranchAndBound::_nNodesFathomed</a></div><div class="ttdeci">unsigned _nNodesFathomed</div><div class="ttdef"><b>Definition:</b> bab.h:409</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_ad301660df21f804bccefa3da694aa743"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#ad301660df21f804bccefa3da694aa743">maingo::bab::BranchAndBound::_print_one_node</a></div><div class="ttdeci">void _print_one_node(const double theLBD, const babBase::BabNode &amp;theNode, std::ostream &amp;outstream)</div><div class="ttdoc">Function printing one node. </div><div class="ttdef"><b>Definition:</b> bab.h:265</div></div>
 <div class="ttc" id="mpi_utilities_8h_html"><div class="ttname"><a href="mpi_utilities_8h.html">mpiUtilities.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_adf8377615ee4d86485f589700902126c"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#adf8377615ee4d86485f589700902126c">maingo::bab::BranchAndBound::_ubd</a></div><div class="ttdeci">double _ubd</div><div class="ttdef"><b>Definition:</b> bab.h:388</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a88d35fc68351774dadb831c38ffd93ee"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a88d35fc68351774dadb831c38ffd93ee">maingo::bab::BranchAndBound::_brancher</a></div><div class="ttdeci">std::unique_ptr&lt; babBase::Brancher &gt; _brancher</div><div class="ttdef"><b>Definition:</b> bab.h:365</div></div>
-<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO</div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_aa66b24455102ab0550c9ed6c611e88a2"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#aa66b24455102ab0550c9ed6c611e88a2">maingo::bab::BranchAndBound::_nNodesTotal</a></div><div class="ttdeci">unsigned _nNodesTotal</div><div class="ttdef"><b>Definition:</b> bab.h:410</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a5cbefb1e86ca300d67ae3c65eab1099b"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a5cbefb1e86ca300d67ae3c65eab1099b">maingo::bab::BranchAndBound::_update_lowest_lbd</a></div><div class="ttdeci">void _update_lowest_lbd()</div><div class="ttdoc">Function for updating the global lower bound.</div><div class="ttdef"><b>Definition:</b> bab.cpp:845</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_acc2f5918ff76d313d9f0d9eae3c749cd"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#acc2f5918ff76d313d9f0d9eae3c749cd">maingo::bab::BranchAndBound::_initialPoint</a></div><div class="ttdeci">std::vector&lt; double &gt; _initialPoint</div><div class="ttdef"><b>Definition:</b> bab.h:387</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a5bd0987c7dde438e8d52af87421d78c5"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a5bd0987c7dde438e8d52af87421d78c5">maingo::bab::BranchAndBound::_upperVarBoundsOrig</a></div><div class="ttdeci">std::vector&lt; double &gt; _upperVarBoundsOrig</div><div class="ttdef"><b>Definition:</b> bab.h:379</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a4b993e6ced9b383b2ec2e3b4e617009a"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a4b993e6ced9b383b2ec2e3b4e617009a">maingo::bab::BranchAndBound::get_final_abs_gap</a></div><div class="ttdeci">double get_final_abs_gap()</div><div class="ttdoc">Function returning the final absolute gap.</div><div class="ttdef"><b>Definition:</b> bab.h:123</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a3b90d97c448a84541e48eeb4388358a9"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a3b90d97c448a84541e48eeb4388358a9">maingo::bab::BranchAndBound::_iterations</a></div><div class="ttdeci">unsigned _iterations</div><div class="ttdef"><b>Definition:</b> bab.h:433</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a278e8c37f4d71abed1e0cb62b6366e5e"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a278e8c37f4d71abed1e0cb62b6366e5e">maingo::bab::BranchAndBound::_lbdcnt</a></div><div class="ttdeci">unsigned _lbdcnt</div><div class="ttdef"><b>Definition:</b> bab.h:421</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_ae420e5187f1c1595d132a27bdc656529"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#ae420e5187f1c1595d132a27bdc656529">maingo::bab::BranchAndBound::get_nodes_left</a></div><div class="ttdeci">double get_nodes_left()</div><div class="ttdoc">Function returning the number of nodes left after termination of B&amp;B.</div><div class="ttdef"><b>Definition:</b> bab.h:138</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a733596f5150a34554a2e001bc2a7bd1e"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a733596f5150a34554a2e001bc2a7bd1e">maingo::bab::BranchAndBound::_printNewIncumbent</a></div><div class="ttdeci">bool _printNewIncumbent</div><div class="ttdef"><b>Definition:</b> bab.h:435</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a7329b6c29c7a8686f7b417f3cfe93026"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a7329b6c29c7a8686f7b417f3cfe93026">maingo::bab::BranchAndBound::_lbd</a></div><div class="ttdeci">double _lbd</div><div class="ttdef"><b>Definition:</b> bab.h:389</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a88880806d0ddfe42862a876ca961cbf6"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a88880806d0ddfe42862a876ca961cbf6">maingo::bab::BranchAndBound::_firstFound</a></div><div class="ttdeci">unsigned _firstFound</div><div class="ttdef"><b>Definition:</b> bab.h:392</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a1f542019964ce925a4d19eb951049da7"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a1f542019964ce925a4d19eb951049da7">maingo::bab::BranchAndBound::_print_one_node</a></div><div class="ttdeci">void _print_one_node(const double theLBD, const babBase::BabNode &amp;theNode)</div><div class="ttdoc">Function printing one node.</div><div class="ttdef"><b>Definition:</b> bab.h:261</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a10bf89f5a097f9d865ad5546eeee9b40"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a10bf89f5a097f9d865ad5546eeee9b40">maingo::bab::BranchAndBound::_nNodesDeleted</a></div><div class="ttdeci">unsigned _nNodesDeleted</div><div class="ttdef"><b>Definition:</b> bab.h:413</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_adf8377615ee4d86485f589700902126c"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#adf8377615ee4d86485f589700902126c">maingo::bab::BranchAndBound::_ubd</a></div><div class="ttdeci">double _ubd</div><div class="ttdef"><b>Definition:</b> bab.h:383</div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_aa66b24455102ab0550c9ed6c611e88a2"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#aa66b24455102ab0550c9ed6c611e88a2">maingo::bab::BranchAndBound::_nNodesTotal</a></div><div class="ttdeci">unsigned _nNodesTotal</div><div class="ttdef"><b>Definition:</b> bab.h:405</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a5cbefb1e86ca300d67ae3c65eab1099b"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a5cbefb1e86ca300d67ae3c65eab1099b">maingo::bab::BranchAndBound::_update_lowest_lbd</a></div><div class="ttdeci">void _update_lowest_lbd()</div><div class="ttdoc">Function for updating the global lower bound. </div><div class="ttdef"><b>Definition:</b> bab.cpp:835</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a4b993e6ced9b383b2ec2e3b4e617009a"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a4b993e6ced9b383b2ec2e3b4e617009a">maingo::bab::BranchAndBound::get_final_abs_gap</a></div><div class="ttdeci">double get_final_abs_gap()</div><div class="ttdoc">Function returning the final absolute gap. </div><div class="ttdef"><b>Definition:</b> bab.h:118</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a3b90d97c448a84541e48eeb4388358a9"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a3b90d97c448a84541e48eeb4388358a9">maingo::bab::BranchAndBound::_iterations</a></div><div class="ttdeci">unsigned _iterations</div><div class="ttdef"><b>Definition:</b> bab.h:428</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a2685cdd222deff1b30e3b83c7b4bb259"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a2685cdd222deff1b30e3b83c7b4bb259">maingo::bab::BranchAndBound::_incumbent</a></div><div class="ttdeci">std::vector&lt; double &gt; _incumbent</div><div class="ttdef"><b>Definition:</b> bab.h:381</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a4a63abd1f85d04b411bd3f46c95c994b"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a4a63abd1f85d04b411bd3f46c95c994b">maingo::bab::BranchAndBound::_LBS</a></div><div class="ttdeci">std::shared_ptr&lt; lbp::LowerBoundingSolver &gt; _LBS</div><div class="ttdef"><b>Definition:</b> bab.h:362</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a7bd1a5254c74b3adac3b74712d92257e"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a7bd1a5254c74b3adac3b74712d92257e">maingo::bab::BranchAndBound::_logger</a></div><div class="ttdeci">std::shared_ptr&lt; Logger &gt; _logger</div><div class="ttdef"><b>Definition:</b> bab.h:432</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a278e8c37f4d71abed1e0cb62b6366e5e"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a278e8c37f4d71abed1e0cb62b6366e5e">maingo::bab::BranchAndBound::_lbdcnt</a></div><div class="ttdeci">unsigned _lbdcnt</div><div class="ttdef"><b>Definition:</b> bab.h:416</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_ae420e5187f1c1595d132a27bdc656529"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#ae420e5187f1c1595d132a27bdc656529">maingo::bab::BranchAndBound::get_nodes_left</a></div><div class="ttdeci">double get_nodes_left()</div><div class="ttdoc">Function returning the number of nodes left after termination of B&amp;B. </div><div class="ttdef"><b>Definition:</b> bab.h:133</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a733596f5150a34554a2e001bc2a7bd1e"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a733596f5150a34554a2e001bc2a7bd1e">maingo::bab::BranchAndBound::_printNewIncumbent</a></div><div class="ttdeci">bool _printNewIncumbent</div><div class="ttdef"><b>Definition:</b> bab.h:430</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a7329b6c29c7a8686f7b417f3cfe93026"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a7329b6c29c7a8686f7b417f3cfe93026">maingo::bab::BranchAndBound::_lbd</a></div><div class="ttdeci">double _lbd</div><div class="ttdef"><b>Definition:</b> bab.h:384</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a88880806d0ddfe42862a876ca961cbf6"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a88880806d0ddfe42862a876ca961cbf6">maingo::bab::BranchAndBound::_firstFound</a></div><div class="ttdeci">unsigned _firstFound</div><div class="ttdef"><b>Definition:</b> bab.h:387</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a1f542019964ce925a4d19eb951049da7"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a1f542019964ce925a4d19eb951049da7">maingo::bab::BranchAndBound::_print_one_node</a></div><div class="ttdeci">void _print_one_node(const double theLBD, const babBase::BabNode &amp;theNode)</div><div class="ttdoc">Function printing one node. </div><div class="ttdef"><b>Definition:</b> bab.h:256</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a10bf89f5a097f9d865ad5546eeee9b40"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a10bf89f5a097f9d865ad5546eeee9b40">maingo::bab::BranchAndBound::_nNodesDeleted</a></div><div class="ttdeci">unsigned _nNodesDeleted</div><div class="ttdef"><b>Definition:</b> bab.h:408</div></div>
 <div class="ttc" id="logger_8h_html"><div class="ttname"><a href="logger_8h.html">logger.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a2a6ba10d4cba3be0656bdc1f434b796d"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a2a6ba10d4cba3be0656bdc1f434b796d">maingo::bab::BranchAndBound::get_final_LBD</a></div><div class="ttdeci">double get_final_LBD()</div><div class="ttdoc">Function returning the final LBD.</div><div class="ttdef"><b>Definition:</b> bab.h:118</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_ad1c6f9191a7ab197f5a48ea554594462"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#ad1c6f9191a7ab197f5a48ea554594462">maingo::bab::BranchAndBound::_print_one_node</a></div><div class="ttdeci">void _print_one_node(const double theLBD, const int ID, const std::vector&lt; double &gt; lowerVarBounds, const std::vector&lt; double &gt; upperVarBounds)</div><div class="ttdoc">Function printing one node.</div><div class="ttdef"><b>Definition:</b> bab.cpp:1031</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a17af9af1c4195bb491a0624d3a4edb36"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a17af9af1c4195bb491a0624d3a4edb36">maingo::bab::BranchAndBound::_timePreprocess</a></div><div class="ttdeci">double _timePreprocess</div><div class="ttdef"><b>Definition:</b> bab.h:424</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_ab0c17e7072887baa0bf2377a7be7a4bc"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#ab0c17e7072887baa0bf2377a7be7a4bc">maingo::bab::BranchAndBound::_daysPassed</a></div><div class="ttdeci">unsigned _daysPassed</div><div class="ttdef"><b>Definition:</b> bab.h:425</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html_a2a0922468fbfe492d9d70231c54c4bf9"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a2a0922468fbfe492d9d70231c54c4bf9">babBase::BabNode::get_upper_bounds</a></div><div class="ttdeci">std::vector&lt; double &gt; get_upper_bounds() const</div><div class="ttdoc">Function for querying the upper bounds on the optimization variables within this node.</div><div class="ttdef"><b>Definition:</b> babNode.h:95</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_ad5e5e8e1a0f2a3dda0a6deac59409fd6"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#ad5e5e8e1a0f2a3dda0a6deac59409fd6">maingo::bab::BranchAndBound::_check_if_more_scaling_needed</a></div><div class="ttdeci">void _check_if_more_scaling_needed()</div><div class="ttdoc">Function which checks whether it is necessary to activate scaling within the LBD solver....</div><div class="ttdef"><b>Definition:</b> bab.cpp:877</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a2a6ba10d4cba3be0656bdc1f434b796d"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a2a6ba10d4cba3be0656bdc1f434b796d">maingo::bab::BranchAndBound::get_final_LBD</a></div><div class="ttdeci">double get_final_LBD()</div><div class="ttdoc">Function returning the final LBD. </div><div class="ttdef"><b>Definition:</b> bab.h:113</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a07ba7b9ae290bc913f2d2ca19c7c49e1a4606d4d76cdd55c82480e7e28a65d67a"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a4606d4d76cdd55c82480e7e28a65d67a">maingo::bab::BranchAndBound::_NOT_TERMINATED</a></div><div class="ttdef"><b>Definition:</b> bab.h:143</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_ad1c6f9191a7ab197f5a48ea554594462"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#ad1c6f9191a7ab197f5a48ea554594462">maingo::bab::BranchAndBound::_print_one_node</a></div><div class="ttdeci">void _print_one_node(const double theLBD, const int ID, const std::vector&lt; double &gt; lowerVarBounds, const std::vector&lt; double &gt; upperVarBounds)</div><div class="ttdoc">Function printing one node. </div><div class="ttdef"><b>Definition:</b> bab.cpp:1019</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a17af9af1c4195bb491a0624d3a4edb36"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a17af9af1c4195bb491a0624d3a4edb36">maingo::bab::BranchAndBound::_timePreprocess</a></div><div class="ttdeci">double _timePreprocess</div><div class="ttdef"><b>Definition:</b> bab.h:419</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_aba6e92ef8af1e76b62a543e1334b4948"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#aba6e92ef8af1e76b62a543e1334b4948">maingo::bab::BranchAndBound::_UBS</a></div><div class="ttdeci">std::shared_ptr&lt; ubp::UpperBoundingSolver &gt; _UBS</div><div class="ttdef"><b>Definition:</b> bab.h:361</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_ab0c17e7072887baa0bf2377a7be7a4bc"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#ab0c17e7072887baa0bf2377a7be7a4bc">maingo::bab::BranchAndBound::_daysPassed</a></div><div class="ttdeci">unsigned _daysPassed</div><div class="ttdef"><b>Definition:</b> bab.h:420</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html_a2a0922468fbfe492d9d70231c54c4bf9"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a2a0922468fbfe492d9d70231c54c4bf9">babBase::BabNode::get_upper_bounds</a></div><div class="ttdeci">std::vector&lt; double &gt; get_upper_bounds() const</div><div class="ttdoc">Function for querying the upper bounds on the optimization variables within this node. </div><div class="ttdef"><b>Definition:</b> babNode.h:95</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_ad5e5e8e1a0f2a3dda0a6deac59409fd6"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#ad5e5e8e1a0f2a3dda0a6deac59409fd6">maingo::bab::BranchAndBound::_check_if_more_scaling_needed</a></div><div class="ttdeci">void _check_if_more_scaling_needed()</div><div class="ttdoc">Function which checks whether it is necessary to activate scaling within the LBD solver. This is a heuristic approach, which does not affect any deterministic optimization assumptions. </div><div class="ttdef"><b>Definition:</b> bab.cpp:867</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a07ba7b9ae290bc913f2d2ca19c7c49e1a803a5e6c3589e7407f7993fff57c30dd"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a803a5e6c3589e7407f7993fff57c30dd">maingo::bab::BranchAndBound::_TERMINATED_WORKERS_ACTIVE</a></div><div class="ttdef"><b>Definition:</b> bab.h:142</div></div>
 <div class="ttc" id="_m_ai_n_g_odebug_8h_html"><div class="ttname"><a href="_m_ai_n_g_odebug_8h.html">MAiNGOdebug.h</a></div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_lbp_dual_info_html"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_lbp_dual_info.html">maingo::lbp::LbpDualInfo</a></div><div class="ttdoc">Container for information from the LBP that is needed in DBBT and probing, used for communicating the...</div><div class="ttdef"><b>Definition:</b> lbp.h:47</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_aa66393ce301be8002cdea9b1b43aa5b2"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#aa66393ce301be8002cdea9b1b43aa5b2">maingo::bab::BranchAndBound::_nvar</a></div><div class="ttdeci">const unsigned _nvar</div><div class="ttdef"><b>Definition:</b> bab.h:376</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_af0c2fdc294a5197cc5cf2931945f1ec6"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#af0c2fdc294a5197cc5cf2931945f1ec6">maingo::bab::BranchAndBound::_nNodesLeft</a></div><div class="ttdeci">unsigned _nNodesLeft</div><div class="ttdef"><b>Definition:</b> bab.h:411</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a16bbea3c96042145acc5df3830cd72b4"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a16bbea3c96042145acc5df3830cd72b4">maingo::bab::BranchAndBound::_LBS</a></div><div class="ttdeci">std::shared_ptr&lt; lbp::LowerBoundingSolver &gt; _LBS</div><div class="ttdef"><b>Definition:</b> bab.h:367</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a07ba7b9ae290bc913f2d2ca19c7c49e1"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1">maingo::bab::BranchAndBound::_TERMINATION_TYPE</a></div><div class="ttdeci">_TERMINATION_TYPE</div><div class="ttdoc">Enum for representing different termination types in B&amp;B.</div><div class="ttdef"><b>Definition:</b> bab.h:145</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_acca388f26f5e0c94b58643b566b8a235"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#acca388f26f5e0c94b58643b566b8a235">maingo::bab::BranchAndBound::_maingoSettings</a></div><div class="ttdeci">Settings * _maingoSettings</div><div class="ttdef"><b>Definition:</b> bab.h:369</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a668165551fb2c2cc69a05b1956755147"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a668165551fb2c2cc69a05b1956755147">maingo::bab::BranchAndBound::get_max_nodes_in_memory</a></div><div class="ttdeci">double get_max_nodes_in_memory()</div><div class="ttdoc">Function returning the maximum number of nodes in memory.</div><div class="ttdef"><b>Definition:</b> bab.h:103</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a2defed7ca937feacb124cc97b8f7915f"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a2defed7ca937feacb124cc97b8f7915f">maingo::bab::BranchAndBound::_incumbentNodeId</a></div><div class="ttdeci">unsigned _incumbentNodeId</div><div class="ttdef"><b>Definition:</b> bab.h:393</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_af593cef9ed1bcfa512f7302732b9a614"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#af593cef9ed1bcfa512f7302732b9a614">maingo::bab::BranchAndBound::get_LBP_count</a></div><div class="ttdeci">double get_LBP_count()</div><div class="ttdoc">Function returning number of LBD problems solved.</div><div class="ttdef"><b>Definition:</b> bab.h:113</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a7db5251fcd9ad3ca2892a9b17cb7b197"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a7db5251fcd9ad3ca2892a9b17cb7b197">maingo::bab::BranchAndBound::~BranchAndBound</a></div><div class="ttdeci">~BranchAndBound()</div><div class="ttdoc">Destructor.</div><div class="ttdef"><b>Definition:</b> bab.h:82</div></div>
-<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_acab7696c07ae41c7a9296c0977359b1e"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#acab7696c07ae41c7a9296c0977359b1e">maingo::bab::BranchAndBound::_solve_UBP</a></div><div class="ttdeci">std::tuple&lt; bool, bool, double &gt; _solve_UBP(const babBase::BabNode &amp;currentNode, std::vector&lt; double &gt; &amp;ubpSolutionPoint, const double currentLBD)</div><div class="ttdoc">Function invoking the UBS to solve the upper bounding problem.</div><div class="ttdef"><b>Definition:</b> bab.cpp:717</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a1f509aa5a3de69ff00e8d2c31b654d48"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a1f509aa5a3de69ff00e8d2c31b654d48">maingo::bab::BranchAndBound::_initialPoint</a></div><div class="ttdeci">std::vector&lt; double &gt; _initialPoint</div><div class="ttdef"><b>Definition:</b> bab.h:382</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_lbp_dual_info_html"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_lbp_dual_info.html">maingo::lbp::LbpDualInfo</a></div><div class="ttdoc">Container for information from the LBP that is needed in DBBT and probing, used for communicating the...</div><div class="ttdef"><b>Definition:</b> lbp.h:52</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_aa66393ce301be8002cdea9b1b43aa5b2"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#aa66393ce301be8002cdea9b1b43aa5b2">maingo::bab::BranchAndBound::_nvar</a></div><div class="ttdeci">const unsigned _nvar</div><div class="ttdef"><b>Definition:</b> bab.h:371</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_af0c2fdc294a5197cc5cf2931945f1ec6"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#af0c2fdc294a5197cc5cf2931945f1ec6">maingo::bab::BranchAndBound::_nNodesLeft</a></div><div class="ttdeci">unsigned _nNodesLeft</div><div class="ttdef"><b>Definition:</b> bab.h:406</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a07ba7b9ae290bc913f2d2ca19c7c49e1"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1">maingo::bab::BranchAndBound::_TERMINATION_TYPE</a></div><div class="ttdeci">_TERMINATION_TYPE</div><div class="ttdoc">Enum for representing different termination types in B&amp;B. </div><div class="ttdef"><b>Definition:</b> bab.h:140</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_abb34f49557e1d417e5a87a467cee2ec8"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#abb34f49557e1d417e5a87a467cee2ec8">maingo::bab::BranchAndBound::_maingoSettings</a></div><div class="ttdeci">std::shared_ptr&lt; Settings &gt; _maingoSettings</div><div class="ttdef"><b>Definition:</b> bab.h:364</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a668165551fb2c2cc69a05b1956755147"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a668165551fb2c2cc69a05b1956755147">maingo::bab::BranchAndBound::get_max_nodes_in_memory</a></div><div class="ttdeci">double get_max_nodes_in_memory()</div><div class="ttdoc">Function returning the maximum number of nodes in memory. </div><div class="ttdef"><b>Definition:</b> bab.h:98</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a2defed7ca937feacb124cc97b8f7915f"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a2defed7ca937feacb124cc97b8f7915f">maingo::bab::BranchAndBound::_incumbentNodeId</a></div><div class="ttdeci">unsigned _incumbentNodeId</div><div class="ttdef"><b>Definition:</b> bab.h:388</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_af593cef9ed1bcfa512f7302732b9a614"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#af593cef9ed1bcfa512f7302732b9a614">maingo::bab::BranchAndBound::get_LBP_count</a></div><div class="ttdeci">double get_LBP_count()</div><div class="ttdoc">Function returning number of LBD problems solved. </div><div class="ttdef"><b>Definition:</b> bab.h:108</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_a7db5251fcd9ad3ca2892a9b17cb7b197"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a7db5251fcd9ad3ca2892a9b17cb7b197">maingo::bab::BranchAndBound::~BranchAndBound</a></div><div class="ttdeci">~BranchAndBound()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> bab.h:77</div></div>
+<div class="ttc" id="classmaingo_1_1bab_1_1_branch_and_bound_html_acab7696c07ae41c7a9296c0977359b1e"><div class="ttname"><a href="classmaingo_1_1bab_1_1_branch_and_bound.html#acab7696c07ae41c7a9296c0977359b1e">maingo::bab::BranchAndBound::_solve_UBP</a></div><div class="ttdeci">std::tuple&lt; bool, bool, double &gt; _solve_UBP(const babBase::BabNode &amp;currentNode, std::vector&lt; double &gt; &amp;ubpSolutionPoint, const double currentLBD)</div><div class="ttdoc">Function invoking the UBS to solve the upper bounding problem. </div><div class="ttdef"><b>Definition:</b> bab.cpp:703</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -182,7 +180,7 @@ $(document).ready(function(){initNavTree('bab_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="bab_8h.html">bab.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/bab_bounds_8h.html b/doc/html/bab_bounds_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..4fe92aad23048220ed95d2d68c6495190112b5ce
--- /dev/null
+++ b/doc/html/bab_bounds_8h.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>MAiNGO: C:/dobo01/maingo/dep/babbase/inc/babBounds.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(initResizable);
+/* @license-end */</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><img alt="Logo" src="mango_only.png"/></td>
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">MAiNGO
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(document).ready(function(){initNavTree('bab_bounds_8h.html','');});
+/* @license-end */
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">babBounds.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;iostream&gt;</code><br />
+</div>
+<p><a href="bab_bounds_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbab_base_1_1_bounds.html">babBase::Bounds</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Auxiliary struct for representing bounds on an optimization variable.  <a href="structbab_base_1_1_bounds.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespacebab_base"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacebab_base.html">babBase</a></td></tr>
+<tr class="memdesc:namespacebab_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">namespace holding all essentials of the <a class="el" href="namespacebab_base.html" title="namespace holding all essentials of the babBase submodule ">babBase</a> submodule <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ace0cd5136bac463b84cdd69b51be9f49"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacebab_base.html#ace0cd5136bac463b84cdd69b51be9f49">babBase::operator&lt;&lt;</a> (std::ostream &amp;os, const Bounds &amp;b)</td></tr>
+<tr class="memdesc:ace0cd5136bac463b84cdd69b51be9f49"><td class="mdescLeft">&#160;</td><td class="mdescRight">Overloaded outstream operator for nicer output.  <a href="namespacebab_base.html#ace0cd5136bac463b84cdd69b51be9f49">More...</a><br /></td></tr>
+<tr class="separator:ace0cd5136bac463b84cdd69b51be9f49"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa4d99f78f3dad3b027ca3cf5f9cf4478"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacebab_base.html#aa4d99f78f3dad3b027ca3cf5f9cf4478">babBase::operator==</a> (const Bounds &amp;b1, const Bounds &amp;b2)</td></tr>
+<tr class="memdesc:aa4d99f78f3dad3b027ca3cf5f9cf4478"><td class="mdescLeft">&#160;</td><td class="mdescRight">Equality operator for checking if two bound objects are equal.  <a href="namespacebab_base.html#aa4d99f78f3dad3b027ca3cf5f9cf4478">More...</a><br /></td></tr>
+<tr class="separator:aa4d99f78f3dad3b027ca3cf5f9cf4478"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6d2be1c108f096eff60042aa02e3781e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacebab_base.html#a6d2be1c108f096eff60042aa02e3781e">babBase::operator!=</a> (const Bounds &amp;b1, const Bounds &amp;b2)</td></tr>
+<tr class="memdesc:a6d2be1c108f096eff60042aa02e3781e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inequality operator for checking if two bound objects differ from each other.  <a href="namespacebab_base.html#a6d2be1c108f096eff60042aa02e3781e">More...</a><br /></td></tr>
+<tr class="separator:a6d2be1c108f096eff60042aa02e3781e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_ede40f663fdbaac4622f0a2d30ba279b.html">dep</a></li><li class="navelem"><a class="el" href="dir_47e169a4fe08058254fbf7964fa7bfb6.html">babbase</a></li><li class="navelem"><a class="el" href="dir_637fe8785ffc83488bdb33305770812c.html">inc</a></li><li class="navelem"><a class="el" href="bab_bounds_8h.html">babBounds.h</a></li>
+    <li class="footer">Generated by
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/doc/html/bab_bounds_8h.js b/doc/html/bab_bounds_8h.js
new file mode 100644
index 0000000000000000000000000000000000000000..4042aca7d7c270ec3140c934b17d1292b42d548d
--- /dev/null
+++ b/doc/html/bab_bounds_8h.js
@@ -0,0 +1,7 @@
+var bab_bounds_8h =
+[
+    [ "Bounds", "structbab_base_1_1_bounds.html", "structbab_base_1_1_bounds" ],
+    [ "operator!=", "bab_bounds_8h.html#a6d2be1c108f096eff60042aa02e3781e", null ],
+    [ "operator<<", "bab_bounds_8h.html#ace0cd5136bac463b84cdd69b51be9f49", null ],
+    [ "operator==", "bab_bounds_8h.html#aa4d99f78f3dad3b027ca3cf5f9cf4478", null ]
+];
\ No newline at end of file
diff --git a/doc/html/bab_bounds_8h_source.html b/doc/html/bab_bounds_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..4f0099c10d505d7d8f213ff4ecb2d51579d643b2
--- /dev/null
+++ b/doc/html/bab_bounds_8h_source.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>MAiNGO: C:/dobo01/maingo/dep/babbase/inc/babBounds.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(initResizable);
+/* @license-end */</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><img alt="Logo" src="mango_only.png"/></td>
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">MAiNGO
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(document).ready(function(){initNavTree('bab_bounds_8h_source.html','');});
+/* @license-end */
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">babBounds.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="bab_bounds_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file babBounds.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing definition of Bounds struct for storing bounds on optimization variables.</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacebab_base.html">babBase</a> {</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bounds.html">   32</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structbab_base_1_1_bounds.html">Bounds</a> {</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bounds.html#a143d3617a4792c4ab189e372e8e0b681">   41</a></span>&#160;    <a class="code" href="structbab_base_1_1_bounds.html#a143d3617a4792c4ab189e372e8e0b681">Bounds</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> lowerIn, <span class="keyword">const</span> <span class="keywordtype">double</span> upperIn):</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        <a class="code" href="structbab_base_1_1_bounds.html#ac371c3147b5737af08e1c03daf413c05">lower</a>(lowerIn), <a class="code" href="structbab_base_1_1_bounds.html#a9f4758be8a66b8e7b034af1f04e19d1d">upper</a>(upperIn) {}</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bounds.html#aac75f501a93c1ba546d9e9d2263ad2f4">   47</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structbab_base_1_1_bounds.html#aac75f501a93c1ba546d9e9d2263ad2f4">are_consistent</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="keyword">    </span>{</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;        <span class="keywordflow">return</span> (<a class="code" href="structbab_base_1_1_bounds.html#ac371c3147b5737af08e1c03daf413c05">lower</a> &lt;= <a class="code" href="structbab_base_1_1_bounds.html#a9f4758be8a66b8e7b034af1f04e19d1d">upper</a>);</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    }</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bounds.html#ac371c3147b5737af08e1c03daf413c05">   52</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structbab_base_1_1_bounds.html#ac371c3147b5737af08e1c03daf413c05">lower</a>;      </div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bounds.html#a9f4758be8a66b8e7b034af1f04e19d1d">   53</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structbab_base_1_1_bounds.html#a9f4758be8a66b8e7b034af1f04e19d1d">upper</a>;      </div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;};</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="namespacebab_base.html#ace0cd5136bac463b84cdd69b51be9f49">   63</a></span>&#160;<span class="keyword">inline</span> std::ostream &amp;<a class="code" href="namespacebab_base.html#ace0cd5136bac463b84cdd69b51be9f49">operator&lt;&lt;</a>(std::ostream &amp;os, <span class="keyword">const</span> <a class="code" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;b)</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;{</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    os &lt;&lt; <span class="stringliteral">&quot;Lower:&quot;</span> &lt;&lt; b.<a class="code" href="structbab_base_1_1_bounds.html#ac371c3147b5737af08e1c03daf413c05">lower</a> &lt;&lt; <span class="stringliteral">&quot; , Upper:&quot;</span> &lt;&lt; b.<a class="code" href="structbab_base_1_1_bounds.html#a9f4758be8a66b8e7b034af1f04e19d1d">upper</a>;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;};</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="namespacebab_base.html#aa4d99f78f3dad3b027ca3cf5f9cf4478">   76</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacebab_base.html#aa4d99f78f3dad3b027ca3cf5f9cf4478">operator==</a>(<span class="keyword">const</span> <a class="code" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;b1, <span class="keyword">const</span> <a class="code" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;b2)</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;{</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    <span class="keywordflow">return</span> ( (b1.<a class="code" href="structbab_base_1_1_bounds.html#ac371c3147b5737af08e1c03daf413c05">lower</a> == b2.<a class="code" href="structbab_base_1_1_bounds.html#ac371c3147b5737af08e1c03daf413c05">lower</a>) &amp;&amp; (b1.<a class="code" href="structbab_base_1_1_bounds.html#a9f4758be8a66b8e7b034af1f04e19d1d">upper</a> == b2.<a class="code" href="structbab_base_1_1_bounds.html#a9f4758be8a66b8e7b034af1f04e19d1d">upper</a>) );</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;};</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="namespacebab_base.html#a6d2be1c108f096eff60042aa02e3781e">   88</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacebab_base.html#a6d2be1c108f096eff60042aa02e3781e">operator!=</a>(<span class="keyword">const</span> <a class="code" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;b1, <span class="keyword">const</span> <a class="code" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;b2)</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;{</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    <span class="keywordflow">return</span> ( (b1.<a class="code" href="structbab_base_1_1_bounds.html#ac371c3147b5737af08e1c03daf413c05">lower</a> != b2.<a class="code" href="structbab_base_1_1_bounds.html#ac371c3147b5737af08e1c03daf413c05">lower</a>) || (b1.<a class="code" href="structbab_base_1_1_bounds.html#a9f4758be8a66b8e7b034af1f04e19d1d">upper</a> != b2.<a class="code" href="structbab_base_1_1_bounds.html#a9f4758be8a66b8e7b034af1f04e19d1d">upper</a>) );</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;};</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;}    <span class="comment">// namespace babBase</span></div><div class="ttc" id="namespacebab_base_html_ace0cd5136bac463b84cdd69b51be9f49"><div class="ttname"><a href="namespacebab_base.html#ace0cd5136bac463b84cdd69b51be9f49">babBase::operator&lt;&lt;</a></div><div class="ttdeci">std::ostream &amp; operator&lt;&lt;(std::ostream &amp;os, const Bounds &amp;b)</div><div class="ttdoc">Overloaded outstream operator for nicer output. </div><div class="ttdef"><b>Definition:</b> babBounds.h:63</div></div>
+<div class="ttc" id="structbab_base_1_1_bounds_html"><div class="ttname"><a href="structbab_base_1_1_bounds.html">babBase::Bounds</a></div><div class="ttdoc">Auxiliary struct for representing bounds on an optimization variable. </div><div class="ttdef"><b>Definition:</b> babBounds.h:32</div></div>
+<div class="ttc" id="namespacebab_base_html"><div class="ttname"><a href="namespacebab_base.html">babBase</a></div><div class="ttdoc">namespace holding all essentials of the babBase submodule </div></div>
+<div class="ttc" id="namespacebab_base_html_aa4d99f78f3dad3b027ca3cf5f9cf4478"><div class="ttname"><a href="namespacebab_base.html#aa4d99f78f3dad3b027ca3cf5f9cf4478">babBase::operator==</a></div><div class="ttdeci">bool operator==(const Bounds &amp;b1, const Bounds &amp;b2)</div><div class="ttdoc">Equality operator for checking if two bound objects are equal. </div><div class="ttdef"><b>Definition:</b> babBounds.h:76</div></div>
+<div class="ttc" id="structbab_base_1_1_bounds_html_ac371c3147b5737af08e1c03daf413c05"><div class="ttname"><a href="structbab_base_1_1_bounds.html#ac371c3147b5737af08e1c03daf413c05">babBase::Bounds::lower</a></div><div class="ttdeci">double lower</div><div class="ttdef"><b>Definition:</b> babBounds.h:52</div></div>
+<div class="ttc" id="structbab_base_1_1_bounds_html_a143d3617a4792c4ab189e372e8e0b681"><div class="ttname"><a href="structbab_base_1_1_bounds.html#a143d3617a4792c4ab189e372e8e0b681">babBase::Bounds::Bounds</a></div><div class="ttdeci">Bounds(const double lowerIn, const double upperIn)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> babBounds.h:41</div></div>
+<div class="ttc" id="structbab_base_1_1_bounds_html_a9f4758be8a66b8e7b034af1f04e19d1d"><div class="ttname"><a href="structbab_base_1_1_bounds.html#a9f4758be8a66b8e7b034af1f04e19d1d">babBase::Bounds::upper</a></div><div class="ttdeci">double upper</div><div class="ttdef"><b>Definition:</b> babBounds.h:53</div></div>
+<div class="ttc" id="structbab_base_1_1_bounds_html_aac75f501a93c1ba546d9e9d2263ad2f4"><div class="ttname"><a href="structbab_base_1_1_bounds.html#aac75f501a93c1ba546d9e9d2263ad2f4">babBase::Bounds::are_consistent</a></div><div class="ttdeci">bool are_consistent() const</div><div class="ttdoc">Function for querying whether the lower bound is less than or equal to the upper bound. </div><div class="ttdef"><b>Definition:</b> babBounds.h:47</div></div>
+<div class="ttc" id="namespacebab_base_html_a6d2be1c108f096eff60042aa02e3781e"><div class="ttname"><a href="namespacebab_base.html#a6d2be1c108f096eff60042aa02e3781e">babBase::operator!=</a></div><div class="ttdeci">bool operator!=(const Bounds &amp;b1, const Bounds &amp;b2)</div><div class="ttdoc">Inequality operator for checking if two bound objects differ from each other. </div><div class="ttdef"><b>Definition:</b> babBounds.h:88</div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_ede40f663fdbaac4622f0a2d30ba279b.html">dep</a></li><li class="navelem"><a class="el" href="dir_47e169a4fe08058254fbf7964fa7bfb6.html">babbase</a></li><li class="navelem"><a class="el" href="dir_637fe8785ffc83488bdb33305770812c.html">inc</a></li><li class="navelem"><a class="el" href="bab_bounds_8h.html">babBounds.h</a></li>
+    <li class="footer">Generated by
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/doc/html/bab_brancher_8cpp.html b/doc/html/bab_brancher_8cpp.html
index 62380ac84bd8e73f8c1b2455b559f7084d91ff3d..157c86c3f036d258cbd8ea6240a1f5b605723b05 100644
--- a/doc/html/bab_brancher_8cpp.html
+++ b/doc/html/bab_brancher_8cpp.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/dep/babbase/src/babBrancher.cpp File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/dep/babbase/src/babBrancher.cpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -99,7 +99,7 @@ $(document).ready(function(){initNavTree('bab_brancher_8cpp.html','');});
     <li class="navelem"><a class="el" href="dir_ede40f663fdbaac4622f0a2d30ba279b.html">dep</a></li><li class="navelem"><a class="el" href="dir_47e169a4fe08058254fbf7964fa7bfb6.html">babbase</a></li><li class="navelem"><a class="el" href="dir_e05b43b1ebfd1f958e3d8d3f7545ccd7.html">src</a></li><li class="navelem"><a class="el" href="bab_brancher_8cpp.html">babBrancher.cpp</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/bab_brancher_8h.html b/doc/html/bab_brancher_8h.html
index 55b377b5caa4b65e2ce06a7e83bc1eda789505b0..54ca85796f563841c25bee3f9655b67268687d29 100644
--- a/doc/html/bab_brancher_8h.html
+++ b/doc/html/bab_brancher_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/dep/babbase/inc/babBrancher.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/dep/babbase/inc/babBrancher.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -115,7 +115,7 @@ Classes</h2></td></tr>
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
 Namespaces</h2></td></tr>
 <tr class="memitem:namespacebab_base"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacebab_base.html">babBase</a></td></tr>
-<tr class="memdesc:namespacebab_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">namespace holding all essentials of the <a class="el" href="namespacebab_base.html" title="namespace holding all essentials of the babBase submodule">babBase</a> submodule <br /></td></tr>
+<tr class="memdesc:namespacebab_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">namespace holding all essentials of the <a class="el" href="namespacebab_base.html" title="namespace holding all essentials of the babBase submodule ">babBase</a> submodule <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
@@ -157,7 +157,7 @@ Functions</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_ede40f663fdbaac4622f0a2d30ba279b.html">dep</a></li><li class="navelem"><a class="el" href="dir_47e169a4fe08058254fbf7964fa7bfb6.html">babbase</a></li><li class="navelem"><a class="el" href="dir_637fe8785ffc83488bdb33305770812c.html">inc</a></li><li class="navelem"><a class="el" href="bab_brancher_8h.html">babBrancher.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/bab_brancher_8h_source.html b/doc/html/bab_brancher_8h_source.html
index f8f88a83494b39644c09ac93222803d1b7963824..5128a389ae308f50aaf5cc8a95d811a61bb8f780 100644
--- a/doc/html/bab_brancher_8h_source.html
+++ b/doc/html/bab_brancher_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/dep/babbase/inc/babBrancher.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/dep/babbase/inc/babBrancher.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,13 +90,13 @@ $(document).ready(function(){initNavTree('bab_brancher_8h_source.html','');});
 <div class="title">babBrancher.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="bab_brancher_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160; <span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> * @file babBrancher.h</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> * @brief File containing definition of the Branch-and-Bound brancher class.</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_exception_8h.html">babException.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_node_8h.html">babNode.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_opt_var_8h.html">babOptVar.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_tree_8h.html">babTree.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_utils_8h.html">babUtils.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &lt;functional&gt;</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="namespacebab_base.html">   40</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacebab_base.html">babBase</a> {</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classbab_base_1_1_brancher.html">   62</a></span>&#160;<span class="keyword">class </span><a class="code" href="classbab_base_1_1_brancher.html">Brancher</a> {</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    <a class="code" href="classbab_base_1_1_brancher.html#a05da26d4f5c313167569a1b23eb4539d">Brancher</a>(<span class="keyword">const</span> std::vector&lt;OptimizationVariable&gt;&amp; variables);</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <span class="comment">// Virtual Destructor for the case of inheritance. However, the compiler now will not autogenarate the other constructors. So we tell it to:</span></div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classbab_base_1_1_brancher.html#a7ed3656c248fc5438ebd4cfe15fd95e7">~Brancher</a>()       = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <a class="code" href="classbab_base_1_1_brancher.html#a05da26d4f5c313167569a1b23eb4539d">Brancher</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_brancher.html">Brancher</a>&amp;) = <span class="keywordflow">default</span>;       </div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    <a class="code" href="classbab_base_1_1_brancher.html">Brancher</a>&amp; <a class="code" href="classbab_base_1_1_brancher.html#aa0aa0586d60d2e945161128325e4a462">operator=</a>(<a class="code" href="classbab_base_1_1_brancher.html">Brancher</a>&amp;) = <span class="keywordflow">default</span>;  </div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <a class="code" href="classbab_base_1_1_brancher.html#a05da26d4f5c313167569a1b23eb4539d">Brancher</a>(<a class="code" href="classbab_base_1_1_brancher.html">Brancher</a>&amp;&amp;)           = <span class="keywordflow">default</span>;  </div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    <a class="code" href="classbab_base_1_1_brancher.html">Brancher</a>&amp; <a class="code" href="classbab_base_1_1_brancher.html#aa0aa0586d60d2e945161128325e4a462">operator=</a>(<a class="code" href="classbab_base_1_1_brancher.html">Brancher</a>&amp;&amp;) = <span class="keywordflow">default</span>; </div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classbab_base_1_1_brancher.html#af9b60e80a40637b8aea84fab03cc665f">set_branching_dimension_selection_strategy</a>(<span class="keyword">const</span> <a class="code" href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81">enums::BV</a> branchingVarStratSelection);</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classbab_base_1_1_brancher.html#af9d7e5d2ea87c0a161e6719188b8c745">set_node_selection_strategy</a>(<span class="keyword">const</span> <a class="code" href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5">enums::NS</a> nodeSelectionStratType);</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classbab_base_1_1_brancher.html#aea9a04b2eef42673d67e0e8340d8bcfe">set_node_selection_score_function</a>(std::function&lt;<span class="keywordtype">double</span>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a>&amp;, <span class="keyword">const</span> std::vector&lt;OptimizationVariable&gt;&amp;)&gt; newNodeScoreFunction);</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classbab_base_1_1_brancher.html#a9751c79dcbf4b2ad67a549f5bfa6e5d3">register_node_change</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> Id, <span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a>&amp; nodeAfterProcessing);</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classbab_base_1_1_brancher.html#a4d546d676bac7c0bde9ec3ac1f3c1adb">insert_root_node</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a>&amp; rootNode);</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    std::pair&lt;<span class="keywordtype">bool</span> <span class="comment">/*isFixed*/</span>, <span class="keywordtype">bool</span> <span class="comment">/*canBeConsideredFixed*/</span>&gt; <a class="code" href="classbab_base_1_1_brancher.html#ac0128b99d5fdfc973298293f5913e729">branch_on_node</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a>&amp; parentNode, <span class="keyword">const</span> std::vector&lt;double&gt;&amp; relaxationSolutionPoint, <span class="keywordtype">double</span> relaxationSolutionObjValue, <span class="keywordtype">unsigned</span>&amp; incumbentNodeId, <span class="keywordtype">double</span> relNodeSizeTol = 0.0);</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="classbab_base_1_1_brancher.html#a9b2a948ff522a40e63f90956a0b0c01d">  144</a></span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="classbab_base_1_1_brancher.html#a9b2a948ff522a40e63f90956a0b0c01d">get_nodes_in_tree</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> this-&gt;<a class="code" href="classbab_base_1_1_brancher.html#a5a56b283f653f2b7c091369cd7df173f">_internalBranchAndBoundTree</a>.<a class="code" href="classbab_base_1_1_bab_tree.html#aaa3be3d14946afcacef5079b3b0e812c">get_nodes_left</a>(); }</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    <a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a> <a class="code" href="classbab_base_1_1_brancher.html#ab4a30a04b14b4b0e88956d53963f1fcb">get_next_node</a>();</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="classbab_base_1_1_brancher.html#a657a3dc42d1a34b8a04e9e9d9c699ff6">  157</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classbab_base_1_1_brancher.html#a657a3dc42d1a34b8a04e9e9d9c699ff6">set_new_incumbent_point</a>(std::vector&lt;double&gt; incumbentPoint)</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    {</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;        this-&gt;<a class="code" href="classbab_base_1_1_brancher.html#a0ac6e7605a51a64ec4f5449a219f64a5">_incumbentSolutionPoint</a> = incumbentPoint;</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        <a class="code" href="classbab_base_1_1_brancher.html#a5a56b283f653f2b7c091369cd7df173f">_internalBranchAndBoundTree</a>.<a class="code" href="classbab_base_1_1_bab_tree.html#a13e9545dba8eb0600f0f41b5a682081b">remove_has_incumbent_from_all_nodes</a>();</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;    } <span class="comment">/* pruning_score may be LB but Threshold should be UB (!) thus the following would not work: _internalBranchAndBoundTree.decrease_pruning_score_threshold_to(incumbentIn.get_pruning_score());*/</span></div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="classbab_base_1_1_brancher.html#ab01c4af73b4c9489cf9780bccfa73739">  166</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classbab_base_1_1_brancher.html#ab01c4af73b4c9489cf9780bccfa73739">get_lowest_pruning_score</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> this-&gt;<a class="code" href="classbab_base_1_1_brancher.html#a5a56b283f653f2b7c091369cd7df173f">_internalBranchAndBoundTree</a>.<a class="code" href="classbab_base_1_1_bab_tree.html#ab57edc600a99a8da34df3d50398b7b98">get_lowest_pruning_score</a>(); };</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="classbab_base_1_1_brancher.html#ae8c42b7d11f13590caf13b5928992ef0">  171</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classbab_base_1_1_brancher.html#ae8c42b7d11f13590caf13b5928992ef0">get_pruning_score_gap</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> this-&gt;<a class="code" href="classbab_base_1_1_brancher.html#a5a56b283f653f2b7c091369cd7df173f">_internalBranchAndBoundTree</a>.<a class="code" href="classbab_base_1_1_bab_tree.html#ab6f087487f69b67a0516d342527763ff">get_pruning_score_gap</a>(); }</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classbab_base_1_1_brancher.html#af8c884a0262c7719aa832d2ed8761ea7">decrease_pruning_score_threshold_to</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> newThreshold);</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="classbab_base_1_1_brancher.html#a8be31fd3d6a06d75c67d78ea1dd7047e">  183</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classbab_base_1_1_brancher.html#a8be31fd3d6a06d75c67d78ea1dd7047e">get_pruning_score_threshold</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_brancher.html#a5a56b283f653f2b7c091369cd7df173f">_internalBranchAndBoundTree</a>.<a class="code" href="classbab_base_1_1_bab_tree.html#a41440886243ed211a6a26981daedc530">get_pruning_score_threshold</a>(); }</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="classbab_base_1_1_brancher.html#a2472c3cebf5be6c02afe507aa4583aae">  190</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classbab_base_1_1_brancher.html#a2472c3cebf5be6c02afe507aa4583aae">enable_pruning_with_rel_and_abs_tolerance</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> relTol, <span class="keyword">const</span> <span class="keywordtype">double</span> absTol) { <a class="code" href="classbab_base_1_1_brancher.html#a5a56b283f653f2b7c091369cd7df173f">_internalBranchAndBoundTree</a>.<a class="code" href="classbab_base_1_1_bab_tree.html#a11f278a2cf37dd13270f754a0b77aa95">enable_pruning_with_rel_and_abs_tolerance</a>(relTol, absTol); };</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    std::vector&lt;BabNode&gt; <a class="code" href="classbab_base_1_1_brancher.html#a2fa6eaac5e68dfde2de07ad72e74c906">get_all_nodes_from_strong_branching</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a>&amp; parentNode, <span class="keyword">const</span> std::vector&lt;double&gt;&amp; relaxationSolutionPoint);</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    <a class="code" href="classbab_base_1_1_bab_node_with_info.html">BabNodeWithInfo</a> <a class="code" href="classbab_base_1_1_brancher.html#a53d5b740ed9e0ad82601b59c941e21f5">_create_node_with_info_from_node</a>(<a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a> normalNode, <span class="keywordtype">unsigned</span> branchedVariable, <a class="code" href="structbab_base_1_1_branching_history_info.html#a0692c234f3dd6f32552a5c04519fb489">BranchingHistoryInfo::BranchStatus</a> branchStatus, <span class="keywordtype">double</span> variableRelaxationSolutionPoint, <span class="keywordtype">double</span> parentLowerBound, <span class="keywordtype">double</span> parentUpperBound) <span class="keyword">const</span>;</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classbab_base_1_1_brancher.html#aee381075df2a3f5dfbf54ba6dadc4584">_calculate_branching_point</a>(<span class="keywordtype">double</span> lowerBound, <span class="keywordtype">double</span> upperBound, <span class="keywordtype">double</span> relaxationValue) <span class="keyword">const</span>;</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;    std::pair&lt;BabNodeWithInfo, BabNodeWithInfo&gt; <a class="code" href="classbab_base_1_1_brancher.html#a72a36fe9f0f5eac9a351d30fc2a4f0d3">_create_children</a>(<span class="keywordtype">unsigned</span> branchVar, <span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a>&amp; parentNode, <span class="keywordtype">double</span> branchVariableRelaxSolutionPoint);</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classbab_base_1_1_brancher.html#adc6989ca24a46718549abe6ae0a507a8">_select_branching_dimension_pseudo_costs</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a>&amp; parentNode, <span class="keyword">const</span> std::vector&lt;double&gt;&amp; relaxationSolutionPoint, <span class="keyword">const</span> <span class="keywordtype">double</span> relaxationSolutionObjValue, <span class="keyword">const</span> std::vector&lt;OptimizationVariable&gt;&amp; globalOptimizationVars) <span class="keyword">const</span>;</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="classbab_base_1_1_brancher.html#ac51e4a0843f1e377bcd61ee888c8ef32">  228</a></span>&#160;    std::function&lt;double(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a>&amp;, <span class="keyword">const</span> std::vector&lt;OptimizationVariable&gt;&amp;)&gt; <a class="code" href="classbab_base_1_1_brancher.html#ac51e4a0843f1e377bcd61ee888c8ef32">_node_score_calculating_function</a>;                                                                                                                       </div><div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="classbab_base_1_1_brancher.html#aa6bd0c8e1afc7fd2e664eb758c76129d">  229</a></span>&#160;    std::function&lt;unsigned(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a>&amp; parentNode, <span class="keyword">const</span> std::vector&lt;double&gt;&amp; relaxationSolutionPoint, <span class="keywordtype">double</span> relaxationSolutionObjValue, <span class="keyword">const</span> std::vector&lt;OptimizationVariable&gt;&amp; globalOptimizationVars)&gt; <a class="code" href="classbab_base_1_1_brancher.html#aa6bd0c8e1afc7fd2e664eb758c76129d">_select_branching_dimension</a>; </div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="classbab_base_1_1_brancher.html#a5a56b283f653f2b7c091369cd7df173f">  230</a></span>&#160;    <a class="code" href="classbab_base_1_1_bab_tree.html">BabTree</a> <a class="code" href="classbab_base_1_1_brancher.html#a5a56b283f653f2b7c091369cd7df173f">_internalBranchAndBoundTree</a>;                                                                                                                                                                                                    </div><div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="classbab_base_1_1_brancher.html#a8bfa5c9a97da757ab3c9521da6d7a7fa">  231</a></span>&#160;    std::vector&lt;OptimizationVariable&gt; <a class="code" href="classbab_base_1_1_brancher.html#a8bfa5c9a97da757ab3c9521da6d7a7fa">_globalOptimizationVariables</a>;                                                                                                                                                                         </div><div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="classbab_base_1_1_brancher.html#a8d28b468b23676b995830a082937c3e0">  232</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classbab_base_1_1_brancher.html#a8d28b468b23676b995830a082937c3e0">_pseudocosts_up</a>;                                                                                                                                                                                                    </div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="classbab_base_1_1_brancher.html#aa1619d82b46476d264ca0c82245c5f0c">  233</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classbab_base_1_1_brancher.html#aa1619d82b46476d264ca0c82245c5f0c">_pseudocosts_down</a>;                                                                                                                                                                                                  </div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="classbab_base_1_1_brancher.html#a902915f04ce89e7d5ef9101d99e0c698">  234</a></span>&#160;    std::vector&lt;int&gt; <a class="code" href="classbab_base_1_1_brancher.html#a902915f04ce89e7d5ef9101d99e0c698">_number_of_trials_up</a>;                                                                                                                                                                                                  </div><div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="classbab_base_1_1_brancher.html#abbbc54933302ab1b407ec237aa1e0ff8">  235</a></span>&#160;    std::vector&lt;int&gt; <a class="code" href="classbab_base_1_1_brancher.html#abbbc54933302ab1b407ec237aa1e0ff8">_number_of_trials_down</a>;                                                                                                                                                                                                </div><div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="classbab_base_1_1_brancher.html#a2452291823286a68da8b1ad1cefa3d84">  236</a></span>&#160;    std::vector&lt;std::tuple&lt;<span class="keywordtype">unsigned</span> <span class="comment">/* id*/</span>, <span class="keywordtype">double</span> <span class="comment">/*parentPruningScore*/</span>, <a class="code" href="structbab_base_1_1_branching_history_info.html">BranchingHistoryInfo</a>&gt;&gt; <a class="code" href="classbab_base_1_1_brancher.html#a2452291823286a68da8b1ad1cefa3d84">_nodesWaitingForResponse</a>;                                                                                                                </div><div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="classbab_base_1_1_brancher.html#a0ac6e7605a51a64ec4f5449a219f64a5">  237</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classbab_base_1_1_brancher.html#a0ac6e7605a51a64ec4f5449a219f64a5">_incumbentSolutionPoint</a>;                                                                                                                                                                                            </div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;};</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;<span class="keywordtype">unsigned</span> <a class="code" href="namespacebab_base.html#aa9bc767e7e3b13c80b9c529eb5764592">select_branching_dimension_absdiam</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a>&amp; parentNode, <span class="keyword">const</span> std::vector&lt;double&gt;&amp; relaxationSolutionPoint, <span class="keyword">const</span> <span class="keywordtype">double</span> relaxationSolutionObjValue, <span class="keyword">const</span> std::vector&lt;OptimizationVariable&gt;&amp; globalOptimizationVars);</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;<span class="keywordtype">unsigned</span> <a class="code" href="namespacebab_base.html#a53c20e34bcd16e8a49612ee4ff5e6f11">select_branching_dimension_reldiam</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a>&amp; parentNode, <span class="keyword">const</span> std::vector&lt;double&gt;&amp; relaxationSolutionPoint, <span class="keyword">const</span> <span class="keywordtype">double</span> relaxationSolutionObjValue, <span class="keyword">const</span> std::vector&lt;OptimizationVariable&gt;&amp; globalOptimizationVars);</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;<span class="keywordtype">double</span> <a class="code" href="namespacebab_base.html#a4d2b6b4a6ab2a3676a6a1ec734be6b6b">relative_distance_to_closest_bound</a>(<span class="keywordtype">double</span> pointValue, <span class="keywordtype">double</span> bound1, <span class="keywordtype">double</span> bound2, <span class="keyword">const</span> <a class="code" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a>&amp; variable);</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;<span class="keywordtype">double</span> <a class="code" href="namespacebab_base.html#ab748ef40ab06d5cfe2a2280d66f19bb9">low_pruning_score_first</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a>&amp; candidate, <span class="keyword">const</span> std::vector&lt;OptimizationVariable&gt;&amp; globalVars);</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;<span class="keywordtype">double</span> <a class="code" href="namespacebab_base.html#ab8f1d614e5625322fd3e196bd4d985b4">low_id_first</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a>&amp; candidate, <span class="keyword">const</span> std::vector&lt;OptimizationVariable&gt;&amp; globalVars);</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;<span class="keywordtype">double</span> <a class="code" href="namespacebab_base.html#a22201bd682ee96c743674a020b372d58">high_id_first</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a>&amp; candidate, <span class="keyword">const</span> std::vector&lt;OptimizationVariable&gt;&amp; globalVars);</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;std::pair&lt;double, double&gt; <a class="code" href="namespacebab_base.html#ad18c8a7d403193113c3d6c4ecef067c3">calculate_pseudocost_multipliers_minus_and_plus</a>(<a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a> varType, <span class="keywordtype">double</span> lowerBound, <span class="keywordtype">double</span> upperBound, <span class="keywordtype">double</span> branchingPoint, <span class="keywordtype">double</span> relaxationSolutionPoint);</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;}    <span class="comment">//end namespace babBase</span></div><div class="ttc" id="classbab_base_1_1_brancher_html_aa0aa0586d60d2e945161128325e4a462"><div class="ttname"><a href="classbab_base_1_1_brancher.html#aa0aa0586d60d2e945161128325e4a462">babBase::Brancher::operator=</a></div><div class="ttdeci">Brancher &amp; operator=(Brancher &amp;)=default</div></div>
-<div class="ttc" id="classbab_base_1_1_brancher_html_adc6989ca24a46718549abe6ae0a507a8"><div class="ttname"><a href="classbab_base_1_1_brancher.html#adc6989ca24a46718549abe6ae0a507a8">babBase::Brancher::_select_branching_dimension_pseudo_costs</a></div><div class="ttdeci">unsigned _select_branching_dimension_pseudo_costs(const BabNode &amp;parentNode, const std::vector&lt; double &gt; &amp;relaxationSolutionPoint, const double relaxationSolutionObjValue, const std::vector&lt; OptimizationVariable &gt; &amp;globalOptimizationVars) const</div><div class="ttdoc">Function for selecting the variable to branch on by choosing the one with the largest pseudocost.</div><div class="ttdef"><b>Definition:</b> babBrancher.cpp:394</div></div>
-<div class="ttc" id="classbab_base_1_1_brancher_html_a05da26d4f5c313167569a1b23eb4539d"><div class="ttname"><a href="classbab_base_1_1_brancher.html#a05da26d4f5c313167569a1b23eb4539d">babBase::Brancher::Brancher</a></div><div class="ttdeci">Brancher(const std::vector&lt; OptimizationVariable &gt; &amp;variables)</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> babBrancher.cpp:24</div></div>
+<a href="bab_brancher_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160; <span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> * @file babBrancher.h</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> * @brief File containing definition of the Branch-and-Bound brancher class.</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_exception_8h.html">babException.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_node_8h.html">babNode.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_opt_var_8h.html">babOptVar.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_tree_8h.html">babTree.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_utils_8h.html">babUtils.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &lt;functional&gt;</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacebab_base.html">babBase</a> {</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classbab_base_1_1_brancher.html">   62</a></span>&#160;<span class="keyword">class </span><a class="code" href="classbab_base_1_1_brancher.html">Brancher</a> {</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    <a class="code" href="classbab_base_1_1_brancher.html#a05da26d4f5c313167569a1b23eb4539d">Brancher</a>(<span class="keyword">const</span> std::vector&lt;OptimizationVariable&gt;&amp; variables);</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <span class="comment">// Virtual Destructor for the case of inheritance. However, the compiler now will not autogenarate the other constructors. So we tell it to:</span></div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classbab_base_1_1_brancher.html#a7ed3656c248fc5438ebd4cfe15fd95e7">~Brancher</a>()       = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <a class="code" href="classbab_base_1_1_brancher.html#a05da26d4f5c313167569a1b23eb4539d">Brancher</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_brancher.html">Brancher</a>&amp;) = <span class="keywordflow">default</span>;       </div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    <a class="code" href="classbab_base_1_1_brancher.html">Brancher</a>&amp; <a class="code" href="classbab_base_1_1_brancher.html#aa0aa0586d60d2e945161128325e4a462">operator=</a>(<a class="code" href="classbab_base_1_1_brancher.html">Brancher</a>&amp;) = <span class="keywordflow">default</span>;  </div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <a class="code" href="classbab_base_1_1_brancher.html#a05da26d4f5c313167569a1b23eb4539d">Brancher</a>(<a class="code" href="classbab_base_1_1_brancher.html">Brancher</a>&amp;&amp;)           = <span class="keywordflow">default</span>;  </div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    <a class="code" href="classbab_base_1_1_brancher.html">Brancher</a>&amp; <a class="code" href="classbab_base_1_1_brancher.html#aa0aa0586d60d2e945161128325e4a462">operator=</a>(<a class="code" href="classbab_base_1_1_brancher.html">Brancher</a>&amp;&amp;) = <span class="keywordflow">default</span>; </div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classbab_base_1_1_brancher.html#af9b60e80a40637b8aea84fab03cc665f">set_branching_dimension_selection_strategy</a>(<span class="keyword">const</span> <a class="code" href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81">enums::BV</a> branchingVarStratSelection);</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classbab_base_1_1_brancher.html#af9d7e5d2ea87c0a161e6719188b8c745">set_node_selection_strategy</a>(<span class="keyword">const</span> <a class="code" href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5">enums::NS</a> nodeSelectionStratType);</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classbab_base_1_1_brancher.html#aea9a04b2eef42673d67e0e8340d8bcfe">set_node_selection_score_function</a>(std::function&lt;<span class="keywordtype">double</span>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a>&amp;, <span class="keyword">const</span> std::vector&lt;OptimizationVariable&gt;&amp;)&gt; newNodeScoreFunction);</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classbab_base_1_1_brancher.html#a9751c79dcbf4b2ad67a549f5bfa6e5d3">register_node_change</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> Id, <span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a>&amp; nodeAfterProcessing);</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classbab_base_1_1_brancher.html#a4d546d676bac7c0bde9ec3ac1f3c1adb">insert_root_node</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a>&amp; rootNode);</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    std::pair&lt;<span class="keywordtype">bool</span> <span class="comment">/*isFixed*/</span>, <span class="keywordtype">bool</span> <span class="comment">/*canBeConsideredFixed*/</span>&gt; <a class="code" href="classbab_base_1_1_brancher.html#ac0128b99d5fdfc973298293f5913e729">branch_on_node</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a>&amp; parentNode, <span class="keyword">const</span> std::vector&lt;double&gt;&amp; relaxationSolutionPoint, <span class="keywordtype">double</span> relaxationSolutionObjValue, <span class="keywordtype">unsigned</span>&amp; incumbentNodeId, <span class="keywordtype">double</span> relNodeSizeTol = 0.0);</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="classbab_base_1_1_brancher.html#a9b2a948ff522a40e63f90956a0b0c01d">  144</a></span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="classbab_base_1_1_brancher.html#a9b2a948ff522a40e63f90956a0b0c01d">get_nodes_in_tree</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> this-&gt;<a class="code" href="classbab_base_1_1_brancher.html#a5a56b283f653f2b7c091369cd7df173f">_internalBranchAndBoundTree</a>.<a class="code" href="classbab_base_1_1_bab_tree.html#aaa3be3d14946afcacef5079b3b0e812c">get_nodes_left</a>(); }</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    <a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a> <a class="code" href="classbab_base_1_1_brancher.html#ab4a30a04b14b4b0e88956d53963f1fcb">get_next_node</a>();</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="classbab_base_1_1_brancher.html#a657a3dc42d1a34b8a04e9e9d9c699ff6">  157</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classbab_base_1_1_brancher.html#a657a3dc42d1a34b8a04e9e9d9c699ff6">set_new_incumbent_point</a>(std::vector&lt;double&gt; incumbentPoint)</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    {</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;        this-&gt;<a class="code" href="classbab_base_1_1_brancher.html#a0ac6e7605a51a64ec4f5449a219f64a5">_incumbentSolutionPoint</a> = incumbentPoint;</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        <a class="code" href="classbab_base_1_1_brancher.html#a5a56b283f653f2b7c091369cd7df173f">_internalBranchAndBoundTree</a>.<a class="code" href="classbab_base_1_1_bab_tree.html#a13e9545dba8eb0600f0f41b5a682081b">remove_has_incumbent_from_all_nodes</a>();</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;    } <span class="comment">/* pruning_score may be LB but Threshold should be UB (!) thus the following would not work: _internalBranchAndBoundTree.decrease_pruning_score_threshold_to(incumbentIn.get_pruning_score());*/</span></div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="classbab_base_1_1_brancher.html#ab01c4af73b4c9489cf9780bccfa73739">  166</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classbab_base_1_1_brancher.html#ab01c4af73b4c9489cf9780bccfa73739">get_lowest_pruning_score</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> this-&gt;<a class="code" href="classbab_base_1_1_brancher.html#a5a56b283f653f2b7c091369cd7df173f">_internalBranchAndBoundTree</a>.<a class="code" href="classbab_base_1_1_bab_tree.html#ab57edc600a99a8da34df3d50398b7b98">get_lowest_pruning_score</a>(); };</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="classbab_base_1_1_brancher.html#ae8c42b7d11f13590caf13b5928992ef0">  171</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classbab_base_1_1_brancher.html#ae8c42b7d11f13590caf13b5928992ef0">get_pruning_score_gap</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> this-&gt;<a class="code" href="classbab_base_1_1_brancher.html#a5a56b283f653f2b7c091369cd7df173f">_internalBranchAndBoundTree</a>.<a class="code" href="classbab_base_1_1_bab_tree.html#ab6f087487f69b67a0516d342527763ff">get_pruning_score_gap</a>(); }</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classbab_base_1_1_brancher.html#af8c884a0262c7719aa832d2ed8761ea7">decrease_pruning_score_threshold_to</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> newThreshold);</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="classbab_base_1_1_brancher.html#a8be31fd3d6a06d75c67d78ea1dd7047e">  183</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classbab_base_1_1_brancher.html#a8be31fd3d6a06d75c67d78ea1dd7047e">get_pruning_score_threshold</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_brancher.html#a5a56b283f653f2b7c091369cd7df173f">_internalBranchAndBoundTree</a>.<a class="code" href="classbab_base_1_1_bab_tree.html#a41440886243ed211a6a26981daedc530">get_pruning_score_threshold</a>(); }</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="classbab_base_1_1_brancher.html#a2472c3cebf5be6c02afe507aa4583aae">  190</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classbab_base_1_1_brancher.html#a2472c3cebf5be6c02afe507aa4583aae">enable_pruning_with_rel_and_abs_tolerance</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> relTol, <span class="keyword">const</span> <span class="keywordtype">double</span> absTol) { <a class="code" href="classbab_base_1_1_brancher.html#a5a56b283f653f2b7c091369cd7df173f">_internalBranchAndBoundTree</a>.<a class="code" href="classbab_base_1_1_bab_tree.html#a11f278a2cf37dd13270f754a0b77aa95">enable_pruning_with_rel_and_abs_tolerance</a>(relTol, absTol); };</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    std::vector&lt;BabNode&gt; <a class="code" href="classbab_base_1_1_brancher.html#a2fa6eaac5e68dfde2de07ad72e74c906">get_all_nodes_from_strong_branching</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a>&amp; parentNode, <span class="keyword">const</span> std::vector&lt;double&gt;&amp; relaxationSolutionPoint);</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    <a class="code" href="classbab_base_1_1_bab_node_with_info.html">BabNodeWithInfo</a> <a class="code" href="classbab_base_1_1_brancher.html#a53d5b740ed9e0ad82601b59c941e21f5">_create_node_with_info_from_node</a>(<a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a> normalNode, <span class="keywordtype">unsigned</span> branchedVariable, <a class="code" href="structbab_base_1_1_branching_history_info.html#a0692c234f3dd6f32552a5c04519fb489">BranchingHistoryInfo::BranchStatus</a> branchStatus, <span class="keywordtype">double</span> variableRelaxationSolutionPoint, <span class="keywordtype">double</span> parentLowerBound, <span class="keywordtype">double</span> parentUpperBound) <span class="keyword">const</span>;</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classbab_base_1_1_brancher.html#aee381075df2a3f5dfbf54ba6dadc4584">_calculate_branching_point</a>(<span class="keywordtype">double</span> lowerBound, <span class="keywordtype">double</span> upperBound, <span class="keywordtype">double</span> relaxationValue) <span class="keyword">const</span>;</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;    std::pair&lt;BabNodeWithInfo, BabNodeWithInfo&gt; <a class="code" href="classbab_base_1_1_brancher.html#a72a36fe9f0f5eac9a351d30fc2a4f0d3">_create_children</a>(<span class="keywordtype">unsigned</span> branchVar, <span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a>&amp; parentNode, <span class="keywordtype">double</span> branchVariableRelaxSolutionPoint);</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classbab_base_1_1_brancher.html#adc6989ca24a46718549abe6ae0a507a8">_select_branching_dimension_pseudo_costs</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a>&amp; parentNode, <span class="keyword">const</span> std::vector&lt;double&gt;&amp; relaxationSolutionPoint, <span class="keyword">const</span> <span class="keywordtype">double</span> relaxationSolutionObjValue, <span class="keyword">const</span> std::vector&lt;OptimizationVariable&gt;&amp; globalOptimizationVars) <span class="keyword">const</span>;</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="classbab_base_1_1_brancher.html#ac51e4a0843f1e377bcd61ee888c8ef32">  228</a></span>&#160;    std::function&lt;double(const BabNode&amp;, const std::vector&lt;OptimizationVariable&gt;&amp;)&gt; <a class="code" href="classbab_base_1_1_brancher.html#ac51e4a0843f1e377bcd61ee888c8ef32">_node_score_calculating_function</a>;                                                                                                                       </div><div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="classbab_base_1_1_brancher.html#aa6bd0c8e1afc7fd2e664eb758c76129d">  229</a></span>&#160;    std::function&lt;unsigned(const BabNode&amp; parentNode, const std::vector&lt;double&gt;&amp; relaxationSolutionPoint, <span class="keywordtype">double</span> relaxationSolutionObjValue, <span class="keyword">const</span> std::vector&lt;OptimizationVariable&gt;&amp; globalOptimizationVars)&gt; <a class="code" href="classbab_base_1_1_brancher.html#aa6bd0c8e1afc7fd2e664eb758c76129d">_select_branching_dimension</a>; </div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="classbab_base_1_1_brancher.html#a5a56b283f653f2b7c091369cd7df173f">  230</a></span>&#160;    <a class="code" href="classbab_base_1_1_bab_tree.html">BabTree</a> <a class="code" href="classbab_base_1_1_brancher.html#a5a56b283f653f2b7c091369cd7df173f">_internalBranchAndBoundTree</a>;                                                                                                                                                                                                    </div><div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="classbab_base_1_1_brancher.html#a8bfa5c9a97da757ab3c9521da6d7a7fa">  231</a></span>&#160;    std::vector&lt;OptimizationVariable&gt; <a class="code" href="classbab_base_1_1_brancher.html#a8bfa5c9a97da757ab3c9521da6d7a7fa">_globalOptimizationVariables</a>;                                                                                                                                                                         </div><div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="classbab_base_1_1_brancher.html#a8d28b468b23676b995830a082937c3e0">  232</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classbab_base_1_1_brancher.html#a8d28b468b23676b995830a082937c3e0">_pseudocosts_up</a>;                                                                                                                                                                                                    </div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="classbab_base_1_1_brancher.html#aa1619d82b46476d264ca0c82245c5f0c">  233</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classbab_base_1_1_brancher.html#aa1619d82b46476d264ca0c82245c5f0c">_pseudocosts_down</a>;                                                                                                                                                                                                  </div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="classbab_base_1_1_brancher.html#a902915f04ce89e7d5ef9101d99e0c698">  234</a></span>&#160;    std::vector&lt;int&gt; <a class="code" href="classbab_base_1_1_brancher.html#a902915f04ce89e7d5ef9101d99e0c698">_number_of_trials_up</a>;                                                                                                                                                                                                  </div><div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="classbab_base_1_1_brancher.html#abbbc54933302ab1b407ec237aa1e0ff8">  235</a></span>&#160;    std::vector&lt;int&gt; <a class="code" href="classbab_base_1_1_brancher.html#abbbc54933302ab1b407ec237aa1e0ff8">_number_of_trials_down</a>;                                                                                                                                                                                                </div><div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="classbab_base_1_1_brancher.html#a2452291823286a68da8b1ad1cefa3d84">  236</a></span>&#160;    std::vector&lt;std::tuple&lt;<span class="keywordtype">unsigned</span> <span class="comment">/* id*/</span>, <span class="keywordtype">double</span> <span class="comment">/*parentPruningScore*/</span>, <a class="code" href="structbab_base_1_1_branching_history_info.html">BranchingHistoryInfo</a>&gt;&gt; <a class="code" href="classbab_base_1_1_brancher.html#a2452291823286a68da8b1ad1cefa3d84">_nodesWaitingForResponse</a>;                                                                                                                </div><div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="classbab_base_1_1_brancher.html#a0ac6e7605a51a64ec4f5449a219f64a5">  237</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classbab_base_1_1_brancher.html#a0ac6e7605a51a64ec4f5449a219f64a5">_incumbentSolutionPoint</a>;                                                                                                                                                                                            </div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;};</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;<span class="keywordtype">unsigned</span> <a class="code" href="namespacebab_base.html#aa9bc767e7e3b13c80b9c529eb5764592">select_branching_dimension_absdiam</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a>&amp; parentNode, <span class="keyword">const</span> std::vector&lt;double&gt;&amp; relaxationSolutionPoint, <span class="keyword">const</span> <span class="keywordtype">double</span> relaxationSolutionObjValue, <span class="keyword">const</span> std::vector&lt;OptimizationVariable&gt;&amp; globalOptimizationVars);</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;<span class="keywordtype">unsigned</span> <a class="code" href="namespacebab_base.html#a53c20e34bcd16e8a49612ee4ff5e6f11">select_branching_dimension_reldiam</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a>&amp; parentNode, <span class="keyword">const</span> std::vector&lt;double&gt;&amp; relaxationSolutionPoint, <span class="keyword">const</span> <span class="keywordtype">double</span> relaxationSolutionObjValue, <span class="keyword">const</span> std::vector&lt;OptimizationVariable&gt;&amp; globalOptimizationVars);</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;<span class="keywordtype">double</span> <a class="code" href="namespacebab_base.html#a4d2b6b4a6ab2a3676a6a1ec734be6b6b">relative_distance_to_closest_bound</a>(<span class="keywordtype">double</span> pointValue, <span class="keywordtype">double</span> bound1, <span class="keywordtype">double</span> bound2, <span class="keyword">const</span> <a class="code" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a>&amp; variable);</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;<span class="keywordtype">double</span> <a class="code" href="namespacebab_base.html#ab748ef40ab06d5cfe2a2280d66f19bb9">low_pruning_score_first</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a>&amp; candidate, <span class="keyword">const</span> std::vector&lt;OptimizationVariable&gt;&amp; globalVars);</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;<span class="keywordtype">double</span> <a class="code" href="namespacebab_base.html#ab8f1d614e5625322fd3e196bd4d985b4">low_id_first</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a>&amp; candidate, <span class="keyword">const</span> std::vector&lt;OptimizationVariable&gt;&amp; globalVars);</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;<span class="keywordtype">double</span> <a class="code" href="namespacebab_base.html#a22201bd682ee96c743674a020b372d58">high_id_first</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a>&amp; candidate, <span class="keyword">const</span> std::vector&lt;OptimizationVariable&gt;&amp; globalVars);</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;std::pair&lt;double, double&gt; <a class="code" href="namespacebab_base.html#ad18c8a7d403193113c3d6c4ecef067c3">calculate_pseudocost_multipliers_minus_and_plus</a>(<a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a> varType, <span class="keywordtype">double</span> lowerBound, <span class="keywordtype">double</span> upperBound, <span class="keywordtype">double</span> branchingPoint, <span class="keywordtype">double</span> relaxationSolutionPoint);</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;}    <span class="comment">//end namespace babBase</span></div><div class="ttc" id="classbab_base_1_1_brancher_html_aa0aa0586d60d2e945161128325e4a462"><div class="ttname"><a href="classbab_base_1_1_brancher.html#aa0aa0586d60d2e945161128325e4a462">babBase::Brancher::operator=</a></div><div class="ttdeci">Brancher &amp; operator=(Brancher &amp;)=default</div></div>
+<div class="ttc" id="classbab_base_1_1_brancher_html_adc6989ca24a46718549abe6ae0a507a8"><div class="ttname"><a href="classbab_base_1_1_brancher.html#adc6989ca24a46718549abe6ae0a507a8">babBase::Brancher::_select_branching_dimension_pseudo_costs</a></div><div class="ttdeci">unsigned _select_branching_dimension_pseudo_costs(const BabNode &amp;parentNode, const std::vector&lt; double &gt; &amp;relaxationSolutionPoint, const double relaxationSolutionObjValue, const std::vector&lt; OptimizationVariable &gt; &amp;globalOptimizationVars) const</div><div class="ttdoc">Function for selecting the variable to branch on by choosing the one with the largest pseudocost...</div><div class="ttdef"><b>Definition:</b> babBrancher.cpp:394</div></div>
+<div class="ttc" id="classbab_base_1_1_brancher_html_a05da26d4f5c313167569a1b23eb4539d"><div class="ttname"><a href="classbab_base_1_1_brancher.html#a05da26d4f5c313167569a1b23eb4539d">babBase::Brancher::Brancher</a></div><div class="ttdeci">Brancher(const std::vector&lt; OptimizationVariable &gt; &amp;variables)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> babBrancher.cpp:24</div></div>
 <div class="ttc" id="namespacebab_base_html_a4d2b6b4a6ab2a3676a6a1ec734be6b6b"><div class="ttname"><a href="namespacebab_base.html#a4d2b6b4a6ab2a3676a6a1ec734be6b6b">babBase::relative_distance_to_closest_bound</a></div><div class="ttdeci">double relative_distance_to_closest_bound(double pointValue, double bound1, double bound2, const babBase::OptimizationVariable &amp;variable)</div><div class="ttdoc">Helper function for tiebracking in branching (akin to most fractional although this is only as good a...</div><div class="ttdef"><b>Definition:</b> babBrancher.cpp:465</div></div>
-<div class="ttc" id="namespacebab_base_1_1enums_html_a02e97c49bffe195071c83aa097a8dde5"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5">babBase::enums::NS</a></div><div class="ttdeci">NS</div><div class="ttdoc">Enum for selecting the Node Selection heuristic.</div><div class="ttdef"><b>Definition:</b> babUtils.h:143</div></div>
+<div class="ttc" id="namespacebab_base_1_1enums_html_a02e97c49bffe195071c83aa097a8dde5"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5">babBase::enums::NS</a></div><div class="ttdeci">NS</div><div class="ttdoc">Enum for selecting the Node Selection heuristic. </div><div class="ttdef"><b>Definition:</b> babUtils.h:143</div></div>
 <div class="ttc" id="classbab_base_1_1_brancher_html_aa1619d82b46476d264ca0c82245c5f0c"><div class="ttname"><a href="classbab_base_1_1_brancher.html#aa1619d82b46476d264ca0c82245c5f0c">babBase::Brancher::_pseudocosts_down</a></div><div class="ttdeci">std::vector&lt; double &gt; _pseudocosts_down</div><div class="ttdef"><b>Definition:</b> babBrancher.h:233</div></div>
-<div class="ttc" id="classbab_base_1_1_brancher_html_a72a36fe9f0f5eac9a351d30fc2a4f0d3"><div class="ttname"><a href="classbab_base_1_1_brancher.html#a72a36fe9f0f5eac9a351d30fc2a4f0d3">babBase::Brancher::_create_children</a></div><div class="ttdeci">std::pair&lt; BabNodeWithInfo, BabNodeWithInfo &gt; _create_children(unsigned branchVar, const BabNode &amp;parentNode, double branchVariableRelaxSolutionPoint)</div><div class="ttdoc">Helper function for creating nodes from parent node once branch variable has been decided.</div><div class="ttdef"><b>Definition:</b> babBrancher.cpp:233</div></div>
+<div class="ttc" id="classbab_base_1_1_brancher_html_a72a36fe9f0f5eac9a351d30fc2a4f0d3"><div class="ttname"><a href="classbab_base_1_1_brancher.html#a72a36fe9f0f5eac9a351d30fc2a4f0d3">babBase::Brancher::_create_children</a></div><div class="ttdeci">std::pair&lt; BabNodeWithInfo, BabNodeWithInfo &gt; _create_children(unsigned branchVar, const BabNode &amp;parentNode, double branchVariableRelaxSolutionPoint)</div><div class="ttdoc">Helper function for creating nodes from parent node once branch variable has been decided...</div><div class="ttdef"><b>Definition:</b> babBrancher.cpp:233</div></div>
 <div class="ttc" id="classbab_base_1_1_brancher_html_abbbc54933302ab1b407ec237aa1e0ff8"><div class="ttname"><a href="classbab_base_1_1_brancher.html#abbbc54933302ab1b407ec237aa1e0ff8">babBase::Brancher::_number_of_trials_down</a></div><div class="ttdeci">std::vector&lt; int &gt; _number_of_trials_down</div><div class="ttdef"><b>Definition:</b> babBrancher.h:235</div></div>
 <div class="ttc" id="classbab_base_1_1_brancher_html_a902915f04ce89e7d5ef9101d99e0c698"><div class="ttname"><a href="classbab_base_1_1_brancher.html#a902915f04ce89e7d5ef9101d99e0c698">babBase::Brancher::_number_of_trials_up</a></div><div class="ttdeci">std::vector&lt; int &gt; _number_of_trials_up</div><div class="ttdef"><b>Definition:</b> babBrancher.h:234</div></div>
 <div class="ttc" id="classbab_base_1_1_brancher_html_a8d28b468b23676b995830a082937c3e0"><div class="ttname"><a href="classbab_base_1_1_brancher.html#a8d28b468b23676b995830a082937c3e0">babBase::Brancher::_pseudocosts_up</a></div><div class="ttdeci">std::vector&lt; double &gt; _pseudocosts_up</div><div class="ttdef"><b>Definition:</b> babBrancher.h:232</div></div>
@@ -104,50 +104,50 @@ $(document).ready(function(){initNavTree('bab_brancher_8h_source.html','');});
 <div class="ttc" id="classbab_base_1_1_brancher_html_a2452291823286a68da8b1ad1cefa3d84"><div class="ttname"><a href="classbab_base_1_1_brancher.html#a2452291823286a68da8b1ad1cefa3d84">babBase::Brancher::_nodesWaitingForResponse</a></div><div class="ttdeci">std::vector&lt; std::tuple&lt; unsigned, double, BranchingHistoryInfo &gt; &gt; _nodesWaitingForResponse</div><div class="ttdef"><b>Definition:</b> babBrancher.h:236</div></div>
 <div class="ttc" id="classbab_base_1_1_brancher_html_a0ac6e7605a51a64ec4f5449a219f64a5"><div class="ttname"><a href="classbab_base_1_1_brancher.html#a0ac6e7605a51a64ec4f5449a219f64a5">babBase::Brancher::_incumbentSolutionPoint</a></div><div class="ttdeci">std::vector&lt; double &gt; _incumbentSolutionPoint</div><div class="ttdef"><b>Definition:</b> babBrancher.h:237</div></div>
 <div class="ttc" id="classbab_base_1_1_bab_tree_html_aaa3be3d14946afcacef5079b3b0e812c"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#aaa3be3d14946afcacef5079b3b0e812c">babBase::BabTree::get_nodes_left</a></div><div class="ttdeci">size_t get_nodes_left() const</div><div class="ttdoc">Returns the number of nodes left in the tree. The private member _nodesLeft is used instead of nodeVe...</div><div class="ttdef"><b>Definition:</b> babTree.h:151</div></div>
-<div class="ttc" id="classbab_base_1_1_brancher_html_aee381075df2a3f5dfbf54ba6dadc4584"><div class="ttname"><a href="classbab_base_1_1_brancher.html#aee381075df2a3f5dfbf54ba6dadc4584">babBase::Brancher::_calculate_branching_point</a></div><div class="ttdeci">double _calculate_branching_point(double lowerBound, double upperBound, double relaxationValue) const</div><div class="ttdoc">calculates the branching point. Currently 0.5*(lb+ub);</div><div class="ttdef"><b>Definition:</b> babBrancher.cpp:320</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html"><div class="ttname"><a href="classbab_base_1_1_bab_node.html">babBase::BabNode</a></div><div class="ttdoc">Class representing a node in the Branch-and-Bound tree.</div><div class="ttdef"><b>Definition:</b> babNode.h:35</div></div>
+<div class="ttc" id="classbab_base_1_1_brancher_html_aee381075df2a3f5dfbf54ba6dadc4584"><div class="ttname"><a href="classbab_base_1_1_brancher.html#aee381075df2a3f5dfbf54ba6dadc4584">babBase::Brancher::_calculate_branching_point</a></div><div class="ttdeci">double _calculate_branching_point(double lowerBound, double upperBound, double relaxationValue) const</div><div class="ttdoc">calculates the branching point. Currently 0.5*(lb+ub); </div><div class="ttdef"><b>Definition:</b> babBrancher.cpp:320</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html"><div class="ttname"><a href="classbab_base_1_1_bab_node.html">babBase::BabNode</a></div><div class="ttdoc">Class representing a node in the Branch-and-Bound tree. </div><div class="ttdef"><b>Definition:</b> babNode.h:35</div></div>
 <div class="ttc" id="namespacebab_base_html_a53c20e34bcd16e8a49612ee4ff5e6f11"><div class="ttname"><a href="namespacebab_base.html#a53c20e34bcd16e8a49612ee4ff5e6f11">babBase::select_branching_dimension_reldiam</a></div><div class="ttdeci">unsigned select_branching_dimension_reldiam(const BabNode &amp;parentNode, const std::vector&lt; double &gt; &amp;relaxationSolutionPoint, const double relaxationSolutionObjValue, const std::vector&lt; OptimizationVariable &gt; &amp;globalOptimizationVars)</div><div class="ttdoc">Function for selecting the variable to branch on by choosing the one with the largest diameter relati...</div><div class="ttdef"><b>Definition:</b> babBrancher.cpp:361</div></div>
-<div class="ttc" id="classbab_base_1_1_brancher_html_ae8c42b7d11f13590caf13b5928992ef0"><div class="ttname"><a href="classbab_base_1_1_brancher.html#ae8c42b7d11f13590caf13b5928992ef0">babBase::Brancher::get_pruning_score_gap</a></div><div class="ttdeci">double get_pruning_score_gap() const</div><div class="ttdoc">Returns the difference between lowest pruning score in the tree and the pruning score threshold.</div><div class="ttdef"><b>Definition:</b> babBrancher.h:171</div></div>
-<div class="ttc" id="classbab_base_1_1_brancher_html_aea9a04b2eef42673d67e0e8340d8bcfe"><div class="ttname"><a href="classbab_base_1_1_brancher.html#aea9a04b2eef42673d67e0e8340d8bcfe">babBase::Brancher::set_node_selection_score_function</a></div><div class="ttdeci">void set_node_selection_score_function(std::function&lt; double(const BabNode &amp;, const std::vector&lt; OptimizationVariable &gt; &amp;)&gt; newNodeScoreFunction)</div><div class="ttdoc">Change the scoring function for the selection score of nodes.</div><div class="ttdef"><b>Definition:</b> babBrancher.cpp:72</div></div>
+<div class="ttc" id="classbab_base_1_1_brancher_html_ae8c42b7d11f13590caf13b5928992ef0"><div class="ttname"><a href="classbab_base_1_1_brancher.html#ae8c42b7d11f13590caf13b5928992ef0">babBase::Brancher::get_pruning_score_gap</a></div><div class="ttdeci">double get_pruning_score_gap() const</div><div class="ttdoc">Returns the difference between lowest pruning score in the tree and the pruning score threshold...</div><div class="ttdef"><b>Definition:</b> babBrancher.h:171</div></div>
+<div class="ttc" id="classbab_base_1_1_brancher_html_aea9a04b2eef42673d67e0e8340d8bcfe"><div class="ttname"><a href="classbab_base_1_1_brancher.html#aea9a04b2eef42673d67e0e8340d8bcfe">babBase::Brancher::set_node_selection_score_function</a></div><div class="ttdeci">void set_node_selection_score_function(std::function&lt; double(const BabNode &amp;, const std::vector&lt; OptimizationVariable &gt; &amp;)&gt; newNodeScoreFunction)</div><div class="ttdoc">Change the scoring function for the selection score of nodes. </div><div class="ttdef"><b>Definition:</b> babBrancher.cpp:72</div></div>
 <div class="ttc" id="bab_node_8h_html"><div class="ttname"><a href="bab_node_8h.html">babNode.h</a></div></div>
-<div class="ttc" id="classbab_base_1_1_brancher_html_a2fa6eaac5e68dfde2de07ad72e74c906"><div class="ttname"><a href="classbab_base_1_1_brancher.html#a2fa6eaac5e68dfde2de07ad72e74c906">babBase::Brancher::get_all_nodes_from_strong_branching</a></div><div class="ttdeci">std::vector&lt; BabNode &gt; get_all_nodes_from_strong_branching(const BabNode &amp;parentNode, const std::vector&lt; double &gt; &amp;relaxationSolutionPoint)</div><div class="ttdoc">Branches once on all variables and does not add the nodes to the tree, but returns them immediately.</div><div class="ttdef"><b>Definition:</b> babBrancher.cpp:205</div></div>
-<div class="ttc" id="structbab_base_1_1_branching_history_info_html_a0692c234f3dd6f32552a5c04519fb489"><div class="ttname"><a href="structbab_base_1_1_branching_history_info.html#a0692c234f3dd6f32552a5c04519fb489">babBase::BranchingHistoryInfo::BranchStatus</a></div><div class="ttdeci">BranchStatus</div><div class="ttdoc">Enum for distinguishing a branching status.</div><div class="ttdef"><b>Definition:</b> babTree.h:40</div></div>
+<div class="ttc" id="classbab_base_1_1_brancher_html_a2fa6eaac5e68dfde2de07ad72e74c906"><div class="ttname"><a href="classbab_base_1_1_brancher.html#a2fa6eaac5e68dfde2de07ad72e74c906">babBase::Brancher::get_all_nodes_from_strong_branching</a></div><div class="ttdeci">std::vector&lt; BabNode &gt; get_all_nodes_from_strong_branching(const BabNode &amp;parentNode, const std::vector&lt; double &gt; &amp;relaxationSolutionPoint)</div><div class="ttdoc">Branches once on all variables and does not add the nodes to the tree, but returns them immediately...</div><div class="ttdef"><b>Definition:</b> babBrancher.cpp:205</div></div>
+<div class="ttc" id="structbab_base_1_1_branching_history_info_html_a0692c234f3dd6f32552a5c04519fb489"><div class="ttname"><a href="structbab_base_1_1_branching_history_info.html#a0692c234f3dd6f32552a5c04519fb489">babBase::BranchingHistoryInfo::BranchStatus</a></div><div class="ttdeci">BranchStatus</div><div class="ttdoc">Enum for distinguishing a branching status. </div><div class="ttdef"><b>Definition:</b> babTree.h:40</div></div>
 <div class="ttc" id="classbab_base_1_1_brancher_html_ab4a30a04b14b4b0e88956d53963f1fcb"><div class="ttname"><a href="classbab_base_1_1_brancher.html#ab4a30a04b14b4b0e88956d53963f1fcb">babBase::Brancher::get_next_node</a></div><div class="ttdeci">BabNode get_next_node()</div><div class="ttdoc">Returns the next BabNode to process according to the node selection strategy and node selection score...</div><div class="ttdef"><b>Definition:</b> babBrancher.cpp:308</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_tree_html_a13e9545dba8eb0600f0f41b5a682081b"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#a13e9545dba8eb0600f0f41b5a682081b">babBase::BabTree::remove_has_incumbent_from_all_nodes</a></div><div class="ttdeci">void remove_has_incumbent_from_all_nodes()</div><div class="ttdoc">Remove the hasIncumbent flag from all nodes.</div><div class="ttdef"><b>Definition:</b> babTree.h:198</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_tree_html_a13e9545dba8eb0600f0f41b5a682081b"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#a13e9545dba8eb0600f0f41b5a682081b">babBase::BabTree::remove_has_incumbent_from_all_nodes</a></div><div class="ttdeci">void remove_has_incumbent_from_all_nodes()</div><div class="ttdoc">Remove the hasIncumbent flag from all nodes. </div><div class="ttdef"><b>Definition:</b> babTree.h:198</div></div>
 <div class="ttc" id="classbab_base_1_1_brancher_html_aa6bd0c8e1afc7fd2e664eb758c76129d"><div class="ttname"><a href="classbab_base_1_1_brancher.html#aa6bd0c8e1afc7fd2e664eb758c76129d">babBase::Brancher::_select_branching_dimension</a></div><div class="ttdeci">std::function&lt; unsigned(const BabNode &amp;parentNode, const std::vector&lt; double &gt; &amp;relaxationSolutionPoint, double relaxationSolutionObjValue, const std::vector&lt; OptimizationVariable &gt; &amp;globalOptimizationVars)&gt; _select_branching_dimension</div><div class="ttdef"><b>Definition:</b> babBrancher.h:229</div></div>
-<div class="ttc" id="namespacebab_base_1_1enums_html_a5563ee1434fe76d1f65565afe896cb81"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81">babBase::enums::BV</a></div><div class="ttdeci">BV</div><div class="ttdoc">Enum for selecting the Branching Variable selection heuristic.</div><div class="ttdef"><b>Definition:</b> babUtils.h:153</div></div>
+<div class="ttc" id="namespacebab_base_1_1enums_html_a5563ee1434fe76d1f65565afe896cb81"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81">babBase::enums::BV</a></div><div class="ttdeci">BV</div><div class="ttdoc">Enum for selecting the Branching Variable selection heuristic. </div><div class="ttdef"><b>Definition:</b> babUtils.h:153</div></div>
 <div class="ttc" id="classbab_base_1_1_brancher_html_a5a56b283f653f2b7c091369cd7df173f"><div class="ttname"><a href="classbab_base_1_1_brancher.html#a5a56b283f653f2b7c091369cd7df173f">babBase::Brancher::_internalBranchAndBoundTree</a></div><div class="ttdeci">BabTree _internalBranchAndBoundTree</div><div class="ttdef"><b>Definition:</b> babBrancher.h:230</div></div>
-<div class="ttc" id="namespacebab_base_html"><div class="ttname"><a href="namespacebab_base.html">babBase</a></div><div class="ttdoc">namespace holding all essentials of the babBase submodule</div><div class="ttdef"><b>Definition:</b> babBrancher.h:40</div></div>
+<div class="ttc" id="namespacebab_base_html"><div class="ttname"><a href="namespacebab_base.html">babBase</a></div><div class="ttdoc">namespace holding all essentials of the babBase submodule </div></div>
 <div class="ttc" id="structbab_base_1_1_branching_history_info_html"><div class="ttname"><a href="structbab_base_1_1_branching_history_info.html">babBase::BranchingHistoryInfo</a></div><div class="ttdoc">Struct for collecting all information that must be saved about a node, so that after it is retrieved ...</div><div class="ttdef"><b>Definition:</b> babTree.h:35</div></div>
 <div class="ttc" id="classbab_base_1_1_brancher_html"><div class="ttname"><a href="classbab_base_1_1_brancher.html">babBase::Brancher</a></div><div class="ttdoc">This class contains the logic for branching on nodes in the B&amp;B-Tree and selecting nodes to be proces...</div><div class="ttdef"><b>Definition:</b> babBrancher.h:62</div></div>
 <div class="ttc" id="classbab_base_1_1_brancher_html_a8bfa5c9a97da757ab3c9521da6d7a7fa"><div class="ttname"><a href="classbab_base_1_1_brancher.html#a8bfa5c9a97da757ab3c9521da6d7a7fa">babBase::Brancher::_globalOptimizationVariables</a></div><div class="ttdeci">std::vector&lt; OptimizationVariable &gt; _globalOptimizationVariables</div><div class="ttdef"><b>Definition:</b> babBrancher.h:231</div></div>
-<div class="ttc" id="classbab_base_1_1_optimization_variable_html"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></div><div class="ttdoc">Class for representing an optimization variable specified by the user.</div><div class="ttdef"><b>Definition:</b> babOptVar.h:100</div></div>
-<div class="ttc" id="classbab_base_1_1_brancher_html_a9b2a948ff522a40e63f90956a0b0c01d"><div class="ttname"><a href="classbab_base_1_1_brancher.html#a9b2a948ff522a40e63f90956a0b0c01d">babBase::Brancher::get_nodes_in_tree</a></div><div class="ttdeci">size_t get_nodes_in_tree() const</div><div class="ttdoc">Returns the number of nodes in the tree.</div><div class="ttdef"><b>Definition:</b> babBrancher.h:144</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_tree_html_ab57edc600a99a8da34df3d50398b7b98"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#ab57edc600a99a8da34df3d50398b7b98">babBase::BabTree::get_lowest_pruning_score</a></div><div class="ttdeci">double get_lowest_pruning_score() const</div><div class="ttdoc">Return the lowest pruning score. Returns infinity if tree is empty.</div><div class="ttdef"><b>Definition:</b> babTree.cpp:116</div></div>
-<div class="ttc" id="classbab_base_1_1_brancher_html_a53d5b740ed9e0ad82601b59c941e21f5"><div class="ttname"><a href="classbab_base_1_1_brancher.html#a53d5b740ed9e0ad82601b59c941e21f5">babBase::Brancher::_create_node_with_info_from_node</a></div><div class="ttdeci">BabNodeWithInfo _create_node_with_info_from_node(BabNode normalNode, unsigned branchedVariable, BranchingHistoryInfo::BranchStatus branchStatus, double variableRelaxationSolutionPoint, double parentLowerBound, double parentUpperBound) const</div><div class="ttdoc">Creates a node with added information.</div><div class="ttdef"><b>Definition:</b> babBrancher.cpp:277</div></div>
+<div class="ttc" id="classbab_base_1_1_optimization_variable_html"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></div><div class="ttdoc">Class for representing an optimization variable specified by the user. </div><div class="ttdef"><b>Definition:</b> babOptVar.h:60</div></div>
+<div class="ttc" id="classbab_base_1_1_brancher_html_a9b2a948ff522a40e63f90956a0b0c01d"><div class="ttname"><a href="classbab_base_1_1_brancher.html#a9b2a948ff522a40e63f90956a0b0c01d">babBase::Brancher::get_nodes_in_tree</a></div><div class="ttdeci">size_t get_nodes_in_tree() const</div><div class="ttdoc">Returns the number of nodes in the tree. </div><div class="ttdef"><b>Definition:</b> babBrancher.h:144</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_tree_html_ab57edc600a99a8da34df3d50398b7b98"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#ab57edc600a99a8da34df3d50398b7b98">babBase::BabTree::get_lowest_pruning_score</a></div><div class="ttdeci">double get_lowest_pruning_score() const</div><div class="ttdoc">Return the lowest pruning score. Returns infinity if tree is empty. </div><div class="ttdef"><b>Definition:</b> babTree.cpp:116</div></div>
+<div class="ttc" id="classbab_base_1_1_brancher_html_a53d5b740ed9e0ad82601b59c941e21f5"><div class="ttname"><a href="classbab_base_1_1_brancher.html#a53d5b740ed9e0ad82601b59c941e21f5">babBase::Brancher::_create_node_with_info_from_node</a></div><div class="ttdeci">BabNodeWithInfo _create_node_with_info_from_node(BabNode normalNode, unsigned branchedVariable, BranchingHistoryInfo::BranchStatus branchStatus, double variableRelaxationSolutionPoint, double parentLowerBound, double parentUpperBound) const</div><div class="ttdoc">Creates a node with added information. </div><div class="ttdef"><b>Definition:</b> babBrancher.cpp:277</div></div>
 <div class="ttc" id="classbab_base_1_1_brancher_html_af8c884a0262c7719aa832d2ed8761ea7"><div class="ttname"><a href="classbab_base_1_1_brancher.html#af8c884a0262c7719aa832d2ed8761ea7">babBase::Brancher::decrease_pruning_score_threshold_to</a></div><div class="ttdeci">double decrease_pruning_score_threshold_to(const double newThreshold)</div><div class="ttdoc">Decreases the pruning score threshold to the supplied value. Nodes with pruning score exceeding the n...</div><div class="ttdef"><b>Definition:</b> babBrancher.cpp:294</div></div>
 <div class="ttc" id="classbab_base_1_1_bab_node_with_info_html"><div class="ttname"><a href="classbab_base_1_1_bab_node_with_info.html">babBase::BabNodeWithInfo</a></div><div class="ttdoc">This class represents an node in the B&amp;B-Tree with additional information attached that is used in se...</div><div class="ttdef"><b>Definition:</b> babTree.h:64</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_tree_html_ab6f087487f69b67a0516d342527763ff"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#ab6f087487f69b67a0516d342527763ff">babBase::BabTree::get_pruning_score_gap</a></div><div class="ttdeci">double get_pruning_score_gap() const</div><div class="ttdoc">Query the largest gap between the pruning threshold and the the pruning scores of the nodes....</div><div class="ttdef"><b>Definition:</b> babTree.cpp:130</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_tree_html_a11f278a2cf37dd13270f754a0b77aa95"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#a11f278a2cf37dd13270f754a0b77aa95">babBase::BabTree::enable_pruning_with_rel_and_abs_tolerance</a></div><div class="ttdeci">void enable_pruning_with_rel_and_abs_tolerance(const double relTol, const double absTol)</div><div class="ttdoc">Enables pruning of nodes even when they have pruning scores slightly below the threshold.</div><div class="ttdef"><b>Definition:</b> babTree.h:215</div></div>
-<div class="ttc" id="namespacebab_base_html_a22201bd682ee96c743674a020b372d58"><div class="ttname"><a href="namespacebab_base.html#a22201bd682ee96c743674a020b372d58">babBase::high_id_first</a></div><div class="ttdeci">double high_id_first(const BabNode &amp;candidate, const std::vector&lt; OptimizationVariable &gt; &amp;globalVars)</div><div class="ttdoc">Function for DFS, possible choice for calculating the node selection score.</div><div class="ttdef"><b>Definition:</b> babBrancher.cpp:493</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_tree_html_ab6f087487f69b67a0516d342527763ff"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#ab6f087487f69b67a0516d342527763ff">babBase::BabTree::get_pruning_score_gap</a></div><div class="ttdeci">double get_pruning_score_gap() const</div><div class="ttdoc">Query the largest gap between the pruning threshold and the the pruning scores of the nodes...</div><div class="ttdef"><b>Definition:</b> babTree.cpp:130</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_tree_html_a11f278a2cf37dd13270f754a0b77aa95"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#a11f278a2cf37dd13270f754a0b77aa95">babBase::BabTree::enable_pruning_with_rel_and_abs_tolerance</a></div><div class="ttdeci">void enable_pruning_with_rel_and_abs_tolerance(const double relTol, const double absTol)</div><div class="ttdoc">Enables pruning of nodes even when they have pruning scores slightly below the threshold. </div><div class="ttdef"><b>Definition:</b> babTree.h:215</div></div>
+<div class="ttc" id="namespacebab_base_html_a22201bd682ee96c743674a020b372d58"><div class="ttname"><a href="namespacebab_base.html#a22201bd682ee96c743674a020b372d58">babBase::high_id_first</a></div><div class="ttdeci">double high_id_first(const BabNode &amp;candidate, const std::vector&lt; OptimizationVariable &gt; &amp;globalVars)</div><div class="ttdoc">Function for DFS, possible choice for calculating the node selection score. </div><div class="ttdef"><b>Definition:</b> babBrancher.cpp:493</div></div>
 <div class="ttc" id="classbab_base_1_1_brancher_html_a9751c79dcbf4b2ad67a549f5bfa6e5d3"><div class="ttname"><a href="classbab_base_1_1_brancher.html#a9751c79dcbf4b2ad67a549f5bfa6e5d3">babBase::Brancher::register_node_change</a></div><div class="ttdeci">void register_node_change(const int Id, const BabNode &amp;nodeAfterProcessing)</div><div class="ttdoc">Registers the changes made to a node during processing to extract information for branching heuristic...</div><div class="ttdef"><b>Definition:</b> babBrancher.cpp:82</div></div>
-<div class="ttc" id="classbab_base_1_1_brancher_html_a4d546d676bac7c0bde9ec3ac1f3c1adb"><div class="ttname"><a href="classbab_base_1_1_brancher.html#a4d546d676bac7c0bde9ec3ac1f3c1adb">babBase::Brancher::insert_root_node</a></div><div class="ttdeci">void insert_root_node(const BabNode &amp;rootNode)</div><div class="ttdoc">Inserts the root node into the tree.</div><div class="ttdef"><b>Definition:</b> babBrancher.cpp:132</div></div>
-<div class="ttc" id="classbab_base_1_1_brancher_html_ab01c4af73b4c9489cf9780bccfa73739"><div class="ttname"><a href="classbab_base_1_1_brancher.html#ab01c4af73b4c9489cf9780bccfa73739">babBase::Brancher::get_lowest_pruning_score</a></div><div class="ttdeci">double get_lowest_pruning_score() const</div><div class="ttdoc">Returns the lowest pruning score of all nodes in the tree.</div><div class="ttdef"><b>Definition:</b> babBrancher.h:166</div></div>
+<div class="ttc" id="classbab_base_1_1_brancher_html_a4d546d676bac7c0bde9ec3ac1f3c1adb"><div class="ttname"><a href="classbab_base_1_1_brancher.html#a4d546d676bac7c0bde9ec3ac1f3c1adb">babBase::Brancher::insert_root_node</a></div><div class="ttdeci">void insert_root_node(const BabNode &amp;rootNode)</div><div class="ttdoc">Inserts the root node into the tree. </div><div class="ttdef"><b>Definition:</b> babBrancher.cpp:132</div></div>
+<div class="ttc" id="classbab_base_1_1_brancher_html_ab01c4af73b4c9489cf9780bccfa73739"><div class="ttname"><a href="classbab_base_1_1_brancher.html#ab01c4af73b4c9489cf9780bccfa73739">babBase::Brancher::get_lowest_pruning_score</a></div><div class="ttdeci">double get_lowest_pruning_score() const</div><div class="ttdoc">Returns the lowest pruning score of all nodes in the tree. </div><div class="ttdef"><b>Definition:</b> babBrancher.h:166</div></div>
 <div class="ttc" id="classbab_base_1_1_brancher_html_af9b60e80a40637b8aea84fab03cc665f"><div class="ttname"><a href="classbab_base_1_1_brancher.html#af9b60e80a40637b8aea84fab03cc665f">babBase::Brancher::set_branching_dimension_selection_strategy</a></div><div class="ttdeci">void set_branching_dimension_selection_strategy(const enums::BV branchingVarStratSelection)</div><div class="ttdoc">Select a strategy for choosing a variable/dimension to branch on. Currently selecting the dimension w...</div><div class="ttdef"><b>Definition:</b> babBrancher.cpp:40</div></div>
 <div class="ttc" id="bab_utils_8h_html"><div class="ttname"><a href="bab_utils_8h.html">babUtils.h</a></div></div>
 <div class="ttc" id="classbab_base_1_1_brancher_html_ac51e4a0843f1e377bcd61ee888c8ef32"><div class="ttname"><a href="classbab_base_1_1_brancher.html#ac51e4a0843f1e377bcd61ee888c8ef32">babBase::Brancher::_node_score_calculating_function</a></div><div class="ttdeci">std::function&lt; double(const BabNode &amp;, const std::vector&lt; OptimizationVariable &gt; &amp;)&gt; _node_score_calculating_function</div><div class="ttdef"><b>Definition:</b> babBrancher.h:228</div></div>
-<div class="ttc" id="classbab_base_1_1_brancher_html_a2472c3cebf5be6c02afe507aa4583aae"><div class="ttname"><a href="classbab_base_1_1_brancher.html#a2472c3cebf5be6c02afe507aa4583aae">babBase::Brancher::enable_pruning_with_rel_and_abs_tolerance</a></div><div class="ttdeci">void enable_pruning_with_rel_and_abs_tolerance(const double relTol, const double absTol)</div><div class="ttdoc">Enables pruning of nodes even when they have pruning scores slightly below the threshold.</div><div class="ttdef"><b>Definition:</b> babBrancher.h:190</div></div>
-<div class="ttc" id="namespacebab_base_html_ab8f1d614e5625322fd3e196bd4d985b4"><div class="ttname"><a href="namespacebab_base.html#ab8f1d614e5625322fd3e196bd4d985b4">babBase::low_id_first</a></div><div class="ttdeci">double low_id_first(const BabNode &amp;candidate, const std::vector&lt; OptimizationVariable &gt; &amp;globalVars)</div><div class="ttdoc">Function for Breadth-First-Search possible choice for calculating the node selection score.</div><div class="ttdef"><b>Definition:</b> babBrancher.cpp:484</div></div>
-<div class="ttc" id="classbab_base_1_1_brancher_html_ac0128b99d5fdfc973298293f5913e729"><div class="ttname"><a href="classbab_base_1_1_brancher.html#ac0128b99d5fdfc973298293f5913e729">babBase::Brancher::branch_on_node</a></div><div class="ttdeci">std::pair&lt; bool, bool &gt; branch_on_node(const BabNode &amp;parentNode, const std::vector&lt; double &gt; &amp;relaxationSolutionPoint, double relaxationSolutionObjValue, unsigned &amp;incumbentNodeId, double relNodeSizeTol=0.0)</div><div class="ttdoc">Function that branches on a node and (normally) adds two new children to the BranchAndBoundTree.</div><div class="ttdef"><b>Definition:</b> babBrancher.cpp:141</div></div>
-<div class="ttc" id="namespacebab_base_html_aa9bc767e7e3b13c80b9c529eb5764592"><div class="ttname"><a href="namespacebab_base.html#aa9bc767e7e3b13c80b9c529eb5764592">babBase::select_branching_dimension_absdiam</a></div><div class="ttdeci">unsigned select_branching_dimension_absdiam(const BabNode &amp;parentNode, const std::vector&lt; double &gt; &amp;relaxationSolutionPoint, const double relaxationSolutionObjValue, const std::vector&lt; OptimizationVariable &gt; &amp;globalOptimizationVars)</div><div class="ttdoc">Function for selecting the variable to branch on by choosing the one with the largest diameter.</div><div class="ttdef"><b>Definition:</b> babBrancher.cpp:329</div></div>
+<div class="ttc" id="classbab_base_1_1_brancher_html_a2472c3cebf5be6c02afe507aa4583aae"><div class="ttname"><a href="classbab_base_1_1_brancher.html#a2472c3cebf5be6c02afe507aa4583aae">babBase::Brancher::enable_pruning_with_rel_and_abs_tolerance</a></div><div class="ttdeci">void enable_pruning_with_rel_and_abs_tolerance(const double relTol, const double absTol)</div><div class="ttdoc">Enables pruning of nodes even when they have pruning scores slightly below the threshold. </div><div class="ttdef"><b>Definition:</b> babBrancher.h:190</div></div>
+<div class="ttc" id="namespacebab_base_html_ab8f1d614e5625322fd3e196bd4d985b4"><div class="ttname"><a href="namespacebab_base.html#ab8f1d614e5625322fd3e196bd4d985b4">babBase::low_id_first</a></div><div class="ttdeci">double low_id_first(const BabNode &amp;candidate, const std::vector&lt; OptimizationVariable &gt; &amp;globalVars)</div><div class="ttdoc">Function for Breadth-First-Search possible choice for calculating the node selection score...</div><div class="ttdef"><b>Definition:</b> babBrancher.cpp:484</div></div>
+<div class="ttc" id="classbab_base_1_1_brancher_html_ac0128b99d5fdfc973298293f5913e729"><div class="ttname"><a href="classbab_base_1_1_brancher.html#ac0128b99d5fdfc973298293f5913e729">babBase::Brancher::branch_on_node</a></div><div class="ttdeci">std::pair&lt; bool, bool &gt; branch_on_node(const BabNode &amp;parentNode, const std::vector&lt; double &gt; &amp;relaxationSolutionPoint, double relaxationSolutionObjValue, unsigned &amp;incumbentNodeId, double relNodeSizeTol=0.0)</div><div class="ttdoc">Function that branches on a node and (normally) adds two new children to the BranchAndBoundTree. </div><div class="ttdef"><b>Definition:</b> babBrancher.cpp:141</div></div>
+<div class="ttc" id="namespacebab_base_html_aa9bc767e7e3b13c80b9c529eb5764592"><div class="ttname"><a href="namespacebab_base.html#aa9bc767e7e3b13c80b9c529eb5764592">babBase::select_branching_dimension_absdiam</a></div><div class="ttdeci">unsigned select_branching_dimension_absdiam(const BabNode &amp;parentNode, const std::vector&lt; double &gt; &amp;relaxationSolutionPoint, const double relaxationSolutionObjValue, const std::vector&lt; OptimizationVariable &gt; &amp;globalOptimizationVars)</div><div class="ttdoc">Function for selecting the variable to branch on by choosing the one with the largest diameter...</div><div class="ttdef"><b>Definition:</b> babBrancher.cpp:329</div></div>
 <div class="ttc" id="classbab_base_1_1_brancher_html_a657a3dc42d1a34b8a04e9e9d9c699ff6"><div class="ttname"><a href="classbab_base_1_1_brancher.html#a657a3dc42d1a34b8a04e9e9d9c699ff6">babBase::Brancher::set_new_incumbent_point</a></div><div class="ttdeci">void set_new_incumbent_point(std::vector&lt; double &gt; incumbentPoint)</div><div class="ttdoc">Informs the instance that a new feasible solution has been found. Only needed because of hasIncumbent...</div><div class="ttdef"><b>Definition:</b> babBrancher.h:157</div></div>
-<div class="ttc" id="classbab_base_1_1_brancher_html_af9d7e5d2ea87c0a161e6719188b8c745"><div class="ttname"><a href="classbab_base_1_1_brancher.html#af9d7e5d2ea87c0a161e6719188b8c745">babBase::Brancher::set_node_selection_strategy</a></div><div class="ttdeci">void set_node_selection_strategy(const enums::NS nodeSelectionStratType)</div><div class="ttdoc">Select the node selection strategy. Default is to select the node with highest node selection score.</div><div class="ttdef"><b>Definition:</b> babBrancher.cpp:63</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_tree_html_a41440886243ed211a6a26981daedc530"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#a41440886243ed211a6a26981daedc530">babBase::BabTree::get_pruning_score_threshold</a></div><div class="ttdeci">double get_pruning_score_threshold() const</div><div class="ttdoc">Query the the pruning score threshold.</div><div class="ttdef"><b>Definition:</b> babTree.h:206</div></div>
-<div class="ttc" id="namespacebab_base_html_ad18c8a7d403193113c3d6c4ecef067c3"><div class="ttname"><a href="namespacebab_base.html#ad18c8a7d403193113c3d6c4ecef067c3">babBase::calculate_pseudocost_multipliers_minus_and_plus</a></div><div class="ttdeci">std::pair&lt; double, double &gt; calculate_pseudocost_multipliers_minus_and_plus(enums::VT varType, double lowerBound, double upperBound, double branchingPoint, double relaxationSolutionPoint)</div><div class="ttdoc">Calculate the multiplier for calculation of pseudocosts.</div><div class="ttdef"><b>Definition:</b> babBrancher.cpp:445</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_tree_html"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html">babBase::BabTree</a></div><div class="ttdoc">Represents the B&amp;B-Tree, manages the way nodes are saved and retrieved and pruned.</div><div class="ttdef"><b>Definition:</b> babTree.h:134</div></div>
+<div class="ttc" id="classbab_base_1_1_brancher_html_af9d7e5d2ea87c0a161e6719188b8c745"><div class="ttname"><a href="classbab_base_1_1_brancher.html#af9d7e5d2ea87c0a161e6719188b8c745">babBase::Brancher::set_node_selection_strategy</a></div><div class="ttdeci">void set_node_selection_strategy(const enums::NS nodeSelectionStratType)</div><div class="ttdoc">Select the node selection strategy. Default is to select the node with highest node selection score...</div><div class="ttdef"><b>Definition:</b> babBrancher.cpp:63</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_tree_html_a41440886243ed211a6a26981daedc530"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#a41440886243ed211a6a26981daedc530">babBase::BabTree::get_pruning_score_threshold</a></div><div class="ttdeci">double get_pruning_score_threshold() const</div><div class="ttdoc">Query the the pruning score threshold. </div><div class="ttdef"><b>Definition:</b> babTree.h:206</div></div>
+<div class="ttc" id="namespacebab_base_html_ad18c8a7d403193113c3d6c4ecef067c3"><div class="ttname"><a href="namespacebab_base.html#ad18c8a7d403193113c3d6c4ecef067c3">babBase::calculate_pseudocost_multipliers_minus_and_plus</a></div><div class="ttdeci">std::pair&lt; double, double &gt; calculate_pseudocost_multipliers_minus_and_plus(enums::VT varType, double lowerBound, double upperBound, double branchingPoint, double relaxationSolutionPoint)</div><div class="ttdoc">Calculate the multiplier for calculation of pseudocosts. </div><div class="ttdef"><b>Definition:</b> babBrancher.cpp:445</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_tree_html"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html">babBase::BabTree</a></div><div class="ttdoc">Represents the B&amp;B-Tree, manages the way nodes are saved and retrieved and pruned. </div><div class="ttdef"><b>Definition:</b> babTree.h:134</div></div>
 <div class="ttc" id="classbab_base_1_1_brancher_html_a7ed3656c248fc5438ebd4cfe15fd95e7"><div class="ttname"><a href="classbab_base_1_1_brancher.html#a7ed3656c248fc5438ebd4cfe15fd95e7">babBase::Brancher::~Brancher</a></div><div class="ttdeci">virtual ~Brancher()=default</div></div>
-<div class="ttc" id="classbab_base_1_1_brancher_html_a8be31fd3d6a06d75c67d78ea1dd7047e"><div class="ttname"><a href="classbab_base_1_1_brancher.html#a8be31fd3d6a06d75c67d78ea1dd7047e">babBase::Brancher::get_pruning_score_threshold</a></div><div class="ttdeci">double get_pruning_score_threshold() const</div><div class="ttdoc">Returns the pruning score threshold.</div><div class="ttdef"><b>Definition:</b> babBrancher.h:183</div></div>
-<div class="ttc" id="namespacebab_base_1_1enums_html_a6b926f3dfa42fc3a3324c8b0ac99c48b"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">babBase::enums::VT</a></div><div class="ttdeci">VT</div><div class="ttdoc">Enum for representing the Variable Type of an optimization variable as specified by the user.</div><div class="ttdef"><b>Definition:</b> babOptVar.h:40</div></div>
+<div class="ttc" id="classbab_base_1_1_brancher_html_a8be31fd3d6a06d75c67d78ea1dd7047e"><div class="ttname"><a href="classbab_base_1_1_brancher.html#a8be31fd3d6a06d75c67d78ea1dd7047e">babBase::Brancher::get_pruning_score_threshold</a></div><div class="ttdeci">double get_pruning_score_threshold() const</div><div class="ttdoc">Returns the pruning score threshold. </div><div class="ttdef"><b>Definition:</b> babBrancher.h:183</div></div>
+<div class="ttc" id="namespacebab_base_1_1enums_html_a6b926f3dfa42fc3a3324c8b0ac99c48b"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">babBase::enums::VT</a></div><div class="ttdeci">VT</div><div class="ttdoc">Enum for representing the Variable Type of an optimization variable as specified by the user...</div><div class="ttdef"><b>Definition:</b> babOptVar.h:43</div></div>
 <div class="ttc" id="namespacebab_base_html_ab748ef40ab06d5cfe2a2280d66f19bb9"><div class="ttname"><a href="namespacebab_base.html#ab748ef40ab06d5cfe2a2280d66f19bb9">babBase::low_pruning_score_first</a></div><div class="ttdeci">double low_pruning_score_first(const BabNode &amp;candidate, const std::vector&lt; OptimizationVariable &gt; &amp;globalVars)</div><div class="ttdoc">Function for BFS or lowPruning Score First (default), possible choice for calculating the node select...</div><div class="ttdef"><b>Definition:</b> babBrancher.cpp:475</div></div>
 <div class="ttc" id="bab_opt_var_8h_html"><div class="ttname"><a href="bab_opt_var_8h.html">babOptVar.h</a></div></div>
 <div class="ttc" id="bab_tree_8h_html"><div class="ttname"><a href="bab_tree_8h.html">babTree.h</a></div></div>
@@ -159,7 +159,7 @@ $(document).ready(function(){initNavTree('bab_brancher_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_ede40f663fdbaac4622f0a2d30ba279b.html">dep</a></li><li class="navelem"><a class="el" href="dir_47e169a4fe08058254fbf7964fa7bfb6.html">babbase</a></li><li class="navelem"><a class="el" href="dir_637fe8785ffc83488bdb33305770812c.html">inc</a></li><li class="navelem"><a class="el" href="bab_brancher_8h.html">babBrancher.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/bab_exception_8h.html b/doc/html/bab_exception_8h.html
index 13eacf455615650b78b28b4f64b00df95cee9f54..89a70c26e0de90f2894a39e39e1b3942a8f86391 100644
--- a/doc/html/bab_exception_8h.html
+++ b/doc/html/bab_exception_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/dep/babbase/inc/babException.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/dep/babbase/inc/babException.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -109,7 +109,7 @@ Classes</h2></td></tr>
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
 Namespaces</h2></td></tr>
 <tr class="memitem:namespacebab_base"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacebab_base.html">babBase</a></td></tr>
-<tr class="memdesc:namespacebab_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">namespace holding all essentials of the <a class="el" href="namespacebab_base.html" title="namespace holding all essentials of the babBase submodule">babBase</a> submodule <br /></td></tr>
+<tr class="memdesc:namespacebab_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">namespace holding all essentials of the <a class="el" href="namespacebab_base.html" title="namespace holding all essentials of the babBase submodule ">babBase</a> submodule <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 </div><!-- contents -->
@@ -120,7 +120,7 @@ Namespaces</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_ede40f663fdbaac4622f0a2d30ba279b.html">dep</a></li><li class="navelem"><a class="el" href="dir_47e169a4fe08058254fbf7964fa7bfb6.html">babbase</a></li><li class="navelem"><a class="el" href="dir_637fe8785ffc83488bdb33305770812c.html">inc</a></li><li class="navelem"><a class="el" href="bab_exception_8h.html">babException.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/bab_exception_8h_source.html b/doc/html/bab_exception_8h_source.html
index 454feb5ca64c9114c8025f5bcfbf94c2848ff88b..40f463b8c2e9808305c351039aaa44fdc8ff936f 100644
--- a/doc/html/bab_exception_8h_source.html
+++ b/doc/html/bab_exception_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/dep/babbase/inc/babException.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/dep/babbase/inc/babException.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,20 +90,20 @@ $(document).ready(function(){initNavTree('bab_exception_8h_source.html','');});
 <div class="title">babException.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="bab_exception_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file babException.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing definition of exceptions used by the Branch-and-Bound elements.</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_node_8h.html">babNode.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &lt;exception&gt;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;sstream&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;typeinfo&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacebab_base.html">babBase</a> {</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="classbab_base_1_1_branch_and_bound_base_exception.html">   38</a></span>&#160;<span class="keyword">class </span><a class="code" href="classbab_base_1_1_branch_and_bound_base_exception.html">BranchAndBoundBaseException</a>: <span class="keyword">public</span> std::exception {</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;  <span class="keyword">protected</span>:</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="classbab_base_1_1_branch_and_bound_base_exception.html#ad7fa9d844b7264c7251488ecc1e69482">   41</a></span>&#160;    std::string <a class="code" href="classbab_base_1_1_branch_and_bound_base_exception.html#ad7fa9d844b7264c7251488ecc1e69482">_msg</a>{<span class="stringliteral">&quot;&quot;</span>}; </div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    <a class="code" href="classbab_base_1_1_branch_and_bound_base_exception.html#a88e91f98099cf5db2b7365e13c9f0c3c">BranchAndBoundBaseException</a>();</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classbab_base_1_1_branch_and_bound_base_exception.html#ad4101cc86f164c33d7c65dd0f297e156">   50</a></span>&#160;    <span class="keyword">explicit</span> <a class="code" href="classbab_base_1_1_branch_and_bound_base_exception.html#ad4101cc86f164c33d7c65dd0f297e156">BranchAndBoundBaseException</a>(<span class="keyword">const</span> std::string&amp; arg):</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;        <a class="code" href="classbab_base_1_1_branch_and_bound_base_exception.html">BranchAndBoundBaseException</a>(arg, nullptr, nullptr)</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    {</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    }</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classbab_base_1_1_branch_and_bound_base_exception.html#a5e7b4d42142131b575e574f3ebd52f1e">   61</a></span>&#160;    <a class="code" href="classbab_base_1_1_branch_and_bound_base_exception.html#a5e7b4d42142131b575e574f3ebd52f1e">BranchAndBoundBaseException</a>(<span class="keyword">const</span> std::string&amp; arg, <span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a>&amp; node):</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;        <a class="code" href="classbab_base_1_1_branch_and_bound_base_exception.html">BranchAndBoundBaseException</a>(arg, nullptr, &amp;node)</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    {</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    }</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classbab_base_1_1_branch_and_bound_base_exception.html#a71f28b078d7768229740454c289a99fe">   72</a></span>&#160;    <a class="code" href="classbab_base_1_1_branch_and_bound_base_exception.html#a71f28b078d7768229740454c289a99fe">BranchAndBoundBaseException</a>(<span class="keyword">const</span> std::string&amp; arg, <span class="keyword">const</span> std::exception&amp; e):</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;        <a class="code" href="classbab_base_1_1_branch_and_bound_base_exception.html">BranchAndBoundBaseException</a>(arg, &amp;e, nullptr)</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    {</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    }</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classbab_base_1_1_branch_and_bound_base_exception.html#a6d0ede19ef9bd580ca1a2d3dcfdbced6">   84</a></span>&#160;    <a class="code" href="classbab_base_1_1_branch_and_bound_base_exception.html#a6d0ede19ef9bd580ca1a2d3dcfdbced6">BranchAndBoundBaseException</a>(<span class="keyword">const</span> std::string&amp; arg, <span class="keyword">const</span> std::exception&amp; e, <span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a>&amp; node):</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        <a class="code" href="classbab_base_1_1_branch_and_bound_base_exception.html">BranchAndBoundBaseException</a>(arg, &amp;e, &amp;node)</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    {</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    }</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classbab_base_1_1_branch_and_bound_base_exception.html#accd49c50678ca442ea7a7f90d9ca10f0">   96</a></span>&#160;    <a class="code" href="classbab_base_1_1_branch_and_bound_base_exception.html#accd49c50678ca442ea7a7f90d9ca10f0">BranchAndBoundBaseException</a>(<span class="keyword">const</span> std::string&amp; arg, <span class="keyword">const</span> std::exception* e, <span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a>* node)</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    {</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;        std::ostringstream message;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        message &lt;&lt; arg;</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;        <span class="keywordflow">if</span> (e) {</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;            <span class="keywordflow">if</span> (<span class="keyword">typeid</span>(*e).name() != <span class="keyword">typeid</span>(*this).name()) {</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;                message &lt;&lt; <span class="stringliteral">&quot;Original std::exception: &quot;</span> &lt;&lt; <span class="keyword">typeid</span>(*e).name() &lt;&lt; <span class="stringliteral">&quot;: &quot;</span> &lt;&lt; std::endl</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;                        &lt;&lt; <span class="stringliteral">&quot;   &quot;</span>;</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;            }</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;            message &lt;&lt; e-&gt;what();</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;        }</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;        <span class="keywordflow">if</span> (node) {</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;            std::vector&lt;double&gt; lowerVarBounds(node-&gt;<a class="code" href="classbab_base_1_1_bab_node.html#a00e68c3242d5180d302cf5c8e1f8de2c">get_lower_bounds</a>()), upperVarBounds(node-&gt;<a class="code" href="classbab_base_1_1_bab_node.html#a2a0922468fbfe492d9d70231c54c4bf9">get_upper_bounds</a>());</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;            message &lt;&lt; std::endl</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;                    &lt;&lt; <span class="stringliteral">&quot;Exception was thrown while processing node no. &quot;</span> &lt;&lt; node-&gt;<a class="code" href="classbab_base_1_1_bab_node.html#a12e23225255660e57238ecb0820ea420">get_ID</a>() &lt;&lt; <span class="stringliteral">&quot;:&quot;</span> &lt;&lt; std::endl;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;            <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; lowerVarBounds.size(); i++) {</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;                message &lt;&lt; <span class="stringliteral">&quot;   x(&quot;</span> &lt;&lt; i &lt;&lt; <span class="stringliteral">&quot;): &quot;</span> &lt;&lt; std::setprecision(16) &lt;&lt; lowerVarBounds[i] &lt;&lt; <span class="stringliteral">&quot;:&quot;</span> &lt;&lt; upperVarBounds[i] &lt;&lt; std::endl;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;            }</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        }</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        <a class="code" href="classbab_base_1_1_branch_and_bound_base_exception.html#ad7fa9d844b7264c7251488ecc1e69482">_msg</a> = message.str();</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    }</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="classbab_base_1_1_branch_and_bound_base_exception.html#a91e5a78198bf8ef94f140a9ac5978d05">  124</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classbab_base_1_1_branch_and_bound_base_exception.html#a91e5a78198bf8ef94f140a9ac5978d05">what</a>() const noexcept</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    {</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_branch_and_bound_base_exception.html#ad7fa9d844b7264c7251488ecc1e69482">_msg</a>.c_str();</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    }</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;};</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;}    <span class="comment">// namespace babBase</span></div><div class="ttc" id="classbab_base_1_1_bab_node_html_a12e23225255660e57238ecb0820ea420"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a12e23225255660e57238ecb0820ea420">babBase::BabNode::get_ID</a></div><div class="ttdeci">int get_ID() const</div><div class="ttdoc">Function for querying the node ID.</div><div class="ttdef"><b>Definition:</b> babNode.h:100</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html"><div class="ttname"><a href="classbab_base_1_1_bab_node.html">babBase::BabNode</a></div><div class="ttdoc">Class representing a node in the Branch-and-Bound tree.</div><div class="ttdef"><b>Definition:</b> babNode.h:35</div></div>
+<a href="bab_exception_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file babException.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing definition of exceptions used by the Branch-and-Bound elements.</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_node_8h.html">babNode.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &lt;exception&gt;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;sstream&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;typeinfo&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacebab_base.html">babBase</a> {</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="classbab_base_1_1_branch_and_bound_base_exception.html">   38</a></span>&#160;<span class="keyword">class </span><a class="code" href="classbab_base_1_1_branch_and_bound_base_exception.html">BranchAndBoundBaseException</a>: <span class="keyword">public</span> std::exception {</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;  <span class="keyword">protected</span>:</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="classbab_base_1_1_branch_and_bound_base_exception.html#ad7fa9d844b7264c7251488ecc1e69482">   41</a></span>&#160;    std::string <a class="code" href="classbab_base_1_1_branch_and_bound_base_exception.html#ad7fa9d844b7264c7251488ecc1e69482">_msg</a>{<span class="stringliteral">&quot;&quot;</span>}; </div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    <a class="code" href="classbab_base_1_1_branch_and_bound_base_exception.html#a88e91f98099cf5db2b7365e13c9f0c3c">BranchAndBoundBaseException</a>();</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classbab_base_1_1_branch_and_bound_base_exception.html#ad4101cc86f164c33d7c65dd0f297e156">   50</a></span>&#160;    <span class="keyword">explicit</span> <a class="code" href="classbab_base_1_1_branch_and_bound_base_exception.html#ad4101cc86f164c33d7c65dd0f297e156">BranchAndBoundBaseException</a>(<span class="keyword">const</span> std::string&amp; arg):</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;        <a class="code" href="classbab_base_1_1_branch_and_bound_base_exception.html">BranchAndBoundBaseException</a>(arg, nullptr, nullptr)</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    {</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    }</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classbab_base_1_1_branch_and_bound_base_exception.html#a5e7b4d42142131b575e574f3ebd52f1e">   61</a></span>&#160;    <a class="code" href="classbab_base_1_1_branch_and_bound_base_exception.html#a5e7b4d42142131b575e574f3ebd52f1e">BranchAndBoundBaseException</a>(<span class="keyword">const</span> std::string&amp; arg, <span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a>&amp; node):</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;        <a class="code" href="classbab_base_1_1_branch_and_bound_base_exception.html">BranchAndBoundBaseException</a>(arg, nullptr, &amp;node)</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    {</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    }</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classbab_base_1_1_branch_and_bound_base_exception.html#a71f28b078d7768229740454c289a99fe">   72</a></span>&#160;    <a class="code" href="classbab_base_1_1_branch_and_bound_base_exception.html#a71f28b078d7768229740454c289a99fe">BranchAndBoundBaseException</a>(<span class="keyword">const</span> std::string&amp; arg, <span class="keyword">const</span> std::exception&amp; e):</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;        <a class="code" href="classbab_base_1_1_branch_and_bound_base_exception.html">BranchAndBoundBaseException</a>(arg, &amp;e, nullptr)</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    {</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    }</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classbab_base_1_1_branch_and_bound_base_exception.html#a6d0ede19ef9bd580ca1a2d3dcfdbced6">   84</a></span>&#160;    <a class="code" href="classbab_base_1_1_branch_and_bound_base_exception.html#a6d0ede19ef9bd580ca1a2d3dcfdbced6">BranchAndBoundBaseException</a>(<span class="keyword">const</span> std::string&amp; arg, <span class="keyword">const</span> std::exception&amp; e, <span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a>&amp; node):</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        <a class="code" href="classbab_base_1_1_branch_and_bound_base_exception.html">BranchAndBoundBaseException</a>(arg, &amp;e, &amp;node)</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    {</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    }</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classbab_base_1_1_branch_and_bound_base_exception.html#accd49c50678ca442ea7a7f90d9ca10f0">   96</a></span>&#160;    <a class="code" href="classbab_base_1_1_branch_and_bound_base_exception.html#accd49c50678ca442ea7a7f90d9ca10f0">BranchAndBoundBaseException</a>(<span class="keyword">const</span> std::string&amp; arg, <span class="keyword">const</span> std::exception* e, <span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a>* node)</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    {</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;        std::ostringstream message;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        message &lt;&lt; arg;</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;        <span class="keywordflow">if</span> (e) {</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;            <span class="keywordflow">if</span> (<span class="keyword">typeid</span>(*e).name() != <span class="keyword">typeid</span>(*this).name()) {</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;                message &lt;&lt; <span class="stringliteral">&quot;Original std::exception: &quot;</span> &lt;&lt; <span class="keyword">typeid</span>(*e).name() &lt;&lt; <span class="stringliteral">&quot;: &quot;</span> &lt;&lt; std::endl</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;                        &lt;&lt; <span class="stringliteral">&quot;   &quot;</span>;</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;            }</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;            message &lt;&lt; e-&gt;what();</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;        }</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;        <span class="keywordflow">if</span> (node) {</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;            std::vector&lt;double&gt; lowerVarBounds(node-&gt;<a class="code" href="classbab_base_1_1_bab_node.html#a00e68c3242d5180d302cf5c8e1f8de2c">get_lower_bounds</a>()), upperVarBounds(node-&gt;<a class="code" href="classbab_base_1_1_bab_node.html#a2a0922468fbfe492d9d70231c54c4bf9">get_upper_bounds</a>());</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;            message &lt;&lt; std::endl</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;                    &lt;&lt; <span class="stringliteral">&quot;Exception was thrown while processing node no. &quot;</span> &lt;&lt; node-&gt;<a class="code" href="classbab_base_1_1_bab_node.html#a12e23225255660e57238ecb0820ea420">get_ID</a>() &lt;&lt; <span class="stringliteral">&quot;:&quot;</span> &lt;&lt; std::endl;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;            <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; lowerVarBounds.size(); i++) {</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;                message &lt;&lt; <span class="stringliteral">&quot;   x(&quot;</span> &lt;&lt; i &lt;&lt; <span class="stringliteral">&quot;): &quot;</span> &lt;&lt; std::setprecision(16) &lt;&lt; lowerVarBounds[i] &lt;&lt; <span class="stringliteral">&quot;:&quot;</span> &lt;&lt; upperVarBounds[i] &lt;&lt; std::endl;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;            }</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        }</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        <a class="code" href="classbab_base_1_1_branch_and_bound_base_exception.html#ad7fa9d844b7264c7251488ecc1e69482">_msg</a> = message.str();</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    }</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="classbab_base_1_1_branch_and_bound_base_exception.html#a91e5a78198bf8ef94f140a9ac5978d05">  124</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classbab_base_1_1_branch_and_bound_base_exception.html#a91e5a78198bf8ef94f140a9ac5978d05">what</a>() const noexcept</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    {</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_branch_and_bound_base_exception.html#ad7fa9d844b7264c7251488ecc1e69482">_msg</a>.c_str();</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    }</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;};</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;}    <span class="comment">// namespace babBase</span></div><div class="ttc" id="classbab_base_1_1_bab_node_html_a12e23225255660e57238ecb0820ea420"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a12e23225255660e57238ecb0820ea420">babBase::BabNode::get_ID</a></div><div class="ttdeci">int get_ID() const</div><div class="ttdoc">Function for querying the node ID. </div><div class="ttdef"><b>Definition:</b> babNode.h:100</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html"><div class="ttname"><a href="classbab_base_1_1_bab_node.html">babBase::BabNode</a></div><div class="ttdoc">Class representing a node in the Branch-and-Bound tree. </div><div class="ttdef"><b>Definition:</b> babNode.h:35</div></div>
 <div class="ttc" id="bab_node_8h_html"><div class="ttname"><a href="bab_node_8h.html">babNode.h</a></div></div>
-<div class="ttc" id="namespacebab_base_html"><div class="ttname"><a href="namespacebab_base.html">babBase</a></div><div class="ttdoc">namespace holding all essentials of the babBase submodule</div><div class="ttdef"><b>Definition:</b> babBrancher.h:40</div></div>
-<div class="ttc" id="classbab_base_1_1_branch_and_bound_base_exception_html_a5e7b4d42142131b575e574f3ebd52f1e"><div class="ttname"><a href="classbab_base_1_1_branch_and_bound_base_exception.html#a5e7b4d42142131b575e574f3ebd52f1e">babBase::BranchAndBoundBaseException::BranchAndBoundBaseException</a></div><div class="ttdeci">BranchAndBoundBaseException(const std::string &amp;arg, const babBase::BabNode &amp;node)</div><div class="ttdoc">Constructor used for forwarding.</div><div class="ttdef"><b>Definition:</b> babException.h:61</div></div>
-<div class="ttc" id="classbab_base_1_1_branch_and_bound_base_exception_html_accd49c50678ca442ea7a7f90d9ca10f0"><div class="ttname"><a href="classbab_base_1_1_branch_and_bound_base_exception.html#accd49c50678ca442ea7a7f90d9ca10f0">babBase::BranchAndBoundBaseException::BranchAndBoundBaseException</a></div><div class="ttdeci">BranchAndBoundBaseException(const std::string &amp;arg, const std::exception *e, const babBase::BabNode *node)</div><div class="ttdoc">Constructor used printing a BranchAndBoundBase Exception.</div><div class="ttdef"><b>Definition:</b> babException.h:96</div></div>
-<div class="ttc" id="classbab_base_1_1_branch_and_bound_base_exception_html_a71f28b078d7768229740454c289a99fe"><div class="ttname"><a href="classbab_base_1_1_branch_and_bound_base_exception.html#a71f28b078d7768229740454c289a99fe">babBase::BranchAndBoundBaseException::BranchAndBoundBaseException</a></div><div class="ttdeci">BranchAndBoundBaseException(const std::string &amp;arg, const std::exception &amp;e)</div><div class="ttdoc">Constructor used for forwarding.</div><div class="ttdef"><b>Definition:</b> babException.h:72</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html_a00e68c3242d5180d302cf5c8e1f8de2c"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a00e68c3242d5180d302cf5c8e1f8de2c">babBase::BabNode::get_lower_bounds</a></div><div class="ttdeci">std::vector&lt; double &gt; get_lower_bounds() const</div><div class="ttdoc">Function for querying the lower bounds on the optimization variables within this node.</div><div class="ttdef"><b>Definition:</b> babNode.h:90</div></div>
-<div class="ttc" id="classbab_base_1_1_branch_and_bound_base_exception_html_ad4101cc86f164c33d7c65dd0f297e156"><div class="ttname"><a href="classbab_base_1_1_branch_and_bound_base_exception.html#ad4101cc86f164c33d7c65dd0f297e156">babBase::BranchAndBoundBaseException::BranchAndBoundBaseException</a></div><div class="ttdeci">BranchAndBoundBaseException(const std::string &amp;arg)</div><div class="ttdoc">Constructor used for forwarding.</div><div class="ttdef"><b>Definition:</b> babException.h:50</div></div>
-<div class="ttc" id="classbab_base_1_1_branch_and_bound_base_exception_html_a6d0ede19ef9bd580ca1a2d3dcfdbced6"><div class="ttname"><a href="classbab_base_1_1_branch_and_bound_base_exception.html#a6d0ede19ef9bd580ca1a2d3dcfdbced6">babBase::BranchAndBoundBaseException::BranchAndBoundBaseException</a></div><div class="ttdeci">BranchAndBoundBaseException(const std::string &amp;arg, const std::exception &amp;e, const babBase::BabNode &amp;node)</div><div class="ttdoc">Constructor used for forwarding.</div><div class="ttdef"><b>Definition:</b> babException.h:84</div></div>
-<div class="ttc" id="classbab_base_1_1_branch_and_bound_base_exception_html"><div class="ttname"><a href="classbab_base_1_1_branch_and_bound_base_exception.html">babBase::BranchAndBoundBaseException</a></div><div class="ttdoc">This class defines the exceptions thrown by BranchAndBoundBase.</div><div class="ttdef"><b>Definition:</b> babException.h:38</div></div>
+<div class="ttc" id="namespacebab_base_html"><div class="ttname"><a href="namespacebab_base.html">babBase</a></div><div class="ttdoc">namespace holding all essentials of the babBase submodule </div></div>
+<div class="ttc" id="classbab_base_1_1_branch_and_bound_base_exception_html_a5e7b4d42142131b575e574f3ebd52f1e"><div class="ttname"><a href="classbab_base_1_1_branch_and_bound_base_exception.html#a5e7b4d42142131b575e574f3ebd52f1e">babBase::BranchAndBoundBaseException::BranchAndBoundBaseException</a></div><div class="ttdeci">BranchAndBoundBaseException(const std::string &amp;arg, const babBase::BabNode &amp;node)</div><div class="ttdoc">Constructor used for forwarding. </div><div class="ttdef"><b>Definition:</b> babException.h:61</div></div>
+<div class="ttc" id="classbab_base_1_1_branch_and_bound_base_exception_html_accd49c50678ca442ea7a7f90d9ca10f0"><div class="ttname"><a href="classbab_base_1_1_branch_and_bound_base_exception.html#accd49c50678ca442ea7a7f90d9ca10f0">babBase::BranchAndBoundBaseException::BranchAndBoundBaseException</a></div><div class="ttdeci">BranchAndBoundBaseException(const std::string &amp;arg, const std::exception *e, const babBase::BabNode *node)</div><div class="ttdoc">Constructor used printing a BranchAndBoundBase Exception. </div><div class="ttdef"><b>Definition:</b> babException.h:96</div></div>
+<div class="ttc" id="classbab_base_1_1_branch_and_bound_base_exception_html_a71f28b078d7768229740454c289a99fe"><div class="ttname"><a href="classbab_base_1_1_branch_and_bound_base_exception.html#a71f28b078d7768229740454c289a99fe">babBase::BranchAndBoundBaseException::BranchAndBoundBaseException</a></div><div class="ttdeci">BranchAndBoundBaseException(const std::string &amp;arg, const std::exception &amp;e)</div><div class="ttdoc">Constructor used for forwarding. </div><div class="ttdef"><b>Definition:</b> babException.h:72</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html_a00e68c3242d5180d302cf5c8e1f8de2c"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a00e68c3242d5180d302cf5c8e1f8de2c">babBase::BabNode::get_lower_bounds</a></div><div class="ttdeci">std::vector&lt; double &gt; get_lower_bounds() const</div><div class="ttdoc">Function for querying the lower bounds on the optimization variables within this node. </div><div class="ttdef"><b>Definition:</b> babNode.h:90</div></div>
+<div class="ttc" id="classbab_base_1_1_branch_and_bound_base_exception_html_ad4101cc86f164c33d7c65dd0f297e156"><div class="ttname"><a href="classbab_base_1_1_branch_and_bound_base_exception.html#ad4101cc86f164c33d7c65dd0f297e156">babBase::BranchAndBoundBaseException::BranchAndBoundBaseException</a></div><div class="ttdeci">BranchAndBoundBaseException(const std::string &amp;arg)</div><div class="ttdoc">Constructor used for forwarding. </div><div class="ttdef"><b>Definition:</b> babException.h:50</div></div>
+<div class="ttc" id="classbab_base_1_1_branch_and_bound_base_exception_html_a6d0ede19ef9bd580ca1a2d3dcfdbced6"><div class="ttname"><a href="classbab_base_1_1_branch_and_bound_base_exception.html#a6d0ede19ef9bd580ca1a2d3dcfdbced6">babBase::BranchAndBoundBaseException::BranchAndBoundBaseException</a></div><div class="ttdeci">BranchAndBoundBaseException(const std::string &amp;arg, const std::exception &amp;e, const babBase::BabNode &amp;node)</div><div class="ttdoc">Constructor used for forwarding. </div><div class="ttdef"><b>Definition:</b> babException.h:84</div></div>
+<div class="ttc" id="classbab_base_1_1_branch_and_bound_base_exception_html"><div class="ttname"><a href="classbab_base_1_1_branch_and_bound_base_exception.html">babBase::BranchAndBoundBaseException</a></div><div class="ttdoc">This class defines the exceptions thrown by BranchAndBoundBase. </div><div class="ttdef"><b>Definition:</b> babException.h:38</div></div>
 <div class="ttc" id="classbab_base_1_1_branch_and_bound_base_exception_html_ad7fa9d844b7264c7251488ecc1e69482"><div class="ttname"><a href="classbab_base_1_1_branch_and_bound_base_exception.html#ad7fa9d844b7264c7251488ecc1e69482">babBase::BranchAndBoundBaseException::_msg</a></div><div class="ttdeci">std::string _msg</div><div class="ttdef"><b>Definition:</b> babException.h:41</div></div>
-<div class="ttc" id="classbab_base_1_1_branch_and_bound_base_exception_html_a91e5a78198bf8ef94f140a9ac5978d05"><div class="ttname"><a href="classbab_base_1_1_branch_and_bound_base_exception.html#a91e5a78198bf8ef94f140a9ac5978d05">babBase::BranchAndBoundBaseException::what</a></div><div class="ttdeci">const char * what() const noexcept</div><div class="ttdoc">Function to return the error message.</div><div class="ttdef"><b>Definition:</b> babException.h:124</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html_a2a0922468fbfe492d9d70231c54c4bf9"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a2a0922468fbfe492d9d70231c54c4bf9">babBase::BabNode::get_upper_bounds</a></div><div class="ttdeci">std::vector&lt; double &gt; get_upper_bounds() const</div><div class="ttdoc">Function for querying the upper bounds on the optimization variables within this node.</div><div class="ttdef"><b>Definition:</b> babNode.h:95</div></div>
+<div class="ttc" id="classbab_base_1_1_branch_and_bound_base_exception_html_a91e5a78198bf8ef94f140a9ac5978d05"><div class="ttname"><a href="classbab_base_1_1_branch_and_bound_base_exception.html#a91e5a78198bf8ef94f140a9ac5978d05">babBase::BranchAndBoundBaseException::what</a></div><div class="ttdeci">const char * what() const noexcept</div><div class="ttdoc">Function to return the error message. </div><div class="ttdef"><b>Definition:</b> babException.h:124</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html_a2a0922468fbfe492d9d70231c54c4bf9"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a2a0922468fbfe492d9d70231c54c4bf9">babBase::BabNode::get_upper_bounds</a></div><div class="ttdeci">std::vector&lt; double &gt; get_upper_bounds() const</div><div class="ttdoc">Function for querying the upper bounds on the optimization variables within this node. </div><div class="ttdef"><b>Definition:</b> babNode.h:95</div></div>
 <div class="ttc" id="classbab_base_1_1_branch_and_bound_base_exception_html_a88e91f98099cf5db2b7365e13c9f0c3c"><div class="ttname"><a href="classbab_base_1_1_branch_and_bound_base_exception.html#a88e91f98099cf5db2b7365e13c9f0c3c">babBase::BranchAndBoundBaseException::BranchAndBoundBaseException</a></div><div class="ttdeci">BranchAndBoundBaseException()</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
@@ -113,7 +113,7 @@ $(document).ready(function(){initNavTree('bab_exception_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_ede40f663fdbaac4622f0a2d30ba279b.html">dep</a></li><li class="navelem"><a class="el" href="dir_47e169a4fe08058254fbf7964fa7bfb6.html">babbase</a></li><li class="navelem"><a class="el" href="dir_637fe8785ffc83488bdb33305770812c.html">inc</a></li><li class="navelem"><a class="el" href="bab_exception_8h.html">babException.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/bab_mpi_8cpp.html b/doc/html/bab_mpi_8cpp.html
index 2b39fe23ed1fd9382acbab4192c9bd3e75368fb7..938be42d998e78aa55c274f7ff46799ccb689d93 100644
--- a/doc/html/bab_mpi_8cpp.html
+++ b/doc/html/bab_mpi_8cpp.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/src/babMpi.cpp File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/src/babMpi.cpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -98,7 +98,7 @@ $(document).ready(function(){initNavTree('bab_mpi_8cpp.html','');});
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="bab_mpi_8cpp.html">babMpi.cpp</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/bab_node_8h.html b/doc/html/bab_node_8h.html
index f23f2fd66819a615775078b6738d9f56f9000ad6..53477bea207c26fefc98443f2c3ea6a5c592fe85 100644
--- a/doc/html/bab_node_8h.html
+++ b/doc/html/bab_node_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/dep/babbase/inc/babNode.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/dep/babbase/inc/babNode.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -110,13 +110,13 @@ Classes</h2></td></tr>
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
 Namespaces</h2></td></tr>
 <tr class="memitem:namespacebab_base"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacebab_base.html">babBase</a></td></tr>
-<tr class="memdesc:namespacebab_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">namespace holding all essentials of the <a class="el" href="namespacebab_base.html" title="namespace holding all essentials of the babBase submodule">babBase</a> submodule <br /></td></tr>
+<tr class="memdesc:namespacebab_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">namespace holding all essentials of the <a class="el" href="namespacebab_base.html" title="namespace holding all essentials of the babBase submodule ">babBase</a> submodule <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
 Functions</h2></td></tr>
 <tr class="memitem:a8bfa85e64a4cf9554eec367d08122be9"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacebab_base.html#a8bfa85e64a4cf9554eec367d08122be9">babBase::operator&lt;&lt;</a> (std::ostream &amp;out, const BabNode &amp;node)</td></tr>
-<tr class="memdesc:a8bfa85e64a4cf9554eec367d08122be9"><td class="mdescLeft">&#160;</td><td class="mdescRight">operator &lt;&lt; overloaded for <a class="el" href="classbab_base_1_1_bab_node.html" title="Class representing a node in the Branch-and-Bound tree.">BabNode</a> for easier output  <a href="namespacebab_base.html#a8bfa85e64a4cf9554eec367d08122be9">More...</a><br /></td></tr>
+<tr class="memdesc:a8bfa85e64a4cf9554eec367d08122be9"><td class="mdescLeft">&#160;</td><td class="mdescRight">operator &lt;&lt; overloaded for <a class="el" href="classbab_base_1_1_bab_node.html" title="Class representing a node in the Branch-and-Bound tree. ">BabNode</a> for easier output  <a href="namespacebab_base.html#a8bfa85e64a4cf9554eec367d08122be9">More...</a><br /></td></tr>
 <tr class="separator:a8bfa85e64a4cf9554eec367d08122be9"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 </div><!-- contents -->
@@ -127,7 +127,7 @@ Functions</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_ede40f663fdbaac4622f0a2d30ba279b.html">dep</a></li><li class="navelem"><a class="el" href="dir_47e169a4fe08058254fbf7964fa7bfb6.html">babbase</a></li><li class="navelem"><a class="el" href="dir_637fe8785ffc83488bdb33305770812c.html">inc</a></li><li class="navelem"><a class="el" href="bab_node_8h.html">babNode.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/bab_node_8h_source.html b/doc/html/bab_node_8h_source.html
index 48e19e93d90e2255194878e1cdf47e6998ac1510..5fe8e0b7067da76a7944e368b8d1abf92d06938d 100644
--- a/doc/html/bab_node_8h_source.html
+++ b/doc/html/bab_node_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/dep/babbase/inc/babNode.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/dep/babbase/inc/babNode.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,32 +90,32 @@ $(document).ready(function(){initNavTree('bab_node_8h_source.html','');});
 <div class="title">babNode.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="bab_node_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file babNode.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File defining the class for Branch-and-Bound nodes</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_opt_var_8h.html">babOptVar.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_utils_8h.html">babUtils.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacebab_base.html">babBase</a> {</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html">   35</a></span>&#160;<span class="keyword">class </span><a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a> {</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#a62257c8715cd244acce87bbaf1345025">   48</a></span>&#160;    <a class="code" href="classbab_base_1_1_bab_node.html#a62257c8715cd244acce87bbaf1345025">BabNode</a>(<span class="keywordtype">double</span> pruningScoreIn, <span class="keyword">const</span> std::vector&lt;double&gt;&amp; lbdsIn, <span class="keyword">const</span> std::vector&lt;double&gt;&amp; ubdsIn, <span class="keyword">const</span> <span class="keywordtype">int</span> idIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> depthIn, <span class="keyword">const</span> <span class="keywordtype">bool</span> holdsIncumbent):</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;        <a class="code" href="classbab_base_1_1_bab_node.html#a3db2c380e596d213695706f9a30453b3">_pruningScore</a>(pruningScoreIn), <a class="code" href="classbab_base_1_1_bab_node.html#a7d1097fbd9ec6c1d7468eb8ca3532707">_lowerBounds</a>(lbdsIn), <a class="code" href="classbab_base_1_1_bab_node.html#ad98784ad49fb92d9dc13bfb4faf1561f">_upperBounds</a>(ubdsIn), <a class="code" href="classbab_base_1_1_bab_node.html#a7d45d49a15377c4f03bf4c670ebb0f6b">_idNumber</a>(idIn), <a class="code" href="classbab_base_1_1_bab_node.html#a8caa2f65f130c1b6f3dd6c9603974797">_depth</a>(depthIn), <a class="code" href="classbab_base_1_1_bab_node.html#a255a70d2e5d0c1e6c7320dd4ea472e78">_holdsIncumbent</a>(holdsIncumbent) {}</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#af2703f93e30196364477163419e98f72">   60</a></span>&#160;    <a class="code" href="classbab_base_1_1_bab_node.html#af2703f93e30196364477163419e98f72">BabNode</a>(<span class="keywordtype">double</span> pruningScoreIn, <span class="keyword">const</span> std::vector&lt;OptimizationVariable&gt;&amp; variablesIn, <span class="keyword">const</span> <span class="keywordtype">int</span> idIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> depthIn, <span class="keyword">const</span> <span class="keywordtype">bool</span> holdsIncumbent):</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;        <a class="code" href="classbab_base_1_1_bab_node.html#a3db2c380e596d213695706f9a30453b3">_pruningScore</a>(pruningScoreIn), <a class="code" href="classbab_base_1_1_bab_node.html#a7d45d49a15377c4f03bf4c670ebb0f6b">_idNumber</a>(idIn), <a class="code" href="classbab_base_1_1_bab_node.html#a8caa2f65f130c1b6f3dd6c9603974797">_depth</a>(depthIn), <a class="code" href="classbab_base_1_1_bab_node.html#a255a70d2e5d0c1e6c7320dd4ea472e78">_holdsIncumbent</a>(holdsIncumbent)</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    {</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;        <span class="keywordtype">size_t</span> nVar = variablesIn.size();</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;        <a class="code" href="classbab_base_1_1_bab_node.html#a7d1097fbd9ec6c1d7468eb8ca3532707">_lowerBounds</a>.resize(nVar);</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;        <a class="code" href="classbab_base_1_1_bab_node.html#ad98784ad49fb92d9dc13bfb4faf1561f">_upperBounds</a>.resize(nVar);</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> iVar = 0; iVar &lt; nVar; iVar++) {</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;            <a class="code" href="classbab_base_1_1_bab_node.html#a7d1097fbd9ec6c1d7468eb8ca3532707">_lowerBounds</a>[iVar] = variablesIn[iVar].get_lower_bound();</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;            <a class="code" href="classbab_base_1_1_bab_node.html#ad98784ad49fb92d9dc13bfb4faf1561f">_upperBounds</a>[iVar] = variablesIn[iVar].get_upper_bound();</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;        }</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    }</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#adfce8159612254b9f02fef90542b1130">   75</a></span>&#160;    <a class="code" href="classbab_base_1_1_bab_node.html#adfce8159612254b9f02fef90542b1130">BabNode</a>() {}</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#a7b99992c4fb98f8086a3cf09ab8d96ad">   80</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classbab_base_1_1_bab_node.html#a7b99992c4fb98f8086a3cf09ab8d96ad">get_pruning_score</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_bab_node.html#a3db2c380e596d213695706f9a30453b3">_pruningScore</a>; }</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#a747d334dcf93c85f9e2bd234b875486a">   85</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classbab_base_1_1_bab_node.html#a747d334dcf93c85f9e2bd234b875486a">set_pruning_score</a>(<span class="keywordtype">double</span> pruningScoreIn) { <a class="code" href="classbab_base_1_1_bab_node.html#a3db2c380e596d213695706f9a30453b3">_pruningScore</a> = pruningScoreIn; }</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#a00e68c3242d5180d302cf5c8e1f8de2c">   90</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classbab_base_1_1_bab_node.html#a00e68c3242d5180d302cf5c8e1f8de2c">get_lower_bounds</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_bab_node.html#a7d1097fbd9ec6c1d7468eb8ca3532707">_lowerBounds</a>; }</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#a2a0922468fbfe492d9d70231c54c4bf9">   95</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classbab_base_1_1_bab_node.html#a2a0922468fbfe492d9d70231c54c4bf9">get_upper_bounds</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_bab_node.html#ad98784ad49fb92d9dc13bfb4faf1561f">_upperBounds</a>; }</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#a12e23225255660e57238ecb0820ea420">  100</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="classbab_base_1_1_bab_node.html#a12e23225255660e57238ecb0820ea420">get_ID</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_bab_node.html#a7d45d49a15377c4f03bf4c670ebb0f6b">_idNumber</a>; };</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#a63bb749d97a5a1ef6d5dde70ed9d4184">  105</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="classbab_base_1_1_bab_node.html#a63bb749d97a5a1ef6d5dde70ed9d4184">get_depth</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_bab_node.html#a8caa2f65f130c1b6f3dd6c9603974797">_depth</a>; };</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#a57bfdc7281a869bc98abe20d78eb1df6">  110</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classbab_base_1_1_bab_node.html#a57bfdc7281a869bc98abe20d78eb1df6">holds_incumbent</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_bab_node.html#a255a70d2e5d0c1e6c7320dd4ea472e78">_holdsIncumbent</a>; }</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#a70530169b115d733df41aaafd449b23e">  115</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classbab_base_1_1_bab_node.html#a70530169b115d733df41aaafd449b23e">set_holds_incumbent</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> holdsIncumbent) { <a class="code" href="classbab_base_1_1_bab_node.html#a255a70d2e5d0c1e6c7320dd4ea472e78">_holdsIncumbent</a> = holdsIncumbent; }</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#a78cfcab15536723a4e2e0ee40c316167">  120</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classbab_base_1_1_bab_node.html#a78cfcab15536723a4e2e0ee40c316167">set_upper_bound</a>(<span class="keyword">const</span> std::vector&lt;double&gt; upperBounds) { <a class="code" href="classbab_base_1_1_bab_node.html#ad98784ad49fb92d9dc13bfb4faf1561f">_upperBounds</a> = upperBounds; }</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#a2de1be347ecc66acf68ff816e2df0508">  125</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classbab_base_1_1_bab_node.html#a2de1be347ecc66acf68ff816e2df0508">set_upper_bound</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> iVar, <span class="keyword">const</span> <span class="keywordtype">double</span> value) { <a class="code" href="classbab_base_1_1_bab_node.html#ad98784ad49fb92d9dc13bfb4faf1561f">_upperBounds</a>[iVar] = value; }</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#a04b7b97d9b302cf99808e0301272d740">  130</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classbab_base_1_1_bab_node.html#a04b7b97d9b302cf99808e0301272d740">set_lower_bound</a>(<span class="keyword">const</span> std::vector&lt;double&gt; lowerBounds) { <a class="code" href="classbab_base_1_1_bab_node.html#a7d1097fbd9ec6c1d7468eb8ca3532707">_lowerBounds</a> = lowerBounds; }</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#aa0027fd7c95a73e253aeb383b9e8468a">  135</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classbab_base_1_1_bab_node.html#aa0027fd7c95a73e253aeb383b9e8468a">set_lower_bound</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> iVar, <span class="keyword">const</span> <span class="keywordtype">double</span> value) { <a class="code" href="classbab_base_1_1_bab_node.html#a7d1097fbd9ec6c1d7468eb8ca3532707">_lowerBounds</a>[iVar] = value; }</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    <span class="keyword">friend</span> std::ostream&amp; <a class="code" href="classbab_base_1_1_bab_node.html#a0af68006f01d42b3f593fe2a6709f407">operator&lt;&lt;</a>(std::ostream&amp; out, <span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a>&amp; node);</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#a7d1097fbd9ec6c1d7468eb8ca3532707">  148</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classbab_base_1_1_bab_node.html#a7d1097fbd9ec6c1d7468eb8ca3532707">_lowerBounds</a>; </div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#ad98784ad49fb92d9dc13bfb4faf1561f">  149</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classbab_base_1_1_bab_node.html#ad98784ad49fb92d9dc13bfb4faf1561f">_upperBounds</a>; </div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#a7d45d49a15377c4f03bf4c670ebb0f6b">  150</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="classbab_base_1_1_bab_node.html#a7d45d49a15377c4f03bf4c670ebb0f6b">_idNumber</a>;                    </div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#a8caa2f65f130c1b6f3dd6c9603974797">  151</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classbab_base_1_1_bab_node.html#a8caa2f65f130c1b6f3dd6c9603974797">_depth</a>;                  </div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#a3db2c380e596d213695706f9a30453b3">  152</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classbab_base_1_1_bab_node.html#a3db2c380e596d213695706f9a30453b3">_pruningScore</a>;             </div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#a255a70d2e5d0c1e6c7320dd4ea472e78">  153</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classbab_base_1_1_bab_node.html#a255a70d2e5d0c1e6c7320dd4ea472e78">_holdsIncumbent</a>;             </div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;};</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;<span class="keyword">inline</span> std::ostream&amp;</div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="namespacebab_base.html#a8bfa85e64a4cf9554eec367d08122be9">  164</a></span>&#160;<a class="code" href="namespacebab_base.html#a8bfa85e64a4cf9554eec367d08122be9">operator&lt;&lt;</a>(std::ostream&amp; out, <span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a>&amp; node)</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;{</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    std::string str;</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    <span class="keywordflow">if</span> (node.<a class="code" href="classbab_base_1_1_bab_node.html#a57bfdc7281a869bc98abe20d78eb1df6">holds_incumbent</a>()) {</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;        str = <span class="stringliteral">&quot;yes&quot;</span>;</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    }</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    <span class="keywordflow">else</span> {</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;        str = <span class="stringliteral">&quot;no&quot;</span>;</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    }</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;    out &lt;&lt; <span class="stringliteral">&quot;BabNode id: &quot;</span> &lt;&lt; node.<a class="code" href="classbab_base_1_1_bab_node.html#a12e23225255660e57238ecb0820ea420">get_ID</a>() &lt;&lt; <span class="stringliteral">&quot;, pruning score: &quot;</span> &lt;&lt; node.<a class="code" href="classbab_base_1_1_bab_node.html#a7b99992c4fb98f8086a3cf09ab8d96ad">get_pruning_score</a>() &lt;&lt; <span class="stringliteral">&quot;, hold incumbent: &quot;</span> &lt;&lt; str &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; node.<a class="code" href="classbab_base_1_1_bab_node.html#a00e68c3242d5180d302cf5c8e1f8de2c">get_lower_bounds</a>().size(); i++) {</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;        out &lt;&lt; <span class="stringliteral">&quot;lb[&quot;</span> &lt;&lt; i &lt;&lt; <span class="stringliteral">&quot;]: &quot;</span> &lt;&lt; std::setprecision(16) &lt;&lt; node.<a class="code" href="classbab_base_1_1_bab_node.html#a00e68c3242d5180d302cf5c8e1f8de2c">get_lower_bounds</a>()[i] &lt;&lt; <span class="stringliteral">&quot; .. &quot;</span> &lt;&lt; node.<a class="code" href="classbab_base_1_1_bab_node.html#a2a0922468fbfe492d9d70231c54c4bf9">get_upper_bounds</a>()[i] &lt;&lt; <span class="stringliteral">&quot; :[&quot;</span> &lt;&lt; i &lt;&lt; <span class="stringliteral">&quot;]ub\n&quot;</span>;</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;    }</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    <span class="keywordflow">return</span> out;</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;}</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;}    <span class="comment">// end namespace babBase</span></div><div class="ttc" id="classbab_base_1_1_bab_node_html_a7d45d49a15377c4f03bf4c670ebb0f6b"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a7d45d49a15377c4f03bf4c670ebb0f6b">babBase::BabNode::_idNumber</a></div><div class="ttdeci">int _idNumber</div><div class="ttdef"><b>Definition:</b> babNode.h:150</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html_a04b7b97d9b302cf99808e0301272d740"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a04b7b97d9b302cf99808e0301272d740">babBase::BabNode::set_lower_bound</a></div><div class="ttdeci">void set_lower_bound(const std::vector&lt; double &gt; lowerBounds)</div><div class="ttdoc">Function for setting the whole upper bound vector.</div><div class="ttdef"><b>Definition:</b> babNode.h:130</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html_a12e23225255660e57238ecb0820ea420"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a12e23225255660e57238ecb0820ea420">babBase::BabNode::get_ID</a></div><div class="ttdeci">int get_ID() const</div><div class="ttdoc">Function for querying the node ID.</div><div class="ttdef"><b>Definition:</b> babNode.h:100</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html_a0af68006f01d42b3f593fe2a6709f407"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a0af68006f01d42b3f593fe2a6709f407">babBase::BabNode::operator&lt;&lt;</a></div><div class="ttdeci">friend std::ostream &amp; operator&lt;&lt;(std::ostream &amp;out, const BabNode &amp;node)</div><div class="ttdoc">Overloaded operator for easier output. Definition of this operator is in bab.cpp.</div><div class="ttdef"><b>Definition:</b> babNode.h:164</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html"><div class="ttname"><a href="classbab_base_1_1_bab_node.html">babBase::BabNode</a></div><div class="ttdoc">Class representing a node in the Branch-and-Bound tree.</div><div class="ttdef"><b>Definition:</b> babNode.h:35</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html_adfce8159612254b9f02fef90542b1130"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#adfce8159612254b9f02fef90542b1130">babBase::BabNode::BabNode</a></div><div class="ttdeci">BabNode()</div><div class="ttdoc">Default constructor.</div><div class="ttdef"><b>Definition:</b> babNode.h:75</div></div>
-<div class="ttc" id="namespacebab_base_html"><div class="ttname"><a href="namespacebab_base.html">babBase</a></div><div class="ttdoc">namespace holding all essentials of the babBase submodule</div><div class="ttdef"><b>Definition:</b> babBrancher.h:40</div></div>
+<a href="bab_node_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file babNode.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File defining the class for Branch-and-Bound nodes</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_opt_var_8h.html">babOptVar.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_utils_8h.html">babUtils.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacebab_base.html">babBase</a> {</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html">   35</a></span>&#160;<span class="keyword">class </span><a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a> {</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#a62257c8715cd244acce87bbaf1345025">   48</a></span>&#160;    <a class="code" href="classbab_base_1_1_bab_node.html#a62257c8715cd244acce87bbaf1345025">BabNode</a>(<span class="keywordtype">double</span> pruningScoreIn, <span class="keyword">const</span> std::vector&lt;double&gt;&amp; lbdsIn, <span class="keyword">const</span> std::vector&lt;double&gt;&amp; ubdsIn, <span class="keyword">const</span> <span class="keywordtype">int</span> idIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> depthIn, <span class="keyword">const</span> <span class="keywordtype">bool</span> holdsIncumbent):</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;        <a class="code" href="classbab_base_1_1_bab_node.html#a3db2c380e596d213695706f9a30453b3">_pruningScore</a>(pruningScoreIn), <a class="code" href="classbab_base_1_1_bab_node.html#a7d1097fbd9ec6c1d7468eb8ca3532707">_lowerBounds</a>(lbdsIn), <a class="code" href="classbab_base_1_1_bab_node.html#ad98784ad49fb92d9dc13bfb4faf1561f">_upperBounds</a>(ubdsIn), <a class="code" href="classbab_base_1_1_bab_node.html#a7d45d49a15377c4f03bf4c670ebb0f6b">_idNumber</a>(idIn), <a class="code" href="classbab_base_1_1_bab_node.html#a8caa2f65f130c1b6f3dd6c9603974797">_depth</a>(depthIn), <a class="code" href="classbab_base_1_1_bab_node.html#a255a70d2e5d0c1e6c7320dd4ea472e78">_holdsIncumbent</a>(holdsIncumbent) {}</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#af2703f93e30196364477163419e98f72">   60</a></span>&#160;    <a class="code" href="classbab_base_1_1_bab_node.html#af2703f93e30196364477163419e98f72">BabNode</a>(<span class="keywordtype">double</span> pruningScoreIn, <span class="keyword">const</span> std::vector&lt;OptimizationVariable&gt;&amp; variablesIn, <span class="keyword">const</span> <span class="keywordtype">int</span> idIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> depthIn, <span class="keyword">const</span> <span class="keywordtype">bool</span> holdsIncumbent):</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;        <a class="code" href="classbab_base_1_1_bab_node.html#a3db2c380e596d213695706f9a30453b3">_pruningScore</a>(pruningScoreIn), <a class="code" href="classbab_base_1_1_bab_node.html#a7d45d49a15377c4f03bf4c670ebb0f6b">_idNumber</a>(idIn), <a class="code" href="classbab_base_1_1_bab_node.html#a8caa2f65f130c1b6f3dd6c9603974797">_depth</a>(depthIn), <a class="code" href="classbab_base_1_1_bab_node.html#a255a70d2e5d0c1e6c7320dd4ea472e78">_holdsIncumbent</a>(holdsIncumbent)</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    {</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;        <span class="keywordtype">size_t</span> nVar = variablesIn.size();</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;        <a class="code" href="classbab_base_1_1_bab_node.html#a7d1097fbd9ec6c1d7468eb8ca3532707">_lowerBounds</a>.resize(nVar);</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;        <a class="code" href="classbab_base_1_1_bab_node.html#ad98784ad49fb92d9dc13bfb4faf1561f">_upperBounds</a>.resize(nVar);</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> iVar = 0; iVar &lt; nVar; iVar++) {</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;            <a class="code" href="classbab_base_1_1_bab_node.html#a7d1097fbd9ec6c1d7468eb8ca3532707">_lowerBounds</a>[iVar] = variablesIn[iVar].get_lower_bound();</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;            <a class="code" href="classbab_base_1_1_bab_node.html#ad98784ad49fb92d9dc13bfb4faf1561f">_upperBounds</a>[iVar] = variablesIn[iVar].get_upper_bound();</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;        }</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    }</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#adfce8159612254b9f02fef90542b1130">   75</a></span>&#160;    <a class="code" href="classbab_base_1_1_bab_node.html#adfce8159612254b9f02fef90542b1130">BabNode</a>(): <a class="code" href="classbab_base_1_1_bab_node.html#a3db2c380e596d213695706f9a30453b3">_pruningScore</a>(std::numeric_limits&lt;double&gt;::infinity()), <a class="code" href="classbab_base_1_1_bab_node.html#a255a70d2e5d0c1e6c7320dd4ea472e78">_holdsIncumbent</a>(false),<a class="code" href="classbab_base_1_1_bab_node.html#a8caa2f65f130c1b6f3dd6c9603974797">_depth</a>(0), <a class="code" href="classbab_base_1_1_bab_node.html#a7d45d49a15377c4f03bf4c670ebb0f6b">_idNumber</a>(0){}</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#a7b99992c4fb98f8086a3cf09ab8d96ad">   80</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classbab_base_1_1_bab_node.html#a7b99992c4fb98f8086a3cf09ab8d96ad">get_pruning_score</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_bab_node.html#a3db2c380e596d213695706f9a30453b3">_pruningScore</a>; }</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#a747d334dcf93c85f9e2bd234b875486a">   85</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classbab_base_1_1_bab_node.html#a747d334dcf93c85f9e2bd234b875486a">set_pruning_score</a>(<span class="keywordtype">double</span> pruningScoreIn) { <a class="code" href="classbab_base_1_1_bab_node.html#a3db2c380e596d213695706f9a30453b3">_pruningScore</a> = pruningScoreIn; }</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#a00e68c3242d5180d302cf5c8e1f8de2c">   90</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classbab_base_1_1_bab_node.html#a00e68c3242d5180d302cf5c8e1f8de2c">get_lower_bounds</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_bab_node.html#a7d1097fbd9ec6c1d7468eb8ca3532707">_lowerBounds</a>; }</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#a2a0922468fbfe492d9d70231c54c4bf9">   95</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classbab_base_1_1_bab_node.html#a2a0922468fbfe492d9d70231c54c4bf9">get_upper_bounds</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_bab_node.html#ad98784ad49fb92d9dc13bfb4faf1561f">_upperBounds</a>; }</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#a12e23225255660e57238ecb0820ea420">  100</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="classbab_base_1_1_bab_node.html#a12e23225255660e57238ecb0820ea420">get_ID</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_bab_node.html#a7d45d49a15377c4f03bf4c670ebb0f6b">_idNumber</a>; };</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#a63bb749d97a5a1ef6d5dde70ed9d4184">  105</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="classbab_base_1_1_bab_node.html#a63bb749d97a5a1ef6d5dde70ed9d4184">get_depth</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_bab_node.html#a8caa2f65f130c1b6f3dd6c9603974797">_depth</a>; };</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#a57bfdc7281a869bc98abe20d78eb1df6">  110</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classbab_base_1_1_bab_node.html#a57bfdc7281a869bc98abe20d78eb1df6">holds_incumbent</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_bab_node.html#a255a70d2e5d0c1e6c7320dd4ea472e78">_holdsIncumbent</a>; }</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#a70530169b115d733df41aaafd449b23e">  115</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classbab_base_1_1_bab_node.html#a70530169b115d733df41aaafd449b23e">set_holds_incumbent</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> holdsIncumbent) { <a class="code" href="classbab_base_1_1_bab_node.html#a255a70d2e5d0c1e6c7320dd4ea472e78">_holdsIncumbent</a> = holdsIncumbent; }</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#a78cfcab15536723a4e2e0ee40c316167">  120</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classbab_base_1_1_bab_node.html#a78cfcab15536723a4e2e0ee40c316167">set_upper_bound</a>(<span class="keyword">const</span> std::vector&lt;double&gt; upperBounds) { <a class="code" href="classbab_base_1_1_bab_node.html#ad98784ad49fb92d9dc13bfb4faf1561f">_upperBounds</a> = upperBounds; }</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#a2de1be347ecc66acf68ff816e2df0508">  125</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classbab_base_1_1_bab_node.html#a2de1be347ecc66acf68ff816e2df0508">set_upper_bound</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> iVar, <span class="keyword">const</span> <span class="keywordtype">double</span> value) { <a class="code" href="classbab_base_1_1_bab_node.html#ad98784ad49fb92d9dc13bfb4faf1561f">_upperBounds</a>[iVar] = value; }</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#a04b7b97d9b302cf99808e0301272d740">  130</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classbab_base_1_1_bab_node.html#a04b7b97d9b302cf99808e0301272d740">set_lower_bound</a>(<span class="keyword">const</span> std::vector&lt;double&gt; lowerBounds) { <a class="code" href="classbab_base_1_1_bab_node.html#a7d1097fbd9ec6c1d7468eb8ca3532707">_lowerBounds</a> = lowerBounds; }</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#aa0027fd7c95a73e253aeb383b9e8468a">  135</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classbab_base_1_1_bab_node.html#aa0027fd7c95a73e253aeb383b9e8468a">set_lower_bound</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> iVar, <span class="keyword">const</span> <span class="keywordtype">double</span> value) { <a class="code" href="classbab_base_1_1_bab_node.html#a7d1097fbd9ec6c1d7468eb8ca3532707">_lowerBounds</a>[iVar] = value; }</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    <span class="keyword">friend</span> std::ostream&amp; <a class="code" href="classbab_base_1_1_bab_node.html#a0af68006f01d42b3f593fe2a6709f407">operator&lt;&lt;</a>(std::ostream&amp; out, <span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a>&amp; node);</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#a7d1097fbd9ec6c1d7468eb8ca3532707">  148</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classbab_base_1_1_bab_node.html#a7d1097fbd9ec6c1d7468eb8ca3532707">_lowerBounds</a>; </div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#ad98784ad49fb92d9dc13bfb4faf1561f">  149</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classbab_base_1_1_bab_node.html#ad98784ad49fb92d9dc13bfb4faf1561f">_upperBounds</a>; </div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#a7d45d49a15377c4f03bf4c670ebb0f6b">  150</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="classbab_base_1_1_bab_node.html#a7d45d49a15377c4f03bf4c670ebb0f6b">_idNumber</a>;                    </div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#a8caa2f65f130c1b6f3dd6c9603974797">  151</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classbab_base_1_1_bab_node.html#a8caa2f65f130c1b6f3dd6c9603974797">_depth</a>;                  </div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#a3db2c380e596d213695706f9a30453b3">  152</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classbab_base_1_1_bab_node.html#a3db2c380e596d213695706f9a30453b3">_pruningScore</a>;             </div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node.html#a255a70d2e5d0c1e6c7320dd4ea472e78">  153</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classbab_base_1_1_bab_node.html#a255a70d2e5d0c1e6c7320dd4ea472e78">_holdsIncumbent</a>;             </div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;};</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;<span class="keyword">inline</span> std::ostream&amp;</div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="namespacebab_base.html#a8bfa85e64a4cf9554eec367d08122be9">  164</a></span>&#160;<a class="code" href="namespacebab_base.html#ace0cd5136bac463b84cdd69b51be9f49">operator&lt;&lt;</a>(std::ostream&amp; out, <span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a>&amp; node)</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;{</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    std::string str;</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    <span class="keywordflow">if</span> (node.<a class="code" href="classbab_base_1_1_bab_node.html#a57bfdc7281a869bc98abe20d78eb1df6">holds_incumbent</a>()) {</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;        str = <span class="stringliteral">&quot;yes&quot;</span>;</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    }</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    <span class="keywordflow">else</span> {</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;        str = <span class="stringliteral">&quot;no&quot;</span>;</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    }</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;    out &lt;&lt; <span class="stringliteral">&quot;BabNode id: &quot;</span> &lt;&lt; node.<a class="code" href="classbab_base_1_1_bab_node.html#a12e23225255660e57238ecb0820ea420">get_ID</a>() &lt;&lt; <span class="stringliteral">&quot;, pruning score: &quot;</span> &lt;&lt; node.<a class="code" href="classbab_base_1_1_bab_node.html#a7b99992c4fb98f8086a3cf09ab8d96ad">get_pruning_score</a>() &lt;&lt; <span class="stringliteral">&quot;, hold incumbent: &quot;</span> &lt;&lt; str &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; node.<a class="code" href="classbab_base_1_1_bab_node.html#a00e68c3242d5180d302cf5c8e1f8de2c">get_lower_bounds</a>().size(); i++) {</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;        out &lt;&lt; <span class="stringliteral">&quot;lb[&quot;</span> &lt;&lt; i &lt;&lt; <span class="stringliteral">&quot;]: &quot;</span> &lt;&lt; std::setprecision(16) &lt;&lt; node.<a class="code" href="classbab_base_1_1_bab_node.html#a00e68c3242d5180d302cf5c8e1f8de2c">get_lower_bounds</a>()[i] &lt;&lt; <span class="stringliteral">&quot; .. &quot;</span> &lt;&lt; node.<a class="code" href="classbab_base_1_1_bab_node.html#a2a0922468fbfe492d9d70231c54c4bf9">get_upper_bounds</a>()[i] &lt;&lt; <span class="stringliteral">&quot; :[&quot;</span> &lt;&lt; i &lt;&lt; <span class="stringliteral">&quot;]ub\n&quot;</span>;</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;    }</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    <span class="keywordflow">return</span> out;</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;}</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;}    <span class="comment">// end namespace babBase</span></div><div class="ttc" id="classbab_base_1_1_bab_node_html_a7d45d49a15377c4f03bf4c670ebb0f6b"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a7d45d49a15377c4f03bf4c670ebb0f6b">babBase::BabNode::_idNumber</a></div><div class="ttdeci">int _idNumber</div><div class="ttdef"><b>Definition:</b> babNode.h:150</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html_a04b7b97d9b302cf99808e0301272d740"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a04b7b97d9b302cf99808e0301272d740">babBase::BabNode::set_lower_bound</a></div><div class="ttdeci">void set_lower_bound(const std::vector&lt; double &gt; lowerBounds)</div><div class="ttdoc">Function for setting the whole upper bound vector. </div><div class="ttdef"><b>Definition:</b> babNode.h:130</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html_a12e23225255660e57238ecb0820ea420"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a12e23225255660e57238ecb0820ea420">babBase::BabNode::get_ID</a></div><div class="ttdeci">int get_ID() const</div><div class="ttdoc">Function for querying the node ID. </div><div class="ttdef"><b>Definition:</b> babNode.h:100</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html_a0af68006f01d42b3f593fe2a6709f407"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a0af68006f01d42b3f593fe2a6709f407">babBase::BabNode::operator&lt;&lt;</a></div><div class="ttdeci">friend std::ostream &amp; operator&lt;&lt;(std::ostream &amp;out, const BabNode &amp;node)</div><div class="ttdoc">Overloaded operator for easier output. Definition of this operator is in bab.cpp. ...</div><div class="ttdef"><b>Definition:</b> babNode.h:164</div></div>
+<div class="ttc" id="namespacebab_base_html_ace0cd5136bac463b84cdd69b51be9f49"><div class="ttname"><a href="namespacebab_base.html#ace0cd5136bac463b84cdd69b51be9f49">babBase::operator&lt;&lt;</a></div><div class="ttdeci">std::ostream &amp; operator&lt;&lt;(std::ostream &amp;os, const Bounds &amp;b)</div><div class="ttdoc">Overloaded outstream operator for nicer output. </div><div class="ttdef"><b>Definition:</b> babBounds.h:63</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html"><div class="ttname"><a href="classbab_base_1_1_bab_node.html">babBase::BabNode</a></div><div class="ttdoc">Class representing a node in the Branch-and-Bound tree. </div><div class="ttdef"><b>Definition:</b> babNode.h:35</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html_adfce8159612254b9f02fef90542b1130"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#adfce8159612254b9f02fef90542b1130">babBase::BabNode::BabNode</a></div><div class="ttdeci">BabNode()</div><div class="ttdoc">Default constructor. </div><div class="ttdef"><b>Definition:</b> babNode.h:75</div></div>
+<div class="ttc" id="namespacebab_base_html"><div class="ttname"><a href="namespacebab_base.html">babBase</a></div><div class="ttdoc">namespace holding all essentials of the babBase submodule </div></div>
 <div class="ttc" id="classbab_base_1_1_bab_node_html_a255a70d2e5d0c1e6c7320dd4ea472e78"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a255a70d2e5d0c1e6c7320dd4ea472e78">babBase::BabNode::_holdsIncumbent</a></div><div class="ttdeci">bool _holdsIncumbent</div><div class="ttdef"><b>Definition:</b> babNode.h:153</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html_a00e68c3242d5180d302cf5c8e1f8de2c"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a00e68c3242d5180d302cf5c8e1f8de2c">babBase::BabNode::get_lower_bounds</a></div><div class="ttdeci">std::vector&lt; double &gt; get_lower_bounds() const</div><div class="ttdoc">Function for querying the lower bounds on the optimization variables within this node.</div><div class="ttdef"><b>Definition:</b> babNode.h:90</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html_a00e68c3242d5180d302cf5c8e1f8de2c"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a00e68c3242d5180d302cf5c8e1f8de2c">babBase::BabNode::get_lower_bounds</a></div><div class="ttdeci">std::vector&lt; double &gt; get_lower_bounds() const</div><div class="ttdoc">Function for querying the lower bounds on the optimization variables within this node. </div><div class="ttdef"><b>Definition:</b> babNode.h:90</div></div>
 <div class="ttc" id="classbab_base_1_1_bab_node_html_a7d1097fbd9ec6c1d7468eb8ca3532707"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a7d1097fbd9ec6c1d7468eb8ca3532707">babBase::BabNode::_lowerBounds</a></div><div class="ttdeci">std::vector&lt; double &gt; _lowerBounds</div><div class="ttdef"><b>Definition:</b> babNode.h:148</div></div>
 <div class="ttc" id="classbab_base_1_1_bab_node_html_ad98784ad49fb92d9dc13bfb4faf1561f"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#ad98784ad49fb92d9dc13bfb4faf1561f">babBase::BabNode::_upperBounds</a></div><div class="ttdeci">std::vector&lt; double &gt; _upperBounds</div><div class="ttdef"><b>Definition:</b> babNode.h:149</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html_a78cfcab15536723a4e2e0ee40c316167"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a78cfcab15536723a4e2e0ee40c316167">babBase::BabNode::set_upper_bound</a></div><div class="ttdeci">void set_upper_bound(const std::vector&lt; double &gt; upperBounds)</div><div class="ttdoc">Function for setting the whole upper bound vector.</div><div class="ttdef"><b>Definition:</b> babNode.h:120</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html_a63bb749d97a5a1ef6d5dde70ed9d4184"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a63bb749d97a5a1ef6d5dde70ed9d4184">babBase::BabNode::get_depth</a></div><div class="ttdeci">int get_depth() const</div><div class="ttdoc">Function for querying the node depth.</div><div class="ttdef"><b>Definition:</b> babNode.h:105</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html_a78cfcab15536723a4e2e0ee40c316167"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a78cfcab15536723a4e2e0ee40c316167">babBase::BabNode::set_upper_bound</a></div><div class="ttdeci">void set_upper_bound(const std::vector&lt; double &gt; upperBounds)</div><div class="ttdoc">Function for setting the whole upper bound vector. </div><div class="ttdef"><b>Definition:</b> babNode.h:120</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html_a63bb749d97a5a1ef6d5dde70ed9d4184"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a63bb749d97a5a1ef6d5dde70ed9d4184">babBase::BabNode::get_depth</a></div><div class="ttdeci">int get_depth() const</div><div class="ttdoc">Function for querying the node depth. </div><div class="ttdef"><b>Definition:</b> babNode.h:105</div></div>
 <div class="ttc" id="classbab_base_1_1_bab_node_html_a8caa2f65f130c1b6f3dd6c9603974797"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a8caa2f65f130c1b6f3dd6c9603974797">babBase::BabNode::_depth</a></div><div class="ttdeci">unsigned _depth</div><div class="ttdef"><b>Definition:</b> babNode.h:151</div></div>
 <div class="ttc" id="bab_utils_8h_html"><div class="ttname"><a href="bab_utils_8h.html">babUtils.h</a></div></div>
-<div class="ttc" id="namespacebab_base_html_a8bfa85e64a4cf9554eec367d08122be9"><div class="ttname"><a href="namespacebab_base.html#a8bfa85e64a4cf9554eec367d08122be9">babBase::operator&lt;&lt;</a></div><div class="ttdeci">std::ostream &amp; operator&lt;&lt;(std::ostream &amp;out, const BabNode &amp;node)</div><div class="ttdoc">operator &lt;&lt; overloaded for BabNode for easier output</div><div class="ttdef"><b>Definition:</b> babNode.h:164</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html_a57bfdc7281a869bc98abe20d78eb1df6"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a57bfdc7281a869bc98abe20d78eb1df6">babBase::BabNode::holds_incumbent</a></div><div class="ttdeci">bool holds_incumbent() const</div><div class="ttdoc">Function obtaining information whether the node holds the incumbent.</div><div class="ttdef"><b>Definition:</b> babNode.h:110</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html_a2de1be347ecc66acf68ff816e2df0508"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a2de1be347ecc66acf68ff816e2df0508">babBase::BabNode::set_upper_bound</a></div><div class="ttdeci">void set_upper_bound(const unsigned iVar, const double value)</div><div class="ttdoc">Function for setting the whole upper bound vector.</div><div class="ttdef"><b>Definition:</b> babNode.h:125</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html_a57bfdc7281a869bc98abe20d78eb1df6"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a57bfdc7281a869bc98abe20d78eb1df6">babBase::BabNode::holds_incumbent</a></div><div class="ttdeci">bool holds_incumbent() const</div><div class="ttdoc">Function obtaining information whether the node holds the incumbent. </div><div class="ttdef"><b>Definition:</b> babNode.h:110</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html_a2de1be347ecc66acf68ff816e2df0508"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a2de1be347ecc66acf68ff816e2df0508">babBase::BabNode::set_upper_bound</a></div><div class="ttdeci">void set_upper_bound(const unsigned iVar, const double value)</div><div class="ttdoc">Function for setting the whole upper bound vector. </div><div class="ttdef"><b>Definition:</b> babNode.h:125</div></div>
 <div class="ttc" id="classbab_base_1_1_bab_node_html_af2703f93e30196364477163419e98f72"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#af2703f93e30196364477163419e98f72">babBase::BabNode::BabNode</a></div><div class="ttdeci">BabNode(double pruningScoreIn, const std::vector&lt; OptimizationVariable &gt; &amp;variablesIn, const int idIn, const unsigned depthIn, const bool holdsIncumbent)</div><div class="ttdoc">Constructor for initializing a BabNode using a vector of OptimizationVariable (each of which contains...</div><div class="ttdef"><b>Definition:</b> babNode.h:60</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html_a747d334dcf93c85f9e2bd234b875486a"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a747d334dcf93c85f9e2bd234b875486a">babBase::BabNode::set_pruning_score</a></div><div class="ttdeci">void set_pruning_score(double pruningScoreIn)</div><div class="ttdoc">Function for setting the pruning score within this node.</div><div class="ttdef"><b>Definition:</b> babNode.h:85</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html_a747d334dcf93c85f9e2bd234b875486a"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a747d334dcf93c85f9e2bd234b875486a">babBase::BabNode::set_pruning_score</a></div><div class="ttdeci">void set_pruning_score(double pruningScoreIn)</div><div class="ttdoc">Function for setting the pruning score within this node. </div><div class="ttdef"><b>Definition:</b> babNode.h:85</div></div>
 <div class="ttc" id="classbab_base_1_1_bab_node_html_a3db2c380e596d213695706f9a30453b3"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a3db2c380e596d213695706f9a30453b3">babBase::BabNode::_pruningScore</a></div><div class="ttdeci">double _pruningScore</div><div class="ttdef"><b>Definition:</b> babNode.h:152</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html_aa0027fd7c95a73e253aeb383b9e8468a"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#aa0027fd7c95a73e253aeb383b9e8468a">babBase::BabNode::set_lower_bound</a></div><div class="ttdeci">void set_lower_bound(const unsigned iVar, const double value)</div><div class="ttdoc">Function for setting the whole upper bound vector.</div><div class="ttdef"><b>Definition:</b> babNode.h:135</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html_a2a0922468fbfe492d9d70231c54c4bf9"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a2a0922468fbfe492d9d70231c54c4bf9">babBase::BabNode::get_upper_bounds</a></div><div class="ttdeci">std::vector&lt; double &gt; get_upper_bounds() const</div><div class="ttdoc">Function for querying the upper bounds on the optimization variables within this node.</div><div class="ttdef"><b>Definition:</b> babNode.h:95</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html_a62257c8715cd244acce87bbaf1345025"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a62257c8715cd244acce87bbaf1345025">babBase::BabNode::BabNode</a></div><div class="ttdeci">BabNode(double pruningScoreIn, const std::vector&lt; double &gt; &amp;lbdsIn, const std::vector&lt; double &gt; &amp;ubdsIn, const int idIn, const unsigned depthIn, const bool holdsIncumbent)</div><div class="ttdoc">Constructor for initializing a BabNode using separate vectors containing the bounds.</div><div class="ttdef"><b>Definition:</b> babNode.h:48</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html_a7b99992c4fb98f8086a3cf09ab8d96ad"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a7b99992c4fb98f8086a3cf09ab8d96ad">babBase::BabNode::get_pruning_score</a></div><div class="ttdeci">double get_pruning_score() const</div><div class="ttdoc">Function for querying the pruning score within this node.</div><div class="ttdef"><b>Definition:</b> babNode.h:80</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html_a70530169b115d733df41aaafd449b23e"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a70530169b115d733df41aaafd449b23e">babBase::BabNode::set_holds_incumbent</a></div><div class="ttdeci">void set_holds_incumbent(const bool holdsIncumbent)</div><div class="ttdoc">Function for setting the _holdsIncumbent variable.</div><div class="ttdef"><b>Definition:</b> babNode.h:115</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html_aa0027fd7c95a73e253aeb383b9e8468a"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#aa0027fd7c95a73e253aeb383b9e8468a">babBase::BabNode::set_lower_bound</a></div><div class="ttdeci">void set_lower_bound(const unsigned iVar, const double value)</div><div class="ttdoc">Function for setting the whole upper bound vector. </div><div class="ttdef"><b>Definition:</b> babNode.h:135</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html_a2a0922468fbfe492d9d70231c54c4bf9"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a2a0922468fbfe492d9d70231c54c4bf9">babBase::BabNode::get_upper_bounds</a></div><div class="ttdeci">std::vector&lt; double &gt; get_upper_bounds() const</div><div class="ttdoc">Function for querying the upper bounds on the optimization variables within this node. </div><div class="ttdef"><b>Definition:</b> babNode.h:95</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html_a62257c8715cd244acce87bbaf1345025"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a62257c8715cd244acce87bbaf1345025">babBase::BabNode::BabNode</a></div><div class="ttdeci">BabNode(double pruningScoreIn, const std::vector&lt; double &gt; &amp;lbdsIn, const std::vector&lt; double &gt; &amp;ubdsIn, const int idIn, const unsigned depthIn, const bool holdsIncumbent)</div><div class="ttdoc">Constructor for initializing a BabNode using separate vectors containing the bounds. </div><div class="ttdef"><b>Definition:</b> babNode.h:48</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html_a7b99992c4fb98f8086a3cf09ab8d96ad"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a7b99992c4fb98f8086a3cf09ab8d96ad">babBase::BabNode::get_pruning_score</a></div><div class="ttdeci">double get_pruning_score() const</div><div class="ttdoc">Function for querying the pruning score within this node. </div><div class="ttdef"><b>Definition:</b> babNode.h:80</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html_a70530169b115d733df41aaafd449b23e"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a70530169b115d733df41aaafd449b23e">babBase::BabNode::set_holds_incumbent</a></div><div class="ttdeci">void set_holds_incumbent(const bool holdsIncumbent)</div><div class="ttdoc">Function for setting the _holdsIncumbent variable. </div><div class="ttdef"><b>Definition:</b> babNode.h:115</div></div>
 <div class="ttc" id="bab_opt_var_8h_html"><div class="ttname"><a href="bab_opt_var_8h.html">babOptVar.h</a></div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
@@ -125,7 +125,7 @@ $(document).ready(function(){initNavTree('bab_node_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_ede40f663fdbaac4622f0a2d30ba279b.html">dep</a></li><li class="navelem"><a class="el" href="dir_47e169a4fe08058254fbf7964fa7bfb6.html">babbase</a></li><li class="navelem"><a class="el" href="dir_637fe8785ffc83488bdb33305770812c.html">inc</a></li><li class="navelem"><a class="el" href="bab_node_8h.html">babNode.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/bab_opt_var_8cpp.html b/doc/html/bab_opt_var_8cpp.html
index ba68706f7853e5154bee1df992a81cfb87b9db71..993b020963707dcdb91cbcc6c47ef1cf9e79df88 100644
--- a/doc/html/bab_opt_var_8cpp.html
+++ b/doc/html/bab_opt_var_8cpp.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/dep/babbase/src/babOptVar.cpp File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/dep/babbase/src/babOptVar.cpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -100,7 +100,7 @@ $(document).ready(function(){initNavTree('bab_opt_var_8cpp.html','');});
     <li class="navelem"><a class="el" href="dir_ede40f663fdbaac4622f0a2d30ba279b.html">dep</a></li><li class="navelem"><a class="el" href="dir_47e169a4fe08058254fbf7964fa7bfb6.html">babbase</a></li><li class="navelem"><a class="el" href="dir_e05b43b1ebfd1f958e3d8d3f7545ccd7.html">src</a></li><li class="navelem"><a class="el" href="bab_opt_var_8cpp.html">babOptVar.cpp</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/bab_opt_var_8h.html b/doc/html/bab_opt_var_8h.html
index 7ec9433af63e1678dd880765b468ba3226a71c38..d54962dde75735e04aa6b3e3980fd3af6e89e734 100644
--- a/doc/html/bab_opt_var_8h.html
+++ b/doc/html/bab_opt_var_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/dep/babbase/inc/babOptVar.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/dep/babbase/inc/babOptVar.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -94,27 +94,23 @@ $(document).ready(function(){initNavTree('bab_opt_var_8h.html','');});
 <div class="title">babOptVar.h File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="textblock"><code>#include &lt;iostream&gt;</code><br />
+<div class="textblock"><code>#include &quot;<a class="el" href="bab_bounds_8h_source.html">babBounds.h</a>&quot;</code><br />
+<code>#include &lt;iostream&gt;</code><br />
+<code>#include &lt;limits&gt;</code><br />
 <code>#include &lt;string&gt;</code><br />
 </div>
 <p><a href="bab_opt_var_8h_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
 Classes</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbab_base_1_1_bounds.html">babBase::Bounds</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Auxiliary struct for representing bounds on an optimization variable.  <a href="structbab_base_1_1_bounds.html#details">More...</a><br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td></tr>
 <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Class for representing an optimization variable specified by the user.  <a href="classbab_base_1_1_optimization_variable.html#details">More...</a><br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html">babBase::OptimizationVariable::ChangedBounds</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Auxiliary struct for storing changed bounds of an optimization variable.  <a href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#details">More...</a><br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
 Namespaces</h2></td></tr>
 <tr class="memitem:namespacebab_base"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacebab_base.html">babBase</a></td></tr>
-<tr class="memdesc:namespacebab_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">namespace holding all essentials of the <a class="el" href="namespacebab_base.html" title="namespace holding all essentials of the babBase submodule">babBase</a> submodule <br /></td></tr>
+<tr class="memdesc:namespacebab_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">namespace holding all essentials of the <a class="el" href="namespacebab_base.html" title="namespace holding all essentials of the babBase submodule ">babBase</a> submodule <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:namespacebab_base_1_1enums"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacebab_base_1_1enums.html">babBase::enums</a></td></tr>
 <tr class="memdesc:namespacebab_base_1_1enums"><td class="mdescLeft">&#160;</td><td class="mdescRight">namespace holding all enums used for branching and B&amp;B reporting <br /></td></tr>
@@ -137,7 +133,7 @@ Enumerations</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_ede40f663fdbaac4622f0a2d30ba279b.html">dep</a></li><li class="navelem"><a class="el" href="dir_47e169a4fe08058254fbf7964fa7bfb6.html">babbase</a></li><li class="navelem"><a class="el" href="dir_637fe8785ffc83488bdb33305770812c.html">inc</a></li><li class="navelem"><a class="el" href="bab_opt_var_8h.html">babOptVar.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/bab_opt_var_8h.js b/doc/html/bab_opt_var_8h.js
index 52c34734c3d88b5721171515613ab095c8958292..da9aaf8f4ae107a89f5a17591a5ad7993a892298 100644
--- a/doc/html/bab_opt_var_8h.js
+++ b/doc/html/bab_opt_var_8h.js
@@ -1,8 +1,6 @@
 var bab_opt_var_8h =
 [
-    [ "Bounds", "structbab_base_1_1_bounds.html", "structbab_base_1_1_bounds" ],
     [ "OptimizationVariable", "classbab_base_1_1_optimization_variable.html", "classbab_base_1_1_optimization_variable" ],
-    [ "ChangedBounds", "structbab_base_1_1_optimization_variable_1_1_changed_bounds.html", "structbab_base_1_1_optimization_variable_1_1_changed_bounds" ],
     [ "VT", "bab_opt_var_8h.html#a6b926f3dfa42fc3a3324c8b0ac99c48b", [
       [ "VT_CONTINUOUS", "bab_opt_var_8h.html#a6b926f3dfa42fc3a3324c8b0ac99c48ba0b98d296343ee5946f17e4c1c2cfa1f7", null ],
       [ "VT_BINARY", "bab_opt_var_8h.html#a6b926f3dfa42fc3a3324c8b0ac99c48baeee7e08680959528bc9a9412081d5222", null ],
diff --git a/doc/html/bab_opt_var_8h_source.html b/doc/html/bab_opt_var_8h_source.html
index 4420c2af02154ee1cc65b140280c908509f246c9..e08f7b4cb4a01fa8e13e53ea0bcde4afcae271bc 100644
--- a/doc/html/bab_opt_var_8h_source.html
+++ b/doc/html/bab_opt_var_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/dep/babbase/inc/babOptVar.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/dep/babbase/inc/babOptVar.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,50 +90,48 @@ $(document).ready(function(){initNavTree('bab_opt_var_8h_source.html','');});
 <div class="title">babOptVar.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="bab_opt_var_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file babOptVar.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing definitions related to the specification of optmization variables.</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacebab_base.html">babBase</a> {</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="keyword">namespace </span>enums {</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">   40</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">VT</a> {</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48ba0b98d296343ee5946f17e4c1c2cfa1f7">   41</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48ba0b98d296343ee5946f17e4c1c2cfa1f7">VT_CONTINUOUS</a> = 0, </div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    <span class="comment">// Assumption for the following: bounding rounds to next discrete values, CPLEX handles them as integers</span></div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48baeee7e08680959528bc9a9412081d5222">   43</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48baeee7e08680959528bc9a9412081d5222">VT_BINARY</a>, </div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48babe2d3761c7831bdffa20a737d7c7f56e">   44</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48babe2d3761c7831bdffa20a737d7c7f56e">VT_INTEGER</a> </div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;};</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;}    <span class="comment">//  end namespace enums</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bounds.html">   57</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structbab_base_1_1_bounds.html">Bounds</a> {</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bounds.html#a143d3617a4792c4ab189e372e8e0b681">   66</a></span>&#160;    <a class="code" href="structbab_base_1_1_bounds.html#a143d3617a4792c4ab189e372e8e0b681">Bounds</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> lowerIn, <span class="keyword">const</span> <span class="keywordtype">double</span> upperIn):</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        <a class="code" href="structbab_base_1_1_bounds.html#a41752124aaf238c73255f1941c861ce8">lower</a>(lowerIn), <a class="code" href="structbab_base_1_1_bounds.html#a275ca3ce07d64ce43824d7e673cfee6b">upper</a>(upperIn), <a class="code" href="structbab_base_1_1_bounds.html#a4b1a985eba004ed91b8383d2dde6224e">consistent</a>(lowerIn &lt;= upperIn) {}</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    <a class="code" href="structbab_base_1_1_bounds.html#a143d3617a4792c4ab189e372e8e0b681">Bounds</a>(<a class="code" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;&amp;)      = <span class="keywordflow">default</span>; </div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <a class="code" href="structbab_base_1_1_bounds.html#a143d3617a4792c4ab189e372e8e0b681">Bounds</a>(<span class="keyword">const</span> <a class="code" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;) = <span class="keywordflow">default</span>; </div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bounds.html#a674305fe2e7e8b2f777cb32a1b9c28f7">   77</a></span>&#160;    <span class="keyword">friend</span> std::ostream &amp;<a class="code" href="structbab_base_1_1_bounds.html#a674305fe2e7e8b2f777cb32a1b9c28f7">operator&lt;&lt;</a>(std::ostream &amp;os, <a class="code" href="structbab_base_1_1_bounds.html">Bounds</a> <span class="keyword">const</span> &amp;b)</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    {</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        os &lt;&lt; <span class="stringliteral">&quot;Lower:&quot;</span> &lt;&lt; b.<a class="code" href="structbab_base_1_1_bounds.html#a41752124aaf238c73255f1941c861ce8">lower</a> &lt;&lt; <span class="stringliteral">&quot; , Upper:&quot;</span> &lt;&lt; b.<a class="code" href="structbab_base_1_1_bounds.html#a275ca3ce07d64ce43824d7e673cfee6b">upper</a>;</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;        <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bounds.html#a41752124aaf238c73255f1941c861ce8">   81</a></span>&#160;    };</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">double</span> <a class="code" href="structbab_base_1_1_bounds.html#a41752124aaf238c73255f1941c861ce8">lower</a>;      </div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bounds.html#a275ca3ce07d64ce43824d7e673cfee6b">   84</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">double</span> <a class="code" href="structbab_base_1_1_bounds.html#a275ca3ce07d64ce43824d7e673cfee6b">upper</a>;      </div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bounds.html#a4b1a985eba004ed91b8383d2dde6224e">   85</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">double</span> <a class="code" href="structbab_base_1_1_bounds.html#a4b1a985eba004ed91b8383d2dde6224e">consistent</a>; </div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    <span class="comment">// Private declaration of copy constructor and copy assignment operator to prevent accidental use</span></div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    <a class="code" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;<a class="code" href="structbab_base_1_1_bounds.html#a415e0920d82d09ffc5798edb59e89093">operator=</a>(<span class="keyword">const</span> <a class="code" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;); </div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;};</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html">  100</a></span>&#160;<span class="keyword">class </span><a class="code" href="classbab_base_1_1_optimization_variable.html">OptimizationVariable</a> {</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#a4d4a26193d51f99dc5982c86855998a9">  112</a></span>&#160;    <a class="code" href="classbab_base_1_1_optimization_variable.html#a4d4a26193d51f99dc5982c86855998a9">OptimizationVariable</a>(<span class="keyword">const</span> <a class="code" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;variableBoundsIn, <span class="keyword">const</span> <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a> variableType, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> branchingPriority, <span class="keyword">const</span> std::string nameIn):</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#aefe950aa38fa5908dbdc2b34477c2bb2">_lowerBound</a>(variableBoundsIn.lower), <a class="code" href="classbab_base_1_1_optimization_variable.html#a31a22d0b8661eb373ce5dbd72aedc819">_upperBound</a>(variableBoundsIn.upper), <a class="code" href="classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9">_variableType</a>(variableType),</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b">_branchingPriority</a>(branchingPriority), <a class="code" href="classbab_base_1_1_optimization_variable.html#aa48efdfb65587f4dae6325bfdefd6e0a">_name</a>(nameIn), <a class="code" href="classbab_base_1_1_optimization_variable.html#a7f00570cb2e44f165e2aa3028d215bc3">_feasible</a>(variableBoundsIn.consistent)</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    {</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#a73cc92c1533194998ebee64ff851b5da">_check_discrete_bounds</a>();</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    }</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#a4edfe0fa4db6c3f25da68d3d81f48c4d">  126</a></span>&#160;    <a class="code" href="classbab_base_1_1_optimization_variable.html#a4edfe0fa4db6c3f25da68d3d81f48c4d">OptimizationVariable</a>(<span class="keyword">const</span> <a class="code" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;variableBoundsIn, <span class="keyword">const</span> <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a> variableType, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> branchingPriority):</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#aefe950aa38fa5908dbdc2b34477c2bb2">_lowerBound</a>(variableBoundsIn.lower), <a class="code" href="classbab_base_1_1_optimization_variable.html#a31a22d0b8661eb373ce5dbd72aedc819">_upperBound</a>(variableBoundsIn.upper), <a class="code" href="classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9">_variableType</a>(variableType),</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b">_branchingPriority</a>(branchingPriority), <a class="code" href="classbab_base_1_1_optimization_variable.html#aa48efdfb65587f4dae6325bfdefd6e0a">_name</a>(), <a class="code" href="classbab_base_1_1_optimization_variable.html#a7f00570cb2e44f165e2aa3028d215bc3">_feasible</a>(variableBoundsIn.consistent)</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    {</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#a73cc92c1533194998ebee64ff851b5da">_check_discrete_bounds</a>();</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    }</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#aeb89a3476698252593c116992b887320">  140</a></span>&#160;    <a class="code" href="classbab_base_1_1_optimization_variable.html#aeb89a3476698252593c116992b887320">OptimizationVariable</a>(<span class="keyword">const</span> <a class="code" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;variableBoundsIn, <span class="keyword">const</span> <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a> variableType, <span class="keyword">const</span> std::string nameIn):</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#aefe950aa38fa5908dbdc2b34477c2bb2">_lowerBound</a>(variableBoundsIn.lower), <a class="code" href="classbab_base_1_1_optimization_variable.html#a31a22d0b8661eb373ce5dbd72aedc819">_upperBound</a>(variableBoundsIn.upper), <a class="code" href="classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9">_variableType</a>(variableType),</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b">_branchingPriority</a>(1), <a class="code" href="classbab_base_1_1_optimization_variable.html#aa48efdfb65587f4dae6325bfdefd6e0a">_name</a>(nameIn), <a class="code" href="classbab_base_1_1_optimization_variable.html#a7f00570cb2e44f165e2aa3028d215bc3">_feasible</a>(variableBoundsIn.consistent)</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    {</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#a73cc92c1533194998ebee64ff851b5da">_check_discrete_bounds</a>();</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    }</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#ad14f10b3fbbfd01a61adac7114670fb4">  154</a></span>&#160;    <a class="code" href="classbab_base_1_1_optimization_variable.html#ad14f10b3fbbfd01a61adac7114670fb4">OptimizationVariable</a>(<span class="keyword">const</span> <a class="code" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;variableBoundsIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> branchingPriority, <span class="keyword">const</span> std::string nameIn):</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#aefe950aa38fa5908dbdc2b34477c2bb2">_lowerBound</a>(variableBoundsIn.lower), <a class="code" href="classbab_base_1_1_optimization_variable.html#a31a22d0b8661eb373ce5dbd72aedc819">_upperBound</a>(variableBoundsIn.upper), <a class="code" href="classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9">_variableType</a>(enums::<a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48ba0b98d296343ee5946f17e4c1c2cfa1f7">VT_CONTINUOUS</a>),</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b">_branchingPriority</a>(branchingPriority), <a class="code" href="classbab_base_1_1_optimization_variable.html#aa48efdfb65587f4dae6325bfdefd6e0a">_name</a>(nameIn), <a class="code" href="classbab_base_1_1_optimization_variable.html#a7f00570cb2e44f165e2aa3028d215bc3">_feasible</a>(variableBoundsIn.consistent)</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    {</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#a66fdae5945a00647d5dce7ba4750ae89">changedBounds</a>.<a class="code" href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#a4ecf97573227d863a88a44747125aeb0">lowerBoundChanged</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#a66fdae5945a00647d5dce7ba4750ae89">changedBounds</a>.<a class="code" href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#a4ec809446af63cecb30c9359c89cdf40">upperBoundChanged</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;    }</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#a65c124f424b4d2dcf0916bdc19fb055f">  168</a></span>&#160;    <a class="code" href="classbab_base_1_1_optimization_variable.html#a65c124f424b4d2dcf0916bdc19fb055f">OptimizationVariable</a>(<span class="keyword">const</span> <a class="code" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;variableBoundsIn, <span class="keyword">const</span> <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a> variableType):</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#aefe950aa38fa5908dbdc2b34477c2bb2">_lowerBound</a>(variableBoundsIn.lower), <a class="code" href="classbab_base_1_1_optimization_variable.html#a31a22d0b8661eb373ce5dbd72aedc819">_upperBound</a>(variableBoundsIn.upper), <a class="code" href="classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9">_variableType</a>(variableType),</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b">_branchingPriority</a>(1), <a class="code" href="classbab_base_1_1_optimization_variable.html#aa48efdfb65587f4dae6325bfdefd6e0a">_name</a>(), <a class="code" href="classbab_base_1_1_optimization_variable.html#a7f00570cb2e44f165e2aa3028d215bc3">_feasible</a>(variableBoundsIn.consistent)</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    {</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#a73cc92c1533194998ebee64ff851b5da">_check_discrete_bounds</a>();</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;    }</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#a0540b4fc9482daba6ed171e3fa50cccc">  181</a></span>&#160;    <a class="code" href="classbab_base_1_1_optimization_variable.html#a0540b4fc9482daba6ed171e3fa50cccc">OptimizationVariable</a>(<span class="keyword">const</span> <a class="code" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;variableBoundsIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> branchingPriority):</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#aefe950aa38fa5908dbdc2b34477c2bb2">_lowerBound</a>(variableBoundsIn.lower), <a class="code" href="classbab_base_1_1_optimization_variable.html#a31a22d0b8661eb373ce5dbd72aedc819">_upperBound</a>(variableBoundsIn.upper), <a class="code" href="classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9">_variableType</a>(enums::<a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48ba0b98d296343ee5946f17e4c1c2cfa1f7">VT_CONTINUOUS</a>),</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b">_branchingPriority</a>(branchingPriority), <a class="code" href="classbab_base_1_1_optimization_variable.html#aa48efdfb65587f4dae6325bfdefd6e0a">_name</a>(), <a class="code" href="classbab_base_1_1_optimization_variable.html#a7f00570cb2e44f165e2aa3028d215bc3">_feasible</a>(variableBoundsIn.consistent)</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;    {</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#a66fdae5945a00647d5dce7ba4750ae89">changedBounds</a>.<a class="code" href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#a4ecf97573227d863a88a44747125aeb0">lowerBoundChanged</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#a66fdae5945a00647d5dce7ba4750ae89">changedBounds</a>.<a class="code" href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#a4ec809446af63cecb30c9359c89cdf40">upperBoundChanged</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;    }</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#af172ca283de8b5159d998a5fe24ad697">  195</a></span>&#160;    <a class="code" href="classbab_base_1_1_optimization_variable.html#af172ca283de8b5159d998a5fe24ad697">OptimizationVariable</a>(<span class="keyword">const</span> <a class="code" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;variableBoundsIn, <span class="keyword">const</span> std::string nameIn):</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#aefe950aa38fa5908dbdc2b34477c2bb2">_lowerBound</a>(variableBoundsIn.lower), <a class="code" href="classbab_base_1_1_optimization_variable.html#a31a22d0b8661eb373ce5dbd72aedc819">_upperBound</a>(variableBoundsIn.upper), <a class="code" href="classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9">_variableType</a>(enums::<a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48ba0b98d296343ee5946f17e4c1c2cfa1f7">VT_CONTINUOUS</a>),</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b">_branchingPriority</a>(1), <a class="code" href="classbab_base_1_1_optimization_variable.html#aa48efdfb65587f4dae6325bfdefd6e0a">_name</a>(nameIn), <a class="code" href="classbab_base_1_1_optimization_variable.html#a7f00570cb2e44f165e2aa3028d215bc3">_feasible</a>(variableBoundsIn.consistent)</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;    {</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#a66fdae5945a00647d5dce7ba4750ae89">changedBounds</a>.<a class="code" href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#a4ecf97573227d863a88a44747125aeb0">lowerBoundChanged</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#a66fdae5945a00647d5dce7ba4750ae89">changedBounds</a>.<a class="code" href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#a4ec809446af63cecb30c9359c89cdf40">upperBoundChanged</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;    }</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#a70eb28c9c674d0bd7340266b04f23f1d">  208</a></span>&#160;    <a class="code" href="classbab_base_1_1_optimization_variable.html#a70eb28c9c674d0bd7340266b04f23f1d">OptimizationVariable</a>(<span class="keyword">const</span> <a class="code" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;variableBoundsIn):</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#aefe950aa38fa5908dbdc2b34477c2bb2">_lowerBound</a>(variableBoundsIn.lower), <a class="code" href="classbab_base_1_1_optimization_variable.html#a31a22d0b8661eb373ce5dbd72aedc819">_upperBound</a>(variableBoundsIn.upper), <a class="code" href="classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9">_variableType</a>(enums::<a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48ba0b98d296343ee5946f17e4c1c2cfa1f7">VT_CONTINUOUS</a>),</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b">_branchingPriority</a>(1), <a class="code" href="classbab_base_1_1_optimization_variable.html#aa48efdfb65587f4dae6325bfdefd6e0a">_name</a>(), <a class="code" href="classbab_base_1_1_optimization_variable.html#a7f00570cb2e44f165e2aa3028d215bc3">_feasible</a>(variableBoundsIn.consistent)</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;    {</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#a66fdae5945a00647d5dce7ba4750ae89">changedBounds</a>.<a class="code" href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#a4ecf97573227d863a88a44747125aeb0">lowerBoundChanged</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#a66fdae5945a00647d5dce7ba4750ae89">changedBounds</a>.<a class="code" href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#a4ec809446af63cecb30c9359c89cdf40">upperBoundChanged</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;    }</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    <a class="code" href="classbab_base_1_1_optimization_variable.html#a4d4a26193d51f99dc5982c86855998a9">OptimizationVariable</a>(<span class="keyword">const</span> <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a> variableType, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> branchingPriority, <span class="keyword">const</span> std::string nameIn);</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    <a class="code" href="classbab_base_1_1_optimization_variable.html#a4d4a26193d51f99dc5982c86855998a9">OptimizationVariable</a>(<span class="keyword">const</span> <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a> variableType, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> branchingPriority);</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    <a class="code" href="classbab_base_1_1_optimization_variable.html#a4d4a26193d51f99dc5982c86855998a9">OptimizationVariable</a>(<span class="keyword">const</span> <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a> variableType, <span class="keyword">const</span> std::string nameIn);</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;    <a class="code" href="classbab_base_1_1_optimization_variable.html#a4d4a26193d51f99dc5982c86855998a9">OptimizationVariable</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> branchingPriority, <span class="keyword">const</span> std::string nameIn);</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;    <a class="code" href="classbab_base_1_1_optimization_variable.html#a4d4a26193d51f99dc5982c86855998a9">OptimizationVariable</a>(<span class="keyword">const</span> <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a> variableType);</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;    <a class="code" href="classbab_base_1_1_optimization_variable.html#a4d4a26193d51f99dc5982c86855998a9">OptimizationVariable</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> branchingPriority);</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;    <a class="code" href="classbab_base_1_1_optimization_variable.html#a4d4a26193d51f99dc5982c86855998a9">OptimizationVariable</a>(<span class="keyword">const</span> std::string nameIn);</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;</div><div class="line"><a name="l00275"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#a38218ac69635c8134dd342d608315293">  275</a></span>&#160;    <a class="code" href="classbab_base_1_1_optimization_variable.html#a38218ac69635c8134dd342d608315293">OptimizationVariable</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_optimization_variable.html">OptimizationVariable</a> &amp;variableIn):</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#aefe950aa38fa5908dbdc2b34477c2bb2">_lowerBound</a>(variableIn.<a class="code" href="classbab_base_1_1_optimization_variable.html#aefe950aa38fa5908dbdc2b34477c2bb2">_lowerBound</a>), <a class="code" href="classbab_base_1_1_optimization_variable.html#a31a22d0b8661eb373ce5dbd72aedc819">_upperBound</a>(variableIn.<a class="code" href="classbab_base_1_1_optimization_variable.html#a31a22d0b8661eb373ce5dbd72aedc819">_upperBound</a>), <a class="code" href="classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9">_variableType</a>(variableIn.<a class="code" href="classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9">_variableType</a>),</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b">_branchingPriority</a>(variableIn.<a class="code" href="classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b">_branchingPriority</a>), <a class="code" href="classbab_base_1_1_optimization_variable.html#aa48efdfb65587f4dae6325bfdefd6e0a">_name</a>(variableIn.<a class="code" href="classbab_base_1_1_optimization_variable.html#aa48efdfb65587f4dae6325bfdefd6e0a">_name</a>), <a class="code" href="classbab_base_1_1_optimization_variable.html#a7f00570cb2e44f165e2aa3028d215bc3">_feasible</a>(variableIn.<a class="code" href="classbab_base_1_1_optimization_variable.html#a7f00570cb2e44f165e2aa3028d215bc3">_feasible</a>), <a class="code" href="classbab_base_1_1_optimization_variable.html#a66fdae5945a00647d5dce7ba4750ae89">changedBounds</a>(variableIn.<a class="code" href="classbab_base_1_1_optimization_variable.html#a66fdae5945a00647d5dce7ba4750ae89">changedBounds</a>) {}</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;</div><div class="line"><a name="l00282"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#ab76a8e196cf00c22e3a1d308fa1cd01e">  282</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#ab76a8e196cf00c22e3a1d308fa1cd01e">get_lower_bound</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#aefe950aa38fa5908dbdc2b34477c2bb2">_lowerBound</a>; }</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#ad01e5fd245987423c73719114c307a84">  287</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#ad01e5fd245987423c73719114c307a84">get_upper_bound</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#a31a22d0b8661eb373ce5dbd72aedc819">_upperBound</a>; }</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;</div><div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#aa62b8c28d96fbcb03b8890081fb31cde">  292</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#aa62b8c28d96fbcb03b8890081fb31cde">get_mid</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (<a class="code" href="classbab_base_1_1_optimization_variable.html#aefe950aa38fa5908dbdc2b34477c2bb2">_lowerBound</a> + <a class="code" href="classbab_base_1_1_optimization_variable.html#a31a22d0b8661eb373ce5dbd72aedc819">_upperBound</a>) / 2; }</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;</div><div class="line"><a name="l00297"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#a4b419fcf5d8b88a6d48f3f8beec1c509">  297</a></span>&#160;    std::string <a class="code" href="classbab_base_1_1_optimization_variable.html#a4b419fcf5d8b88a6d48f3f8beec1c509">get_name</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#aa48efdfb65587f4dae6325bfdefd6e0a">_name</a>; }</div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;</div><div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#a4b56db1c40da9ceb5f0179a7660336ce">  302</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a> <a class="code" href="classbab_base_1_1_optimization_variable.html#a4b56db1c40da9ceb5f0179a7660336ce">get_variable_type</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9">_variableType</a>; }</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#a9a19896c3ebd06e0f7a371e336d78434">  307</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#a9a19896c3ebd06e0f7a371e336d78434">get_branching_priority</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b">_branchingPriority</a>; }</div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;</div><div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#ae76b3d3ecd4427b2edd1abd06d320b41">  312</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#ae76b3d3ecd4427b2edd1abd06d320b41">has_nonempty_host_set</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#a7f00570cb2e44f165e2aa3028d215bc3">_feasible</a>; }</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;</div><div class="line"><a name="l00320"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#aeb17c4ac5c23141e9acc87c5b1453605">  320</a></span>&#160;    <span class="keyword">friend</span> std::ostream &amp;<a class="code" href="classbab_base_1_1_optimization_variable.html#aeb17c4ac5c23141e9acc87c5b1453605">operator&lt;&lt;</a>(std::ostream &amp;os, <a class="code" href="classbab_base_1_1_optimization_variable.html">OptimizationVariable</a> <span class="keyword">const</span> &amp;ov)</div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;    {</div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;        std::string typestring;</div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;        std::string leftPara  = <span class="stringliteral">&quot;{&quot;</span>;</div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;        std::string rightPara = <span class="stringliteral">&quot;}&quot;</span>;</div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;        <span class="keywordflow">switch</span> (ov.<a class="code" href="classbab_base_1_1_optimization_variable.html#a4b56db1c40da9ceb5f0179a7660336ce">get_variable_type</a>()) {</div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;            <span class="keywordflow">case</span> <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48baeee7e08680959528bc9a9412081d5222">babBase::enums::VT_BINARY</a>:</div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;                typestring = <span class="stringliteral">&quot;Binary&quot;</span>;</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;            <span class="keywordflow">case</span> <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48ba0b98d296343ee5946f17e4c1c2cfa1f7">babBase::enums::VT_CONTINUOUS</a>:</div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;                typestring = <span class="stringliteral">&quot;Continous&quot;</span>;</div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;                leftPara   = <span class="stringliteral">&quot;[&quot;</span>;</div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;                rightPara  = <span class="stringliteral">&quot;]&quot;</span>;</div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;            <span class="keywordflow">case</span> <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48babe2d3761c7831bdffa20a737d7c7f56e">babBase::enums::VT_INTEGER</a>:</div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;                typestring = <span class="stringliteral">&quot;Integer&quot;</span>;</div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;        }</div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;        os &lt;&lt; <span class="stringliteral">&quot;Name: &quot;</span> &lt;&lt; ov.<a class="code" href="classbab_base_1_1_optimization_variable.html#a4b419fcf5d8b88a6d48f3f8beec1c509">get_name</a>() &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; typestring &lt;&lt; <span class="stringliteral">&quot; Bounds: &quot;</span> &lt;&lt; leftPara &lt;&lt; ov.<a class="code" href="classbab_base_1_1_optimization_variable.html#aefe950aa38fa5908dbdc2b34477c2bb2">_lowerBound</a> &lt;&lt; <span class="stringliteral">&quot;,&quot;</span> &lt;&lt; ov.<a class="code" href="classbab_base_1_1_optimization_variable.html#a31a22d0b8661eb373ce5dbd72aedc819">_upperBound</a> &lt;&lt; rightPara;</div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;        <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;    };</div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;</div><div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html">  346</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html">ChangedBounds</a> {</div><div class="line"><a name="l00347"></a><span class="lineno"><a class="line" href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#a4ecf97573227d863a88a44747125aeb0">  347</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#a4ecf97573227d863a88a44747125aeb0">lowerBoundChanged</a>; </div><div class="line"><a name="l00348"></a><span class="lineno"><a class="line" href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#a4ec809446af63cecb30c9359c89cdf40">  348</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#a4ec809446af63cecb30c9359c89cdf40">upperBoundChanged</a>; </div><div class="line"><a name="l00349"></a><span class="lineno"><a class="line" href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#aba91eb7f14a3c3da0e12a8e77e0d98d2">  349</a></span>&#160;        <span class="keywordtype">double</span> <a class="code" href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#aba91eb7f14a3c3da0e12a8e77e0d98d2">userLowerBound</a>;  </div><div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#a29e404e5263dc06f9e24e5719a53dea8">  350</a></span>&#160;        <span class="keywordtype">double</span> <a class="code" href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#a29e404e5263dc06f9e24e5719a53dea8">userUpperBound</a>;  </div><div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;    } <a class="code" href="classbab_base_1_1_optimization_variable.html#a66fdae5945a00647d5dce7ba4750ae89">changedBounds</a>;            </div><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00358"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#aefe950aa38fa5908dbdc2b34477c2bb2">  358</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#aefe950aa38fa5908dbdc2b34477c2bb2">_lowerBound</a>;                </div><div class="line"><a name="l00359"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#a31a22d0b8661eb373ce5dbd72aedc819">  359</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#a31a22d0b8661eb373ce5dbd72aedc819">_upperBound</a>;                </div><div class="line"><a name="l00360"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9">  360</a></span>&#160;    <span class="keyword">const</span> <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a> <a class="code" href="classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9">_variableType</a>;     </div><div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b">  361</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b">_branchingPriority</a>; </div><div class="line"><a name="l00362"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#aa48efdfb65587f4dae6325bfdefd6e0a">  362</a></span>&#160;    <span class="keyword">const</span> std::string <a class="code" href="classbab_base_1_1_optimization_variable.html#aa48efdfb65587f4dae6325bfdefd6e0a">_name</a>;           </div><div class="line"><a name="l00363"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#a7f00570cb2e44f165e2aa3028d215bc3">  363</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#a7f00570cb2e44f165e2aa3028d215bc3">_feasible</a>;                    </div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;    <a class="code" href="classbab_base_1_1_optimization_variable.html">OptimizationVariable</a> &amp;<a class="code" href="classbab_base_1_1_optimization_variable.html#a51e6b16ace22f32f96a27af09358a695">operator=</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_optimization_variable.html">OptimizationVariable</a> &amp;); </div><div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#a73cc92c1533194998ebee64ff851b5da">_check_discrete_bounds</a>();</div><div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;};</div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;</div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;</div><div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;}    <span class="comment">// namespace babBase</span></div><div class="ttc" id="classbab_base_1_1_optimization_variable_html_ad01e5fd245987423c73719114c307a84"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#ad01e5fd245987423c73719114c307a84">babBase::OptimizationVariable::get_upper_bound</a></div><div class="ttdeci">double get_upper_bound() const</div><div class="ttdoc">Function for querying the upper variable bound.</div><div class="ttdef"><b>Definition:</b> babOptVar.h:287</div></div>
-<div class="ttc" id="namespacebab_base_1_1enums_html_a6b926f3dfa42fc3a3324c8b0ac99c48babe2d3761c7831bdffa20a737d7c7f56e"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48babe2d3761c7831bdffa20a737d7c7f56e">babBase::enums::VT_INTEGER</a></div><div class="ttdef"><b>Definition:</b> babOptVar.h:44</div></div>
-<div class="ttc" id="classbab_base_1_1_optimization_variable_html_a4d4a26193d51f99dc5982c86855998a9"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#a4d4a26193d51f99dc5982c86855998a9">babBase::OptimizationVariable::OptimizationVariable</a></div><div class="ttdeci">OptimizationVariable(const Bounds &amp;variableBoundsIn, const enums::VT variableType, const unsigned branchingPriority, const std::string nameIn)</div><div class="ttdoc">Constructor for the case all three optional parameters are used.</div><div class="ttdef"><b>Definition:</b> babOptVar.h:112</div></div>
-<div class="ttc" id="classbab_base_1_1_optimization_variable_html_ab76a8e196cf00c22e3a1d308fa1cd01e"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#ab76a8e196cf00c22e3a1d308fa1cd01e">babBase::OptimizationVariable::get_lower_bound</a></div><div class="ttdeci">double get_lower_bound() const</div><div class="ttdoc">Function for querying the lower variable bound.</div><div class="ttdef"><b>Definition:</b> babOptVar.h:282</div></div>
-<div class="ttc" id="classbab_base_1_1_optimization_variable_html_a4edfe0fa4db6c3f25da68d3d81f48c4d"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#a4edfe0fa4db6c3f25da68d3d81f48c4d">babBase::OptimizationVariable::OptimizationVariable</a></div><div class="ttdeci">OptimizationVariable(const Bounds &amp;variableBoundsIn, const enums::VT variableType, const unsigned branchingPriority)</div><div class="ttdoc">Constructor for the case only a variable type and a branching priority is specified in addition to th...</div><div class="ttdef"><b>Definition:</b> babOptVar.h:126</div></div>
-<div class="ttc" id="classbab_base_1_1_optimization_variable_html_a38218ac69635c8134dd342d608315293"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#a38218ac69635c8134dd342d608315293">babBase::OptimizationVariable::OptimizationVariable</a></div><div class="ttdeci">OptimizationVariable(const OptimizationVariable &amp;variableIn)</div><div class="ttdoc">Copy constructor.</div><div class="ttdef"><b>Definition:</b> babOptVar.h:275</div></div>
-<div class="ttc" id="classbab_base_1_1_optimization_variable_html_af172ca283de8b5159d998a5fe24ad697"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#af172ca283de8b5159d998a5fe24ad697">babBase::OptimizationVariable::OptimizationVariable</a></div><div class="ttdeci">OptimizationVariable(const Bounds &amp;variableBoundsIn, const std::string nameIn)</div><div class="ttdoc">Constructor for the case only a name is specified in addition to the bounds. The variable is thus ass...</div><div class="ttdef"><b>Definition:</b> babOptVar.h:195</div></div>
-<div class="ttc" id="structbab_base_1_1_bounds_html"><div class="ttname"><a href="structbab_base_1_1_bounds.html">babBase::Bounds</a></div><div class="ttdoc">Auxiliary struct for representing bounds on an optimization variable.</div><div class="ttdef"><b>Definition:</b> babOptVar.h:57</div></div>
-<div class="ttc" id="classbab_base_1_1_optimization_variable_html_ae76b3d3ecd4427b2edd1abd06d320b41"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#ae76b3d3ecd4427b2edd1abd06d320b41">babBase::OptimizationVariable::has_nonempty_host_set</a></div><div class="ttdeci">bool has_nonempty_host_set() const</div><div class="ttdoc">Function for querying whether the host set of the variable is non-empty.</div><div class="ttdef"><b>Definition:</b> babOptVar.h:312</div></div>
-<div class="ttc" id="classbab_base_1_1_optimization_variable_html_afc0c39334eb14efb70055d5cf518b0a9"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9">babBase::OptimizationVariable::_variableType</a></div><div class="ttdeci">const enums::VT _variableType</div><div class="ttdef"><b>Definition:</b> babOptVar.h:360</div></div>
-<div class="ttc" id="classbab_base_1_1_optimization_variable_html_a4b419fcf5d8b88a6d48f3f8beec1c509"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#a4b419fcf5d8b88a6d48f3f8beec1c509">babBase::OptimizationVariable::get_name</a></div><div class="ttdeci">std::string get_name() const</div><div class="ttdoc">Function for querying the variable name.</div><div class="ttdef"><b>Definition:</b> babOptVar.h:297</div></div>
-<div class="ttc" id="namespacebab_base_html"><div class="ttname"><a href="namespacebab_base.html">babBase</a></div><div class="ttdoc">namespace holding all essentials of the babBase submodule</div><div class="ttdef"><b>Definition:</b> babBrancher.h:40</div></div>
-<div class="ttc" id="namespacebab_base_1_1enums_html_a6b926f3dfa42fc3a3324c8b0ac99c48ba0b98d296343ee5946f17e4c1c2cfa1f7"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48ba0b98d296343ee5946f17e4c1c2cfa1f7">babBase::enums::VT_CONTINUOUS</a></div><div class="ttdef"><b>Definition:</b> babOptVar.h:41</div></div>
-<div class="ttc" id="structbab_base_1_1_optimization_variable_1_1_changed_bounds_html_a4ec809446af63cecb30c9359c89cdf40"><div class="ttname"><a href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#a4ec809446af63cecb30c9359c89cdf40">babBase::OptimizationVariable::ChangedBounds::upperBoundChanged</a></div><div class="ttdeci">bool upperBoundChanged</div><div class="ttdef"><b>Definition:</b> babOptVar.h:348</div></div>
-<div class="ttc" id="structbab_base_1_1_optimization_variable_1_1_changed_bounds_html_aba91eb7f14a3c3da0e12a8e77e0d98d2"><div class="ttname"><a href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#aba91eb7f14a3c3da0e12a8e77e0d98d2">babBase::OptimizationVariable::ChangedBounds::userLowerBound</a></div><div class="ttdeci">double userLowerBound</div><div class="ttdef"><b>Definition:</b> babOptVar.h:349</div></div>
-<div class="ttc" id="classbab_base_1_1_optimization_variable_html"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></div><div class="ttdoc">Class for representing an optimization variable specified by the user.</div><div class="ttdef"><b>Definition:</b> babOptVar.h:100</div></div>
-<div class="ttc" id="classbab_base_1_1_optimization_variable_html_a70eb28c9c674d0bd7340266b04f23f1d"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#a70eb28c9c674d0bd7340266b04f23f1d">babBase::OptimizationVariable::OptimizationVariable</a></div><div class="ttdeci">OptimizationVariable(const Bounds &amp;variableBoundsIn)</div><div class="ttdoc">Minimal constructor requiring only the required information. The variable is thus assumed to be conti...</div><div class="ttdef"><b>Definition:</b> babOptVar.h:208</div></div>
-<div class="ttc" id="classbab_base_1_1_optimization_variable_html_a65c124f424b4d2dcf0916bdc19fb055f"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#a65c124f424b4d2dcf0916bdc19fb055f">babBase::OptimizationVariable::OptimizationVariable</a></div><div class="ttdeci">OptimizationVariable(const Bounds &amp;variableBoundsIn, const enums::VT variableType)</div><div class="ttdoc">Constructor for the case only a variable type is specified in addition to the bounds....</div><div class="ttdef"><b>Definition:</b> babOptVar.h:168</div></div>
-<div class="ttc" id="classbab_base_1_1_optimization_variable_html_a9a19896c3ebd06e0f7a371e336d78434"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#a9a19896c3ebd06e0f7a371e336d78434">babBase::OptimizationVariable::get_branching_priority</a></div><div class="ttdeci">unsigned get_branching_priority() const</div><div class="ttdoc">Function for querying the branching priority.</div><div class="ttdef"><b>Definition:</b> babOptVar.h:307</div></div>
-<div class="ttc" id="classbab_base_1_1_optimization_variable_html_aefe950aa38fa5908dbdc2b34477c2bb2"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#aefe950aa38fa5908dbdc2b34477c2bb2">babBase::OptimizationVariable::_lowerBound</a></div><div class="ttdeci">double _lowerBound</div><div class="ttdef"><b>Definition:</b> babOptVar.h:358</div></div>
-<div class="ttc" id="structbab_base_1_1_optimization_variable_1_1_changed_bounds_html_a29e404e5263dc06f9e24e5719a53dea8"><div class="ttname"><a href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#a29e404e5263dc06f9e24e5719a53dea8">babBase::OptimizationVariable::ChangedBounds::userUpperBound</a></div><div class="ttdeci">double userUpperBound</div><div class="ttdef"><b>Definition:</b> babOptVar.h:350</div></div>
-<div class="ttc" id="classbab_base_1_1_optimization_variable_html_a7f00570cb2e44f165e2aa3028d215bc3"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#a7f00570cb2e44f165e2aa3028d215bc3">babBase::OptimizationVariable::_feasible</a></div><div class="ttdeci">bool _feasible</div><div class="ttdef"><b>Definition:</b> babOptVar.h:363</div></div>
-<div class="ttc" id="structbab_base_1_1_bounds_html_a143d3617a4792c4ab189e372e8e0b681"><div class="ttname"><a href="structbab_base_1_1_bounds.html#a143d3617a4792c4ab189e372e8e0b681">babBase::Bounds::Bounds</a></div><div class="ttdeci">Bounds(const double lowerIn, const double upperIn)</div><div class="ttdoc">Constructor, checks that specified lower bound is smaller than upper bound (this information is only ...</div><div class="ttdef"><b>Definition:</b> babOptVar.h:66</div></div>
-<div class="ttc" id="structbab_base_1_1_bounds_html_a4b1a985eba004ed91b8383d2dde6224e"><div class="ttname"><a href="structbab_base_1_1_bounds.html#a4b1a985eba004ed91b8383d2dde6224e">babBase::Bounds::consistent</a></div><div class="ttdeci">const double consistent</div><div class="ttdef"><b>Definition:</b> babOptVar.h:85</div></div>
-<div class="ttc" id="classbab_base_1_1_optimization_variable_html_ad14f10b3fbbfd01a61adac7114670fb4"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#ad14f10b3fbbfd01a61adac7114670fb4">babBase::OptimizationVariable::OptimizationVariable</a></div><div class="ttdeci">OptimizationVariable(const Bounds &amp;variableBoundsIn, const unsigned branchingPriority, const std::string nameIn)</div><div class="ttdoc">Constructor for the case only a branching priority and a name is specified in addition to the bounds....</div><div class="ttdef"><b>Definition:</b> babOptVar.h:154</div></div>
-<div class="ttc" id="structbab_base_1_1_bounds_html_a674305fe2e7e8b2f777cb32a1b9c28f7"><div class="ttname"><a href="structbab_base_1_1_bounds.html#a674305fe2e7e8b2f777cb32a1b9c28f7">babBase::Bounds::operator&lt;&lt;</a></div><div class="ttdeci">friend std::ostream &amp; operator&lt;&lt;(std::ostream &amp;os, Bounds const &amp;b)</div><div class="ttdoc">Overloaded outstream operator for nicer output.</div><div class="ttdef"><b>Definition:</b> babOptVar.h:77</div></div>
-<div class="ttc" id="structbab_base_1_1_bounds_html_a41752124aaf238c73255f1941c861ce8"><div class="ttname"><a href="structbab_base_1_1_bounds.html#a41752124aaf238c73255f1941c861ce8">babBase::Bounds::lower</a></div><div class="ttdeci">const double lower</div><div class="ttdef"><b>Definition:</b> babOptVar.h:81</div></div>
-<div class="ttc" id="structbab_base_1_1_optimization_variable_1_1_changed_bounds_html"><div class="ttname"><a href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html">babBase::OptimizationVariable::ChangedBounds</a></div><div class="ttdoc">Auxiliary struct for storing changed bounds of an optimization variable.</div><div class="ttdef"><b>Definition:</b> babOptVar.h:346</div></div>
-<div class="ttc" id="classbab_base_1_1_optimization_variable_html_a51e6b16ace22f32f96a27af09358a695"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#a51e6b16ace22f32f96a27af09358a695">babBase::OptimizationVariable::operator=</a></div><div class="ttdeci">OptimizationVariable &amp; operator=(const OptimizationVariable &amp;)</div></div>
-<div class="ttc" id="structbab_base_1_1_bounds_html_a275ca3ce07d64ce43824d7e673cfee6b"><div class="ttname"><a href="structbab_base_1_1_bounds.html#a275ca3ce07d64ce43824d7e673cfee6b">babBase::Bounds::upper</a></div><div class="ttdeci">const double upper</div><div class="ttdef"><b>Definition:</b> babOptVar.h:84</div></div>
-<div class="ttc" id="classbab_base_1_1_optimization_variable_html_a31a22d0b8661eb373ce5dbd72aedc819"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#a31a22d0b8661eb373ce5dbd72aedc819">babBase::OptimizationVariable::_upperBound</a></div><div class="ttdeci">double _upperBound</div><div class="ttdef"><b>Definition:</b> babOptVar.h:359</div></div>
-<div class="ttc" id="structbab_base_1_1_bounds_html_a415e0920d82d09ffc5798edb59e89093"><div class="ttname"><a href="structbab_base_1_1_bounds.html#a415e0920d82d09ffc5798edb59e89093">babBase::Bounds::operator=</a></div><div class="ttdeci">Bounds &amp; operator=(const Bounds &amp;)</div></div>
-<div class="ttc" id="classbab_base_1_1_optimization_variable_html_aa62b8c28d96fbcb03b8890081fb31cde"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#aa62b8c28d96fbcb03b8890081fb31cde">babBase::OptimizationVariable::get_mid</a></div><div class="ttdeci">double get_mid() const</div><div class="ttdoc">Function for querying the midpoint of the variable range.</div><div class="ttdef"><b>Definition:</b> babOptVar.h:292</div></div>
-<div class="ttc" id="classbab_base_1_1_optimization_variable_html_aeb89a3476698252593c116992b887320"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#aeb89a3476698252593c116992b887320">babBase::OptimizationVariable::OptimizationVariable</a></div><div class="ttdeci">OptimizationVariable(const Bounds &amp;variableBoundsIn, const enums::VT variableType, const std::string nameIn)</div><div class="ttdoc">Constructor for the case only a variable type and a name is specified in addition to the bounds....</div><div class="ttdef"><b>Definition:</b> babOptVar.h:140</div></div>
-<div class="ttc" id="classbab_base_1_1_optimization_variable_html_a4b56db1c40da9ceb5f0179a7660336ce"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#a4b56db1c40da9ceb5f0179a7660336ce">babBase::OptimizationVariable::get_variable_type</a></div><div class="ttdeci">enums::VT get_variable_type() const</div><div class="ttdoc">Function for querying the variable type.</div><div class="ttdef"><b>Definition:</b> babOptVar.h:302</div></div>
-<div class="ttc" id="namespacebab_base_1_1enums_html_a6b926f3dfa42fc3a3324c8b0ac99c48b"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">babBase::enums::VT</a></div><div class="ttdeci">VT</div><div class="ttdoc">Enum for representing the Variable Type of an optimization variable as specified by the user.</div><div class="ttdef"><b>Definition:</b> babOptVar.h:40</div></div>
-<div class="ttc" id="classbab_base_1_1_optimization_variable_html_a66fdae5945a00647d5dce7ba4750ae89"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#a66fdae5945a00647d5dce7ba4750ae89">babBase::OptimizationVariable::changedBounds</a></div><div class="ttdeci">struct babBase::OptimizationVariable::ChangedBounds changedBounds</div></div>
-<div class="ttc" id="classbab_base_1_1_optimization_variable_html_aa48efdfb65587f4dae6325bfdefd6e0a"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#aa48efdfb65587f4dae6325bfdefd6e0a">babBase::OptimizationVariable::_name</a></div><div class="ttdeci">const std::string _name</div><div class="ttdef"><b>Definition:</b> babOptVar.h:362</div></div>
-<div class="ttc" id="classbab_base_1_1_optimization_variable_html_a73cc92c1533194998ebee64ff851b5da"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#a73cc92c1533194998ebee64ff851b5da">babBase::OptimizationVariable::_check_discrete_bounds</a></div><div class="ttdeci">void _check_discrete_bounds()</div><div class="ttdoc">sanity check of user-given bounds on discrete variables</div><div class="ttdef"><b>Definition:</b> babOptVar.cpp:26</div></div>
-<div class="ttc" id="classbab_base_1_1_optimization_variable_html_a0540b4fc9482daba6ed171e3fa50cccc"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#a0540b4fc9482daba6ed171e3fa50cccc">babBase::OptimizationVariable::OptimizationVariable</a></div><div class="ttdeci">OptimizationVariable(const Bounds &amp;variableBoundsIn, const unsigned branchingPriority)</div><div class="ttdoc">Constructor for the case only a branching priority is specified in addition to the bounds....</div><div class="ttdef"><b>Definition:</b> babOptVar.h:181</div></div>
-<div class="ttc" id="classbab_base_1_1_optimization_variable_html_aeb17c4ac5c23141e9acc87c5b1453605"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#aeb17c4ac5c23141e9acc87c5b1453605">babBase::OptimizationVariable::operator&lt;&lt;</a></div><div class="ttdeci">friend std::ostream &amp; operator&lt;&lt;(std::ostream &amp;os, OptimizationVariable const &amp;ov)</div><div class="ttdoc">operator &lt;&lt; overloaded for Bounds for easier output</div><div class="ttdef"><b>Definition:</b> babOptVar.h:320</div></div>
-<div class="ttc" id="classbab_base_1_1_optimization_variable_html_a7b9ecadcd824e5d73ffc0358aad8d35b"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b">babBase::OptimizationVariable::_branchingPriority</a></div><div class="ttdeci">const unsigned _branchingPriority</div><div class="ttdef"><b>Definition:</b> babOptVar.h:361</div></div>
-<div class="ttc" id="structbab_base_1_1_optimization_variable_1_1_changed_bounds_html_a4ecf97573227d863a88a44747125aeb0"><div class="ttname"><a href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#a4ecf97573227d863a88a44747125aeb0">babBase::OptimizationVariable::ChangedBounds::lowerBoundChanged</a></div><div class="ttdeci">bool lowerBoundChanged</div><div class="ttdef"><b>Definition:</b> babOptVar.h:347</div></div>
-<div class="ttc" id="namespacebab_base_1_1enums_html_a6b926f3dfa42fc3a3324c8b0ac99c48baeee7e08680959528bc9a9412081d5222"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48baeee7e08680959528bc9a9412081d5222">babBase::enums::VT_BINARY</a></div><div class="ttdef"><b>Definition:</b> babOptVar.h:43</div></div>
+<a href="bab_opt_var_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file babOptVar.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing definitions related to the specification of optmization variables.</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_bounds_8h.html">babBounds.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacebab_base.html">babBase</a> {</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="keyword">namespace </span>enums {</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">   43</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">VT</a> {</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48ba0b98d296343ee5946f17e4c1c2cfa1f7">   44</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48ba0b98d296343ee5946f17e4c1c2cfa1f7">VT_CONTINUOUS</a> = 0, </div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48baeee7e08680959528bc9a9412081d5222">   45</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48baeee7e08680959528bc9a9412081d5222">VT_BINARY</a>, </div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48babe2d3761c7831bdffa20a737d7c7f56e">   46</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48babe2d3761c7831bdffa20a737d7c7f56e">VT_INTEGER</a> </div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;};</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;}    <span class="comment">//  end namespace enums</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html">   60</a></span>&#160;<span class="keyword">class </span><a class="code" href="classbab_base_1_1_optimization_variable.html">OptimizationVariable</a> {</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#a4d4a26193d51f99dc5982c86855998a9">   72</a></span>&#160;    <a class="code" href="classbab_base_1_1_optimization_variable.html#a4d4a26193d51f99dc5982c86855998a9">OptimizationVariable</a>(<span class="keyword">const</span> <a class="code" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;variableBoundsIn, <span class="keyword">const</span> <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a> variableType, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> branchingPriority, <span class="keyword">const</span> std::string nameIn):</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#acd60b14930c0261628aae974e42fe954">_bounds</a>(variableBoundsIn), <a class="code" href="classbab_base_1_1_optimization_variable.html#af0837b061723724dcb61543724f36d11">_userSpecifiedBounds</a>(variableBoundsIn), <a class="code" href="classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9">_variableType</a>(variableType),</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b">_branchingPriority</a>(branchingPriority), <a class="code" href="classbab_base_1_1_optimization_variable.html#aa48efdfb65587f4dae6325bfdefd6e0a">_name</a>(nameIn), <a class="code" href="classbab_base_1_1_optimization_variable.html#a7f00570cb2e44f165e2aa3028d215bc3">_feasible</a>(variableBoundsIn.are_consistent())</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    {</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#ace610f731e7f44a53dbf4003ffe9f8d0">_round_and_check_discrete_bounds</a>();</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    }</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#a4edfe0fa4db6c3f25da68d3d81f48c4d">   86</a></span>&#160;    <a class="code" href="classbab_base_1_1_optimization_variable.html#a4edfe0fa4db6c3f25da68d3d81f48c4d">OptimizationVariable</a>(<span class="keyword">const</span> <a class="code" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;variableBoundsIn, <span class="keyword">const</span> <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a> variableType, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> branchingPriority):</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#acd60b14930c0261628aae974e42fe954">_bounds</a>(variableBoundsIn), <a class="code" href="classbab_base_1_1_optimization_variable.html#af0837b061723724dcb61543724f36d11">_userSpecifiedBounds</a>(variableBoundsIn), <a class="code" href="classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9">_variableType</a>(variableType),</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b">_branchingPriority</a>(branchingPriority), <a class="code" href="classbab_base_1_1_optimization_variable.html#aa48efdfb65587f4dae6325bfdefd6e0a">_name</a>(), <a class="code" href="classbab_base_1_1_optimization_variable.html#a7f00570cb2e44f165e2aa3028d215bc3">_feasible</a>(variableBoundsIn.are_consistent())</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    {</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#ace610f731e7f44a53dbf4003ffe9f8d0">_round_and_check_discrete_bounds</a>();</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    }</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#aeb89a3476698252593c116992b887320">  100</a></span>&#160;    <a class="code" href="classbab_base_1_1_optimization_variable.html#aeb89a3476698252593c116992b887320">OptimizationVariable</a>(<span class="keyword">const</span> <a class="code" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;variableBoundsIn, <span class="keyword">const</span> <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a> variableType, <span class="keyword">const</span> std::string nameIn):</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#acd60b14930c0261628aae974e42fe954">_bounds</a>(variableBoundsIn), <a class="code" href="classbab_base_1_1_optimization_variable.html#af0837b061723724dcb61543724f36d11">_userSpecifiedBounds</a>(variableBoundsIn), <a class="code" href="classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9">_variableType</a>(variableType),</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b">_branchingPriority</a>(1), <a class="code" href="classbab_base_1_1_optimization_variable.html#aa48efdfb65587f4dae6325bfdefd6e0a">_name</a>(nameIn), <a class="code" href="classbab_base_1_1_optimization_variable.html#a7f00570cb2e44f165e2aa3028d215bc3">_feasible</a>(variableBoundsIn.are_consistent())</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    {</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#ace610f731e7f44a53dbf4003ffe9f8d0">_round_and_check_discrete_bounds</a>();</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    }</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#ad14f10b3fbbfd01a61adac7114670fb4">  114</a></span>&#160;    <a class="code" href="classbab_base_1_1_optimization_variable.html#ad14f10b3fbbfd01a61adac7114670fb4">OptimizationVariable</a>(<span class="keyword">const</span> <a class="code" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;variableBoundsIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> branchingPriority, <span class="keyword">const</span> std::string nameIn):</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#acd60b14930c0261628aae974e42fe954">_bounds</a>(variableBoundsIn), <a class="code" href="classbab_base_1_1_optimization_variable.html#af0837b061723724dcb61543724f36d11">_userSpecifiedBounds</a>(variableBoundsIn), <a class="code" href="classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9">_variableType</a>(enums::<a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48ba0b98d296343ee5946f17e4c1c2cfa1f7">VT_CONTINUOUS</a>),</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b">_branchingPriority</a>(branchingPriority), <a class="code" href="classbab_base_1_1_optimization_variable.html#aa48efdfb65587f4dae6325bfdefd6e0a">_name</a>(nameIn), <a class="code" href="classbab_base_1_1_optimization_variable.html#a7f00570cb2e44f165e2aa3028d215bc3">_feasible</a>(variableBoundsIn.are_consistent())</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    {}</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#a65c124f424b4d2dcf0916bdc19fb055f">  125</a></span>&#160;    <a class="code" href="classbab_base_1_1_optimization_variable.html#a65c124f424b4d2dcf0916bdc19fb055f">OptimizationVariable</a>(<span class="keyword">const</span> <a class="code" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;variableBoundsIn, <span class="keyword">const</span> <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a> variableType):</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#acd60b14930c0261628aae974e42fe954">_bounds</a>(variableBoundsIn), <a class="code" href="classbab_base_1_1_optimization_variable.html#af0837b061723724dcb61543724f36d11">_userSpecifiedBounds</a>(variableBoundsIn), <a class="code" href="classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9">_variableType</a>(variableType),</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b">_branchingPriority</a>(1), <a class="code" href="classbab_base_1_1_optimization_variable.html#aa48efdfb65587f4dae6325bfdefd6e0a">_name</a>(), <a class="code" href="classbab_base_1_1_optimization_variable.html#a7f00570cb2e44f165e2aa3028d215bc3">_feasible</a>(variableBoundsIn.are_consistent())</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    {</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#ace610f731e7f44a53dbf4003ffe9f8d0">_round_and_check_discrete_bounds</a>();</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    }</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#a0540b4fc9482daba6ed171e3fa50cccc">  138</a></span>&#160;    <a class="code" href="classbab_base_1_1_optimization_variable.html#a0540b4fc9482daba6ed171e3fa50cccc">OptimizationVariable</a>(<span class="keyword">const</span> <a class="code" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;variableBoundsIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> branchingPriority):</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#acd60b14930c0261628aae974e42fe954">_bounds</a>(variableBoundsIn), <a class="code" href="classbab_base_1_1_optimization_variable.html#af0837b061723724dcb61543724f36d11">_userSpecifiedBounds</a>(variableBoundsIn), <a class="code" href="classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9">_variableType</a>(enums::<a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48ba0b98d296343ee5946f17e4c1c2cfa1f7">VT_CONTINUOUS</a>),</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b">_branchingPriority</a>(branchingPriority), <a class="code" href="classbab_base_1_1_optimization_variable.html#aa48efdfb65587f4dae6325bfdefd6e0a">_name</a>(), <a class="code" href="classbab_base_1_1_optimization_variable.html#a7f00570cb2e44f165e2aa3028d215bc3">_feasible</a>(variableBoundsIn.are_consistent())</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    {}</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#af172ca283de8b5159d998a5fe24ad697">  149</a></span>&#160;    <a class="code" href="classbab_base_1_1_optimization_variable.html#af172ca283de8b5159d998a5fe24ad697">OptimizationVariable</a>(<span class="keyword">const</span> <a class="code" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;variableBoundsIn, <span class="keyword">const</span> std::string nameIn):</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#acd60b14930c0261628aae974e42fe954">_bounds</a>(variableBoundsIn), <a class="code" href="classbab_base_1_1_optimization_variable.html#af0837b061723724dcb61543724f36d11">_userSpecifiedBounds</a>(variableBoundsIn), <a class="code" href="classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9">_variableType</a>(enums::<a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48ba0b98d296343ee5946f17e4c1c2cfa1f7">VT_CONTINUOUS</a>),</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b">_branchingPriority</a>(1), <a class="code" href="classbab_base_1_1_optimization_variable.html#aa48efdfb65587f4dae6325bfdefd6e0a">_name</a>(nameIn), <a class="code" href="classbab_base_1_1_optimization_variable.html#a7f00570cb2e44f165e2aa3028d215bc3">_feasible</a>(variableBoundsIn.are_consistent())</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    {}</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#a70eb28c9c674d0bd7340266b04f23f1d">  159</a></span>&#160;    <a class="code" href="classbab_base_1_1_optimization_variable.html#a70eb28c9c674d0bd7340266b04f23f1d">OptimizationVariable</a>(<span class="keyword">const</span> <a class="code" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;variableBoundsIn):</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#acd60b14930c0261628aae974e42fe954">_bounds</a>(variableBoundsIn), <a class="code" href="classbab_base_1_1_optimization_variable.html#af0837b061723724dcb61543724f36d11">_userSpecifiedBounds</a>(variableBoundsIn), <a class="code" href="classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9">_variableType</a>(enums::<a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48ba0b98d296343ee5946f17e4c1c2cfa1f7">VT_CONTINUOUS</a>),</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b">_branchingPriority</a>(1), <a class="code" href="classbab_base_1_1_optimization_variable.html#aa48efdfb65587f4dae6325bfdefd6e0a">_name</a>(), <a class="code" href="classbab_base_1_1_optimization_variable.html#a7f00570cb2e44f165e2aa3028d215bc3">_feasible</a>(variableBoundsIn.are_consistent())</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;    {}</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#ade910a2427a58d6bc025d8a3e2141283">  171</a></span>&#160;    <a class="code" href="classbab_base_1_1_optimization_variable.html#ade910a2427a58d6bc025d8a3e2141283">OptimizationVariable</a>(<span class="keyword">const</span> <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a> variableType, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> branchingPriority, <span class="keyword">const</span> std::string nameIn):</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#acd60b14930c0261628aae974e42fe954">_bounds</a>(std::numeric_limits&lt;double&gt;::quiet_NaN(), std::numeric_limits&lt;double&gt;::quiet_NaN()),</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#af0837b061723724dcb61543724f36d11">_userSpecifiedBounds</a>( std::numeric_limits&lt;double&gt;::quiet_NaN(), std::numeric_limits&lt;double&gt;::quiet_NaN()),</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9">_variableType</a>(variableType), <a class="code" href="classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b">_branchingPriority</a>(branchingPriority), <a class="code" href="classbab_base_1_1_optimization_variable.html#aa48efdfb65587f4dae6325bfdefd6e0a">_name</a>(nameIn)</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    {</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#a0678dfc3a0ca4daf488e40b1a0568f66">_infer_and_set_bounds_or_throw</a>();</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    }</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#aacf17553e632e11f46ac1ff16a04e543">  185</a></span>&#160;    <a class="code" href="classbab_base_1_1_optimization_variable.html#aacf17553e632e11f46ac1ff16a04e543">OptimizationVariable</a>(<span class="keyword">const</span> <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a> variableType, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> branchingPriority):</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#acd60b14930c0261628aae974e42fe954">_bounds</a>(std::numeric_limits&lt;double&gt;::quiet_NaN(), std::numeric_limits&lt;double&gt;::quiet_NaN()),</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#af0837b061723724dcb61543724f36d11">_userSpecifiedBounds</a>( std::numeric_limits&lt;double&gt;::quiet_NaN(), std::numeric_limits&lt;double&gt;::quiet_NaN()),</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9">_variableType</a>(variableType), <a class="code" href="classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b">_branchingPriority</a>(branchingPriority), <a class="code" href="classbab_base_1_1_optimization_variable.html#aa48efdfb65587f4dae6325bfdefd6e0a">_name</a>()</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;    {</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#a0678dfc3a0ca4daf488e40b1a0568f66">_infer_and_set_bounds_or_throw</a>();</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    }</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#a3b4e892b107015b4f503a24ad9214e46">  199</a></span>&#160;    <a class="code" href="classbab_base_1_1_optimization_variable.html#a3b4e892b107015b4f503a24ad9214e46">OptimizationVariable</a>(<span class="keyword">const</span> <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a> variableType, <span class="keyword">const</span> std::string nameIn):</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#acd60b14930c0261628aae974e42fe954">_bounds</a>(std::numeric_limits&lt;double&gt;::quiet_NaN(), std::numeric_limits&lt;double&gt;::quiet_NaN()),</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#af0837b061723724dcb61543724f36d11">_userSpecifiedBounds</a>( std::numeric_limits&lt;double&gt;::quiet_NaN(), std::numeric_limits&lt;double&gt;::quiet_NaN()),</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9">_variableType</a>(variableType), <a class="code" href="classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b">_branchingPriority</a>(1), <a class="code" href="classbab_base_1_1_optimization_variable.html#aa48efdfb65587f4dae6325bfdefd6e0a">_name</a>(nameIn)</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;    {</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#a0678dfc3a0ca4daf488e40b1a0568f66">_infer_and_set_bounds_or_throw</a>();</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    }</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#a907f527439f197b391b10173a8cb763c">  212</a></span>&#160;    <a class="code" href="classbab_base_1_1_optimization_variable.html#a907f527439f197b391b10173a8cb763c">OptimizationVariable</a>(<span class="keyword">const</span> <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a> variableType):</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#acd60b14930c0261628aae974e42fe954">_bounds</a>(std::numeric_limits&lt;double&gt;::quiet_NaN(), std::numeric_limits&lt;double&gt;::quiet_NaN()),</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#af0837b061723724dcb61543724f36d11">_userSpecifiedBounds</a>( std::numeric_limits&lt;double&gt;::quiet_NaN(), std::numeric_limits&lt;double&gt;::quiet_NaN()),</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9">_variableType</a>(variableType), <a class="code" href="classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b">_branchingPriority</a>(1), <a class="code" href="classbab_base_1_1_optimization_variable.html#aa48efdfb65587f4dae6325bfdefd6e0a">_name</a>()</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;    {</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;        <a class="code" href="classbab_base_1_1_optimization_variable.html#a0678dfc3a0ca4daf488e40b1a0568f66">_infer_and_set_bounds_or_throw</a>();</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;    }</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    <a class="code" href="classbab_base_1_1_optimization_variable.html#acb8b4452071c493bfe746485f18654be">OptimizationVariable</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> branchingPriority, <span class="keyword">const</span> std::string nameIn);</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;    <a class="code" href="classbab_base_1_1_optimization_variable.html#acb8b4452071c493bfe746485f18654be">OptimizationVariable</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> branchingPriority);</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;    <a class="code" href="classbab_base_1_1_optimization_variable.html#acb8b4452071c493bfe746485f18654be">OptimizationVariable</a>(<span class="keyword">const</span> std::string nameIn);</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;    <a class="code" href="classbab_base_1_1_optimization_variable.html#acb8b4452071c493bfe746485f18654be">OptimizationVariable</a>();</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#ab76a8e196cf00c22e3a1d308fa1cd01e">  250</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#ab76a8e196cf00c22e3a1d308fa1cd01e">get_lower_bound</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#acd60b14930c0261628aae974e42fe954">_bounds</a>.<a class="code" href="structbab_base_1_1_bounds.html#ac371c3147b5737af08e1c03daf413c05">lower</a>; }</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#ad01e5fd245987423c73719114c307a84">  255</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#ad01e5fd245987423c73719114c307a84">get_upper_bound</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#acd60b14930c0261628aae974e42fe954">_bounds</a>.<a class="code" href="structbab_base_1_1_bounds.html#a9f4758be8a66b8e7b034af1f04e19d1d">upper</a>; }</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#a74e9435f5bcfa900c9304ceda8f05be5">  260</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#a74e9435f5bcfa900c9304ceda8f05be5">get_user_lower_bound</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#af0837b061723724dcb61543724f36d11">_userSpecifiedBounds</a>.<a class="code" href="structbab_base_1_1_bounds.html#ac371c3147b5737af08e1c03daf413c05">lower</a>; }</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#adf64e2c7687fce1a063b7a4a46a2e212">  265</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#adf64e2c7687fce1a063b7a4a46a2e212">get_user_upper_bound</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#af0837b061723724dcb61543724f36d11">_userSpecifiedBounds</a>.<a class="code" href="structbab_base_1_1_bounds.html#a9f4758be8a66b8e7b034af1f04e19d1d">upper</a>; }</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#aa62b8c28d96fbcb03b8890081fb31cde">  270</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#aa62b8c28d96fbcb03b8890081fb31cde">get_mid</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> 0.5 * (<a class="code" href="classbab_base_1_1_optimization_variable.html#acd60b14930c0261628aae974e42fe954">_bounds</a>.<a class="code" href="structbab_base_1_1_bounds.html#ac371c3147b5737af08e1c03daf413c05">lower</a> + <a class="code" href="classbab_base_1_1_optimization_variable.html#acd60b14930c0261628aae974e42fe954">_bounds</a>.<a class="code" href="structbab_base_1_1_bounds.html#a9f4758be8a66b8e7b034af1f04e19d1d">upper</a>); }</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;</div><div class="line"><a name="l00275"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#a4b419fcf5d8b88a6d48f3f8beec1c509">  275</a></span>&#160;    std::string <a class="code" href="classbab_base_1_1_optimization_variable.html#a4b419fcf5d8b88a6d48f3f8beec1c509">get_name</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#aa48efdfb65587f4dae6325bfdefd6e0a">_name</a>; }</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;</div><div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#a4b56db1c40da9ceb5f0179a7660336ce">  280</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a> <a class="code" href="classbab_base_1_1_optimization_variable.html#a4b56db1c40da9ceb5f0179a7660336ce">get_variable_type</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9">_variableType</a>; }</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#a9a19896c3ebd06e0f7a371e336d78434">  285</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#a9a19896c3ebd06e0f7a371e336d78434">get_branching_priority</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b">_branchingPriority</a>; }</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#ae76b3d3ecd4427b2edd1abd06d320b41">  290</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#ae76b3d3ecd4427b2edd1abd06d320b41">has_nonempty_host_set</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#a7f00570cb2e44f165e2aa3028d215bc3">_feasible</a>; }</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;</div><div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#ad2f581a8c131d5381232bce213e60823">  295</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#ad2f581a8c131d5381232bce213e60823">bounds_changed_from_user_input</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ((<a class="code" href="classbab_base_1_1_optimization_variable.html#acd60b14930c0261628aae974e42fe954">_bounds</a> != <a class="code" href="classbab_base_1_1_optimization_variable.html#af0837b061723724dcb61543724f36d11">_userSpecifiedBounds</a>) ? <span class="keyword">true</span> : <span class="keyword">false</span>); }</div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;</div><div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#a14ab145b3997ff567e535665c30d5138">  303</a></span>&#160;    <span class="keyword">friend</span> std::ostream &amp;<a class="code" href="classbab_base_1_1_optimization_variable.html#a14ab145b3997ff567e535665c30d5138">operator&lt;&lt;</a>(std::ostream &amp;os, <span class="keyword">const</span> <a class="code" href="classbab_base_1_1_optimization_variable.html">OptimizationVariable</a> &amp;ov)</div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;    {</div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;        std::string typestring;</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;        std::string leftPara  = <span class="stringliteral">&quot;{&quot;</span>;</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;        std::string rightPara = <span class="stringliteral">&quot;}&quot;</span>;</div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;        <span class="keywordflow">switch</span> (ov.<a class="code" href="classbab_base_1_1_optimization_variable.html#a4b56db1c40da9ceb5f0179a7660336ce">get_variable_type</a>()) {</div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;            <span class="keywordflow">case</span> <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48baeee7e08680959528bc9a9412081d5222">babBase::enums::VT_BINARY</a>:</div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;                typestring = <span class="stringliteral">&quot;Binary&quot;</span>;</div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;            <span class="keywordflow">case</span> <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48ba0b98d296343ee5946f17e4c1c2cfa1f7">babBase::enums::VT_CONTINUOUS</a>:</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;                typestring = <span class="stringliteral">&quot;Continous&quot;</span>;</div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;                leftPara   = <span class="stringliteral">&quot;[&quot;</span>;</div><div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;                rightPara  = <span class="stringliteral">&quot;]&quot;</span>;</div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;            <span class="keywordflow">case</span> <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48babe2d3761c7831bdffa20a737d7c7f56e">babBase::enums::VT_INTEGER</a>:</div><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;                typestring = <span class="stringliteral">&quot;Integer&quot;</span>;</div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;        }</div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;        os &lt;&lt; <span class="stringliteral">&quot;Name: &quot;</span> &lt;&lt; ov.<a class="code" href="classbab_base_1_1_optimization_variable.html#a4b419fcf5d8b88a6d48f3f8beec1c509">get_name</a>() &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; typestring &lt;&lt; <span class="stringliteral">&quot; Bounds: &quot;</span> &lt;&lt; leftPara &lt;&lt; ov.<a class="code" href="classbab_base_1_1_optimization_variable.html#acd60b14930c0261628aae974e42fe954">_bounds</a>.<a class="code" href="structbab_base_1_1_bounds.html#ac371c3147b5737af08e1c03daf413c05">lower</a> &lt;&lt; <span class="stringliteral">&quot;,&quot;</span> &lt;&lt; ov.<a class="code" href="classbab_base_1_1_optimization_variable.html#acd60b14930c0261628aae974e42fe954">_bounds</a>.<a class="code" href="structbab_base_1_1_bounds.html#a9f4758be8a66b8e7b034af1f04e19d1d">upper</a> &lt;&lt; rightPara;</div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;        <span class="keywordflow">return</span> os;</div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;    };</div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;</div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#acd60b14930c0261628aae974e42fe954">  330</a></span>&#160;    <a class="code" href="structbab_base_1_1_bounds.html">Bounds</a> <a class="code" href="classbab_base_1_1_optimization_variable.html#acd60b14930c0261628aae974e42fe954">_bounds</a>;                    </div><div class="line"><a name="l00331"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#af0837b061723724dcb61543724f36d11">  331</a></span>&#160;    <span class="keyword">const</span> <a class="code" href="structbab_base_1_1_bounds.html">Bounds</a> <a class="code" href="classbab_base_1_1_optimization_variable.html#af0837b061723724dcb61543724f36d11">_userSpecifiedBounds</a>; </div><div class="line"><a name="l00332"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9">  332</a></span>&#160;    <span class="keyword">const</span> <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a> <a class="code" href="classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9">_variableType</a>;     </div><div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b">  333</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b">_branchingPriority</a>; </div><div class="line"><a name="l00334"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#aa48efdfb65587f4dae6325bfdefd6e0a">  334</a></span>&#160;    <span class="keyword">const</span> std::string <a class="code" href="classbab_base_1_1_optimization_variable.html#aa48efdfb65587f4dae6325bfdefd6e0a">_name</a>;           </div><div class="line"><a name="l00335"></a><span class="lineno"><a class="line" href="classbab_base_1_1_optimization_variable.html#a7f00570cb2e44f165e2aa3028d215bc3">  335</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#a7f00570cb2e44f165e2aa3028d215bc3">_feasible</a>;                    </div><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#ace610f731e7f44a53dbf4003ffe9f8d0">_round_and_check_discrete_bounds</a>();</div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;</div><div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classbab_base_1_1_optimization_variable.html#a0678dfc3a0ca4daf488e40b1a0568f66">_infer_and_set_bounds_or_throw</a>();</div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;};</div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;</div><div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;}    <span class="comment">// namespace babBase</span></div><div class="ttc" id="classbab_base_1_1_optimization_variable_html_ad01e5fd245987423c73719114c307a84"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#ad01e5fd245987423c73719114c307a84">babBase::OptimizationVariable::get_upper_bound</a></div><div class="ttdeci">double get_upper_bound() const</div><div class="ttdoc">Function for querying the upper variable bound. </div><div class="ttdef"><b>Definition:</b> babOptVar.h:255</div></div>
+<div class="ttc" id="classbab_base_1_1_optimization_variable_html_ad2f581a8c131d5381232bce213e60823"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#ad2f581a8c131d5381232bce213e60823">babBase::OptimizationVariable::bounds_changed_from_user_input</a></div><div class="ttdeci">bool bounds_changed_from_user_input() const</div><div class="ttdoc">Function for querying whether the bounds have been modified (e.g., by rounding to integer values) com...</div><div class="ttdef"><b>Definition:</b> babOptVar.h:295</div></div>
+<div class="ttc" id="namespacebab_base_1_1enums_html_a6b926f3dfa42fc3a3324c8b0ac99c48babe2d3761c7831bdffa20a737d7c7f56e"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48babe2d3761c7831bdffa20a737d7c7f56e">babBase::enums::VT_INTEGER</a></div><div class="ttdef"><b>Definition:</b> babOptVar.h:46</div></div>
+<div class="ttc" id="classbab_base_1_1_optimization_variable_html_a4d4a26193d51f99dc5982c86855998a9"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#a4d4a26193d51f99dc5982c86855998a9">babBase::OptimizationVariable::OptimizationVariable</a></div><div class="ttdeci">OptimizationVariable(const Bounds &amp;variableBoundsIn, const enums::VT variableType, const unsigned branchingPriority, const std::string nameIn)</div><div class="ttdoc">Constructor for the case all three optional parameters are used. </div><div class="ttdef"><b>Definition:</b> babOptVar.h:72</div></div>
+<div class="ttc" id="classbab_base_1_1_optimization_variable_html_ab76a8e196cf00c22e3a1d308fa1cd01e"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#ab76a8e196cf00c22e3a1d308fa1cd01e">babBase::OptimizationVariable::get_lower_bound</a></div><div class="ttdeci">double get_lower_bound() const</div><div class="ttdoc">Function for querying the lower variable bound. </div><div class="ttdef"><b>Definition:</b> babOptVar.h:250</div></div>
+<div class="ttc" id="classbab_base_1_1_optimization_variable_html_adf64e2c7687fce1a063b7a4a46a2e212"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#adf64e2c7687fce1a063b7a4a46a2e212">babBase::OptimizationVariable::get_user_upper_bound</a></div><div class="ttdeci">double get_user_upper_bound() const</div><div class="ttdoc">Function for querying the upper variable bound as originally specified by the user. </div><div class="ttdef"><b>Definition:</b> babOptVar.h:265</div></div>
+<div class="ttc" id="classbab_base_1_1_optimization_variable_html_a4edfe0fa4db6c3f25da68d3d81f48c4d"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#a4edfe0fa4db6c3f25da68d3d81f48c4d">babBase::OptimizationVariable::OptimizationVariable</a></div><div class="ttdeci">OptimizationVariable(const Bounds &amp;variableBoundsIn, const enums::VT variableType, const unsigned branchingPriority)</div><div class="ttdoc">Constructor for the case only a variable type and a branching priority is specified in addition to th...</div><div class="ttdef"><b>Definition:</b> babOptVar.h:86</div></div>
+<div class="ttc" id="classbab_base_1_1_optimization_variable_html_acd60b14930c0261628aae974e42fe954"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#acd60b14930c0261628aae974e42fe954">babBase::OptimizationVariable::_bounds</a></div><div class="ttdeci">Bounds _bounds</div><div class="ttdef"><b>Definition:</b> babOptVar.h:330</div></div>
+<div class="ttc" id="classbab_base_1_1_optimization_variable_html_af172ca283de8b5159d998a5fe24ad697"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#af172ca283de8b5159d998a5fe24ad697">babBase::OptimizationVariable::OptimizationVariable</a></div><div class="ttdeci">OptimizationVariable(const Bounds &amp;variableBoundsIn, const std::string nameIn)</div><div class="ttdoc">Constructor for the case only a name is specified in addition to the bounds. The variable is thus ass...</div><div class="ttdef"><b>Definition:</b> babOptVar.h:149</div></div>
+<div class="ttc" id="structbab_base_1_1_bounds_html"><div class="ttname"><a href="structbab_base_1_1_bounds.html">babBase::Bounds</a></div><div class="ttdoc">Auxiliary struct for representing bounds on an optimization variable. </div><div class="ttdef"><b>Definition:</b> babBounds.h:32</div></div>
+<div class="ttc" id="classbab_base_1_1_optimization_variable_html_a14ab145b3997ff567e535665c30d5138"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#a14ab145b3997ff567e535665c30d5138">babBase::OptimizationVariable::operator&lt;&lt;</a></div><div class="ttdeci">friend std::ostream &amp; operator&lt;&lt;(std::ostream &amp;os, const OptimizationVariable &amp;ov)</div><div class="ttdoc">operator &lt;&lt; overloaded for Bounds for easier output </div><div class="ttdef"><b>Definition:</b> babOptVar.h:303</div></div>
+<div class="ttc" id="classbab_base_1_1_optimization_variable_html_ae76b3d3ecd4427b2edd1abd06d320b41"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#ae76b3d3ecd4427b2edd1abd06d320b41">babBase::OptimizationVariable::has_nonempty_host_set</a></div><div class="ttdeci">bool has_nonempty_host_set() const</div><div class="ttdoc">Function for querying whether the host set of the variable is non-empty. </div><div class="ttdef"><b>Definition:</b> babOptVar.h:290</div></div>
+<div class="ttc" id="classbab_base_1_1_optimization_variable_html_ade910a2427a58d6bc025d8a3e2141283"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#ade910a2427a58d6bc025d8a3e2141283">babBase::OptimizationVariable::OptimizationVariable</a></div><div class="ttdeci">OptimizationVariable(const enums::VT variableType, const unsigned branchingPriority, const std::string nameIn)</div><div class="ttdoc">Constructor for the case only a variable type, branching priority and a variable name are specified...</div><div class="ttdef"><b>Definition:</b> babOptVar.h:171</div></div>
+<div class="ttc" id="classbab_base_1_1_optimization_variable_html_a3b4e892b107015b4f503a24ad9214e46"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#a3b4e892b107015b4f503a24ad9214e46">babBase::OptimizationVariable::OptimizationVariable</a></div><div class="ttdeci">OptimizationVariable(const enums::VT variableType, const std::string nameIn)</div><div class="ttdoc">Constructor for the case only a variable type and a variable name are specified. The variable bounds ...</div><div class="ttdef"><b>Definition:</b> babOptVar.h:199</div></div>
+<div class="ttc" id="classbab_base_1_1_optimization_variable_html_afc0c39334eb14efb70055d5cf518b0a9"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9">babBase::OptimizationVariable::_variableType</a></div><div class="ttdeci">const enums::VT _variableType</div><div class="ttdef"><b>Definition:</b> babOptVar.h:332</div></div>
+<div class="ttc" id="classbab_base_1_1_optimization_variable_html_a4b419fcf5d8b88a6d48f3f8beec1c509"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#a4b419fcf5d8b88a6d48f3f8beec1c509">babBase::OptimizationVariable::get_name</a></div><div class="ttdeci">std::string get_name() const</div><div class="ttdoc">Function for querying the variable name. </div><div class="ttdef"><b>Definition:</b> babOptVar.h:275</div></div>
+<div class="ttc" id="namespacebab_base_html"><div class="ttname"><a href="namespacebab_base.html">babBase</a></div><div class="ttdoc">namespace holding all essentials of the babBase submodule </div></div>
+<div class="ttc" id="namespacebab_base_1_1enums_html_a6b926f3dfa42fc3a3324c8b0ac99c48ba0b98d296343ee5946f17e4c1c2cfa1f7"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48ba0b98d296343ee5946f17e4c1c2cfa1f7">babBase::enums::VT_CONTINUOUS</a></div><div class="ttdef"><b>Definition:</b> babOptVar.h:44</div></div>
+<div class="ttc" id="classbab_base_1_1_optimization_variable_html"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></div><div class="ttdoc">Class for representing an optimization variable specified by the user. </div><div class="ttdef"><b>Definition:</b> babOptVar.h:60</div></div>
+<div class="ttc" id="classbab_base_1_1_optimization_variable_html_acb8b4452071c493bfe746485f18654be"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#acb8b4452071c493bfe746485f18654be">babBase::OptimizationVariable::OptimizationVariable</a></div><div class="ttdeci">OptimizationVariable()</div><div class="ttdoc">Default constructor The variable bounds are not defined. This function currently just throws an excep...</div><div class="ttdef"><b>Definition:</b> babOptVar.cpp:82</div></div>
+<div class="ttc" id="classbab_base_1_1_optimization_variable_html_a70eb28c9c674d0bd7340266b04f23f1d"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#a70eb28c9c674d0bd7340266b04f23f1d">babBase::OptimizationVariable::OptimizationVariable</a></div><div class="ttdeci">OptimizationVariable(const Bounds &amp;variableBoundsIn)</div><div class="ttdoc">Minimal constructor requiring only the required information. The variable is thus assumed to be conti...</div><div class="ttdef"><b>Definition:</b> babOptVar.h:159</div></div>
+<div class="ttc" id="classbab_base_1_1_optimization_variable_html_a65c124f424b4d2dcf0916bdc19fb055f"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#a65c124f424b4d2dcf0916bdc19fb055f">babBase::OptimizationVariable::OptimizationVariable</a></div><div class="ttdeci">OptimizationVariable(const Bounds &amp;variableBoundsIn, const enums::VT variableType)</div><div class="ttdoc">Constructor for the case only a variable type is specified in addition to the bounds. The variable is used for branching, and the name is empty. </div><div class="ttdef"><b>Definition:</b> babOptVar.h:125</div></div>
+<div class="ttc" id="structbab_base_1_1_bounds_html_ac371c3147b5737af08e1c03daf413c05"><div class="ttname"><a href="structbab_base_1_1_bounds.html#ac371c3147b5737af08e1c03daf413c05">babBase::Bounds::lower</a></div><div class="ttdeci">double lower</div><div class="ttdef"><b>Definition:</b> babBounds.h:52</div></div>
+<div class="ttc" id="classbab_base_1_1_optimization_variable_html_a9a19896c3ebd06e0f7a371e336d78434"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#a9a19896c3ebd06e0f7a371e336d78434">babBase::OptimizationVariable::get_branching_priority</a></div><div class="ttdeci">unsigned get_branching_priority() const</div><div class="ttdoc">Function for querying the branching priority. </div><div class="ttdef"><b>Definition:</b> babOptVar.h:285</div></div>
+<div class="ttc" id="classbab_base_1_1_optimization_variable_html_a7f00570cb2e44f165e2aa3028d215bc3"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#a7f00570cb2e44f165e2aa3028d215bc3">babBase::OptimizationVariable::_feasible</a></div><div class="ttdeci">bool _feasible</div><div class="ttdef"><b>Definition:</b> babOptVar.h:335</div></div>
+<div class="ttc" id="classbab_base_1_1_optimization_variable_html_ad14f10b3fbbfd01a61adac7114670fb4"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#ad14f10b3fbbfd01a61adac7114670fb4">babBase::OptimizationVariable::OptimizationVariable</a></div><div class="ttdeci">OptimizationVariable(const Bounds &amp;variableBoundsIn, const unsigned branchingPriority, const std::string nameIn)</div><div class="ttdoc">Constructor for the case only a branching priority and a name is specified in addition to the bounds...</div><div class="ttdef"><b>Definition:</b> babOptVar.h:114</div></div>
+<div class="ttc" id="classbab_base_1_1_optimization_variable_html_a74e9435f5bcfa900c9304ceda8f05be5"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#a74e9435f5bcfa900c9304ceda8f05be5">babBase::OptimizationVariable::get_user_lower_bound</a></div><div class="ttdeci">double get_user_lower_bound() const</div><div class="ttdoc">Function for querying the lower variable bound as originally specified by the user. </div><div class="ttdef"><b>Definition:</b> babOptVar.h:260</div></div>
+<div class="ttc" id="classbab_base_1_1_optimization_variable_html_af0837b061723724dcb61543724f36d11"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#af0837b061723724dcb61543724f36d11">babBase::OptimizationVariable::_userSpecifiedBounds</a></div><div class="ttdeci">const Bounds _userSpecifiedBounds</div><div class="ttdef"><b>Definition:</b> babOptVar.h:331</div></div>
+<div class="ttc" id="classbab_base_1_1_optimization_variable_html_aacf17553e632e11f46ac1ff16a04e543"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#aacf17553e632e11f46ac1ff16a04e543">babBase::OptimizationVariable::OptimizationVariable</a></div><div class="ttdeci">OptimizationVariable(const enums::VT variableType, const unsigned branchingPriority)</div><div class="ttdoc">Constructor for the case only a variable type and branching priority are specified. The variable bounds are not defined. This function currently just throws an exception, except in case of a binary variable. </div><div class="ttdef"><b>Definition:</b> babOptVar.h:185</div></div>
+<div class="ttc" id="classbab_base_1_1_optimization_variable_html_aa62b8c28d96fbcb03b8890081fb31cde"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#aa62b8c28d96fbcb03b8890081fb31cde">babBase::OptimizationVariable::get_mid</a></div><div class="ttdeci">double get_mid() const</div><div class="ttdoc">Function for querying the midpoint of the variable range. </div><div class="ttdef"><b>Definition:</b> babOptVar.h:270</div></div>
+<div class="ttc" id="structbab_base_1_1_bounds_html_a9f4758be8a66b8e7b034af1f04e19d1d"><div class="ttname"><a href="structbab_base_1_1_bounds.html#a9f4758be8a66b8e7b034af1f04e19d1d">babBase::Bounds::upper</a></div><div class="ttdeci">double upper</div><div class="ttdef"><b>Definition:</b> babBounds.h:53</div></div>
+<div class="ttc" id="classbab_base_1_1_optimization_variable_html_a0678dfc3a0ca4daf488e40b1a0568f66"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#a0678dfc3a0ca4daf488e40b1a0568f66">babBase::OptimizationVariable::_infer_and_set_bounds_or_throw</a></div><div class="ttdeci">void _infer_and_set_bounds_or_throw()</div><div class="ttdoc">Auxiliary function for determining bounds in case the user did not specify any. </div><div class="ttdef"><b>Definition:</b> babOptVar.cpp:93</div></div>
+<div class="ttc" id="classbab_base_1_1_optimization_variable_html_aeb89a3476698252593c116992b887320"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#aeb89a3476698252593c116992b887320">babBase::OptimizationVariable::OptimizationVariable</a></div><div class="ttdeci">OptimizationVariable(const Bounds &amp;variableBoundsIn, const enums::VT variableType, const std::string nameIn)</div><div class="ttdoc">Constructor for the case only a variable type and a name is specified in addition to the bounds...</div><div class="ttdef"><b>Definition:</b> babOptVar.h:100</div></div>
+<div class="ttc" id="classbab_base_1_1_optimization_variable_html_a4b56db1c40da9ceb5f0179a7660336ce"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#a4b56db1c40da9ceb5f0179a7660336ce">babBase::OptimizationVariable::get_variable_type</a></div><div class="ttdeci">enums::VT get_variable_type() const</div><div class="ttdoc">Function for querying the variable type. </div><div class="ttdef"><b>Definition:</b> babOptVar.h:280</div></div>
+<div class="ttc" id="namespacebab_base_1_1enums_html_a6b926f3dfa42fc3a3324c8b0ac99c48b"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">babBase::enums::VT</a></div><div class="ttdeci">VT</div><div class="ttdoc">Enum for representing the Variable Type of an optimization variable as specified by the user...</div><div class="ttdef"><b>Definition:</b> babOptVar.h:43</div></div>
+<div class="ttc" id="classbab_base_1_1_optimization_variable_html_aa48efdfb65587f4dae6325bfdefd6e0a"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#aa48efdfb65587f4dae6325bfdefd6e0a">babBase::OptimizationVariable::_name</a></div><div class="ttdeci">const std::string _name</div><div class="ttdef"><b>Definition:</b> babOptVar.h:334</div></div>
+<div class="ttc" id="classbab_base_1_1_optimization_variable_html_a0540b4fc9482daba6ed171e3fa50cccc"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#a0540b4fc9482daba6ed171e3fa50cccc">babBase::OptimizationVariable::OptimizationVariable</a></div><div class="ttdeci">OptimizationVariable(const Bounds &amp;variableBoundsIn, const unsigned branchingPriority)</div><div class="ttdoc">Constructor for the case only a branching priority is specified in addition to the bounds...</div><div class="ttdef"><b>Definition:</b> babOptVar.h:138</div></div>
+<div class="ttc" id="bab_bounds_8h_html"><div class="ttname"><a href="bab_bounds_8h.html">babBounds.h</a></div></div>
+<div class="ttc" id="classbab_base_1_1_optimization_variable_html_a907f527439f197b391b10173a8cb763c"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#a907f527439f197b391b10173a8cb763c">babBase::OptimizationVariable::OptimizationVariable</a></div><div class="ttdeci">OptimizationVariable(const enums::VT variableType)</div><div class="ttdoc">Constructor for the case only a variable type is specified. The variable bounds are not defined...</div><div class="ttdef"><b>Definition:</b> babOptVar.h:212</div></div>
+<div class="ttc" id="classbab_base_1_1_optimization_variable_html_ace610f731e7f44a53dbf4003ffe9f8d0"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#ace610f731e7f44a53dbf4003ffe9f8d0">babBase::OptimizationVariable::_round_and_check_discrete_bounds</a></div><div class="ttdeci">void _round_and_check_discrete_bounds()</div><div class="ttdoc">sanity check of user-given bounds on discrete variables </div><div class="ttdef"><b>Definition:</b> babOptVar.cpp:26</div></div>
+<div class="ttc" id="classbab_base_1_1_optimization_variable_html_a7b9ecadcd824e5d73ffc0358aad8d35b"><div class="ttname"><a href="classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b">babBase::OptimizationVariable::_branchingPriority</a></div><div class="ttdeci">const unsigned _branchingPriority</div><div class="ttdef"><b>Definition:</b> babOptVar.h:333</div></div>
+<div class="ttc" id="namespacebab_base_1_1enums_html_a6b926f3dfa42fc3a3324c8b0ac99c48baeee7e08680959528bc9a9412081d5222"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48baeee7e08680959528bc9a9412081d5222">babBase::enums::VT_BINARY</a></div><div class="ttdef"><b>Definition:</b> babOptVar.h:45</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -142,7 +140,7 @@ $(document).ready(function(){initNavTree('bab_opt_var_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_ede40f663fdbaac4622f0a2d30ba279b.html">dep</a></li><li class="navelem"><a class="el" href="dir_47e169a4fe08058254fbf7964fa7bfb6.html">babbase</a></li><li class="navelem"><a class="el" href="dir_637fe8785ffc83488bdb33305770812c.html">inc</a></li><li class="navelem"><a class="el" href="bab_opt_var_8h.html">babOptVar.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/bab_tree_8cpp.html b/doc/html/bab_tree_8cpp.html
index b4ce9d4c809462089117468a0bce3ef9aebccbd9..8c981e766ba48b4c07268b8b1155e18b714c76ee 100644
--- a/doc/html/bab_tree_8cpp.html
+++ b/doc/html/bab_tree_8cpp.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/dep/babbase/src/babTree.cpp File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/dep/babbase/src/babTree.cpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -99,7 +99,7 @@ $(document).ready(function(){initNavTree('bab_tree_8cpp.html','');});
     <li class="navelem"><a class="el" href="dir_ede40f663fdbaac4622f0a2d30ba279b.html">dep</a></li><li class="navelem"><a class="el" href="dir_47e169a4fe08058254fbf7964fa7bfb6.html">babbase</a></li><li class="navelem"><a class="el" href="dir_e05b43b1ebfd1f958e3d8d3f7545ccd7.html">src</a></li><li class="navelem"><a class="el" href="bab_tree_8cpp.html">babTree.cpp</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/bab_tree_8h.html b/doc/html/bab_tree_8h.html
index 870d5dac4013bd61df16fd29e5b159146da6026b..eaa115c617650b55b333077fa6b77a9813cef98d 100644
--- a/doc/html/bab_tree_8h.html
+++ b/doc/html/bab_tree_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/dep/babbase/inc/babTree.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/dep/babbase/inc/babTree.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -125,7 +125,7 @@ Classes</h2></td></tr>
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
 Namespaces</h2></td></tr>
 <tr class="memitem:namespacebab_base"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacebab_base.html">babBase</a></td></tr>
-<tr class="memdesc:namespacebab_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">namespace holding all essentials of the <a class="el" href="namespacebab_base.html" title="namespace holding all essentials of the babBase submodule">babBase</a> submodule <br /></td></tr>
+<tr class="memdesc:namespacebab_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">namespace holding all essentials of the <a class="el" href="namespacebab_base.html" title="namespace holding all essentials of the babBase submodule ">babBase</a> submodule <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
@@ -148,7 +148,7 @@ Functions</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_ede40f663fdbaac4622f0a2d30ba279b.html">dep</a></li><li class="navelem"><a class="el" href="dir_47e169a4fe08058254fbf7964fa7bfb6.html">babbase</a></li><li class="navelem"><a class="el" href="dir_637fe8785ffc83488bdb33305770812c.html">inc</a></li><li class="navelem"><a class="el" href="bab_tree_8h.html">babTree.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/bab_tree_8h_source.html b/doc/html/bab_tree_8h_source.html
index 05d64b08d80538b6b511edefc36c93b8f95f6d07..27ed408b93aaf62a3732e163bd0bd94f5c2126a1 100644
--- a/doc/html/bab_tree_8h_source.html
+++ b/doc/html/bab_tree_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/dep/babbase/inc/babTree.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/dep/babbase/inc/babTree.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -91,62 +91,62 @@ $(document).ready(function(){initNavTree('bab_tree_8h_source.html','');});
 </div><!--header-->
 <div class="contents">
 <a href="bab_tree_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file babTree.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing definition of the Branch-and-Bound tree class.</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_exception_8h.html">babException.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_node_8h.html">babNode.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_utils_8h.html">babUtils.h</a>&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;algorithm&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;cassert&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;utility&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacebab_base.html">babBase</a> {</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="structbab_base_1_1_branching_history_info.html">   35</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structbab_base_1_1_branching_history_info.html">BranchingHistoryInfo</a> {</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="structbab_base_1_1_branching_history_info.html#a0692c234f3dd6f32552a5c04519fb489">   40</a></span>&#160;    <span class="keyword">enum class</span> <a class="code" href="structbab_base_1_1_branching_history_info.html#a0692c234f3dd6f32552a5c04519fb489">BranchStatus</a> {</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;        <a class="code" href="structbab_base_1_1_branching_history_info.html#a0692c234f3dd6f32552a5c04519fb489abd06fe7dd930fd19a43a4313735a71cd">wasBranchedUp</a> = 1,</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        <a class="code" href="structbab_base_1_1_branching_history_info.html#a0692c234f3dd6f32552a5c04519fb489ad2a72f428238ecf3e66348939fcc135a">wasBranchedDown</a>,</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;        <a class="code" href="structbab_base_1_1_branching_history_info.html#a0692c234f3dd6f32552a5c04519fb489a65bddc0563e821bec242c776bac8e1da">wasNotBranched</a>    <span class="comment">// this last case happens e.g. for fixed nodes that are only readded to the tree</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    } <a class="code" href="structbab_base_1_1_branching_history_info.html#af4685d27e83c66bddbd9fdc32759eb69">branchStatus</a>;       </div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="structbab_base_1_1_branching_history_info.html#a981348bf4cccba968bf48b591dc8e84c">   46</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structbab_base_1_1_branching_history_info.html#a981348bf4cccba968bf48b591dc8e84c">branchVar</a> = -1; </div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="structbab_base_1_1_branching_history_info.html#a560c2b8ee36448c5f4e458d6d50b55d1">   48</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structbab_base_1_1_branching_history_info.html#a560c2b8ee36448c5f4e458d6d50b55d1">relaxationSolutionPointForBranchingVariable</a>; </div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="structbab_base_1_1_branching_history_info.html#a7bab729fe8ba76839ead60e47fab38ce">   49</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structbab_base_1_1_branching_history_info.html#a7bab729fe8ba76839ead60e47fab38ce">parentLowerBound</a>;                            </div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="structbab_base_1_1_branching_history_info.html#a62b35e2f1c80674846d3df7e61058e33">   50</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structbab_base_1_1_branching_history_info.html#a62b35e2f1c80674846d3df7e61058e33">parentUpperBound</a>;                            </div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;};</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node_with_info.html">   64</a></span>&#160;<span class="keyword">class </span><a class="code" href="classbab_base_1_1_bab_node_with_info.html">BabNodeWithInfo</a> {</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node_with_info.html#aa8a0898f9749b240c21468fe50f7209d">   73</a></span>&#160;    <a class="code" href="classbab_base_1_1_bab_node_with_info.html#aa8a0898f9749b240c21468fe50f7209d">BabNodeWithInfo</a>(<a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a> nodeIn, <span class="keywordtype">double</span> selScoreIn):</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        <a class="code" href="classbab_base_1_1_bab_node_with_info.html#a650c3ccb6c41e2a8571992c4e711282a">node</a>(nodeIn), <a class="code" href="classbab_base_1_1_bab_node_with_info.html#a011d4cf815cb43fc30c79c47cd5e9d5f">_nodeSelectionScore</a>(selScoreIn) {}</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node_with_info.html#a650c3ccb6c41e2a8571992c4e711282a">   76</a></span>&#160;    <a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a> <a class="code" href="classbab_base_1_1_bab_node_with_info.html#a650c3ccb6c41e2a8571992c4e711282a">node</a>; </div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node_with_info.html#ab64329ad707a6b9914be851b784dba50">   81</a></span>&#160;    <span class="keyword">operator</span> <a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a> <span class="keyword">const</span>&amp;() <span class="keyword">const</span>&amp; { <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_bab_node_with_info.html#a650c3ccb6c41e2a8571992c4e711282a">node</a>; }</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node_with_info.html#aa21366a28ecacce7ee7cb231408f38b2">   86</a></span>&#160;    <span class="keyword">operator</span> <a class="code" href="classbab_base_1_1_bab_node.html">BabNode</a> &amp;&amp;() &amp;&amp; { <span class="keywordflow">return</span> std::move(<a class="code" href="classbab_base_1_1_bab_node_with_info.html#a650c3ccb6c41e2a8571992c4e711282a">node</a>); }    <span class="comment">//note the ref-qualifiers</span></div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node_with_info.html#a33be0940f65782c7845e3a5d5803e422">   91</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classbab_base_1_1_bab_node_with_info.html#a33be0940f65782c7845e3a5d5803e422">get_node_selection_score</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_bab_node_with_info.html#a011d4cf815cb43fc30c79c47cd5e9d5f">_nodeSelectionScore</a>; }</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node_with_info.html#aae390aed47e097508887f3df907c88ae">   96</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classbab_base_1_1_bab_node_with_info.html#aae390aed47e097508887f3df907c88ae">set_node_selection_score</a>(<span class="keywordtype">double</span> newScore) { <a class="code" href="classbab_base_1_1_bab_node_with_info.html#a011d4cf815cb43fc30c79c47cd5e9d5f">_nodeSelectionScore</a> = newScore; }</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node_with_info.html#afec4f9666432de68b443e4013ea5fb9e">  101</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classbab_base_1_1_bab_node_with_info.html#afec4f9666432de68b443e4013ea5fb9e">get_pruning_score</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_bab_node_with_info.html#a650c3ccb6c41e2a8571992c4e711282a">node</a>.<a class="code" href="classbab_base_1_1_bab_node.html#a7b99992c4fb98f8086a3cf09ab8d96ad">get_pruning_score</a>(); }</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node_with_info.html#a944cee8a402dd5e3d4f8a2950eae15f2">  106</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classbab_base_1_1_bab_node_with_info.html#a944cee8a402dd5e3d4f8a2950eae15f2">get_ID</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_bab_node_with_info.html#a650c3ccb6c41e2a8571992c4e711282a">node</a>.<a class="code" href="classbab_base_1_1_bab_node.html#a12e23225255660e57238ecb0820ea420">get_ID</a>(); };</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    <a class="code" href="structbab_base_1_1_branching_history_info.html">BranchingHistoryInfo</a> <a class="code" href="classbab_base_1_1_bab_node_with_info.html#ac6075518d3bd41539952567717008ada">branchingInfo</a>;</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_node_with_info.html#a011d4cf815cb43fc30c79c47cd5e9d5f">  117</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classbab_base_1_1_bab_node_with_info.html#a011d4cf815cb43fc30c79c47cd5e9d5f">_nodeSelectionScore</a>; </div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;};</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_tree.html">  134</a></span>&#160;<span class="keyword">class </span><a class="code" href="classbab_base_1_1_bab_tree.html">BabTree</a> {</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    <a class="code" href="classbab_base_1_1_bab_tree.html#a67b93250145e013dfa036ba6a4fa6d2f">BabTree</a>();</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;    <span class="comment">// Virtual Destructor for the case of inheritance. However, the compiler now will not autogenarate the other constructors. So we tell it to:</span></div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classbab_base_1_1_bab_tree.html#a55a52c08fcb2eb8a59aa7b4b770ffb03">~BabTree</a>()      = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    <a class="code" href="classbab_base_1_1_bab_tree.html#a67b93250145e013dfa036ba6a4fa6d2f">BabTree</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_tree.html">BabTree</a>&amp;) = <span class="keywordflow">default</span>;       </div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    <a class="code" href="classbab_base_1_1_bab_tree.html">BabTree</a>&amp; <a class="code" href="classbab_base_1_1_bab_tree.html#a9da3ce58d47965be2f5c5f04ad2871d9">operator=</a>(<a class="code" href="classbab_base_1_1_bab_tree.html">BabTree</a>&amp;) = <span class="keywordflow">default</span>;  </div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    <a class="code" href="classbab_base_1_1_bab_tree.html#a67b93250145e013dfa036ba6a4fa6d2f">BabTree</a>(<a class="code" href="classbab_base_1_1_bab_tree.html">BabTree</a>&amp;&amp;)           = <span class="keywordflow">default</span>;  </div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    <a class="code" href="classbab_base_1_1_bab_tree.html">BabTree</a>&amp; <a class="code" href="classbab_base_1_1_bab_tree.html#a9da3ce58d47965be2f5c5f04ad2871d9">operator=</a>(<a class="code" href="classbab_base_1_1_bab_tree.html">BabTree</a>&amp;&amp;) = <span class="keywordflow">default</span>; </div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_tree.html#aaa3be3d14946afcacef5079b3b0e812c">  151</a></span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="classbab_base_1_1_bab_tree.html#aaa3be3d14946afcacef5079b3b0e812c">get_nodes_left</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;<span class="keyword">    </span>{</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;        assert(<a class="code" href="classbab_base_1_1_bab_tree.html#aad690dae7eda8bd3e178f2341b5a1076">_nodesLeft</a> == <a class="code" href="classbab_base_1_1_bab_tree.html#a766066afd3863ebc1f9025d2e1200e20">_nodeVector</a>.size());</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_bab_tree.html#aad690dae7eda8bd3e178f2341b5a1076">_nodesLeft</a>;</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    };</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_tree.html#a931d3afc91a3c6011e9921cbfe09d0a2">  162</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classbab_base_1_1_bab_tree.html#a931d3afc91a3c6011e9921cbfe09d0a2">get_valid_id</a>() { <span class="keywordflow">return</span> ++<a class="code" href="classbab_base_1_1_bab_tree.html#aad75c9a8cb31642d172e39d64f260789">_Id</a>; };    <span class="comment">//increment should be declared atomic for parallel use!</span></div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classbab_base_1_1_bab_tree.html#afa84dcd25179e0f30408d80bd0c61f26">add_node</a>(<a class="code" href="classbab_base_1_1_bab_node_with_info.html">BabNodeWithInfo</a> node);</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;    <a class="code" href="classbab_base_1_1_bab_node_with_info.html">BabNodeWithInfo</a> <a class="code" href="classbab_base_1_1_bab_tree.html#a65ce6ec7e2b0a93efd3383a837ad3df4">pop_next_node</a>();</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classbab_base_1_1_bab_tree.html#ab57edc600a99a8da34df3d50398b7b98">get_lowest_pruning_score</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classbab_base_1_1_bab_tree.html#ab6f087487f69b67a0516d342527763ff">get_pruning_score_gap</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classbab_base_1_1_bab_tree.html#a49521ddbee9e1d7e2a2b494d2ad5c4f5">set_pruning_score_threshold</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> newThreshold);</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_tree.html#a13e9545dba8eb0600f0f41b5a682081b">  198</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classbab_base_1_1_bab_tree.html#a13e9545dba8eb0600f0f41b5a682081b">remove_has_incumbent_from_all_nodes</a>()</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    {</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;        std::for_each(<a class="code" href="classbab_base_1_1_bab_tree.html#a766066afd3863ebc1f9025d2e1200e20">_nodeVector</a>.begin(), <a class="code" href="classbab_base_1_1_bab_tree.html#a766066afd3863ebc1f9025d2e1200e20">_nodeVector</a>.end(), [](<a class="code" href="classbab_base_1_1_bab_node_with_info.html">BabNodeWithInfo</a>&amp; b) { b.node.set_holds_incumbent(<span class="keyword">false</span>); });</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;    }</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_tree.html#a41440886243ed211a6a26981daedc530">  206</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classbab_base_1_1_bab_tree.html#a41440886243ed211a6a26981daedc530">get_pruning_score_threshold</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_bab_tree.html#a724bc2173e90f9f49b452a2c60c58d93">_pruningScoreThreshold</a>; }</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_tree.html#a11f278a2cf37dd13270f754a0b77aa95">  215</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classbab_base_1_1_bab_tree.html#a11f278a2cf37dd13270f754a0b77aa95">enable_pruning_with_rel_and_abs_tolerance</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> relTol, <span class="keyword">const</span> <span class="keywordtype">double</span> absTol)</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;    {</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;        <a class="code" href="classbab_base_1_1_bab_tree.html#aa0c6599b79fd5a94a232f64cd33060de">_relPruningTol</a> = relTol;</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;        <a class="code" href="classbab_base_1_1_bab_tree.html#a90f1c73b6149b861acbded97b7221b35">_absPruningTol</a> = absTol;</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;    };</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classbab_base_1_1_bab_tree.html#a58f93eb766b7a68e9d88699e267fdd0e">set_node_selection_strategy</a>(<a class="code" href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5">enums::NS</a> nodeSelectionStrategyType);</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classbab_base_1_1_bab_tree.html#a0d63f7d99cc24bac3d632d53517939bf">delete_element</a>(std::vector&lt;BabNodeWithInfo&gt;::iterator targetNodeIt);</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classbab_base_1_1_bab_tree.html#a9dd406c60d514814311c4c9d4d8bd83e">_fathom_nodes_exceeding_pruning_threshold</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> newThreshold, <span class="keyword">const</span> <span class="keywordtype">double</span> relTol, <span class="keyword">const</span> <span class="keywordtype">double</span> absTol);</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_tree.html#a724bc2173e90f9f49b452a2c60c58d93">  244</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classbab_base_1_1_bab_tree.html#a724bc2173e90f9f49b452a2c60c58d93">_pruningScoreThreshold</a>; </div><div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_tree.html#aa0c6599b79fd5a94a232f64cd33060de">  246</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classbab_base_1_1_bab_tree.html#aa0c6599b79fd5a94a232f64cd33060de">_relPruningTol</a> = 0.0; </div><div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_tree.html#a90f1c73b6149b861acbded97b7221b35">  247</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classbab_base_1_1_bab_tree.html#a90f1c73b6149b861acbded97b7221b35">_absPruningTol</a> = 0.0; </div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_tree.html#aad690dae7eda8bd3e178f2341b5a1076">  249</a></span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="classbab_base_1_1_bab_tree.html#aad690dae7eda8bd3e178f2341b5a1076">_nodesLeft</a>; </div><div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_tree.html#aad75c9a8cb31642d172e39d64f260789">  250</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classbab_base_1_1_bab_tree.html#aad75c9a8cb31642d172e39d64f260789">_Id</a>;      </div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;    <span class="comment">// Function has to accept a vector of BabNodes and return a const_iterator to the selected node. No assumption can be made about the ordering of the passed vector, except that the .front() entry is the one with the largest nodeSelectionScore</span></div><div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_tree.html#ab7c26ded9e7755b0252554a73c2746be">  254</a></span>&#160;    std::function&lt;std::vector&lt;BabNodeWithInfo&gt;::const_iterator(<span class="keyword">const</span> std::vector&lt;BabNodeWithInfo&gt;&amp; nodeVectorIN)&gt; <a class="code" href="classbab_base_1_1_bab_tree.html#ab7c26ded9e7755b0252554a73c2746be">_select_node</a>; </div><div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="classbab_base_1_1_bab_tree.html#a766066afd3863ebc1f9025d2e1200e20">  255</a></span>&#160;    std::vector&lt;BabNodeWithInfo&gt; <a class="code" href="classbab_base_1_1_bab_tree.html#a766066afd3863ebc1f9025d2e1200e20">_nodeVector</a>;                                                                                   </div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;};</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;std::vector&lt;BabNodeWithInfo&gt;::const_iterator <a class="code" href="namespacebab_base.html#a7023aaaa7bf22bf1c3717cfa070f4e69">select_node_highest_priority</a>(<span class="keyword">const</span> std::vector&lt;BabNodeWithInfo&gt;&amp; nodeVectorIN);</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;std::vector&lt;BabNodeWithInfo&gt;::const_iterator <a class="code" href="namespacebab_base.html#a388a4423133a99ec8703695a463b6c47">select_node_breadthfirst</a>(<span class="keyword">const</span> std::vector&lt;BabNodeWithInfo&gt;&amp; nodeVectorIN);</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;std::vector&lt;BabNodeWithInfo&gt;::const_iterator <a class="code" href="namespacebab_base.html#a676088e39a43b256c799d75f1eb9e26f">select_node_depthfirst</a>(<span class="keyword">const</span> std::vector&lt;BabNodeWithInfo&gt;&amp; nodeVectorIN);</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;</div><div class="line"><a name="l00275"></a><span class="lineno"><a class="line" href="structbab_base_1_1_node_priority_comparator.html">  275</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structbab_base_1_1_node_priority_comparator.html">NodePriorityComparator</a> {</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="structbab_base_1_1_node_priority_comparator.html#a046f2155e1e85bd556686c212ff44506">  284</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structbab_base_1_1_node_priority_comparator.html#a046f2155e1e85bd556686c212ff44506">operator()</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node_with_info.html">BabNodeWithInfo</a>&amp; a, <span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node_with_info.html">BabNodeWithInfo</a>&amp; b)<span class="keyword"> const</span></div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;<span class="keyword">    </span>{</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;        <span class="keywordflow">return</span> a.<a class="code" href="classbab_base_1_1_bab_node_with_info.html#a33be0940f65782c7845e3a5d5803e422">get_node_selection_score</a>() &lt; b.<a class="code" href="classbab_base_1_1_bab_node_with_info.html#a33be0940f65782c7845e3a5d5803e422">get_node_selection_score</a>();</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;    };</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;};</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;</div><div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="structbab_base_1_1_pruning_score_comparator.html">  298</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structbab_base_1_1_pruning_score_comparator.html">PruningScoreComparator</a> {</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno"><a class="line" href="structbab_base_1_1_pruning_score_comparator.html#a32adb58b8c8c680fbb87c9837ecf88c9">  307</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structbab_base_1_1_pruning_score_comparator.html#a32adb58b8c8c680fbb87c9837ecf88c9">operator()</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node_with_info.html">BabNodeWithInfo</a>&amp; a, <span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node_with_info.html">BabNodeWithInfo</a>&amp; b)<span class="keyword"> const</span></div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;<span class="keyword">    </span>{</div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;        <span class="keywordflow">return</span> a.<a class="code" href="classbab_base_1_1_bab_node_with_info.html#afec4f9666432de68b443e4013ea5fb9e">get_pruning_score</a>() &lt; b.<a class="code" href="classbab_base_1_1_bab_node_with_info.html#afec4f9666432de68b443e4013ea5fb9e">get_pruning_score</a>();</div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;    };</div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;};</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;</div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;}    <span class="comment">//end namespace babBase</span></div><div class="ttc" id="classbab_base_1_1_bab_tree_html_aa0c6599b79fd5a94a232f64cd33060de"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#aa0c6599b79fd5a94a232f64cd33060de">babBase::BabTree::_relPruningTol</a></div><div class="ttdeci">double _relPruningTol</div><div class="ttdef"><b>Definition:</b> babTree.h:246</div></div>
-<div class="ttc" id="structbab_base_1_1_node_priority_comparator_html_a046f2155e1e85bd556686c212ff44506"><div class="ttname"><a href="structbab_base_1_1_node_priority_comparator.html#a046f2155e1e85bd556686c212ff44506">babBase::NodePriorityComparator::operator()</a></div><div class="ttdeci">bool operator()(const BabNodeWithInfo &amp;a, const BabNodeWithInfo &amp;b) const</div><div class="ttdoc">() operator for comparing</div><div class="ttdef"><b>Definition:</b> babTree.h:284</div></div>
-<div class="ttc" id="namespacebab_base_1_1enums_html_a02e97c49bffe195071c83aa097a8dde5"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5">babBase::enums::NS</a></div><div class="ttdeci">NS</div><div class="ttdoc">Enum for selecting the Node Selection heuristic.</div><div class="ttdef"><b>Definition:</b> babUtils.h:143</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html_a12e23225255660e57238ecb0820ea420"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a12e23225255660e57238ecb0820ea420">babBase::BabNode::get_ID</a></div><div class="ttdeci">int get_ID() const</div><div class="ttdoc">Function for querying the node ID.</div><div class="ttdef"><b>Definition:</b> babNode.h:100</div></div>
-<div class="ttc" id="structbab_base_1_1_pruning_score_comparator_html"><div class="ttname"><a href="structbab_base_1_1_pruning_score_comparator.html">babBase::PruningScoreComparator</a></div><div class="ttdoc">Functor for comparing pruning scores.</div><div class="ttdef"><b>Definition:</b> babTree.h:298</div></div>
+<div class="ttc" id="structbab_base_1_1_node_priority_comparator_html_a046f2155e1e85bd556686c212ff44506"><div class="ttname"><a href="structbab_base_1_1_node_priority_comparator.html#a046f2155e1e85bd556686c212ff44506">babBase::NodePriorityComparator::operator()</a></div><div class="ttdeci">bool operator()(const BabNodeWithInfo &amp;a, const BabNodeWithInfo &amp;b) const</div><div class="ttdoc">() operator for comparing </div><div class="ttdef"><b>Definition:</b> babTree.h:284</div></div>
+<div class="ttc" id="namespacebab_base_1_1enums_html_a02e97c49bffe195071c83aa097a8dde5"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5">babBase::enums::NS</a></div><div class="ttdeci">NS</div><div class="ttdoc">Enum for selecting the Node Selection heuristic. </div><div class="ttdef"><b>Definition:</b> babUtils.h:143</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html_a12e23225255660e57238ecb0820ea420"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a12e23225255660e57238ecb0820ea420">babBase::BabNode::get_ID</a></div><div class="ttdeci">int get_ID() const</div><div class="ttdoc">Function for querying the node ID. </div><div class="ttdef"><b>Definition:</b> babNode.h:100</div></div>
+<div class="ttc" id="structbab_base_1_1_pruning_score_comparator_html"><div class="ttname"><a href="structbab_base_1_1_pruning_score_comparator.html">babBase::PruningScoreComparator</a></div><div class="ttdoc">Functor for comparing pruning scores. </div><div class="ttdef"><b>Definition:</b> babTree.h:298</div></div>
 <div class="ttc" id="structbab_base_1_1_branching_history_info_html_a0692c234f3dd6f32552a5c04519fb489a65bddc0563e821bec242c776bac8e1da"><div class="ttname"><a href="structbab_base_1_1_branching_history_info.html#a0692c234f3dd6f32552a5c04519fb489a65bddc0563e821bec242c776bac8e1da">babBase::BranchingHistoryInfo::BranchStatus::wasNotBranched</a></div></div>
 <div class="ttc" id="bab_exception_8h_html"><div class="ttname"><a href="bab_exception_8h.html">babException.h</a></div></div>
 <div class="ttc" id="classbab_base_1_1_bab_tree_html_aaa3be3d14946afcacef5079b3b0e812c"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#aaa3be3d14946afcacef5079b3b0e812c">babBase::BabTree::get_nodes_left</a></div><div class="ttdeci">size_t get_nodes_left() const</div><div class="ttdoc">Returns the number of nodes left in the tree. The private member _nodesLeft is used instead of nodeVe...</div><div class="ttdef"><b>Definition:</b> babTree.h:151</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html"><div class="ttname"><a href="classbab_base_1_1_bab_node.html">babBase::BabNode</a></div><div class="ttdoc">Class representing a node in the Branch-and-Bound tree.</div><div class="ttdef"><b>Definition:</b> babNode.h:35</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html"><div class="ttname"><a href="classbab_base_1_1_bab_node.html">babBase::BabNode</a></div><div class="ttdoc">Class representing a node in the Branch-and-Bound tree. </div><div class="ttdef"><b>Definition:</b> babNode.h:35</div></div>
 <div class="ttc" id="classbab_base_1_1_bab_tree_html_a58f93eb766b7a68e9d88699e267fdd0e"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#a58f93eb766b7a68e9d88699e267fdd0e">babBase::BabTree::set_node_selection_strategy</a></div><div class="ttdeci">void set_node_selection_strategy(enums::NS nodeSelectionStrategyType)</div><div class="ttdoc">Allows to set the node selection strategy. Default is to return the node with largest node selection ...</div><div class="ttdef"><b>Definition:</b> babTree.cpp:171</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_with_info_html_ac6075518d3bd41539952567717008ada"><div class="ttname"><a href="classbab_base_1_1_bab_node_with_info.html#ac6075518d3bd41539952567717008ada">babBase::BabNodeWithInfo::branchingInfo</a></div><div class="ttdeci">BranchingHistoryInfo branchingInfo</div><div class="ttdoc">Object storing the branching history.</div><div class="ttdef"><b>Definition:</b> babTree.h:106</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_with_info_html_ac6075518d3bd41539952567717008ada"><div class="ttname"><a href="classbab_base_1_1_bab_node_with_info.html#ac6075518d3bd41539952567717008ada">babBase::BabNodeWithInfo::branchingInfo</a></div><div class="ttdeci">BranchingHistoryInfo branchingInfo</div><div class="ttdoc">Object storing the branching history. </div><div class="ttdef"><b>Definition:</b> babTree.h:106</div></div>
 <div class="ttc" id="structbab_base_1_1_branching_history_info_html_af4685d27e83c66bddbd9fdc32759eb69"><div class="ttname"><a href="structbab_base_1_1_branching_history_info.html#af4685d27e83c66bddbd9fdc32759eb69">babBase::BranchingHistoryInfo::branchStatus</a></div><div class="ttdeci">enum babBase::BranchingHistoryInfo::BranchStatus branchStatus</div></div>
 <div class="ttc" id="bab_node_8h_html"><div class="ttname"><a href="bab_node_8h.html">babNode.h</a></div></div>
-<div class="ttc" id="structbab_base_1_1_branching_history_info_html_a0692c234f3dd6f32552a5c04519fb489"><div class="ttname"><a href="structbab_base_1_1_branching_history_info.html#a0692c234f3dd6f32552a5c04519fb489">babBase::BranchingHistoryInfo::BranchStatus</a></div><div class="ttdeci">BranchStatus</div><div class="ttdoc">Enum for distinguishing a branching status.</div><div class="ttdef"><b>Definition:</b> babTree.h:40</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_tree_html_a13e9545dba8eb0600f0f41b5a682081b"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#a13e9545dba8eb0600f0f41b5a682081b">babBase::BabTree::remove_has_incumbent_from_all_nodes</a></div><div class="ttdeci">void remove_has_incumbent_from_all_nodes()</div><div class="ttdoc">Remove the hasIncumbent flag from all nodes.</div><div class="ttdef"><b>Definition:</b> babTree.h:198</div></div>
+<div class="ttc" id="structbab_base_1_1_branching_history_info_html_a0692c234f3dd6f32552a5c04519fb489"><div class="ttname"><a href="structbab_base_1_1_branching_history_info.html#a0692c234f3dd6f32552a5c04519fb489">babBase::BranchingHistoryInfo::BranchStatus</a></div><div class="ttdeci">BranchStatus</div><div class="ttdoc">Enum for distinguishing a branching status. </div><div class="ttdef"><b>Definition:</b> babTree.h:40</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_tree_html_a13e9545dba8eb0600f0f41b5a682081b"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#a13e9545dba8eb0600f0f41b5a682081b">babBase::BabTree::remove_has_incumbent_from_all_nodes</a></div><div class="ttdeci">void remove_has_incumbent_from_all_nodes()</div><div class="ttdoc">Remove the hasIncumbent flag from all nodes. </div><div class="ttdef"><b>Definition:</b> babTree.h:198</div></div>
 <div class="ttc" id="classbab_base_1_1_bab_tree_html_ab7c26ded9e7755b0252554a73c2746be"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#ab7c26ded9e7755b0252554a73c2746be">babBase::BabTree::_select_node</a></div><div class="ttdeci">std::function&lt; std::vector&lt; BabNodeWithInfo &gt;::const_iterator(const std::vector&lt; BabNodeWithInfo &gt; &amp;nodeVectorIN)&gt; _select_node</div><div class="ttdef"><b>Definition:</b> babTree.h:254</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_tree_html_a67b93250145e013dfa036ba6a4fa6d2f"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#a67b93250145e013dfa036ba6a4fa6d2f">babBase::BabTree::BabTree</a></div><div class="ttdeci">BabTree()</div><div class="ttdoc">Default constructor for BabTree, threshold set to INF.</div><div class="ttdef"><b>Definition:</b> babTree.cpp:24</div></div>
-<div class="ttc" id="namespacebab_base_html"><div class="ttname"><a href="namespacebab_base.html">babBase</a></div><div class="ttdoc">namespace holding all essentials of the babBase submodule</div><div class="ttdef"><b>Definition:</b> babBrancher.h:40</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_tree_html_a67b93250145e013dfa036ba6a4fa6d2f"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#a67b93250145e013dfa036ba6a4fa6d2f">babBase::BabTree::BabTree</a></div><div class="ttdeci">BabTree()</div><div class="ttdoc">Default constructor for BabTree, threshold set to INF. </div><div class="ttdef"><b>Definition:</b> babTree.cpp:24</div></div>
+<div class="ttc" id="namespacebab_base_html"><div class="ttname"><a href="namespacebab_base.html">babBase</a></div><div class="ttdoc">namespace holding all essentials of the babBase submodule </div></div>
 <div class="ttc" id="structbab_base_1_1_branching_history_info_html"><div class="ttname"><a href="structbab_base_1_1_branching_history_info.html">babBase::BranchingHistoryInfo</a></div><div class="ttdoc">Struct for collecting all information that must be saved about a node, so that after it is retrieved ...</div><div class="ttdef"><b>Definition:</b> babTree.h:35</div></div>
-<div class="ttc" id="namespacebab_base_html_a388a4423133a99ec8703695a463b6c47"><div class="ttname"><a href="namespacebab_base.html#a388a4423133a99ec8703695a463b6c47">babBase::select_node_breadthfirst</a></div><div class="ttdeci">std::vector&lt; BabNodeWithInfo &gt;::const_iterator select_node_breadthfirst(const std::vector&lt; BabNodeWithInfo &gt; &amp;nodeVectorIN)</div><div class="ttdoc">Returns the node added least recently to the tree.</div><div class="ttdef"><b>Definition:</b> babTree.cpp:223</div></div>
+<div class="ttc" id="namespacebab_base_html_a388a4423133a99ec8703695a463b6c47"><div class="ttname"><a href="namespacebab_base.html#a388a4423133a99ec8703695a463b6c47">babBase::select_node_breadthfirst</a></div><div class="ttdeci">std::vector&lt; BabNodeWithInfo &gt;::const_iterator select_node_breadthfirst(const std::vector&lt; BabNodeWithInfo &gt; &amp;nodeVectorIN)</div><div class="ttdoc">Returns the node added least recently to the tree. </div><div class="ttdef"><b>Definition:</b> babTree.cpp:223</div></div>
 <div class="ttc" id="structbab_base_1_1_branching_history_info_html_a560c2b8ee36448c5f4e458d6d50b55d1"><div class="ttname"><a href="structbab_base_1_1_branching_history_info.html#a560c2b8ee36448c5f4e458d6d50b55d1">babBase::BranchingHistoryInfo::relaxationSolutionPointForBranchingVariable</a></div><div class="ttdeci">double relaxationSolutionPointForBranchingVariable</div><div class="ttdef"><b>Definition:</b> babTree.h:48</div></div>
 <div class="ttc" id="classbab_base_1_1_bab_tree_html_a724bc2173e90f9f49b452a2c60c58d93"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#a724bc2173e90f9f49b452a2c60c58d93">babBase::BabTree::_pruningScoreThreshold</a></div><div class="ttdeci">double _pruningScoreThreshold</div><div class="ttdef"><b>Definition:</b> babTree.h:244</div></div>
-<div class="ttc" id="namespacebab_base_html_a7023aaaa7bf22bf1c3717cfa070f4e69"><div class="ttname"><a href="namespacebab_base.html#a7023aaaa7bf22bf1c3717cfa070f4e69">babBase::select_node_highest_priority</a></div><div class="ttdeci">std::vector&lt; BabNodeWithInfo &gt;::const_iterator select_node_highest_priority(const std::vector&lt; BabNodeWithInfo &gt; &amp;nodeVectorIN)</div><div class="ttdoc">Returns the node with the highest priority.</div><div class="ttdef"><b>Definition:</b> babTree.cpp:200</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_tree_html_ab57edc600a99a8da34df3d50398b7b98"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#ab57edc600a99a8da34df3d50398b7b98">babBase::BabTree::get_lowest_pruning_score</a></div><div class="ttdeci">double get_lowest_pruning_score() const</div><div class="ttdoc">Return the lowest pruning score. Returns infinity if tree is empty.</div><div class="ttdef"><b>Definition:</b> babTree.cpp:116</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_with_info_html_aa8a0898f9749b240c21468fe50f7209d"><div class="ttname"><a href="classbab_base_1_1_bab_node_with_info.html#aa8a0898f9749b240c21468fe50f7209d">babBase::BabNodeWithInfo::BabNodeWithInfo</a></div><div class="ttdeci">BabNodeWithInfo(BabNode nodeIn, double selScoreIn)</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> babTree.h:73</div></div>
+<div class="ttc" id="namespacebab_base_html_a7023aaaa7bf22bf1c3717cfa070f4e69"><div class="ttname"><a href="namespacebab_base.html#a7023aaaa7bf22bf1c3717cfa070f4e69">babBase::select_node_highest_priority</a></div><div class="ttdeci">std::vector&lt; BabNodeWithInfo &gt;::const_iterator select_node_highest_priority(const std::vector&lt; BabNodeWithInfo &gt; &amp;nodeVectorIN)</div><div class="ttdoc">Returns the node with the highest priority. </div><div class="ttdef"><b>Definition:</b> babTree.cpp:200</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_tree_html_ab57edc600a99a8da34df3d50398b7b98"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#ab57edc600a99a8da34df3d50398b7b98">babBase::BabTree::get_lowest_pruning_score</a></div><div class="ttdeci">double get_lowest_pruning_score() const</div><div class="ttdoc">Return the lowest pruning score. Returns infinity if tree is empty. </div><div class="ttdef"><b>Definition:</b> babTree.cpp:116</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_with_info_html_aa8a0898f9749b240c21468fe50f7209d"><div class="ttname"><a href="classbab_base_1_1_bab_node_with_info.html#aa8a0898f9749b240c21468fe50f7209d">babBase::BabNodeWithInfo::BabNodeWithInfo</a></div><div class="ttdeci">BabNodeWithInfo(BabNode nodeIn, double selScoreIn)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> babTree.h:73</div></div>
 <div class="ttc" id="classbab_base_1_1_bab_node_with_info_html"><div class="ttname"><a href="classbab_base_1_1_bab_node_with_info.html">babBase::BabNodeWithInfo</a></div><div class="ttdoc">This class represents an node in the B&amp;B-Tree with additional information attached that is used in se...</div><div class="ttdef"><b>Definition:</b> babTree.h:64</div></div>
 <div class="ttc" id="structbab_base_1_1_branching_history_info_html_a0692c234f3dd6f32552a5c04519fb489ad2a72f428238ecf3e66348939fcc135a"><div class="ttname"><a href="structbab_base_1_1_branching_history_info.html#a0692c234f3dd6f32552a5c04519fb489ad2a72f428238ecf3e66348939fcc135a">babBase::BranchingHistoryInfo::BranchStatus::wasBranchedDown</a></div></div>
-<div class="ttc" id="classbab_base_1_1_bab_tree_html_ab6f087487f69b67a0516d342527763ff"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#ab6f087487f69b67a0516d342527763ff">babBase::BabTree::get_pruning_score_gap</a></div><div class="ttdeci">double get_pruning_score_gap() const</div><div class="ttdoc">Query the largest gap between the pruning threshold and the the pruning scores of the nodes....</div><div class="ttdef"><b>Definition:</b> babTree.cpp:130</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_tree_html_a931d3afc91a3c6011e9921cbfe09d0a2"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#a931d3afc91a3c6011e9921cbfe09d0a2">babBase::BabTree::get_valid_id</a></div><div class="ttdeci">unsigned get_valid_id()</div><div class="ttdoc">Returns a valid Id for the next node.</div><div class="ttdef"><b>Definition:</b> babTree.h:162</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_tree_html_a11f278a2cf37dd13270f754a0b77aa95"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#a11f278a2cf37dd13270f754a0b77aa95">babBase::BabTree::enable_pruning_with_rel_and_abs_tolerance</a></div><div class="ttdeci">void enable_pruning_with_rel_and_abs_tolerance(const double relTol, const double absTol)</div><div class="ttdoc">Enables pruning of nodes even when they have pruning scores slightly below the threshold.</div><div class="ttdef"><b>Definition:</b> babTree.h:215</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_tree_html_ab6f087487f69b67a0516d342527763ff"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#ab6f087487f69b67a0516d342527763ff">babBase::BabTree::get_pruning_score_gap</a></div><div class="ttdeci">double get_pruning_score_gap() const</div><div class="ttdoc">Query the largest gap between the pruning threshold and the the pruning scores of the nodes...</div><div class="ttdef"><b>Definition:</b> babTree.cpp:130</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_tree_html_a931d3afc91a3c6011e9921cbfe09d0a2"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#a931d3afc91a3c6011e9921cbfe09d0a2">babBase::BabTree::get_valid_id</a></div><div class="ttdeci">unsigned get_valid_id()</div><div class="ttdoc">Returns a valid Id for the next node. </div><div class="ttdef"><b>Definition:</b> babTree.h:162</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_tree_html_a11f278a2cf37dd13270f754a0b77aa95"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#a11f278a2cf37dd13270f754a0b77aa95">babBase::BabTree::enable_pruning_with_rel_and_abs_tolerance</a></div><div class="ttdeci">void enable_pruning_with_rel_and_abs_tolerance(const double relTol, const double absTol)</div><div class="ttdoc">Enables pruning of nodes even when they have pruning scores slightly below the threshold. </div><div class="ttdef"><b>Definition:</b> babTree.h:215</div></div>
 <div class="ttc" id="classbab_base_1_1_bab_tree_html_a90f1c73b6149b861acbded97b7221b35"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#a90f1c73b6149b861acbded97b7221b35">babBase::BabTree::_absPruningTol</a></div><div class="ttdeci">double _absPruningTol</div><div class="ttdef"><b>Definition:</b> babTree.h:247</div></div>
 <div class="ttc" id="classbab_base_1_1_bab_tree_html_a49521ddbee9e1d7e2a2b494d2ad5c4f5"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#a49521ddbee9e1d7e2a2b494d2ad5c4f5">babBase::BabTree::set_pruning_score_threshold</a></div><div class="ttdeci">double set_pruning_score_threshold(const double newThreshold)</div><div class="ttdoc">Update the pruning score threshold, e.g. after a new incumbent has been found, also fathom now fathom...</div><div class="ttdef"><b>Definition:</b> babTree.cpp:139</div></div>
 <div class="ttc" id="structbab_base_1_1_branching_history_info_html_a981348bf4cccba968bf48b591dc8e84c"><div class="ttname"><a href="structbab_base_1_1_branching_history_info.html#a981348bf4cccba968bf48b591dc8e84c">babBase::BranchingHistoryInfo::branchVar</a></div><div class="ttdeci">int branchVar</div><div class="ttdef"><b>Definition:</b> babTree.h:46</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_tree_html_a0d63f7d99cc24bac3d632d53517939bf"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#a0d63f7d99cc24bac3d632d53517939bf">babBase::BabTree::delete_element</a></div><div class="ttdeci">void delete_element(std::vector&lt; BabNodeWithInfo &gt;::iterator targetNodeIt)</div><div class="ttdoc">Removes a node from the tree.</div><div class="ttdef"><b>Definition:</b> babTree.cpp:60</div></div>
-<div class="ttc" id="structbab_base_1_1_node_priority_comparator_html"><div class="ttname"><a href="structbab_base_1_1_node_priority_comparator.html">babBase::NodePriorityComparator</a></div><div class="ttdoc">Functor for comparing node priorities.</div><div class="ttdef"><b>Definition:</b> babTree.h:275</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_with_info_html_aae390aed47e097508887f3df907c88ae"><div class="ttname"><a href="classbab_base_1_1_bab_node_with_info.html#aae390aed47e097508887f3df907c88ae">babBase::BabNodeWithInfo::set_node_selection_score</a></div><div class="ttdeci">void set_node_selection_score(double newScore)</div><div class="ttdoc">Sets the node selection score of the node.</div><div class="ttdef"><b>Definition:</b> babTree.h:96</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_tree_html_a0d63f7d99cc24bac3d632d53517939bf"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#a0d63f7d99cc24bac3d632d53517939bf">babBase::BabTree::delete_element</a></div><div class="ttdeci">void delete_element(std::vector&lt; BabNodeWithInfo &gt;::iterator targetNodeIt)</div><div class="ttdoc">Removes a node from the tree. </div><div class="ttdef"><b>Definition:</b> babTree.cpp:60</div></div>
+<div class="ttc" id="structbab_base_1_1_node_priority_comparator_html"><div class="ttname"><a href="structbab_base_1_1_node_priority_comparator.html">babBase::NodePriorityComparator</a></div><div class="ttdoc">Functor for comparing node priorities. </div><div class="ttdef"><b>Definition:</b> babTree.h:275</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_with_info_html_aae390aed47e097508887f3df907c88ae"><div class="ttname"><a href="classbab_base_1_1_bab_node_with_info.html#aae390aed47e097508887f3df907c88ae">babBase::BabNodeWithInfo::set_node_selection_score</a></div><div class="ttdeci">void set_node_selection_score(double newScore)</div><div class="ttdoc">Sets the node selection score of the node. </div><div class="ttdef"><b>Definition:</b> babTree.h:96</div></div>
 <div class="ttc" id="classbab_base_1_1_bab_node_with_info_html_a650c3ccb6c41e2a8571992c4e711282a"><div class="ttname"><a href="classbab_base_1_1_bab_node_with_info.html#a650c3ccb6c41e2a8571992c4e711282a">babBase::BabNodeWithInfo::node</a></div><div class="ttdeci">BabNode node</div><div class="ttdef"><b>Definition:</b> babTree.h:76</div></div>
 <div class="ttc" id="classbab_base_1_1_bab_tree_html_a766066afd3863ebc1f9025d2e1200e20"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#a766066afd3863ebc1f9025d2e1200e20">babBase::BabTree::_nodeVector</a></div><div class="ttdeci">std::vector&lt; BabNodeWithInfo &gt; _nodeVector</div><div class="ttdef"><b>Definition:</b> babTree.h:255</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_with_info_html_a944cee8a402dd5e3d4f8a2950eae15f2"><div class="ttname"><a href="classbab_base_1_1_bab_node_with_info.html#a944cee8a402dd5e3d4f8a2950eae15f2">babBase::BabNodeWithInfo::get_ID</a></div><div class="ttdeci">unsigned get_ID() const</div><div class="ttdoc">Returns the ID of the node.</div><div class="ttdef"><b>Definition:</b> babTree.h:106</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_with_info_html_a944cee8a402dd5e3d4f8a2950eae15f2"><div class="ttname"><a href="classbab_base_1_1_bab_node_with_info.html#a944cee8a402dd5e3d4f8a2950eae15f2">babBase::BabNodeWithInfo::get_ID</a></div><div class="ttdeci">unsigned get_ID() const</div><div class="ttdoc">Returns the ID of the node. </div><div class="ttdef"><b>Definition:</b> babTree.h:106</div></div>
 <div class="ttc" id="bab_utils_8h_html"><div class="ttname"><a href="bab_utils_8h.html">babUtils.h</a></div></div>
-<div class="ttc" id="namespacebab_base_html_a676088e39a43b256c799d75f1eb9e26f"><div class="ttname"><a href="namespacebab_base.html#a676088e39a43b256c799d75f1eb9e26f">babBase::select_node_depthfirst</a></div><div class="ttdeci">std::vector&lt; BabNodeWithInfo &gt;::const_iterator select_node_depthfirst(const std::vector&lt; BabNodeWithInfo &gt; &amp;nodeVectorIN)</div><div class="ttdoc">Returns the node added most recently to the tree.</div><div class="ttdef"><b>Definition:</b> babTree.cpp:209</div></div>
+<div class="ttc" id="namespacebab_base_html_a676088e39a43b256c799d75f1eb9e26f"><div class="ttname"><a href="namespacebab_base.html#a676088e39a43b256c799d75f1eb9e26f">babBase::select_node_depthfirst</a></div><div class="ttdeci">std::vector&lt; BabNodeWithInfo &gt;::const_iterator select_node_depthfirst(const std::vector&lt; BabNodeWithInfo &gt; &amp;nodeVectorIN)</div><div class="ttdoc">Returns the node added most recently to the tree. </div><div class="ttdef"><b>Definition:</b> babTree.cpp:209</div></div>
 <div class="ttc" id="structbab_base_1_1_branching_history_info_html_a7bab729fe8ba76839ead60e47fab38ce"><div class="ttname"><a href="structbab_base_1_1_branching_history_info.html#a7bab729fe8ba76839ead60e47fab38ce">babBase::BranchingHistoryInfo::parentLowerBound</a></div><div class="ttdeci">double parentLowerBound</div><div class="ttdef"><b>Definition:</b> babTree.h:49</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_tree_html_a65ce6ec7e2b0a93efd3383a837ad3df4"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#a65ce6ec7e2b0a93efd3383a837ad3df4">babBase::BabTree::pop_next_node</a></div><div class="ttdeci">BabNodeWithInfo pop_next_node()</div><div class="ttdoc">Return the node according to the node selection strategy and removes it from the tree.</div><div class="ttdef"><b>Definition:</b> babTree.cpp:74</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_tree_html_a65ce6ec7e2b0a93efd3383a837ad3df4"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#a65ce6ec7e2b0a93efd3383a837ad3df4">babBase::BabTree::pop_next_node</a></div><div class="ttdeci">BabNodeWithInfo pop_next_node()</div><div class="ttdoc">Return the node according to the node selection strategy and removes it from the tree. </div><div class="ttdef"><b>Definition:</b> babTree.cpp:74</div></div>
 <div class="ttc" id="structbab_base_1_1_branching_history_info_html_a62b35e2f1c80674846d3df7e61058e33"><div class="ttname"><a href="structbab_base_1_1_branching_history_info.html#a62b35e2f1c80674846d3df7e61058e33">babBase::BranchingHistoryInfo::parentUpperBound</a></div><div class="ttdeci">double parentUpperBound</div><div class="ttdef"><b>Definition:</b> babTree.h:50</div></div>
 <div class="ttc" id="classbab_base_1_1_bab_tree_html_a55a52c08fcb2eb8a59aa7b4b770ffb03"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#a55a52c08fcb2eb8a59aa7b4b770ffb03">babBase::BabTree::~BabTree</a></div><div class="ttdeci">virtual ~BabTree()=default</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_tree_html_a41440886243ed211a6a26981daedc530"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#a41440886243ed211a6a26981daedc530">babBase::BabTree::get_pruning_score_threshold</a></div><div class="ttdeci">double get_pruning_score_threshold() const</div><div class="ttdoc">Query the the pruning score threshold.</div><div class="ttdef"><b>Definition:</b> babTree.h:206</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_tree_html"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html">babBase::BabTree</a></div><div class="ttdoc">Represents the B&amp;B-Tree, manages the way nodes are saved and retrieved and pruned.</div><div class="ttdef"><b>Definition:</b> babTree.h:134</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_tree_html_afa84dcd25179e0f30408d80bd0c61f26"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#afa84dcd25179e0f30408d80bd0c61f26">babBase::BabTree::add_node</a></div><div class="ttdeci">void add_node(BabNodeWithInfo node)</div><div class="ttdoc">Add node to the list of nodes to process.</div><div class="ttdef"><b>Definition:</b> babTree.cpp:41</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_tree_html_a41440886243ed211a6a26981daedc530"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#a41440886243ed211a6a26981daedc530">babBase::BabTree::get_pruning_score_threshold</a></div><div class="ttdeci">double get_pruning_score_threshold() const</div><div class="ttdoc">Query the the pruning score threshold. </div><div class="ttdef"><b>Definition:</b> babTree.h:206</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_tree_html"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html">babBase::BabTree</a></div><div class="ttdoc">Represents the B&amp;B-Tree, manages the way nodes are saved and retrieved and pruned. </div><div class="ttdef"><b>Definition:</b> babTree.h:134</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_tree_html_afa84dcd25179e0f30408d80bd0c61f26"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#afa84dcd25179e0f30408d80bd0c61f26">babBase::BabTree::add_node</a></div><div class="ttdeci">void add_node(BabNodeWithInfo node)</div><div class="ttdoc">Add node to the list of nodes to process. </div><div class="ttdef"><b>Definition:</b> babTree.cpp:41</div></div>
 <div class="ttc" id="classbab_base_1_1_bab_tree_html_aad690dae7eda8bd3e178f2341b5a1076"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#aad690dae7eda8bd3e178f2341b5a1076">babBase::BabTree::_nodesLeft</a></div><div class="ttdeci">size_t _nodesLeft</div><div class="ttdef"><b>Definition:</b> babTree.h:249</div></div>
 <div class="ttc" id="classbab_base_1_1_bab_tree_html_a9dd406c60d514814311c4c9d4d8bd83e"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#a9dd406c60d514814311c4c9d4d8bd83e">babBase::BabTree::_fathom_nodes_exceeding_pruning_threshold</a></div><div class="ttdeci">double _fathom_nodes_exceeding_pruning_threshold(const double newThreshold, const double relTol, const double absTol)</div><div class="ttdoc">Removes all nodes from the tree having a pruning score greater than (or within the tolerances of) pru...</div><div class="ttdef"><b>Definition:</b> babTree.cpp:149</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_with_info_html_afec4f9666432de68b443e4013ea5fb9e"><div class="ttname"><a href="classbab_base_1_1_bab_node_with_info.html#afec4f9666432de68b443e4013ea5fb9e">babBase::BabNodeWithInfo::get_pruning_score</a></div><div class="ttdeci">double get_pruning_score() const</div><div class="ttdoc">Returns the pruning score of the node.</div><div class="ttdef"><b>Definition:</b> babTree.h:101</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_with_info_html_afec4f9666432de68b443e4013ea5fb9e"><div class="ttname"><a href="classbab_base_1_1_bab_node_with_info.html#afec4f9666432de68b443e4013ea5fb9e">babBase::BabNodeWithInfo::get_pruning_score</a></div><div class="ttdeci">double get_pruning_score() const</div><div class="ttdoc">Returns the pruning score of the node. </div><div class="ttdef"><b>Definition:</b> babTree.h:101</div></div>
 <div class="ttc" id="structbab_base_1_1_branching_history_info_html_a0692c234f3dd6f32552a5c04519fb489abd06fe7dd930fd19a43a4313735a71cd"><div class="ttname"><a href="structbab_base_1_1_branching_history_info.html#a0692c234f3dd6f32552a5c04519fb489abd06fe7dd930fd19a43a4313735a71cd">babBase::BranchingHistoryInfo::BranchStatus::wasBranchedUp</a></div></div>
 <div class="ttc" id="classbab_base_1_1_bab_node_with_info_html_a011d4cf815cb43fc30c79c47cd5e9d5f"><div class="ttname"><a href="classbab_base_1_1_bab_node_with_info.html#a011d4cf815cb43fc30c79c47cd5e9d5f">babBase::BabNodeWithInfo::_nodeSelectionScore</a></div><div class="ttdeci">double _nodeSelectionScore</div><div class="ttdef"><b>Definition:</b> babTree.h:117</div></div>
 <div class="ttc" id="classbab_base_1_1_bab_tree_html_a9da3ce58d47965be2f5c5f04ad2871d9"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#a9da3ce58d47965be2f5c5f04ad2871d9">babBase::BabTree::operator=</a></div><div class="ttdeci">BabTree &amp; operator=(BabTree &amp;)=default</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html_a7b99992c4fb98f8086a3cf09ab8d96ad"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a7b99992c4fb98f8086a3cf09ab8d96ad">babBase::BabNode::get_pruning_score</a></div><div class="ttdeci">double get_pruning_score() const</div><div class="ttdoc">Function for querying the pruning score within this node.</div><div class="ttdef"><b>Definition:</b> babNode.h:80</div></div>
-<div class="ttc" id="structbab_base_1_1_pruning_score_comparator_html_a32adb58b8c8c680fbb87c9837ecf88c9"><div class="ttname"><a href="structbab_base_1_1_pruning_score_comparator.html#a32adb58b8c8c680fbb87c9837ecf88c9">babBase::PruningScoreComparator::operator()</a></div><div class="ttdeci">bool operator()(const BabNodeWithInfo &amp;a, const BabNodeWithInfo &amp;b) const</div><div class="ttdoc">() opeartor for comparing</div><div class="ttdef"><b>Definition:</b> babTree.h:307</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_with_info_html_a33be0940f65782c7845e3a5d5803e422"><div class="ttname"><a href="classbab_base_1_1_bab_node_with_info.html#a33be0940f65782c7845e3a5d5803e422">babBase::BabNodeWithInfo::get_node_selection_score</a></div><div class="ttdeci">double get_node_selection_score() const</div><div class="ttdoc">Returns the node selection score of the node.</div><div class="ttdef"><b>Definition:</b> babTree.h:91</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html_a7b99992c4fb98f8086a3cf09ab8d96ad"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a7b99992c4fb98f8086a3cf09ab8d96ad">babBase::BabNode::get_pruning_score</a></div><div class="ttdeci">double get_pruning_score() const</div><div class="ttdoc">Function for querying the pruning score within this node. </div><div class="ttdef"><b>Definition:</b> babNode.h:80</div></div>
+<div class="ttc" id="structbab_base_1_1_pruning_score_comparator_html_a32adb58b8c8c680fbb87c9837ecf88c9"><div class="ttname"><a href="structbab_base_1_1_pruning_score_comparator.html#a32adb58b8c8c680fbb87c9837ecf88c9">babBase::PruningScoreComparator::operator()</a></div><div class="ttdeci">bool operator()(const BabNodeWithInfo &amp;a, const BabNodeWithInfo &amp;b) const</div><div class="ttdoc">() opeartor for comparing </div><div class="ttdef"><b>Definition:</b> babTree.h:307</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_with_info_html_a33be0940f65782c7845e3a5d5803e422"><div class="ttname"><a href="classbab_base_1_1_bab_node_with_info.html#a33be0940f65782c7845e3a5d5803e422">babBase::BabNodeWithInfo::get_node_selection_score</a></div><div class="ttdeci">double get_node_selection_score() const</div><div class="ttdoc">Returns the node selection score of the node. </div><div class="ttdef"><b>Definition:</b> babTree.h:91</div></div>
 <div class="ttc" id="classbab_base_1_1_bab_tree_html_aad75c9a8cb31642d172e39d64f260789"><div class="ttname"><a href="classbab_base_1_1_bab_tree.html#aad75c9a8cb31642d172e39d64f260789">babBase::BabTree::_Id</a></div><div class="ttdeci">unsigned _Id</div><div class="ttdef"><b>Definition:</b> babTree.h:250</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
@@ -156,7 +156,7 @@ $(document).ready(function(){initNavTree('bab_tree_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_ede40f663fdbaac4622f0a2d30ba279b.html">dep</a></li><li class="navelem"><a class="el" href="dir_47e169a4fe08058254fbf7964fa7bfb6.html">babbase</a></li><li class="navelem"><a class="el" href="dir_637fe8785ffc83488bdb33305770812c.html">inc</a></li><li class="navelem"><a class="el" href="bab_tree_8h.html">babTree.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/bab_utils_8h.html b/doc/html/bab_utils_8h.html
index e10871d9d6988e1ea6a213687087f6d751de41d9..4b658a1cbaa50e6ddab36d3ce7f3ac34ca262639 100644
--- a/doc/html/bab_utils_8h.html
+++ b/doc/html/bab_utils_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/dep/babbase/inc/babUtils.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/dep/babbase/inc/babUtils.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -118,7 +118,7 @@ Classes</h2></td></tr>
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
 Namespaces</h2></td></tr>
 <tr class="memitem:namespacebab_base"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacebab_base.html">babBase</a></td></tr>
-<tr class="memdesc:namespacebab_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">namespace holding all essentials of the <a class="el" href="namespacebab_base.html" title="namespace holding all essentials of the babBase submodule">babBase</a> submodule <br /></td></tr>
+<tr class="memdesc:namespacebab_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">namespace holding all essentials of the <a class="el" href="namespacebab_base.html" title="namespace holding all essentials of the babBase submodule ">babBase</a> submodule <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:namespacebab_base_1_1enums"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacebab_base_1_1enums.html">babBase::enums</a></td></tr>
 <tr class="memdesc:namespacebab_base_1_1enums"><td class="mdescLeft">&#160;</td><td class="mdescRight">namespace holding all enums used for branching and B&amp;B reporting <br /></td></tr>
@@ -178,7 +178,7 @@ Functions</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_ede40f663fdbaac4622f0a2d30ba279b.html">dep</a></li><li class="navelem"><a class="el" href="dir_47e169a4fe08058254fbf7964fa7bfb6.html">babbase</a></li><li class="navelem"><a class="el" href="dir_637fe8785ffc83488bdb33305770812c.html">inc</a></li><li class="navelem"><a class="el" href="bab_utils_8h.html">babUtils.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/bab_utils_8h_source.html b/doc/html/bab_utils_8h_source.html
index 188055931fc2dc70131c1e140b8b78059cf7c629..30d18d3d6de7cbad8be1c64fa133becd074d7b8e 100644
--- a/doc/html/bab_utils_8h_source.html
+++ b/doc/html/bab_utils_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/dep/babbase/inc/babUtils.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/dep/babbase/inc/babUtils.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,21 +90,21 @@ $(document).ready(function(){initNavTree('bab_utils_8h_source.html','');});
 <div class="title">babUtils.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="bab_utils_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file babUtils.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing definitions needed in several places of the</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *        Branch-and-Bound elements.</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &lt;cmath&gt;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &lt;functional&gt;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;iomanip&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;queue&gt;</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;type_traits&gt;</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacebab_base.html">babBase</a> {</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="keyword">typename</span> std::enable_if&lt;!std::numeric_limits&lt;T&gt;::is_integer, <span class="keywordtype">bool</span>&gt;::type</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="namespacebab_base.html#a3b9c69d27eaa95bab37d3340bac0afc5">   41</a></span>&#160;<a class="code" href="namespacebab_base.html#a3b9c69d27eaa95bab37d3340bac0afc5">almost_equal</a>(T x, T y, <span class="keywordtype">int</span> ulp = 2)</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    <span class="comment">// the machine epsilon has to be scaled to the magnitude of the values used</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    <span class="comment">// and multiplied by the desired precision in ULPs (units in the last place)</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    <span class="keywordflow">return</span> std::abs(x - y) &lt;= std::numeric_limits&lt;T&gt;::epsilon() * std::abs(x + y) * ulp</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;           <span class="comment">// unless the result is subnormal</span></div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;           || std::abs(x - y) &lt; std::numeric_limits&lt;T&gt;::min();</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;}</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span></div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="namespacebab_base.html#a257f505cb4d7319956918abc4f14ab2d">   60</a></span>&#160;<a class="code" href="namespacebab_base.html#a257f505cb4d7319956918abc4f14ab2d">larger_or_equal_within_rel_and_abs_tolerance</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> LBD, <span class="keyword">const</span> <span class="keywordtype">double</span> UBD, <span class="keyword">const</span> <span class="keywordtype">double</span> epsilonR, <span class="keyword">const</span> <span class="keywordtype">double</span> epsilonA)</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;{</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    <span class="keywordtype">bool</span> absDone = (LBD &gt;= (UBD - epsilonA));                <span class="comment">// Done means that absolute criterion is met</span></div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    <span class="keywordtype">bool</span> relDone = (LBD &gt;= (UBD - fabs(UBD) * epsilonR));    <span class="comment">// Done means that relative criterion is met</span></div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <span class="keywordtype">bool</span> done    = (absDone || relDone);                     <span class="comment">// If either criterion is met we are done</span></div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    <span class="keywordflow">return</span> done;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;}</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bab_log.html">   74</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structbab_base_1_1_bab_log.html">BabLog</a> {</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bab_log.html#aa4288f96cb054463d7b60bc56a219a5c">   75</a></span>&#160;    std::queue&lt;double&gt; <a class="code" href="structbab_base_1_1_bab_log.html#aa4288f96cb054463d7b60bc56a219a5c">time</a>;       </div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bab_log.html#af5bf82369755150c0152946d9ec8ce40">   76</a></span>&#160;    std::queue&lt;double&gt; <a class="code" href="structbab_base_1_1_bab_log.html#af5bf82369755150c0152946d9ec8ce40">LBD</a>;        </div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bab_log.html#a311253037919a2e4b742dfcd2532e3f0">   77</a></span>&#160;    std::queue&lt;double&gt; <a class="code" href="structbab_base_1_1_bab_log.html#a311253037919a2e4b742dfcd2532e3f0">UBD</a>;        </div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bab_log.html#a1249b5b6d04fb9c7abe62d84085f929f">   78</a></span>&#160;    std::queue&lt;double&gt; <a class="code" href="structbab_base_1_1_bab_log.html#a1249b5b6d04fb9c7abe62d84085f929f">iters</a>;      </div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bab_log.html#a2b4c1990d07f4947d3e721f2ed41b63c">   79</a></span>&#160;    std::queue&lt;double&gt; <a class="code" href="structbab_base_1_1_bab_log.html#a2b4c1990d07f4947d3e721f2ed41b63c">nodeid</a>;     </div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bab_log.html#a5ae6c872100ac962e8ac72b52d4fa8ea">   80</a></span>&#160;    std::queue&lt;double&gt; <a class="code" href="structbab_base_1_1_bab_log.html#a5ae6c872100ac962e8ac72b52d4fa8ea">curLB</a>;      </div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bab_log.html#a2000869556dbd59975f7503412bec3c0">   81</a></span>&#160;    std::queue&lt;double&gt; <a class="code" href="structbab_base_1_1_bab_log.html#a2000869556dbd59975f7503412bec3c0">nodesLeft</a>;  </div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bab_log.html#a8b6d33a9b24889fedd21c81f183a75c2">   82</a></span>&#160;    std::queue&lt;double&gt; <a class="code" href="structbab_base_1_1_bab_log.html#a8b6d33a9b24889fedd21c81f183a75c2">absGap</a>;     </div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bab_log.html#ac484020a1f529d739c78fe6e8a1ce43c">   83</a></span>&#160;    std::queue&lt;double&gt; <a class="code" href="structbab_base_1_1_bab_log.html#ac484020a1f529d739c78fe6e8a1ce43c">relGap</a>;     </div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bab_log.html#a310e923adf37c0c3d7de091b6b2e672b">   84</a></span>&#160;    std::string <a class="code" href="structbab_base_1_1_bab_log.html#a310e923adf37c0c3d7de091b6b2e672b">solutionStatus</a>;    </div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bab_log.html#a8a9df98b271e44b196dcbee8bc19cf16">   85</a></span>&#160;    std::string <a class="code" href="structbab_base_1_1_bab_log.html#a8a9df98b271e44b196dcbee8bc19cf16">logFileName</a>;       </div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bab_log.html#a5fe069f633ab86b5fb1df9cbfa89216a">   86</a></span>&#160;    std::string <a class="code" href="structbab_base_1_1_bab_log.html#a5fe069f633ab86b5fb1df9cbfa89216a">csvIterationsName</a>; </div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bab_log.html#a9b82e62a143f47a6fb85ec884fe1cf27">   87</a></span>&#160;    std::string <a class="code" href="structbab_base_1_1_bab_log.html#a9b82e62a143f47a6fb85ec884fe1cf27">csvGeneralName</a>;    </div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bab_log.html#a7bf62754ffa515a453fb9c8eb9b34adb">   88</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structbab_base_1_1_bab_log.html#a7bf62754ffa515a453fb9c8eb9b34adb">reachedMinNodeSize</a>;       </div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bab_log.html#a0128ab65edc7360210dd3a183f44e9d9">   93</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="structbab_base_1_1_bab_log.html#a0128ab65edc7360210dd3a183f44e9d9">clear</a>()</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    {</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;        <a class="code" href="structbab_base_1_1_bab_log.html#aa4288f96cb054463d7b60bc56a219a5c">time</a>               = std::queue&lt;double&gt;();</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;        <a class="code" href="structbab_base_1_1_bab_log.html#af5bf82369755150c0152946d9ec8ce40">LBD</a>                = std::queue&lt;double&gt;();</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;        <a class="code" href="structbab_base_1_1_bab_log.html#a311253037919a2e4b742dfcd2532e3f0">UBD</a>                = std::queue&lt;double&gt;();</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;        <a class="code" href="structbab_base_1_1_bab_log.html#a1249b5b6d04fb9c7abe62d84085f929f">iters</a>              = std::queue&lt;double&gt;();</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        <a class="code" href="structbab_base_1_1_bab_log.html#a2b4c1990d07f4947d3e721f2ed41b63c">nodeid</a>             = std::queue&lt;double&gt;();</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;        <a class="code" href="structbab_base_1_1_bab_log.html#a5ae6c872100ac962e8ac72b52d4fa8ea">curLB</a>              = std::queue&lt;double&gt;();</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;        <a class="code" href="structbab_base_1_1_bab_log.html#a2000869556dbd59975f7503412bec3c0">nodesLeft</a>          = std::queue&lt;double&gt;();</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;        <a class="code" href="structbab_base_1_1_bab_log.html#a8b6d33a9b24889fedd21c81f183a75c2">absGap</a>             = std::queue&lt;double&gt;();</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        <a class="code" href="structbab_base_1_1_bab_log.html#ac484020a1f529d739c78fe6e8a1ce43c">relGap</a>             = std::queue&lt;double&gt;();</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;        <a class="code" href="structbab_base_1_1_bab_log.html#a310e923adf37c0c3d7de091b6b2e672b">solutionStatus</a>     = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;        <a class="code" href="structbab_base_1_1_bab_log.html#a7bf62754ffa515a453fb9c8eb9b34adb">reachedMinNodeSize</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="structbab_base_1_1_bab_log.html#a8a9df98b271e44b196dcbee8bc19cf16">logFileName</a>.empty()) {</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;            <a class="code" href="structbab_base_1_1_bab_log.html#a8a9df98b271e44b196dcbee8bc19cf16">logFileName</a> = <span class="stringliteral">&quot;bab.log&quot;</span>;</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        }</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="structbab_base_1_1_bab_log.html#a5fe069f633ab86b5fb1df9cbfa89216a">csvIterationsName</a>.empty()) {</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;            <a class="code" href="structbab_base_1_1_bab_log.html#a5fe069f633ab86b5fb1df9cbfa89216a">csvIterationsName</a> = <span class="stringliteral">&quot;bab_Report_Iterations.csv&quot;</span>;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        }</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="structbab_base_1_1_bab_log.html#a9b82e62a143f47a6fb85ec884fe1cf27">csvGeneralName</a>.empty()) {</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;            <a class="code" href="structbab_base_1_1_bab_log.html#a9b82e62a143f47a6fb85ec884fe1cf27">csvGeneralName</a> = <span class="stringliteral">&quot;bab_Report_General.csv&quot;</span>;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        }</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    }</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;};</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;<span class="keyword">namespace </span>enums {</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2">  126</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2">BAB_RETCODE</a> {</div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2aeda7ce29d59dc3b2f91a477578cc211d">  127</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2aeda7ce29d59dc3b2f91a477578cc211d">GLOBALLY_OPTIMAL</a> = 0, </div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a6bad01cb747eb4dc29ad78da2ebbf56a">  128</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a6bad01cb747eb4dc29ad78da2ebbf56a">INFEASIBLE</a>,           </div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2aa7172d473042d0a9008897a8831ee7df">  129</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2aa7172d473042d0a9008897a8831ee7df">GLOBAL_MIN_NODE_SIZE</a>, </div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a7e0c8156f9f1e28bec6e806e1d2214ac">  130</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a7e0c8156f9f1e28bec6e806e1d2214ac">MAX_TIME</a>,             </div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a116bcdc14fb64222c56311ce39bcaa43">  131</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a116bcdc14fb64222c56311ce39bcaa43">MAX_ITERATIONS</a>,       </div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a236554198ce651d6f716fdfe3e110d21">  132</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a236554198ce651d6f716fdfe3e110d21">MAX_NODES</a>,            </div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a7986705e43c3fe5b4d4dea5d119ac39b">  133</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a7986705e43c3fe5b4d4dea5d119ac39b">FEASIBLE_POINT_ONLY</a>,  </div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a6337af67b651aacb491daf618cb1bf12">  134</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a6337af67b651aacb491daf618cb1bf12">TARGET_UBD</a>,           </div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2adc8cab8ee672484d4c99ee796b2a6ada">  135</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2adc8cab8ee672484d4c99ee796b2a6ada">TARGET_LBD</a>,           </div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a60a3c1228978b153df4b58c224793750">  136</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a60a3c1228978b153df4b58c224793750">NOT_SOLVED_YET</a>        </div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;};</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5">  143</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5">NS</a> {</div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5a27cb24b7ae25692a53e21298b16223b5">  144</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5a27cb24b7ae25692a53e21298b16223b5">NS_BESTBOUND</a> = 0, </div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5aa1ffe7bee36f4b5defe413df89720d07">  145</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5aa1ffe7bee36f4b5defe413df89720d07">NS_DEPTHFIRST</a>,    </div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5af40e2858362e9af0fc18758abfb471bf">  146</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5af40e2858362e9af0fc18758abfb471bf">NS_BREADTHFIRST</a>   </div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;};</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81">  153</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81">BV</a> {</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81aa13a34cdb88ece361804590b6418371f">  154</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81aa13a34cdb88ece361804590b6418371f">BV_ABSDIAM</a> = 0, </div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81aca8ab66cf77eb113aa470aa08459b5e3">  155</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81aca8ab66cf77eb113aa470aa08459b5e3">BV_RELDIAM</a>,     </div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81a142deab1b361ce6f9d728ebcb5b22239">  156</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81a142deab1b361ce6f9d728ebcb5b22239">BV_PSCOSTS</a>      </div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;};</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;}    <span class="comment">// end namespace enums</span></div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt;</div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="classbab_base_1_1_out_var.html">  170</a></span>&#160;<span class="keyword">class </span><a class="code" href="classbab_base_1_1_out_var.html">OutVar</a> {</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="classbab_base_1_1_out_var.html#a9e7ec2f861702cd5fa0d00afb80d6274">  173</a></span>&#160;    <span class="keyword">typedef</span> T <a class="code" href="classbab_base_1_1_out_var.html#a9e7ec2f861702cd5fa0d00afb80d6274">type</a>; </div><div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="classbab_base_1_1_out_var.html#a81e7174faa0d0aa69a9e17fea6158a4a">  175</a></span>&#160;    <span class="keyword">explicit</span> <a class="code" href="classbab_base_1_1_out_var.html#a81e7174faa0d0aa69a9e17fea6158a4a">OutVar</a>(T&amp; ref) noexcept:</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;        <a class="code" href="classbab_base_1_1_out_var.html#a402afb5eef3c5316d3740989c0f2e504">_ptr</a>(std::addressof(ref)) {}                       </div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    <a class="code" href="classbab_base_1_1_out_var.html#a81e7174faa0d0aa69a9e17fea6158a4a">OutVar</a>(T&amp;&amp;)                    = <span class="keyword">delete</span>;               </div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;    <a class="code" href="classbab_base_1_1_out_var.html#a81e7174faa0d0aa69a9e17fea6158a4a">OutVar</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_out_var.html">OutVar</a>&amp;) noexcept = <span class="keywordflow">default</span>;              </div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;    <a class="code" href="classbab_base_1_1_out_var.html">OutVar</a>&amp; <a class="code" href="classbab_base_1_1_out_var.html#aced8949099673a72ab3b436272f114e6">operator=</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_out_var.html">OutVar</a>&amp; x) noexcept = <span class="keywordflow">default</span>; </div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="classbab_base_1_1_out_var.html#a7442f2a80f303c64467428a80f3cb8b9">  181</a></span>&#160;    <span class="keyword">operator</span> T&amp;() <span class="keyword">const</span> noexcept { <span class="keywordflow">return</span> *<a class="code" href="classbab_base_1_1_out_var.html#a402afb5eef3c5316d3740989c0f2e504">_ptr</a>; } </div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="classbab_base_1_1_out_var.html#aa2878f955a6fca58b597161aff4964a8">  182</a></span>&#160;    T&amp; <a class="code" href="classbab_base_1_1_out_var.html#aa2878f955a6fca58b597161aff4964a8">get</a>() const noexcept { <span class="keywordflow">return</span> *<a class="code" href="classbab_base_1_1_out_var.html#a402afb5eef3c5316d3740989c0f2e504">_ptr</a>; }      </div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="classbab_base_1_1_out_var.html#a402afb5eef3c5316d3740989c0f2e504">  185</a></span>&#160;    T* <a class="code" href="classbab_base_1_1_out_var.html#a402afb5eef3c5316d3740989c0f2e504">_ptr</a>; </div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;};</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;<a class="code" href="classbab_base_1_1_out_var.html">OutVar&lt;T&gt;</a></div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="namespacebab_base.html#a5366d466e365a73e1f3fc2800d64b776">  195</a></span>&#160;<a class="code" href="namespacebab_base.html#a5366d466e365a73e1f3fc2800d64b776">out_par</a>(T&amp; arr)</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;{</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_out_var.html">OutVar&lt;T&gt;</a>(arr);</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;}</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;}    <span class="comment">// end namespace babBase</span></div><div class="ttc" id="structbab_base_1_1_bab_log_html_a1249b5b6d04fb9c7abe62d84085f929f"><div class="ttname"><a href="structbab_base_1_1_bab_log.html#a1249b5b6d04fb9c7abe62d84085f929f">babBase::BabLog::iters</a></div><div class="ttdeci">std::queue&lt; double &gt; iters</div><div class="ttdef"><b>Definition:</b> babUtils.h:78</div></div>
+<a href="bab_utils_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file babUtils.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing definitions needed in several places of the</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *        Branch-and-Bound elements.</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &lt;cmath&gt;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &lt;functional&gt;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;iomanip&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;queue&gt;</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;type_traits&gt;</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacebab_base.html">babBase</a> {</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="keyword">typename</span> std::enable_if&lt;!std::numeric_limits&lt;T&gt;::is_integer, <span class="keywordtype">bool</span>&gt;::type</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="namespacebab_base.html#a3b9c69d27eaa95bab37d3340bac0afc5">   41</a></span>&#160;<a class="code" href="namespacebab_base.html#a3b9c69d27eaa95bab37d3340bac0afc5">almost_equal</a>(T x, T y, <span class="keywordtype">int</span> ulp = 2)</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    <span class="comment">// the machine epsilon has to be scaled to the magnitude of the values used</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    <span class="comment">// and multiplied by the desired precision in ULPs (units in the last place)</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    <span class="keywordflow">return</span> std::abs(x - y) &lt;= std::numeric_limits&lt;T&gt;::epsilon() * std::abs(x + y) * ulp</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;           <span class="comment">// unless the result is subnormal</span></div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;           || std::abs(x - y) &lt; std::numeric_limits&lt;T&gt;::min();</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;}</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span></div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="namespacebab_base.html#a257f505cb4d7319956918abc4f14ab2d">   60</a></span>&#160;<a class="code" href="namespacebab_base.html#a257f505cb4d7319956918abc4f14ab2d">larger_or_equal_within_rel_and_abs_tolerance</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> LBD, <span class="keyword">const</span> <span class="keywordtype">double</span> UBD, <span class="keyword">const</span> <span class="keywordtype">double</span> epsilonR, <span class="keyword">const</span> <span class="keywordtype">double</span> epsilonA)</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;{</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    <span class="keywordtype">bool</span> absDone = (LBD &gt;= (UBD - epsilonA));                <span class="comment">// Done means that absolute criterion is met</span></div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    <span class="keywordtype">bool</span> relDone = (LBD &gt;= (UBD - fabs(UBD) * epsilonR));    <span class="comment">// Done means that relative criterion is met</span></div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <span class="keywordtype">bool</span> done    = (absDone || relDone);                     <span class="comment">// If either criterion is met we are done</span></div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    <span class="keywordflow">return</span> done;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;}</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bab_log.html">   74</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structbab_base_1_1_bab_log.html">BabLog</a> {</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bab_log.html#aa4288f96cb054463d7b60bc56a219a5c">   75</a></span>&#160;    std::queue&lt;double&gt; <a class="code" href="structbab_base_1_1_bab_log.html#aa4288f96cb054463d7b60bc56a219a5c">time</a>;       </div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bab_log.html#af5bf82369755150c0152946d9ec8ce40">   76</a></span>&#160;    std::queue&lt;double&gt; <a class="code" href="structbab_base_1_1_bab_log.html#af5bf82369755150c0152946d9ec8ce40">LBD</a>;        </div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bab_log.html#a311253037919a2e4b742dfcd2532e3f0">   77</a></span>&#160;    std::queue&lt;double&gt; <a class="code" href="structbab_base_1_1_bab_log.html#a311253037919a2e4b742dfcd2532e3f0">UBD</a>;        </div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bab_log.html#a1249b5b6d04fb9c7abe62d84085f929f">   78</a></span>&#160;    std::queue&lt;double&gt; <a class="code" href="structbab_base_1_1_bab_log.html#a1249b5b6d04fb9c7abe62d84085f929f">iters</a>;      </div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bab_log.html#a2b4c1990d07f4947d3e721f2ed41b63c">   79</a></span>&#160;    std::queue&lt;double&gt; <a class="code" href="structbab_base_1_1_bab_log.html#a2b4c1990d07f4947d3e721f2ed41b63c">nodeid</a>;     </div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bab_log.html#a5ae6c872100ac962e8ac72b52d4fa8ea">   80</a></span>&#160;    std::queue&lt;double&gt; <a class="code" href="structbab_base_1_1_bab_log.html#a5ae6c872100ac962e8ac72b52d4fa8ea">curLB</a>;      </div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bab_log.html#a2000869556dbd59975f7503412bec3c0">   81</a></span>&#160;    std::queue&lt;double&gt; <a class="code" href="structbab_base_1_1_bab_log.html#a2000869556dbd59975f7503412bec3c0">nodesLeft</a>;  </div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bab_log.html#a8b6d33a9b24889fedd21c81f183a75c2">   82</a></span>&#160;    std::queue&lt;double&gt; <a class="code" href="structbab_base_1_1_bab_log.html#a8b6d33a9b24889fedd21c81f183a75c2">absGap</a>;     </div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bab_log.html#ac484020a1f529d739c78fe6e8a1ce43c">   83</a></span>&#160;    std::queue&lt;double&gt; <a class="code" href="structbab_base_1_1_bab_log.html#ac484020a1f529d739c78fe6e8a1ce43c">relGap</a>;     </div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bab_log.html#a310e923adf37c0c3d7de091b6b2e672b">   84</a></span>&#160;    std::string <a class="code" href="structbab_base_1_1_bab_log.html#a310e923adf37c0c3d7de091b6b2e672b">solutionStatus</a>;    </div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bab_log.html#a8a9df98b271e44b196dcbee8bc19cf16">   85</a></span>&#160;    std::string <a class="code" href="structbab_base_1_1_bab_log.html#a8a9df98b271e44b196dcbee8bc19cf16">logFileName</a>;       </div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bab_log.html#a5fe069f633ab86b5fb1df9cbfa89216a">   86</a></span>&#160;    std::string <a class="code" href="structbab_base_1_1_bab_log.html#a5fe069f633ab86b5fb1df9cbfa89216a">csvIterationsName</a>; </div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bab_log.html#a9b82e62a143f47a6fb85ec884fe1cf27">   87</a></span>&#160;    std::string <a class="code" href="structbab_base_1_1_bab_log.html#a9b82e62a143f47a6fb85ec884fe1cf27">csvGeneralName</a>;    </div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bab_log.html#a7bf62754ffa515a453fb9c8eb9b34adb">   88</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structbab_base_1_1_bab_log.html#a7bf62754ffa515a453fb9c8eb9b34adb">reachedMinNodeSize</a>;       </div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="structbab_base_1_1_bab_log.html#a0128ab65edc7360210dd3a183f44e9d9">   93</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="structbab_base_1_1_bab_log.html#a0128ab65edc7360210dd3a183f44e9d9">clear</a>()</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    {</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;        <a class="code" href="structbab_base_1_1_bab_log.html#aa4288f96cb054463d7b60bc56a219a5c">time</a>               = std::queue&lt;double&gt;();</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;        <a class="code" href="structbab_base_1_1_bab_log.html#af5bf82369755150c0152946d9ec8ce40">LBD</a>                = std::queue&lt;double&gt;();</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;        <a class="code" href="structbab_base_1_1_bab_log.html#a311253037919a2e4b742dfcd2532e3f0">UBD</a>                = std::queue&lt;double&gt;();</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;        <a class="code" href="structbab_base_1_1_bab_log.html#a1249b5b6d04fb9c7abe62d84085f929f">iters</a>              = std::queue&lt;double&gt;();</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        <a class="code" href="structbab_base_1_1_bab_log.html#a2b4c1990d07f4947d3e721f2ed41b63c">nodeid</a>             = std::queue&lt;double&gt;();</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;        <a class="code" href="structbab_base_1_1_bab_log.html#a5ae6c872100ac962e8ac72b52d4fa8ea">curLB</a>              = std::queue&lt;double&gt;();</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;        <a class="code" href="structbab_base_1_1_bab_log.html#a2000869556dbd59975f7503412bec3c0">nodesLeft</a>          = std::queue&lt;double&gt;();</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;        <a class="code" href="structbab_base_1_1_bab_log.html#a8b6d33a9b24889fedd21c81f183a75c2">absGap</a>             = std::queue&lt;double&gt;();</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        <a class="code" href="structbab_base_1_1_bab_log.html#ac484020a1f529d739c78fe6e8a1ce43c">relGap</a>             = std::queue&lt;double&gt;();</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;        <a class="code" href="structbab_base_1_1_bab_log.html#a310e923adf37c0c3d7de091b6b2e672b">solutionStatus</a>     = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;        <a class="code" href="structbab_base_1_1_bab_log.html#a7bf62754ffa515a453fb9c8eb9b34adb">reachedMinNodeSize</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="structbab_base_1_1_bab_log.html#a8a9df98b271e44b196dcbee8bc19cf16">logFileName</a>.empty()) {</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;            <a class="code" href="structbab_base_1_1_bab_log.html#a8a9df98b271e44b196dcbee8bc19cf16">logFileName</a> = <span class="stringliteral">&quot;bab.log&quot;</span>;</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        }</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="structbab_base_1_1_bab_log.html#a5fe069f633ab86b5fb1df9cbfa89216a">csvIterationsName</a>.empty()) {</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;            <a class="code" href="structbab_base_1_1_bab_log.html#a5fe069f633ab86b5fb1df9cbfa89216a">csvIterationsName</a> = <span class="stringliteral">&quot;bab_Report_Iterations.csv&quot;</span>;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        }</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="structbab_base_1_1_bab_log.html#a9b82e62a143f47a6fb85ec884fe1cf27">csvGeneralName</a>.empty()) {</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;            <a class="code" href="structbab_base_1_1_bab_log.html#a9b82e62a143f47a6fb85ec884fe1cf27">csvGeneralName</a> = <span class="stringliteral">&quot;bab_Report_General.csv&quot;</span>;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        }</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    }</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;};</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;<span class="keyword">namespace </span>enums {</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2">  126</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2">BAB_RETCODE</a> {</div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2aeda7ce29d59dc3b2f91a477578cc211d">  127</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2aeda7ce29d59dc3b2f91a477578cc211d">GLOBALLY_OPTIMAL</a> = 0, </div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a6bad01cb747eb4dc29ad78da2ebbf56a">  128</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a6bad01cb747eb4dc29ad78da2ebbf56a">INFEASIBLE</a>,           </div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2aa7172d473042d0a9008897a8831ee7df">  129</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2aa7172d473042d0a9008897a8831ee7df">GLOBAL_MIN_NODE_SIZE</a>, </div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a7e0c8156f9f1e28bec6e806e1d2214ac">  130</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a7e0c8156f9f1e28bec6e806e1d2214ac">MAX_TIME</a>,             </div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a116bcdc14fb64222c56311ce39bcaa43">  131</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a116bcdc14fb64222c56311ce39bcaa43">MAX_ITERATIONS</a>,       </div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a236554198ce651d6f716fdfe3e110d21">  132</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a236554198ce651d6f716fdfe3e110d21">MAX_NODES</a>,            </div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a7986705e43c3fe5b4d4dea5d119ac39b">  133</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a7986705e43c3fe5b4d4dea5d119ac39b">FEASIBLE_POINT_ONLY</a>,  </div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a6337af67b651aacb491daf618cb1bf12">  134</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a6337af67b651aacb491daf618cb1bf12">TARGET_UBD</a>,           </div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2adc8cab8ee672484d4c99ee796b2a6ada">  135</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2adc8cab8ee672484d4c99ee796b2a6ada">TARGET_LBD</a>,           </div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a60a3c1228978b153df4b58c224793750">  136</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a60a3c1228978b153df4b58c224793750">NOT_SOLVED_YET</a>        </div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;};</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5">  143</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5">NS</a> {</div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5a27cb24b7ae25692a53e21298b16223b5">  144</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5a27cb24b7ae25692a53e21298b16223b5">NS_BESTBOUND</a> = 0, </div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5aa1ffe7bee36f4b5defe413df89720d07">  145</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5aa1ffe7bee36f4b5defe413df89720d07">NS_DEPTHFIRST</a>,    </div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5af40e2858362e9af0fc18758abfb471bf">  146</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5af40e2858362e9af0fc18758abfb471bf">NS_BREADTHFIRST</a>   </div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;};</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81">  153</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81">BV</a> {</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81aa13a34cdb88ece361804590b6418371f">  154</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81aa13a34cdb88ece361804590b6418371f">BV_ABSDIAM</a> = 0, </div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81aca8ab66cf77eb113aa470aa08459b5e3">  155</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81aca8ab66cf77eb113aa470aa08459b5e3">BV_RELDIAM</a>,     </div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81a142deab1b361ce6f9d728ebcb5b22239">  156</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81a142deab1b361ce6f9d728ebcb5b22239">BV_PSCOSTS</a>      </div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;};</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;}    <span class="comment">// end namespace enums</span></div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt;</div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="classbab_base_1_1_out_var.html">  170</a></span>&#160;<span class="keyword">class </span><a class="code" href="classbab_base_1_1_out_var.html">OutVar</a> {</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="classbab_base_1_1_out_var.html#a9e7ec2f861702cd5fa0d00afb80d6274">  173</a></span>&#160;    <span class="keyword">typedef</span> T <a class="code" href="classbab_base_1_1_out_var.html#a9e7ec2f861702cd5fa0d00afb80d6274">type</a>; </div><div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="classbab_base_1_1_out_var.html#a81e7174faa0d0aa69a9e17fea6158a4a">  175</a></span>&#160;    <span class="keyword">explicit</span> <a class="code" href="classbab_base_1_1_out_var.html#a81e7174faa0d0aa69a9e17fea6158a4a">OutVar</a>(T&amp; ref) noexcept:</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;        <a class="code" href="classbab_base_1_1_out_var.html#a402afb5eef3c5316d3740989c0f2e504">_ptr</a>(std::addressof(ref)) {}                       </div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    <a class="code" href="classbab_base_1_1_out_var.html#a81e7174faa0d0aa69a9e17fea6158a4a">OutVar</a>(T&amp;&amp;)                    = <span class="keyword">delete</span>;               </div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;    <a class="code" href="classbab_base_1_1_out_var.html#a81e7174faa0d0aa69a9e17fea6158a4a">OutVar</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_out_var.html">OutVar</a>&amp;) noexcept = <span class="keywordflow">default</span>;              </div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;    <a class="code" href="classbab_base_1_1_out_var.html">OutVar</a>&amp; <a class="code" href="classbab_base_1_1_out_var.html#aced8949099673a72ab3b436272f114e6">operator=</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_out_var.html">OutVar</a>&amp; x) noexcept = <span class="keywordflow">default</span>; </div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="classbab_base_1_1_out_var.html#add7057afa563a0adeba7d7e77d717690">  181</a></span>&#160;    <span class="keyword">operator</span> T&amp;() <span class="keyword">const</span> noexcept { <span class="keywordflow">return</span> *<a class="code" href="classbab_base_1_1_out_var.html#a402afb5eef3c5316d3740989c0f2e504">_ptr</a>; } </div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="classbab_base_1_1_out_var.html#aa2878f955a6fca58b597161aff4964a8">  182</a></span>&#160;    T&amp; <span class="keyword">get</span>() <span class="keyword">const</span> noexcept { <span class="keywordflow">return</span> *<a class="code" href="classbab_base_1_1_out_var.html#a402afb5eef3c5316d3740989c0f2e504">_ptr</a>; }      </div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="classbab_base_1_1_out_var.html#a402afb5eef3c5316d3740989c0f2e504">  185</a></span>&#160;    T* <a class="code" href="classbab_base_1_1_out_var.html#a402afb5eef3c5316d3740989c0f2e504">_ptr</a>; </div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;};</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;<a class="code" href="classbab_base_1_1_out_var.html">OutVar&lt;T&gt;</a></div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="namespacebab_base.html#a5366d466e365a73e1f3fc2800d64b776">  195</a></span>&#160;<a class="code" href="namespacebab_base.html#a5366d466e365a73e1f3fc2800d64b776">out_par</a>(T&amp; arr)</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;{</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classbab_base_1_1_out_var.html">OutVar&lt;T&gt;</a>(arr);</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;}</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;}    <span class="comment">// end namespace babBase</span></div><div class="ttc" id="structbab_base_1_1_bab_log_html_a1249b5b6d04fb9c7abe62d84085f929f"><div class="ttname"><a href="structbab_base_1_1_bab_log.html#a1249b5b6d04fb9c7abe62d84085f929f">babBase::BabLog::iters</a></div><div class="ttdeci">std::queue&lt; double &gt; iters</div><div class="ttdef"><b>Definition:</b> babUtils.h:78</div></div>
 <div class="ttc" id="classbab_base_1_1_out_var_html"><div class="ttname"><a href="classbab_base_1_1_out_var.html">babBase::OutVar</a></div><div class="ttdoc">Helper class that can be used to enforce the caller to explicitly state that the variable he passed m...</div><div class="ttdef"><b>Definition:</b> babUtils.h:170</div></div>
 <div class="ttc" id="structbab_base_1_1_bab_log_html_a311253037919a2e4b742dfcd2532e3f0"><div class="ttname"><a href="structbab_base_1_1_bab_log.html#a311253037919a2e4b742dfcd2532e3f0">babBase::BabLog::UBD</a></div><div class="ttdeci">std::queue&lt; double &gt; UBD</div><div class="ttdef"><b>Definition:</b> babUtils.h:77</div></div>
-<div class="ttc" id="namespacebab_base_1_1enums_html_a02e97c49bffe195071c83aa097a8dde5"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5">babBase::enums::NS</a></div><div class="ttdeci">NS</div><div class="ttdoc">Enum for selecting the Node Selection heuristic.</div><div class="ttdef"><b>Definition:</b> babUtils.h:143</div></div>
-<div class="ttc" id="structbab_base_1_1_bab_log_html_a0128ab65edc7360210dd3a183f44e9d9"><div class="ttname"><a href="structbab_base_1_1_bab_log.html#a0128ab65edc7360210dd3a183f44e9d9">babBase::BabLog::clear</a></div><div class="ttdeci">void clear()</div><div class="ttdoc">Clears all logging information.</div><div class="ttdef"><b>Definition:</b> babUtils.h:93</div></div>
+<div class="ttc" id="namespacebab_base_1_1enums_html_a02e97c49bffe195071c83aa097a8dde5"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5">babBase::enums::NS</a></div><div class="ttdeci">NS</div><div class="ttdoc">Enum for selecting the Node Selection heuristic. </div><div class="ttdef"><b>Definition:</b> babUtils.h:143</div></div>
+<div class="ttc" id="structbab_base_1_1_bab_log_html_a0128ab65edc7360210dd3a183f44e9d9"><div class="ttname"><a href="structbab_base_1_1_bab_log.html#a0128ab65edc7360210dd3a183f44e9d9">babBase::BabLog::clear</a></div><div class="ttdeci">void clear()</div><div class="ttdoc">Clears all logging information. </div><div class="ttdef"><b>Definition:</b> babUtils.h:93</div></div>
 <div class="ttc" id="namespacebab_base_1_1enums_html_a2c4d021a83d3363ae57623c7376761d2aeda7ce29d59dc3b2f91a477578cc211d"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2aeda7ce29d59dc3b2f91a477578cc211d">babBase::enums::GLOBALLY_OPTIMAL</a></div><div class="ttdef"><b>Definition:</b> babUtils.h:127</div></div>
-<div class="ttc" id="namespacebab_base_1_1enums_html_a2c4d021a83d3363ae57623c7376761d2"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2">babBase::enums::BAB_RETCODE</a></div><div class="ttdeci">BAB_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the B&amp;B solver.</div><div class="ttdef"><b>Definition:</b> babUtils.h:126</div></div>
+<div class="ttc" id="namespacebab_base_1_1enums_html_a2c4d021a83d3363ae57623c7376761d2"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2">babBase::enums::BAB_RETCODE</a></div><div class="ttdeci">BAB_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the B&amp;B solver. </div><div class="ttdef"><b>Definition:</b> babUtils.h:126</div></div>
 <div class="ttc" id="structbab_base_1_1_bab_log_html_a5ae6c872100ac962e8ac72b52d4fa8ea"><div class="ttname"><a href="structbab_base_1_1_bab_log.html#a5ae6c872100ac962e8ac72b52d4fa8ea">babBase::BabLog::curLB</a></div><div class="ttdeci">std::queue&lt; double &gt; curLB</div><div class="ttdef"><b>Definition:</b> babUtils.h:80</div></div>
 <div class="ttc" id="classbab_base_1_1_out_var_html_a402afb5eef3c5316d3740989c0f2e504"><div class="ttname"><a href="classbab_base_1_1_out_var.html#a402afb5eef3c5316d3740989c0f2e504">babBase::OutVar::_ptr</a></div><div class="ttdeci">T * _ptr</div><div class="ttdef"><b>Definition:</b> babUtils.h:185</div></div>
 <div class="ttc" id="structbab_base_1_1_bab_log_html_a5fe069f633ab86b5fb1df9cbfa89216a"><div class="ttname"><a href="structbab_base_1_1_bab_log.html#a5fe069f633ab86b5fb1df9cbfa89216a">babBase::BabLog::csvIterationsName</a></div><div class="ttdeci">std::string csvIterationsName</div><div class="ttdef"><b>Definition:</b> babUtils.h:86</div></div>
 <div class="ttc" id="namespacebab_base_1_1enums_html_a2c4d021a83d3363ae57623c7376761d2a7986705e43c3fe5b4d4dea5d119ac39b"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a7986705e43c3fe5b4d4dea5d119ac39b">babBase::enums::FEASIBLE_POINT_ONLY</a></div><div class="ttdef"><b>Definition:</b> babUtils.h:133</div></div>
 <div class="ttc" id="namespacebab_base_1_1enums_html_a02e97c49bffe195071c83aa097a8dde5af40e2858362e9af0fc18758abfb471bf"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5af40e2858362e9af0fc18758abfb471bf">babBase::enums::NS_BREADTHFIRST</a></div><div class="ttdef"><b>Definition:</b> babUtils.h:146</div></div>
-<div class="ttc" id="namespacebab_base_1_1enums_html_a5563ee1434fe76d1f65565afe896cb81"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81">babBase::enums::BV</a></div><div class="ttdeci">BV</div><div class="ttdoc">Enum for selecting the Branching Variable selection heuristic.</div><div class="ttdef"><b>Definition:</b> babUtils.h:153</div></div>
+<div class="ttc" id="namespacebab_base_1_1enums_html_a5563ee1434fe76d1f65565afe896cb81"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81">babBase::enums::BV</a></div><div class="ttdeci">BV</div><div class="ttdoc">Enum for selecting the Branching Variable selection heuristic. </div><div class="ttdef"><b>Definition:</b> babUtils.h:153</div></div>
 <div class="ttc" id="structbab_base_1_1_bab_log_html_a8b6d33a9b24889fedd21c81f183a75c2"><div class="ttname"><a href="structbab_base_1_1_bab_log.html#a8b6d33a9b24889fedd21c81f183a75c2">babBase::BabLog::absGap</a></div><div class="ttdeci">std::queue&lt; double &gt; absGap</div><div class="ttdef"><b>Definition:</b> babUtils.h:82</div></div>
-<div class="ttc" id="namespacebab_base_html"><div class="ttname"><a href="namespacebab_base.html">babBase</a></div><div class="ttdoc">namespace holding all essentials of the babBase submodule</div><div class="ttdef"><b>Definition:</b> babBrancher.h:40</div></div>
+<div class="ttc" id="namespacebab_base_html"><div class="ttname"><a href="namespacebab_base.html">babBase</a></div><div class="ttdoc">namespace holding all essentials of the babBase submodule </div></div>
 <div class="ttc" id="namespacebab_base_1_1enums_html_a5563ee1434fe76d1f65565afe896cb81aa13a34cdb88ece361804590b6418371f"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81aa13a34cdb88ece361804590b6418371f">babBase::enums::BV_ABSDIAM</a></div><div class="ttdef"><b>Definition:</b> babUtils.h:154</div></div>
 <div class="ttc" id="namespacebab_base_1_1enums_html_a2c4d021a83d3363ae57623c7376761d2a6bad01cb747eb4dc29ad78da2ebbf56a"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a6bad01cb747eb4dc29ad78da2ebbf56a">babBase::enums::INFEASIBLE</a></div><div class="ttdef"><b>Definition:</b> babUtils.h:128</div></div>
 <div class="ttc" id="namespacebab_base_1_1enums_html_a2c4d021a83d3363ae57623c7376761d2a7e0c8156f9f1e28bec6e806e1d2214ac"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a7e0c8156f9f1e28bec6e806e1d2214ac">babBase::enums::MAX_TIME</a></div><div class="ttdef"><b>Definition:</b> babUtils.h:130</div></div>
@@ -114,22 +114,21 @@ $(document).ready(function(){initNavTree('bab_utils_8h_source.html','');});
 <div class="ttc" id="namespacebab_base_1_1enums_html_a5563ee1434fe76d1f65565afe896cb81a142deab1b361ce6f9d728ebcb5b22239"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81a142deab1b361ce6f9d728ebcb5b22239">babBase::enums::BV_PSCOSTS</a></div><div class="ttdef"><b>Definition:</b> babUtils.h:156</div></div>
 <div class="ttc" id="structbab_base_1_1_bab_log_html_a9b82e62a143f47a6fb85ec884fe1cf27"><div class="ttname"><a href="structbab_base_1_1_bab_log.html#a9b82e62a143f47a6fb85ec884fe1cf27">babBase::BabLog::csvGeneralName</a></div><div class="ttdeci">std::string csvGeneralName</div><div class="ttdef"><b>Definition:</b> babUtils.h:87</div></div>
 <div class="ttc" id="classbab_base_1_1_out_var_html_a9e7ec2f861702cd5fa0d00afb80d6274"><div class="ttname"><a href="classbab_base_1_1_out_var.html#a9e7ec2f861702cd5fa0d00afb80d6274">babBase::OutVar::type</a></div><div class="ttdeci">T type</div><div class="ttdef"><b>Definition:</b> babUtils.h:173</div></div>
-<div class="ttc" id="namespacebab_base_html_a3b9c69d27eaa95bab37d3340bac0afc5"><div class="ttname"><a href="namespacebab_base.html#a3b9c69d27eaa95bab37d3340bac0afc5">babBase::almost_equal</a></div><div class="ttdeci">std::enable_if&lt;!std::numeric_limits&lt; T &gt;::is_integer, bool &gt;::type almost_equal(T x, T y, int ulp=2)</div><div class="ttdoc">compares if two floating numbers are very close to each other from:https://en.cppreference....</div><div class="ttdef"><b>Definition:</b> babUtils.h:41</div></div>
+<div class="ttc" id="namespacebab_base_html_a3b9c69d27eaa95bab37d3340bac0afc5"><div class="ttname"><a href="namespacebab_base.html#a3b9c69d27eaa95bab37d3340bac0afc5">babBase::almost_equal</a></div><div class="ttdeci">std::enable_if&lt;!std::numeric_limits&lt; T &gt;::is_integer, bool &gt;::type almost_equal(T x, T y, int ulp=2)</div><div class="ttdoc">compares if two floating numbers are very close to each other from:https://en.cppreference.com/w/cpp/types/numeric_limits/epsilon </div><div class="ttdef"><b>Definition:</b> babUtils.h:41</div></div>
 <div class="ttc" id="structbab_base_1_1_bab_log_html_a310e923adf37c0c3d7de091b6b2e672b"><div class="ttname"><a href="structbab_base_1_1_bab_log.html#a310e923adf37c0c3d7de091b6b2e672b">babBase::BabLog::solutionStatus</a></div><div class="ttdeci">std::string solutionStatus</div><div class="ttdef"><b>Definition:</b> babUtils.h:84</div></div>
 <div class="ttc" id="structbab_base_1_1_bab_log_html_a8a9df98b271e44b196dcbee8bc19cf16"><div class="ttname"><a href="structbab_base_1_1_bab_log.html#a8a9df98b271e44b196dcbee8bc19cf16">babBase::BabLog::logFileName</a></div><div class="ttdeci">std::string logFileName</div><div class="ttdef"><b>Definition:</b> babUtils.h:85</div></div>
-<div class="ttc" id="classbab_base_1_1_out_var_html_aa2878f955a6fca58b597161aff4964a8"><div class="ttname"><a href="classbab_base_1_1_out_var.html#aa2878f955a6fca58b597161aff4964a8">babBase::OutVar::get</a></div><div class="ttdeci">T &amp; get() const noexcept</div><div class="ttdef"><b>Definition:</b> babUtils.h:182</div></div>
 <div class="ttc" id="namespacebab_base_1_1enums_html_a2c4d021a83d3363ae57623c7376761d2a6337af67b651aacb491daf618cb1bf12"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a6337af67b651aacb491daf618cb1bf12">babBase::enums::TARGET_UBD</a></div><div class="ttdef"><b>Definition:</b> babUtils.h:134</div></div>
 <div class="ttc" id="structbab_base_1_1_bab_log_html_a2000869556dbd59975f7503412bec3c0"><div class="ttname"><a href="structbab_base_1_1_bab_log.html#a2000869556dbd59975f7503412bec3c0">babBase::BabLog::nodesLeft</a></div><div class="ttdeci">std::queue&lt; double &gt; nodesLeft</div><div class="ttdef"><b>Definition:</b> babUtils.h:81</div></div>
 <div class="ttc" id="namespacebab_base_1_1enums_html_a02e97c49bffe195071c83aa097a8dde5aa1ffe7bee36f4b5defe413df89720d07"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5aa1ffe7bee36f4b5defe413df89720d07">babBase::enums::NS_DEPTHFIRST</a></div><div class="ttdef"><b>Definition:</b> babUtils.h:145</div></div>
 <div class="ttc" id="classbab_base_1_1_out_var_html_a81e7174faa0d0aa69a9e17fea6158a4a"><div class="ttname"><a href="classbab_base_1_1_out_var.html#a81e7174faa0d0aa69a9e17fea6158a4a">babBase::OutVar::OutVar</a></div><div class="ttdeci">OutVar(T &amp;ref) noexcept</div><div class="ttdef"><b>Definition:</b> babUtils.h:175</div></div>
 <div class="ttc" id="namespacebab_base_1_1enums_html_a2c4d021a83d3363ae57623c7376761d2a60a3c1228978b153df4b58c224793750"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a60a3c1228978b153df4b58c224793750">babBase::enums::NOT_SOLVED_YET</a></div><div class="ttdef"><b>Definition:</b> babUtils.h:136</div></div>
 <div class="ttc" id="classbab_base_1_1_out_var_html_aced8949099673a72ab3b436272f114e6"><div class="ttname"><a href="classbab_base_1_1_out_var.html#aced8949099673a72ab3b436272f114e6">babBase::OutVar::operator=</a></div><div class="ttdeci">OutVar &amp; operator=(const OutVar &amp;x) noexcept=default</div></div>
-<div class="ttc" id="structbab_base_1_1_bab_log_html"><div class="ttname"><a href="structbab_base_1_1_bab_log.html">babBase::BabLog</a></div><div class="ttdoc">Struct storing logging information during B&amp;B prodcedure.</div><div class="ttdef"><b>Definition:</b> babUtils.h:74</div></div>
+<div class="ttc" id="structbab_base_1_1_bab_log_html"><div class="ttname"><a href="structbab_base_1_1_bab_log.html">babBase::BabLog</a></div><div class="ttdoc">Struct storing logging information during B&amp;B prodcedure. </div><div class="ttdef"><b>Definition:</b> babUtils.h:74</div></div>
 <div class="ttc" id="namespacebab_base_1_1enums_html_a2c4d021a83d3363ae57623c7376761d2adc8cab8ee672484d4c99ee796b2a6ada"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2adc8cab8ee672484d4c99ee796b2a6ada">babBase::enums::TARGET_LBD</a></div><div class="ttdef"><b>Definition:</b> babUtils.h:135</div></div>
 <div class="ttc" id="structbab_base_1_1_bab_log_html_a7bf62754ffa515a453fb9c8eb9b34adb"><div class="ttname"><a href="structbab_base_1_1_bab_log.html#a7bf62754ffa515a453fb9c8eb9b34adb">babBase::BabLog::reachedMinNodeSize</a></div><div class="ttdeci">bool reachedMinNodeSize</div><div class="ttdef"><b>Definition:</b> babUtils.h:88</div></div>
-<div class="ttc" id="namespacebab_base_html_a257f505cb4d7319956918abc4f14ab2d"><div class="ttname"><a href="namespacebab_base.html#a257f505cb4d7319956918abc4f14ab2d">babBase::larger_or_equal_within_rel_and_abs_tolerance</a></div><div class="ttdeci">bool larger_or_equal_within_rel_and_abs_tolerance(const double LBD, const double UBD, const double epsilonR, const double epsilonA)</div><div class="ttdoc">Function for checking if LBD is larger than UBD, or smaller by not more than the specified tolerance.</div><div class="ttdef"><b>Definition:</b> babUtils.h:60</div></div>
+<div class="ttc" id="namespacebab_base_html_a257f505cb4d7319956918abc4f14ab2d"><div class="ttname"><a href="namespacebab_base.html#a257f505cb4d7319956918abc4f14ab2d">babBase::larger_or_equal_within_rel_and_abs_tolerance</a></div><div class="ttdeci">bool larger_or_equal_within_rel_and_abs_tolerance(const double LBD, const double UBD, const double epsilonR, const double epsilonA)</div><div class="ttdoc">Function for checking if LBD is larger than UBD, or smaller by not more than the specified tolerance...</div><div class="ttdef"><b>Definition:</b> babUtils.h:60</div></div>
 <div class="ttc" id="namespacebab_base_1_1enums_html_a2c4d021a83d3363ae57623c7376761d2a236554198ce651d6f716fdfe3e110d21"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a236554198ce651d6f716fdfe3e110d21">babBase::enums::MAX_NODES</a></div><div class="ttdef"><b>Definition:</b> babUtils.h:132</div></div>
-<div class="ttc" id="namespacebab_base_html_a5366d466e365a73e1f3fc2800d64b776"><div class="ttname"><a href="namespacebab_base.html#a5366d466e365a73e1f3fc2800d64b776">babBase::out_par</a></div><div class="ttdeci">OutVar&lt; T &gt; out_par(T &amp;arr)</div><div class="ttdoc">Function for casting to OutVar&lt;type T&gt;</div><div class="ttdef"><b>Definition:</b> babUtils.h:195</div></div>
+<div class="ttc" id="namespacebab_base_html_a5366d466e365a73e1f3fc2800d64b776"><div class="ttname"><a href="namespacebab_base.html#a5366d466e365a73e1f3fc2800d64b776">babBase::out_par</a></div><div class="ttdeci">OutVar&lt; T &gt; out_par(T &amp;arr)</div><div class="ttdoc">Function for casting to OutVar&lt;type T&gt; </div><div class="ttdef"><b>Definition:</b> babUtils.h:195</div></div>
 <div class="ttc" id="namespacebab_base_1_1enums_html_a02e97c49bffe195071c83aa097a8dde5a27cb24b7ae25692a53e21298b16223b5"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5a27cb24b7ae25692a53e21298b16223b5">babBase::enums::NS_BESTBOUND</a></div><div class="ttdef"><b>Definition:</b> babUtils.h:144</div></div>
 <div class="ttc" id="namespacebab_base_1_1enums_html_a5563ee1434fe76d1f65565afe896cb81aca8ab66cf77eb113aa470aa08459b5e3"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81aca8ab66cf77eb113aa470aa08459b5e3">babBase::enums::BV_RELDIAM</a></div><div class="ttdef"><b>Definition:</b> babUtils.h:155</div></div>
 <div class="ttc" id="structbab_base_1_1_bab_log_html_aa4288f96cb054463d7b60bc56a219a5c"><div class="ttname"><a href="structbab_base_1_1_bab_log.html#aa4288f96cb054463d7b60bc56a219a5c">babBase::BabLog::time</a></div><div class="ttdeci">std::queue&lt; double &gt; time</div><div class="ttdef"><b>Definition:</b> babUtils.h:75</div></div>
@@ -143,7 +142,7 @@ $(document).ready(function(){initNavTree('bab_utils_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_ede40f663fdbaac4622f0a2d30ba279b.html">dep</a></li><li class="navelem"><a class="el" href="dir_47e169a4fe08058254fbf7964fa7bfb6.html">babbase</a></li><li class="navelem"><a class="el" href="dir_637fe8785ffc83488bdb33305770812c.html">inc</a></li><li class="navelem"><a class="el" href="bab_utils_8h.html">babUtils.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/bib.html b/doc/html/bib.html
index 6337dc0a73aecbd80c126a3b60bc8da839d40b52..27cd720735337665196306270cdcedbab8b483d2 100644
--- a/doc/html/bib.html
+++ b/doc/html/bib.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Where can I read more?</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -85,18 +85,18 @@ $(document).ready(function(){initNavTree('bib.html','');});
 </iframe>
 </div>
 
-<div class="PageDoc"><div class="header">
+<div class="header">
   <div class="headertitle">
 <div class="title">Where can I read more? </div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="textblock"><p>Some more general information on MAiNGO can be found in the latest <a href="http://permalink.avt.rwth-aachen.de/?id=729717">MAiNGO report</a>:<br />
+<div class="textblock"><p>Some more general information on MAiNGO can be found in the latest MAiNGO report:<br />
 </p><ul>
-<li>D. Bongartz, J. Najman, S. Sass, and A. Mitsos, MAiNGO - <b>M</b>cCormick-based <b>A</b>lgorithm for mixed-<b>i</b>nteger <b>N</b>onlinear <b>G</b>lobal <b>O</b>ptimization. Technical Report, Process Systems Engineering (AVT.SVT), RWTH Aachen University (2018).</li>
+<li>D. Bongartz, J. Najman, S. Sass, and A. Mitsos, MAiNGO - <b>M</b>cCormick-based <b>A</b>lgorithm for mixed-<b>i</b>nteger <b>N</b>onlinear <b>G</b>lobal <b>O</b>ptimization. Technical Report, Process Systems Engineering (AVT.SVT), RWTH Aachen University (2018). <a href="http://permalink.avt.rwth-aachen.de/?id=729717">http://permalink.avt.rwth-aachen.de/?id=729717</a></li>
 </ul>
 <h1><a class="anchor" id="readRelaxations"></a>
 Relaxations</h1>
-<p>The relaxations implemented in MC++ that are used in MAiNGO were introduced in the following works (details on the implementation can be found in the documentation of MC++):</p><ul>
+<p>The relaxations implemented in MC++ that are used in MAiNGO were introduced in the following works (details on the implementation can be found in the <a href="https://omega-icl.github.io/mcpp/">documentation of MC++</a>):</p><ul>
 <li>G.P. McCormick, Computability of global solutions to factorable nonconvex programs: Part I - Convex underestimating problem, Mathematical Programming 10 (1976) 145-175.</li>
 <li>A. Mitsos, B. Chachuat, and P.I. Barton, McCormick-Based Relaxations of Algorithms, SIAM Journal on Optimization 20 (2009) 573-601.</li>
 <li>J.K. Scott, M.D. Stuber, and P.I. Barton, Generalized McCormick Relaxations, Journal of Global Optimization 51 (2011) 569-606.</li>
@@ -114,6 +114,7 @@ Relaxations</h1>
 <li>A. Schweidtmann and A. Mitsos, Global Deterministic Optimization with Artificial Neural Networks Embedded, Journal of Optimization Theory and Applications 180(3) (2019).</li>
 <li>J. Najman, D. Bongartz, and A. Mitsos, Relaxations of thermodynamic property and costing models in process engineering. Computers &amp; Chemical Engineering 130 (2019) 106571.</li>
 <li>J. Najman, D. Bongartz, and A. Mitsos, Convex Relaxations of Componentwise Convex Functions. Computers &amp; Chemical Engineering 130 (2019) 106527.</li>
+<li>D. Bongartz, J. Najman, and A. Mitsos, Deterministic global optimization of steam cycles using the IAPWS-IF97 model, Optimization &amp; Engineering 21 (2020) 1095-1131.</li>
 </ul>
 <p>Further extensions that are currently not implemented include the following:</p><ul>
 <li>M.D. Stuber, J.K. Scott, and P.I. Barton, Convex and concave relaxations of implicit functions, Optimization Methods and Software 30 (2015) 424-460.</li>
@@ -145,31 +146,36 @@ Range Reduction</h1>
 <li>A.M. Gleixner, T. Berthold, B. Müller, and S. Weltge, Three enhancements for optimization-based bound tightening, Journal of Global Optimization 67 (2017) 731-757.</li>
 </ul>
 <p>McCormick subgradient-based interval heuristic:</p><ul>
-<li>J. Najman, A. Mitsos, Tighter McCormick relaxations through subgradient propagation. Journal of Global Optimization (2019).</li>
+<li>J. Najman, A. Mitsos, Tighter McCormick relaxations through subgradient propagation. Journal of Global Optimization 75 (2019) 565-593.</li>
 </ul>
 <h1><a class="anchor" id="readUses"></a>
 Uses of MAiNGO</h1>
-<p>Examples of applications of earlier versions of MAiNGO can be found in:</p><ul>
+<p>An introduction to reduced-space modeling in MAiNGO is given in:</p><ul>
+<li>D. Bongartz, Deterministic global flowsheet optimization for the design of energy conversion processes. Ph.D. Thesis, RWTH Aachen University (2020). Available at <a href="https://doi.org/10.18154/RWTH-2020-06052">https://doi.org/10.18154/RWTH-2020-06052</a>.</li>
+</ul>
+<p>Examples of applications of (earlier versions of) MAiNGO can be found in:</p><ul>
 <li>D. Bongartz and A. Mitsos, Deterministic Global Optimization of Process Flowsheets in a Reduced Space Using McCormick Relaxations, Journal of Global Optimization 69 (2017) 761-796.</li>
 <li>D. Bongartz and A. Mitsos, Infeasible Path Global Flowsheet Optimization Using McCormick Relaxations, In: Proceedings of the 27th Symposium on Computer Aided Process Engineering - ESCAPE27 (2017) 631-636.</li>
-<li>D. Bongartz and A. Mitsos, Deterministic Global Flowsheet Optimization: Between Equation-Oriented and Sequential-Modular Methods, AIChE Journal 65 (2019) 1022-1034.</li>
-<li>D. Bongartz, J. Najman, and A. Mitsos, Deterministic global optimization of steam cycles using the IAPWS-IF97 model, Optimization &amp; Engineering (2020), in press.</li>
 <li>W.R. Huster, D. Bongartz, and A. Mitsos, Deterministic Global Optimization of the Design of a Geothermal Organic Rankine Cycle, Energy Procedia 129 (2017) 50-57.</li>
+<li>D. Bongartz and A. Mitsos, Deterministic Global Flowsheet Optimization: Between Equation-Oriented and Sequential-Modular Methods, AIChE Journal 65 (2019) 1022-1034.</li>
+<li>D. Bongartz, J. Najman, and A. Mitsos, Deterministic global optimization of steam cycles using the IAPWS-IF97 model, Optimization &amp; Engineering 21 (2020) 1095-1131.</li>
+<li>D. Bongartz, Deterministic global flowsheet optimization for the design of energy conversion processes. Ph.D. Thesis, RWTH Aachen University (2020). Available at <a href="https://doi.org/10.18154/RWTH-2020-06052">https://doi.org/10.18154/RWTH-2020-06052</a>.</li>
+<li>C.D. Kappatou, D. Bongartz, J. Najman, S. Sass and A. Mitsos, Global Dynamic Optimization with Hammerstein-Wiener Models Embedded, Submitted. Preprint available at <a href="http://www.optimization-online.org/DB_HTML/2020/09/8018.html">http://www.optimization-online.org/DB_HTML/2020/09/8018.html</a>.</li>
 </ul>
-<p>Examples of applications with machine-learning models using the "MeLOn" toolbox:</p><ul>
+<p>Examples of MAiNGO applications with machine-learning models using the "MeLOn" toolbox:</p><ul>
 <li>W.R. Huster, A.M. Schweidtmann and A. Mitsos, Impact of accurate working fluid properties on the globally optimal design of an organic Rankine cycle, Computer Aided Chemical Engineering 47 (2019) 427-432.</li>
 <li>W.R. Huster, A.M. Schweidtmann and A. Mitsos, Working fluid selection for organic rankine cycles via deterministic global optimization of design and operation, Optimization and Engineering (2020) in press.</li>
 <li>D. Rall, D. Menne, A.M. Schweidtmann, J. Kamp, L. von Kolzenberg, A. Mitsos and Matthias Wessling, Rational design of ion separation membranes, Journal of Membrane Science 569 (2019) 209-219.</li>
 <li>D. Rall, A.M. Schweidtmann, B., Aumeier, J. Kamp, J. Karwe, K., Ostendorf, K., A. Mitsos &amp; Wessling, M. (2020). Simultaneous rational design of ion separation membranes and processes. Journal of Membrane Science, 600, 117860.</li>
 <li>D. Rall, A.M. Schweidtmann, M. Kruse, E., Evdochenko, A., Mitsos, A., &amp; Wessling, M. (2020). Multi-scale membrane process optimization with high-fidelity ion transport models through machine learning. Journal of Membrane Science, 118208.</li>
-<li>P. Schäfer, A.M. Schweidtmann, P.H.A. Lenz, H.M.C. Markgraf, A. Mitsos, Wavelet-based grid-adaptation for nonlinear scheduling subject to time-variable electricity prices, Computers and Chemical Engineering (2019) in press.</li>
+<li>P. Schäfer, A.M. Schweidtmann, P.H.A. Lenz, H.M.C. Markgraf, A. Mitsos, Wavelet-based grid-adaptation for nonlinear scheduling subject to time-variable electricity prices, Computers and Chemical Engineering 132 (2020) 106598.</li>
 <li>A.M. Schweidtmann, D. Bongartz, W.R. Huster, A. Mitsos, Deterministic Global Process Optimization: Flash Calculations via Artificial Neural Networks, Computer Aided Chemical Engineering 46 (2019) 937-942.</li>
 <li>A.M. Schweidtmann and A. Mitsos, Deterministic Global Optimization with Artificial Neural Networks Embedded, Journal of Optimization Theory and Applications 180 (2019) 925-948.</li>
 <li>A.M. Schweidtmann, W.R. Huster, J.T. Lüthje and A. Mitsos, Deterministic global process optimization: Accurate (single-species) properties via artificial neural networks, Computers &amp; Chemical Engineering 121 (2019) 67-74.</li>
-<li>A.M. Schweidtmann, D. Bongartz, G. Grothe, T. Kerkenhoff, X. Lin, J. Najman, and A. Mitsos, Global optimization of Gaussian processes, Submitted. Preprint available on <a href="https://arxiv.org/abs/2005.10902">https://arxiv.org/abs/2005.10902</a> (2020) </li>
+<li>W.R. Huster, A.M. Schweidtmann, J.T. Lüthje and A. Mitsos, Deterministic global superstructure-based optimization of an organic Rankine cycle, Computers &amp; Chemical Engineering 141 (2020) 106996.</li>
+<li>A.M. Schweidtmann, D. Bongartz, G. Grothe, T. Kerkenhoff, X. Lin, J. Najman, and A. Mitsos, Global optimization of Gaussian processes, Submitted. Preprint available at <a href="https://arxiv.org/abs/2005.10902">https://arxiv.org/abs/2005.10902</a> (2020). </li>
 </ul>
-</div></div><!-- PageDoc -->
-</div><!-- contents -->
+</div></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
@@ -177,7 +183,7 @@ Uses of MAiNGO</h1>
     <li class="navelem"><a class="el" href="index.html">McCormick-based Algorithm for mixed-integer Nonlinear Global Optimization</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/class_py_m_ai_n_g_omodel-members.html b/doc/html/class_py_m_ai_n_g_omodel-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..251a01adab949b6638a92543d6b8ea4941a69990
--- /dev/null
+++ b/doc/html/class_py_m_ai_n_g_omodel-members.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>MAiNGO: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(initResizable);
+/* @license-end */</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><img alt="Logo" src="mango_only.png"/></td>
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">MAiNGO
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(document).ready(function(){initNavTree('class_py_m_ai_n_g_omodel.html','');});
+/* @license-end */
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">PyMAiNGOmodel Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="class_py_m_ai_n_g_omodel.html">PyMAiNGOmodel</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="class_py_m_ai_n_g_omodel.html#abdc36fa738c77f0e2c35f009ae35852b">evaluate</a>(const std::vector&lt; mc::FFVar &gt; &amp;vars) override</td><td class="entry"><a class="el" href="class_py_m_ai_n_g_omodel.html">PyMAiNGOmodel</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="class_py_m_ai_n_g_omodel.html#adf3fcc040878469f11236e47066fc923">get_initial_point</a>() override</td><td class="entry"><a class="el" href="class_py_m_ai_n_g_omodel.html">PyMAiNGOmodel</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_py_m_ai_n_g_omodel.html#aa21e4c1906ec1a7b299de5f30e43a182">get_variables</a>() override</td><td class="entry"><a class="el" href="class_py_m_ai_n_g_omodel.html">PyMAiNGOmodel</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html#a8f7352764701bb71ca5845f354bfbd00">Var</a> typedef</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html">maingo::MAiNGOmodel</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html#ac1ff18446d407e6f663d4bf41fdb1003">~MAiNGOmodel</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html">maingo::MAiNGOmodel</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="footer">Generated by
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/doc/html/class_py_m_ai_n_g_omodel.html b/doc/html/class_py_m_ai_n_g_omodel.html
new file mode 100644
index 0000000000000000000000000000000000000000..ec31d7afd9deaa8dcb04691e46fdddcd9c480a76
--- /dev/null
+++ b/doc/html/class_py_m_ai_n_g_omodel.html
@@ -0,0 +1,238 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>MAiNGO: PyMAiNGOmodel Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(initResizable);
+/* @license-end */</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><img alt="Logo" src="mango_only.png"/></td>
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">MAiNGO
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(document).ready(function(){initNavTree('class_py_m_ai_n_g_omodel.html','');});
+/* @license-end */
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="class_py_m_ai_n_g_omodel-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">PyMAiNGOmodel Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for PyMAiNGOmodel:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_py_m_ai_n_g_omodel.png" usemap="#PyMAiNGOmodel_map" alt=""/>
+  <map id="PyMAiNGOmodel_map" name="PyMAiNGOmodel_map">
+<area href="classmaingo_1_1_m_ai_n_g_omodel.html" title="This class is the base class for models to be solved by MAiNGO. " alt="maingo::MAiNGOmodel" shape="rect" coords="0,0,142,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:aa21e4c1906ec1a7b299de5f30e43a182"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="namespacemaingo.html#adf4533c14585b7b44a5849066d6637cc">maingo::OptimizationVariable</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_py_m_ai_n_g_omodel.html#aa21e4c1906ec1a7b299de5f30e43a182">get_variables</a> () override</td></tr>
+<tr class="memdesc:aa21e4c1906ec1a7b299de5f30e43a182"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual function which has to be implemented by the user in order to enable getting data on optimization variables.  <a href="#aa21e4c1906ec1a7b299de5f30e43a182">More...</a><br /></td></tr>
+<tr class="separator:aa21e4c1906ec1a7b299de5f30e43a182"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abdc36fa738c77f0e2c35f009ae35852b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1_evaluation_container.html">maingo::EvaluationContainer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_py_m_ai_n_g_omodel.html#abdc36fa738c77f0e2c35f009ae35852b">evaluate</a> (const std::vector&lt; mc::FFVar &gt; &amp;vars) override</td></tr>
+<tr class="memdesc:abdc36fa738c77f0e2c35f009ae35852b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual function which has to be implemented by the user in order to enable evaluation of the model.  <a href="#abdc36fa738c77f0e2c35f009ae35852b">More...</a><br /></td></tr>
+<tr class="separator:abdc36fa738c77f0e2c35f009ae35852b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adf3fcc040878469f11236e47066fc923"><td class="memItemLeft" align="right" valign="top">std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_py_m_ai_n_g_omodel.html#adf3fcc040878469f11236e47066fc923">get_initial_point</a> () override</td></tr>
+<tr class="memdesc:adf3fcc040878469f11236e47066fc923"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual function which has to be implemented by the user in order to enable getting data on the initial point.  <a href="#adf3fcc040878469f11236e47066fc923">More...</a><br /></td></tr>
+<tr class="separator:adf3fcc040878469f11236e47066fc923"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classmaingo_1_1_m_ai_n_g_omodel"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classmaingo_1_1_m_ai_n_g_omodel')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html">maingo::MAiNGOmodel</a></td></tr>
+<tr class="memitem:ac1ff18446d407e6f663d4bf41fdb1003 inherit pub_methods_classmaingo_1_1_m_ai_n_g_omodel"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html#ac1ff18446d407e6f663d4bf41fdb1003">~MAiNGOmodel</a> ()</td></tr>
+<tr class="memdesc:ac1ff18446d407e6f663d4bf41fdb1003 inherit pub_methods_classmaingo_1_1_m_ai_n_g_omodel"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="classmaingo_1_1_m_ai_n_g_omodel.html#ac1ff18446d407e6f663d4bf41fdb1003">More...</a><br /></td></tr>
+<tr class="separator:ac1ff18446d407e6f663d4bf41fdb1003 inherit pub_methods_classmaingo_1_1_m_ai_n_g_omodel"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pub_types_classmaingo_1_1_m_ai_n_g_omodel"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classmaingo_1_1_m_ai_n_g_omodel')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html">maingo::MAiNGOmodel</a></td></tr>
+<tr class="memitem:a8f7352764701bb71ca5845f354bfbd00 inherit pub_types_classmaingo_1_1_m_ai_n_g_omodel"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html#a8f7352764701bb71ca5845f354bfbd00">Var</a> = mc::FFVar</td></tr>
+<tr class="separator:a8f7352764701bb71ca5845f354bfbd00 inherit pub_types_classmaingo_1_1_m_ai_n_g_omodel"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="abdc36fa738c77f0e2c35f009ae35852b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abdc36fa738c77f0e2c35f009ae35852b">&#9670;&nbsp;</a></span>evaluate()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structmaingo_1_1_evaluation_container.html">maingo::EvaluationContainer</a> PyMAiNGOmodel::evaluate </td>
+          <td>(</td>
+          <td class="paramtype">const std::vector&lt; mc::FFVar &gt; &amp;&#160;</td>
+          <td class="paramname"><em>optVars</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Virtual function which has to be implemented by the user in order to enable evaluation of the model. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">optVars</td><td>is a vector holding the optimization variables </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p>Implements <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html#a7a50f1c3477c117936d2b59876e608d6">maingo::MAiNGOmodel</a>.</p>
+
+</div>
+</div>
+<a id="adf3fcc040878469f11236e47066fc923"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#adf3fcc040878469f11236e47066fc923">&#9670;&nbsp;</a></span>get_initial_point()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::vector&lt;double&gt; PyMAiNGOmodel::get_initial_point </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Virtual function which has to be implemented by the user in order to enable getting data on the initial point. </p>
+
+<p>Reimplemented from <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html#a929215d08a5412b014d39fcda6e5d62a">maingo::MAiNGOmodel</a>.</p>
+
+</div>
+</div>
+<a id="aa21e4c1906ec1a7b299de5f30e43a182"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa21e4c1906ec1a7b299de5f30e43a182">&#9670;&nbsp;</a></span>get_variables()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::vector&lt;<a class="el" href="namespacemaingo.html#adf4533c14585b7b44a5849066d6637cc">maingo::OptimizationVariable</a>&gt; PyMAiNGOmodel::get_variables </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Virtual function which has to be implemented by the user in order to enable getting data on optimization variables. </p>
+
+<p>Implements <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html#a9faead087bd24822a0d249e257b4df8d">maingo::MAiNGOmodel</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/dobo01/maingo/pymaingo/<a class="el" href="__pymaingo_8cpp.html">_pymaingo.cpp</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="class_py_m_ai_n_g_omodel.html">PyMAiNGOmodel</a></li>
+    <li class="footer">Generated by
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/doc/html/class_py_m_ai_n_g_omodel.js b/doc/html/class_py_m_ai_n_g_omodel.js
new file mode 100644
index 0000000000000000000000000000000000000000..95497f78112b6a08c2c494e6676606b4700a0309
--- /dev/null
+++ b/doc/html/class_py_m_ai_n_g_omodel.js
@@ -0,0 +1,6 @@
+var class_py_m_ai_n_g_omodel =
+[
+    [ "evaluate", "class_py_m_ai_n_g_omodel.html#abdc36fa738c77f0e2c35f009ae35852b", null ],
+    [ "get_initial_point", "class_py_m_ai_n_g_omodel.html#adf3fcc040878469f11236e47066fc923", null ],
+    [ "get_variables", "class_py_m_ai_n_g_omodel.html#aa21e4c1906ec1a7b299de5f30e43a182", null ]
+];
\ No newline at end of file
diff --git a/doc/html/class_py_m_ai_n_g_omodel.png b/doc/html/class_py_m_ai_n_g_omodel.png
new file mode 100644
index 0000000000000000000000000000000000000000..6247751aaca37449056b3002a17973437854869b
Binary files /dev/null and b/doc/html/class_py_m_ai_n_g_omodel.png differ
diff --git a/doc/html/classbab_base_1_1_bab_node-members.html b/doc/html/classbab_base_1_1_bab_node-members.html
index 8b5f53e7a8ccadd12da153b0bb353c85eba7fef8..aa0d5e0012c40ea82f3402190a21fe2ae94a49ec 100644
--- a/doc/html/classbab_base_1_1_bab_node-members.html
+++ b/doc/html/classbab_base_1_1_bab_node-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -122,7 +122,7 @@ $(document).ready(function(){initNavTree('classbab_base_1_1_bab_node.html','');}
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classbab_base_1_1_bab_node.html b/doc/html/classbab_base_1_1_bab_node.html
index d6366e932539906edde248e4fda7845f1ed5171b..2d74c66e297c60dd5647e1f9ffed5db4ea4dbace 100644
--- a/doc/html/classbab_base_1_1_bab_node.html
+++ b/doc/html/classbab_base_1_1_bab_node.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: babBase::BabNode Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -103,10 +103,10 @@ $(document).ready(function(){initNavTree('classbab_base_1_1_bab_node.html','');}
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
 <tr class="memitem:a62257c8715cd244acce87bbaf1345025"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_bab_node.html#a62257c8715cd244acce87bbaf1345025">BabNode</a> (double pruningScoreIn, const std::vector&lt; double &gt; &amp;lbdsIn, const std::vector&lt; double &gt; &amp;ubdsIn, const int idIn, const unsigned depthIn, const bool holdsIncumbent)</td></tr>
-<tr class="memdesc:a62257c8715cd244acce87bbaf1345025"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for initializing a <a class="el" href="classbab_base_1_1_bab_node.html" title="Class representing a node in the Branch-and-Bound tree.">BabNode</a> using separate vectors containing the bounds.  <a href="#a62257c8715cd244acce87bbaf1345025">More...</a><br /></td></tr>
+<tr class="memdesc:a62257c8715cd244acce87bbaf1345025"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for initializing a <a class="el" href="classbab_base_1_1_bab_node.html" title="Class representing a node in the Branch-and-Bound tree. ">BabNode</a> using separate vectors containing the bounds.  <a href="#a62257c8715cd244acce87bbaf1345025">More...</a><br /></td></tr>
 <tr class="separator:a62257c8715cd244acce87bbaf1345025"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:af2703f93e30196364477163419e98f72"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_bab_node.html#af2703f93e30196364477163419e98f72">BabNode</a> (double pruningScoreIn, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">OptimizationVariable</a> &gt; &amp;variablesIn, const int idIn, const unsigned depthIn, const bool holdsIncumbent)</td></tr>
-<tr class="memdesc:af2703f93e30196364477163419e98f72"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for initializing a <a class="el" href="classbab_base_1_1_bab_node.html" title="Class representing a node in the Branch-and-Bound tree.">BabNode</a> using a vector of <a class="el" href="classbab_base_1_1_optimization_variable.html" title="Class for representing an optimization variable specified by the user.">OptimizationVariable</a> (each of which contains a <a class="el" href="structbab_base_1_1_bounds.html" title="Auxiliary struct for representing bounds on an optimization variable.">Bounds</a> object). Used to initialize the root node.  <a href="#af2703f93e30196364477163419e98f72">More...</a><br /></td></tr>
+<tr class="memdesc:af2703f93e30196364477163419e98f72"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for initializing a <a class="el" href="classbab_base_1_1_bab_node.html" title="Class representing a node in the Branch-and-Bound tree. ">BabNode</a> using a vector of <a class="el" href="classbab_base_1_1_optimization_variable.html" title="Class for representing an optimization variable specified by the user. ">OptimizationVariable</a> (each of which contains a <a class="el" href="structbab_base_1_1_bounds.html" title="Auxiliary struct for representing bounds on an optimization variable. ">Bounds</a> object). Used to initialize the root node.  <a href="#af2703f93e30196364477163419e98f72">More...</a><br /></td></tr>
 <tr class="separator:af2703f93e30196364477163419e98f72"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:adfce8159612254b9f02fef90542b1130"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_bab_node.html#adfce8159612254b9f02fef90542b1130">BabNode</a> ()</td></tr>
 <tr class="memdesc:adfce8159612254b9f02fef90542b1130"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor.  <a href="#adfce8159612254b9f02fef90542b1130">More...</a><br /></td></tr>
@@ -172,7 +172,7 @@ Friends</h2></td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><p>Class representing a node in the Branch-and-Bound tree. </p>
-<p>A <a class="el" href="classbab_base_1_1_bab_node.html" title="Class representing a node in the Branch-and-Bound tree.">BabNode</a> is characterized by a vector containing the configuration for optimization variables (bounds etc.) in this node, as well as an ID (both private members). It also contains a pruning score and a flag that indicates whether it holds the incumbent. Once constructed, a <a class="el" href="classbab_base_1_1_bab_node.html" title="Class representing a node in the Branch-and-Bound tree.">BabNode</a> cannot be modified. </p>
+<p>A <a class="el" href="classbab_base_1_1_bab_node.html" title="Class representing a node in the Branch-and-Bound tree. ">BabNode</a> is characterized by a vector containing the configuration for optimization variables (bounds etc.) in this node, as well as an ID (both private members). It also contains a pruning score and a flag that indicates whether it holds the incumbent. Once constructed, a <a class="el" href="classbab_base_1_1_bab_node.html" title="Class representing a node in the Branch-and-Bound tree. ">BabNode</a> cannot be modified. </p>
 </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
 <a id="a62257c8715cd244acce87bbaf1345025"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#a62257c8715cd244acce87bbaf1345025">&#9670;&nbsp;</a></span>BabNode() <span class="overload">[1/3]</span></h2>
@@ -232,7 +232,7 @@ Friends</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Constructor for initializing a <a class="el" href="classbab_base_1_1_bab_node.html" title="Class representing a node in the Branch-and-Bound tree.">BabNode</a> using separate vectors containing the bounds. </p>
+<p>Constructor for initializing a <a class="el" href="classbab_base_1_1_bab_node.html" title="Class representing a node in the Branch-and-Bound tree. ">BabNode</a> using separate vectors containing the bounds. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">pruningScoreIn</td><td>is the score of the node with respect to its pruning rule, a pruning score higher than a certain threshold will lead to pruning of the node </td></tr>
@@ -299,7 +299,7 @@ Friends</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Constructor for initializing a <a class="el" href="classbab_base_1_1_bab_node.html" title="Class representing a node in the Branch-and-Bound tree.">BabNode</a> using a vector of <a class="el" href="classbab_base_1_1_optimization_variable.html" title="Class for representing an optimization variable specified by the user.">OptimizationVariable</a> (each of which contains a <a class="el" href="structbab_base_1_1_bounds.html" title="Auxiliary struct for representing bounds on an optimization variable.">Bounds</a> object). Used to initialize the root node. </p>
+<p>Constructor for initializing a <a class="el" href="classbab_base_1_1_bab_node.html" title="Class representing a node in the Branch-and-Bound tree. ">BabNode</a> using a vector of <a class="el" href="classbab_base_1_1_optimization_variable.html" title="Class for representing an optimization variable specified by the user. ">OptimizationVariable</a> (each of which contains a <a class="el" href="structbab_base_1_1_bounds.html" title="Auxiliary struct for representing bounds on an optimization variable. ">Bounds</a> object). Used to initialize the root node. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">pruningScoreIn</td><td>is the score of the node with respect to its pruning rule, a pruning score higher than a certain threshold will lead to pruning of the node </td></tr>
@@ -877,7 +877,7 @@ Friends</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this class was generated from the following file:<ul>
-<li>C:/Users/dobo01/maingo/dep/babbase/inc/<a class="el" href="bab_node_8h_source.html">babNode.h</a></li>
+<li>C:/dobo01/maingo/dep/babbase/inc/<a class="el" href="bab_node_8h_source.html">babNode.h</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -887,7 +887,7 @@ Friends</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacebab_base.html">babBase</a></li><li class="navelem"><a class="el" href="classbab_base_1_1_bab_node.html">BabNode</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classbab_base_1_1_bab_node_with_info-members.html b/doc/html/classbab_base_1_1_bab_node_with_info-members.html
index c56a9a2bfbce1c07204e0f927c9be8f9e1d055a7..4efd75e50cfdd0ff7b75e84df5c0182d79998abb 100644
--- a/doc/html/classbab_base_1_1_bab_node_with_info-members.html
+++ b/doc/html/classbab_base_1_1_bab_node_with_info-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -110,7 +110,7 @@ $(document).ready(function(){initNavTree('classbab_base_1_1_bab_node_with_info.h
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classbab_base_1_1_bab_node_with_info.html b/doc/html/classbab_base_1_1_bab_node_with_info.html
index ed5b5537ecc4c8aa557c2508e46698b391b13418..b0776c30f566005d28baff05b53fc1124adddfa7 100644
--- a/doc/html/classbab_base_1_1_bab_node_with_info.html
+++ b/doc/html/classbab_base_1_1_bab_node_with_info.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: babBase::BabNodeWithInfo Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -140,7 +140,7 @@ Private Attributes</h2></td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><p>This class represents an node in the B&amp;B-Tree with additional information attached that is used in selecting nodes or branching variables. </p>
-<p>Currently additional information over the <a class="el" href="classbab_base_1_1_bab_node.html" title="Class representing a node in the Branch-and-Bound tree.">BabNode</a> class are the node selection score, that can be used to order the selection of the nodes from the B&amp;B-Tree and the information which variable was branched when the node was created. Additionally it is saved whether the branching was up or down. The last two pieces of information are used to attribute changes to branching decisions. (e.g. in register_node_change in <a class="el" href="classbab_base_1_1_brancher.html" title="This class contains the logic for branching on nodes in the B&amp;B-Tree and selecting nodes to be proces...">Brancher</a>) Currently this class is only used internally in the <a class="el" href="classbab_base_1_1_bab_tree.html" title="Represents the B&amp;B-Tree, manages the way nodes are saved and retrieved and pruned.">BabTree</a> class and when communicating with the <a class="el" href="classbab_base_1_1_brancher.html" title="This class contains the logic for branching on nodes in the B&amp;B-Tree and selecting nodes to be proces...">Brancher</a> class. Efficient way to convert to <a class="el" href="classbab_base_1_1_bab_node.html" title="Class representing a node in the Branch-and-Bound tree.">BabNode</a> are provided. </p>
+<p>Currently additional information over the <a class="el" href="classbab_base_1_1_bab_node.html" title="Class representing a node in the Branch-and-Bound tree. ">BabNode</a> class are the node selection score, that can be used to order the selection of the nodes from the B&amp;B-Tree and the information which variable was branched when the node was created. Additionally it is saved whether the branching was up or down. The last two pieces of information are used to attribute changes to branching decisions. (e.g. in register_node_change in <a class="el" href="classbab_base_1_1_brancher.html" title="This class contains the logic for branching on nodes in the B&amp;B-Tree and selecting nodes to be proces...">Brancher</a>) Currently this class is only used internally in the <a class="el" href="classbab_base_1_1_bab_tree.html" title="Represents the B&amp;B-Tree, manages the way nodes are saved and retrieved and pruned. ">BabTree</a> class and when communicating with the <a class="el" href="classbab_base_1_1_brancher.html" title="This class contains the logic for branching on nodes in the B&amp;B-Tree and selecting nodes to be proces...">Brancher</a> class. Efficient way to convert to <a class="el" href="classbab_base_1_1_bab_node.html" title="Class representing a node in the Branch-and-Bound tree. ">BabNode</a> are provided. </p>
 </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
 <a id="aa8a0898f9749b240c21468fe50f7209d"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#aa8a0898f9749b240c21468fe50f7209d">&#9670;&nbsp;</a></span>BabNodeWithInfo()</h2>
@@ -179,7 +179,7 @@ Private Attributes</h2></td></tr>
 <p>Constructor. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">nodeIn</td><td>is a normal <a class="el" href="classbab_base_1_1_bab_node.html" title="Class representing a node in the Branch-and-Bound tree.">BabNode</a> to be copied </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">nodeIn</td><td>is a normal <a class="el" href="classbab_base_1_1_bab_node.html" title="Class representing a node in the Branch-and-Bound tree. ">BabNode</a> to be copied </td></tr>
     <tr><td class="paramdir">[in]</td><td class="paramname">selScoreIn</td><td>is the selection score to be used for this bab node </td></tr>
   </table>
   </dd>
@@ -408,7 +408,7 @@ Private Attributes</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this class was generated from the following file:<ul>
-<li>C:/Users/dobo01/maingo/dep/babbase/inc/<a class="el" href="bab_tree_8h_source.html">babTree.h</a></li>
+<li>C:/dobo01/maingo/dep/babbase/inc/<a class="el" href="bab_tree_8h_source.html">babTree.h</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -418,7 +418,7 @@ Private Attributes</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacebab_base.html">babBase</a></li><li class="navelem"><a class="el" href="classbab_base_1_1_bab_node_with_info.html">BabNodeWithInfo</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classbab_base_1_1_bab_tree-members.html b/doc/html/classbab_base_1_1_bab_tree-members.html
index 2596d4a44fcb44e305f9777367e9782458d9af27..774222d9611dafdd93c7b0747cda3e59cb7bf0ad 100644
--- a/doc/html/classbab_base_1_1_bab_tree-members.html
+++ b/doc/html/classbab_base_1_1_bab_tree-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -126,7 +126,7 @@ $(document).ready(function(){initNavTree('classbab_base_1_1_bab_tree.html','');}
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classbab_base_1_1_bab_tree.html b/doc/html/classbab_base_1_1_bab_tree.html
index 0f7f809a1474f64842de79e6d6bb95110f666af8..39a302abb5cc4db8c9b631f78e28229dfe682ac0 100644
--- a/doc/html/classbab_base_1_1_bab_tree.html
+++ b/doc/html/classbab_base_1_1_bab_tree.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: babBase::BabTree Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -104,7 +104,7 @@ $(document).ready(function(){initNavTree('classbab_base_1_1_bab_tree.html','');}
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
 <tr class="memitem:a67b93250145e013dfa036ba6a4fa6d2f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_bab_tree.html#a67b93250145e013dfa036ba6a4fa6d2f">BabTree</a> ()</td></tr>
-<tr class="memdesc:a67b93250145e013dfa036ba6a4fa6d2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor for <a class="el" href="classbab_base_1_1_bab_tree.html" title="Represents the B&amp;B-Tree, manages the way nodes are saved and retrieved and pruned.">BabTree</a>, threshold set to INF.  <a href="#a67b93250145e013dfa036ba6a4fa6d2f">More...</a><br /></td></tr>
+<tr class="memdesc:a67b93250145e013dfa036ba6a4fa6d2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor for <a class="el" href="classbab_base_1_1_bab_tree.html" title="Represents the B&amp;B-Tree, manages the way nodes are saved and retrieved and pruned. ">BabTree</a>, threshold set to INF.  <a href="#a67b93250145e013dfa036ba6a4fa6d2f">More...</a><br /></td></tr>
 <tr class="separator:a67b93250145e013dfa036ba6a4fa6d2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a55a52c08fcb2eb8a59aa7b4b770ffb03"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_bab_tree.html#a55a52c08fcb2eb8a59aa7b4b770ffb03">~BabTree</a> ()=default</td></tr>
 <tr class="separator:a55a52c08fcb2eb8a59aa7b4b770ffb03"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -178,7 +178,7 @@ Private Attributes</h2></td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><p>Represents the B&amp;B-Tree, manages the way nodes are saved and retrieved and pruned. </p>
-<p>The <a class="el" href="classbab_base_1_1_bab_tree.html" title="Represents the B&amp;B-Tree, manages the way nodes are saved and retrieved and pruned.">BabTree</a> class is meant to be used to abstract the storage and node selection implementation. It makes sure that nodes are returned according to the node selection strategy. The default returns the node with the highest node selection score. Another invariant is that nodes whose pruning score exceeds the set pruning score threshold are never keept inside the tree. A added node that violates that invariant is immediately discarded and nodes already in the tree will be deleted when the pruning score threshold is lowered below there pruning score. The <a class="el" href="classbab_base_1_1_bab_tree.html" title="Represents the B&amp;B-Tree, manages the way nodes are saved and retrieved and pruned.">BabTree</a> class is also in charge of giving out valid IDs as to keep them unique. IDs of Nodes added to the tree should therefore be retrieved from the tree. </p>
+<p>The <a class="el" href="classbab_base_1_1_bab_tree.html" title="Represents the B&amp;B-Tree, manages the way nodes are saved and retrieved and pruned. ">BabTree</a> class is meant to be used to abstract the storage and node selection implementation. It makes sure that nodes are returned according to the node selection strategy. The default returns the node with the highest node selection score. Another invariant is that nodes whose pruning score exceeds the set pruning score threshold are never keept inside the tree. A added node that violates that invariant is immediately discarded and nodes already in the tree will be deleted when the pruning score threshold is lowered below there pruning score. The <a class="el" href="classbab_base_1_1_bab_tree.html" title="Represents the B&amp;B-Tree, manages the way nodes are saved and retrieved and pruned. ">BabTree</a> class is also in charge of giving out valid IDs as to keep them unique. IDs of Nodes added to the tree should therefore be retrieved from the tree. </p>
 </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
 <a id="a67b93250145e013dfa036ba6a4fa6d2f"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#a67b93250145e013dfa036ba6a4fa6d2f">&#9670;&nbsp;</a></span>BabTree() <span class="overload">[1/3]</span></h2>
@@ -195,7 +195,7 @@ Private Attributes</h2></td></tr>
       </table>
 </div><div class="memdoc">
 
-<p>Default constructor for <a class="el" href="classbab_base_1_1_bab_tree.html" title="Represents the B&amp;B-Tree, manages the way nodes are saved and retrieved and pruned.">BabTree</a>, threshold set to INF. </p>
+<p>Default constructor for <a class="el" href="classbab_base_1_1_bab_tree.html" title="Represents the B&amp;B-Tree, manages the way nodes are saved and retrieved and pruned. ">BabTree</a>, threshold set to INF. </p>
 
 </div>
 </div>
@@ -415,8 +415,7 @@ Private Attributes</h2></td></tr>
 </div><div class="memdoc">
 
 <p>Enables pruning of nodes even when they have pruning scores slightly below the threshold. </p>
-<pre class="fragment">   Takes only effect at next call to set_pruning_score_threshold or when nodes are added
-</pre> <dl class="params"><dt>Parameters</dt><dd>
+<p>Takes only effect at next call to set_pruning_score_threshold or when nodes are added </p><dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">relTol</td><td>relativeTolerance </td></tr>
     <tr><td class="paramdir">[in]</td><td class="paramname">absTol</td><td>absoluteTolerance (relative to pruningScoreThreshold) </td></tr>
@@ -855,8 +854,8 @@ Private Attributes</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this class was generated from the following files:<ul>
-<li>C:/Users/dobo01/maingo/dep/babbase/inc/<a class="el" href="bab_tree_8h_source.html">babTree.h</a></li>
-<li>C:/Users/dobo01/maingo/dep/babbase/src/<a class="el" href="bab_tree_8cpp.html">babTree.cpp</a></li>
+<li>C:/dobo01/maingo/dep/babbase/inc/<a class="el" href="bab_tree_8h_source.html">babTree.h</a></li>
+<li>C:/dobo01/maingo/dep/babbase/src/<a class="el" href="bab_tree_8cpp.html">babTree.cpp</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -866,7 +865,7 @@ Private Attributes</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacebab_base.html">babBase</a></li><li class="navelem"><a class="el" href="classbab_base_1_1_bab_tree.html">BabTree</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classbab_base_1_1_branch_and_bound_base_exception-members.html b/doc/html/classbab_base_1_1_branch_and_bound_base_exception-members.html
index c23baa8ad9903ac05994296965fd7b19dfa78e68..e57ff0d3afcb467601afca8451e7504a294d8dec 100644
--- a/doc/html/classbab_base_1_1_branch_and_bound_base_exception-members.html
+++ b/doc/html/classbab_base_1_1_branch_and_bound_base_exception-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -108,7 +108,7 @@ $(document).ready(function(){initNavTree('classbab_base_1_1_branch_and_bound_bas
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classbab_base_1_1_branch_and_bound_base_exception.html b/doc/html/classbab_base_1_1_branch_and_bound_base_exception.html
index 8bb68c175ab6ff43a345acc9a48598c664f767c2..42a6cd5974af0d8d19552981ded58b622ddd3f24 100644
--- a/doc/html/classbab_base_1_1_branch_and_bound_base_exception.html
+++ b/doc/html/classbab_base_1_1_branch_and_bound_base_exception.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: babBase::BranchAndBoundBaseException Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -104,7 +104,9 @@ $(document).ready(function(){initNavTree('classbab_base_1_1_branch_and_bound_bas
 Inheritance diagram for babBase::BranchAndBoundBaseException:</div>
 <div class="dyncontent">
  <div class="center">
-  <img src="classbab_base_1_1_branch_and_bound_base_exception.png" alt=""/>
+  <img src="classbab_base_1_1_branch_and_bound_base_exception.png" usemap="#babBase::BranchAndBoundBaseException_map" alt=""/>
+  <map id="babBase::BranchAndBoundBaseException_map" name="babBase::BranchAndBoundBaseException_map">
+</map>
  </div></div>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
@@ -140,7 +142,7 @@ Protected Attributes</h2></td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><p>This class defines the exceptions thrown by BranchAndBoundBase. </p>
-<p>The class contains different constructors. The first parameter is always the error message. For debugging, the error message will also contain the file name and line number Additionally, the constructor can take an exception as second argument. If done so, the type of the exception object and its <a class="el" href="classbab_base_1_1_branch_and_bound_base_exception.html#a91e5a78198bf8ef94f140a9ac5978d05" title="Function to return the error message.">what()</a> will be saved in the error message as well. </p>
+<p>The class contains different constructors. The first parameter is always the error message. For debugging, the error message will also contain the file name and line number Additionally, the constructor can take an exception as second argument. If done so, the type of the exception object and its <a class="el" href="classbab_base_1_1_branch_and_bound_base_exception.html#a91e5a78198bf8ef94f140a9ac5978d05" title="Function to return the error message. ">what()</a> will be saved in the error message as well. </p>
 </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
 <a id="a88e91f98099cf5db2b7365e13c9f0c3c"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#a88e91f98099cf5db2b7365e13c9f0c3c">&#9670;&nbsp;</a></span>BranchAndBoundBaseException() <span class="overload">[1/6]</span></h2>
@@ -239,7 +241,7 @@ Protected Attributes</h2></td></tr>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">arg</td><td>is a string holding an error message </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">node</td><td>holds the current <a class="el" href="classbab_base_1_1_bab_node.html" title="Class representing a node in the Branch-and-Bound tree.">BabNode</a> </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">node</td><td>holds the current <a class="el" href="classbab_base_1_1_bab_node.html" title="Class representing a node in the Branch-and-Bound tree. ">BabNode</a> </td></tr>
   </table>
   </dd>
 </dl>
@@ -336,7 +338,7 @@ Protected Attributes</h2></td></tr>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">arg</td><td>is a string holding an error message </td></tr>
     <tr><td class="paramdir">[in]</td><td class="paramname">e</td><td>holds the exception </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">node</td><td>holds the current <a class="el" href="classbab_base_1_1_bab_node.html" title="Class representing a node in the Branch-and-Bound tree.">BabNode</a> </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">node</td><td>holds the current <a class="el" href="classbab_base_1_1_bab_node.html" title="Class representing a node in the Branch-and-Bound tree. ">BabNode</a> </td></tr>
   </table>
   </dd>
 </dl>
@@ -388,7 +390,7 @@ Protected Attributes</h2></td></tr>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">arg</td><td>is a string holding an error message </td></tr>
     <tr><td class="paramdir">[in]</td><td class="paramname">e</td><td>holds the exception </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">node</td><td>holds the current <a class="el" href="classbab_base_1_1_bab_node.html" title="Class representing a node in the Branch-and-Bound tree.">BabNode</a> </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">node</td><td>holds the current <a class="el" href="classbab_base_1_1_bab_node.html" title="Class representing a node in the Branch-and-Bound tree. ">BabNode</a> </td></tr>
   </table>
   </dd>
 </dl>
@@ -449,7 +451,7 @@ Protected Attributes</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this class was generated from the following file:<ul>
-<li>C:/Users/dobo01/maingo/dep/babbase/inc/<a class="el" href="bab_exception_8h_source.html">babException.h</a></li>
+<li>C:/dobo01/maingo/dep/babbase/inc/<a class="el" href="bab_exception_8h_source.html">babException.h</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -459,7 +461,7 @@ Protected Attributes</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacebab_base.html">babBase</a></li><li class="navelem"><a class="el" href="classbab_base_1_1_branch_and_bound_base_exception.html">BranchAndBoundBaseException</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classbab_base_1_1_brancher-members.html b/doc/html/classbab_base_1_1_brancher-members.html
index ededc8c0904cf510c1cb5b4a7e34061e3d5ddb1f..f72bb7193006e47d8e5b3c88a84c02c6f8d36678 100644
--- a/doc/html/classbab_base_1_1_brancher-members.html
+++ b/doc/html/classbab_base_1_1_brancher-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -135,7 +135,7 @@ $(document).ready(function(){initNavTree('classbab_base_1_1_brancher.html','');}
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classbab_base_1_1_brancher.html b/doc/html/classbab_base_1_1_brancher.html
index 3f4846745864b4b43ac3aea812dfe9a96ca69ec2..be15446c51dbaac05f308e23d6b2df77b753184a 100644
--- a/doc/html/classbab_base_1_1_brancher.html
+++ b/doc/html/classbab_base_1_1_brancher.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: babBase::Brancher Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -138,7 +138,7 @@ Public Member Functions</h2></td></tr>
 <tr class="memdesc:a9b2a948ff522a40e63f90956a0b0c01d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of nodes in the tree.  <a href="#a9b2a948ff522a40e63f90956a0b0c01d">More...</a><br /></td></tr>
 <tr class="separator:a9b2a948ff522a40e63f90956a0b0c01d"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ab4a30a04b14b4b0e88956d53963f1fcb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classbab_base_1_1_bab_node.html">BabNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_brancher.html#ab4a30a04b14b4b0e88956d53963f1fcb">get_next_node</a> ()</td></tr>
-<tr class="memdesc:ab4a30a04b14b4b0e88956d53963f1fcb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the next <a class="el" href="classbab_base_1_1_bab_node.html" title="Class representing a node in the Branch-and-Bound tree.">BabNode</a> to process according to the node selection strategy and node selection scores.  <a href="#ab4a30a04b14b4b0e88956d53963f1fcb">More...</a><br /></td></tr>
+<tr class="memdesc:ab4a30a04b14b4b0e88956d53963f1fcb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the next <a class="el" href="classbab_base_1_1_bab_node.html" title="Class representing a node in the Branch-and-Bound tree. ">BabNode</a> to process according to the node selection strategy and node selection scores.  <a href="#ab4a30a04b14b4b0e88956d53963f1fcb">More...</a><br /></td></tr>
 <tr class="separator:ab4a30a04b14b4b0e88956d53963f1fcb"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a657a3dc42d1a34b8a04e9e9d9c699ff6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_brancher.html#a657a3dc42d1a34b8a04e9e9d9c699ff6">set_new_incumbent_point</a> (std::vector&lt; double &gt; incumbentPoint)</td></tr>
 <tr class="memdesc:a657a3dc42d1a34b8a04e9e9d9c699ff6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Informs the instance that a new feasible solution has been found. Only needed because of hasIncumbent All nodes in the tree will get the hasIncumbent field set to false.  <a href="#a657a3dc42d1a34b8a04e9e9d9c699ff6">More...</a><br /></td></tr>
@@ -203,7 +203,7 @@ Private Attributes</h2></td></tr>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><p>This class contains the logic for branching on nodes in the B&amp;B-Tree and selecting nodes to be processed. </p>
 <p>The <a class="el" href="classbab_base_1_1_brancher.html" title="This class contains the logic for branching on nodes in the B&amp;B-Tree and selecting nodes to be proces...">Brancher</a> class is meant to be used to manage the nodes of the branch and bound tree. Internally nodes are associated with two properties, their pruning score and their selection score. The pruning score usually represents the lower bound (minimization) and is used to exclude nodes from the tree. No nodes are kept in the tree with a pruning score exceeding pruning_score_threshold (and possibly also below pruning_score_threshold by no more than the relative and absolute tolerances). The selection score is used to decide the next node to be processed. With default settings, the node with the HIGHEST selection score is selected. How selection scores are calculated can be customized with set_node_selection_score_function. By default the node with the smallest pruning score has the highest selection score. For efficiency depth first search or breadth first search can be selected by using set_node_selection_strategy in which case selection scores are ignored.</p>
-<p>The next node to process can be extracted by calling <a class="el" href="classbab_base_1_1_brancher.html#ab4a30a04b14b4b0e88956d53963f1fcb" title="Returns the next BabNode to process according to the node selection strategy and node selection score...">get_next_node()</a>. After the node is processed, the user is expected to call <a class="el" href="classbab_base_1_1_brancher.html#a9751c79dcbf4b2ad67a549f5bfa6e5d3" title="Registers the changes made to a node during processing to extract information for branching heuristic...">register_node_change()</a> with the processed node, which will allow collecting information for certain branching heuristics. To branch on a node, this node is passed to <a class="el" href="classbab_base_1_1_brancher.html#ac0128b99d5fdfc973298293f5913e729" title="Function that branches on a node and (normally) adds two new children to the BranchAndBoundTree.">branch_on_node()</a> which normaly will add two new children to the B&amp;B-Tree. Currently, the branching decision is dependant on the current incumbent point. The brancher can be informed about a new incumbent point with <a class="el" href="classbab_base_1_1_brancher.html#a657a3dc42d1a34b8a04e9e9d9c699ff6" title="Informs the instance that a new feasible solution has been found. Only needed because of hasIncumbent...">set_new_incumbent_point()</a>. The brancher also needs to be informed of new pruning score threshold which might represent upper bounds by calling decrease_pruning_score_threshold_to. </p>
+<p>The next node to process can be extracted by calling <a class="el" href="classbab_base_1_1_brancher.html#ab4a30a04b14b4b0e88956d53963f1fcb" title="Returns the next BabNode to process according to the node selection strategy and node selection score...">get_next_node()</a>. After the node is processed, the user is expected to call <a class="el" href="classbab_base_1_1_brancher.html#a9751c79dcbf4b2ad67a549f5bfa6e5d3" title="Registers the changes made to a node during processing to extract information for branching heuristic...">register_node_change()</a> with the processed node, which will allow collecting information for certain branching heuristics. To branch on a node, this node is passed to <a class="el" href="classbab_base_1_1_brancher.html#ac0128b99d5fdfc973298293f5913e729" title="Function that branches on a node and (normally) adds two new children to the BranchAndBoundTree. ">branch_on_node()</a> which normaly will add two new children to the B&amp;B-Tree. Currently, the branching decision is dependant on the current incumbent point. The brancher can be informed about a new incumbent point with <a class="el" href="classbab_base_1_1_brancher.html#a657a3dc42d1a34b8a04e9e9d9c699ff6" title="Informs the instance that a new feasible solution has been found. Only needed because of hasIncumbent...">set_new_incumbent_point()</a>. The brancher also needs to be informed of new pruning score threshold which might represent upper bounds by calling decrease_pruning_score_threshold_to. </p>
 </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
 <a id="a05da26d4f5c313167569a1b23eb4539d"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#a05da26d4f5c313167569a1b23eb4539d">&#9670;&nbsp;</a></span>Brancher() <span class="overload">[1/3]</span></h2>
@@ -452,11 +452,8 @@ Private Attributes</h2></td></tr>
 </div><div class="memdoc">
 
 <p>Creates a node with added information. </p>
-<pre class="fragment">   Added information is the node selection score, the variable last branched on  and if it was branched up or down.
-   Additionally, what the value of this variable was at the relaxation solution and what bounds the parent node had on that variable.
-   The node selection score is calculated immediately.
-   @returns A BabNodeWithInfo with all fields from BabNode copied.
-</pre> 
+<p>Added information is the node selection score, the variable last branched on and if it was branched up or down. Additionally, what the value of this variable was at the relaxation solution and what bounds the parent node had on that variable. The node selection score is calculated immediately. </p><dl class="section return"><dt>Returns</dt><dd>A <a class="el" href="classbab_base_1_1_bab_node_with_info.html" title="This class represents an node in the B&amp;B-Tree with additional information attached that is used in se...">BabNodeWithInfo</a> with all fields from <a class="el" href="classbab_base_1_1_bab_node.html" title="Class representing a node in the Branch-and-Bound tree. ">BabNode</a> copied. </dd></dl>
+
 </div>
 </div>
 <a id="adc6989ca24a46718549abe6ae0a507a8"></a>
@@ -720,11 +717,11 @@ If the parentNode had hasIncumbent set to true, this field is also set to true f
       </table>
 </div><div class="memdoc">
 
-<p>Returns the next <a class="el" href="classbab_base_1_1_bab_node.html" title="Class representing a node in the Branch-and-Bound tree.">BabNode</a> to process according to the node selection strategy and node selection scores. </p>
-<dl class="section pre"><dt>Precondition</dt><dd>Tree is not empty. Can be checked with <a class="el" href="classbab_base_1_1_brancher.html#a9b2a948ff522a40e63f90956a0b0c01d" title="Returns the number of nodes in the tree.">get_nodes_in_tree()</a>&gt;0 </dd></dl>
+<p>Returns the next <a class="el" href="classbab_base_1_1_bab_node.html" title="Class representing a node in the Branch-and-Bound tree. ">BabNode</a> to process according to the node selection strategy and node selection scores. </p>
+<dl class="section pre"><dt>Precondition</dt><dd>Tree is not empty. Can be checked with <a class="el" href="classbab_base_1_1_brancher.html#a9b2a948ff522a40e63f90956a0b0c01d" title="Returns the number of nodes in the tree. ">get_nodes_in_tree()</a>&gt;0 </dd></dl>
 <dl class="exception"><dt>Exceptions</dt><dd>
   <table class="exception">
-    <tr><td class="paramname">A</td><td><a class="el" href="classbab_base_1_1_branch_and_bound_base_exception.html" title="This class defines the exceptions thrown by BranchAndBoundBase.">BranchAndBoundBaseException</a> if the precondition is not fullfilled. </td></tr>
+    <tr><td class="paramname">A</td><td><a class="el" href="classbab_base_1_1_branch_and_bound_base_exception.html" title="This class defines the exceptions thrown by BranchAndBoundBase. ">BranchAndBoundBaseException</a> if the precondition is not fullfilled. </td></tr>
   </table>
   </dd>
 </dl>
@@ -832,11 +829,11 @@ If the parentNode had hasIncumbent set to true, this field is also set to true f
 <p>Inserts the root node into the tree. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
-    <tr><td class="paramname">rootNode</td><td>Node to be placed at the root. IDs are handled by <a class="el" href="classbab_base_1_1_bab_tree.html" title="Represents the B&amp;B-Tree, manages the way nodes are saved and retrieved and pruned.">BabTree</a> and thus the ID member of rootNode will be replaced. </td></tr>
+    <tr><td class="paramname">rootNode</td><td>Node to be placed at the root. IDs are handled by <a class="el" href="classbab_base_1_1_bab_tree.html" title="Represents the B&amp;B-Tree, manages the way nodes are saved and retrieved and pruned. ">BabTree</a> and thus the ID member of rootNode will be replaced. </td></tr>
   </table>
   </dd>
 </dl>
-<dl class="section pre"><dt>Precondition</dt><dd>The tree is empty. Can be checked by <a class="el" href="classbab_base_1_1_brancher.html#a9b2a948ff522a40e63f90956a0b0c01d" title="Returns the number of nodes in the tree.">get_nodes_in_tree()</a>==0. </dd></dl>
+<dl class="section pre"><dt>Precondition</dt><dd>The tree is empty. Can be checked by <a class="el" href="classbab_base_1_1_brancher.html#a9b2a948ff522a40e63f90956a0b0c01d" title="Returns the number of nodes in the tree. ">get_nodes_in_tree()</a>==0. </dd></dl>
 
 </div>
 </div>
@@ -1264,8 +1261,8 @@ If the parentNode had hasIncumbent set to true, this field is also set to true f
 </div>
 </div>
 <hr/>The documentation for this class was generated from the following files:<ul>
-<li>C:/Users/dobo01/maingo/dep/babbase/inc/<a class="el" href="bab_brancher_8h_source.html">babBrancher.h</a></li>
-<li>C:/Users/dobo01/maingo/dep/babbase/src/<a class="el" href="bab_brancher_8cpp.html">babBrancher.cpp</a></li>
+<li>C:/dobo01/maingo/dep/babbase/inc/<a class="el" href="bab_brancher_8h_source.html">babBrancher.h</a></li>
+<li>C:/dobo01/maingo/dep/babbase/src/<a class="el" href="bab_brancher_8cpp.html">babBrancher.cpp</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -1275,7 +1272,7 @@ If the parentNode had hasIncumbent set to true, this field is also set to true f
     <li class="navelem"><a class="el" href="namespacebab_base.html">babBase</a></li><li class="navelem"><a class="el" href="classbab_base_1_1_brancher.html">Brancher</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classbab_base_1_1_optimization_variable-members.html b/doc/html/classbab_base_1_1_optimization_variable-members.html
index df49a9bfae90c279229989f0fd6a639346887ac7..da1683334bac88891523e25a8e902eb79cf41d5a 100644
--- a/doc/html/classbab_base_1_1_optimization_variable-members.html
+++ b/doc/html/classbab_base_1_1_optimization_variable-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -93,23 +93,25 @@ $(document).ready(function(){initNavTree('classbab_base_1_1_optimization_variabl
 
 <p>This is the complete list of members for <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a>, including all inherited members.</p>
 <table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b">_branchingPriority</a></td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#a73cc92c1533194998ebee64ff851b5da">_check_discrete_bounds</a>()</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#acd60b14930c0261628aae974e42fe954">_bounds</a></td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b">_branchingPriority</a></td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#a7f00570cb2e44f165e2aa3028d215bc3">_feasible</a></td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#aefe950aa38fa5908dbdc2b34477c2bb2">_lowerBound</a></td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#a0678dfc3a0ca4daf488e40b1a0568f66">_infer_and_set_bounds_or_throw</a>()</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#aa48efdfb65587f4dae6325bfdefd6e0a">_name</a></td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#a31a22d0b8661eb373ce5dbd72aedc819">_upperBound</a></td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9">_variableType</a></td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#a66fdae5945a00647d5dce7ba4750ae89">changedBounds</a></td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#a9a19896c3ebd06e0f7a371e336d78434">get_branching_priority</a>() const</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#ab76a8e196cf00c22e3a1d308fa1cd01e">get_lower_bound</a>() const</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#aa62b8c28d96fbcb03b8890081fb31cde">get_mid</a>() const</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#a4b419fcf5d8b88a6d48f3f8beec1c509">get_name</a>() const</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#ad01e5fd245987423c73719114c307a84">get_upper_bound</a>() const</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#a4b56db1c40da9ceb5f0179a7660336ce">get_variable_type</a>() const</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#ae76b3d3ecd4427b2edd1abd06d320b41">has_nonempty_host_set</a>() const</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#aeb17c4ac5c23141e9acc87c5b1453605">operator&lt;&lt;</a>(std::ostream &amp;os, OptimizationVariable const &amp;ov)</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#a51e6b16ace22f32f96a27af09358a695">operator=</a>(const OptimizationVariable &amp;)</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#ace610f731e7f44a53dbf4003ffe9f8d0">_round_and_check_discrete_bounds</a>()</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#af0837b061723724dcb61543724f36d11">_userSpecifiedBounds</a></td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9">_variableType</a></td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#ad2f581a8c131d5381232bce213e60823">bounds_changed_from_user_input</a>() const</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#a9a19896c3ebd06e0f7a371e336d78434">get_branching_priority</a>() const</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#ab76a8e196cf00c22e3a1d308fa1cd01e">get_lower_bound</a>() const</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#aa62b8c28d96fbcb03b8890081fb31cde">get_mid</a>() const</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#a4b419fcf5d8b88a6d48f3f8beec1c509">get_name</a>() const</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#ad01e5fd245987423c73719114c307a84">get_upper_bound</a>() const</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#a74e9435f5bcfa900c9304ceda8f05be5">get_user_lower_bound</a>() const</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#adf64e2c7687fce1a063b7a4a46a2e212">get_user_upper_bound</a>() const</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#a4b56db1c40da9ceb5f0179a7660336ce">get_variable_type</a>() const</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#ae76b3d3ecd4427b2edd1abd06d320b41">has_nonempty_host_set</a>() const</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#a14ab145b3997ff567e535665c30d5138">operator&lt;&lt;</a>(std::ostream &amp;os, const OptimizationVariable &amp;ov)</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
   <tr><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#a4d4a26193d51f99dc5982c86855998a9">OptimizationVariable</a>(const Bounds &amp;variableBoundsIn, const enums::VT variableType, const unsigned branchingPriority, const std::string nameIn)</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#a4edfe0fa4db6c3f25da68d3d81f48c4d">OptimizationVariable</a>(const Bounds &amp;variableBoundsIn, const enums::VT variableType, const unsigned branchingPriority)</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#aeb89a3476698252593c116992b887320">OptimizationVariable</a>(const Bounds &amp;variableBoundsIn, const enums::VT variableType, const std::string nameIn)</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
@@ -118,14 +120,14 @@ $(document).ready(function(){initNavTree('classbab_base_1_1_optimization_variabl
   <tr class="even"><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#a0540b4fc9482daba6ed171e3fa50cccc">OptimizationVariable</a>(const Bounds &amp;variableBoundsIn, const unsigned branchingPriority)</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#af172ca283de8b5159d998a5fe24ad697">OptimizationVariable</a>(const Bounds &amp;variableBoundsIn, const std::string nameIn)</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#a70eb28c9c674d0bd7340266b04f23f1d">OptimizationVariable</a>(const Bounds &amp;variableBoundsIn)</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#a2de71b2cc31ffb891c13a81c37f49596">OptimizationVariable</a>(const enums::VT variableType, const unsigned branchingPriority, const std::string nameIn)</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#a0e7bb183fe70a0312b6efa4f90c96919">OptimizationVariable</a>(const enums::VT variableType, const unsigned branchingPriority)</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#a79789dc4e3c9eca3ef6e4aaa9d1e30f8">OptimizationVariable</a>(const enums::VT variableType, const std::string nameIn)</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#ab11172755c1f597f5409edb49a869189">OptimizationVariable</a>(const unsigned branchingPriority, const std::string nameIn)</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#a2808b6549fa71332930783d874459461">OptimizationVariable</a>(const enums::VT variableType)</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#ade910a2427a58d6bc025d8a3e2141283">OptimizationVariable</a>(const enums::VT variableType, const unsigned branchingPriority, const std::string nameIn)</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#aacf17553e632e11f46ac1ff16a04e543">OptimizationVariable</a>(const enums::VT variableType, const unsigned branchingPriority)</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#a3b4e892b107015b4f503a24ad9214e46">OptimizationVariable</a>(const enums::VT variableType, const std::string nameIn)</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#a907f527439f197b391b10173a8cb763c">OptimizationVariable</a>(const enums::VT variableType)</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#ab11172755c1f597f5409edb49a869189">OptimizationVariable</a>(const unsigned branchingPriority, const std::string nameIn)</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#ab27fdd3e7f17dc5864b5297d8d60896a">OptimizationVariable</a>(const unsigned branchingPriority)</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#ac772e0bfa985c6ba946bd795b85399fa">OptimizationVariable</a>(const std::string nameIn)</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#a38218ac69635c8134dd342d608315293">OptimizationVariable</a>(const OptimizationVariable &amp;variableIn)</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html#acb8b4452071c493bfe746485f18654be">OptimizationVariable</a>()</td><td class="entry"><a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -133,7 +135,7 @@ $(document).ready(function(){initNavTree('classbab_base_1_1_optimization_variabl
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classbab_base_1_1_optimization_variable.html b/doc/html/classbab_base_1_1_optimization_variable.html
index 6791507b5aff9a1e66bdf273134a6d7ab9065ed3..dca8075f3c49bf437f0f4cc5c113742665591d62 100644
--- a/doc/html/classbab_base_1_1_optimization_variable.html
+++ b/doc/html/classbab_base_1_1_optimization_variable.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: babBase::OptimizationVariable Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -87,9 +87,7 @@ $(document).ready(function(){initNavTree('classbab_base_1_1_optimization_variabl
 
 <div class="header">
   <div class="summary">
-<a href="#nested-classes">Classes</a> &#124;
 <a href="#pub-methods">Public Member Functions</a> &#124;
-<a href="#pub-attribs">Public Attributes</a> &#124;
 <a href="#pri-methods">Private Member Functions</a> &#124;
 <a href="#friends">Friends</a> &#124;
 <a href="classbab_base_1_1_optimization_variable-members.html">List of all members</a>  </div>
@@ -103,12 +101,6 @@ $(document).ready(function(){initNavTree('classbab_base_1_1_optimization_variabl
 
 <p><code>#include &lt;<a class="el" href="bab_opt_var_8h_source.html">babOptVar.h</a>&gt;</code></p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
-Classes</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html">ChangedBounds</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Auxiliary struct for storing changed bounds of an optimization variable.  <a href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#details">More...</a><br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
 <tr class="memitem:a4d4a26193d51f99dc5982c86855998a9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html#a4d4a26193d51f99dc5982c86855998a9">OptimizationVariable</a> (const <a class="el" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;variableBoundsIn, const <a class="el" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a> variableType, const unsigned branchingPriority, const std::string nameIn)</td></tr>
@@ -135,36 +127,42 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:a70eb28c9c674d0bd7340266b04f23f1d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html#a70eb28c9c674d0bd7340266b04f23f1d">OptimizationVariable</a> (const <a class="el" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;variableBoundsIn)</td></tr>
 <tr class="memdesc:a70eb28c9c674d0bd7340266b04f23f1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimal constructor requiring only the required information. The variable is thus assumed to be continuous, it is used for branching, and the name is empty.  <a href="#a70eb28c9c674d0bd7340266b04f23f1d">More...</a><br /></td></tr>
 <tr class="separator:a70eb28c9c674d0bd7340266b04f23f1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2de71b2cc31ffb891c13a81c37f49596"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html#a2de71b2cc31ffb891c13a81c37f49596">OptimizationVariable</a> (const <a class="el" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a> variableType, const unsigned branchingPriority, const std::string nameIn)</td></tr>
-<tr class="memdesc:a2de71b2cc31ffb891c13a81c37f49596"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for the case only a variable type, branching priority and a variable name are specified. The variable bounds are not defined. This function currently just throws an exception.  <a href="#a2de71b2cc31ffb891c13a81c37f49596">More...</a><br /></td></tr>
-<tr class="separator:a2de71b2cc31ffb891c13a81c37f49596"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0e7bb183fe70a0312b6efa4f90c96919"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html#a0e7bb183fe70a0312b6efa4f90c96919">OptimizationVariable</a> (const <a class="el" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a> variableType, const unsigned branchingPriority)</td></tr>
-<tr class="memdesc:a0e7bb183fe70a0312b6efa4f90c96919"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for the case only a variable type and branching priority are specified. The variable bounds are not defined. This function currently just throws an exception.  <a href="#a0e7bb183fe70a0312b6efa4f90c96919">More...</a><br /></td></tr>
-<tr class="separator:a0e7bb183fe70a0312b6efa4f90c96919"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a79789dc4e3c9eca3ef6e4aaa9d1e30f8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html#a79789dc4e3c9eca3ef6e4aaa9d1e30f8">OptimizationVariable</a> (const <a class="el" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a> variableType, const std::string nameIn)</td></tr>
-<tr class="memdesc:a79789dc4e3c9eca3ef6e4aaa9d1e30f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for the case only a variable type and a variable name are specified. The variable bounds are not defined. This function currently just throws an exception.  <a href="#a79789dc4e3c9eca3ef6e4aaa9d1e30f8">More...</a><br /></td></tr>
-<tr class="separator:a79789dc4e3c9eca3ef6e4aaa9d1e30f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ade910a2427a58d6bc025d8a3e2141283"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html#ade910a2427a58d6bc025d8a3e2141283">OptimizationVariable</a> (const <a class="el" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a> variableType, const unsigned branchingPriority, const std::string nameIn)</td></tr>
+<tr class="memdesc:ade910a2427a58d6bc025d8a3e2141283"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for the case only a variable type, branching priority and a variable name are specified. The variable bounds are not defined. This function currently just throws an exception, except in case of a binary variable.  <a href="#ade910a2427a58d6bc025d8a3e2141283">More...</a><br /></td></tr>
+<tr class="separator:ade910a2427a58d6bc025d8a3e2141283"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aacf17553e632e11f46ac1ff16a04e543"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html#aacf17553e632e11f46ac1ff16a04e543">OptimizationVariable</a> (const <a class="el" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a> variableType, const unsigned branchingPriority)</td></tr>
+<tr class="memdesc:aacf17553e632e11f46ac1ff16a04e543"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for the case only a variable type and branching priority are specified. The variable bounds are not defined. This function currently just throws an exception, except in case of a binary variable.  <a href="#aacf17553e632e11f46ac1ff16a04e543">More...</a><br /></td></tr>
+<tr class="separator:aacf17553e632e11f46ac1ff16a04e543"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3b4e892b107015b4f503a24ad9214e46"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html#a3b4e892b107015b4f503a24ad9214e46">OptimizationVariable</a> (const <a class="el" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a> variableType, const std::string nameIn)</td></tr>
+<tr class="memdesc:a3b4e892b107015b4f503a24ad9214e46"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for the case only a variable type and a variable name are specified. The variable bounds are not defined. This function currently just throws an exception, except in case of a binary variable.  <a href="#a3b4e892b107015b4f503a24ad9214e46">More...</a><br /></td></tr>
+<tr class="separator:a3b4e892b107015b4f503a24ad9214e46"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a907f527439f197b391b10173a8cb763c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html#a907f527439f197b391b10173a8cb763c">OptimizationVariable</a> (const <a class="el" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a> variableType)</td></tr>
+<tr class="memdesc:a907f527439f197b391b10173a8cb763c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for the case only a variable type is specified. The variable bounds are not defined. This function currently just throws an exception, except in case of a binary variable.  <a href="#a907f527439f197b391b10173a8cb763c">More...</a><br /></td></tr>
+<tr class="separator:a907f527439f197b391b10173a8cb763c"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ab11172755c1f597f5409edb49a869189"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html#ab11172755c1f597f5409edb49a869189">OptimizationVariable</a> (const unsigned branchingPriority, const std::string nameIn)</td></tr>
 <tr class="memdesc:ab11172755c1f597f5409edb49a869189"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for the case only branching priority and a variable name arespecified. The variable bounds are not defined. This function currently just throws an exception.  <a href="#ab11172755c1f597f5409edb49a869189">More...</a><br /></td></tr>
 <tr class="separator:ab11172755c1f597f5409edb49a869189"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2808b6549fa71332930783d874459461"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html#a2808b6549fa71332930783d874459461">OptimizationVariable</a> (const <a class="el" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a> variableType)</td></tr>
-<tr class="memdesc:a2808b6549fa71332930783d874459461"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for the case only a variable type is specified. The variable bounds are not defined. This function currently just throws an exception.  <a href="#a2808b6549fa71332930783d874459461">More...</a><br /></td></tr>
-<tr class="separator:a2808b6549fa71332930783d874459461"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ab27fdd3e7f17dc5864b5297d8d60896a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html#ab27fdd3e7f17dc5864b5297d8d60896a">OptimizationVariable</a> (const unsigned branchingPriority)</td></tr>
 <tr class="memdesc:ab27fdd3e7f17dc5864b5297d8d60896a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for the case only a branching priority is specified. The variable bounds are not defined. This function currently just throws an exception.  <a href="#ab27fdd3e7f17dc5864b5297d8d60896a">More...</a><br /></td></tr>
 <tr class="separator:ab27fdd3e7f17dc5864b5297d8d60896a"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ac772e0bfa985c6ba946bd795b85399fa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html#ac772e0bfa985c6ba946bd795b85399fa">OptimizationVariable</a> (const std::string nameIn)</td></tr>
 <tr class="memdesc:ac772e0bfa985c6ba946bd795b85399fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for the case only a variable name is specified. The variable bounds are not defined. This function currently just throws an exception.  <a href="#ac772e0bfa985c6ba946bd795b85399fa">More...</a><br /></td></tr>
 <tr class="separator:ac772e0bfa985c6ba946bd795b85399fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a38218ac69635c8134dd342d608315293"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html#a38218ac69635c8134dd342d608315293">OptimizationVariable</a> (const <a class="el" href="classbab_base_1_1_optimization_variable.html">OptimizationVariable</a> &amp;variableIn)</td></tr>
-<tr class="memdesc:a38218ac69635c8134dd342d608315293"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor.  <a href="#a38218ac69635c8134dd342d608315293">More...</a><br /></td></tr>
-<tr class="separator:a38218ac69635c8134dd342d608315293"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acb8b4452071c493bfe746485f18654be"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html#acb8b4452071c493bfe746485f18654be">OptimizationVariable</a> ()</td></tr>
+<tr class="memdesc:acb8b4452071c493bfe746485f18654be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor The variable bounds are not defined. This function currently just throws an exception.  <a href="#acb8b4452071c493bfe746485f18654be">More...</a><br /></td></tr>
+<tr class="separator:acb8b4452071c493bfe746485f18654be"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ab76a8e196cf00c22e3a1d308fa1cd01e"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html#ab76a8e196cf00c22e3a1d308fa1cd01e">get_lower_bound</a> () const</td></tr>
 <tr class="memdesc:ab76a8e196cf00c22e3a1d308fa1cd01e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for querying the lower variable bound.  <a href="#ab76a8e196cf00c22e3a1d308fa1cd01e">More...</a><br /></td></tr>
 <tr class="separator:ab76a8e196cf00c22e3a1d308fa1cd01e"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ad01e5fd245987423c73719114c307a84"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html#ad01e5fd245987423c73719114c307a84">get_upper_bound</a> () const</td></tr>
 <tr class="memdesc:ad01e5fd245987423c73719114c307a84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for querying the upper variable bound.  <a href="#ad01e5fd245987423c73719114c307a84">More...</a><br /></td></tr>
 <tr class="separator:ad01e5fd245987423c73719114c307a84"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a74e9435f5bcfa900c9304ceda8f05be5"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html#a74e9435f5bcfa900c9304ceda8f05be5">get_user_lower_bound</a> () const</td></tr>
+<tr class="memdesc:a74e9435f5bcfa900c9304ceda8f05be5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for querying the lower variable bound as originally specified by the user.  <a href="#a74e9435f5bcfa900c9304ceda8f05be5">More...</a><br /></td></tr>
+<tr class="separator:a74e9435f5bcfa900c9304ceda8f05be5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adf64e2c7687fce1a063b7a4a46a2e212"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html#adf64e2c7687fce1a063b7a4a46a2e212">get_user_upper_bound</a> () const</td></tr>
+<tr class="memdesc:adf64e2c7687fce1a063b7a4a46a2e212"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for querying the upper variable bound as originally specified by the user.  <a href="#adf64e2c7687fce1a063b7a4a46a2e212">More...</a><br /></td></tr>
+<tr class="separator:adf64e2c7687fce1a063b7a4a46a2e212"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aa62b8c28d96fbcb03b8890081fb31cde"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html#aa62b8c28d96fbcb03b8890081fb31cde">get_mid</a> () const</td></tr>
 <tr class="memdesc:aa62b8c28d96fbcb03b8890081fb31cde"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for querying the midpoint of the variable range.  <a href="#aa62b8c28d96fbcb03b8890081fb31cde">More...</a><br /></td></tr>
 <tr class="separator:aa62b8c28d96fbcb03b8890081fb31cde"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -180,27 +178,26 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:ae76b3d3ecd4427b2edd1abd06d320b41"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html#ae76b3d3ecd4427b2edd1abd06d320b41">has_nonempty_host_set</a> () const</td></tr>
 <tr class="memdesc:ae76b3d3ecd4427b2edd1abd06d320b41"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for querying whether the host set of the variable is non-empty.  <a href="#ae76b3d3ecd4427b2edd1abd06d320b41">More...</a><br /></td></tr>
 <tr class="separator:ae76b3d3ecd4427b2edd1abd06d320b41"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
-Public Attributes</h2></td></tr>
-<tr class="memitem:a66fdae5945a00647d5dce7ba4750ae89"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html">babBase::OptimizationVariable::ChangedBounds</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html#a66fdae5945a00647d5dce7ba4750ae89">changedBounds</a></td></tr>
-<tr class="separator:a66fdae5945a00647d5dce7ba4750ae89"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad2f581a8c131d5381232bce213e60823"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html#ad2f581a8c131d5381232bce213e60823">bounds_changed_from_user_input</a> () const</td></tr>
+<tr class="memdesc:ad2f581a8c131d5381232bce213e60823"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for querying whether the bounds have been modified (e.g., by rounding to integer values) compared to those specified by the user.  <a href="#ad2f581a8c131d5381232bce213e60823">More...</a><br /></td></tr>
+<tr class="separator:ad2f581a8c131d5381232bce213e60823"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
 Private Member Functions</h2></td></tr>
-<tr class="memitem:a51e6b16ace22f32f96a27af09358a695"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classbab_base_1_1_optimization_variable.html">OptimizationVariable</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html#a51e6b16ace22f32f96a27af09358a695">operator=</a> (const <a class="el" href="classbab_base_1_1_optimization_variable.html">OptimizationVariable</a> &amp;)</td></tr>
-<tr class="separator:a51e6b16ace22f32f96a27af09358a695"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a73cc92c1533194998ebee64ff851b5da"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html#a73cc92c1533194998ebee64ff851b5da">_check_discrete_bounds</a> ()</td></tr>
-<tr class="memdesc:a73cc92c1533194998ebee64ff851b5da"><td class="mdescLeft">&#160;</td><td class="mdescRight">sanity check of user-given bounds on discrete variables  <a href="#a73cc92c1533194998ebee64ff851b5da">More...</a><br /></td></tr>
-<tr class="separator:a73cc92c1533194998ebee64ff851b5da"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace610f731e7f44a53dbf4003ffe9f8d0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html#ace610f731e7f44a53dbf4003ffe9f8d0">_round_and_check_discrete_bounds</a> ()</td></tr>
+<tr class="memdesc:ace610f731e7f44a53dbf4003ffe9f8d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">sanity check of user-given bounds on discrete variables  <a href="#ace610f731e7f44a53dbf4003ffe9f8d0">More...</a><br /></td></tr>
+<tr class="separator:ace610f731e7f44a53dbf4003ffe9f8d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0678dfc3a0ca4daf488e40b1a0568f66"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html#a0678dfc3a0ca4daf488e40b1a0568f66">_infer_and_set_bounds_or_throw</a> ()</td></tr>
+<tr class="memdesc:a0678dfc3a0ca4daf488e40b1a0568f66"><td class="mdescLeft">&#160;</td><td class="mdescRight">Auxiliary function for determining bounds in case the user did not specify any.  <a href="#a0678dfc3a0ca4daf488e40b1a0568f66">More...</a><br /></td></tr>
+<tr class="separator:a0678dfc3a0ca4daf488e40b1a0568f66"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
 Private Attributes</h2></td></tr>
 <tr><td colspan="2"><div class="groupHeader">Internal variables for storing information on the OptimizationVariable</div></td></tr>
-<tr class="memitem:aefe950aa38fa5908dbdc2b34477c2bb2"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html#aefe950aa38fa5908dbdc2b34477c2bb2">_lowerBound</a></td></tr>
-<tr class="separator:aefe950aa38fa5908dbdc2b34477c2bb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a31a22d0b8661eb373ce5dbd72aedc819"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html#a31a22d0b8661eb373ce5dbd72aedc819">_upperBound</a></td></tr>
-<tr class="separator:a31a22d0b8661eb373ce5dbd72aedc819"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acd60b14930c0261628aae974e42fe954"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structbab_base_1_1_bounds.html">Bounds</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html#acd60b14930c0261628aae974e42fe954">_bounds</a></td></tr>
+<tr class="separator:acd60b14930c0261628aae974e42fe954"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af0837b061723724dcb61543724f36d11"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structbab_base_1_1_bounds.html">Bounds</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html#af0837b061723724dcb61543724f36d11">_userSpecifiedBounds</a></td></tr>
+<tr class="separator:af0837b061723724dcb61543724f36d11"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:afc0c39334eb14efb70055d5cf518b0a9"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9">_variableType</a></td></tr>
 <tr class="separator:afc0c39334eb14efb70055d5cf518b0a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a7b9ecadcd824e5d73ffc0358aad8d35b"><td class="memItemLeft" align="right" valign="top">const unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b">_branchingPriority</a></td></tr>
@@ -212,13 +209,13 @@ Private Attributes</h2></td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
 Friends</h2></td></tr>
-<tr class="memitem:aeb17c4ac5c23141e9acc87c5b1453605"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html#aeb17c4ac5c23141e9acc87c5b1453605">operator&lt;&lt;</a> (std::ostream &amp;os, <a class="el" href="classbab_base_1_1_optimization_variable.html">OptimizationVariable</a> const &amp;ov)</td></tr>
-<tr class="memdesc:aeb17c4ac5c23141e9acc87c5b1453605"><td class="mdescLeft">&#160;</td><td class="mdescRight">operator &lt;&lt; overloaded for <a class="el" href="structbab_base_1_1_bounds.html" title="Auxiliary struct for representing bounds on an optimization variable.">Bounds</a> for easier output  <a href="#aeb17c4ac5c23141e9acc87c5b1453605">More...</a><br /></td></tr>
-<tr class="separator:aeb17c4ac5c23141e9acc87c5b1453605"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a14ab145b3997ff567e535665c30d5138"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_optimization_variable.html#a14ab145b3997ff567e535665c30d5138">operator&lt;&lt;</a> (std::ostream &amp;os, const <a class="el" href="classbab_base_1_1_optimization_variable.html">OptimizationVariable</a> &amp;ov)</td></tr>
+<tr class="memdesc:a14ab145b3997ff567e535665c30d5138"><td class="mdescLeft">&#160;</td><td class="mdescRight">operator &lt;&lt; overloaded for <a class="el" href="structbab_base_1_1_bounds.html" title="Auxiliary struct for representing bounds on an optimization variable. ">Bounds</a> for easier output  <a href="#a14ab145b3997ff567e535665c30d5138">More...</a><br /></td></tr>
+<tr class="separator:a14ab145b3997ff567e535665c30d5138"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><p>Class for representing an optimization variable specified by the user. </p>
-<p>An optimization variable is characterized by an upper and lower bound, a variable type (<a class="el" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b" title="Enum for representing the Variable Type of an optimization variable as specified by the user.">enums::VT</a>, optional), a branching priority (BP, optional), and a name (optional), all of which are private members. Once instantiated, it cannot be modified. Each optimization variable also contains a flag (_feasible) that indicates if the bounds are consistent (lower bound &lt;= upper bound) and in case of integer variables, whether the interval contains an integer value </p>
+<p>An optimization variable is characterized by an upper and lower bound, a variable type (<a class="el" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b" title="Enum for representing the Variable Type of an optimization variable as specified by the user...">enums::VT</a>, optional), a branching priority (BP, optional), and a name (optional), all of which are private members. Once instantiated, it cannot be modified. Each optimization variable also contains a flag (_feasible) that indicates if the bounds are consistent (lower bound &lt;= upper bound) and in case of integer variables, whether the interval contains an integer value </p>
 </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
 <a id="a4d4a26193d51f99dc5982c86855998a9"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#a4d4a26193d51f99dc5982c86855998a9">&#9670;&nbsp;</a></span>OptimizationVariable() <span class="overload">[1/16]</span></h2>
@@ -269,7 +266,7 @@ Friends</h2></td></tr>
 <p>Constructor for the case all three optional parameters are used. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">variableBoundsIn</td><td>is the <a class="el" href="structbab_base_1_1_bounds.html" title="Auxiliary struct for representing bounds on an optimization variable.">Bounds</a> object representing lower and upper bounds on the optimization variable </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">variableBoundsIn</td><td>is the <a class="el" href="structbab_base_1_1_bounds.html" title="Auxiliary struct for representing bounds on an optimization variable. ">Bounds</a> object representing lower and upper bounds on the optimization variable </td></tr>
     <tr><td class="paramdir">[in]</td><td class="paramname">variableType</td><td>is the Variable Type of this variable </td></tr>
     <tr><td class="paramdir">[in]</td><td class="paramname">branchingPriority</td><td>is the Branching Priority of this variable </td></tr>
     <tr><td class="paramdir">[in]</td><td class="paramname">nameIn</td><td>is the name of this variable </td></tr>
@@ -322,7 +319,7 @@ Friends</h2></td></tr>
 <p>Constructor for the case only a variable type and a branching priority is specified in addition to the bounds. The variable name is empty. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">variableBoundsIn</td><td>is the <a class="el" href="structbab_base_1_1_bounds.html" title="Auxiliary struct for representing bounds on an optimization variable.">Bounds</a> object representing lower and upper bounds on the optimization variable </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">variableBoundsIn</td><td>is the <a class="el" href="structbab_base_1_1_bounds.html" title="Auxiliary struct for representing bounds on an optimization variable. ">Bounds</a> object representing lower and upper bounds on the optimization variable </td></tr>
     <tr><td class="paramdir">[in]</td><td class="paramname">variableType</td><td>is the Variable Type of this variable </td></tr>
     <tr><td class="paramdir">[in]</td><td class="paramname">branchingPriority</td><td>is the Branching Priority of this variable </td></tr>
   </table>
@@ -374,7 +371,7 @@ Friends</h2></td></tr>
 <p>Constructor for the case only a variable type and a name is specified in addition to the bounds. The variable is used for branching. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">variableBoundsIn</td><td>is the <a class="el" href="structbab_base_1_1_bounds.html" title="Auxiliary struct for representing bounds on an optimization variable.">Bounds</a> object representing lower and upper bounds on the optimization variable </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">variableBoundsIn</td><td>is the <a class="el" href="structbab_base_1_1_bounds.html" title="Auxiliary struct for representing bounds on an optimization variable. ">Bounds</a> object representing lower and upper bounds on the optimization variable </td></tr>
     <tr><td class="paramdir">[in]</td><td class="paramname">variableType</td><td>is the Variable Type of this variable </td></tr>
     <tr><td class="paramdir">[in]</td><td class="paramname">nameIn</td><td>is the name of this variable </td></tr>
   </table>
@@ -426,7 +423,7 @@ Friends</h2></td></tr>
 <p>Constructor for the case only a branching priority and a name is specified in addition to the bounds. The variable is assumed to be continuous. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">variableBoundsIn</td><td>is the <a class="el" href="structbab_base_1_1_bounds.html" title="Auxiliary struct for representing bounds on an optimization variable.">Bounds</a> object representing lower and upper bounds on the optimization variable </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">variableBoundsIn</td><td>is the <a class="el" href="structbab_base_1_1_bounds.html" title="Auxiliary struct for representing bounds on an optimization variable. ">Bounds</a> object representing lower and upper bounds on the optimization variable </td></tr>
     <tr><td class="paramdir">[in]</td><td class="paramname">branchingPriority</td><td>is the Branching Priority of this variable </td></tr>
     <tr><td class="paramdir">[in]</td><td class="paramname">nameIn</td><td>is the name of this variable </td></tr>
   </table>
@@ -472,7 +469,7 @@ Friends</h2></td></tr>
 <p>Constructor for the case only a variable type is specified in addition to the bounds. The variable is used for branching, and the name is empty. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">variableBoundsIn</td><td>is the <a class="el" href="structbab_base_1_1_bounds.html" title="Auxiliary struct for representing bounds on an optimization variable.">Bounds</a> object representing lower and upper bounds on the optimization variable </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">variableBoundsIn</td><td>is the <a class="el" href="structbab_base_1_1_bounds.html" title="Auxiliary struct for representing bounds on an optimization variable. ">Bounds</a> object representing lower and upper bounds on the optimization variable </td></tr>
     <tr><td class="paramdir">[in]</td><td class="paramname">variableType</td><td>is the Variable Type of this variable </td></tr>
   </table>
   </dd>
@@ -517,7 +514,7 @@ Friends</h2></td></tr>
 <p>Constructor for the case only a branching priority is specified in addition to the bounds. The variable is thus assumed to be continuous, and the name is empty. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">variableBoundsIn</td><td>is the <a class="el" href="structbab_base_1_1_bounds.html" title="Auxiliary struct for representing bounds on an optimization variable.">Bounds</a> object representing lower and upper bounds on the optimization variable </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">variableBoundsIn</td><td>is the <a class="el" href="structbab_base_1_1_bounds.html" title="Auxiliary struct for representing bounds on an optimization variable. ">Bounds</a> object representing lower and upper bounds on the optimization variable </td></tr>
     <tr><td class="paramdir">[in]</td><td class="paramname">branchingPriority</td><td>is the Branching Priority of this variable </td></tr>
   </table>
   </dd>
@@ -562,7 +559,7 @@ Friends</h2></td></tr>
 <p>Constructor for the case only a name is specified in addition to the bounds. The variable is thus assumed to be continuous, and it is used for branching. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">variableBoundsIn</td><td>is the <a class="el" href="structbab_base_1_1_bounds.html" title="Auxiliary struct for representing bounds on an optimization variable.">Bounds</a> object representing lower and upper bounds on the optimization variable </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">variableBoundsIn</td><td>is the <a class="el" href="structbab_base_1_1_bounds.html" title="Auxiliary struct for representing bounds on an optimization variable. ">Bounds</a> object representing lower and upper bounds on the optimization variable </td></tr>
     <tr><td class="paramdir">[in]</td><td class="paramname">nameIn</td><td>is the name of this variable </td></tr>
   </table>
   </dd>
@@ -597,21 +594,24 @@ Friends</h2></td></tr>
 <p>Minimal constructor requiring only the required information. The variable is thus assumed to be continuous, it is used for branching, and the name is empty. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">variableBoundsIn</td><td>is the <a class="el" href="structbab_base_1_1_bounds.html" title="Auxiliary struct for representing bounds on an optimization variable.">Bounds</a> object representing lower and upper bounds on the optimization variable </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">variableBoundsIn</td><td>is the <a class="el" href="structbab_base_1_1_bounds.html" title="Auxiliary struct for representing bounds on an optimization variable. ">Bounds</a> object representing lower and upper bounds on the optimization variable </td></tr>
   </table>
   </dd>
 </dl>
 
 </div>
 </div>
-<a id="a2de71b2cc31ffb891c13a81c37f49596"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a2de71b2cc31ffb891c13a81c37f49596">&#9670;&nbsp;</a></span>OptimizationVariable() <span class="overload">[9/16]</span></h2>
+<a id="ade910a2427a58d6bc025d8a3e2141283"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ade910a2427a58d6bc025d8a3e2141283">&#9670;&nbsp;</a></span>OptimizationVariable() <span class="overload">[9/16]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">OptimizationVariable::OptimizationVariable </td>
+          <td class="memname">babBase::OptimizationVariable::OptimizationVariable </td>
           <td>(</td>
           <td class="paramtype">const <a class="el" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a>&#160;</td>
           <td class="paramname"><em>variableType</em>, </td>
@@ -634,9 +634,14 @@ Friends</h2></td></tr>
           <td></td><td></td>
         </tr>
       </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
 </div><div class="memdoc">
 
-<p>Constructor for the case only a variable type, branching priority and a variable name are specified. The variable bounds are not defined. This function currently just throws an exception. </p>
+<p>Constructor for the case only a variable type, branching priority and a variable name are specified. The variable bounds are not defined. This function currently just throws an exception, except in case of a binary variable. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">variableType</td><td>is the Variable Type of this variable </td></tr>
@@ -648,14 +653,17 @@ Friends</h2></td></tr>
 
 </div>
 </div>
-<a id="a0e7bb183fe70a0312b6efa4f90c96919"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a0e7bb183fe70a0312b6efa4f90c96919">&#9670;&nbsp;</a></span>OptimizationVariable() <span class="overload">[10/16]</span></h2>
+<a id="aacf17553e632e11f46ac1ff16a04e543"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aacf17553e632e11f46ac1ff16a04e543">&#9670;&nbsp;</a></span>OptimizationVariable() <span class="overload">[10/16]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">OptimizationVariable::OptimizationVariable </td>
+          <td class="memname">babBase::OptimizationVariable::OptimizationVariable </td>
           <td>(</td>
           <td class="paramtype">const <a class="el" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a>&#160;</td>
           <td class="paramname"><em>variableType</em>, </td>
@@ -672,9 +680,14 @@ Friends</h2></td></tr>
           <td></td><td></td>
         </tr>
       </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
 </div><div class="memdoc">
 
-<p>Constructor for the case only a variable type and branching priority are specified. The variable bounds are not defined. This function currently just throws an exception. </p>
+<p>Constructor for the case only a variable type and branching priority are specified. The variable bounds are not defined. This function currently just throws an exception, except in case of a binary variable. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">variableType</td><td>is the Variable Type of this variable </td></tr>
@@ -685,14 +698,17 @@ Friends</h2></td></tr>
 
 </div>
 </div>
-<a id="a79789dc4e3c9eca3ef6e4aaa9d1e30f8"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a79789dc4e3c9eca3ef6e4aaa9d1e30f8">&#9670;&nbsp;</a></span>OptimizationVariable() <span class="overload">[11/16]</span></h2>
+<a id="a3b4e892b107015b4f503a24ad9214e46"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3b4e892b107015b4f503a24ad9214e46">&#9670;&nbsp;</a></span>OptimizationVariable() <span class="overload">[11/16]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">OptimizationVariable::OptimizationVariable </td>
+          <td class="memname">babBase::OptimizationVariable::OptimizationVariable </td>
           <td>(</td>
           <td class="paramtype">const <a class="el" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a>&#160;</td>
           <td class="paramname"><em>variableType</em>, </td>
@@ -709,9 +725,14 @@ Friends</h2></td></tr>
           <td></td><td></td>
         </tr>
       </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
 </div><div class="memdoc">
 
-<p>Constructor for the case only a variable type and a variable name are specified. The variable bounds are not defined. This function currently just throws an exception. </p>
+<p>Constructor for the case only a variable type and a variable name are specified. The variable bounds are not defined. This function currently just throws an exception, except in case of a binary variable. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">variableType</td><td>is the Variable Type of this variable </td></tr>
@@ -722,45 +743,42 @@ Friends</h2></td></tr>
 
 </div>
 </div>
-<a id="ab11172755c1f597f5409edb49a869189"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ab11172755c1f597f5409edb49a869189">&#9670;&nbsp;</a></span>OptimizationVariable() <span class="overload">[12/16]</span></h2>
+<a id="a907f527439f197b391b10173a8cb763c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a907f527439f197b391b10173a8cb763c">&#9670;&nbsp;</a></span>OptimizationVariable() <span class="overload">[12/16]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">OptimizationVariable::OptimizationVariable </td>
+          <td class="memname">babBase::OptimizationVariable::OptimizationVariable </td>
           <td>(</td>
-          <td class="paramtype">const unsigned&#160;</td>
-          <td class="paramname"><em>branchingPriority</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const std::string&#160;</td>
-          <td class="paramname"><em>nameIn</em>&#160;</td>
-        </tr>
-        <tr>
+          <td class="paramtype">const <a class="el" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a>&#160;</td>
+          <td class="paramname"><em>variableType</em></td><td>)</td>
           <td></td>
-          <td>)</td>
-          <td></td><td></td>
         </tr>
       </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
 </div><div class="memdoc">
 
-<p>Constructor for the case only branching priority and a variable name arespecified. The variable bounds are not defined. This function currently just throws an exception. </p>
+<p>Constructor for the case only a variable type is specified. The variable bounds are not defined. This function currently just throws an exception, except in case of a binary variable. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">branchingPriority</td><td>is the Branching Priority of this variable </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">nameIn</td><td>is the name of this variable </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">variableType</td><td>is the Variable Type of this variable </td></tr>
   </table>
   </dd>
 </dl>
 
 </div>
 </div>
-<a id="a2808b6549fa71332930783d874459461"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a2808b6549fa71332930783d874459461">&#9670;&nbsp;</a></span>OptimizationVariable() <span class="overload">[13/16]</span></h2>
+<a id="ab11172755c1f597f5409edb49a869189"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab11172755c1f597f5409edb49a869189">&#9670;&nbsp;</a></span>OptimizationVariable() <span class="overload">[13/16]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -768,17 +786,28 @@ Friends</h2></td></tr>
         <tr>
           <td class="memname">OptimizationVariable::OptimizationVariable </td>
           <td>(</td>
-          <td class="paramtype">const <a class="el" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a>&#160;</td>
-          <td class="paramname"><em>variableType</em></td><td>)</td>
+          <td class="paramtype">const unsigned&#160;</td>
+          <td class="paramname"><em>branchingPriority</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
           <td></td>
+          <td class="paramtype">const std::string&#160;</td>
+          <td class="paramname"><em>nameIn</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<p>Constructor for the case only a variable type is specified. The variable bounds are not defined. This function currently just throws an exception. </p>
+<p>Constructor for the case only branching priority and a variable name arespecified. The variable bounds are not defined. This function currently just throws an exception. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">variableType</td><td>is the Variable Type of this variable </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">branchingPriority</td><td>is the Branching Priority of this variable </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">nameIn</td><td>is the name of this variable </td></tr>
   </table>
   </dd>
 </dl>
@@ -837,8 +866,28 @@ Friends</h2></td></tr>
 
 </div>
 </div>
-<a id="a38218ac69635c8134dd342d608315293"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a38218ac69635c8134dd342d608315293">&#9670;&nbsp;</a></span>OptimizationVariable() <span class="overload">[16/16]</span></h2>
+<a id="acb8b4452071c493bfe746485f18654be"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acb8b4452071c493bfe746485f18654be">&#9670;&nbsp;</a></span>OptimizationVariable() <span class="overload">[16/16]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">OptimizationVariable::OptimizationVariable </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Default constructor The variable bounds are not defined. This function currently just throws an exception. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a0678dfc3a0ca4daf488e40b1a0568f66"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0678dfc3a0ca4daf488e40b1a0568f66">&#9670;&nbsp;</a></span>_infer_and_set_bounds_or_throw()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -847,33 +896,26 @@ Friends</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">babBase::OptimizationVariable::OptimizationVariable </td>
+          <td class="memname">void OptimizationVariable::_infer_and_set_bounds_or_throw </td>
           <td>(</td>
-          <td class="paramtype">const <a class="el" href="classbab_base_1_1_optimization_variable.html">OptimizationVariable</a> &amp;&#160;</td>
-          <td class="paramname"><em>variableIn</em></td><td>)</td>
+          <td class="paramname"></td><td>)</td>
           <td></td>
         </tr>
       </table>
   </td>
   <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
   </tr>
 </table>
 </div><div class="memdoc">
 
-<p>Copy constructor. </p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">variableIn</td><td>is the optimization variable to be copied </td></tr>
-  </table>
-  </dd>
-</dl>
+<p>Auxiliary function for determining bounds in case the user did not specify any. </p>
+<p>Attemps to infer bounds from other information (e.g., variable type). If this is possible, the inferred bounds are stored in the corresponding member variables. If not, an exception is thrown. </p>
 
 </div>
 </div>
-<h2 class="groupheader">Member Function Documentation</h2>
-<a id="a73cc92c1533194998ebee64ff851b5da"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a73cc92c1533194998ebee64ff851b5da">&#9670;&nbsp;</a></span>_check_discrete_bounds()</h2>
+<a id="ace610f731e7f44a53dbf4003ffe9f8d0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ace610f731e7f44a53dbf4003ffe9f8d0">&#9670;&nbsp;</a></span>_round_and_check_discrete_bounds()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -882,7 +924,7 @@ Friends</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">void OptimizationVariable::_check_discrete_bounds </td>
+          <td class="memname">void OptimizationVariable::_round_and_check_discrete_bounds </td>
           <td>(</td>
           <td class="paramname"></td><td>)</td>
           <td></td>
@@ -898,6 +940,33 @@ Friends</h2></td></tr>
 <p>sanity check of user-given bounds on discrete variables </p>
 <p>Rounds non-discrete bounds to discrete values and updates the private member _feasible depending on whether discrete ub &lt; discrete lb. </p>
 
+</div>
+</div>
+<a id="ad2f581a8c131d5381232bce213e60823"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad2f581a8c131d5381232bce213e60823">&#9670;&nbsp;</a></span>bounds_changed_from_user_input()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool babBase::OptimizationVariable::bounds_changed_from_user_input </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Function for querying whether the bounds have been modified (e.g., by rounding to integer values) compared to those specified by the user. </p>
+
 </div>
 </div>
 <a id="a9a19896c3ebd06e0f7a371e336d78434"></a>
@@ -1035,8 +1104,8 @@ Friends</h2></td></tr>
 
 </div>
 </div>
-<a id="a4b56db1c40da9ceb5f0179a7660336ce"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a4b56db1c40da9ceb5f0179a7660336ce">&#9670;&nbsp;</a></span>get_variable_type()</h2>
+<a id="a74e9435f5bcfa900c9304ceda8f05be5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a74e9435f5bcfa900c9304ceda8f05be5">&#9670;&nbsp;</a></span>get_user_lower_bound()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1045,7 +1114,7 @@ Friends</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a> babBase::OptimizationVariable::get_variable_type </td>
+          <td class="memname">double babBase::OptimizationVariable::get_user_lower_bound </td>
           <td>(</td>
           <td class="paramname"></td><td>)</td>
           <td> const</td>
@@ -1058,12 +1127,12 @@ Friends</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Function for querying the variable type. </p>
+<p>Function for querying the lower variable bound as originally specified by the user. </p>
 
 </div>
 </div>
-<a id="ae76b3d3ecd4427b2edd1abd06d320b41"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ae76b3d3ecd4427b2edd1abd06d320b41">&#9670;&nbsp;</a></span>has_nonempty_host_set()</h2>
+<a id="adf64e2c7687fce1a063b7a4a46a2e212"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#adf64e2c7687fce1a063b7a4a46a2e212">&#9670;&nbsp;</a></span>get_user_upper_bound()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1072,7 +1141,7 @@ Friends</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">bool babBase::OptimizationVariable::has_nonempty_host_set </td>
+          <td class="memname">double babBase::OptimizationVariable::get_user_upper_bound </td>
           <td>(</td>
           <td class="paramname"></td><td>)</td>
           <td> const</td>
@@ -1085,12 +1154,12 @@ Friends</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Function for querying whether the host set of the variable is non-empty. </p>
+<p>Function for querying the upper variable bound as originally specified by the user. </p>
 
 </div>
 </div>
-<a id="a51e6b16ace22f32f96a27af09358a695"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a51e6b16ace22f32f96a27af09358a695">&#9670;&nbsp;</a></span>operator=()</h2>
+<a id="a4b56db1c40da9ceb5f0179a7660336ce"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4b56db1c40da9ceb5f0179a7660336ce">&#9670;&nbsp;</a></span>get_variable_type()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1099,26 +1168,53 @@ Friends</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classbab_base_1_1_optimization_variable.html">OptimizationVariable</a>&amp; babBase::OptimizationVariable::operator= </td>
+          <td class="memname"><a class="el" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">enums::VT</a> babBase::OptimizationVariable::get_variable_type </td>
           <td>(</td>
-          <td class="paramtype">const <a class="el" href="classbab_base_1_1_optimization_variable.html">OptimizationVariable</a> &amp;&#160;</td>
           <td class="paramname"></td><td>)</td>
-          <td></td>
+          <td> const</td>
         </tr>
       </table>
   </td>
   <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">private</span></span>  </td>
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Function for querying the variable type. </p>
+
+</div>
+</div>
+<a id="ae76b3d3ecd4427b2edd1abd06d320b41"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae76b3d3ecd4427b2edd1abd06d320b41">&#9670;&nbsp;</a></span>has_nonempty_host_set()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool babBase::OptimizationVariable::has_nonempty_host_set </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
   </tr>
 </table>
 </div><div class="memdoc">
-<p>private declaration of copy assignment operator to prevent accidental use (standard copy would give a copy with const bounds etc) </p>
+
+<p>Function for querying whether the host set of the variable is non-empty. </p>
 
 </div>
 </div>
 <h2 class="groupheader">Friends And Related Function Documentation</h2>
-<a id="aeb17c4ac5c23141e9acc87c5b1453605"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aeb17c4ac5c23141e9acc87c5b1453605">&#9670;&nbsp;</a></span>operator&lt;&lt;</h2>
+<a id="a14ab145b3997ff567e535665c30d5138"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a14ab145b3997ff567e535665c30d5138">&#9670;&nbsp;</a></span>operator&lt;&lt;</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1135,7 +1231,7 @@ Friends</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="classbab_base_1_1_optimization_variable.html">OptimizationVariable</a> const &amp;&#160;</td>
+          <td class="paramtype">const <a class="el" href="classbab_base_1_1_optimization_variable.html">OptimizationVariable</a> &amp;&#160;</td>
           <td class="paramname"><em>ov</em>&#160;</td>
         </tr>
         <tr>
@@ -1151,7 +1247,7 @@ Friends</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>operator &lt;&lt; overloaded for <a class="el" href="structbab_base_1_1_bounds.html" title="Auxiliary struct for representing bounds on an optimization variable.">Bounds</a> for easier output </p>
+<p>operator &lt;&lt; overloaded for <a class="el" href="structbab_base_1_1_bounds.html" title="Auxiliary struct for representing bounds on an optimization variable. ">Bounds</a> for easier output </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[out]</td><td class="paramname">os</td><td>is the outstream to be written to </td></tr>
@@ -1163,8 +1259,8 @@ Friends</h2></td></tr>
 </div>
 </div>
 <h2 class="groupheader">Member Data Documentation</h2>
-<a id="a7b9ecadcd824e5d73ffc0358aad8d35b"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a7b9ecadcd824e5d73ffc0358aad8d35b">&#9670;&nbsp;</a></span>_branchingPriority</h2>
+<a id="acd60b14930c0261628aae974e42fe954"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acd60b14930c0261628aae974e42fe954">&#9670;&nbsp;</a></span>_bounds</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1173,7 +1269,7 @@ Friends</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">const unsigned babBase::OptimizationVariable::_branchingPriority</td>
+          <td class="memname"><a class="el" href="structbab_base_1_1_bounds.html">Bounds</a> babBase::OptimizationVariable::_bounds</td>
         </tr>
       </table>
   </td>
@@ -1182,12 +1278,12 @@ Friends</h2></td></tr>
   </tr>
 </table>
 </div><div class="memdoc">
-<p>optional: whether this variable should be branched on (default: 1) </p>
+<p>bounds on the optimization variable (potentially altered from the user-specified through rounding in case of discrete variables) </p>
 
 </div>
 </div>
-<a id="a7f00570cb2e44f165e2aa3028d215bc3"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a7f00570cb2e44f165e2aa3028d215bc3">&#9670;&nbsp;</a></span>_feasible</h2>
+<a id="a7b9ecadcd824e5d73ffc0358aad8d35b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7b9ecadcd824e5d73ffc0358aad8d35b">&#9670;&nbsp;</a></span>_branchingPriority</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1196,7 +1292,7 @@ Friends</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">bool babBase::OptimizationVariable::_feasible</td>
+          <td class="memname">const unsigned babBase::OptimizationVariable::_branchingPriority</td>
         </tr>
       </table>
   </td>
@@ -1205,12 +1301,12 @@ Friends</h2></td></tr>
   </tr>
 </table>
 </div><div class="memdoc">
-<p>flag indicating whether the variable has a non-empty host set (upper bound &gt;= lower bound; contains integer/binary values where approriate) </p>
+<p>optional: whether this variable should be branched on (default: 1) </p>
 
 </div>
 </div>
-<a id="aefe950aa38fa5908dbdc2b34477c2bb2"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aefe950aa38fa5908dbdc2b34477c2bb2">&#9670;&nbsp;</a></span>_lowerBound</h2>
+<a id="a7f00570cb2e44f165e2aa3028d215bc3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7f00570cb2e44f165e2aa3028d215bc3">&#9670;&nbsp;</a></span>_feasible</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1219,7 +1315,7 @@ Friends</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">double babBase::OptimizationVariable::_lowerBound</td>
+          <td class="memname">bool babBase::OptimizationVariable::_feasible</td>
         </tr>
       </table>
   </td>
@@ -1228,7 +1324,7 @@ Friends</h2></td></tr>
   </tr>
 </table>
 </div><div class="memdoc">
-<p>lower bound on the optimization variable </p>
+<p>flag indicating whether the variable has a non-empty host set (upper bound &gt;= lower bound; contains integer/binary values where approriate) </p>
 
 </div>
 </div>
@@ -1255,8 +1351,8 @@ Friends</h2></td></tr>
 
 </div>
 </div>
-<a id="a31a22d0b8661eb373ce5dbd72aedc819"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a31a22d0b8661eb373ce5dbd72aedc819">&#9670;&nbsp;</a></span>_upperBound</h2>
+<a id="af0837b061723724dcb61543724f36d11"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af0837b061723724dcb61543724f36d11">&#9670;&nbsp;</a></span>_userSpecifiedBounds</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1265,7 +1361,7 @@ Friends</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">double babBase::OptimizationVariable::_upperBound</td>
+          <td class="memname">const <a class="el" href="structbab_base_1_1_bounds.html">Bounds</a> babBase::OptimizationVariable::_userSpecifiedBounds</td>
         </tr>
       </table>
   </td>
@@ -1274,7 +1370,7 @@ Friends</h2></td></tr>
   </tr>
 </table>
 </div><div class="memdoc">
-<p>upper bound on the optimization variable </p>
+<p>bounds on the optimization variable as specified by the user (i.e., before potential rounding in case of discrete variables) </p>
 
 </div>
 </div>
@@ -1299,26 +1395,11 @@ Friends</h2></td></tr>
 </div><div class="memdoc">
 <p>optional: type of variable (default: <a class="el" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48ba0b98d296343ee5946f17e4c1c2cfa1f7">enums::VT_CONTINUOUS</a>) </p>
 
-</div>
-</div>
-<a id="a66fdae5945a00647d5dce7ba4750ae89"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a66fdae5945a00647d5dce7ba4750ae89">&#9670;&nbsp;</a></span>changedBounds</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">struct <a class="el" href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html">babBase::OptimizationVariable::ChangedBounds</a>  babBase::OptimizationVariable::changedBounds</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>object holding information on possibly changed bound of the optimization variable </p>
-
 </div>
 </div>
 <hr/>The documentation for this class was generated from the following files:<ul>
-<li>C:/Users/dobo01/maingo/dep/babbase/inc/<a class="el" href="bab_opt_var_8h_source.html">babOptVar.h</a></li>
-<li>C:/Users/dobo01/maingo/dep/babbase/src/<a class="el" href="bab_opt_var_8cpp.html">babOptVar.cpp</a></li>
+<li>C:/dobo01/maingo/dep/babbase/inc/<a class="el" href="bab_opt_var_8h_source.html">babOptVar.h</a></li>
+<li>C:/dobo01/maingo/dep/babbase/src/<a class="el" href="bab_opt_var_8cpp.html">babOptVar.cpp</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -1328,7 +1409,7 @@ Friends</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacebab_base.html">babBase</a></li><li class="navelem"><a class="el" href="classbab_base_1_1_optimization_variable.html">OptimizationVariable</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classbab_base_1_1_optimization_variable.js b/doc/html/classbab_base_1_1_optimization_variable.js
index 89d4613762069a032efdc85dd609f2b747ea9d1d..66c7bf971f1de5f14a2947e81f093ea08eae76ff 100644
--- a/doc/html/classbab_base_1_1_optimization_variable.js
+++ b/doc/html/classbab_base_1_1_optimization_variable.js
@@ -1,6 +1,5 @@
 var classbab_base_1_1_optimization_variable =
 [
-    [ "ChangedBounds", "structbab_base_1_1_optimization_variable_1_1_changed_bounds.html", "structbab_base_1_1_optimization_variable_1_1_changed_bounds" ],
     [ "OptimizationVariable", "classbab_base_1_1_optimization_variable.html#a4d4a26193d51f99dc5982c86855998a9", null ],
     [ "OptimizationVariable", "classbab_base_1_1_optimization_variable.html#a4edfe0fa4db6c3f25da68d3d81f48c4d", null ],
     [ "OptimizationVariable", "classbab_base_1_1_optimization_variable.html#aeb89a3476698252593c116992b887320", null ],
@@ -9,29 +8,31 @@ var classbab_base_1_1_optimization_variable =
     [ "OptimizationVariable", "classbab_base_1_1_optimization_variable.html#a0540b4fc9482daba6ed171e3fa50cccc", null ],
     [ "OptimizationVariable", "classbab_base_1_1_optimization_variable.html#af172ca283de8b5159d998a5fe24ad697", null ],
     [ "OptimizationVariable", "classbab_base_1_1_optimization_variable.html#a70eb28c9c674d0bd7340266b04f23f1d", null ],
-    [ "OptimizationVariable", "classbab_base_1_1_optimization_variable.html#a2de71b2cc31ffb891c13a81c37f49596", null ],
-    [ "OptimizationVariable", "classbab_base_1_1_optimization_variable.html#a0e7bb183fe70a0312b6efa4f90c96919", null ],
-    [ "OptimizationVariable", "classbab_base_1_1_optimization_variable.html#a79789dc4e3c9eca3ef6e4aaa9d1e30f8", null ],
+    [ "OptimizationVariable", "classbab_base_1_1_optimization_variable.html#ade910a2427a58d6bc025d8a3e2141283", null ],
+    [ "OptimizationVariable", "classbab_base_1_1_optimization_variable.html#aacf17553e632e11f46ac1ff16a04e543", null ],
+    [ "OptimizationVariable", "classbab_base_1_1_optimization_variable.html#a3b4e892b107015b4f503a24ad9214e46", null ],
+    [ "OptimizationVariable", "classbab_base_1_1_optimization_variable.html#a907f527439f197b391b10173a8cb763c", null ],
     [ "OptimizationVariable", "classbab_base_1_1_optimization_variable.html#ab11172755c1f597f5409edb49a869189", null ],
-    [ "OptimizationVariable", "classbab_base_1_1_optimization_variable.html#a2808b6549fa71332930783d874459461", null ],
     [ "OptimizationVariable", "classbab_base_1_1_optimization_variable.html#ab27fdd3e7f17dc5864b5297d8d60896a", null ],
     [ "OptimizationVariable", "classbab_base_1_1_optimization_variable.html#ac772e0bfa985c6ba946bd795b85399fa", null ],
-    [ "OptimizationVariable", "classbab_base_1_1_optimization_variable.html#a38218ac69635c8134dd342d608315293", null ],
-    [ "_check_discrete_bounds", "classbab_base_1_1_optimization_variable.html#a73cc92c1533194998ebee64ff851b5da", null ],
+    [ "OptimizationVariable", "classbab_base_1_1_optimization_variable.html#acb8b4452071c493bfe746485f18654be", null ],
+    [ "_infer_and_set_bounds_or_throw", "classbab_base_1_1_optimization_variable.html#a0678dfc3a0ca4daf488e40b1a0568f66", null ],
+    [ "_round_and_check_discrete_bounds", "classbab_base_1_1_optimization_variable.html#ace610f731e7f44a53dbf4003ffe9f8d0", null ],
+    [ "bounds_changed_from_user_input", "classbab_base_1_1_optimization_variable.html#ad2f581a8c131d5381232bce213e60823", null ],
     [ "get_branching_priority", "classbab_base_1_1_optimization_variable.html#a9a19896c3ebd06e0f7a371e336d78434", null ],
     [ "get_lower_bound", "classbab_base_1_1_optimization_variable.html#ab76a8e196cf00c22e3a1d308fa1cd01e", null ],
     [ "get_mid", "classbab_base_1_1_optimization_variable.html#aa62b8c28d96fbcb03b8890081fb31cde", null ],
     [ "get_name", "classbab_base_1_1_optimization_variable.html#a4b419fcf5d8b88a6d48f3f8beec1c509", null ],
     [ "get_upper_bound", "classbab_base_1_1_optimization_variable.html#ad01e5fd245987423c73719114c307a84", null ],
+    [ "get_user_lower_bound", "classbab_base_1_1_optimization_variable.html#a74e9435f5bcfa900c9304ceda8f05be5", null ],
+    [ "get_user_upper_bound", "classbab_base_1_1_optimization_variable.html#adf64e2c7687fce1a063b7a4a46a2e212", null ],
     [ "get_variable_type", "classbab_base_1_1_optimization_variable.html#a4b56db1c40da9ceb5f0179a7660336ce", null ],
     [ "has_nonempty_host_set", "classbab_base_1_1_optimization_variable.html#ae76b3d3ecd4427b2edd1abd06d320b41", null ],
-    [ "operator=", "classbab_base_1_1_optimization_variable.html#a51e6b16ace22f32f96a27af09358a695", null ],
-    [ "operator<<", "classbab_base_1_1_optimization_variable.html#aeb17c4ac5c23141e9acc87c5b1453605", null ],
+    [ "operator<<", "classbab_base_1_1_optimization_variable.html#a14ab145b3997ff567e535665c30d5138", null ],
+    [ "_bounds", "classbab_base_1_1_optimization_variable.html#acd60b14930c0261628aae974e42fe954", null ],
     [ "_branchingPriority", "classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b", null ],
     [ "_feasible", "classbab_base_1_1_optimization_variable.html#a7f00570cb2e44f165e2aa3028d215bc3", null ],
-    [ "_lowerBound", "classbab_base_1_1_optimization_variable.html#aefe950aa38fa5908dbdc2b34477c2bb2", null ],
     [ "_name", "classbab_base_1_1_optimization_variable.html#aa48efdfb65587f4dae6325bfdefd6e0a", null ],
-    [ "_upperBound", "classbab_base_1_1_optimization_variable.html#a31a22d0b8661eb373ce5dbd72aedc819", null ],
-    [ "_variableType", "classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9", null ],
-    [ "changedBounds", "classbab_base_1_1_optimization_variable.html#a66fdae5945a00647d5dce7ba4750ae89", null ]
+    [ "_userSpecifiedBounds", "classbab_base_1_1_optimization_variable.html#af0837b061723724dcb61543724f36d11", null ],
+    [ "_variableType", "classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9", null ]
 ];
\ No newline at end of file
diff --git a/doc/html/classbab_base_1_1_out_var-members.html b/doc/html/classbab_base_1_1_out_var-members.html
index 3b149982ac612b9b92616e88d4a15b27384ae0dd..c84e5190653597e422e0c84c05824566446a4dce 100644
--- a/doc/html/classbab_base_1_1_out_var-members.html
+++ b/doc/html/classbab_base_1_1_out_var-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -95,7 +95,7 @@ $(document).ready(function(){initNavTree('classbab_base_1_1_out_var.html','');})
 <table class="directory">
   <tr class="even"><td class="entry"><a class="el" href="classbab_base_1_1_out_var.html#a402afb5eef3c5316d3740989c0f2e504">_ptr</a></td><td class="entry"><a class="el" href="classbab_base_1_1_out_var.html">babBase::OutVar&lt; T &gt;</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classbab_base_1_1_out_var.html#aa2878f955a6fca58b597161aff4964a8">get</a>() const noexcept</td><td class="entry"><a class="el" href="classbab_base_1_1_out_var.html">babBase::OutVar&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classbab_base_1_1_out_var.html#a7442f2a80f303c64467428a80f3cb8b9">operator T &amp;</a>() const noexcept</td><td class="entry"><a class="el" href="classbab_base_1_1_out_var.html">babBase::OutVar&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classbab_base_1_1_out_var.html#add7057afa563a0adeba7d7e77d717690">operator T &amp;</a>() const noexcept</td><td class="entry"><a class="el" href="classbab_base_1_1_out_var.html">babBase::OutVar&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="classbab_base_1_1_out_var.html#aced8949099673a72ab3b436272f114e6">operator=</a>(const OutVar &amp;x) noexcept=default</td><td class="entry"><a class="el" href="classbab_base_1_1_out_var.html">babBase::OutVar&lt; T &gt;</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classbab_base_1_1_out_var.html#a81e7174faa0d0aa69a9e17fea6158a4a">OutVar</a>(T &amp;ref) noexcept</td><td class="entry"><a class="el" href="classbab_base_1_1_out_var.html">babBase::OutVar&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
   <tr><td class="entry"><a class="el" href="classbab_base_1_1_out_var.html#a31ed18d3d1831c15ebc166a6135a217f">OutVar</a>(T &amp;&amp;)=delete</td><td class="entry"><a class="el" href="classbab_base_1_1_out_var.html">babBase::OutVar&lt; T &gt;</a></td><td class="entry"></td></tr>
@@ -108,7 +108,7 @@ $(document).ready(function(){initNavTree('classbab_base_1_1_out_var.html','');})
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classbab_base_1_1_out_var.html b/doc/html/classbab_base_1_1_out_var.html
index ad28eea4c35bee6e7977fb206c8463eace140ca1..a1a4d46883ade3882f165d0ae6a8c8d3b6103073 100644
--- a/doc/html/classbab_base_1_1_out_var.html
+++ b/doc/html/classbab_base_1_1_out_var.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: babBase::OutVar&lt; T &gt; Class Template Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -116,8 +116,8 @@ Public Member Functions</h2></td></tr>
 <tr class="separator:a86b5336a40127a5a12fd4766986673b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aced8949099673a72ab3b436272f114e6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classbab_base_1_1_out_var.html">OutVar</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_out_var.html#aced8949099673a72ab3b436272f114e6">operator=</a> (const <a class="el" href="classbab_base_1_1_out_var.html">OutVar</a> &amp;x) noexcept=default</td></tr>
 <tr class="separator:aced8949099673a72ab3b436272f114e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7442f2a80f303c64467428a80f3cb8b9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_out_var.html#a7442f2a80f303c64467428a80f3cb8b9">operator T &amp;</a> () const noexcept</td></tr>
-<tr class="separator:a7442f2a80f303c64467428a80f3cb8b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:add7057afa563a0adeba7d7e77d717690"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_out_var.html#add7057afa563a0adeba7d7e77d717690">operator T &amp;</a> () const noexcept</td></tr>
+<tr class="separator:add7057afa563a0adeba7d7e77d717690"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aa2878f955a6fca58b597161aff4964a8"><td class="memItemLeft" align="right" valign="top">T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbab_base_1_1_out_var.html#aa2878f955a6fca58b597161aff4964a8">get</a> () const noexcept</td></tr>
 <tr class="separator:aa2878f955a6fca58b597161aff4964a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
@@ -267,8 +267,8 @@ template&lt;class T &gt; </div>
 
 </div>
 </div>
-<a id="a7442f2a80f303c64467428a80f3cb8b9"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a7442f2a80f303c64467428a80f3cb8b9">&#9670;&nbsp;</a></span>operator T &amp;()</h2>
+<a id="add7057afa563a0adeba7d7e77d717690"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#add7057afa563a0adeba7d7e77d717690">&#9670;&nbsp;</a></span>operator T &amp;()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -279,7 +279,7 @@ template&lt;class T &gt; </div>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classbab_base_1_1_out_var.html">babBase::OutVar</a>&lt; T &gt;::operator T &amp; </td>
+          <td class="memname"><a class="el" href="classbab_base_1_1_out_var.html">babBase::OutVar</a>&lt; T &gt;::operator T&amp; </td>
           <td>(</td>
           <td class="paramname"></td><td>)</td>
           <td> const</td>
@@ -351,7 +351,7 @@ template&lt;class T &gt; </div>
 </div>
 </div>
 <hr/>The documentation for this class was generated from the following file:<ul>
-<li>C:/Users/dobo01/maingo/dep/babbase/inc/<a class="el" href="bab_utils_8h_source.html">babUtils.h</a></li>
+<li>C:/dobo01/maingo/dep/babbase/inc/<a class="el" href="bab_utils_8h_source.html">babUtils.h</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -361,7 +361,7 @@ template&lt;class T &gt; </div>
     <li class="navelem"><a class="el" href="namespacebab_base.html">babBase</a></li><li class="navelem"><a class="el" href="classbab_base_1_1_out_var.html">OutVar</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classbab_base_1_1_out_var.js b/doc/html/classbab_base_1_1_out_var.js
index 3f5220465ade4be47b854a4d8982e70cdb5a0699..4c34909729fd87bbc663f4faf475e1a5da069259 100644
--- a/doc/html/classbab_base_1_1_out_var.js
+++ b/doc/html/classbab_base_1_1_out_var.js
@@ -5,7 +5,7 @@ var classbab_base_1_1_out_var =
     [ "OutVar", "classbab_base_1_1_out_var.html#a31ed18d3d1831c15ebc166a6135a217f", null ],
     [ "OutVar", "classbab_base_1_1_out_var.html#a86b5336a40127a5a12fd4766986673b7", null ],
     [ "get", "classbab_base_1_1_out_var.html#aa2878f955a6fca58b597161aff4964a8", null ],
-    [ "operator T &", "classbab_base_1_1_out_var.html#a7442f2a80f303c64467428a80f3cb8b9", null ],
+    [ "operator T &", "classbab_base_1_1_out_var.html#add7057afa563a0adeba7d7e77d717690", null ],
     [ "operator=", "classbab_base_1_1_out_var.html#aced8949099673a72ab3b436272f114e6", null ],
     [ "_ptr", "classbab_base_1_1_out_var.html#a402afb5eef3c5316d3740989c0f2e504", null ]
 ];
\ No newline at end of file
diff --git a/doc/html/classes.html b/doc/html/classes.html
index 26ad276f0f6d4fe6c0d850e9f018ae6f2d7d49d7..caf2aa4b79ae75eefad1d9899c5888977cd52287 100644
--- a/doc/html/classes.html
+++ b/doc/html/classes.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Index</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -93,38 +93,38 @@ $(document).ready(function(){initNavTree('classes.html','');});
 <div class="qindex"><a class="qindex" href="#letter_a">a</a>&#160;|&#160;<a class="qindex" href="#letter_b">b</a>&#160;|&#160;<a class="qindex" href="#letter_c">c</a>&#160;|&#160;<a class="qindex" href="#letter_d">d</a>&#160;|&#160;<a class="qindex" href="#letter_e">e</a>&#160;|&#160;<a class="qindex" href="#letter_i">i</a>&#160;|&#160;<a class="qindex" href="#letter_k">k</a>&#160;|&#160;<a class="qindex" href="#letter_l">l</a>&#160;|&#160;<a class="qindex" href="#letter_m">m</a>&#160;|&#160;<a class="qindex" href="#letter_n">n</a>&#160;|&#160;<a class="qindex" href="#letter_o">o</a>&#160;|&#160;<a class="qindex" href="#letter_p">p</a>&#160;|&#160;<a class="qindex" href="#letter_s">s</a>&#160;|&#160;<a class="qindex" href="#letter_u">u</a>&#160;|&#160;<a class="qindex" href="#letter_v">v</a></div>
 <table class="classindex">
 <tr><td rowspan="2" valign="bottom"><a name="letter_a"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;a&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> (<a class="el" href="namespacemaingo.html">maingo</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">LbpCplex</a> (<a class="el" href="namespacemaingo_1_1lbp.html">maingo::lbp</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_o"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;o&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> (<a class="el" href="namespacemaingo.html">maingo</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">LbpCplex</a> (<a class="el" href="namespacemaingo_1_1lbp.html">maingo::lbp</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_o"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;o&#160;&#160;</div></td></tr></table>
 </td><td valign="top"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_cplex.html">UbpCplex</a> (<a class="el" href="namespacemaingo_1_1ubp.html">maingo::ubp</a>)&#160;&#160;&#160;</td></tr>
-<tr><td></td><td valign="top"><a class="el" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a> (<a class="el" href="namespacemaingo.html">maingo</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html">LbpDualInfo</a> (<a class="el" href="namespacemaingo_1_1lbp.html">maingo::lbp</a>)&#160;&#160;&#160;</td><td></td><td valign="top"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html">UbpIpopt</a> (<a class="el" href="namespacemaingo_1_1ubp.html">maingo::ubp</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classmaingo_1_1_ale_model.html">AleModel</a> (<a class="el" href="namespacemaingo.html">maingo</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_d"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;d&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html">LbpInterval</a> (<a class="el" href="namespacemaingo_1_1lbp.html">maingo::lbp</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html">Op&lt; maingo::ubp::UbpQuadExpr &gt;</a> (<a class="el" href="namespacemc.html">mc</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_knitro.html">UbpKnitro</a> (<a class="el" href="namespacemaingo_1_1ubp.html">maingo::ubp</a>)&#160;&#160;&#160;</td></tr>
+<tr><td rowspan="2" valign="bottom"><a name="letter_d"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;d&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html">LbpDualInfo</a> (<a class="el" href="namespacemaingo_1_1lbp.html">maingo::lbp</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html">UbpIpopt</a> (<a class="el" href="namespacemaingo_1_1ubp.html">maingo::ubp</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classmaingo_1_1_ale_model.html">AleModel</a> (<a class="el" href="namespacemaingo.html">maingo</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html">LbpInterval</a> (<a class="el" href="namespacemaingo_1_1lbp.html">maingo::lbp</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html">Op&lt; maingo::ubp::UbpQuadExpr &gt;</a> (<a class="el" href="namespacemc.html">mc</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_knitro.html">UbpKnitro</a> (<a class="el" href="namespacemaingo_1_1ubp.html">maingo::ubp</a>)&#160;&#160;&#160;</td></tr>
 <tr><td rowspan="2" valign="bottom"><a name="letter_b"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;b&#160;&#160;</div></td></tr></table>
-</td><td></td><td valign="top"><a class="el" href="classmaingo_1_1_logger.html">Logger</a> (<a class="el" href="namespacemaingo.html">maingo</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classbab_base_1_1_optimization_variable.html">OptimizationVariable</a> (<a class="el" href="namespacebab_base.html">babBase</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html">UbpNLopt</a> (<a class="el" href="namespacemaingo_1_1ubp.html">maingo::ubp</a>)&#160;&#160;&#160;</td></tr>
-<tr><td></td><td valign="top"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html">DagObj</a> (<a class="el" href="namespacemaingo_1_1lbp.html">maingo::lbp</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">LowerBoundingSolver</a> (<a class="el" href="namespacemaingo_1_1lbp.html">maingo::lbp</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structmaingo_1_1_output_variable.html">OutputVariable</a> (<a class="el" href="namespacemaingo.html">maingo</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> (<a class="el" href="namespacemaingo_1_1ubp.html">maingo::ubp</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="structbab_base_1_1_bab_log.html">BabLog</a> (<a class="el" href="namespacebab_base.html">babBase</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html">DagObj</a> (<a class="el" href="namespacemaingo_1_1ubp.html">maingo::ubp</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_m"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;m&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html">DagObj</a> (<a class="el" href="namespacemaingo_1_1lbp.html">maingo::lbp</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classmaingo_1_1_logger.html">Logger</a> (<a class="el" href="namespacemaingo.html">maingo</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classbab_base_1_1_optimization_variable.html">OptimizationVariable</a> (<a class="el" href="namespacebab_base.html">babBase</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html">UbpNLopt</a> (<a class="el" href="namespacemaingo_1_1ubp.html">maingo::ubp</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html">DagObj</a> (<a class="el" href="namespacemaingo_1_1ubp.html">maingo::ubp</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">LowerBoundingSolver</a> (<a class="el" href="namespacemaingo_1_1lbp.html">maingo::lbp</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structmaingo_1_1_output_variable.html">OutputVariable</a> (<a class="el" href="namespacemaingo.html">maingo</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> (<a class="el" href="namespacemaingo_1_1ubp.html">maingo::ubp</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="structbab_base_1_1_bab_log.html">BabLog</a> (<a class="el" href="namespacebab_base.html">babBase</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_e"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;e&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_m"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;m&#160;&#160;</div></td></tr></table>
 </td><td valign="top"><a class="el" href="classbab_base_1_1_out_var.html">OutVar</a> (<a class="el" href="namespacebab_base.html">babBase</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_structure.html">UbpStructure</a> (<a class="el" href="namespacemaingo_1_1ubp.html">maingo::ubp</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classbab_base_1_1_bab_node.html">BabNode</a> (<a class="el" href="namespacebab_base.html">babBase</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_e"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;e&#160;&#160;</div></td></tr></table>
-</td><td></td><td rowspan="2" valign="bottom"><a name="letter_p"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;p&#160;&#160;</div></td></tr></table>
+<tr><td valign="top"><a class="el" href="classbab_base_1_1_bab_node.html">BabNode</a> (<a class="el" href="namespacebab_base.html">babBase</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_p"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;p&#160;&#160;</div></td></tr></table>
 </td><td valign="top"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">UpperBoundingSolver</a> (<a class="el" href="namespacemaingo_1_1ubp.html">maingo::ubp</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classbab_base_1_1_bab_node_with_info.html">BabNodeWithInfo</a> (<a class="el" href="namespacebab_base.html">babBase</a>)&#160;&#160;&#160;</td><td></td><td valign="top"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">MAiNGO</a> (<a class="el" href="namespacemaingo.html">maingo</a>)&#160;&#160;&#160;</td><td></td><td rowspan="2" valign="bottom"><a name="letter_v"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;v&#160;&#160;</div></td></tr></table>
+<tr><td valign="top"><a class="el" href="classbab_base_1_1_bab_node_with_info.html">BabNodeWithInfo</a> (<a class="el" href="namespacebab_base.html">babBase</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structmaingo_1_1_evaluation_container.html">EvaluationContainer</a> (<a class="el" href="namespacemaingo.html">maingo</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">MAiNGO</a> (<a class="el" href="namespacemaingo.html">maingo</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_v"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;v&#160;&#160;</div></td></tr></table>
 </td></tr>
-<tr><td valign="top"><a class="el" href="classbab_base_1_1_bab_tree.html">BabTree</a> (<a class="el" href="namespacebab_base.html">babBase</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structmaingo_1_1_evaluation_container.html">EvaluationContainer</a> (<a class="el" href="namespacemaingo.html">maingo</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classmaingo_1_1_maingo_evaluator.html">MaingoEvaluator</a> (<a class="el" href="namespacemaingo.html">maingo</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structmaingo_1_1_program.html">Program</a> (<a class="el" href="namespacemaingo.html">maingo</a>)&#160;&#160;&#160;</td><td></td></tr>
-<tr><td valign="top"><a class="el" href="structbab_base_1_1_bounds.html">Bounds</a> (<a class="el" href="namespacebab_base.html">babBase</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_i"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;i&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a> (<a class="el" href="namespacemaingo.html">maingo</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classmaingo_1_1_program_parser.html">ProgramParser</a> (<a class="el" href="namespacemaingo.html">maingo</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classmaingo_1_1_variable_lister.html">VariableLister</a> (<a class="el" href="namespacemaingo.html">maingo</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">BranchAndBound</a> (<a class="el" href="namespacemaingo_1_1bab.html">maingo::bab</a>)&#160;&#160;&#160;</td><td></td><td valign="top"><a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html">MAiNGOmodel</a> (<a class="el" href="namespacemaingo.html">maingo</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structbab_base_1_1_pruning_score_comparator.html">PruningScoreComparator</a> (<a class="el" href="namespacebab_base.html">babBase</a>)&#160;&#160;&#160;</td><td></td></tr>
-<tr><td valign="top"><a class="el" href="classbab_base_1_1_branch_and_bound_base_exception.html">BranchAndBoundBaseException</a> (<a class="el" href="namespacebab_base.html">babBase</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html">IpoptProblem</a> (<a class="el" href="namespacemaingo_1_1ubp.html">maingo::ubp</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html">MAiNGOmodelEpsCon</a> (<a class="el" href="namespacemaingo.html">maingo</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_s"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;s&#160;&#160;</div></td></tr></table>
+<tr><td valign="top"><a class="el" href="classbab_base_1_1_bab_tree.html">BabTree</a> (<a class="el" href="namespacebab_base.html">babBase</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_i"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;i&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classmaingo_1_1_maingo_evaluator.html">MaingoEvaluator</a> (<a class="el" href="namespacemaingo.html">maingo</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structmaingo_1_1_program.html">Program</a> (<a class="el" href="namespacemaingo.html">maingo</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="structbab_base_1_1_bounds.html">Bounds</a> (<a class="el" href="namespacebab_base.html">babBase</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a> (<a class="el" href="namespacemaingo.html">maingo</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classmaingo_1_1_program_parser.html">ProgramParser</a> (<a class="el" href="namespacemaingo.html">maingo</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classmaingo_1_1_variable_lister.html">VariableLister</a> (<a class="el" href="namespacemaingo.html">maingo</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">BranchAndBound</a> (<a class="el" href="namespacemaingo_1_1bab.html">maingo::bab</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html">IpoptProblem</a> (<a class="el" href="namespacemaingo_1_1ubp.html">maingo::ubp</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html">MAiNGOmodel</a> (<a class="el" href="namespacemaingo.html">maingo</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structbab_base_1_1_pruning_score_comparator.html">PruningScoreComparator</a> (<a class="el" href="namespacebab_base.html">babBase</a>)&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="classbab_base_1_1_branch_and_bound_base_exception.html">BranchAndBoundBaseException</a> (<a class="el" href="namespacebab_base.html">babBase</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_k"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;k&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html">MAiNGOmodelEpsCon</a> (<a class="el" href="namespacemaingo.html">maingo</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_py_m_ai_n_g_omodel.html">PyMAiNGOmodel</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="classbab_base_1_1_brancher.html">Brancher</a> (<a class="el" href="namespacebab_base.html">babBase</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structmaingo_1_1_model_function.html">ModelFunction</a> (<a class="el" href="namespacemaingo.html">maingo</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_s"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;s&#160;&#160;</div></td></tr></table>
+</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="structbab_base_1_1_branching_history_info.html">BranchingHistoryInfo</a> (<a class="el" href="namespacebab_base.html">babBase</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html">KnitroProblem</a> (<a class="el" href="namespacemaingo_1_1ubp.html">maingo::ubp</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_n"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;n&#160;&#160;</div></td></tr></table>
 </td><td></td></tr>
-<tr><td valign="top"><a class="el" href="classbab_base_1_1_brancher.html">Brancher</a> (<a class="el" href="namespacebab_base.html">babBase</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_k"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;k&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="structmaingo_1_1model_function.html">modelFunction</a> (<a class="el" href="namespacemaingo.html">maingo</a>)&#160;&#160;&#160;</td><td></td><td></td></tr>
-<tr><td valign="top"><a class="el" href="structbab_base_1_1_branching_history_info.html">BranchingHistoryInfo</a> (<a class="el" href="namespacebab_base.html">babBase</a>)&#160;&#160;&#160;</td><td></td><td rowspan="2" valign="bottom"><a name="letter_n"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;n&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="structmaingo_1_1_settings.html">Settings</a> (<a class="el" href="namespacemaingo.html">maingo</a>)&#160;&#160;&#160;</td><td></td></tr>
 <tr><td rowspan="2" valign="bottom"><a name="letter_c"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;c&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html">KnitroProblem</a> (<a class="el" href="namespacemaingo_1_1ubp.html">maingo::ubp</a>)&#160;&#160;&#160;</td><td></td><td rowspan="2" valign="bottom"><a name="letter_u"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;u&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_l"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;l&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="structmaingo_1_1_settings.html">Settings</a> (<a class="el" href="namespacemaingo.html">maingo</a>)&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="structbab_base_1_1_node_priority_comparator.html">NodePriorityComparator</a> (<a class="el" href="namespacebab_base.html">babBase</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_u"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;u&#160;&#160;</div></td></tr></table>
 </td><td></td></tr>
-<tr><td></td><td rowspan="2" valign="bottom"><a name="letter_l"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;l&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="structbab_base_1_1_node_priority_comparator.html">NodePriorityComparator</a> (<a class="el" href="namespacebab_base.html">babBase</a>)&#160;&#160;&#160;</td><td></td><td></td></tr>
-<tr><td valign="top"><a class="el" href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html">OptimizationVariable::ChangedBounds</a> (<a class="el" href="namespacebab_base.html">babBase</a>)&#160;&#160;&#160;</td><td></td><td></td><td valign="top"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html">UbpClp</a> (<a class="el" href="namespacemaingo_1_1ubp.html">maingo::ubp</a>)&#160;&#160;&#160;</td><td></td></tr>
-<tr><td></td><td valign="top"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">LbpClp</a> (<a class="el" href="namespacemaingo_1_1lbp.html">maingo::lbp</a>)&#160;&#160;&#160;</td><td></td><td></td><td></td></tr>
+<tr><td valign="top"><a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> (<a class="el" href="namespacemaingo.html">maingo</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">LbpClp</a> (<a class="el" href="namespacemaingo_1_1lbp.html">maingo::lbp</a>)&#160;&#160;&#160;</td><td></td><td></td></tr>
+<tr><td></td><td></td><td></td><td valign="top"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html">UbpClp</a> (<a class="el" href="namespacemaingo_1_1ubp.html">maingo::ubp</a>)&#160;&#160;&#160;</td><td></td></tr>
 <tr><td></td><td></td><td></td><td></td><td></td></tr>
 </table>
 <div class="qindex"><a class="qindex" href="#letter_a">a</a>&#160;|&#160;<a class="qindex" href="#letter_b">b</a>&#160;|&#160;<a class="qindex" href="#letter_c">c</a>&#160;|&#160;<a class="qindex" href="#letter_d">d</a>&#160;|&#160;<a class="qindex" href="#letter_e">e</a>&#160;|&#160;<a class="qindex" href="#letter_i">i</a>&#160;|&#160;<a class="qindex" href="#letter_k">k</a>&#160;|&#160;<a class="qindex" href="#letter_l">l</a>&#160;|&#160;<a class="qindex" href="#letter_m">m</a>&#160;|&#160;<a class="qindex" href="#letter_n">n</a>&#160;|&#160;<a class="qindex" href="#letter_o">o</a>&#160;|&#160;<a class="qindex" href="#letter_p">p</a>&#160;|&#160;<a class="qindex" href="#letter_s">s</a>&#160;|&#160;<a class="qindex" href="#letter_u">u</a>&#160;|&#160;<a class="qindex" href="#letter_v">v</a></div>
@@ -135,7 +135,7 @@ $(document).ready(function(){initNavTree('classes.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1_ale_model-members.html b/doc/html/classmaingo_1_1_ale_model-members.html
index ceb0e5c103184e721b220d99bc0a488ff2d2ea4b..536fd542dc82241a0a87982649cfc73ec37a98d6 100644
--- a/doc/html/classmaingo_1_1_ale_model-members.html
+++ b/doc/html/classmaingo_1_1_ale_model-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -113,7 +113,7 @@ $(document).ready(function(){initNavTree('classmaingo_1_1_ale_model.html','');})
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1_ale_model.html b/doc/html/classmaingo_1_1_ale_model.html
index 64878d1eaaad3889a24e94ed481aa6bae0dee2e2..d91950b91138794ee96461a327704dea0dd8869d 100644
--- a/doc/html/classmaingo_1_1_ale_model.html
+++ b/doc/html/classmaingo_1_1_ale_model.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::AleModel Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -105,9 +105,9 @@ Inheritance diagram for maingo::AleModel:</div>
  <div class="center">
   <img src="classmaingo_1_1_ale_model.png" usemap="#maingo::AleModel_map" alt=""/>
   <map id="maingo::AleModel_map" name="maingo::AleModel_map">
-<area href="classmaingo_1_1_m_ai_n_g_omodel.html" title="This class is the base class for models to be solved by MAiNGO." alt="maingo::MAiNGOmodel" shape="rect" coords="0,0,142,24"/>
-  </map>
-</div></div>
+<area href="classmaingo_1_1_m_ai_n_g_omodel.html" title="This class is the base class for models to be solved by MAiNGO. " alt="maingo::MAiNGOmodel" shape="rect" coords="0,0,142,24"/>
+</map>
+ </div></div>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
@@ -115,7 +115,7 @@ Public Member Functions</h2></td></tr>
 <tr class="memdesc:a3ef454e2c543640ff4f77217396019f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Main function used to evaluate the model and construct a directed acyclic graph.  <a href="#a3ef454e2c543640ff4f77217396019f2">More...</a><br /></td></tr>
 <tr class="separator:a3ef454e2c543640ff4f77217396019f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a3bb9ac4b8b424d7828893cddefe1d9e8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_ale_model.html#a3bb9ac4b8b424d7828893cddefe1d9e8">AleModel</a> (<a class="el" href="structmaingo_1_1_program.html">Program</a> prog, ale::symbol_table &amp;symbols)</td></tr>
-<tr class="memdesc:a3bb9ac4b8b424d7828893cddefe1d9e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor taking a ALE-based <a class="el" href="structmaingo_1_1_program.html" title="Container Class for ALE expressions comprising an optimization problem.">Program</a> and an ALE symbol_table.  <a href="#a3bb9ac4b8b424d7828893cddefe1d9e8">More...</a><br /></td></tr>
+<tr class="memdesc:a3bb9ac4b8b424d7828893cddefe1d9e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor taking a ALE-based <a class="el" href="structmaingo_1_1_program.html" title="Container Class for ALE expressions comprising an optimization problem. ">Program</a> and an ALE symbol_table.  <a href="#a3bb9ac4b8b424d7828893cddefe1d9e8">More...</a><br /></td></tr>
 <tr class="separator:a3bb9ac4b8b424d7828893cddefe1d9e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a9d29639440ec6fae90238a0a6d32ab53"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="namespacemaingo.html#adf4533c14585b7b44a5849066d6637cc">OptimizationVariable</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_ale_model.html#a9d29639440ec6fae90238a0a6d32ab53">get_variables</a> ()</td></tr>
 <tr class="memdesc:a9d29639440ec6fae90238a0a6d32ab53"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for getting optimization variables data.  <a href="#a9d29639440ec6fae90238a0a6d32ab53">More...</a><br /></td></tr>
@@ -190,7 +190,7 @@ Additional Inherited Members</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Constructor taking a ALE-based <a class="el" href="structmaingo_1_1_program.html" title="Container Class for ALE expressions comprising an optimization problem.">Program</a> and an ALE symbol_table. </p>
+<p>Constructor taking a ALE-based <a class="el" href="structmaingo_1_1_program.html" title="Container Class for ALE expressions comprising an optimization problem. ">Program</a> and an ALE symbol_table. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">prog</td><td>is the program to translate to <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> </td></tr>
@@ -451,8 +451,8 @@ Additional Inherited Members</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this class was generated from the following files:<ul>
-<li>C:/Users/dobo01/maingo/inc/<a class="el" href="ale_model_8h_source.html">aleModel.h</a></li>
-<li>C:/Users/dobo01/maingo/src/<a class="el" href="ale_model_8cpp.html">aleModel.cpp</a></li>
+<li>C:/dobo01/maingo/inc/<a class="el" href="ale_model_8h_source.html">aleModel.h</a></li>
+<li>C:/dobo01/maingo/src/<a class="el" href="ale_model_8cpp.html">aleModel.cpp</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -462,7 +462,7 @@ Additional Inherited Members</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="classmaingo_1_1_ale_model.html">AleModel</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1_logger-members.html b/doc/html/classmaingo_1_1_logger-members.html
index b0f870ee348b3b5370e6f483fabc793bad5b70fd..c5d92b2f4b8d6189b85c44bf02ab343f886f23a0 100644
--- a/doc/html/classmaingo_1_1_logger-members.html
+++ b/doc/html/classmaingo_1_1_logger-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -99,26 +99,22 @@ $(document).ready(function(){initNavTree('classmaingo_1_1_logger.html','');});
   <tr><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#aaf1b5259ea1e3d17206119d0e8a99d53">babLine</a></td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#a4771db34565c3321a819fceb53b4fc76">babLineCsv</a></td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#ad63939a5c0535c5abb8e59024b0ca6d4">clear</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#a5776c77c4580d822350dc88225e46061">create_csv_files</a>(bool pureMultistart, bool printEveryLocalSearch, unsigned int maxLocalSearches, const std::vector&lt; double &gt; &amp;objectivesAtRoot, const std::vector&lt; SUBSOLVER_RETCODE &gt; &amp;feasibleAtRoot)</td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#ab4926dc6a379823a0ece98e30f6a384f">create_json_file</a>(bool writeJson, OUTSTREAM_VERB givenOutstreamVerbosity)</td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#aa6c83f95144d085092f854d64b9c1e2f">create_log_file</a>(bool writeLog, OUTSTREAM_VERB givenOutstreamVerbosity)</td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#a36f4bdb8cdcf58504dc06abd6d4e6725">csvGeneralName</a></td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#a168a8239c87de32a540c9fdcb6a54ff7">create_iterations_csv_file</a>(const bool writeCsv)</td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#af67b92595cd069c402df9a448cd784a3">create_log_file</a>(const LOGGING_DESTINATION givenOutstreamVerbosity)</td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#a11f3a05f451f1d7f6f52081b971b5724">csvIterationsName</a></td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#a55590e7a2d77ea9fd85512b17f02bffa">jsonFileName</a></td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#a70f564ada7c6d7167bfc908096476996">logFileName</a></td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#a4d8782e6212a58c9ba6bd8f2317669d9">Logger</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#ae677d6c6ce87b2484d82a493ac649ec3">Logger</a>(const Logger &amp;)=default</td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#a82f7d5b5cb8e33d894f7e17e38d6dbcd">operator=</a>(const Logger &amp;)=default</td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#a85ebbae4b7d372e8ee4fc6df802d9621">print_message</a>(const std::string &amp;message, bool writeLog, VERB verbosityGiven, VERB verbosityNeeded, OUTSTREAM_VERB givenOutstreamVerbosity)</td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#a60d49f911f24c66da289da2dbccc35e2">print_message_to_stream_only</a>(const std::string &amp;message, OUTSTREAM_VERB givenOutstreamVerbosity)</td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#af4fdb40b8636eff018c56e45c293de7f">print_settings</a>(bool writeLog, VERB verbosityGiven, VERB verbosityNeeded, OUTSTREAM_VERB givenOutstreamVerbosity)</td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#ae51c685a73d7e4e84c5eb69a1c720829">reachedMinNodeSize</a></td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#a09a06a9baaf4765d8af2d9baea602962">resFileName</a></td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#ab14611926d783106de661c1c7221f5c3">save_setting</a>(SETTING_NAMES settingName, const std::string &amp;str)</td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#accfbe2523be1fb7e14f30fd9b4c5031a">save_settings_file_name</a>(const std::string &amp;fileName, bool fileFound)</td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#ab4c18700b160cbe53b4e59069e7fcedd">set_output_stream</a>(std::ostream *outputStream)</td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#aa557a6ff14dbd38ab4b251c56caa0f37">write_all_iterations_to_csv</a>(const std::string &amp;errmsg=&quot;&quot;)</td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#a99d59c1e627c16bfa155803f42cf28e7">write_all_lines_to_log</a>(const std::string &amp;errmsg=&quot;&quot;)</td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#a70f564ada7c6d7167bfc908096476996">logFileName</a></td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#a4d8782e6212a58c9ba6bd8f2317669d9">Logger</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#ae677d6c6ce87b2484d82a493ac649ec3">Logger</a>(const Logger &amp;)=default</td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#a82f7d5b5cb8e33d894f7e17e38d6dbcd">operator=</a>(const Logger &amp;)=default</td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#afaa00650854698ce5bbde8fee9db7e0e">print_message</a>(const std::string &amp;message, const VERB verbosityGiven, const VERB verbosityNeeded, const LOGGING_DESTINATION givenOutstreamVerbosity)</td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#a0df484648655184edbbd4bcb6531558f">print_message_to_stream_only</a>(const std::string &amp;message, const LOGGING_DESTINATION givenOutstreamVerbosity)</td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#a1397947c86bde896214c7b77d4be6517">print_settings</a>(const VERB verbosityGiven, const VERB verbosityNeeded, const LOGGING_DESTINATION givenOutstreamVerbosity)</td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#ae51c685a73d7e4e84c5eb69a1c720829">reachedMinNodeSize</a></td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#a69e487a988a594016c12a7c919570f04">save_setting</a>(const SETTING_NAMES settingName, const std::string &amp;str)</td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#af1f4a383ab2f26319ae4da895d30aa2d">save_settings_file_name</a>(const std::string &amp;fileName, const bool fileFound)</td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#ae5cb965f581d2940eea1730a5e7a1f06">set_output_stream</a>(std::ostream *const outputStream)</td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#a17570df4a0a318ddf4e186a4fc66f476">write_all_iterations_to_csv</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#a3134c2ef11ad7c45c3c8467421966021">write_all_lines_to_log</a>(const std::string &amp;errorMessage=&quot;&quot;)</td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_logger.html#a31cae103ef08470e0db45f01c0360eed">~Logger</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_logger.html">maingo::Logger</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
@@ -127,7 +123,7 @@ $(document).ready(function(){initNavTree('classmaingo_1_1_logger.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1_logger.html b/doc/html/classmaingo_1_1_logger.html
index 4ea8172fdd7c430b43ed283e12834973e9355eb9..db2d9f68e79ee0274c0c4632d81d9c63f84dd396 100644
--- a/doc/html/classmaingo_1_1_logger.html
+++ b/doc/html/classmaingo_1_1_logger.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::Logger Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -113,39 +113,36 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:a31cae103ef08470e0db45f01c0360eed"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_logger.html#a31cae103ef08470e0db45f01c0360eed">~Logger</a> ()</td></tr>
 <tr class="memdesc:a31cae103ef08470e0db45f01c0360eed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default destructor.  <a href="#a31cae103ef08470e0db45f01c0360eed">More...</a><br /></td></tr>
 <tr class="separator:a31cae103ef08470e0db45f01c0360eed"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a85ebbae4b7d372e8ee4fc6df802d9621"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_logger.html#a85ebbae4b7d372e8ee4fc6df802d9621">print_message</a> (const std::string &amp;message, bool writeLog, <a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a> verbosityGiven, <a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a> verbosityNeeded, <a class="el" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0">OUTSTREAM_VERB</a> givenOutstreamVerbosity)</td></tr>
-<tr class="memdesc:a85ebbae4b7d372e8ee4fc6df802d9621"><td class="mdescLeft">&#160;</td><td class="mdescRight">The main function used for printing a given message and storing it in log and/or csv.  <a href="#a85ebbae4b7d372e8ee4fc6df802d9621">More...</a><br /></td></tr>
-<tr class="separator:a85ebbae4b7d372e8ee4fc6df802d9621"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a60d49f911f24c66da289da2dbccc35e2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_logger.html#a60d49f911f24c66da289da2dbccc35e2">print_message_to_stream_only</a> (const std::string &amp;message, <a class="el" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0">OUTSTREAM_VERB</a> givenOutstreamVerbosity)</td></tr>
-<tr class="memdesc:a60d49f911f24c66da289da2dbccc35e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">The main function used for printing a given message and storing it in log and/or csv.  <a href="#a60d49f911f24c66da289da2dbccc35e2">More...</a><br /></td></tr>
-<tr class="separator:a60d49f911f24c66da289da2dbccc35e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab4c18700b160cbe53b4e59069e7fcedd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_logger.html#ab4c18700b160cbe53b4e59069e7fcedd">set_output_stream</a> (std::ostream *outputStream)</td></tr>
-<tr class="memdesc:ab4c18700b160cbe53b4e59069e7fcedd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets output stream.  <a href="#ab4c18700b160cbe53b4e59069e7fcedd">More...</a><br /></td></tr>
-<tr class="separator:ab4c18700b160cbe53b4e59069e7fcedd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa6c83f95144d085092f854d64b9c1e2f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_logger.html#aa6c83f95144d085092f854d64b9c1e2f">create_log_file</a> (bool writeLog, <a class="el" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0">OUTSTREAM_VERB</a> givenOutstreamVerbosity)</td></tr>
-<tr class="memdesc:aa6c83f95144d085092f854d64b9c1e2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function used for creating the log file.  <a href="#aa6c83f95144d085092f854d64b9c1e2f">More...</a><br /></td></tr>
-<tr class="separator:aa6c83f95144d085092f854d64b9c1e2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5776c77c4580d822350dc88225e46061"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_logger.html#a5776c77c4580d822350dc88225e46061">create_csv_files</a> (bool pureMultistart, bool printEveryLocalSearch, unsigned int maxLocalSearches, const std::vector&lt; double &gt; &amp;objectivesAtRoot, const std::vector&lt; <a class="el" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> &gt; &amp;feasibleAtRoot)</td></tr>
-<tr class="memdesc:a5776c77c4580d822350dc88225e46061"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function used for creating the csv files.  <a href="#a5776c77c4580d822350dc88225e46061">More...</a><br /></td></tr>
-<tr class="separator:a5776c77c4580d822350dc88225e46061"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab4926dc6a379823a0ece98e30f6a384f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_logger.html#ab4926dc6a379823a0ece98e30f6a384f">create_json_file</a> (bool writeJson, <a class="el" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0">OUTSTREAM_VERB</a> givenOutstreamVerbosity)</td></tr>
-<tr class="memdesc:ab4926dc6a379823a0ece98e30f6a384f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function used for creating the json file.  <a href="#ab4926dc6a379823a0ece98e30f6a384f">More...</a><br /></td></tr>
-<tr class="separator:ab4926dc6a379823a0ece98e30f6a384f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a99d59c1e627c16bfa155803f42cf28e7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_logger.html#a99d59c1e627c16bfa155803f42cf28e7">write_all_lines_to_log</a> (const std::string &amp;errmsg=&quot;&quot;)</td></tr>
-<tr class="memdesc:a99d59c1e627c16bfa155803f42cf28e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function used for writing all lines stored in queue babLine to log with name logFileName.  <a href="#a99d59c1e627c16bfa155803f42cf28e7">More...</a><br /></td></tr>
-<tr class="separator:a99d59c1e627c16bfa155803f42cf28e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa557a6ff14dbd38ab4b251c56caa0f37"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_logger.html#aa557a6ff14dbd38ab4b251c56caa0f37">write_all_iterations_to_csv</a> (const std::string &amp;errmsg=&quot;&quot;)</td></tr>
-<tr class="memdesc:aa557a6ff14dbd38ab4b251c56caa0f37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function used for writing all lines stored in queue babCsv to csv file with name csvIterationsName.  <a href="#aa557a6ff14dbd38ab4b251c56caa0f37">More...</a><br /></td></tr>
-<tr class="separator:aa557a6ff14dbd38ab4b251c56caa0f37"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:accfbe2523be1fb7e14f30fd9b4c5031a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_logger.html#accfbe2523be1fb7e14f30fd9b4c5031a">save_settings_file_name</a> (const std::string &amp;fileName, bool fileFound)</td></tr>
-<tr class="memdesc:accfbe2523be1fb7e14f30fd9b4c5031a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function used for saving the names of setting files set by the user.  <a href="#accfbe2523be1fb7e14f30fd9b4c5031a">More...</a><br /></td></tr>
-<tr class="separator:accfbe2523be1fb7e14f30fd9b4c5031a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab14611926d783106de661c1c7221f5c3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_logger.html#ab14611926d783106de661c1c7221f5c3">save_setting</a> (<a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6">SETTING_NAMES</a> settingName, const std::string &amp;str)</td></tr>
-<tr class="memdesc:ab14611926d783106de661c1c7221f5c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function used for saving the user-set settings.  <a href="#ab14611926d783106de661c1c7221f5c3">More...</a><br /></td></tr>
-<tr class="separator:ab14611926d783106de661c1c7221f5c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af4fdb40b8636eff018c56e45c293de7f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_logger.html#af4fdb40b8636eff018c56e45c293de7f">print_settings</a> (bool writeLog, <a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a> verbosityGiven, <a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a> verbosityNeeded, <a class="el" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0">OUTSTREAM_VERB</a> givenOutstreamVerbosity)</td></tr>
-<tr class="memdesc:af4fdb40b8636eff018c56e45c293de7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for printing and writing user-set settings.  <a href="#af4fdb40b8636eff018c56e45c293de7f">More...</a><br /></td></tr>
-<tr class="separator:af4fdb40b8636eff018c56e45c293de7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afaa00650854698ce5bbde8fee9db7e0e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_logger.html#afaa00650854698ce5bbde8fee9db7e0e">print_message</a> (const std::string &amp;message, const <a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a> verbosityGiven, const <a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a> verbosityNeeded, const <a class="el" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4">LOGGING_DESTINATION</a> givenOutstreamVerbosity)</td></tr>
+<tr class="memdesc:afaa00650854698ce5bbde8fee9db7e0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The main function used for printing a given message and storing it in log and/or csv.  <a href="#afaa00650854698ce5bbde8fee9db7e0e">More...</a><br /></td></tr>
+<tr class="separator:afaa00650854698ce5bbde8fee9db7e0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0df484648655184edbbd4bcb6531558f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_logger.html#a0df484648655184edbbd4bcb6531558f">print_message_to_stream_only</a> (const std::string &amp;message, const <a class="el" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4">LOGGING_DESTINATION</a> givenOutstreamVerbosity)</td></tr>
+<tr class="memdesc:a0df484648655184edbbd4bcb6531558f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The main function used for printing a given message and storing it in log and/or csv.  <a href="#a0df484648655184edbbd4bcb6531558f">More...</a><br /></td></tr>
+<tr class="separator:a0df484648655184edbbd4bcb6531558f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae5cb965f581d2940eea1730a5e7a1f06"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_logger.html#ae5cb965f581d2940eea1730a5e7a1f06">set_output_stream</a> (std::ostream *const outputStream)</td></tr>
+<tr class="memdesc:ae5cb965f581d2940eea1730a5e7a1f06"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets output stream.  <a href="#ae5cb965f581d2940eea1730a5e7a1f06">More...</a><br /></td></tr>
+<tr class="separator:ae5cb965f581d2940eea1730a5e7a1f06"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af67b92595cd069c402df9a448cd784a3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_logger.html#af67b92595cd069c402df9a448cd784a3">create_log_file</a> (const <a class="el" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4">LOGGING_DESTINATION</a> givenOutstreamVerbosity)</td></tr>
+<tr class="memdesc:af67b92595cd069c402df9a448cd784a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function used for creating the log file.  <a href="#af67b92595cd069c402df9a448cd784a3">More...</a><br /></td></tr>
+<tr class="separator:af67b92595cd069c402df9a448cd784a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a168a8239c87de32a540c9fdcb6a54ff7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_logger.html#a168a8239c87de32a540c9fdcb6a54ff7">create_iterations_csv_file</a> (const bool writeCsv)</td></tr>
+<tr class="memdesc:a168a8239c87de32a540c9fdcb6a54ff7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function used for creating the csv file with information on the B&amp;B iterations.  <a href="#a168a8239c87de32a540c9fdcb6a54ff7">More...</a><br /></td></tr>
+<tr class="separator:a168a8239c87de32a540c9fdcb6a54ff7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3134c2ef11ad7c45c3c8467421966021"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_logger.html#a3134c2ef11ad7c45c3c8467421966021">write_all_lines_to_log</a> (const std::string &amp;errorMessage=&quot;&quot;)</td></tr>
+<tr class="memdesc:a3134c2ef11ad7c45c3c8467421966021"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function used for writing all lines stored in queue babLine to log.  <a href="#a3134c2ef11ad7c45c3c8467421966021">More...</a><br /></td></tr>
+<tr class="separator:a3134c2ef11ad7c45c3c8467421966021"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a17570df4a0a318ddf4e186a4fc66f476"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_logger.html#a17570df4a0a318ddf4e186a4fc66f476">write_all_iterations_to_csv</a> ()</td></tr>
+<tr class="memdesc:a17570df4a0a318ddf4e186a4fc66f476"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function used for writing all iterations currently stored queue babLineCsv to csv.  <a href="#a17570df4a0a318ddf4e186a4fc66f476">More...</a><br /></td></tr>
+<tr class="separator:a17570df4a0a318ddf4e186a4fc66f476"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af1f4a383ab2f26319ae4da895d30aa2d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_logger.html#af1f4a383ab2f26319ae4da895d30aa2d">save_settings_file_name</a> (const std::string &amp;fileName, const bool fileFound)</td></tr>
+<tr class="memdesc:af1f4a383ab2f26319ae4da895d30aa2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function used for saving the names of setting files set by the user.  <a href="#af1f4a383ab2f26319ae4da895d30aa2d">More...</a><br /></td></tr>
+<tr class="separator:af1f4a383ab2f26319ae4da895d30aa2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a69e487a988a594016c12a7c919570f04"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_logger.html#a69e487a988a594016c12a7c919570f04">save_setting</a> (const <a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6">SETTING_NAMES</a> settingName, const std::string &amp;str)</td></tr>
+<tr class="memdesc:a69e487a988a594016c12a7c919570f04"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function used for saving the user-set settings.  <a href="#a69e487a988a594016c12a7c919570f04">More...</a><br /></td></tr>
+<tr class="separator:a69e487a988a594016c12a7c919570f04"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1397947c86bde896214c7b77d4be6517"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_logger.html#a1397947c86bde896214c7b77d4be6517">print_settings</a> (const <a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a> verbosityGiven, const <a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a> verbosityNeeded, const <a class="el" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4">LOGGING_DESTINATION</a> givenOutstreamVerbosity)</td></tr>
+<tr class="memdesc:a1397947c86bde896214c7b77d4be6517"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for printing and writing user-set settings.  <a href="#a1397947c86bde896214c7b77d4be6517">More...</a><br /></td></tr>
+<tr class="separator:a1397947c86bde896214c7b77d4be6517"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ad63939a5c0535c5abb8e59024b0ca6d4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_logger.html#ad63939a5c0535c5abb8e59024b0ca6d4">clear</a> ()</td></tr>
 <tr class="memdesc:ad63939a5c0535c5abb8e59024b0ca6d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears all logging information.  <a href="#ad63939a5c0535c5abb8e59024b0ca6d4">More...</a><br /></td></tr>
 <tr class="separator:ad63939a5c0535c5abb8e59024b0ca6d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -153,20 +150,14 @@ Public Member Functions</h2></td></tr>
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
 Public Attributes</h2></td></tr>
 <tr><td colspan="2"><div class="groupHeader">Auxiliary public variables for storing output and logging information</div></td></tr>
-<tr class="memitem:aaf1b5259ea1e3d17206119d0e8a99d53"><td class="memItemLeft" align="right" valign="top">std::queue&lt; std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_logger.html#aaf1b5259ea1e3d17206119d0e8a99d53">babLine</a></td></tr>
+<tr class="memitem:aaf1b5259ea1e3d17206119d0e8a99d53"><td class="memItemLeft" align="right" valign="top">std::queue&lt; std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_logger.html#aaf1b5259ea1e3d17206119d0e8a99d53">babLine</a> {}</td></tr>
 <tr class="separator:aaf1b5259ea1e3d17206119d0e8a99d53"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4771db34565c3321a819fceb53b4fc76"><td class="memItemLeft" align="right" valign="top">std::queue&lt; std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_logger.html#a4771db34565c3321a819fceb53b4fc76">babLineCsv</a></td></tr>
+<tr class="memitem:a4771db34565c3321a819fceb53b4fc76"><td class="memItemLeft" align="right" valign="top">std::queue&lt; std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_logger.html#a4771db34565c3321a819fceb53b4fc76">babLineCsv</a> {}</td></tr>
 <tr class="separator:a4771db34565c3321a819fceb53b4fc76"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a70f564ada7c6d7167bfc908096476996"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_logger.html#a70f564ada7c6d7167bfc908096476996">logFileName</a></td></tr>
+<tr class="memitem:a70f564ada7c6d7167bfc908096476996"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_logger.html#a70f564ada7c6d7167bfc908096476996">logFileName</a> = &quot;maingo.log&quot;</td></tr>
 <tr class="separator:a70f564ada7c6d7167bfc908096476996"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a09a06a9baaf4765d8af2d9baea602962"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_logger.html#a09a06a9baaf4765d8af2d9baea602962">resFileName</a></td></tr>
-<tr class="separator:a09a06a9baaf4765d8af2d9baea602962"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a11f3a05f451f1d7f6f52081b971b5724"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_logger.html#a11f3a05f451f1d7f6f52081b971b5724">csvIterationsName</a></td></tr>
+<tr class="memitem:a11f3a05f451f1d7f6f52081b971b5724"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_logger.html#a11f3a05f451f1d7f6f52081b971b5724">csvIterationsName</a> = &quot;iterations.csv&quot;</td></tr>
 <tr class="separator:a11f3a05f451f1d7f6f52081b971b5724"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a36f4bdb8cdcf58504dc06abd6d4e6725"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_logger.html#a36f4bdb8cdcf58504dc06abd6d4e6725">csvGeneralName</a></td></tr>
-<tr class="separator:a36f4bdb8cdcf58504dc06abd6d4e6725"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a55590e7a2d77ea9fd85512b17f02bffa"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_logger.html#a55590e7a2d77ea9fd85512b17f02bffa">jsonFileName</a></td></tr>
-<tr class="separator:a55590e7a2d77ea9fd85512b17f02bffa"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ae51c685a73d7e4e84c5eb69a1c720829"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_logger.html#ae51c685a73d7e4e84c5eb69a1c720829">reachedMinNodeSize</a></td></tr>
 <tr class="separator:ae51c685a73d7e4e84c5eb69a1c720829"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
@@ -286,103 +277,34 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="a5776c77c4580d822350dc88225e46061"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a5776c77c4580d822350dc88225e46061">&#9670;&nbsp;</a></span>create_csv_files()</h2>
+<a id="a168a8239c87de32a540c9fdcb6a54ff7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a168a8239c87de32a540c9fdcb6a54ff7">&#9670;&nbsp;</a></span>create_iterations_csv_file()</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">void Logger::create_csv_files </td>
+          <td class="memname">void Logger::create_iterations_csv_file </td>
           <td>(</td>
-          <td class="paramtype">bool&#160;</td>
-          <td class="paramname"><em>pureMultistart</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">bool&#160;</td>
-          <td class="paramname"><em>printEveryLocalSearch</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
+          <td class="paramtype">const bool&#160;</td>
+          <td class="paramname"><em>writeCsv</em></td><td>)</td>
           <td></td>
-          <td class="paramtype">unsigned int&#160;</td>
-          <td class="paramname"><em>maxLocalSearches</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const std::vector&lt; double &gt; &amp;&#160;</td>
-          <td class="paramname"><em>objectivesAtRoot</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const std::vector&lt; <a class="el" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> &gt; &amp;&#160;</td>
-          <td class="paramname"><em>feasibleAtRoot</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<p>Function used for creating the csv files. </p>
+<p>Function used for creating the csv file with information on the B&amp;B iterations. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">pureMultistart</td><td>tells whether the run was only a multistart </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">printEveryLocalSearch</td><td>tells whether the user wants to list every local search </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">maxLocalSearches</td><td>is the number of performed local searches </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">objectivesAtRoot</td><td>holds all objectives attained at the root node </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">feasibleAtRoot</td><td>holds whether search i was feasible </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">writeCsv</td><td>says whether to write the csv file </td></tr>
   </table>
   </dd>
 </dl>
 
 </div>
 </div>
-<a id="ab4926dc6a379823a0ece98e30f6a384f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ab4926dc6a379823a0ece98e30f6a384f">&#9670;&nbsp;</a></span>create_json_file()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void Logger::create_json_file </td>
-          <td>(</td>
-          <td class="paramtype">bool&#160;</td>
-          <td class="paramname"><em>writeJson</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype"><a class="el" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0">OUTSTREAM_VERB</a>&#160;</td>
-          <td class="paramname"><em>givenOutstreamVerbosity</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p>Function used for creating the json file. </p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">writeJson</td><td>says whether to write json file </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">givenOutstreamVerbosity</td><td>tells whether to print to _outStream and/or write files </td></tr>
-  </table>
-  </dd>
-</dl>
-
-</div>
-</div>
-<a id="aa6c83f95144d085092f854d64b9c1e2f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aa6c83f95144d085092f854d64b9c1e2f">&#9670;&nbsp;</a></span>create_log_file()</h2>
+<a id="af67b92595cd069c402df9a448cd784a3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af67b92595cd069c402df9a448cd784a3">&#9670;&nbsp;</a></span>create_log_file()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -390,19 +312,9 @@ Private Attributes</h2></td></tr>
         <tr>
           <td class="memname">void Logger::create_log_file </td>
           <td>(</td>
-          <td class="paramtype">bool&#160;</td>
-          <td class="paramname"><em>writeLog</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype"><a class="el" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0">OUTSTREAM_VERB</a>&#160;</td>
-          <td class="paramname"><em>givenOutstreamVerbosity</em>&#160;</td>
-        </tr>
-        <tr>
+          <td class="paramtype">const <a class="el" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4">LOGGING_DESTINATION</a>&#160;</td>
+          <td class="paramname"><em>givenOutstreamVerbosity</em></td><td>)</td>
           <td></td>
-          <td>)</td>
-          <td></td><td></td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -410,7 +322,6 @@ Private Attributes</h2></td></tr>
 <p>Function used for creating the log file. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">writeLog</td><td>says whether to write log </td></tr>
     <tr><td class="paramdir">[in]</td><td class="paramname">givenOutstreamVerbosity</td><td>tells whether to print to _outStream and/or write files </td></tr>
   </table>
   </dd>
@@ -446,8 +357,8 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="a85ebbae4b7d372e8ee4fc6df802d9621"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a85ebbae4b7d372e8ee4fc6df802d9621">&#9670;&nbsp;</a></span>print_message()</h2>
+<a id="afaa00650854698ce5bbde8fee9db7e0e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afaa00650854698ce5bbde8fee9db7e0e">&#9670;&nbsp;</a></span>print_message()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -461,25 +372,19 @@ Private Attributes</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">bool&#160;</td>
-          <td class="paramname"><em>writeLog</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype"><a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a>&#160;</td>
+          <td class="paramtype">const <a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a>&#160;</td>
           <td class="paramname"><em>verbosityGiven</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a>&#160;</td>
+          <td class="paramtype">const <a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a>&#160;</td>
           <td class="paramname"><em>verbosityNeeded</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0">OUTSTREAM_VERB</a>&#160;</td>
+          <td class="paramtype">const <a class="el" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4">LOGGING_DESTINATION</a>&#160;</td>
           <td class="paramname"><em>givenOutstreamVerbosity</em>&#160;</td>
         </tr>
         <tr>
@@ -494,7 +399,6 @@ Private Attributes</h2></td></tr>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">message</td><td>is the message to be printed or written </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">writeLog</td><td>says whether to write log </td></tr>
     <tr><td class="paramdir">[in]</td><td class="paramname">verbosityGiven</td><td>is the verbosity given by, e.g., settings </td></tr>
     <tr><td class="paramdir">[in]</td><td class="paramname">verbosityNeeded</td><td>is the least verbosity needed for the message to be printed/written </td></tr>
     <tr><td class="paramdir">[in]</td><td class="paramname">givenOutstreamVerbosity</td><td>tells whether to print to _outStream and/or write files </td></tr>
@@ -504,8 +408,8 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="a60d49f911f24c66da289da2dbccc35e2"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a60d49f911f24c66da289da2dbccc35e2">&#9670;&nbsp;</a></span>print_message_to_stream_only()</h2>
+<a id="a0df484648655184edbbd4bcb6531558f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0df484648655184edbbd4bcb6531558f">&#9670;&nbsp;</a></span>print_message_to_stream_only()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -519,7 +423,7 @@ Private Attributes</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0">OUTSTREAM_VERB</a>&#160;</td>
+          <td class="paramtype">const <a class="el" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4">LOGGING_DESTINATION</a>&#160;</td>
           <td class="paramname"><em>givenOutstreamVerbosity</em>&#160;</td>
         </tr>
         <tr>
@@ -541,8 +445,8 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="af4fdb40b8636eff018c56e45c293de7f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#af4fdb40b8636eff018c56e45c293de7f">&#9670;&nbsp;</a></span>print_settings()</h2>
+<a id="a1397947c86bde896214c7b77d4be6517"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1397947c86bde896214c7b77d4be6517">&#9670;&nbsp;</a></span>print_settings()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -550,25 +454,19 @@ Private Attributes</h2></td></tr>
         <tr>
           <td class="memname">void Logger::print_settings </td>
           <td>(</td>
-          <td class="paramtype">bool&#160;</td>
-          <td class="paramname"><em>writeLog</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype"><a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a>&#160;</td>
+          <td class="paramtype">const <a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a>&#160;</td>
           <td class="paramname"><em>verbosityGiven</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a>&#160;</td>
+          <td class="paramtype">const <a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a>&#160;</td>
           <td class="paramname"><em>verbosityNeeded</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0">OUTSTREAM_VERB</a>&#160;</td>
+          <td class="paramtype">const <a class="el" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4">LOGGING_DESTINATION</a>&#160;</td>
           <td class="paramname"><em>givenOutstreamVerbosity</em>&#160;</td>
         </tr>
         <tr>
@@ -582,7 +480,6 @@ Private Attributes</h2></td></tr>
 <p>Function for printing and writing user-set settings. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">writeLog</td><td>says whether to write log </td></tr>
     <tr><td class="paramdir">[in]</td><td class="paramname">verbosityGiven</td><td>is the verbosity given by, e.g., settings </td></tr>
     <tr><td class="paramdir">[in]</td><td class="paramname">verbosityNeeded</td><td>is the least verbosity needed for the message to be printed/written </td></tr>
     <tr><td class="paramdir">[in]</td><td class="paramname">givenOutstreamVerbosity</td><td>tells whether to print to _outStream and/or write files </td></tr>
@@ -592,8 +489,8 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="ab14611926d783106de661c1c7221f5c3"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ab14611926d783106de661c1c7221f5c3">&#9670;&nbsp;</a></span>save_setting()</h2>
+<a id="a69e487a988a594016c12a7c919570f04"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a69e487a988a594016c12a7c919570f04">&#9670;&nbsp;</a></span>save_setting()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -601,7 +498,7 @@ Private Attributes</h2></td></tr>
         <tr>
           <td class="memname">void Logger::save_setting </td>
           <td>(</td>
-          <td class="paramtype"><a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6">SETTING_NAMES</a>&#160;</td>
+          <td class="paramtype">const <a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6">SETTING_NAMES</a>&#160;</td>
           <td class="paramname"><em>settingName</em>, </td>
         </tr>
         <tr>
@@ -629,8 +526,8 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="accfbe2523be1fb7e14f30fd9b4c5031a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#accfbe2523be1fb7e14f30fd9b4c5031a">&#9670;&nbsp;</a></span>save_settings_file_name()</h2>
+<a id="af1f4a383ab2f26319ae4da895d30aa2d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af1f4a383ab2f26319ae4da895d30aa2d">&#9670;&nbsp;</a></span>save_settings_file_name()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -644,7 +541,7 @@ Private Attributes</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">bool&#160;</td>
+          <td class="paramtype">const bool&#160;</td>
           <td class="paramname"><em>fileFound</em>&#160;</td>
         </tr>
         <tr>
@@ -666,8 +563,8 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="ab4c18700b160cbe53b4e59069e7fcedd"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ab4c18700b160cbe53b4e59069e7fcedd">&#9670;&nbsp;</a></span>set_output_stream()</h2>
+<a id="ae5cb965f581d2940eea1730a5e7a1f06"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae5cb965f581d2940eea1730a5e7a1f06">&#9670;&nbsp;</a></span>set_output_stream()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -675,7 +572,7 @@ Private Attributes</h2></td></tr>
         <tr>
           <td class="memname">void Logger::set_output_stream </td>
           <td>(</td>
-          <td class="paramtype">std::ostream *&#160;</td>
+          <td class="paramtype">std::ostream *const&#160;</td>
           <td class="paramname"><em>outputStream</em></td><td>)</td>
           <td></td>
         </tr>
@@ -685,15 +582,15 @@ Private Attributes</h2></td></tr>
 <p>Sets output stream. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
-    <tr><td class="paramdir">[in,out]</td><td class="paramname">outputStream</td><td>is the new output stream to be used by <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a>. </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">outputStream</td><td>is the new output stream to be used by <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a>. </td></tr>
   </table>
   </dd>
 </dl>
 
 </div>
 </div>
-<a id="aa557a6ff14dbd38ab4b251c56caa0f37"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aa557a6ff14dbd38ab4b251c56caa0f37">&#9670;&nbsp;</a></span>write_all_iterations_to_csv()</h2>
+<a id="a17570df4a0a318ddf4e186a4fc66f476"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a17570df4a0a318ddf4e186a4fc66f476">&#9670;&nbsp;</a></span>write_all_iterations_to_csv()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -701,25 +598,18 @@ Private Attributes</h2></td></tr>
         <tr>
           <td class="memname">void Logger::write_all_iterations_to_csv </td>
           <td>(</td>
-          <td class="paramtype">const std::string &amp;&#160;</td>
-          <td class="paramname"><em>errmsg</em> = <code>&quot;&quot;</code></td><td>)</td>
+          <td class="paramname"></td><td>)</td>
           <td></td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<p>Function used for writing all lines stored in queue babCsv to csv file with name csvIterationsName. </p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">errmsg</td><td>is a possible additional error message </td></tr>
-  </table>
-  </dd>
-</dl>
+<p>Function used for writing all iterations currently stored queue babLineCsv to csv. </p>
 
 </div>
 </div>
-<a id="a99d59c1e627c16bfa155803f42cf28e7"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a99d59c1e627c16bfa155803f42cf28e7">&#9670;&nbsp;</a></span>write_all_lines_to_log()</h2>
+<a id="a3134c2ef11ad7c45c3c8467421966021"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3134c2ef11ad7c45c3c8467421966021">&#9670;&nbsp;</a></span>write_all_lines_to_log()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -728,16 +618,16 @@ Private Attributes</h2></td></tr>
           <td class="memname">void Logger::write_all_lines_to_log </td>
           <td>(</td>
           <td class="paramtype">const std::string &amp;&#160;</td>
-          <td class="paramname"><em>errmsg</em> = <code>&quot;&quot;</code></td><td>)</td>
+          <td class="paramname"><em>errorMessage</em> = <code>&quot;&quot;</code></td><td>)</td>
           <td></td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<p>Function used for writing all lines stored in queue babLine to log with name logFileName. </p>
+<p>Function used for writing all lines stored in queue babLine to log. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">errmsg</td><td>is a possible additional error message </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">errorMessage</td><td>is a possible additional error message </td></tr>
   </table>
   </dd>
 </dl>
@@ -821,7 +711,7 @@ Private Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">std::queue&lt;std::string&gt; maingo::Logger::babLine</td>
+          <td class="memname">std::queue&lt;std::string&gt; maingo::Logger::babLine {}</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -836,27 +726,12 @@ Private Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">std::queue&lt;std::string&gt; maingo::Logger::babLineCsv</td>
+          <td class="memname">std::queue&lt;std::string&gt; maingo::Logger::babLineCsv {}</td>
         </tr>
       </table>
 </div><div class="memdoc">
 <p>queue for storing lines of B&amp;B output for CSV file </p>
 
-</div>
-</div>
-<a id="a36f4bdb8cdcf58504dc06abd6d4e6725"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a36f4bdb8cdcf58504dc06abd6d4e6725">&#9670;&nbsp;</a></span>csvGeneralName</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">std::string maingo::Logger::csvGeneralName</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>string storing name of the csv general file </p>
-
 </div>
 </div>
 <a id="a11f3a05f451f1d7f6f52081b971b5724"></a>
@@ -866,26 +741,11 @@ Private Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">std::string maingo::Logger::csvIterationsName</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>string storing name of the csv iterations file </p>
-
-</div>
-</div>
-<a id="a55590e7a2d77ea9fd85512b17f02bffa"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a55590e7a2d77ea9fd85512b17f02bffa">&#9670;&nbsp;</a></span>jsonFileName</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">std::string maingo::Logger::jsonFileName</td>
+          <td class="memname">std::string maingo::Logger::csvIterationsName = &quot;iterations.csv&quot;</td>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>string storing name of the json file </p>
+<p>name of the csv file into which information on the individual B&amp;B iterations may be written </p>
 
 </div>
 </div>
@@ -896,11 +756,11 @@ Private Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">std::string maingo::Logger::logFileName</td>
+          <td class="memname">std::string maingo::Logger::logFileName = &quot;maingo.log&quot;</td>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>string storing name of the log file </p>
+<p>name of the txt file into which the log may be written </p>
 
 </div>
 </div>
@@ -917,26 +777,11 @@ Private Attributes</h2></td></tr>
 </div><div class="memdoc">
 <p>bool for saving information if minimum node size has been reached within B&amp;B </p>
 
-</div>
-</div>
-<a id="a09a06a9baaf4765d8af2d9baea602962"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a09a06a9baaf4765d8af2d9baea602962">&#9670;&nbsp;</a></span>resFileName</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">std::string maingo::Logger::resFileName</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>string storing name of the res file </p>
-
 </div>
 </div>
 <hr/>The documentation for this class was generated from the following files:<ul>
-<li>C:/Users/dobo01/maingo/inc/<a class="el" href="logger_8h_source.html">logger.h</a></li>
-<li>C:/Users/dobo01/maingo/src/<a class="el" href="logger_8cpp.html">logger.cpp</a></li>
+<li>C:/dobo01/maingo/inc/<a class="el" href="logger_8h_source.html">logger.h</a></li>
+<li>C:/dobo01/maingo/src/<a class="el" href="logger_8cpp.html">logger.cpp</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -946,7 +791,7 @@ Private Attributes</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="classmaingo_1_1_logger.html">Logger</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1_logger.js b/doc/html/classmaingo_1_1_logger.js
index 49bf91c674986fd8bb84d631aac412a382d06185..ad372b983508dfac0c076aeeda1d8a494d145113 100644
--- a/doc/html/classmaingo_1_1_logger.js
+++ b/doc/html/classmaingo_1_1_logger.js
@@ -4,27 +4,23 @@ var classmaingo_1_1_logger =
     [ "Logger", "classmaingo_1_1_logger.html#ae677d6c6ce87b2484d82a493ac649ec3", null ],
     [ "~Logger", "classmaingo_1_1_logger.html#a31cae103ef08470e0db45f01c0360eed", null ],
     [ "clear", "classmaingo_1_1_logger.html#ad63939a5c0535c5abb8e59024b0ca6d4", null ],
-    [ "create_csv_files", "classmaingo_1_1_logger.html#a5776c77c4580d822350dc88225e46061", null ],
-    [ "create_json_file", "classmaingo_1_1_logger.html#ab4926dc6a379823a0ece98e30f6a384f", null ],
-    [ "create_log_file", "classmaingo_1_1_logger.html#aa6c83f95144d085092f854d64b9c1e2f", null ],
+    [ "create_iterations_csv_file", "classmaingo_1_1_logger.html#a168a8239c87de32a540c9fdcb6a54ff7", null ],
+    [ "create_log_file", "classmaingo_1_1_logger.html#af67b92595cd069c402df9a448cd784a3", null ],
     [ "operator=", "classmaingo_1_1_logger.html#a82f7d5b5cb8e33d894f7e17e38d6dbcd", null ],
-    [ "print_message", "classmaingo_1_1_logger.html#a85ebbae4b7d372e8ee4fc6df802d9621", null ],
-    [ "print_message_to_stream_only", "classmaingo_1_1_logger.html#a60d49f911f24c66da289da2dbccc35e2", null ],
-    [ "print_settings", "classmaingo_1_1_logger.html#af4fdb40b8636eff018c56e45c293de7f", null ],
-    [ "save_setting", "classmaingo_1_1_logger.html#ab14611926d783106de661c1c7221f5c3", null ],
-    [ "save_settings_file_name", "classmaingo_1_1_logger.html#accfbe2523be1fb7e14f30fd9b4c5031a", null ],
-    [ "set_output_stream", "classmaingo_1_1_logger.html#ab4c18700b160cbe53b4e59069e7fcedd", null ],
-    [ "write_all_iterations_to_csv", "classmaingo_1_1_logger.html#aa557a6ff14dbd38ab4b251c56caa0f37", null ],
-    [ "write_all_lines_to_log", "classmaingo_1_1_logger.html#a99d59c1e627c16bfa155803f42cf28e7", null ],
+    [ "print_message", "classmaingo_1_1_logger.html#afaa00650854698ce5bbde8fee9db7e0e", null ],
+    [ "print_message_to_stream_only", "classmaingo_1_1_logger.html#a0df484648655184edbbd4bcb6531558f", null ],
+    [ "print_settings", "classmaingo_1_1_logger.html#a1397947c86bde896214c7b77d4be6517", null ],
+    [ "save_setting", "classmaingo_1_1_logger.html#a69e487a988a594016c12a7c919570f04", null ],
+    [ "save_settings_file_name", "classmaingo_1_1_logger.html#af1f4a383ab2f26319ae4da895d30aa2d", null ],
+    [ "set_output_stream", "classmaingo_1_1_logger.html#ae5cb965f581d2940eea1730a5e7a1f06", null ],
+    [ "write_all_iterations_to_csv", "classmaingo_1_1_logger.html#a17570df4a0a318ddf4e186a4fc66f476", null ],
+    [ "write_all_lines_to_log", "classmaingo_1_1_logger.html#a3134c2ef11ad7c45c3c8467421966021", null ],
     [ "_nSettingFiles", "classmaingo_1_1_logger.html#a60676efa35ed66a5c90d10412698fc81", null ],
     [ "_outStream", "classmaingo_1_1_logger.html#a19b41b5d24dd8694b51ff0caaf56a0b4", null ],
     [ "_userSetSettings", "classmaingo_1_1_logger.html#ab9bc94904f592f8dad7532e140fe9394", null ],
     [ "babLine", "classmaingo_1_1_logger.html#aaf1b5259ea1e3d17206119d0e8a99d53", null ],
     [ "babLineCsv", "classmaingo_1_1_logger.html#a4771db34565c3321a819fceb53b4fc76", null ],
-    [ "csvGeneralName", "classmaingo_1_1_logger.html#a36f4bdb8cdcf58504dc06abd6d4e6725", null ],
     [ "csvIterationsName", "classmaingo_1_1_logger.html#a11f3a05f451f1d7f6f52081b971b5724", null ],
-    [ "jsonFileName", "classmaingo_1_1_logger.html#a55590e7a2d77ea9fd85512b17f02bffa", null ],
     [ "logFileName", "classmaingo_1_1_logger.html#a70f564ada7c6d7167bfc908096476996", null ],
-    [ "reachedMinNodeSize", "classmaingo_1_1_logger.html#ae51c685a73d7e4e84c5eb69a1c720829", null ],
-    [ "resFileName", "classmaingo_1_1_logger.html#a09a06a9baaf4765d8af2d9baea602962", null ]
+    [ "reachedMinNodeSize", "classmaingo_1_1_logger.html#ae51c685a73d7e4e84c5eb69a1c720829", null ]
 ];
\ No newline at end of file
diff --git a/doc/html/classmaingo_1_1_m_ai_n_g_o-members.html b/doc/html/classmaingo_1_1_m_ai_n_g_o-members.html
index b6ae1a7dfdc820b6b6dd77207b6db1aaac46f362..25e0f99559e93a8ca6cb817aa06299cfc2bee7ad 100644
--- a/doc/html/classmaingo_1_1_m_ai_n_g_o-members.html
+++ b/doc/html/classmaingo_1_1_m_ai_n_g_o-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -100,32 +100,36 @@ $(document).ready(function(){initNavTree('classmaingo_1_1_m_ai_n_g_o.html','');}
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a917d78c01e2442296f829977491e6107">_babTime</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#abad3366b86f460d436d3c13bfecb147b">_check_feasibility_of_relaxation_only_constraints</a>(const std::vector&lt; double &gt; &amp;solutionPoint, std::string &amp;str, const std::string &amp;whitespaces)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a9ad31f08fce43a453e9f8e1e39c889bb">_check_for_hidden_zero_constraints</a>(const std::vector&lt; mc::FFVar &gt; &amp;tmpDAGVars, std::vector&lt; mc::FFVar &gt; &amp;tmpDAGFunctions, std::vector&lt; mc::FFVar &gt; &amp;tmpDAGoutputFunctions)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a874e8de2f4daafb262380b882a3d3553">_classify_constraints</a>(std::vector&lt; mc::FFVar &gt; &amp;tmpFunctions, const std::vector&lt; mc::FFVar &gt; &amp;tmpDAGVars)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a6094a619e5202a347ad3b755a0f13fe7">_constantConstraints</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a803800682d25b4edc28a3536faba2380">_classify_objective_and_constraints</a>(std::vector&lt; mc::FFVar &gt; &amp;tmpFunctions, const std::vector&lt; mc::FFVar &gt; &amp;tmpDAGVars)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#abb011b283ec6da5387c24804ba59ff6d">_constantConstraints</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#af917f2f3529a7c92bb0b972607c1e8df">_constantConstraintsFeasible</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a9393fdd939148611496b665d537ca6cb">_constantOutputs</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#aded61d763cefceab6bf099cf9d891cff">_constantOutputs</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a9908a4661a24667409c0a0fd5c06fe9f">_construct_DAG</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a54d978f1329af4acf801108591eea1f5">_DAG</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a5d59280b371782eaeaf887073ae7b77a">_DAGconstructed</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#aa5de85da627e5dbdf3c6bf6be2ddad26">_DAGfunctions</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a4751e009b5a1228a1324a8ff1ccac4fb">_DAGfunctionsLbd</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a2771b7011d669e1db37b8b3ef00ab4a5">_DAGlbd</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ac7d4149849a607fa29b77b90a0a5fa2f">_DAGoutputFunctions</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a011bbb5f80dad5bc568f0537931a5369">_DAGoutputFunctionsLbd</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a06382d115db4ab79eb1c249ab367a086">_DAGvars</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a2fd3f75ee25d495eb9f08ab7597f3742">_DAGvarsLbd</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ae51edfeecb90cf3be1d6cabf9d18c9eb">_feasibleAtRoot</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a14ac25981c3df0f6317418c8b9f4857c">_get_additional_outputs</a>(const std::vector&lt; double &gt; &amp;point)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0d372af3e069f9ff12f09936aa9099c0">_get_model_at_point</a>(const std::vector&lt; double &gt; &amp;point, std::vector&lt; double &gt; &amp;returnResult)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a49594efef0db3f36efcf342acf7c7525">_infeasibleVariables</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#acdc8a1d98aa50ee3d76dc4873dda787f">_initialize_solve</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a6624f898a20299ccfa4a8fa2f8f7dd28">_initialPoint</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a7e35d3a30d8a5eab184d18fe256ffc57">_initialPointFeasible</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a66df665b487a9136ff45a8e8a76c739c">_initialPointOriginal</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a9292f5cf116f7607400a75a036c88244">_inMAiNGOsolve</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a96f1a3a2a8c24cdca954e63fdc155e01">_logger</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a689902b992cca417907471e82b9526b1">_csvSolutionStatisticsName</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a54d978f1329af4acf801108591eea1f5">_DAG</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a5d59280b371782eaeaf887073ae7b77a">_DAGconstructed</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#aa5de85da627e5dbdf3c6bf6be2ddad26">_DAGfunctions</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a4751e009b5a1228a1324a8ff1ccac4fb">_DAGfunctionsLbd</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a2771b7011d669e1db37b8b3ef00ab4a5">_DAGlbd</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ac7d4149849a607fa29b77b90a0a5fa2f">_DAGoutputFunctions</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a011bbb5f80dad5bc568f0537931a5369">_DAGoutputFunctionsLbd</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a06382d115db4ab79eb1c249ab367a086">_DAGvars</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a2fd3f75ee25d495eb9f08ab7597f3742">_DAGvarsLbd</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a56d30ff7a1a221550e6c7c045e5c6feb">_ensure_valid_objective_function_using_dummy_variable</a>(const mc::FFVar &amp;dummyVariable)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a92cbd5e8a92e5c335d57bb23574cf6b2">_evaluate_additional_outputs_at_point</a>(const std::vector&lt; double &gt; &amp;point)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a241496b3e71881ee3cb7b8be661b44d4">_evaluate_model_at_point</a>(const std::vector&lt; double &gt; &amp;point)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a8b2bcd5e079464178341f24169e45bbc">_feasibilityProblem</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ae51edfeecb90cf3be1d6cabf9d18c9eb">_feasibleAtRoot</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a49594efef0db3f36efcf342acf7c7525">_infeasibleVariables</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#acdc8a1d98aa50ee3d76dc4873dda787f">_initialize_solve</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a6624f898a20299ccfa4a8fa2f8f7dd28">_initialPoint</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a7e35d3a30d8a5eab184d18fe256ffc57">_initialPointFeasible</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a66df665b487a9136ff45a8e8a76c739c">_initialPointOriginal</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a9292f5cf116f7607400a75a036c88244">_inMAiNGOsolve</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0dffde2ace38c3fad7a6cfb38f0f374c">_jsonFileName</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#aad666fe69213402bdba8b9972a5985b3">_logger</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a020f2b61ca2d2baabf16031f078c2ddd">_maingoOriginalSettings</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#abdcc6fb032878028956050dcba5c9405">_maingoSettings</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#acdbebd94e2fcccad46515741516799de">_maingoSettings</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ace36a8a82262f885ae5f87be65d868db">_maingoStatus</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a31692cc54ec24e14fbd7bfccda000d16">_miqpStatus</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#aa19003266d3acb3b042f282e8bf1e575">_modelOutput</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
@@ -146,9 +150,9 @@ $(document).ready(function(){initNavTree('classmaingo_1_1_m_ai_n_g_o.html','');}
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a91c7c1533effc9589f908b96b67789b3">_nineq</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a9fb77dded43644f931547ab9d7a3daba">_nineqRelaxationOnly</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a65d8859f0f4b4e6dfec43c4238d24772">_nineqSquash</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a92badf4c34413612706e7aeaefebe95a">_nonconstantConstraints</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a7bce17d744313c9b489b19179eb0b4f0">_nonconstantConstraintsUBP</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ace95ba4340090ffaafec40a30504ccb4">_nonconstantOutputs</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a8dacc1f270014ea3c70dee5451abae62">_nonconstantConstraints</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0d1cde74073424f84d8b4692a8406101">_nonconstantConstraintsUBP</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ae1bb7b84481f6f827f61d84601fe9869">_nonconstantOutputs</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ae90a5539fd3c1790b49289c919948da7">_noutputVariables</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#adf4fee2adeb03682d2ea70239f75848d">_nvar</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#af0c4e2dcc05ca034801db5400f8d2fa7">_nvarLbd</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
@@ -157,14 +161,14 @@ $(document).ready(function(){initNavTree('classmaingo_1_1_m_ai_n_g_o.html','');}
   <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a24bb95f23a26f300a8a4ca85b9284512">_nvarOriginalContinuous</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a43a173e24e19fbbd9ea819b105ab39d6">_nvarOriginalInteger</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a11b956f66ea516b6951abe9dd2410484">_objectivesAtRoot</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0314c3c342e0483b85692344d79d8486">_originalConstraints</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a88c7a2689b32500ebf09bf37de06d47f">_originalConstraints</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#adf764bba4c067716ca0d9948eca504a8">_originalVariables</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a5cbd854078dc3fbef193c14af2e7a11d">_outputNames</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a101ac517abb98426ff61a29feb27e7a1">_outputTime</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#aa297393a110200243b693cf5f0fed0cb">_preprocessTime</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a1056041b9ace71cfbf3807ec436cd80b">_print_additional_output</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a585967bc628b31b1fbba2105be7d36a2">_print_MAiNGO_header</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a93a8eadb777ce6ff95072f16dc6ef762">_print_MAiNGO_header_for_other_modeling_language</a>(const PARSING_LANGUAGE parsing_language, std::ofstream &amp;file)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a1eeb14c069d224846f7684d95a90ed04">_print_MAiNGO_header_for_other_modeling_language</a>(const WRITING_LANGUAGE writingLanguage, std::ofstream &amp;file)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0a8c5d381ad5818cec8624db717de73a">_print_message</a>(const std::string &amp;message)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a4919a41d851f89b85fbd2646d878a6b0">_print_solution</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a108919c79fc8d5fd6e0389ce7b242acb">_print_statistics</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
@@ -173,73 +177,77 @@ $(document).ready(function(){initNavTree('classmaingo_1_1_m_ai_n_g_o.html','');}
   <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a9c4f03e80eafd073264fb0d2f186dc81">_readyToSolve</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ab57d5aa6e5abb14b5d2bea4063f8db5e">_recognize_structure</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#abb425f08ebe9b1d4a71d6b455cd656b9">_removedVariables</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#aa6a02b134e037806dea96aab029ff908">_resultVars</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a622b9622d1e3515be1774111e33b0949">_root_constraint_propagation</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#aa5d43df52f00ec1b854f0bf4e67d20de">_root_multistart</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ae8688dd8669b0231af0fcedfaefab02c">_root_obbt_feasibility</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ac685bcf7b2be55e2d689941c1b90fa72">_root_obbt_feasibility_optimality</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#abd3d18c6d0825a1fdf892aed43ef5deb">_rootConPropStatus</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a4940dbf6b13e10e500cb7704b3f6d412">_rootMultistartStatus</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a08c2039814522b8addbf0a1d740397d3">_rootNode</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ae90d120eacc929b19609c6dcd9017fa6">_rootObbtStatus</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a6c09add60cfffb752582cf21182a786d">_set_constraint_properties</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ac39c6e7cc69822997e9fb18721e2e52f">_solutionPoint</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ac3c772c7a634ef58c452ba9921902b53">_solutionTime</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a041316b6a1ce0e0d78249719e5075d0b">_solutionTimeWallClock</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a462440b0556dae9e3c515a2d3c661b13">_solutionValue</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ab2b58e658363c359a205cbd435f1f3d3">_solve_MINLP</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a9f726a054960d563d59032b8067701b2">_solve_MIQP</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a4151ba2d1c6b6965001dbf7fc1a7c122">_uniqueNames</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a805b901f0e2e25ee5910b2b0e6a7c99a">_uniqueNamesOriginal</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a179c701e7f310080876879df45571aae">_variables</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#aeae47f2ca5ba67f042e035711690fec1">_variablesFeasible</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a3bfd617c12d3ee731e314f8f806b4da0">_variablesLbd</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a6e2e3685c938ae2e8605dab3f6a13632">_write_ale_file</a>(const std::string aleFileName=&quot;MAiNGO_ALE_file&quot;, const std::string solverName=&quot;SCIP&quot;, const bool writeRelaxationOnly=false)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a20c235755de9f0c15ea62c28ae9e2ac8">_write_ale_functions</a>(std::ofstream &amp;aleFile, bool writeRelaxationOnly)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a4681879414746b1ac89b905479d6fa1d">_write_ale_options</a>(std::ofstream &amp;aleFile, std::string solverName=&quot;SCIP&quot;)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a6d10798d58ceeac812fb853ca7eccf5c">_write_ale_variables</a>(std::ofstream &amp;aleFile)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a2287a4b633fd59097ce44a74e15f6660">_write_csv_general</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0a9de764a3521782c3f6e3dc68f01324">_resultFileName</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#aa6a02b134e037806dea96aab029ff908">_resultVars</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a622b9622d1e3515be1774111e33b0949">_root_constraint_propagation</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#aa5d43df52f00ec1b854f0bf4e67d20de">_root_multistart</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ae8688dd8669b0231af0fcedfaefab02c">_root_obbt_feasibility</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ac685bcf7b2be55e2d689941c1b90fa72">_root_obbt_feasibility_optimality</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#abd3d18c6d0825a1fdf892aed43ef5deb">_rootConPropStatus</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a4940dbf6b13e10e500cb7704b3f6d412">_rootMultistartStatus</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a08c2039814522b8addbf0a1d740397d3">_rootNode</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ae90d120eacc929b19609c6dcd9017fa6">_rootObbtStatus</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a6c09add60cfffb752582cf21182a786d">_set_constraint_properties</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ac39c6e7cc69822997e9fb18721e2e52f">_solutionPoint</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ac3c772c7a634ef58c452ba9921902b53">_solutionTime</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a041316b6a1ce0e0d78249719e5075d0b">_solutionTimeWallClock</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a462440b0556dae9e3c515a2d3c661b13">_solutionValue</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ab2b58e658363c359a205cbd435f1f3d3">_solve_MINLP</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a9f726a054960d563d59032b8067701b2">_solve_MIQP</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a4151ba2d1c6b6965001dbf7fc1a7c122">_uniqueNames</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a805b901f0e2e25ee5910b2b0e6a7c99a">_uniqueNamesOriginal</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a179c701e7f310080876879df45571aae">_variables</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#aeae47f2ca5ba67f042e035711690fec1">_variablesFeasible</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a3bfd617c12d3ee731e314f8f806b4da0">_variablesLbd</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a6e2e3685c938ae2e8605dab3f6a13632">_write_ale_file</a>(const std::string aleFileName=&quot;MAiNGO_ALE_file&quot;, const std::string solverName=&quot;SCIP&quot;, const bool writeRelaxationOnly=false)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a20c235755de9f0c15ea62c28ae9e2ac8">_write_ale_functions</a>(std::ofstream &amp;aleFile, bool writeRelaxationOnly)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a4681879414746b1ac89b905479d6fa1d">_write_ale_options</a>(std::ofstream &amp;aleFile, std::string solverName=&quot;SCIP&quot;)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a6d10798d58ceeac812fb853ca7eccf5c">_write_ale_variables</a>(std::ofstream &amp;aleFile)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a40c4e33f9034542409daa1f0497c776f">_write_epsilon_constraint_result</a>(const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;objectiveValues, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;solutionPoints)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#acb69025e90c11f757a3f74c9b37daacd">_write_files</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a72b6d958b300d7fc886b74790b001aeb">_write_files_error</a>(const std::string &amp;error)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a7ff011bd8ce28c9dc2e2d24c350698e1">_write_files_error</a>(const std::string &amp;errorMessage)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#af7aec196a4987e5f38ed642b21400aa9">_write_gams_file</a>(const std::string gamsFileName=&quot;MAiNGO_GAMS_file&quot;, const std::string solverName=&quot;SCIP&quot;, const bool writeRelaxationOnly=false)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0d24d4e085f56925079399567cdf70eb">_write_gams_functions</a>(std::ofstream &amp;gamsFile, bool writeRelaxationOnly)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#aa3b2c105e3ebff61b3416c9cdd8bd964">_write_gams_options</a>(std::ofstream &amp;gamsFile, std::string solverName=&quot;SCIP&quot;)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a1aff8d80ad642d24966454b8ef35e34a">_write_gams_variables</a>(std::ofstream &amp;gamsFile)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a9d8ceaac941b738db96be2326e4db27a">_write_json_file</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a76ffecbb5590c1dd40ec896059af4fda">_write_res_file</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a52df8cc85640aaee13afb5cd5748dbcc">get_additional_outputs_at_point</a>(const std::vector&lt; double &gt; &amp;point)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#afd0f8acfe45a05c077810ef75b8d71dd">get_additional_outputs_at_solution_point</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0c15524b2884d3604fc0a5d4b40bcccb">get_cpu_solution_time</a>() const</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0ec7e9601a2a5c8cc2f2bcb8d79c66a5">get_final_abs_gap</a>() const</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ace8e13bdb04862efd560c8d0d80950b4">get_final_LBD</a>() const</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#aa244aaeeb4a93592821ab741010df615">get_final_rel_gap</a>() const</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a5922fb929208ad9341446f05683555f9">get_iterations</a>() const</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a30f5390432b5701f3ae3b7ff3b0ae680">get_LBP_count</a>() const</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a22af1a970a5fd23eb347a655c8ae549a">get_max_nodes_in_memory</a>() const</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#abd17e0e2d436da88f15738e8e0218ac8">get_model_at_point</a>(const std::vector&lt; double &gt; &amp;point, std::vector&lt; double &gt; &amp;returnResult)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a50df488dd7b110d7e4ebc137a8949696">get_model_at_solution_point</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a6f3727adfe69c95ac8e0ca41a7b73fa6">get_objective_value</a>() const</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a7821624172735057f67471776a8d4aa1">get_solution_point</a>() const</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a16e579b3026a722169cf0f8819ac1ec5">get_status</a>() const</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a7f8fb94bcf60d8e2ff8a943c12459061">get_UBP_count</a>() const</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ae1bfc496de0e05575a8f9ad290bd2b58">get_wallclock_solution_time</a>() const</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ae5ca384e27b075702ab9f2161fe2ae82">MAiNGO</a>(std::shared_ptr&lt; MAiNGOmodel &gt; myModel)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ab4d0923334ce1323a91389117560a271">MAiNGO</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0d030db9a3c13e9420ca4dc7f7346183">MAiNGO</a>(const MAiNGO &amp;)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a9d035ded892ca2fd6a0151f6ea761d54">operator=</a>(const MAiNGO &amp;)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a4f888ef8f672e6ee7602951cd4b2c7a9">parse_maingo_to_other_language</a>(const PARSING_LANGUAGE parsing_language, const std::string fileName=&quot;MAiNGO_parsed_file&quot;, const std::string solverName=&quot;SCIP&quot;, const bool useMinMax=true, const bool useTrig=true, const bool ignoreBoundingFuncs=false, const bool writeRelaxationOnly=true)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a83da0fbc8eeb9b2f336cd5d41707fbaf">_write_result_file</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ab894162dd5074eea1d5dd153e4f72d9e">_write_solution_and_statistics_csv</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#adeef2c9d324fa8f9a26819b3a3307ad7">evaluate_additional_outputs_at_point</a>(const std::vector&lt; double &gt; &amp;point)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a5ee95afece75a72e91aff11274eda43a">evaluate_additional_outputs_at_solution_point</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#aaaa69dd8b526f0d9966ce35bd102601f">evaluate_model_at_point</a>(const std::vector&lt; double &gt; &amp;point)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#acd561f4e9560a6a5c501bdf444f581b8">evaluate_model_at_solution_point</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0c15524b2884d3604fc0a5d4b40bcccb">get_cpu_solution_time</a>() const</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0ec7e9601a2a5c8cc2f2bcb8d79c66a5">get_final_abs_gap</a>() const</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ace8e13bdb04862efd560c8d0d80950b4">get_final_LBD</a>() const</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#aa244aaeeb4a93592821ab741010df615">get_final_rel_gap</a>() const</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a5922fb929208ad9341446f05683555f9">get_iterations</a>() const</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a30f5390432b5701f3ae3b7ff3b0ae680">get_LBP_count</a>() const</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a22af1a970a5fd23eb347a655c8ae549a">get_max_nodes_in_memory</a>() const</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a6f3727adfe69c95ac8e0ca41a7b73fa6">get_objective_value</a>() const</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a7821624172735057f67471776a8d4aa1">get_solution_point</a>() const</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a16e579b3026a722169cf0f8819ac1ec5">get_status</a>() const</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a7f8fb94bcf60d8e2ff8a943c12459061">get_UBP_count</a>() const</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ae1bfc496de0e05575a8f9ad290bd2b58">get_wallclock_solution_time</a>() const</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ae5ca384e27b075702ab9f2161fe2ae82">MAiNGO</a>(std::shared_ptr&lt; MAiNGOmodel &gt; myModel)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ab4d0923334ce1323a91389117560a271">MAiNGO</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0d030db9a3c13e9420ca4dc7f7346183">MAiNGO</a>(const MAiNGO &amp;)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a9d035ded892ca2fd6a0151f6ea761d54">operator=</a>(const MAiNGO &amp;)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a1a9fa4c0ae0a91178836350b5f5c22d3">print_MAiNGO</a>(std::ostream &amp;outstream=std::cout)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a9d2cbee1f5ecf3321e2e5334e70757fe">read_settings</a>(std::string settingsFile)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a530c347d65ac74a1cf871e385ec18cc4">set_csv_file_name</a>(std::string csvIterationsName=&quot;bab_Report_Iterations&quot;, std::string csvGeneralName=&quot;bab_Report_General&quot;)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a755f6652395b3bad73976a26fa4243f9">set_json_file_name</a>(std::string jsonFileName=&quot;bab&quot;)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ae99518c0b699295565d25c76b0187c58">set_log_file_name</a>(std::string logFileName=&quot;bab&quot;)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0728bb641f5f269763663ce89280bd4f">read_settings</a>(const std::string &amp;settingsFileName=&quot;MAiNGOSettings.txt&quot;)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#abe4f3a7b42c05c07e7962be17de02ed3">set_iterations_csv_file_name</a>(const std::string &amp;csvIterationsName)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a3caca275897742b038011e6fd00b2bdc">set_json_file_name</a>(const std::string &amp;jsonFileName)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a450f5ac09e6afa9e34dc86b59359ae20">set_log_file_name</a>(const std::string &amp;logFileName)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a1fe4e8690548362eb1ec74fb052a424e">set_model</a>(std::shared_ptr&lt; MAiNGOmodel &gt; myModel)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a383bc41aef21457041b6a79d0a376bed">set_option</a>(const std::string option, const double value)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a66b60c8b60e9525e96e4d2dbb6398f88">set_output_stream</a>(std::ostream *outputStream)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ade7741b5e86018f3167c9f34622a2733">set_res_file_name</a>(std::string resFileName=&quot;MAiNGO_res&quot;)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a50062c75f198aab4cd975f34fdef1506">solve</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a4cf012860282bcaff9890e182f4b6886">solve_epsilon_constraint</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ae2bc7507ee0341d7b0a8ac06702ca964">set_option</a>(const std::string &amp;option, const double value)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a21ee05457f51d5b22853d10cb4114b96">set_option</a>(const std::string &amp;option, const bool value)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a1f8ea652c3ae60bad558c3aeb66f1085">set_option</a>(const std::string &amp;option, const int value)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a1a4ba608b818d6a2e303b836505e0234">set_output_stream</a>(std::ostream *const outputStream)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a4dc94835e031b37290f96814486c2903">set_result_file_name</a>(const std::string &amp;resultFileName)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0157c25ef59573826a916e301e836330">set_solution_and_statistics_csv_file_name</a>(const std::string &amp;csvSolutionStatisticsName)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a50062c75f198aab4cd975f34fdef1506">solve</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a4cf012860282bcaff9890e182f4b6886">solve_epsilon_constraint</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a8acf1fc912457043365faabd54861d50">write_model_to_file_in_other_language</a>(const WRITING_LANGUAGE writingLanguage, std::string fileName=&quot;&quot;, const std::string solverName=&quot;SCIP&quot;, const bool useMinMax=true, const bool useTrig=true, const bool ignoreBoundingFuncs=false, const bool writeRelaxationOnly=true)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#aa50b9f4993a803eb7ac98dee8ea2fcf1">~MAiNGO</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">maingo::MAiNGO</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
@@ -248,7 +256,7 @@ $(document).ready(function(){initNavTree('classmaingo_1_1_m_ai_n_g_o.html','');}
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1_m_ai_n_g_o.html b/doc/html/classmaingo_1_1_m_ai_n_g_o.html
index ea7c56b3db8b1ee63d1ce2161427b0bb2a2da0f4..b72d28680d852a9bcbee2cea2938b67c5043d01d 100644
--- a/doc/html/classmaingo_1_1_m_ai_n_g_o.html
+++ b/doc/html/classmaingo_1_1_m_ai_n_g_o.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::MAiNGO Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -89,7 +89,6 @@ $(document).ready(function(){initNavTree('classmaingo_1_1_m_ai_n_g_o.html','');}
   <div class="summary">
 <a href="#pub-methods">Public Member Functions</a> &#124;
 <a href="#pri-methods">Private Member Functions</a> &#124;
-<a href="#pri-attribs">Private Attributes</a> &#124;
 <a href="classmaingo_1_1_m_ai_n_g_o-members.html">List of all members</a>  </div>
   <div class="headertitle">
 <div class="title">maingo::MAiNGO Class Reference</div>  </div>
@@ -118,30 +117,39 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:a4cf012860282bcaff9890e182f4b6886"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621a">RETCODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a4cf012860282bcaff9890e182f4b6886">solve_epsilon_constraint</a> ()</td></tr>
 <tr class="memdesc:a4cf012860282bcaff9890e182f4b6886"><td class="mdescLeft">&#160;</td><td class="mdescRight">Solve a multi-objective problem using the epsilon-constraint method.  <a href="#a4cf012860282bcaff9890e182f4b6886">More...</a><br /></td></tr>
 <tr class="separator:a4cf012860282bcaff9890e182f4b6886"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a383bc41aef21457041b6a79d0a376bed"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a383bc41aef21457041b6a79d0a376bed">set_option</a> (const std::string option, const double value)</td></tr>
-<tr class="memdesc:a383bc41aef21457041b6a79d0a376bed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets an option.  <a href="#a383bc41aef21457041b6a79d0a376bed">More...</a><br /></td></tr>
-<tr class="separator:a383bc41aef21457041b6a79d0a376bed"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9d2cbee1f5ecf3321e2e5334e70757fe"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a9d2cbee1f5ecf3321e2e5334e70757fe">read_settings</a> (std::string settingsFile)</td></tr>
-<tr class="memdesc:a9d2cbee1f5ecf3321e2e5334e70757fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads settings from text file.  <a href="#a9d2cbee1f5ecf3321e2e5334e70757fe">More...</a><br /></td></tr>
-<tr class="separator:a9d2cbee1f5ecf3321e2e5334e70757fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae99518c0b699295565d25c76b0187c58"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ae99518c0b699295565d25c76b0187c58">set_log_file_name</a> (std::string logFileName=&quot;bab&quot;)</td></tr>
-<tr class="memdesc:ae99518c0b699295565d25c76b0187c58"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets name of the log file.  <a href="#ae99518c0b699295565d25c76b0187c58">More...</a><br /></td></tr>
-<tr class="separator:ae99518c0b699295565d25c76b0187c58"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ade7741b5e86018f3167c9f34622a2733"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ade7741b5e86018f3167c9f34622a2733">set_res_file_name</a> (std::string resFileName=&quot;MAiNGO_res&quot;)</td></tr>
-<tr class="memdesc:ade7741b5e86018f3167c9f34622a2733"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets name of the res file.  <a href="#ade7741b5e86018f3167c9f34622a2733">More...</a><br /></td></tr>
-<tr class="separator:ade7741b5e86018f3167c9f34622a2733"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a530c347d65ac74a1cf871e385ec18cc4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a530c347d65ac74a1cf871e385ec18cc4">set_csv_file_name</a> (std::string csvIterationsName=&quot;bab_Report_Iterations&quot;, std::string csvGeneralName=&quot;bab_Report_General&quot;)</td></tr>
-<tr class="memdesc:a530c347d65ac74a1cf871e385ec18cc4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets names of the csv files.  <a href="#a530c347d65ac74a1cf871e385ec18cc4">More...</a><br /></td></tr>
-<tr class="separator:a530c347d65ac74a1cf871e385ec18cc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a755f6652395b3bad73976a26fa4243f9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a755f6652395b3bad73976a26fa4243f9">set_json_file_name</a> (std::string jsonFileName=&quot;bab&quot;)</td></tr>
-<tr class="memdesc:a755f6652395b3bad73976a26fa4243f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets name of the json file.  <a href="#a755f6652395b3bad73976a26fa4243f9">More...</a><br /></td></tr>
-<tr class="separator:a755f6652395b3bad73976a26fa4243f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a66b60c8b60e9525e96e4d2dbb6398f88"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a66b60c8b60e9525e96e4d2dbb6398f88">set_output_stream</a> (std::ostream *outputStream)</td></tr>
-<tr class="memdesc:a66b60c8b60e9525e96e4d2dbb6398f88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets output stream.  <a href="#a66b60c8b60e9525e96e4d2dbb6398f88">More...</a><br /></td></tr>
-<tr class="separator:a66b60c8b60e9525e96e4d2dbb6398f88"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4f888ef8f672e6ee7602951cd4b2c7a9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a4f888ef8f672e6ee7602951cd4b2c7a9">parse_maingo_to_other_language</a> (const <a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299a">PARSING_LANGUAGE</a> parsing_language, const std::string fileName=&quot;MAiNGO_parsed_file&quot;, const std::string solverName=&quot;SCIP&quot;, const bool useMinMax=true, const bool useTrig=true, const bool ignoreBoundingFuncs=false, const bool writeRelaxationOnly=true)</td></tr>
-<tr class="memdesc:a4f888ef8f672e6ee7602951cd4b2c7a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> model to a different modeling language.  <a href="#a4f888ef8f672e6ee7602951cd4b2c7a9">More...</a><br /></td></tr>
-<tr class="separator:a4f888ef8f672e6ee7602951cd4b2c7a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae2bc7507ee0341d7b0a8ac06702ca964"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ae2bc7507ee0341d7b0a8ac06702ca964">set_option</a> (const std::string &amp;option, const double value)</td></tr>
+<tr class="memdesc:ae2bc7507ee0341d7b0a8ac06702ca964"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets an option with a double value. This function is used for all options.  <a href="#ae2bc7507ee0341d7b0a8ac06702ca964">More...</a><br /></td></tr>
+<tr class="separator:ae2bc7507ee0341d7b0a8ac06702ca964"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a21ee05457f51d5b22853d10cb4114b96"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a21ee05457f51d5b22853d10cb4114b96">set_option</a> (const std::string &amp;option, const bool value)</td></tr>
+<tr class="memdesc:a21ee05457f51d5b22853d10cb4114b96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets an option with a boolean value.  <a href="#a21ee05457f51d5b22853d10cb4114b96">More...</a><br /></td></tr>
+<tr class="separator:a21ee05457f51d5b22853d10cb4114b96"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1f8ea652c3ae60bad558c3aeb66f1085"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a1f8ea652c3ae60bad558c3aeb66f1085">set_option</a> (const std::string &amp;option, const int value)</td></tr>
+<tr class="memdesc:a1f8ea652c3ae60bad558c3aeb66f1085"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets an option with an integer value - just forwards to version with double value.  <a href="#a1f8ea652c3ae60bad558c3aeb66f1085">More...</a><br /></td></tr>
+<tr class="separator:a1f8ea652c3ae60bad558c3aeb66f1085"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0728bb641f5f269763663ce89280bd4f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0728bb641f5f269763663ce89280bd4f">read_settings</a> (const std::string &amp;settingsFileName=&quot;MAiNGOSettings.txt&quot;)</td></tr>
+<tr class="memdesc:a0728bb641f5f269763663ce89280bd4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads settings from text file.  <a href="#a0728bb641f5f269763663ce89280bd4f">More...</a><br /></td></tr>
+<tr class="separator:a0728bb641f5f269763663ce89280bd4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1a4ba608b818d6a2e303b836505e0234"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a1a4ba608b818d6a2e303b836505e0234">set_output_stream</a> (std::ostream *const outputStream)</td></tr>
+<tr class="memdesc:a1a4ba608b818d6a2e303b836505e0234"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets output stream onto which logging information may be printed.  <a href="#a1a4ba608b818d6a2e303b836505e0234">More...</a><br /></td></tr>
+<tr class="separator:a1a4ba608b818d6a2e303b836505e0234"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a450f5ac09e6afa9e34dc86b59359ae20"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a450f5ac09e6afa9e34dc86b59359ae20">set_log_file_name</a> (const std::string &amp;logFileName)</td></tr>
+<tr class="memdesc:a450f5ac09e6afa9e34dc86b59359ae20"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets name of the log file into which logging information may be written.  <a href="#a450f5ac09e6afa9e34dc86b59359ae20">More...</a><br /></td></tr>
+<tr class="separator:a450f5ac09e6afa9e34dc86b59359ae20"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4dc94835e031b37290f96814486c2903"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a4dc94835e031b37290f96814486c2903">set_result_file_name</a> (const std::string &amp;resultFileName)</td></tr>
+<tr class="memdesc:a4dc94835e031b37290f96814486c2903"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets name of the text file into which information on the solution may be written.  <a href="#a4dc94835e031b37290f96814486c2903">More...</a><br /></td></tr>
+<tr class="separator:a4dc94835e031b37290f96814486c2903"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0157c25ef59573826a916e301e836330"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0157c25ef59573826a916e301e836330">set_solution_and_statistics_csv_file_name</a> (const std::string &amp;csvSolutionStatisticsName)</td></tr>
+<tr class="memdesc:a0157c25ef59573826a916e301e836330"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets names of the csv file into which the solution and statistics may be written.  <a href="#a0157c25ef59573826a916e301e836330">More...</a><br /></td></tr>
+<tr class="separator:a0157c25ef59573826a916e301e836330"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abe4f3a7b42c05c07e7962be17de02ed3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#abe4f3a7b42c05c07e7962be17de02ed3">set_iterations_csv_file_name</a> (const std::string &amp;csvIterationsName)</td></tr>
+<tr class="memdesc:abe4f3a7b42c05c07e7962be17de02ed3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets names of the csv file into which information on the individual B&amp;B iterations may be written.  <a href="#abe4f3a7b42c05c07e7962be17de02ed3">More...</a><br /></td></tr>
+<tr class="separator:abe4f3a7b42c05c07e7962be17de02ed3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3caca275897742b038011e6fd00b2bdc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a3caca275897742b038011e6fd00b2bdc">set_json_file_name</a> (const std::string &amp;jsonFileName)</td></tr>
+<tr class="memdesc:a3caca275897742b038011e6fd00b2bdc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets name of the json file into which information on the problem and solution may be written.  <a href="#a3caca275897742b038011e6fd00b2bdc">More...</a><br /></td></tr>
+<tr class="separator:a3caca275897742b038011e6fd00b2bdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8acf1fc912457043365faabd54861d50"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a8acf1fc912457043365faabd54861d50">write_model_to_file_in_other_language</a> (const <a class="el" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39a">WRITING_LANGUAGE</a> writingLanguage, std::string fileName=&quot;&quot;, const std::string solverName=&quot;SCIP&quot;, const bool useMinMax=true, const bool useTrig=true, const bool ignoreBoundingFuncs=false, const bool writeRelaxationOnly=true)</td></tr>
+<tr class="memdesc:a8acf1fc912457043365faabd54861d50"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> model to a a file in a different modeling language.  <a href="#a8acf1fc912457043365faabd54861d50">More...</a><br /></td></tr>
+<tr class="separator:a8acf1fc912457043365faabd54861d50"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a1a9fa4c0ae0a91178836350b5f5c22d3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a1a9fa4c0ae0a91178836350b5f5c22d3">print_MAiNGO</a> (std::ostream &amp;outstream=std::cout)</td></tr>
 <tr class="memdesc:a1a9fa4c0ae0a91178836350b5f5c22d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function printing an ASCII <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> with copyright.  <a href="#a1a9fa4c0ae0a91178836350b5f5c22d3">More...</a><br /></td></tr>
 <tr class="separator:a1a9fa4c0ae0a91178836350b5f5c22d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -182,18 +190,18 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:a16e579b3026a722169cf0f8819ac1ec5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621a">RETCODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a16e579b3026a722169cf0f8819ac1ec5">get_status</a> () const</td></tr>
 <tr class="memdesc:a16e579b3026a722169cf0f8819ac1ec5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Funcition returning whether <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> solved the problem or not.  <a href="#a16e579b3026a722169cf0f8819ac1ec5">More...</a><br /></td></tr>
 <tr class="separator:a16e579b3026a722169cf0f8819ac1ec5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:afd0f8acfe45a05c077810ef75b8d71dd"><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::pair&lt; std::string, double &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#afd0f8acfe45a05c077810ef75b8d71dd">get_additional_outputs_at_solution_point</a> ()</td></tr>
-<tr class="memdesc:afd0f8acfe45a05c077810ef75b8d71dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function returning the additional model outputs at solution point.  <a href="#afd0f8acfe45a05c077810ef75b8d71dd">More...</a><br /></td></tr>
-<tr class="separator:afd0f8acfe45a05c077810ef75b8d71dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a50df488dd7b110d7e4ebc137a8949696"><td class="memItemLeft" align="right" valign="top">std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a50df488dd7b110d7e4ebc137a8949696">get_model_at_solution_point</a> ()</td></tr>
-<tr class="memdesc:a50df488dd7b110d7e4ebc137a8949696"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function returning all model function values at solution point. The ordering of the returned vector is: vector[0]: objective vector[1 to (1+ineq)]: inequalities ( + constant inequalities ) vector[(1+ineq) to (1+ineq+eq)]: equalities ( + constant equalities ) vector[(1+ineq+eq) to (1+ineq+eq+ineqRelOnly)]: relaxation only inequalities ( + constant rel only inequalities ) vector[(1+ineq+eq+ineqRelOnly) to (1+ineq+eq+ineqRelOnly+eqRelOnly)]: relaxation only equalities ( + constant rel only equalities ) vector[(1+ineq+eq+ineqRelOnly+eqRelOnly) to (1+ineq+eq+ineqRelOnly+eqRelOnly+ineqSquash)]: squash inequalities ( + constant squash inequalities )  <a href="#a50df488dd7b110d7e4ebc137a8949696">More...</a><br /></td></tr>
-<tr class="separator:a50df488dd7b110d7e4ebc137a8949696"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abd17e0e2d436da88f15738e8e0218ac8"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#abd17e0e2d436da88f15738e8e0218ac8">get_model_at_point</a> (const std::vector&lt; double &gt; &amp;point, std::vector&lt; double &gt; &amp;returnResult)</td></tr>
-<tr class="memdesc:abd17e0e2d436da88f15738e8e0218ac8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function telling whether a point is feasible or not and returning values of the set model of the objective and all constraints at a point. The ordering of the vector returnResult is: vector[0]: objective vector[1 to (1+ineq)]: inequalities ( + constant inequalities ) vector[(1+ineq) to (1+ineq+eq)]: equalities ( + constant equalities ) vector[(1+ineq+eq) to (1+ineq+eq+ineqRelOnly)]: relaxation only inequalities ( + constant rel only inequalities ) vector[(1+ineq+eq+ineqRelOnly) to (1+ineq+eq+ineqRelOnly+eqRelOnly)]: relaxation only equalities ( + constant rel only equalities ) vector[(1+ineq+eq+ineqRelOnly+eqRelOnly) to (1+ineq+eq+ineqRelOnly+eqRelOnly+ineqSquash)]: squash inequalities ( + constant squash inequalities )  <a href="#abd17e0e2d436da88f15738e8e0218ac8">More...</a><br /></td></tr>
-<tr class="separator:abd17e0e2d436da88f15738e8e0218ac8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a52df8cc85640aaee13afb5cd5748dbcc"><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::pair&lt; std::string, double &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a52df8cc85640aaee13afb5cd5748dbcc">get_additional_outputs_at_point</a> (const std::vector&lt; double &gt; &amp;point)</td></tr>
-<tr class="memdesc:a52df8cc85640aaee13afb5cd5748dbcc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function returning values of the additional outputs of the set model at a point.  <a href="#a52df8cc85640aaee13afb5cd5748dbcc">More...</a><br /></td></tr>
-<tr class="separator:a52df8cc85640aaee13afb5cd5748dbcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acd561f4e9560a6a5c501bdf444f581b8"><td class="memItemLeft" align="right" valign="top">std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#acd561f4e9560a6a5c501bdf444f581b8">evaluate_model_at_solution_point</a> ()</td></tr>
+<tr class="memdesc:acd561f4e9560a6a5c501bdf444f581b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function returning all model function values at solution point. The ordering of the returned vector is: vector[0]: objective vector[1 to (1+ineq)]: inequalities ( + constant inequalities ) vector[(1+ineq) to (1+ineq+eq)]: equalities ( + constant equalities ) vector[(1+ineq+eq) to (1+ineq+eq+ineqRelOnly)]: relaxation only inequalities ( + constant rel only inequalities ) vector[(1+ineq+eq+ineqRelOnly) to (1+ineq+eq+ineqRelOnly+eqRelOnly)]: relaxation only equalities ( + constant rel only equalities ) vector[(1+ineq+eq+ineqRelOnly+eqRelOnly) to (1+ineq+eq+ineqRelOnly+eqRelOnly+ineqSquash)]: squash inequalities ( + constant squash inequalities )  <a href="#acd561f4e9560a6a5c501bdf444f581b8">More...</a><br /></td></tr>
+<tr class="separator:acd561f4e9560a6a5c501bdf444f581b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5ee95afece75a72e91aff11274eda43a"><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::pair&lt; std::string, double &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a5ee95afece75a72e91aff11274eda43a">evaluate_additional_outputs_at_solution_point</a> ()</td></tr>
+<tr class="memdesc:a5ee95afece75a72e91aff11274eda43a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function returning the additional model outputs at the solution point.  <a href="#a5ee95afece75a72e91aff11274eda43a">More...</a><br /></td></tr>
+<tr class="separator:a5ee95afece75a72e91aff11274eda43a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaaa69dd8b526f0d9966ce35bd102601f"><td class="memItemLeft" align="right" valign="top">std::pair&lt; std::vector&lt; double &gt;, bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#aaaa69dd8b526f0d9966ce35bd102601f">evaluate_model_at_point</a> (const std::vector&lt; double &gt; &amp;point)</td></tr>
+<tr class="memdesc:aaaa69dd8b526f0d9966ce35bd102601f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function telling whether a point is feasible or not and returning values of the set model of the objective and all constraints at a point. The ordering of the vector containing the values of the objective and constraints is: vector[0]: objective vector[1 to (1+ineq)]: inequalities ( + constant inequalities ) vector[(1+ineq) to (1+ineq+eq)]: equalities ( + constant equalities ) vector[(1+ineq+eq) to (1+ineq+eq+ineqRelOnly)]: relaxation only inequalities ( + constant rel only inequalities ) vector[(1+ineq+eq+ineqRelOnly) to (1+ineq+eq+ineqRelOnly+eqRelOnly)]: relaxation only equalities ( + constant rel only equalities ) vector[(1+ineq+eq+ineqRelOnly+eqRelOnly) to (1+ineq+eq+ineqRelOnly+eqRelOnly+ineqSquash)]: squash inequalities ( + constant squash inequalities )  <a href="#aaaa69dd8b526f0d9966ce35bd102601f">More...</a><br /></td></tr>
+<tr class="separator:aaaa69dd8b526f0d9966ce35bd102601f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adeef2c9d324fa8f9a26819b3a3307ad7"><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::pair&lt; std::string, double &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#adeef2c9d324fa8f9a26819b3a3307ad7">evaluate_additional_outputs_at_point</a> (const std::vector&lt; double &gt; &amp;point)</td></tr>
+<tr class="memdesc:adeef2c9d324fa8f9a26819b3a3307ad7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function returning values of the additional outputs of the set model at a point.  <a href="#adeef2c9d324fa8f9a26819b3a3307ad7">More...</a><br /></td></tr>
+<tr class="separator:adeef2c9d324fa8f9a26819b3a3307ad7"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
 Private Member Functions</h2></td></tr>
@@ -218,9 +226,12 @@ Private Member Functions</h2></td></tr>
 <tr class="memitem:a9908a4661a24667409c0a0fd5c06fe9f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a9908a4661a24667409c0a0fd5c06fe9f">_construct_DAG</a> ()</td></tr>
 <tr class="memdesc:a9908a4661a24667409c0a0fd5c06fe9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct DAG.  <a href="#a9908a4661a24667409c0a0fd5c06fe9f">More...</a><br /></td></tr>
 <tr class="separator:a9908a4661a24667409c0a0fd5c06fe9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a874e8de2f4daafb262380b882a3d3553"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a874e8de2f4daafb262380b882a3d3553">_classify_constraints</a> (std::vector&lt; mc::FFVar &gt; &amp;tmpFunctions, const std::vector&lt; mc::FFVar &gt; &amp;tmpDAGVars)</td></tr>
-<tr class="memdesc:a874e8de2f4daafb262380b882a3d3553"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fills the constraints vectors (original, constant, non-constant) and outputs and writes non-constant functions and outputs to the provided vectors This function DOES NOT classify auxiliary relaxation only equalities as this is done in _add_auxiliary_variables_to_lbd_dag.  <a href="#a874e8de2f4daafb262380b882a3d3553">More...</a><br /></td></tr>
-<tr class="separator:a874e8de2f4daafb262380b882a3d3553"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a803800682d25b4edc28a3536faba2380"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a803800682d25b4edc28a3536faba2380">_classify_objective_and_constraints</a> (std::vector&lt; mc::FFVar &gt; &amp;tmpFunctions, const std::vector&lt; mc::FFVar &gt; &amp;tmpDAGVars)</td></tr>
+<tr class="memdesc:a803800682d25b4edc28a3536faba2380"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fills the constraints vectors (original, constant, non-constant) and outputs and writes non-constant functions and outputs to the provided vectors This function DOES NOT classify auxiliary relaxation only equalities as this is done in _add_auxiliary_variables_to_lbd_dag.  <a href="#a803800682d25b4edc28a3536faba2380">More...</a><br /></td></tr>
+<tr class="separator:a803800682d25b4edc28a3536faba2380"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a56d30ff7a1a221550e6c7c045e5c6feb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a56d30ff7a1a221550e6c7c045e5c6feb">_ensure_valid_objective_function_using_dummy_variable</a> (const mc::FFVar &amp;dummyVariable)</td></tr>
+<tr class="memdesc:a56d30ff7a1a221550e6c7c045e5c6feb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ensures that the objective function stored in the _modelOutput is valid. In particular, if _modelOutput is an empty vector, a constant will be used as objective function. If the objective function is a constant, this functions makes sure it is still correctly associated with the DAG.  <a href="#a56d30ff7a1a221550e6c7c045e5c6feb">More...</a><br /></td></tr>
+<tr class="separator:a56d30ff7a1a221550e6c7c045e5c6feb"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a9ad31f08fce43a453e9f8e1e39c889bb"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a9ad31f08fce43a453e9f8e1e39c889bb">_check_for_hidden_zero_constraints</a> (const std::vector&lt; mc::FFVar &gt; &amp;tmpDAGVars, std::vector&lt; mc::FFVar &gt; &amp;tmpDAGFunctions, std::vector&lt; mc::FFVar &gt; &amp;tmpDAGoutputFunctions)</td></tr>
 <tr class="memdesc:a9ad31f08fce43a453e9f8e1e39c889bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if the constraints are non-zero (constant) after the DAG has been constructed (this may happen if some FFVars are equal). Fills tmpDAGFunctions and tmpDAGoutputFunctions.  <a href="#a9ad31f08fce43a453e9f8e1e39c889bb">More...</a><br /></td></tr>
 <tr class="separator:a9ad31f08fce43a453e9f8e1e39c889bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -260,12 +271,12 @@ Private Member Functions</h2></td></tr>
 <tr class="memitem:a40c4e33f9034542409daa1f0497c776f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a40c4e33f9034542409daa1f0497c776f">_write_epsilon_constraint_result</a> (const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;objectiveValues, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;solutionPoints)</td></tr>
 <tr class="memdesc:a40c4e33f9034542409daa1f0497c776f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for writing the pareto front to MAiNGO_epsilon_constraint_objective_values.csv and the corresponding solution points to MAiNGO_epsilon_constraint_solution_points.csv.  <a href="#a40c4e33f9034542409daa1f0497c776f">More...</a><br /></td></tr>
 <tr class="separator:a40c4e33f9034542409daa1f0497c776f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0d372af3e069f9ff12f09936aa9099c0"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0d372af3e069f9ff12f09936aa9099c0">_get_model_at_point</a> (const std::vector&lt; double &gt; &amp;point, std::vector&lt; double &gt; &amp;returnResult)</td></tr>
-<tr class="memdesc:a0d372af3e069f9ff12f09936aa9099c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function telling whether a point is feasible or not and returning values of the set model of the objective and all constraints at a point. The ordering of the vector returnResult is: vector[0]: objective vector[1 to (1+ineq)]: inequalities vector[(1+ineq) to (1+ineq+eq)]: equalities vector[(1+ineq+eq) to (1+ineq+eq+ineqRelOnly)]: relaxation only inequalities vector[(1+ineq+eq+ineqRelOnly) to (1+ineq+eq+ineqRelOnly+eqRelOnly)]: relaxation only equalities vector[(1+ineq+eq+ineqRelOnly+eqRelOnly) to (1+ineq+eq+ineqRelOnly+eqRelOnly+ineqSquash)]: squash inequalities ( + constant squash inequalities )  <a href="#a0d372af3e069f9ff12f09936aa9099c0">More...</a><br /></td></tr>
-<tr class="separator:a0d372af3e069f9ff12f09936aa9099c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a14ac25981c3df0f6317418c8b9f4857c"><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::pair&lt; std::string, double &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a14ac25981c3df0f6317418c8b9f4857c">_get_additional_outputs</a> (const std::vector&lt; double &gt; &amp;point)</td></tr>
-<tr class="memdesc:a14ac25981c3df0f6317418c8b9f4857c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function returning values of the additional outputs of the set model at a point.  <a href="#a14ac25981c3df0f6317418c8b9f4857c">More...</a><br /></td></tr>
-<tr class="separator:a14ac25981c3df0f6317418c8b9f4857c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a241496b3e71881ee3cb7b8be661b44d4"><td class="memItemLeft" align="right" valign="top">std::pair&lt; std::vector&lt; double &gt;, bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a241496b3e71881ee3cb7b8be661b44d4">_evaluate_model_at_point</a> (const std::vector&lt; double &gt; &amp;point)</td></tr>
+<tr class="memdesc:a241496b3e71881ee3cb7b8be661b44d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function telling whether a point is feasible or not and returning values of the set model of the objective and all constraints at a point. The ordering of the vector containing the values of the objective and constraints is: vector[0]: objective vector[1 to (1+ineq)]: inequalities ( + constant inequalities ) vector[(1+ineq) to (1+ineq+eq)]: equalities ( + constant equalities ) vector[(1+ineq+eq) to (1+ineq+eq+ineqRelOnly)]: relaxation only inequalities ( + constant rel only inequalities ) vector[(1+ineq+eq+ineqRelOnly) to (1+ineq+eq+ineqRelOnly+eqRelOnly)]: relaxation only equalities ( + constant rel only equalities ) vector[(1+ineq+eq+ineqRelOnly+eqRelOnly) to (1+ineq+eq+ineqRelOnly+eqRelOnly+ineqSquash)]: squash inequalities ( + constant squash inequalities )  <a href="#a241496b3e71881ee3cb7b8be661b44d4">More...</a><br /></td></tr>
+<tr class="separator:a241496b3e71881ee3cb7b8be661b44d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a92cbd5e8a92e5c335d57bb23574cf6b2"><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::pair&lt; std::string, double &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a92cbd5e8a92e5c335d57bb23574cf6b2">_evaluate_additional_outputs_at_point</a> (const std::vector&lt; double &gt; &amp;point)</td></tr>
+<tr class="memdesc:a92cbd5e8a92e5c335d57bb23574cf6b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function returning values of the additional outputs of the set model at a point.  <a href="#a92cbd5e8a92e5c335d57bb23574cf6b2">More...</a><br /></td></tr>
+<tr class="separator:a92cbd5e8a92e5c335d57bb23574cf6b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr><td colspan="2"><div class="groupHeader">MAiNGO printing functions</div></td></tr>
 <tr class="memitem:a108919c79fc8d5fd6e0389ce7b242acb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a108919c79fc8d5fd6e0389ce7b242acb">_print_statistics</a> ()</td></tr>
 <tr class="memdesc:a108919c79fc8d5fd6e0389ce7b242acb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints problem &amp; solution statistics on screen.  <a href="#a108919c79fc8d5fd6e0389ce7b242acb">More...</a><br /></td></tr>
@@ -283,18 +294,18 @@ Private Member Functions</h2></td></tr>
 <tr class="memitem:acb69025e90c11f757a3f74c9b37daacd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#acb69025e90c11f757a3f74c9b37daacd">_write_files</a> ()</td></tr>
 <tr class="memdesc:acb69025e90c11f757a3f74c9b37daacd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes logging and csv information to disk.  <a href="#acb69025e90c11f757a3f74c9b37daacd">More...</a><br /></td></tr>
 <tr class="separator:acb69025e90c11f757a3f74c9b37daacd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a72b6d958b300d7fc886b74790b001aeb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a72b6d958b300d7fc886b74790b001aeb">_write_files_error</a> (const std::string &amp;error)</td></tr>
-<tr class="memdesc:a72b6d958b300d7fc886b74790b001aeb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes logging and csv information to disk when an error occurs.  <a href="#a72b6d958b300d7fc886b74790b001aeb">More...</a><br /></td></tr>
-<tr class="separator:a72b6d958b300d7fc886b74790b001aeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2287a4b633fd59097ce44a74e15f6660"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a2287a4b633fd59097ce44a74e15f6660">_write_csv_general</a> ()</td></tr>
-<tr class="memdesc:a2287a4b633fd59097ce44a74e15f6660"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write csv summaries to disk.  <a href="#a2287a4b633fd59097ce44a74e15f6660">More...</a><br /></td></tr>
-<tr class="separator:a2287a4b633fd59097ce44a74e15f6660"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ff011bd8ce28c9dc2e2d24c350698e1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a7ff011bd8ce28c9dc2e2d24c350698e1">_write_files_error</a> (const std::string &amp;errorMessage)</td></tr>
+<tr class="memdesc:a7ff011bd8ce28c9dc2e2d24c350698e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes logging and csv information to disk when an error occurs.  <a href="#a7ff011bd8ce28c9dc2e2d24c350698e1">More...</a><br /></td></tr>
+<tr class="separator:a7ff011bd8ce28c9dc2e2d24c350698e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab894162dd5074eea1d5dd153e4f72d9e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ab894162dd5074eea1d5dd153e4f72d9e">_write_solution_and_statistics_csv</a> ()</td></tr>
+<tr class="memdesc:ab894162dd5074eea1d5dd153e4f72d9e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write csv summaries to disk.  <a href="#ab894162dd5074eea1d5dd153e4f72d9e">More...</a><br /></td></tr>
+<tr class="separator:ab894162dd5074eea1d5dd153e4f72d9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a9d8ceaac941b738db96be2326e4db27a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a9d8ceaac941b738db96be2326e4db27a">_write_json_file</a> ()</td></tr>
 <tr class="memdesc:a9d8ceaac941b738db96be2326e4db27a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write json summaries to disk.  <a href="#a9d8ceaac941b738db96be2326e4db27a">More...</a><br /></td></tr>
 <tr class="separator:a9d8ceaac941b738db96be2326e4db27a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a76ffecbb5590c1dd40ec896059af4fda"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a76ffecbb5590c1dd40ec896059af4fda">_write_res_file</a> ()</td></tr>
-<tr class="memdesc:a76ffecbb5590c1dd40ec896059af4fda"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write res file to disk containing non-standard model information such as, e.g., residuals It will be only written if the problem has been solved successfully.  <a href="#a76ffecbb5590c1dd40ec896059af4fda">More...</a><br /></td></tr>
-<tr class="separator:a76ffecbb5590c1dd40ec896059af4fda"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a83da0fbc8eeb9b2f336cd5d41707fbaf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a83da0fbc8eeb9b2f336cd5d41707fbaf">_write_result_file</a> ()</td></tr>
+<tr class="memdesc:a83da0fbc8eeb9b2f336cd5d41707fbaf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write res file to disk containing non-standard model information such as, e.g., residuals It will be only written if the problem has been solved successfully.  <a href="#a83da0fbc8eeb9b2f336cd5d41707fbaf">More...</a><br /></td></tr>
+<tr class="separator:a83da0fbc8eeb9b2f336cd5d41707fbaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr><td colspan="2"><div class="groupHeader">MAiNGO to other language functions</div></td></tr>
 <tr class="memitem:af7aec196a4987e5f38ed642b21400aa9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#af7aec196a4987e5f38ed642b21400aa9">_write_gams_file</a> (const std::string gamsFileName=&quot;MAiNGO_GAMS_file&quot;, const std::string solverName=&quot;SCIP&quot;, const bool writeRelaxationOnly=false)</td></tr>
 <tr class="memdesc:af7aec196a4987e5f38ed642b21400aa9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> problem to GAMS file.  <a href="#af7aec196a4987e5f38ed642b21400aa9">More...</a><br /></td></tr>
@@ -323,18 +334,12 @@ Private Member Functions</h2></td></tr>
 <tr class="memitem:a4681879414746b1ac89b905479d6fa1d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a4681879414746b1ac89b905479d6fa1d">_write_ale_options</a> (std::ofstream &amp;aleFile, std::string solverName=&quot;SCIP&quot;)</td></tr>
 <tr class="memdesc:a4681879414746b1ac89b905479d6fa1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function writing options and model information into ale file.  <a href="#a4681879414746b1ac89b905479d6fa1d">More...</a><br /></td></tr>
 <tr class="separator:a4681879414746b1ac89b905479d6fa1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a93a8eadb777ce6ff95072f16dc6ef762"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a93a8eadb777ce6ff95072f16dc6ef762">_print_MAiNGO_header_for_other_modeling_language</a> (const <a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299a">PARSING_LANGUAGE</a> parsing_language, std::ofstream &amp;file)</td></tr>
-<tr class="memdesc:a93a8eadb777ce6ff95072f16dc6ef762"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> header for a different modeling language.  <a href="#a93a8eadb777ce6ff95072f16dc6ef762">More...</a><br /></td></tr>
-<tr class="separator:a93a8eadb777ce6ff95072f16dc6ef762"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1eeb14c069d224846f7684d95a90ed04"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a1eeb14c069d224846f7684d95a90ed04">_print_MAiNGO_header_for_other_modeling_language</a> (const <a class="el" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39a">WRITING_LANGUAGE</a> writingLanguage, std::ofstream &amp;file)</td></tr>
+<tr class="memdesc:a1eeb14c069d224846f7684d95a90ed04"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> header for a different modeling language.  <a href="#a1eeb14c069d224846f7684d95a90ed04">More...</a><br /></td></tr>
+<tr class="separator:a1eeb14c069d224846f7684d95a90ed04"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
 Private Attributes</h2></td></tr>
-<tr class="memitem:abdcc6fb032878028956050dcba5c9405"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1_settings.html">Settings</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#abdcc6fb032878028956050dcba5c9405">_maingoSettings</a></td></tr>
-<tr class="separator:abdcc6fb032878028956050dcba5c9405"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a020f2b61ca2d2baabf16031f078c2ddd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1_settings.html">Settings</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a020f2b61ca2d2baabf16031f078c2ddd">_maingoOriginalSettings</a></td></tr>
-<tr class="separator:a020f2b61ca2d2baabf16031f078c2ddd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a96f1a3a2a8c24cdca954e63fdc155e01"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmaingo_1_1_logger.html">Logger</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a96f1a3a2a8c24cdca954e63fdc155e01">_logger</a></td></tr>
-<tr class="separator:a96f1a3a2a8c24cdca954e63fdc155e01"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr><td colspan="2"><div class="groupHeader">Internal variables for storing information on the problem</div></td></tr>
 <tr class="memitem:a54d978f1329af4acf801108591eea1f5"><td class="memItemLeft" align="right" valign="top">mc::FFGraph&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a54d978f1329af4acf801108591eea1f5">_DAG</a></td></tr>
 <tr class="separator:a54d978f1329af4acf801108591eea1f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -410,18 +415,20 @@ Private Attributes</h2></td></tr>
 <tr class="separator:aeae47f2ca5ba67f042e035711690fec1"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:af917f2f3529a7c92bb0b972607c1e8df"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#af917f2f3529a7c92bb0b972607c1e8df">_constantConstraintsFeasible</a></td></tr>
 <tr class="separator:af917f2f3529a7c92bb0b972607c1e8df"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0314c3c342e0483b85692344d79d8486"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0314c3c342e0483b85692344d79d8486">_originalConstraints</a></td></tr>
-<tr class="separator:a0314c3c342e0483b85692344d79d8486"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6094a619e5202a347ad3b755a0f13fe7"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a6094a619e5202a347ad3b755a0f13fe7">_constantConstraints</a></td></tr>
-<tr class="separator:a6094a619e5202a347ad3b755a0f13fe7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a92badf4c34413612706e7aeaefebe95a"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a92badf4c34413612706e7aeaefebe95a">_nonconstantConstraints</a></td></tr>
-<tr class="separator:a92badf4c34413612706e7aeaefebe95a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7bce17d744313c9b489b19179eb0b4f0"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a7bce17d744313c9b489b19179eb0b4f0">_nonconstantConstraintsUBP</a></td></tr>
-<tr class="separator:a7bce17d744313c9b489b19179eb0b4f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9393fdd939148611496b665d537ca6cb"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a9393fdd939148611496b665d537ca6cb">_constantOutputs</a></td></tr>
-<tr class="separator:a9393fdd939148611496b665d537ca6cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ace95ba4340090ffaafec40a30504ccb4"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ace95ba4340090ffaafec40a30504ccb4">_nonconstantOutputs</a></td></tr>
-<tr class="separator:ace95ba4340090ffaafec40a30504ccb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8b2bcd5e079464178341f24169e45bbc"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a8b2bcd5e079464178341f24169e45bbc">_feasibilityProblem</a></td></tr>
+<tr class="separator:a8b2bcd5e079464178341f24169e45bbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a88c7a2689b32500ebf09bf37de06d47f"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a88c7a2689b32500ebf09bf37de06d47f">_originalConstraints</a></td></tr>
+<tr class="separator:a88c7a2689b32500ebf09bf37de06d47f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abb011b283ec6da5387c24804ba59ff6d"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#abb011b283ec6da5387c24804ba59ff6d">_constantConstraints</a></td></tr>
+<tr class="separator:abb011b283ec6da5387c24804ba59ff6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8dacc1f270014ea3c70dee5451abae62"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a8dacc1f270014ea3c70dee5451abae62">_nonconstantConstraints</a></td></tr>
+<tr class="separator:a8dacc1f270014ea3c70dee5451abae62"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0d1cde74073424f84d8b4692a8406101"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0d1cde74073424f84d8b4692a8406101">_nonconstantConstraintsUBP</a></td></tr>
+<tr class="separator:a0d1cde74073424f84d8b4692a8406101"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aded61d763cefceab6bf099cf9d891cff"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#aded61d763cefceab6bf099cf9d891cff">_constantOutputs</a></td></tr>
+<tr class="separator:aded61d763cefceab6bf099cf9d891cff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae1bb7b84481f6f827f61d84601fe9869"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ae1bb7b84481f6f827f61d84601fe9869">_nonconstantOutputs</a></td></tr>
+<tr class="separator:ae1bb7b84481f6f827f61d84601fe9869"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr><td colspan="2"><div class="groupHeader">Internal variables for storing information when auxiliary variables shall be added to the DAG</div></td></tr>
 <tr class="memitem:a2771b7011d669e1db37b8b3ef00ab4a5"><td class="memItemLeft" align="right" valign="top">mc::FFGraph&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a2771b7011d669e1db37b8b3ef00ab4a5">_DAGlbd</a></td></tr>
 <tr class="separator:a2771b7011d669e1db37b8b3ef00ab4a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -477,6 +484,20 @@ Private Attributes</h2></td></tr>
 <tr class="separator:a647cd64be05eac973598fc4b8328d866"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ab11fb623cd53b982490aa87f7f7da9e7"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">bab::BranchAndBound</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ab11fb623cd53b982490aa87f7f7da9e7">_myBaB</a></td></tr>
 <tr class="separator:ab11fb623cd53b982490aa87f7f7da9e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr><td colspan="2"><div class="groupHeader">Settings</div></td></tr>
+<tr class="memitem:acdbebd94e2fcccad46515741516799de"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#acdbebd94e2fcccad46515741516799de">_maingoSettings</a> = std::make_shared&lt;<a class="el" href="structmaingo_1_1_settings.html">Settings</a>&gt;()</td></tr>
+<tr class="separator:acdbebd94e2fcccad46515741516799de"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a020f2b61ca2d2baabf16031f078c2ddd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1_settings.html">Settings</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a020f2b61ca2d2baabf16031f078c2ddd">_maingoOriginalSettings</a></td></tr>
+<tr class="separator:a020f2b61ca2d2baabf16031f078c2ddd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr><td colspan="2"><div class="groupHeader">Output</div></td></tr>
+<tr class="memitem:aad666fe69213402bdba8b9972a5985b3"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#aad666fe69213402bdba8b9972a5985b3">_logger</a> = std::make_shared&lt;<a class="el" href="classmaingo_1_1_logger.html">Logger</a>&gt;()</td></tr>
+<tr class="separator:aad666fe69213402bdba8b9972a5985b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0dffde2ace38c3fad7a6cfb38f0f374c"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0dffde2ace38c3fad7a6cfb38f0f374c">_jsonFileName</a> = &quot;statisticsAndSolution.json&quot;</td></tr>
+<tr class="separator:a0dffde2ace38c3fad7a6cfb38f0f374c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0a9de764a3521782c3f6e3dc68f01324"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0a9de764a3521782c3f6e3dc68f01324">_resultFileName</a> = &quot;MAiNGOresult.txt&quot;</td></tr>
+<tr class="separator:a0a9de764a3521782c3f6e3dc68f01324"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a689902b992cca417907471e82b9526b1"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a689902b992cca417907471e82b9526b1">_csvSolutionStatisticsName</a> = &quot;statisticsAndSolution.csv&quot;</td></tr>
+<tr class="separator:a689902b992cca417907471e82b9526b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr><td colspan="2"><div class="groupHeader">Auxiliaries variables for storing output and logging information</div></td></tr>
 <tr class="memitem:a11b956f66ea516b6951abe9dd2410484"><td class="memItemLeft" align="right" valign="top">std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a11b956f66ea516b6951abe9dd2410484">_objectivesAtRoot</a></td></tr>
 <tr class="separator:a11b956f66ea516b6951abe9dd2410484"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -489,7 +510,7 @@ Private Attributes</h2></td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><p>This class is the <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> solver holding the B&amp;B tree, upper bounding solver, lower bounding solver and settings. </p>
-<p>This class is used to instantiate a <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> object. It is used to solve a given <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html" title="This class is the base class for models to be solved by MAiNGO.">MAiNGOmodel</a> by doing pre-processing, holding the B&amp;B tree, upper bounding solvers, a lower bounding solver and settings </p>
+<p>This class is used to instantiate a <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> object. It is used to solve a given <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html" title="This class is the base class for models to be solved by MAiNGO. ">MAiNGOmodel</a> by doing pre-processing, holding the B&amp;B tree, upper bounding solvers, a lower bounding solver and settings </p>
 </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
 <a id="ae5ca384e27b075702ab9f2161fe2ae82"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ae5ca384e27b075702ab9f2161fe2ae82">&#9670;&nbsp;</a></span>MAiNGO() <span class="overload">[1/3]</span></h2>
@@ -787,8 +808,8 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="a874e8de2f4daafb262380b882a3d3553"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a874e8de2f4daafb262380b882a3d3553">&#9670;&nbsp;</a></span>_classify_constraints()</h2>
+<a id="a803800682d25b4edc28a3536faba2380"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a803800682d25b4edc28a3536faba2380">&#9670;&nbsp;</a></span>_classify_objective_and_constraints()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -797,7 +818,7 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">void MAiNGO::_classify_constraints </td>
+          <td class="memname">void MAiNGO::_classify_objective_and_constraints </td>
           <td>(</td>
           <td class="paramtype">std::vector&lt; mc::FFVar &gt; &amp;&#160;</td>
           <td class="paramname"><em>tmpFunctions</em>, </td>
@@ -859,8 +880,42 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="a14ac25981c3df0f6317418c8b9f4857c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a14ac25981c3df0f6317418c8b9f4857c">&#9670;&nbsp;</a></span>_get_additional_outputs()</h2>
+<a id="a56d30ff7a1a221550e6c7c045e5c6feb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a56d30ff7a1a221550e6c7c045e5c6feb">&#9670;&nbsp;</a></span>_ensure_valid_objective_function_using_dummy_variable()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void MAiNGO::_ensure_valid_objective_function_using_dummy_variable </td>
+          <td>(</td>
+          <td class="paramtype">const mc::FFVar &amp;&#160;</td>
+          <td class="paramname"><em>dummyVariable</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Ensures that the objective function stored in the _modelOutput is valid. In particular, if _modelOutput is an empty vector, a constant will be used as objective function. If the objective function is a constant, this functions makes sure it is still correctly associated with the DAG. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">dummyVariable</td><td>is a valid optimization variable that is used to ensure that a potential constant objective is associated to the correct DAG </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a92cbd5e8a92e5c335d57bb23574cf6b2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a92cbd5e8a92e5c335d57bb23574cf6b2">&#9670;&nbsp;</a></span>_evaluate_additional_outputs_at_point()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -869,7 +924,7 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">std::vector&lt; std::pair&lt; std::string, double &gt; &gt; MAiNGO::_get_additional_outputs </td>
+          <td class="memname">std::vector&lt; std::pair&lt; std::string, double &gt; &gt; MAiNGO::_evaluate_additional_outputs_at_point </td>
           <td>(</td>
           <td class="paramtype">const std::vector&lt; double &gt; &amp;&#160;</td>
           <td class="paramname"><em>point</em></td><td>)</td>
@@ -893,8 +948,8 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="a0d372af3e069f9ff12f09936aa9099c0"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a0d372af3e069f9ff12f09936aa9099c0">&#9670;&nbsp;</a></span>_get_model_at_point()</h2>
+<a id="a241496b3e71881ee3cb7b8be661b44d4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a241496b3e71881ee3cb7b8be661b44d4">&#9670;&nbsp;</a></span>_evaluate_model_at_point()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -903,21 +958,11 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">bool MAiNGO::_get_model_at_point </td>
+          <td class="memname">std::pair&lt; std::vector&lt; double &gt;, bool &gt; MAiNGO::_evaluate_model_at_point </td>
           <td>(</td>
           <td class="paramtype">const std::vector&lt; double &gt; &amp;&#160;</td>
-          <td class="paramname"><em>point</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">std::vector&lt; double &gt; &amp;&#160;</td>
-          <td class="paramname"><em>returnResult</em>&#160;</td>
-        </tr>
-        <tr>
+          <td class="paramname"><em>point</em></td><td>)</td>
           <td></td>
-          <td>)</td>
-          <td></td><td></td>
         </tr>
       </table>
   </td>
@@ -927,15 +972,14 @@ Private Attributes</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Function telling whether a point is feasible or not and returning values of the set model of the objective and all constraints at a point. The ordering of the vector returnResult is: vector[0]: objective vector[1 to (1+ineq)]: inequalities vector[(1+ineq) to (1+ineq+eq)]: equalities vector[(1+ineq+eq) to (1+ineq+eq+ineqRelOnly)]: relaxation only inequalities vector[(1+ineq+eq+ineqRelOnly) to (1+ineq+eq+ineqRelOnly+eqRelOnly)]: relaxation only equalities vector[(1+ineq+eq+ineqRelOnly+eqRelOnly) to (1+ineq+eq+ineqRelOnly+eqRelOnly+ineqSquash)]: squash inequalities ( + constant squash inequalities ) </p>
+<p>Function telling whether a point is feasible or not and returning values of the set model of the objective and all constraints at a point. The ordering of the vector containing the values of the objective and constraints is: vector[0]: objective vector[1 to (1+ineq)]: inequalities ( + constant inequalities ) vector[(1+ineq) to (1+ineq+eq)]: equalities ( + constant equalities ) vector[(1+ineq+eq) to (1+ineq+eq+ineqRelOnly)]: relaxation only inequalities ( + constant rel only inequalities ) vector[(1+ineq+eq+ineqRelOnly) to (1+ineq+eq+ineqRelOnly+eqRelOnly)]: relaxation only equalities ( + constant rel only equalities ) vector[(1+ineq+eq+ineqRelOnly+eqRelOnly) to (1+ineq+eq+ineqRelOnly+eqRelOnly+ineqSquash)]: squash inequalities ( + constant squash inequalities ) </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">point</td><td>is the point to be evaluated </td></tr>
-    <tr><td class="paramdir">[out]</td><td class="paramname">returnResult</td><td>holds the objective and constraints as described above </td></tr>
   </table>
   </dd>
 </dl>
-<dl class="section return"><dt>Returns</dt><dd>returns whether the point is feasible or not </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>returns a tuple consisting of a vector containing the objective value and all constraint residuas, as well as a bool indicating whether the point is feasible or not </dd></dl>
 
 </div>
 </div>
@@ -1020,8 +1064,8 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="a93a8eadb777ce6ff95072f16dc6ef762"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a93a8eadb777ce6ff95072f16dc6ef762">&#9670;&nbsp;</a></span>_print_MAiNGO_header_for_other_modeling_language()</h2>
+<a id="a1eeb14c069d224846f7684d95a90ed04"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1eeb14c069d224846f7684d95a90ed04">&#9670;&nbsp;</a></span>_print_MAiNGO_header_for_other_modeling_language()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1032,8 +1076,8 @@ Private Attributes</h2></td></tr>
         <tr>
           <td class="memname">void MAiNGO::_print_MAiNGO_header_for_other_modeling_language </td>
           <td>(</td>
-          <td class="paramtype">const <a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299a">PARSING_LANGUAGE</a>&#160;</td>
-          <td class="paramname"><em>parsing_language</em>, </td>
+          <td class="paramtype">const <a class="el" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39a">WRITING_LANGUAGE</a>&#160;</td>
+          <td class="paramname"><em>writingLanguage</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
@@ -1057,7 +1101,7 @@ Private Attributes</h2></td></tr>
 <p>Write <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> header for a different modeling language. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">parsing_language</td><td>is the desired modeling language </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">writingLanguage</td><td>is the desired modeling language </td></tr>
     <tr><td class="paramdir">[in,out]</td><td class="paramname">file</td><td>is the file to be written to </td></tr>
   </table>
   </dd>
@@ -1570,33 +1614,6 @@ Private Attributes</h2></td></tr>
   </dd>
 </dl>
 
-</div>
-</div>
-<a id="a2287a4b633fd59097ce44a74e15f6660"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a2287a4b633fd59097ce44a74e15f6660">&#9670;&nbsp;</a></span>_write_csv_general()</h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">void MAiNGO::_write_csv_general </td>
-          <td>(</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">private</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Write csv summaries to disk. </p>
-
 </div>
 </div>
 <a id="a40c4e33f9034542409daa1f0497c776f"></a>
@@ -1671,8 +1688,8 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="a72b6d958b300d7fc886b74790b001aeb"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a72b6d958b300d7fc886b74790b001aeb">&#9670;&nbsp;</a></span>_write_files_error()</h2>
+<a id="a7ff011bd8ce28c9dc2e2d24c350698e1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7ff011bd8ce28c9dc2e2d24c350698e1">&#9670;&nbsp;</a></span>_write_files_error()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1684,7 +1701,7 @@ Private Attributes</h2></td></tr>
           <td class="memname">void MAiNGO::_write_files_error </td>
           <td>(</td>
           <td class="paramtype">const std::string &amp;&#160;</td>
-          <td class="paramname"><em>error</em></td><td>)</td>
+          <td class="paramname"><em>errorMessage</em></td><td>)</td>
           <td></td>
         </tr>
       </table>
@@ -1696,6 +1713,12 @@ Private Attributes</h2></td></tr>
 </div><div class="memdoc">
 
 <p>Writes logging and csv information to disk when an error occurs. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">errorMessage</td><td>is an error message to be appended </td></tr>
+  </table>
+  </dd>
+</dl>
 
 </div>
 </div>
@@ -1902,8 +1925,8 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="a76ffecbb5590c1dd40ec896059af4fda"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a76ffecbb5590c1dd40ec896059af4fda">&#9670;&nbsp;</a></span>_write_res_file()</h2>
+<a id="a83da0fbc8eeb9b2f336cd5d41707fbaf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a83da0fbc8eeb9b2f336cd5d41707fbaf">&#9670;&nbsp;</a></span>_write_result_file()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1912,7 +1935,7 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">void MAiNGO::_write_res_file </td>
+          <td class="memname">void MAiNGO::_write_result_file </td>
           <td>(</td>
           <td class="paramname"></td><td>)</td>
           <td></td>
@@ -1929,14 +1952,41 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="a52df8cc85640aaee13afb5cd5748dbcc"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a52df8cc85640aaee13afb5cd5748dbcc">&#9670;&nbsp;</a></span>get_additional_outputs_at_point()</h2>
+<a id="ab894162dd5074eea1d5dd153e4f72d9e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab894162dd5074eea1d5dd153e4f72d9e">&#9670;&nbsp;</a></span>_write_solution_and_statistics_csv()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void MAiNGO::_write_solution_and_statistics_csv </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Write csv summaries to disk. </p>
+
+</div>
+</div>
+<a id="adeef2c9d324fa8f9a26819b3a3307ad7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#adeef2c9d324fa8f9a26819b3a3307ad7">&#9670;&nbsp;</a></span>evaluate_additional_outputs_at_point()</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">std::vector&lt; std::pair&lt; std::string, double &gt; &gt; MAiNGO::get_additional_outputs_at_point </td>
+          <td class="memname">std::vector&lt; std::pair&lt; std::string, double &gt; &gt; MAiNGO::evaluate_additional_outputs_at_point </td>
           <td>(</td>
           <td class="paramtype">const std::vector&lt; double &gt; &amp;&#160;</td>
           <td class="paramname"><em>point</em></td><td>)</td>
@@ -1955,14 +2005,60 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="afd0f8acfe45a05c077810ef75b8d71dd"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#afd0f8acfe45a05c077810ef75b8d71dd">&#9670;&nbsp;</a></span>get_additional_outputs_at_solution_point()</h2>
+<a id="a5ee95afece75a72e91aff11274eda43a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5ee95afece75a72e91aff11274eda43a">&#9670;&nbsp;</a></span>evaluate_additional_outputs_at_solution_point()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::vector&lt; std::pair&lt; std::string, double &gt; &gt; MAiNGO::evaluate_additional_outputs_at_solution_point </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Function returning the additional model outputs at the solution point. </p>
+
+</div>
+</div>
+<a id="aaaa69dd8b526f0d9966ce35bd102601f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aaaa69dd8b526f0d9966ce35bd102601f">&#9670;&nbsp;</a></span>evaluate_model_at_point()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::pair&lt; std::vector&lt; double &gt;, bool &gt; MAiNGO::evaluate_model_at_point </td>
+          <td>(</td>
+          <td class="paramtype">const std::vector&lt; double &gt; &amp;&#160;</td>
+          <td class="paramname"><em>point</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Function telling whether a point is feasible or not and returning values of the set model of the objective and all constraints at a point. The ordering of the vector containing the values of the objective and constraints is: vector[0]: objective vector[1 to (1+ineq)]: inequalities ( + constant inequalities ) vector[(1+ineq) to (1+ineq+eq)]: equalities ( + constant equalities ) vector[(1+ineq+eq) to (1+ineq+eq+ineqRelOnly)]: relaxation only inequalities ( + constant rel only inequalities ) vector[(1+ineq+eq+ineqRelOnly) to (1+ineq+eq+ineqRelOnly+eqRelOnly)]: relaxation only equalities ( + constant rel only equalities ) vector[(1+ineq+eq+ineqRelOnly+eqRelOnly) to (1+ineq+eq+ineqRelOnly+eqRelOnly+ineqSquash)]: squash inequalities ( + constant squash inequalities ) </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">point</td><td>is the point to be evaluated </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>returns a tuple consisting of a vector containing the objective value and all constraint residuas, as well as a bool indicating whether the point is feasible or not </dd></dl>
+
+</div>
+</div>
+<a id="acd561f4e9560a6a5c501bdf444f581b8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acd561f4e9560a6a5c501bdf444f581b8">&#9670;&nbsp;</a></span>evaluate_model_at_solution_point()</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">std::vector&lt; std::pair&lt; std::string, double &gt; &gt; MAiNGO::get_additional_outputs_at_solution_point </td>
+          <td class="memname">std::vector&lt; double &gt; MAiNGO::evaluate_model_at_solution_point </td>
           <td>(</td>
           <td class="paramname"></td><td>)</td>
           <td></td>
@@ -1970,7 +2066,7 @@ Private Attributes</h2></td></tr>
       </table>
 </div><div class="memdoc">
 
-<p>Function returning the additional model outputs at solution point. </p>
+<p>Function returning all model function values at solution point. The ordering of the returned vector is: vector[0]: objective vector[1 to (1+ineq)]: inequalities ( + constant inequalities ) vector[(1+ineq) to (1+ineq+eq)]: equalities ( + constant equalities ) vector[(1+ineq+eq) to (1+ineq+eq+ineqRelOnly)]: relaxation only inequalities ( + constant rel only inequalities ) vector[(1+ineq+eq+ineqRelOnly) to (1+ineq+eq+ineqRelOnly+eqRelOnly)]: relaxation only equalities ( + constant rel only equalities ) vector[(1+ineq+eq+ineqRelOnly+eqRelOnly) to (1+ineq+eq+ineqRelOnly+eqRelOnly+ineqSquash)]: squash inequalities ( + constant squash inequalities ) </p>
 
 </div>
 </div>
@@ -2105,63 +2201,6 @@ Private Attributes</h2></td></tr>
 
 <p>Function returning the maximum number of nodes in memory. </p>
 
-</div>
-</div>
-<a id="abd17e0e2d436da88f15738e8e0218ac8"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#abd17e0e2d436da88f15738e8e0218ac8">&#9670;&nbsp;</a></span>get_model_at_point()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool MAiNGO::get_model_at_point </td>
-          <td>(</td>
-          <td class="paramtype">const std::vector&lt; double &gt; &amp;&#160;</td>
-          <td class="paramname"><em>point</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">std::vector&lt; double &gt; &amp;&#160;</td>
-          <td class="paramname"><em>returnResult</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p>Function telling whether a point is feasible or not and returning values of the set model of the objective and all constraints at a point. The ordering of the vector returnResult is: vector[0]: objective vector[1 to (1+ineq)]: inequalities ( + constant inequalities ) vector[(1+ineq) to (1+ineq+eq)]: equalities ( + constant equalities ) vector[(1+ineq+eq) to (1+ineq+eq+ineqRelOnly)]: relaxation only inequalities ( + constant rel only inequalities ) vector[(1+ineq+eq+ineqRelOnly) to (1+ineq+eq+ineqRelOnly+eqRelOnly)]: relaxation only equalities ( + constant rel only equalities ) vector[(1+ineq+eq+ineqRelOnly+eqRelOnly) to (1+ineq+eq+ineqRelOnly+eqRelOnly+ineqSquash)]: squash inequalities ( + constant squash inequalities ) </p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">point</td><td>is the point to be evaluated </td></tr>
-    <tr><td class="paramdir">[out]</td><td class="paramname">returnResult</td><td>holds the objective and constraints as described above </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>returns whether the point is feasible or not </dd></dl>
-
-</div>
-</div>
-<a id="a50df488dd7b110d7e4ebc137a8949696"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a50df488dd7b110d7e4ebc137a8949696">&#9670;&nbsp;</a></span>get_model_at_solution_point()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">std::vector&lt; double &gt; MAiNGO::get_model_at_solution_point </td>
-          <td>(</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p>Function returning all model function values at solution point. The ordering of the returned vector is: vector[0]: objective vector[1 to (1+ineq)]: inequalities ( + constant inequalities ) vector[(1+ineq) to (1+ineq+eq)]: equalities ( + constant equalities ) vector[(1+ineq+eq) to (1+ineq+eq+ineqRelOnly)]: relaxation only inequalities ( + constant rel only inequalities ) vector[(1+ineq+eq+ineqRelOnly) to (1+ineq+eq+ineqRelOnly+eqRelOnly)]: relaxation only equalities ( + constant rel only equalities ) vector[(1+ineq+eq+ineqRelOnly+eqRelOnly) to (1+ineq+eq+ineqRelOnly+eqRelOnly+ineqSquash)]: squash inequalities ( + constant squash inequalities ) </p>
-
 </div>
 </div>
 <a id="a6f3727adfe69c95ac8e0ca41a7b73fa6"></a>
@@ -2285,78 +2324,6 @@ Private Attributes</h2></td></tr>
 
 <p>Preventing use of default copy assignment. </p>
 
-</div>
-</div>
-<a id="a4f888ef8f672e6ee7602951cd4b2c7a9"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a4f888ef8f672e6ee7602951cd4b2c7a9">&#9670;&nbsp;</a></span>parse_maingo_to_other_language()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">void MAiNGO::parse_maingo_to_other_language </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299a">PARSING_LANGUAGE</a>&#160;</td>
-          <td class="paramname"><em>parsing_language</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const std::string&#160;</td>
-          <td class="paramname"><em>fileName</em> = <code>&quot;MAiNGO_parsed_file&quot;</code>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const std::string&#160;</td>
-          <td class="paramname"><em>solverName</em> = <code>&quot;SCIP&quot;</code>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const bool&#160;</td>
-          <td class="paramname"><em>useMinMax</em> = <code>true</code>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const bool&#160;</td>
-          <td class="paramname"><em>useTrig</em> = <code>true</code>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const bool&#160;</td>
-          <td class="paramname"><em>ignoreBoundingFuncs</em> = <code>false</code>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const bool&#160;</td>
-          <td class="paramname"><em>writeRelaxationOnly</em> = <code>true</code>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p>Writes <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> model to a different modeling language. </p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">parsing_language</td><td>is the modeling language to which the <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> model is parsed. </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">fileName</td><td>is the file name. If it is empty, the default name "MAiNGO_parsed_file" will be used instead. </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">solverName</td><td>is the solver name. If it is empty, the default solver SCIP will be called in the gams file. </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">useMinMax</td><td>if true then min/max is used when writing output, otherwise the equivalent abs forms are used. </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">useTrig</td><td>if true then sinh, cosh, tanh is used when writing output, otherwise the equivalent exp forms are used. </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">ignoreBoundingFuncs</td><td>if true then squash_node, pos, neg, bounding_func, lb_func and ub_func are ignored otherwise they will be simply written into the file. </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">writeRelaxationOnly</td><td>if true then relaxation-only equalities and inequalities will be written into the file as well. </td></tr>
-  </table>
-  </dd>
-</dl>
-
 </div>
 </div>
 <a id="a1a9fa4c0ae0a91178836350b5f5c22d3"></a>
@@ -2379,8 +2346,8 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="a9d2cbee1f5ecf3321e2e5334e70757fe"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a9d2cbee1f5ecf3321e2e5334e70757fe">&#9670;&nbsp;</a></span>read_settings()</h2>
+<a id="a0728bb641f5f269763663ce89280bd4f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0728bb641f5f269763663ce89280bd4f">&#9670;&nbsp;</a></span>read_settings()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2388,8 +2355,8 @@ Private Attributes</h2></td></tr>
         <tr>
           <td class="memname">void MAiNGO::read_settings </td>
           <td>(</td>
-          <td class="paramtype">std::string&#160;</td>
-          <td class="paramname"><em>settingsFile</em></td><td>)</td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>settingsFileName</em> = <code>&quot;MAiNGOSettings.txt&quot;</code></td><td>)</td>
           <td></td>
         </tr>
       </table>
@@ -2398,96 +2365,109 @@ Private Attributes</h2></td></tr>
 <p>Reads settings from text file. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">settingsFile</td><td>is the file name. If it is empty, the default file name "MAiNGOSettings.txt" will be used instead. </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">settingsFileName</td><td>is the file name. </td></tr>
   </table>
   </dd>
 </dl>
 
 </div>
 </div>
-<a id="a530c347d65ac74a1cf871e385ec18cc4"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a530c347d65ac74a1cf871e385ec18cc4">&#9670;&nbsp;</a></span>set_csv_file_name()</h2>
+<a id="abe4f3a7b42c05c07e7962be17de02ed3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abe4f3a7b42c05c07e7962be17de02ed3">&#9670;&nbsp;</a></span>set_iterations_csv_file_name()</h2>
 
 <div class="memitem">
 <div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">void MAiNGO::set_csv_file_name </td>
+          <td class="memname">void maingo::MAiNGO::set_iterations_csv_file_name </td>
           <td>(</td>
-          <td class="paramtype">std::string&#160;</td>
-          <td class="paramname"><em>csvIterationsName</em> = <code>&quot;bab_Report_Iterations&quot;</code>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">std::string&#160;</td>
-          <td class="paramname"><em>csvGeneralName</em> = <code>&quot;bab_Report_General&quot;</code>&#160;</td>
-        </tr>
-        <tr>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>csvIterationsName</em></td><td>)</td>
           <td></td>
-          <td>)</td>
-          <td></td><td></td>
         </tr>
       </table>
-</div><div class="memdoc">
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
 
-<p>Sets names of the csv files. </p>
+<p>Sets names of the csv file into which information on the individual B&amp;B iterations may be written. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">csvIterationsName</td><td>is the file name, where B&amp;B iterations are written. If it is empty, the default file name "bab_Report_Iterations" will be used instead. </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">csvGeneralName</td><td>is the file name, where general optimization information are written. If it is empty, the default file name "bab_Report_General" will be used instead. </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">csvIterationsName</td><td>is the file name, where B&amp;B iterations are written. </td></tr>
   </table>
   </dd>
 </dl>
 
 </div>
 </div>
-<a id="a755f6652395b3bad73976a26fa4243f9"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a755f6652395b3bad73976a26fa4243f9">&#9670;&nbsp;</a></span>set_json_file_name()</h2>
+<a id="a3caca275897742b038011e6fd00b2bdc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3caca275897742b038011e6fd00b2bdc">&#9670;&nbsp;</a></span>set_json_file_name()</h2>
 
 <div class="memitem">
 <div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">void MAiNGO::set_json_file_name </td>
+          <td class="memname">void maingo::MAiNGO::set_json_file_name </td>
           <td>(</td>
-          <td class="paramtype">std::string&#160;</td>
-          <td class="paramname"><em>jsonFileName</em> = <code>&quot;bab&quot;</code></td><td>)</td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>jsonFileName</em></td><td>)</td>
           <td></td>
         </tr>
       </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
 </div><div class="memdoc">
 
-<p>Sets name of the json file. </p>
+<p>Sets name of the json file into which information on the problem and solution may be written. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">jsonFileName</td><td>is the file name. If it is empty, the default file name "bab.json" will be used instead. </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">jsonFileName</td><td>is the file name. </td></tr>
   </table>
   </dd>
 </dl>
 
 </div>
 </div>
-<a id="ae99518c0b699295565d25c76b0187c58"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ae99518c0b699295565d25c76b0187c58">&#9670;&nbsp;</a></span>set_log_file_name()</h2>
+<a id="a450f5ac09e6afa9e34dc86b59359ae20"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a450f5ac09e6afa9e34dc86b59359ae20">&#9670;&nbsp;</a></span>set_log_file_name()</h2>
 
 <div class="memitem">
 <div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">void MAiNGO::set_log_file_name </td>
+          <td class="memname">void maingo::MAiNGO::set_log_file_name </td>
           <td>(</td>
-          <td class="paramtype">std::string&#160;</td>
-          <td class="paramname"><em>logFileName</em> = <code>&quot;bab&quot;</code></td><td>)</td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>logFileName</em></td><td>)</td>
           <td></td>
         </tr>
       </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
 </div><div class="memdoc">
 
-<p>Sets name of the log file. </p>
+<p>Sets name of the log file into which logging information may be written. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">logFileName</td><td>is the file name. If it is empty, the default file name "bab.log" will be used instead. </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">logFileName</td><td>is the file name. </td></tr>
   </table>
   </dd>
 </dl>
@@ -2514,8 +2494,8 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="a383bc41aef21457041b6a79d0a376bed"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a383bc41aef21457041b6a79d0a376bed">&#9670;&nbsp;</a></span>set_option()</h2>
+<a id="ae2bc7507ee0341d7b0a8ac06702ca964"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae2bc7507ee0341d7b0a8ac06702ca964">&#9670;&nbsp;</a></span>set_option() <span class="overload">[1/3]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2523,7 +2503,7 @@ Private Attributes</h2></td></tr>
         <tr>
           <td class="memname">bool MAiNGO::set_option </td>
           <td>(</td>
-          <td class="paramtype">const std::string&#160;</td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
           <td class="paramname"><em>option</em>, </td>
         </tr>
         <tr>
@@ -2540,7 +2520,99 @@ Private Attributes</h2></td></tr>
       </table>
 </div><div class="memdoc">
 
-<p>Sets an option. </p>
+<p>Sets an option with a double value. This function is used for all options. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">option</td><td>is the option name </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>is the option value (as double) </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a21ee05457f51d5b22853d10cb4114b96"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a21ee05457f51d5b22853d10cb4114b96">&#9670;&nbsp;</a></span>set_option() <span class="overload">[2/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool maingo::MAiNGO::set_option </td>
+          <td>(</td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>option</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const bool&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Sets an option with a boolean value. </p>
+<p>Just forwards to version with double value. This is needed for compatibility with the Python interface.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">option</td><td>is the option name </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>is the option value </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a1f8ea652c3ae60bad558c3aeb66f1085"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1f8ea652c3ae60bad558c3aeb66f1085">&#9670;&nbsp;</a></span>set_option() <span class="overload">[3/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool maingo::MAiNGO::set_option </td>
+          <td>(</td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>option</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Sets an option with an integer value - just forwards to version with double value. </p>
+<p>Just forwards to version with double value. This is needed for compatibility with the Python interface.</p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">option</td><td>is the option name </td></tr>
@@ -2551,23 +2623,31 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="a66b60c8b60e9525e96e4d2dbb6398f88"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a66b60c8b60e9525e96e4d2dbb6398f88">&#9670;&nbsp;</a></span>set_output_stream()</h2>
+<a id="a1a4ba608b818d6a2e303b836505e0234"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1a4ba608b818d6a2e303b836505e0234">&#9670;&nbsp;</a></span>set_output_stream()</h2>
 
 <div class="memitem">
 <div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">void MAiNGO::set_output_stream </td>
+          <td class="memname">void maingo::MAiNGO::set_output_stream </td>
           <td>(</td>
-          <td class="paramtype">std::ostream *&#160;</td>
+          <td class="paramtype">std::ostream *const&#160;</td>
           <td class="paramname"><em>outputStream</em></td><td>)</td>
           <td></td>
         </tr>
       </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
 </div><div class="memdoc">
 
-<p>Sets output stream. </p>
+<p>Sets output stream onto which logging information may be printed. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in,out]</td><td class="paramname">outputStream</td><td>is the new output stream to be used by <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a>. </td></tr>
@@ -2577,26 +2657,68 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="ade7741b5e86018f3167c9f34622a2733"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ade7741b5e86018f3167c9f34622a2733">&#9670;&nbsp;</a></span>set_res_file_name()</h2>
+<a id="a4dc94835e031b37290f96814486c2903"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4dc94835e031b37290f96814486c2903">&#9670;&nbsp;</a></span>set_result_file_name()</h2>
 
 <div class="memitem">
 <div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">void MAiNGO::set_res_file_name </td>
+          <td class="memname">void maingo::MAiNGO::set_result_file_name </td>
           <td>(</td>
-          <td class="paramtype">std::string&#160;</td>
-          <td class="paramname"><em>resFileName</em> = <code>&quot;MAiNGO_res&quot;</code></td><td>)</td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>resultFileName</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Sets name of the text file into which information on the solution may be written. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">resultFileName</td><td>is the file name. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a0157c25ef59573826a916e301e836330"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0157c25ef59573826a916e301e836330">&#9670;&nbsp;</a></span>set_solution_and_statistics_csv_file_name()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void maingo::MAiNGO::set_solution_and_statistics_csv_file_name </td>
+          <td>(</td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>csvSolutionStatisticsName</em></td><td>)</td>
           <td></td>
         </tr>
       </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
 </div><div class="memdoc">
 
-<p>Sets name of the res file. </p>
+<p>Sets names of the csv file into which the solution and statistics may be written. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">resFileName</td><td>is the file name. If it is empty, the default file name "MAiNGO_res.txt" will be used instead. </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">csvSolutionStatisticsName</td><td>is the file name. </td></tr>
   </table>
   </dd>
 </dl>
@@ -2639,6 +2761,78 @@ Private Attributes</h2></td></tr>
 
 <p>Solve a multi-objective problem using the epsilon-constraint method. </p>
 
+</div>
+</div>
+<a id="a8acf1fc912457043365faabd54861d50"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8acf1fc912457043365faabd54861d50">&#9670;&nbsp;</a></span>write_model_to_file_in_other_language()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void MAiNGO::write_model_to_file_in_other_language </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39a">WRITING_LANGUAGE</a>&#160;</td>
+          <td class="paramname"><em>writingLanguage</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">std::string&#160;</td>
+          <td class="paramname"><em>fileName</em> = <code>&quot;&quot;</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::string&#160;</td>
+          <td class="paramname"><em>solverName</em> = <code>&quot;SCIP&quot;</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const bool&#160;</td>
+          <td class="paramname"><em>useMinMax</em> = <code>true</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const bool&#160;</td>
+          <td class="paramname"><em>useTrig</em> = <code>true</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const bool&#160;</td>
+          <td class="paramname"><em>ignoreBoundingFuncs</em> = <code>false</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const bool&#160;</td>
+          <td class="paramname"><em>writeRelaxationOnly</em> = <code>true</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Writes <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> model to a a file in a different modeling language. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">writingLanguage</td><td>is the modeling language in which the <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> model is to be written. </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">fileName</td><td>is the file name. If it is empty, the default name "MAiNGO_written_model" will be used instead with a filename extensions depending on the modeling language. </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">solverName</td><td>is the solver name. If it is empty, the default solver SCIP will be used in the gams file. </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">useMinMax</td><td>if true then min/max is used when writing output, otherwise the equivalent abs forms are used. </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">useTrig</td><td>if true then sinh, cosh, tanh is used when writing output, otherwise the equivalent exp forms are used. </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">ignoreBoundingFuncs</td><td>if true then squash_node, pos, neg, bounding_func, lb_func and ub_func are ignored otherwise they will be simply written into the file. </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">writeRelaxationOnly</td><td>if true then relaxation-only equalities and inequalities will be written into the file as well. </td></tr>
+  </table>
+  </dd>
+</dl>
+
 </div>
 </div>
 <h2 class="groupheader">Member Data Documentation</h2>
@@ -2688,8 +2882,8 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="a6094a619e5202a347ad3b755a0f13fe7"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a6094a619e5202a347ad3b755a0f13fe7">&#9670;&nbsp;</a></span>_constantConstraints</h2>
+<a id="abb011b283ec6da5387c24804ba59ff6d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abb011b283ec6da5387c24804ba59ff6d">&#9670;&nbsp;</a></span>_constantConstraints</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2698,7 +2892,7 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">std::vector&lt;<a class="el" href="structmaingo_1_1_constraint.html">Constraint</a>&gt; maingo::MAiNGO::_constantConstraints</td>
+          <td class="memname">std::shared_ptr&lt;std::vector&lt;<a class="el" href="structmaingo_1_1_constraint.html">Constraint</a>&gt; &gt; maingo::MAiNGO::_constantConstraints</td>
         </tr>
       </table>
   </td>
@@ -2734,8 +2928,8 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="a9393fdd939148611496b665d537ca6cb"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a9393fdd939148611496b665d537ca6cb">&#9670;&nbsp;</a></span>_constantOutputs</h2>
+<a id="aded61d763cefceab6bf099cf9d891cff"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aded61d763cefceab6bf099cf9d891cff">&#9670;&nbsp;</a></span>_constantOutputs</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2744,7 +2938,7 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">std::vector&lt;<a class="el" href="structmaingo_1_1_constraint.html">Constraint</a>&gt; maingo::MAiNGO::_constantOutputs</td>
+          <td class="memname">std::shared_ptr&lt;std::vector&lt;<a class="el" href="structmaingo_1_1_constraint.html">Constraint</a>&gt; &gt; maingo::MAiNGO::_constantOutputs</td>
         </tr>
       </table>
   </td>
@@ -2755,6 +2949,29 @@ Private Attributes</h2></td></tr>
 </div><div class="memdoc">
 <p>vector holding all constant outputs </p>
 
+</div>
+</div>
+<a id="a689902b992cca417907471e82b9526b1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a689902b992cca417907471e82b9526b1">&#9670;&nbsp;</a></span>_csvSolutionStatisticsName</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::string maingo::MAiNGO::_csvSolutionStatisticsName = &quot;statisticsAndSolution.csv&quot;</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<p>name of the csv file into which the solution as well as statistics may be written </p>
+
 </div>
 </div>
 <a id="a54d978f1329af4acf801108591eea1f5"></a>
@@ -2962,6 +3179,29 @@ Private Attributes</h2></td></tr>
 </div><div class="memdoc">
 <p>DAG variables for the lower bounding problem when auxiliary variables have been added </p>
 
+</div>
+</div>
+<a id="a8b2bcd5e079464178341f24169e45bbc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8b2bcd5e079464178341f24169e45bbc">&#9670;&nbsp;</a></span>_feasibilityProblem</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool maingo::MAiNGO::_feasibilityProblem</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<p>flag indicating whether the current problem is a feasibility problem, i.e., no objective has been specified </p>
+
 </div>
 </div>
 <a id="ae51edfeecb90cf3be1d6cabf9d18c9eb"></a>
@@ -3102,8 +3342,8 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="a96f1a3a2a8c24cdca954e63fdc155e01"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a96f1a3a2a8c24cdca954e63fdc155e01">&#9670;&nbsp;</a></span>_logger</h2>
+<a id="a0dffde2ace38c3fad7a6cfb38f0f374c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0dffde2ace38c3fad7a6cfb38f0f374c">&#9670;&nbsp;</a></span>_jsonFileName</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -3112,7 +3352,30 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classmaingo_1_1_logger.html">Logger</a> maingo::MAiNGO::_logger</td>
+          <td class="memname">std::string maingo::MAiNGO::_jsonFileName = &quot;statisticsAndSolution.json&quot;</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<p>name of the json file into which information about the problem and solution may be written </p>
+
+</div>
+</div>
+<a id="aad666fe69213402bdba8b9972a5985b3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aad666fe69213402bdba8b9972a5985b3">&#9670;&nbsp;</a></span>_logger</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::shared_ptr&lt;<a class="el" href="classmaingo_1_1_logger.html">Logger</a>&gt; maingo::MAiNGO::_logger = std::make_shared&lt;<a class="el" href="classmaingo_1_1_logger.html">Logger</a>&gt;()</td>
         </tr>
       </table>
   </td>
@@ -3148,8 +3411,8 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="abdcc6fb032878028956050dcba5c9405"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#abdcc6fb032878028956050dcba5c9405">&#9670;&nbsp;</a></span>_maingoSettings</h2>
+<a id="acdbebd94e2fcccad46515741516799de"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acdbebd94e2fcccad46515741516799de">&#9670;&nbsp;</a></span>_maingoSettings</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -3158,7 +3421,7 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="structmaingo_1_1_settings.html">Settings</a> maingo::MAiNGO::_maingoSettings</td>
+          <td class="memname">std::shared_ptr&lt;<a class="el" href="structmaingo_1_1_settings.html">Settings</a>&gt; maingo::MAiNGO::_maingoSettings = std::make_shared&lt;<a class="el" href="structmaingo_1_1_settings.html">Settings</a>&gt;()</td>
         </tr>
       </table>
   </td>
@@ -3282,7 +3545,7 @@ Private Attributes</h2></td></tr>
   </tr>
 </table>
 </div><div class="memdoc">
-<p>pointer to a <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html" title="This class is the base class for models to be solved by MAiNGO.">MAiNGOmodel</a> object which will be evaluated with mc::FFVar variables </p>
+<p>pointer to a <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html" title="This class is the base class for models to be solved by MAiNGO. ">MAiNGOmodel</a> object which will be evaluated with mc::FFVar variables </p>
 
 </div>
 </div>
@@ -3631,8 +3894,8 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="a92badf4c34413612706e7aeaefebe95a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a92badf4c34413612706e7aeaefebe95a">&#9670;&nbsp;</a></span>_nonconstantConstraints</h2>
+<a id="a8dacc1f270014ea3c70dee5451abae62"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8dacc1f270014ea3c70dee5451abae62">&#9670;&nbsp;</a></span>_nonconstantConstraints</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -3641,7 +3904,7 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">std::vector&lt;<a class="el" href="structmaingo_1_1_constraint.html">Constraint</a>&gt; maingo::MAiNGO::_nonconstantConstraints</td>
+          <td class="memname">std::shared_ptr&lt;std::vector&lt;<a class="el" href="structmaingo_1_1_constraint.html">Constraint</a>&gt; &gt; maingo::MAiNGO::_nonconstantConstraints</td>
         </tr>
       </table>
   </td>
@@ -3654,8 +3917,8 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="a7bce17d744313c9b489b19179eb0b4f0"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a7bce17d744313c9b489b19179eb0b4f0">&#9670;&nbsp;</a></span>_nonconstantConstraintsUBP</h2>
+<a id="a0d1cde74073424f84d8b4692a8406101"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0d1cde74073424f84d8b4692a8406101">&#9670;&nbsp;</a></span>_nonconstantConstraintsUBP</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -3664,7 +3927,7 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">std::vector&lt;<a class="el" href="structmaingo_1_1_constraint.html">Constraint</a>&gt; maingo::MAiNGO::_nonconstantConstraintsUBP</td>
+          <td class="memname">std::shared_ptr&lt;std::vector&lt;<a class="el" href="structmaingo_1_1_constraint.html">Constraint</a>&gt; &gt; maingo::MAiNGO::_nonconstantConstraintsUBP</td>
         </tr>
       </table>
   </td>
@@ -3677,8 +3940,8 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="ace95ba4340090ffaafec40a30504ccb4"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ace95ba4340090ffaafec40a30504ccb4">&#9670;&nbsp;</a></span>_nonconstantOutputs</h2>
+<a id="ae1bb7b84481f6f827f61d84601fe9869"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae1bb7b84481f6f827f61d84601fe9869">&#9670;&nbsp;</a></span>_nonconstantOutputs</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -3687,7 +3950,7 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">std::vector&lt;<a class="el" href="structmaingo_1_1_constraint.html">Constraint</a>&gt; maingo::MAiNGO::_nonconstantOutputs</td>
+          <td class="memname">std::shared_ptr&lt;std::vector&lt;<a class="el" href="structmaingo_1_1_constraint.html">Constraint</a>&gt; &gt; maingo::MAiNGO::_nonconstantOutputs</td>
         </tr>
       </table>
   </td>
@@ -3884,8 +4147,8 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="a0314c3c342e0483b85692344d79d8486"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a0314c3c342e0483b85692344d79d8486">&#9670;&nbsp;</a></span>_originalConstraints</h2>
+<a id="a88c7a2689b32500ebf09bf37de06d47f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a88c7a2689b32500ebf09bf37de06d47f">&#9670;&nbsp;</a></span>_originalConstraints</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -3894,7 +4157,7 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">std::vector&lt;<a class="el" href="structmaingo_1_1_constraint.html">Constraint</a>&gt; maingo::MAiNGO::_originalConstraints</td>
+          <td class="memname">std::shared_ptr&lt;std::vector&lt;<a class="el" href="structmaingo_1_1_constraint.html">Constraint</a>&gt; &gt; maingo::MAiNGO::_originalConstraints</td>
         </tr>
       </table>
   </td>
@@ -4066,6 +4329,29 @@ Private Attributes</h2></td></tr>
 </div><div class="memdoc">
 <p>vector holding the information on which variable has been removed from the problem </p>
 
+</div>
+</div>
+<a id="a0a9de764a3521782c3f6e3dc68f01324"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0a9de764a3521782c3f6e3dc68f01324">&#9670;&nbsp;</a></span>_resultFileName</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::string maingo::MAiNGO::_resultFileName = &quot;MAiNGOresult.txt&quot;</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<p>name of the text file into which the results (solution point, constraints residuals etc.) may be written </p>
+
 </div>
 </div>
 <a id="aa6a02b134e037806dea96aab029ff908"></a>
@@ -4391,13 +4677,15 @@ Private Attributes</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this class was generated from the following files:<ul>
-<li>C:/Users/dobo01/maingo/inc/<a class="el" href="_m_ai_n_g_o_8h_source.html">MAiNGO.h</a></li>
-<li>C:/Users/dobo01/maingo/src/<a class="el" href="_m_ai_n_g_o_8cpp.html">MAiNGO.cpp</a></li>
-<li>C:/Users/dobo01/maingo/src/<a class="el" href="_m_ai_n_g_ogetter_functions_8cpp.html">MAiNGOgetterFunctions.cpp</a></li>
-<li>C:/Users/dobo01/maingo/src/<a class="el" href="_m_ai_n_g_oprinting_functions_8cpp.html">MAiNGOprintingFunctions.cpp</a></li>
-<li>C:/Users/dobo01/maingo/src/<a class="el" href="_m_ai_n_g_oto_other_language_8cpp.html">MAiNGOtoOtherLanguage.cpp</a></li>
-<li>C:/Users/dobo01/maingo/src/<a class="el" href="_m_ai_n_g_o_w_a_l_l_8cpp.html">MAiNGOWALL.cpp</a></li>
-<li>C:/Users/dobo01/maingo/src/<a class="el" href="_m_ai_n_g_owriting_functions_8cpp.html">MAiNGOwritingFunctions.cpp</a></li>
+<li>C:/dobo01/maingo/inc/<a class="el" href="_m_ai_n_g_o_8h_source.html">MAiNGO.h</a></li>
+<li>C:/dobo01/maingo/src/<a class="el" href="_m_ai_n_g_o_8cpp.html">MAiNGO.cpp</a></li>
+<li>C:/dobo01/maingo/src/<a class="el" href="_m_ai_n_g_oevaluation_functions_8cpp.html">MAiNGOevaluationFunctions.cpp</a></li>
+<li>C:/dobo01/maingo/src/<a class="el" href="_m_ai_n_g_ogetter_functions_8cpp.html">MAiNGOgetterFunctions.cpp</a></li>
+<li>C:/dobo01/maingo/src/<a class="el" href="_m_ai_n_g_oprinting_functions_8cpp.html">MAiNGOprintingFunctions.cpp</a></li>
+<li>C:/dobo01/maingo/src/<a class="el" href="_m_ai_n_g_oread_settings_8cpp.html">MAiNGOreadSettings.cpp</a></li>
+<li>C:/dobo01/maingo/src/<a class="el" href="_m_ai_n_g_oset_option_8cpp.html">MAiNGOsetOption.cpp</a></li>
+<li>C:/dobo01/maingo/src/<a class="el" href="_m_ai_n_g_oto_other_language_8cpp.html">MAiNGOtoOtherLanguage.cpp</a></li>
+<li>C:/dobo01/maingo/src/<a class="el" href="_m_ai_n_g_owriting_functions_8cpp.html">MAiNGOwritingFunctions.cpp</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -4407,7 +4695,7 @@ Private Attributes</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">MAiNGO</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1_m_ai_n_g_o.js b/doc/html/classmaingo_1_1_m_ai_n_g_o.js
index cd7a4b839050628bd1cd1e797cb737879b8fcf58..9075fe10ae3b58e96bf9189cca9d59c79be4a90f 100644
--- a/doc/html/classmaingo_1_1_m_ai_n_g_o.js
+++ b/doc/html/classmaingo_1_1_m_ai_n_g_o.js
@@ -9,14 +9,15 @@ var classmaingo_1_1_m_ai_n_g_o =
     [ "_analyze_and_solve_problem", "classmaingo_1_1_m_ai_n_g_o.html#a271c14d25b5423c7c077f8ea206f2818", null ],
     [ "_check_feasibility_of_relaxation_only_constraints", "classmaingo_1_1_m_ai_n_g_o.html#abad3366b86f460d436d3c13bfecb147b", null ],
     [ "_check_for_hidden_zero_constraints", "classmaingo_1_1_m_ai_n_g_o.html#a9ad31f08fce43a453e9f8e1e39c889bb", null ],
-    [ "_classify_constraints", "classmaingo_1_1_m_ai_n_g_o.html#a874e8de2f4daafb262380b882a3d3553", null ],
+    [ "_classify_objective_and_constraints", "classmaingo_1_1_m_ai_n_g_o.html#a803800682d25b4edc28a3536faba2380", null ],
     [ "_construct_DAG", "classmaingo_1_1_m_ai_n_g_o.html#a9908a4661a24667409c0a0fd5c06fe9f", null ],
-    [ "_get_additional_outputs", "classmaingo_1_1_m_ai_n_g_o.html#a14ac25981c3df0f6317418c8b9f4857c", null ],
-    [ "_get_model_at_point", "classmaingo_1_1_m_ai_n_g_o.html#a0d372af3e069f9ff12f09936aa9099c0", null ],
+    [ "_ensure_valid_objective_function_using_dummy_variable", "classmaingo_1_1_m_ai_n_g_o.html#a56d30ff7a1a221550e6c7c045e5c6feb", null ],
+    [ "_evaluate_additional_outputs_at_point", "classmaingo_1_1_m_ai_n_g_o.html#a92cbd5e8a92e5c335d57bb23574cf6b2", null ],
+    [ "_evaluate_model_at_point", "classmaingo_1_1_m_ai_n_g_o.html#a241496b3e71881ee3cb7b8be661b44d4", null ],
     [ "_initialize_solve", "classmaingo_1_1_m_ai_n_g_o.html#acdc8a1d98aa50ee3d76dc4873dda787f", null ],
     [ "_print_additional_output", "classmaingo_1_1_m_ai_n_g_o.html#a1056041b9ace71cfbf3807ec436cd80b", null ],
     [ "_print_MAiNGO_header", "classmaingo_1_1_m_ai_n_g_o.html#a585967bc628b31b1fbba2105be7d36a2", null ],
-    [ "_print_MAiNGO_header_for_other_modeling_language", "classmaingo_1_1_m_ai_n_g_o.html#a93a8eadb777ce6ff95072f16dc6ef762", null ],
+    [ "_print_MAiNGO_header_for_other_modeling_language", "classmaingo_1_1_m_ai_n_g_o.html#a1eeb14c069d224846f7684d95a90ed04", null ],
     [ "_print_message", "classmaingo_1_1_m_ai_n_g_o.html#a0a8c5d381ad5818cec8624db717de73a", null ],
     [ "_print_solution", "classmaingo_1_1_m_ai_n_g_o.html#a4919a41d851f89b85fbd2646d878a6b0", null ],
     [ "_print_statistics", "classmaingo_1_1_m_ai_n_g_o.html#a108919c79fc8d5fd6e0389ce7b242acb", null ],
@@ -33,18 +34,20 @@ var classmaingo_1_1_m_ai_n_g_o =
     [ "_write_ale_functions", "classmaingo_1_1_m_ai_n_g_o.html#a20c235755de9f0c15ea62c28ae9e2ac8", null ],
     [ "_write_ale_options", "classmaingo_1_1_m_ai_n_g_o.html#a4681879414746b1ac89b905479d6fa1d", null ],
     [ "_write_ale_variables", "classmaingo_1_1_m_ai_n_g_o.html#a6d10798d58ceeac812fb853ca7eccf5c", null ],
-    [ "_write_csv_general", "classmaingo_1_1_m_ai_n_g_o.html#a2287a4b633fd59097ce44a74e15f6660", null ],
     [ "_write_epsilon_constraint_result", "classmaingo_1_1_m_ai_n_g_o.html#a40c4e33f9034542409daa1f0497c776f", null ],
     [ "_write_files", "classmaingo_1_1_m_ai_n_g_o.html#acb69025e90c11f757a3f74c9b37daacd", null ],
-    [ "_write_files_error", "classmaingo_1_1_m_ai_n_g_o.html#a72b6d958b300d7fc886b74790b001aeb", null ],
+    [ "_write_files_error", "classmaingo_1_1_m_ai_n_g_o.html#a7ff011bd8ce28c9dc2e2d24c350698e1", null ],
     [ "_write_gams_file", "classmaingo_1_1_m_ai_n_g_o.html#af7aec196a4987e5f38ed642b21400aa9", null ],
     [ "_write_gams_functions", "classmaingo_1_1_m_ai_n_g_o.html#a0d24d4e085f56925079399567cdf70eb", null ],
     [ "_write_gams_options", "classmaingo_1_1_m_ai_n_g_o.html#aa3b2c105e3ebff61b3416c9cdd8bd964", null ],
     [ "_write_gams_variables", "classmaingo_1_1_m_ai_n_g_o.html#a1aff8d80ad642d24966454b8ef35e34a", null ],
     [ "_write_json_file", "classmaingo_1_1_m_ai_n_g_o.html#a9d8ceaac941b738db96be2326e4db27a", null ],
-    [ "_write_res_file", "classmaingo_1_1_m_ai_n_g_o.html#a76ffecbb5590c1dd40ec896059af4fda", null ],
-    [ "get_additional_outputs_at_point", "classmaingo_1_1_m_ai_n_g_o.html#a52df8cc85640aaee13afb5cd5748dbcc", null ],
-    [ "get_additional_outputs_at_solution_point", "classmaingo_1_1_m_ai_n_g_o.html#afd0f8acfe45a05c077810ef75b8d71dd", null ],
+    [ "_write_result_file", "classmaingo_1_1_m_ai_n_g_o.html#a83da0fbc8eeb9b2f336cd5d41707fbaf", null ],
+    [ "_write_solution_and_statistics_csv", "classmaingo_1_1_m_ai_n_g_o.html#ab894162dd5074eea1d5dd153e4f72d9e", null ],
+    [ "evaluate_additional_outputs_at_point", "classmaingo_1_1_m_ai_n_g_o.html#adeef2c9d324fa8f9a26819b3a3307ad7", null ],
+    [ "evaluate_additional_outputs_at_solution_point", "classmaingo_1_1_m_ai_n_g_o.html#a5ee95afece75a72e91aff11274eda43a", null ],
+    [ "evaluate_model_at_point", "classmaingo_1_1_m_ai_n_g_o.html#aaaa69dd8b526f0d9966ce35bd102601f", null ],
+    [ "evaluate_model_at_solution_point", "classmaingo_1_1_m_ai_n_g_o.html#acd561f4e9560a6a5c501bdf444f581b8", null ],
     [ "get_cpu_solution_time", "classmaingo_1_1_m_ai_n_g_o.html#a0c15524b2884d3604fc0a5d4b40bcccb", null ],
     [ "get_final_abs_gap", "classmaingo_1_1_m_ai_n_g_o.html#a0ec7e9601a2a5c8cc2f2bcb8d79c66a5", null ],
     [ "get_final_LBD", "classmaingo_1_1_m_ai_n_g_o.html#ace8e13bdb04862efd560c8d0d80950b4", null ],
@@ -52,31 +55,33 @@ var classmaingo_1_1_m_ai_n_g_o =
     [ "get_iterations", "classmaingo_1_1_m_ai_n_g_o.html#a5922fb929208ad9341446f05683555f9", null ],
     [ "get_LBP_count", "classmaingo_1_1_m_ai_n_g_o.html#a30f5390432b5701f3ae3b7ff3b0ae680", null ],
     [ "get_max_nodes_in_memory", "classmaingo_1_1_m_ai_n_g_o.html#a22af1a970a5fd23eb347a655c8ae549a", null ],
-    [ "get_model_at_point", "classmaingo_1_1_m_ai_n_g_o.html#abd17e0e2d436da88f15738e8e0218ac8", null ],
-    [ "get_model_at_solution_point", "classmaingo_1_1_m_ai_n_g_o.html#a50df488dd7b110d7e4ebc137a8949696", null ],
     [ "get_objective_value", "classmaingo_1_1_m_ai_n_g_o.html#a6f3727adfe69c95ac8e0ca41a7b73fa6", null ],
     [ "get_solution_point", "classmaingo_1_1_m_ai_n_g_o.html#a7821624172735057f67471776a8d4aa1", null ],
     [ "get_status", "classmaingo_1_1_m_ai_n_g_o.html#a16e579b3026a722169cf0f8819ac1ec5", null ],
     [ "get_UBP_count", "classmaingo_1_1_m_ai_n_g_o.html#a7f8fb94bcf60d8e2ff8a943c12459061", null ],
     [ "get_wallclock_solution_time", "classmaingo_1_1_m_ai_n_g_o.html#ae1bfc496de0e05575a8f9ad290bd2b58", null ],
     [ "operator=", "classmaingo_1_1_m_ai_n_g_o.html#a9d035ded892ca2fd6a0151f6ea761d54", null ],
-    [ "parse_maingo_to_other_language", "classmaingo_1_1_m_ai_n_g_o.html#a4f888ef8f672e6ee7602951cd4b2c7a9", null ],
     [ "print_MAiNGO", "classmaingo_1_1_m_ai_n_g_o.html#a1a9fa4c0ae0a91178836350b5f5c22d3", null ],
-    [ "read_settings", "classmaingo_1_1_m_ai_n_g_o.html#a9d2cbee1f5ecf3321e2e5334e70757fe", null ],
-    [ "set_csv_file_name", "classmaingo_1_1_m_ai_n_g_o.html#a530c347d65ac74a1cf871e385ec18cc4", null ],
-    [ "set_json_file_name", "classmaingo_1_1_m_ai_n_g_o.html#a755f6652395b3bad73976a26fa4243f9", null ],
-    [ "set_log_file_name", "classmaingo_1_1_m_ai_n_g_o.html#ae99518c0b699295565d25c76b0187c58", null ],
+    [ "read_settings", "classmaingo_1_1_m_ai_n_g_o.html#a0728bb641f5f269763663ce89280bd4f", null ],
+    [ "set_iterations_csv_file_name", "classmaingo_1_1_m_ai_n_g_o.html#abe4f3a7b42c05c07e7962be17de02ed3", null ],
+    [ "set_json_file_name", "classmaingo_1_1_m_ai_n_g_o.html#a3caca275897742b038011e6fd00b2bdc", null ],
+    [ "set_log_file_name", "classmaingo_1_1_m_ai_n_g_o.html#a450f5ac09e6afa9e34dc86b59359ae20", null ],
     [ "set_model", "classmaingo_1_1_m_ai_n_g_o.html#a1fe4e8690548362eb1ec74fb052a424e", null ],
-    [ "set_option", "classmaingo_1_1_m_ai_n_g_o.html#a383bc41aef21457041b6a79d0a376bed", null ],
-    [ "set_output_stream", "classmaingo_1_1_m_ai_n_g_o.html#a66b60c8b60e9525e96e4d2dbb6398f88", null ],
-    [ "set_res_file_name", "classmaingo_1_1_m_ai_n_g_o.html#ade7741b5e86018f3167c9f34622a2733", null ],
+    [ "set_option", "classmaingo_1_1_m_ai_n_g_o.html#ae2bc7507ee0341d7b0a8ac06702ca964", null ],
+    [ "set_option", "classmaingo_1_1_m_ai_n_g_o.html#a21ee05457f51d5b22853d10cb4114b96", null ],
+    [ "set_option", "classmaingo_1_1_m_ai_n_g_o.html#a1f8ea652c3ae60bad558c3aeb66f1085", null ],
+    [ "set_output_stream", "classmaingo_1_1_m_ai_n_g_o.html#a1a4ba608b818d6a2e303b836505e0234", null ],
+    [ "set_result_file_name", "classmaingo_1_1_m_ai_n_g_o.html#a4dc94835e031b37290f96814486c2903", null ],
+    [ "set_solution_and_statistics_csv_file_name", "classmaingo_1_1_m_ai_n_g_o.html#a0157c25ef59573826a916e301e836330", null ],
     [ "solve", "classmaingo_1_1_m_ai_n_g_o.html#a50062c75f198aab4cd975f34fdef1506", null ],
     [ "solve_epsilon_constraint", "classmaingo_1_1_m_ai_n_g_o.html#a4cf012860282bcaff9890e182f4b6886", null ],
+    [ "write_model_to_file_in_other_language", "classmaingo_1_1_m_ai_n_g_o.html#a8acf1fc912457043365faabd54861d50", null ],
     [ "_babStatus", "classmaingo_1_1_m_ai_n_g_o.html#a8fe800a4fd347fc64b3f26de987c13f5", null ],
     [ "_babTime", "classmaingo_1_1_m_ai_n_g_o.html#a917d78c01e2442296f829977491e6107", null ],
-    [ "_constantConstraints", "classmaingo_1_1_m_ai_n_g_o.html#a6094a619e5202a347ad3b755a0f13fe7", null ],
+    [ "_constantConstraints", "classmaingo_1_1_m_ai_n_g_o.html#abb011b283ec6da5387c24804ba59ff6d", null ],
     [ "_constantConstraintsFeasible", "classmaingo_1_1_m_ai_n_g_o.html#af917f2f3529a7c92bb0b972607c1e8df", null ],
-    [ "_constantOutputs", "classmaingo_1_1_m_ai_n_g_o.html#a9393fdd939148611496b665d537ca6cb", null ],
+    [ "_constantOutputs", "classmaingo_1_1_m_ai_n_g_o.html#aded61d763cefceab6bf099cf9d891cff", null ],
+    [ "_csvSolutionStatisticsName", "classmaingo_1_1_m_ai_n_g_o.html#a689902b992cca417907471e82b9526b1", null ],
     [ "_DAG", "classmaingo_1_1_m_ai_n_g_o.html#a54d978f1329af4acf801108591eea1f5", null ],
     [ "_DAGconstructed", "classmaingo_1_1_m_ai_n_g_o.html#a5d59280b371782eaeaf887073ae7b77a", null ],
     [ "_DAGfunctions", "classmaingo_1_1_m_ai_n_g_o.html#aa5de85da627e5dbdf3c6bf6be2ddad26", null ],
@@ -86,15 +91,17 @@ var classmaingo_1_1_m_ai_n_g_o =
     [ "_DAGoutputFunctionsLbd", "classmaingo_1_1_m_ai_n_g_o.html#a011bbb5f80dad5bc568f0537931a5369", null ],
     [ "_DAGvars", "classmaingo_1_1_m_ai_n_g_o.html#a06382d115db4ab79eb1c249ab367a086", null ],
     [ "_DAGvarsLbd", "classmaingo_1_1_m_ai_n_g_o.html#a2fd3f75ee25d495eb9f08ab7597f3742", null ],
+    [ "_feasibilityProblem", "classmaingo_1_1_m_ai_n_g_o.html#a8b2bcd5e079464178341f24169e45bbc", null ],
     [ "_feasibleAtRoot", "classmaingo_1_1_m_ai_n_g_o.html#ae51edfeecb90cf3be1d6cabf9d18c9eb", null ],
     [ "_infeasibleVariables", "classmaingo_1_1_m_ai_n_g_o.html#a49594efef0db3f36efcf342acf7c7525", null ],
     [ "_initialPoint", "classmaingo_1_1_m_ai_n_g_o.html#a6624f898a20299ccfa4a8fa2f8f7dd28", null ],
     [ "_initialPointFeasible", "classmaingo_1_1_m_ai_n_g_o.html#a7e35d3a30d8a5eab184d18fe256ffc57", null ],
     [ "_initialPointOriginal", "classmaingo_1_1_m_ai_n_g_o.html#a66df665b487a9136ff45a8e8a76c739c", null ],
     [ "_inMAiNGOsolve", "classmaingo_1_1_m_ai_n_g_o.html#a9292f5cf116f7607400a75a036c88244", null ],
-    [ "_logger", "classmaingo_1_1_m_ai_n_g_o.html#a96f1a3a2a8c24cdca954e63fdc155e01", null ],
+    [ "_jsonFileName", "classmaingo_1_1_m_ai_n_g_o.html#a0dffde2ace38c3fad7a6cfb38f0f374c", null ],
+    [ "_logger", "classmaingo_1_1_m_ai_n_g_o.html#aad666fe69213402bdba8b9972a5985b3", null ],
     [ "_maingoOriginalSettings", "classmaingo_1_1_m_ai_n_g_o.html#a020f2b61ca2d2baabf16031f078c2ddd", null ],
-    [ "_maingoSettings", "classmaingo_1_1_m_ai_n_g_o.html#abdcc6fb032878028956050dcba5c9405", null ],
+    [ "_maingoSettings", "classmaingo_1_1_m_ai_n_g_o.html#acdbebd94e2fcccad46515741516799de", null ],
     [ "_maingoStatus", "classmaingo_1_1_m_ai_n_g_o.html#ace36a8a82262f885ae5f87be65d868db", null ],
     [ "_miqpStatus", "classmaingo_1_1_m_ai_n_g_o.html#a31692cc54ec24e14fbd7bfccda000d16", null ],
     [ "_modelOutput", "classmaingo_1_1_m_ai_n_g_o.html#aa19003266d3acb3b042f282e8bf1e575", null ],
@@ -115,9 +122,9 @@ var classmaingo_1_1_m_ai_n_g_o =
     [ "_nineq", "classmaingo_1_1_m_ai_n_g_o.html#a91c7c1533effc9589f908b96b67789b3", null ],
     [ "_nineqRelaxationOnly", "classmaingo_1_1_m_ai_n_g_o.html#a9fb77dded43644f931547ab9d7a3daba", null ],
     [ "_nineqSquash", "classmaingo_1_1_m_ai_n_g_o.html#a65d8859f0f4b4e6dfec43c4238d24772", null ],
-    [ "_nonconstantConstraints", "classmaingo_1_1_m_ai_n_g_o.html#a92badf4c34413612706e7aeaefebe95a", null ],
-    [ "_nonconstantConstraintsUBP", "classmaingo_1_1_m_ai_n_g_o.html#a7bce17d744313c9b489b19179eb0b4f0", null ],
-    [ "_nonconstantOutputs", "classmaingo_1_1_m_ai_n_g_o.html#ace95ba4340090ffaafec40a30504ccb4", null ],
+    [ "_nonconstantConstraints", "classmaingo_1_1_m_ai_n_g_o.html#a8dacc1f270014ea3c70dee5451abae62", null ],
+    [ "_nonconstantConstraintsUBP", "classmaingo_1_1_m_ai_n_g_o.html#a0d1cde74073424f84d8b4692a8406101", null ],
+    [ "_nonconstantOutputs", "classmaingo_1_1_m_ai_n_g_o.html#ae1bb7b84481f6f827f61d84601fe9869", null ],
     [ "_noutputVariables", "classmaingo_1_1_m_ai_n_g_o.html#ae90a5539fd3c1790b49289c919948da7", null ],
     [ "_nvar", "classmaingo_1_1_m_ai_n_g_o.html#adf4fee2adeb03682d2ea70239f75848d", null ],
     [ "_nvarLbd", "classmaingo_1_1_m_ai_n_g_o.html#af0c4e2dcc05ca034801db5400f8d2fa7", null ],
@@ -126,7 +133,7 @@ var classmaingo_1_1_m_ai_n_g_o =
     [ "_nvarOriginalContinuous", "classmaingo_1_1_m_ai_n_g_o.html#a24bb95f23a26f300a8a4ca85b9284512", null ],
     [ "_nvarOriginalInteger", "classmaingo_1_1_m_ai_n_g_o.html#a43a173e24e19fbbd9ea819b105ab39d6", null ],
     [ "_objectivesAtRoot", "classmaingo_1_1_m_ai_n_g_o.html#a11b956f66ea516b6951abe9dd2410484", null ],
-    [ "_originalConstraints", "classmaingo_1_1_m_ai_n_g_o.html#a0314c3c342e0483b85692344d79d8486", null ],
+    [ "_originalConstraints", "classmaingo_1_1_m_ai_n_g_o.html#a88c7a2689b32500ebf09bf37de06d47f", null ],
     [ "_originalVariables", "classmaingo_1_1_m_ai_n_g_o.html#adf764bba4c067716ca0d9948eca504a8", null ],
     [ "_outputNames", "classmaingo_1_1_m_ai_n_g_o.html#a5cbd854078dc3fbef193c14af2e7a11d", null ],
     [ "_outputTime", "classmaingo_1_1_m_ai_n_g_o.html#a101ac517abb98426ff61a29feb27e7a1", null ],
@@ -134,6 +141,7 @@ var classmaingo_1_1_m_ai_n_g_o =
     [ "_problemStructure", "classmaingo_1_1_m_ai_n_g_o.html#a038bd07379ad5ac438d7253f67e5f456", null ],
     [ "_readyToSolve", "classmaingo_1_1_m_ai_n_g_o.html#a9c4f03e80eafd073264fb0d2f186dc81", null ],
     [ "_removedVariables", "classmaingo_1_1_m_ai_n_g_o.html#abb425f08ebe9b1d4a71d6b455cd656b9", null ],
+    [ "_resultFileName", "classmaingo_1_1_m_ai_n_g_o.html#a0a9de764a3521782c3f6e3dc68f01324", null ],
     [ "_resultVars", "classmaingo_1_1_m_ai_n_g_o.html#aa6a02b134e037806dea96aab029ff908", null ],
     [ "_rootConPropStatus", "classmaingo_1_1_m_ai_n_g_o.html#abd3d18c6d0825a1fdf892aed43ef5deb", null ],
     [ "_rootMultistartStatus", "classmaingo_1_1_m_ai_n_g_o.html#a4940dbf6b13e10e500cb7704b3f6d412", null ],
diff --git a/doc/html/classmaingo_1_1_m_ai_n_g_o_exception-members.html b/doc/html/classmaingo_1_1_m_ai_n_g_o_exception-members.html
index 7ee3756c489c1ca83618d5002135215bae99b1aa..3a6851b960c6703e20e731a7ca5b7433fa001b5f 100644
--- a/doc/html/classmaingo_1_1_m_ai_n_g_o_exception-members.html
+++ b/doc/html/classmaingo_1_1_m_ai_n_g_o_exception-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -93,14 +93,22 @@ $(document).ready(function(){initNavTree('classmaingo_1_1_m_ai_n_g_o_exception.h
 
 <p>This is the complete list of members for <a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">maingo::MAiNGOException</a>, including all inherited members.</p>
 <table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a9e405ac624e18ae108f3474e4c8284d4">_msg</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">maingo::MAiNGOException</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a8c2f79d79aaa741fa4c0f5d7b5148a92">MAiNGOException</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">maingo::MAiNGOException</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#ab39f701c53e41a4c7f43ef44e8c275d8">MAiNGOException</a>(const std::string &amp;arg)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">maingo::MAiNGOException</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#afe2216a07a8ecaf41c1c4b8b10e1ec35">MAiNGOException</a>(const std::string &amp;arg, const babBase::BabNode &amp;node)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">maingo::MAiNGOException</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#afc29a64faad1be34d8b70205b3391910">MAiNGOException</a>(const std::string &amp;arg, const std::exception &amp;e)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">maingo::MAiNGOException</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a2486a525e721a25110fc12c5224c1f10">MAiNGOException</a>(const std::string &amp;arg, const std::exception &amp;e, const babBase::BabNode &amp;node)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">maingo::MAiNGOException</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a21341b7dfc5884b912383906b5f9828c">MAiNGOException</a>(const std::string &amp;arg, const std::exception *e, const babBase::BabNode *node)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">maingo::MAiNGOException</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a382a9c1299485b028ea4a82afe5c1952">what</a>() const noexcept</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">maingo::MAiNGOException</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a978212ab50e44b92bc27cb853df35733">_append_current_error_message_to_message</a>(const std::string &amp;currentErrorMessage, std::ostringstream &amp;completeErrorMessage)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">maingo::MAiNGOException</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a78cc259eb3c775814b2214262f026b8a">_append_node_info_to_message</a>(const babBase::BabNode *nodeThatErrorOccurredIn, std::ostringstream &amp;completeErrorMessage)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">maingo::MAiNGOException</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a9cd783e2e9ac6fcaf813bd8f94f2300d">_append_original_exception_info_to_message</a>(const std::exception *originalException, std::ostringstream &amp;completeErrorMessage)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">maingo::MAiNGOException</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a5cc5c15e7cb9d14f7877731fabb46189">_construct_complete_error_message</a>(const std::string &amp;errorMessage, const std::exception *originalException, const babBase::BabNode *nodeThatErrorOccurredIn)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">maingo::MAiNGOException</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#ac3cd87bc11baff35170096a9a4fd8007">_errorMessage</a></td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">maingo::MAiNGOException</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#ae27b9410e3135e7784dae78c11e682f6">MAiNGOException</a>()=delete</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">maingo::MAiNGOException</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#aa5597f9379d8be919d8b4ae58030fac4">MAiNGOException</a>(const MAiNGOException &amp;)=default</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">maingo::MAiNGOException</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#aa5c3aeb963e328dedab7bf51e953f863">MAiNGOException</a>(MAiNGOException &amp;&amp;)=default</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">maingo::MAiNGOException</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a61855f24f971602b43e26c16b0593e4f">MAiNGOException</a>(const std::string &amp;errorMessage)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">maingo::MAiNGOException</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a6f3fb2a660e871f2949a18b4a6986019">MAiNGOException</a>(const std::string &amp;errorMessage, const babBase::BabNode &amp;nodeThatErrorOccurredIn)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">maingo::MAiNGOException</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a457b8be0f33fcfeb9ab096345e60b75c">MAiNGOException</a>(const std::string &amp;errorMessage, const std::exception &amp;originalException)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">maingo::MAiNGOException</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#af37f598a1339901938a6bbf3b67a3247">MAiNGOException</a>(const std::string &amp;errorMessage, const std::exception &amp;originalException, const babBase::BabNode &amp;nodeThatErrorOccurredIn)</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">maingo::MAiNGOException</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#aa38305aacfa2e2ebce4c5067dee75df9">operator=</a>(const MAiNGOException &amp;)=default</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">maingo::MAiNGOException</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a781b7f59163bbc21dd5d3485f73f157a">operator=</a>(MAiNGOException &amp;&amp;)=default</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">maingo::MAiNGOException</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a07682a0877265a921df4401bb1dbb3f6">what</a>() const noexcept override</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">maingo::MAiNGOException</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a2bddf4891f256ffd2f7395626412568a">~MAiNGOException</a>()=default</td><td class="entry"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">maingo::MAiNGOException</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -108,7 +116,7 @@ $(document).ready(function(){initNavTree('classmaingo_1_1_m_ai_n_g_o_exception.h
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1_m_ai_n_g_o_exception.html b/doc/html/classmaingo_1_1_m_ai_n_g_o_exception.html
index 500a5cb17f872f5179383eecdbb5e5d66eb29c40..38e2a455212e023554abc8ce918eeb2ac4092be6 100644
--- a/doc/html/classmaingo_1_1_m_ai_n_g_o_exception.html
+++ b/doc/html/classmaingo_1_1_m_ai_n_g_o_exception.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::MAiNGOException Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -99,51 +99,63 @@ $(document).ready(function(){initNavTree('classmaingo_1_1_m_ai_n_g_o_exception.h
 <p>This class defines the exceptions thrown by <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a>.  
  <a href="classmaingo_1_1_m_ai_n_g_o_exception.html#details">More...</a></p>
 
-<p><code>#include &lt;<a class="el" href="exceptions_8h_source.html">exceptions.h</a>&gt;</code></p>
+<p><code>#include &lt;<a class="el" href="_m_ai_n_g_o_exception_8h_source.html">MAiNGOException.h</a>&gt;</code></p>
 <div class="dynheader">
 Inheritance diagram for maingo::MAiNGOException:</div>
 <div class="dyncontent">
  <div class="center">
-  <img src="classmaingo_1_1_m_ai_n_g_o_exception.png" alt=""/>
+  <img src="classmaingo_1_1_m_ai_n_g_o_exception.png" usemap="#maingo::MAiNGOException_map" alt=""/>
+  <map id="maingo::MAiNGOException_map" name="maingo::MAiNGOException_map">
+</map>
  </div></div>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:ab39f701c53e41a4c7f43ef44e8c275d8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#ab39f701c53e41a4c7f43ef44e8c275d8">MAiNGOException</a> (const std::string &amp;arg)</td></tr>
-<tr class="memdesc:ab39f701c53e41a4c7f43ef44e8c275d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor used for forwarding.  <a href="#ab39f701c53e41a4c7f43ef44e8c275d8">More...</a><br /></td></tr>
-<tr class="separator:ab39f701c53e41a4c7f43ef44e8c275d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:afe2216a07a8ecaf41c1c4b8b10e1ec35"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#afe2216a07a8ecaf41c1c4b8b10e1ec35">MAiNGOException</a> (const std::string &amp;arg, const <a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;node)</td></tr>
-<tr class="memdesc:afe2216a07a8ecaf41c1c4b8b10e1ec35"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor used for forwarding.  <a href="#afe2216a07a8ecaf41c1c4b8b10e1ec35">More...</a><br /></td></tr>
-<tr class="separator:afe2216a07a8ecaf41c1c4b8b10e1ec35"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:afc29a64faad1be34d8b70205b3391910"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#afc29a64faad1be34d8b70205b3391910">MAiNGOException</a> (const std::string &amp;arg, const std::exception &amp;e)</td></tr>
-<tr class="memdesc:afc29a64faad1be34d8b70205b3391910"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor used for forwarding.  <a href="#afc29a64faad1be34d8b70205b3391910">More...</a><br /></td></tr>
-<tr class="separator:afc29a64faad1be34d8b70205b3391910"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2486a525e721a25110fc12c5224c1f10"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a2486a525e721a25110fc12c5224c1f10">MAiNGOException</a> (const std::string &amp;arg, const std::exception &amp;e, const <a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;node)</td></tr>
-<tr class="memdesc:a2486a525e721a25110fc12c5224c1f10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor used for forwarding.  <a href="#a2486a525e721a25110fc12c5224c1f10">More...</a><br /></td></tr>
-<tr class="separator:a2486a525e721a25110fc12c5224c1f10"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a21341b7dfc5884b912383906b5f9828c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a21341b7dfc5884b912383906b5f9828c">MAiNGOException</a> (const std::string &amp;arg, const std::exception *e, const <a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> *node)</td></tr>
-<tr class="memdesc:a21341b7dfc5884b912383906b5f9828c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor used printing a <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> Exception.  <a href="#a21341b7dfc5884b912383906b5f9828c">More...</a><br /></td></tr>
-<tr class="separator:a21341b7dfc5884b912383906b5f9828c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a382a9c1299485b028ea4a82afe5c1952"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a382a9c1299485b028ea4a82afe5c1952">what</a> () const noexcept</td></tr>
-<tr class="memdesc:a382a9c1299485b028ea4a82afe5c1952"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function to return the error message.  <a href="#a382a9c1299485b028ea4a82afe5c1952">More...</a><br /></td></tr>
-<tr class="separator:a382a9c1299485b028ea4a82afe5c1952"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae27b9410e3135e7784dae78c11e682f6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#ae27b9410e3135e7784dae78c11e682f6">MAiNGOException</a> ()=delete</td></tr>
+<tr class="separator:ae27b9410e3135e7784dae78c11e682f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa5597f9379d8be919d8b4ae58030fac4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#aa5597f9379d8be919d8b4ae58030fac4">MAiNGOException</a> (const <a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a> &amp;)=default</td></tr>
+<tr class="separator:aa5597f9379d8be919d8b4ae58030fac4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa5c3aeb963e328dedab7bf51e953f863"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#aa5c3aeb963e328dedab7bf51e953f863">MAiNGOException</a> (<a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a> &amp;&amp;)=default</td></tr>
+<tr class="separator:aa5c3aeb963e328dedab7bf51e953f863"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa38305aacfa2e2ebce4c5067dee75df9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#aa38305aacfa2e2ebce4c5067dee75df9">operator=</a> (const <a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a> &amp;)=default</td></tr>
+<tr class="separator:aa38305aacfa2e2ebce4c5067dee75df9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a781b7f59163bbc21dd5d3485f73f157a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a781b7f59163bbc21dd5d3485f73f157a">operator=</a> (<a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a> &amp;&amp;)=default</td></tr>
+<tr class="separator:a781b7f59163bbc21dd5d3485f73f157a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2bddf4891f256ffd2f7395626412568a"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a2bddf4891f256ffd2f7395626412568a">~MAiNGOException</a> ()=default</td></tr>
+<tr class="separator:a2bddf4891f256ffd2f7395626412568a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a61855f24f971602b43e26c16b0593e4f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a61855f24f971602b43e26c16b0593e4f">MAiNGOException</a> (const std::string &amp;errorMessage)</td></tr>
+<tr class="separator:a61855f24f971602b43e26c16b0593e4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6f3fb2a660e871f2949a18b4a6986019"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a6f3fb2a660e871f2949a18b4a6986019">MAiNGOException</a> (const std::string &amp;errorMessage, const <a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;nodeThatErrorOccurredIn)</td></tr>
+<tr class="separator:a6f3fb2a660e871f2949a18b4a6986019"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a457b8be0f33fcfeb9ab096345e60b75c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a457b8be0f33fcfeb9ab096345e60b75c">MAiNGOException</a> (const std::string &amp;errorMessage, const std::exception &amp;originalException)</td></tr>
+<tr class="separator:a457b8be0f33fcfeb9ab096345e60b75c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af37f598a1339901938a6bbf3b67a3247"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#af37f598a1339901938a6bbf3b67a3247">MAiNGOException</a> (const std::string &amp;errorMessage, const std::exception &amp;originalException, const <a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;nodeThatErrorOccurredIn)</td></tr>
+<tr class="separator:af37f598a1339901938a6bbf3b67a3247"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a07682a0877265a921df4401bb1dbb3f6"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a07682a0877265a921df4401bb1dbb3f6">what</a> () const noexcept override</td></tr>
+<tr class="separator:a07682a0877265a921df4401bb1dbb3f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
 Private Member Functions</h2></td></tr>
-<tr class="memitem:a8c2f79d79aaa741fa4c0f5d7b5148a92"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a8c2f79d79aaa741fa4c0f5d7b5148a92">MAiNGOException</a> ()</td></tr>
-<tr class="separator:a8c2f79d79aaa741fa4c0f5d7b5148a92"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5cc5c15e7cb9d14f7877731fabb46189"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a5cc5c15e7cb9d14f7877731fabb46189">_construct_complete_error_message</a> (const std::string &amp;errorMessage, const std::exception *originalException, const <a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> *nodeThatErrorOccurredIn)</td></tr>
+<tr class="separator:a5cc5c15e7cb9d14f7877731fabb46189"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a978212ab50e44b92bc27cb853df35733"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a978212ab50e44b92bc27cb853df35733">_append_current_error_message_to_message</a> (const std::string &amp;currentErrorMessage, std::ostringstream &amp;completeErrorMessage)</td></tr>
+<tr class="separator:a978212ab50e44b92bc27cb853df35733"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9cd783e2e9ac6fcaf813bd8f94f2300d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a9cd783e2e9ac6fcaf813bd8f94f2300d">_append_original_exception_info_to_message</a> (const std::exception *originalException, std::ostringstream &amp;completeErrorMessage)</td></tr>
+<tr class="separator:a9cd783e2e9ac6fcaf813bd8f94f2300d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a78cc259eb3c775814b2214262f026b8a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a78cc259eb3c775814b2214262f026b8a">_append_node_info_to_message</a> (const <a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> *nodeThatErrorOccurredIn, std::ostringstream &amp;completeErrorMessage)</td></tr>
+<tr class="separator:a78cc259eb3c775814b2214262f026b8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
 Private Attributes</h2></td></tr>
-<tr class="memitem:a9e405ac624e18ae108f3474e4c8284d4"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a9e405ac624e18ae108f3474e4c8284d4">_msg</a> {&quot;&quot;}</td></tr>
-<tr class="separator:a9e405ac624e18ae108f3474e4c8284d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac3cd87bc11baff35170096a9a4fd8007"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#ac3cd87bc11baff35170096a9a4fd8007">_errorMessage</a> {&quot;&quot;}</td></tr>
+<tr class="separator:ac3cd87bc11baff35170096a9a4fd8007"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><p>This class defines the exceptions thrown by <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a>. </p>
-<p>The class contains different constructors. The first parameter is always the error message. For debugging, the error message will also contain the file name and line number Additionally, the constructor can take an exception as second argument. If done so, the type of the exception object and its <a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a382a9c1299485b028ea4a82afe5c1952" title="Function to return the error message.">what()</a> will be saved in the error message as well. </p>
+<p>The class contains different constructors that allow incorporating information about the error. The minimum requirement is an error message. Additionally, information can be given about a branch-and-bound node that the error occurred in, or information on the original exception can be included in case the <a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html" title="This class defines the exceptions thrown by MAiNGO. ">MAiNGOException</a> is thrown in response to another type of exception. </p>
 </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a id="a8c2f79d79aaa741fa4c0f5d7b5148a92"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a8c2f79d79aaa741fa4c0f5d7b5148a92">&#9670;&nbsp;</a></span>MAiNGOException() <span class="overload">[1/6]</span></h2>
+<a id="ae27b9410e3135e7784dae78c11e682f6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae27b9410e3135e7784dae78c11e682f6">&#9670;&nbsp;</a></span>MAiNGOException() <span class="overload">[1/7]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -160,15 +172,92 @@ Private Attributes</h2></td></tr>
       </table>
   </td>
   <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">private</span></span>  </td>
+<span class="mlabels"><span class="mlabel">delete</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="aa5597f9379d8be919d8b4ae58030fac4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa5597f9379d8be919d8b4ae58030fac4">&#9670;&nbsp;</a></span>MAiNGOException() <span class="overload">[2/7]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">maingo::MAiNGOException::MAiNGOException </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a> &amp;&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">default</span></span>  </td>
   </tr>
 </table>
 </div><div class="memdoc">
 
 </div>
 </div>
-<a id="ab39f701c53e41a4c7f43ef44e8c275d8"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ab39f701c53e41a4c7f43ef44e8c275d8">&#9670;&nbsp;</a></span>MAiNGOException() <span class="overload">[2/6]</span></h2>
+<a id="aa5c3aeb963e328dedab7bf51e953f863"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa5c3aeb963e328dedab7bf51e953f863">&#9670;&nbsp;</a></span>MAiNGOException() <span class="overload">[3/7]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">maingo::MAiNGOException::MAiNGOException </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a> &amp;&amp;&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">default</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a2bddf4891f256ffd2f7395626412568a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2bddf4891f256ffd2f7395626412568a">&#9670;&nbsp;</a></span>~MAiNGOException()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual maingo::MAiNGOException::~MAiNGOException </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span><span class="mlabel">default</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a61855f24f971602b43e26c16b0593e4f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a61855f24f971602b43e26c16b0593e4f">&#9670;&nbsp;</a></span>MAiNGOException() <span class="overload">[4/7]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -180,7 +269,7 @@ Private Attributes</h2></td></tr>
           <td class="memname">maingo::MAiNGOException::MAiNGOException </td>
           <td>(</td>
           <td class="paramtype">const std::string &amp;&#160;</td>
-          <td class="paramname"><em>arg</em></td><td>)</td>
+          <td class="paramname"><em>errorMessage</em></td><td>)</td>
           <td></td>
         </tr>
       </table>
@@ -191,18 +280,10 @@ Private Attributes</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Constructor used for forwarding. </p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">arg</td><td>is a string holding an error message </td></tr>
-  </table>
-  </dd>
-</dl>
-
 </div>
 </div>
-<a id="afe2216a07a8ecaf41c1c4b8b10e1ec35"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#afe2216a07a8ecaf41c1c4b8b10e1ec35">&#9670;&nbsp;</a></span>MAiNGOException() <span class="overload">[3/6]</span></h2>
+<a id="a6f3fb2a660e871f2949a18b4a6986019"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6f3fb2a660e871f2949a18b4a6986019">&#9670;&nbsp;</a></span>MAiNGOException() <span class="overload">[5/7]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -214,13 +295,13 @@ Private Attributes</h2></td></tr>
           <td class="memname">maingo::MAiNGOException::MAiNGOException </td>
           <td>(</td>
           <td class="paramtype">const std::string &amp;&#160;</td>
-          <td class="paramname"><em>arg</em>, </td>
+          <td class="paramname"><em>errorMessage</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
           <td class="paramtype">const <a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;&#160;</td>
-          <td class="paramname"><em>node</em>&#160;</td>
+          <td class="paramname"><em>nodeThatErrorOccurredIn</em>&#160;</td>
         </tr>
         <tr>
           <td></td>
@@ -235,19 +316,10 @@ Private Attributes</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Constructor used for forwarding. </p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">arg</td><td>is a string holding an error message </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">node</td><td>holds the current BabNode </td></tr>
-  </table>
-  </dd>
-</dl>
-
 </div>
 </div>
-<a id="afc29a64faad1be34d8b70205b3391910"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#afc29a64faad1be34d8b70205b3391910">&#9670;&nbsp;</a></span>MAiNGOException() <span class="overload">[4/6]</span></h2>
+<a id="a457b8be0f33fcfeb9ab096345e60b75c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a457b8be0f33fcfeb9ab096345e60b75c">&#9670;&nbsp;</a></span>MAiNGOException() <span class="overload">[6/7]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -259,13 +331,13 @@ Private Attributes</h2></td></tr>
           <td class="memname">maingo::MAiNGOException::MAiNGOException </td>
           <td>(</td>
           <td class="paramtype">const std::string &amp;&#160;</td>
-          <td class="paramname"><em>arg</em>, </td>
+          <td class="paramname"><em>errorMessage</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
           <td class="paramtype">const std::exception &amp;&#160;</td>
-          <td class="paramname"><em>e</em>&#160;</td>
+          <td class="paramname"><em>originalException</em>&#160;</td>
         </tr>
         <tr>
           <td></td>
@@ -280,19 +352,10 @@ Private Attributes</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Constructor used for forwarding. </p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">arg</td><td>is a string holding an error message </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">e</td><td>holds the exception </td></tr>
-  </table>
-  </dd>
-</dl>
-
 </div>
 </div>
-<a id="a2486a525e721a25110fc12c5224c1f10"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a2486a525e721a25110fc12c5224c1f10">&#9670;&nbsp;</a></span>MAiNGOException() <span class="overload">[5/6]</span></h2>
+<a id="af37f598a1339901938a6bbf3b67a3247"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af37f598a1339901938a6bbf3b67a3247">&#9670;&nbsp;</a></span>MAiNGOException() <span class="overload">[7/7]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -304,19 +367,19 @@ Private Attributes</h2></td></tr>
           <td class="memname">maingo::MAiNGOException::MAiNGOException </td>
           <td>(</td>
           <td class="paramtype">const std::string &amp;&#160;</td>
-          <td class="paramname"><em>arg</em>, </td>
+          <td class="paramname"><em>errorMessage</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
           <td class="paramtype">const std::exception &amp;&#160;</td>
-          <td class="paramname"><em>e</em>, </td>
+          <td class="paramname"><em>originalException</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
           <td class="paramtype">const <a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;&#160;</td>
-          <td class="paramname"><em>node</em>&#160;</td>
+          <td class="paramname"><em>nodeThatErrorOccurredIn</em>&#160;</td>
         </tr>
         <tr>
           <td></td>
@@ -331,20 +394,47 @@ Private Attributes</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Constructor used for forwarding. </p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">arg</td><td>is a string holding an error message </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">e</td><td>holds the exception </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">node</td><td>holds the current BabNode </td></tr>
-  </table>
-  </dd>
-</dl>
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a978212ab50e44b92bc27cb853df35733"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a978212ab50e44b92bc27cb853df35733">&#9670;&nbsp;</a></span>_append_current_error_message_to_message()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void maingo::MAiNGOException::_append_current_error_message_to_message </td>
+          <td>(</td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>currentErrorMessage</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">std::ostringstream &amp;&#160;</td>
+          <td class="paramname"><em>completeErrorMessage</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
 
 </div>
 </div>
-<a id="a21341b7dfc5884b912383906b5f9828c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a21341b7dfc5884b912383906b5f9828c">&#9670;&nbsp;</a></span>MAiNGOException() <span class="overload">[6/6]</span></h2>
+<a id="a78cc259eb3c775814b2214262f026b8a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a78cc259eb3c775814b2214262f026b8a">&#9670;&nbsp;</a></span>_append_node_info_to_message()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -353,22 +443,94 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">maingo::MAiNGOException::MAiNGOException </td>
+          <td class="memname">void maingo::MAiNGOException::_append_node_info_to_message </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> *&#160;</td>
+          <td class="paramname"><em>nodeThatErrorOccurredIn</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">std::ostringstream &amp;&#160;</td>
+          <td class="paramname"><em>completeErrorMessage</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a9cd783e2e9ac6fcaf813bd8f94f2300d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9cd783e2e9ac6fcaf813bd8f94f2300d">&#9670;&nbsp;</a></span>_append_original_exception_info_to_message()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void maingo::MAiNGOException::_append_original_exception_info_to_message </td>
+          <td>(</td>
+          <td class="paramtype">const std::exception *&#160;</td>
+          <td class="paramname"><em>originalException</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">std::ostringstream &amp;&#160;</td>
+          <td class="paramname"><em>completeErrorMessage</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a5cc5c15e7cb9d14f7877731fabb46189"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5cc5c15e7cb9d14f7877731fabb46189">&#9670;&nbsp;</a></span>_construct_complete_error_message()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void maingo::MAiNGOException::_construct_complete_error_message </td>
           <td>(</td>
           <td class="paramtype">const std::string &amp;&#160;</td>
-          <td class="paramname"><em>arg</em>, </td>
+          <td class="paramname"><em>errorMessage</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
           <td class="paramtype">const std::exception *&#160;</td>
-          <td class="paramname"><em>e</em>, </td>
+          <td class="paramname"><em>originalException</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
           <td class="paramtype">const <a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> *&#160;</td>
-          <td class="paramname"><em>node</em>&#160;</td>
+          <td class="paramname"><em>nodeThatErrorOccurredIn</em>&#160;</td>
         </tr>
         <tr>
           <td></td>
@@ -378,26 +540,67 @@ Private Attributes</h2></td></tr>
       </table>
   </td>
   <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="aa38305aacfa2e2ebce4c5067dee75df9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa38305aacfa2e2ebce4c5067dee75df9">&#9670;&nbsp;</a></span>operator=() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>&amp; maingo::MAiNGOException::operator= </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a> &amp;&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">default</span></span>  </td>
   </tr>
 </table>
 </div><div class="memdoc">
 
-<p>Constructor used printing a <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> Exception. </p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">arg</td><td>is a string holding an error message </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">e</td><td>holds the exception </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">node</td><td>holds the current BabNode </td></tr>
-  </table>
-  </dd>
-</dl>
+</div>
+</div>
+<a id="a781b7f59163bbc21dd5d3485f73f157a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a781b7f59163bbc21dd5d3485f73f157a">&#9670;&nbsp;</a></span>operator=() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>&amp; maingo::MAiNGOException::operator= </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a> &amp;&amp;&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">default</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
 
 </div>
 </div>
-<h2 class="groupheader">Member Function Documentation</h2>
-<a id="a382a9c1299485b028ea4a82afe5c1952"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a382a9c1299485b028ea4a82afe5c1952">&#9670;&nbsp;</a></span>what()</h2>
+<a id="a07682a0877265a921df4401bb1dbb3f6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a07682a0877265a921df4401bb1dbb3f6">&#9670;&nbsp;</a></span>what()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -414,19 +617,16 @@ Private Attributes</h2></td></tr>
       </table>
   </td>
   <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">noexcept</span></span>  </td>
   </tr>
 </table>
 </div><div class="memdoc">
 
-<p>Function to return the error message. </p>
-<dl class="section return"><dt>Returns</dt><dd>Error message. </dd></dl>
-
 </div>
 </div>
 <h2 class="groupheader">Member Data Documentation</h2>
-<a id="a9e405ac624e18ae108f3474e4c8284d4"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a9e405ac624e18ae108f3474e4c8284d4">&#9670;&nbsp;</a></span>_msg</h2>
+<a id="ac3cd87bc11baff35170096a9a4fd8007"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac3cd87bc11baff35170096a9a4fd8007">&#9670;&nbsp;</a></span>_errorMessage</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -435,7 +635,7 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">std::string maingo::MAiNGOException::_msg {&quot;&quot;}</td>
+          <td class="memname">std::string maingo::MAiNGOException::_errorMessage {&quot;&quot;}</td>
         </tr>
       </table>
   </td>
@@ -444,12 +644,11 @@ Private Attributes</h2></td></tr>
   </tr>
 </table>
 </div><div class="memdoc">
-<p>string holding the exception message </p>
 
 </div>
 </div>
 <hr/>The documentation for this class was generated from the following file:<ul>
-<li>C:/Users/dobo01/maingo/inc/<a class="el" href="exceptions_8h_source.html">exceptions.h</a></li>
+<li>C:/dobo01/maingo/inc/<a class="el" href="_m_ai_n_g_o_exception_8h_source.html">MAiNGOException.h</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -459,7 +658,7 @@ Private Attributes</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1_m_ai_n_g_o_exception.js b/doc/html/classmaingo_1_1_m_ai_n_g_o_exception.js
index e2573e1b4e42ce0752f8aa1c4369e1b8cb58def5..e8a12340ed7c97f82190f2e4920757c4a6823f68 100644
--- a/doc/html/classmaingo_1_1_m_ai_n_g_o_exception.js
+++ b/doc/html/classmaingo_1_1_m_ai_n_g_o_exception.js
@@ -1,11 +1,19 @@
 var classmaingo_1_1_m_ai_n_g_o_exception =
 [
-    [ "MAiNGOException", "classmaingo_1_1_m_ai_n_g_o_exception.html#a8c2f79d79aaa741fa4c0f5d7b5148a92", null ],
-    [ "MAiNGOException", "classmaingo_1_1_m_ai_n_g_o_exception.html#ab39f701c53e41a4c7f43ef44e8c275d8", null ],
-    [ "MAiNGOException", "classmaingo_1_1_m_ai_n_g_o_exception.html#afe2216a07a8ecaf41c1c4b8b10e1ec35", null ],
-    [ "MAiNGOException", "classmaingo_1_1_m_ai_n_g_o_exception.html#afc29a64faad1be34d8b70205b3391910", null ],
-    [ "MAiNGOException", "classmaingo_1_1_m_ai_n_g_o_exception.html#a2486a525e721a25110fc12c5224c1f10", null ],
-    [ "MAiNGOException", "classmaingo_1_1_m_ai_n_g_o_exception.html#a21341b7dfc5884b912383906b5f9828c", null ],
-    [ "what", "classmaingo_1_1_m_ai_n_g_o_exception.html#a382a9c1299485b028ea4a82afe5c1952", null ],
-    [ "_msg", "classmaingo_1_1_m_ai_n_g_o_exception.html#a9e405ac624e18ae108f3474e4c8284d4", null ]
+    [ "MAiNGOException", "classmaingo_1_1_m_ai_n_g_o_exception.html#ae27b9410e3135e7784dae78c11e682f6", null ],
+    [ "MAiNGOException", "classmaingo_1_1_m_ai_n_g_o_exception.html#aa5597f9379d8be919d8b4ae58030fac4", null ],
+    [ "MAiNGOException", "classmaingo_1_1_m_ai_n_g_o_exception.html#aa5c3aeb963e328dedab7bf51e953f863", null ],
+    [ "~MAiNGOException", "classmaingo_1_1_m_ai_n_g_o_exception.html#a2bddf4891f256ffd2f7395626412568a", null ],
+    [ "MAiNGOException", "classmaingo_1_1_m_ai_n_g_o_exception.html#a61855f24f971602b43e26c16b0593e4f", null ],
+    [ "MAiNGOException", "classmaingo_1_1_m_ai_n_g_o_exception.html#a6f3fb2a660e871f2949a18b4a6986019", null ],
+    [ "MAiNGOException", "classmaingo_1_1_m_ai_n_g_o_exception.html#a457b8be0f33fcfeb9ab096345e60b75c", null ],
+    [ "MAiNGOException", "classmaingo_1_1_m_ai_n_g_o_exception.html#af37f598a1339901938a6bbf3b67a3247", null ],
+    [ "_append_current_error_message_to_message", "classmaingo_1_1_m_ai_n_g_o_exception.html#a978212ab50e44b92bc27cb853df35733", null ],
+    [ "_append_node_info_to_message", "classmaingo_1_1_m_ai_n_g_o_exception.html#a78cc259eb3c775814b2214262f026b8a", null ],
+    [ "_append_original_exception_info_to_message", "classmaingo_1_1_m_ai_n_g_o_exception.html#a9cd783e2e9ac6fcaf813bd8f94f2300d", null ],
+    [ "_construct_complete_error_message", "classmaingo_1_1_m_ai_n_g_o_exception.html#a5cc5c15e7cb9d14f7877731fabb46189", null ],
+    [ "operator=", "classmaingo_1_1_m_ai_n_g_o_exception.html#aa38305aacfa2e2ebce4c5067dee75df9", null ],
+    [ "operator=", "classmaingo_1_1_m_ai_n_g_o_exception.html#a781b7f59163bbc21dd5d3485f73f157a", null ],
+    [ "what", "classmaingo_1_1_m_ai_n_g_o_exception.html#a07682a0877265a921df4401bb1dbb3f6", null ],
+    [ "_errorMessage", "classmaingo_1_1_m_ai_n_g_o_exception.html#ac3cd87bc11baff35170096a9a4fd8007", null ]
 ];
\ No newline at end of file
diff --git a/doc/html/classmaingo_1_1_m_ai_n_g_omodel-members.html b/doc/html/classmaingo_1_1_m_ai_n_g_omodel-members.html
index cd7667c649ce77653e24d73c687264be2e6b12e7..4130f27d7191a449bc78fe36b0b6ba734832f902 100644
--- a/doc/html/classmaingo_1_1_m_ai_n_g_omodel-members.html
+++ b/doc/html/classmaingo_1_1_m_ai_n_g_omodel-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -105,7 +105,7 @@ $(document).ready(function(){initNavTree('classmaingo_1_1_m_ai_n_g_omodel.html',
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1_m_ai_n_g_omodel.html b/doc/html/classmaingo_1_1_m_ai_n_g_omodel.html
index bb6c70d1a06b51d25a3647a06a15a825c20238ec..d76951c101bcec9eae6b2794f5f790dfad565fbd 100644
--- a/doc/html/classmaingo_1_1_m_ai_n_g_omodel.html
+++ b/doc/html/classmaingo_1_1_m_ai_n_g_omodel.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::MAiNGOmodel Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -105,10 +105,11 @@ Inheritance diagram for maingo::MAiNGOmodel:</div>
  <div class="center">
   <img src="classmaingo_1_1_m_ai_n_g_omodel.png" usemap="#maingo::MAiNGOmodel_map" alt=""/>
   <map id="maingo::MAiNGOmodel_map" name="maingo::MAiNGOmodel_map">
-<area href="classmaingo_1_1_ale_model.html" title="This class provides the interface for a program composed of ALE expressions." alt="maingo::AleModel" shape="rect" coords="0,56,186,80"/>
-<area href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html" title="This class is the base class for implementing bi-objective problems." alt="maingo::MAiNGOmodelEpsCon" shape="rect" coords="196,56,382,80"/>
-  </map>
-</div></div>
+<area href="classmaingo_1_1_ale_model.html" title="This class provides the interface for a program composed of ALE expressions. " alt="maingo::AleModel" shape="rect" coords="0,56,186,80"/>
+<area href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html" title="This class is the base class for implementing bi-objective problems. " alt="maingo::MAiNGOmodelEpsCon" shape="rect" coords="196,56,382,80"/>
+<area href="class_py_m_ai_n_g_omodel.html" alt="PyMAiNGOmodel" shape="rect" coords="392,56,578,80"/>
+</map>
+ </div></div>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
 Public Types</h2></td></tr>
@@ -210,7 +211,7 @@ Public Member Functions</h2></td></tr>
   </dd>
 </dl>
 
-<p>Implemented in <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#aa52fe81513f6d8f35020b3c492a5837d">maingo::MAiNGOmodelEpsCon</a>, and <a class="el" href="classmaingo_1_1_ale_model.html#a3ef454e2c543640ff4f77217396019f2">maingo::AleModel</a>.</p>
+<p>Implemented in <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#aa52fe81513f6d8f35020b3c492a5837d">maingo::MAiNGOmodelEpsCon</a>, <a class="el" href="class_py_m_ai_n_g_omodel.html#abdc36fa738c77f0e2c35f009ae35852b">PyMAiNGOmodel</a>, and <a class="el" href="classmaingo_1_1_ale_model.html#a3ef454e2c543640ff4f77217396019f2">maingo::AleModel</a>.</p>
 
 </div>
 </div>
@@ -239,7 +240,7 @@ Public Member Functions</h2></td></tr>
 
 <p>Virtual function which has to be implemented by the user in order to enable getting data on the initial point. </p>
 
-<p>Reimplemented in <a class="el" href="classmaingo_1_1_ale_model.html#ad16d625c2b0ab88cdf8c200680477510">maingo::AleModel</a>, and <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#af97462f303e12760d3bff115983515d4">maingo::MAiNGOmodelEpsCon</a>.</p>
+<p>Reimplemented in <a class="el" href="classmaingo_1_1_ale_model.html#ad16d625c2b0ab88cdf8c200680477510">maingo::AleModel</a>, <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#af97462f303e12760d3bff115983515d4">maingo::MAiNGOmodelEpsCon</a>, and <a class="el" href="class_py_m_ai_n_g_omodel.html#adf3fcc040878469f11236e47066fc923">PyMAiNGOmodel</a>.</p>
 
 </div>
 </div>
@@ -268,12 +269,12 @@ Public Member Functions</h2></td></tr>
 
 <p>Virtual function which has to be implemented by the user in order to enable getting data on optimization variables. </p>
 
-<p>Implemented in <a class="el" href="classmaingo_1_1_ale_model.html#a9d29639440ec6fae90238a0a6d32ab53">maingo::AleModel</a>, and <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a5829ce6c25e38821c747faf90c5ffbbe">maingo::MAiNGOmodelEpsCon</a>.</p>
+<p>Implemented in <a class="el" href="classmaingo_1_1_ale_model.html#a9d29639440ec6fae90238a0a6d32ab53">maingo::AleModel</a>, <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a5829ce6c25e38821c747faf90c5ffbbe">maingo::MAiNGOmodelEpsCon</a>, and <a class="el" href="class_py_m_ai_n_g_omodel.html#aa21e4c1906ec1a7b299de5f30e43a182">PyMAiNGOmodel</a>.</p>
 
 </div>
 </div>
 <hr/>The documentation for this class was generated from the following file:<ul>
-<li>C:/Users/dobo01/maingo/inc/<a class="el" href="_m_ai_n_g_omodel_8h_source.html">MAiNGOmodel.h</a></li>
+<li>C:/dobo01/maingo/inc/<a class="el" href="_m_ai_n_g_omodel_8h_source.html">MAiNGOmodel.h</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -283,7 +284,7 @@ Public Member Functions</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html">MAiNGOmodel</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1_m_ai_n_g_omodel.png b/doc/html/classmaingo_1_1_m_ai_n_g_omodel.png
index 0fb1d93c2b8fd940846f06ea19a71969ca5b50a9..f1295f0111501e7d66c3604dc5c3f671152c5401 100644
Binary files a/doc/html/classmaingo_1_1_m_ai_n_g_omodel.png and b/doc/html/classmaingo_1_1_m_ai_n_g_omodel.png differ
diff --git a/doc/html/classmaingo_1_1_m_ai_n_g_omodel_eps_con-members.html b/doc/html/classmaingo_1_1_m_ai_n_g_omodel_eps_con-members.html
index 037f4e5e632f7ca836750278f942a594c219173e..779658a591863a5dac2e8f6ed18d46974e70e8e2 100644
--- a/doc/html/classmaingo_1_1_m_ai_n_g_omodel_eps_con-members.html
+++ b/doc/html/classmaingo_1_1_m_ai_n_g_omodel_eps_con-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -113,7 +113,7 @@ $(document).ready(function(){initNavTree('classmaingo_1_1_m_ai_n_g_omodel_eps_co
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1_m_ai_n_g_omodel_eps_con.html b/doc/html/classmaingo_1_1_m_ai_n_g_omodel_eps_con.html
index e7282e929ccddd82caad2593029028c52cc2d7b5..fb5aa621003cfbddbc8f3c3c21b56d11a303c7ae 100644
--- a/doc/html/classmaingo_1_1_m_ai_n_g_omodel_eps_con.html
+++ b/doc/html/classmaingo_1_1_m_ai_n_g_omodel_eps_con.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::MAiNGOmodelEpsCon Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -105,9 +105,9 @@ Inheritance diagram for maingo::MAiNGOmodelEpsCon:</div>
  <div class="center">
   <img src="classmaingo_1_1_m_ai_n_g_omodel_eps_con.png" usemap="#maingo::MAiNGOmodelEpsCon_map" alt=""/>
   <map id="maingo::MAiNGOmodelEpsCon_map" name="maingo::MAiNGOmodelEpsCon_map">
-<area href="classmaingo_1_1_m_ai_n_g_omodel.html" title="This class is the base class for models to be solved by MAiNGO." alt="maingo::MAiNGOmodel" shape="rect" coords="0,0,186,24"/>
-  </map>
-</div></div>
+<area href="classmaingo_1_1_m_ai_n_g_omodel.html" title="This class is the base class for models to be solved by MAiNGO. " alt="maingo::MAiNGOmodel" shape="rect" coords="0,0,186,24"/>
+</map>
+ </div></div>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
@@ -488,8 +488,8 @@ Additional Inherited Members</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this class was generated from the following files:<ul>
-<li>C:/Users/dobo01/maingo/inc/<a class="el" href="_m_ai_n_g_omodel_eps_con_8h_source.html">MAiNGOmodelEpsCon.h</a></li>
-<li>C:/Users/dobo01/maingo/src/<a class="el" href="_m_ai_n_g_omodel_eps_con_8cpp.html">MAiNGOmodelEpsCon.cpp</a></li>
+<li>C:/dobo01/maingo/inc/<a class="el" href="_m_ai_n_g_omodel_eps_con_8h_source.html">MAiNGOmodelEpsCon.h</a></li>
+<li>C:/dobo01/maingo/src/<a class="el" href="_m_ai_n_g_omodel_eps_con_8cpp.html">MAiNGOmodelEpsCon.cpp</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -499,7 +499,7 @@ Additional Inherited Members</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html">MAiNGOmodelEpsCon</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1_maingo_evaluator-members.html b/doc/html/classmaingo_1_1_maingo_evaluator-members.html
index eb8335dd05e9a07bf1f827751b157a4b14f3db61..2b233ad8679f05257e3c3fd121ad2dc71f0ce293 100644
--- a/doc/html/classmaingo_1_1_maingo_evaluator-members.html
+++ b/doc/html/classmaingo_1_1_maingo_evaluator-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -220,7 +220,7 @@ $(document).ready(function(){initNavTree('classmaingo_1_1_maingo_evaluator.html'
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1_maingo_evaluator.html b/doc/html/classmaingo_1_1_maingo_evaluator.html
index f0c5bbb766eb84e1ee331b09d664a2c955adbc03..1b9611b86a33f7087bb99899379b739d7d8bdf42 100644
--- a/doc/html/classmaingo_1_1_maingo_evaluator.html
+++ b/doc/html/classmaingo_1_1_maingo_evaluator.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::MaingoEvaluator Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -3534,7 +3534,7 @@ template&lt;typename TType &gt; </div>
 </div>
 </div>
 <hr/>The documentation for this class was generated from the following file:<ul>
-<li>C:/Users/dobo01/maingo/inc/<a class="el" href="_m_ai_n_g_oevaluator_8h_source.html">MAiNGOevaluator.h</a></li>
+<li>C:/dobo01/maingo/inc/<a class="el" href="_m_ai_n_g_oevaluator_8h_source.html">MAiNGOevaluator.h</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -3544,7 +3544,7 @@ template&lt;typename TType &gt; </div>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="classmaingo_1_1_maingo_evaluator.html">MaingoEvaluator</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1_program_parser-members.html b/doc/html/classmaingo_1_1_program_parser-members.html
index 3633a04fc29b9f48e6a7e1b30be4757ea7af9816..6ac525f3ed3b891c9d3433e19b4448938c153a55 100644
--- a/doc/html/classmaingo_1_1_program_parser-members.html
+++ b/doc/html/classmaingo_1_1_program_parser-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -109,7 +109,7 @@ $(document).ready(function(){initNavTree('classmaingo_1_1_program_parser.html','
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1_program_parser.html b/doc/html/classmaingo_1_1_program_parser.html
index de950df3f32873e3ea2926510a3927e8d7a4d643..04e7aa5509ed334c4d7a3be6ab60041d5e885d4b 100644
--- a/doc/html/classmaingo_1_1_program_parser.html
+++ b/doc/html/classmaingo_1_1_program_parser.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::ProgramParser Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -95,7 +95,7 @@ $(document).ready(function(){initNavTree('classmaingo_1_1_program_parser.html','
 </div><!--header-->
 <div class="contents">
 
-<p>Parser specialization for parsing a <a class="el" href="structmaingo_1_1_program.html" title="Container Class for ALE expressions comprising an optimization problem.">maingo::Program</a>.  
+<p>Parser specialization for parsing a <a class="el" href="structmaingo_1_1_program.html" title="Container Class for ALE expressions comprising an optimization problem. ">maingo::Program</a>.  
  <a href="classmaingo_1_1_program_parser.html#details">More...</a></p>
 
 <p><code>#include &lt;<a class="el" href="program_parser_8h_source.html">programParser.h</a>&gt;</code></p>
@@ -103,7 +103,9 @@ $(document).ready(function(){initNavTree('classmaingo_1_1_program_parser.html','
 Inheritance diagram for maingo::ProgramParser:</div>
 <div class="dyncontent">
  <div class="center">
-  <img src="classmaingo_1_1_program_parser.png" alt=""/>
+  <img src="classmaingo_1_1_program_parser.png" usemap="#maingo::ProgramParser_map" alt=""/>
+  <map id="maingo::ProgramParser_map" name="maingo::ProgramParser_map">
+</map>
  </div></div>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
@@ -131,7 +133,7 @@ Private Member Functions</h2></td></tr>
 <tr class="separator:af10f0318985e4aee4fb7da75614daad8"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Parser specialization for parsing a <a class="el" href="structmaingo_1_1_program.html" title="Container Class for ALE expressions comprising an optimization problem.">maingo::Program</a>. </p>
+<div class="textblock"><p>Parser specialization for parsing a <a class="el" href="structmaingo_1_1_program.html" title="Container Class for ALE expressions comprising an optimization problem. ">maingo::Program</a>. </p>
 </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
 <a id="a63f53f3900dc996ca94137a017805f63"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#a63f53f3900dc996ca94137a017805f63">&#9670;&nbsp;</a></span>ProgramParser()</h2>
@@ -178,7 +180,7 @@ Private Member Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>Function to parse the input to <a class="el" href="structmaingo_1_1_program.html" title="Container Class for ALE expressions comprising an optimization problem.">maingo::Program</a> </p>
+<p>Function to parse the input to <a class="el" href="structmaingo_1_1_program.html" title="Container Class for ALE expressions comprising an optimization problem. ">maingo::Program</a> </p>
 
 </div>
 </div>
@@ -370,8 +372,8 @@ Private Member Functions</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this class was generated from the following files:<ul>
-<li>C:/Users/dobo01/maingo/inc/<a class="el" href="program_parser_8h_source.html">programParser.h</a></li>
-<li>C:/Users/dobo01/maingo/src/<a class="el" href="program_parser_8cpp.html">programParser.cpp</a></li>
+<li>C:/dobo01/maingo/inc/<a class="el" href="program_parser_8h_source.html">programParser.h</a></li>
+<li>C:/dobo01/maingo/src/<a class="el" href="program_parser_8cpp.html">programParser.cpp</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -381,7 +383,7 @@ Private Member Functions</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="classmaingo_1_1_program_parser.html">ProgramParser</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1_variable_lister-members.html b/doc/html/classmaingo_1_1_variable_lister-members.html
index 9b99cb42e5070955cfbcbcb653e250999272befb..291b58294a9eeaa0c89cc8e07076df714ae96fc4 100644
--- a/doc/html/classmaingo_1_1_variable_lister-members.html
+++ b/doc/html/classmaingo_1_1_variable_lister-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -111,7 +111,7 @@ $(document).ready(function(){initNavTree('classmaingo_1_1_variable_lister.html',
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1_variable_lister.html b/doc/html/classmaingo_1_1_variable_lister.html
index a8cb3236980a03298724bff32d7e701e9f63975e..65c5fa9b92ded3f6f023d3b2864ba201b0771a3f 100644
--- a/doc/html/classmaingo_1_1_variable_lister.html
+++ b/doc/html/classmaingo_1_1_variable_lister.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::VariableLister Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -465,7 +465,7 @@ template&lt;unsigned IDim&gt; </div>
 </div>
 </div>
 <hr/>The documentation for this class was generated from the following file:<ul>
-<li>C:/Users/dobo01/maingo/inc/<a class="el" href="variable_lister_8h_source.html">variableLister.h</a></li>
+<li>C:/dobo01/maingo/inc/<a class="el" href="variable_lister_8h_source.html">variableLister.h</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -475,7 +475,7 @@ template&lt;unsigned IDim&gt; </div>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="classmaingo_1_1_variable_lister.html">VariableLister</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1bab_1_1_branch_and_bound-members.html b/doc/html/classmaingo_1_1bab_1_1_branch_and_bound-members.html
index 000631dac68890b46da2c541ccc6ac1b2e2d662a..fd064d637b3c38263260535a47a544f71695ba58 100644
--- a/doc/html/classmaingo_1_1bab_1_1_branch_and_bound-members.html
+++ b/doc/html/classmaingo_1_1bab_1_1_branch_and_bound-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -94,102 +94,73 @@ $(document).ready(function(){initNavTree('classmaingo_1_1bab_1_1_branch_and_boun
 <p>This is the complete list of members for <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a>, including all inherited members.</p>
 <table class="directory">
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a8855b78bf4580af1d40f463eb88f9883">_bestLbdFathomed</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a88d35fc68351774dadb831c38ffd93ee">_brancher</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ae1454635b53b98cc4e395fd3ed7faca0">_brancher</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ad5e5e8e1a0f2a3dda0a6deac59409fd6">_check_if_more_scaling_needed</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a60c5f5d7ae8fab91f990846207e88144">_check_if_more_scaling_needed</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a535696550d694df9bc017ef6cd144a58">_check_termination</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a18cf39c5def55fea60f33438b77fece2">_check_termination</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a535696550d694df9bc017ef6cd144a58">_check_termination</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ab0c17e7072887baa0bf2377a7be7a4bc">_daysPassed</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ad2b56f40c7255d731c196b1661cee2d4">_display_and_log_progress</a>(const double currentNodeLBD, const babBase::BabNode &amp;currentNode)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#af04b0ab5a5979ba684b4edf2a223d5ec">_display_and_log_progress</a>(const double currentNodeLBD, const babBase::BabNode &amp;currentNode)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a88880806d0ddfe42862a876ca961cbf6">_firstFound</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aa52c4379706307b5d5834a702d824854">_foundFeas</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ac3e65fd10f0294c31f8428330e517f85">_incumbent</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a2defed7ca937feacb124cc97b8f7915f">_incumbentNodeId</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#acc2f5918ff76d313d9f0d9eae3c749cd">_initialPoint</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a3b90d97c448a84541e48eeb4388358a9">_iterations</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a4d1d7552bc0294281b7453a757a5b1c4">_iterationsgap</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a7329b6c29c7a8686f7b417f3cfe93026">_lbd</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a278e8c37f4d71abed1e0cb62b6366e5e">_lbdcnt</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a67bce3a5b8585ec930b305d9a77a3d47">_lbdNotChanged</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#adaeb5fb5c51be07833bf51f921ce2e65">_lbdOld</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a16bbea3c96042145acc5df3830cd72b4">_LBS</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a46473e89580e44ef3576e9040e469478">_linesprinted</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aaf1e5ea028afe7d2700a6cc573d67674">_logger</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a0a241298a1b0f9b0707386e9143e0186">_lowerVarBoundsOrig</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#acca388f26f5e0c94b58643b566b8a235">_maingoSettings</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#acc9b140b91203d6ca5d45f84b697be42">_moreScalingActivated</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a10bf89f5a097f9d865ad5546eeee9b40">_nNodesDeleted</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a70df6922540227a62b49549e0d6f9dcf">_nNodesFathomed</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#af0c2fdc294a5197cc5cf2931945f1ec6">_nNodesLeft</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a88be959487932d46d6ff8227bd8f3f5b">_nNodesMaxInMemory</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aa66b24455102ab0550c9ed6c611e88a2">_nNodesTotal</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a244a114749491f6b442fd2563fefbc5e">_NOT_TERMINATED</a> enum value</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aa66393ce301be8002cdea9b1b43aa5b2">_nvar</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a109e3a4afa84d559ec9b88376b0a63b2">_nvarWOaux</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aa47a427d6c433a26a35b5882e54480e4">_originalVariables</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a29001119914eca2657390048e11db609">_postprocess_node</a>(babBase::BabNode &amp;currentNodeInOut, const std::vector&lt; double &gt; &amp;lbpSolutionPoint, const lbp::LbpDualInfo &amp;dualInfo)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aa35b55427764ada3cba0b0a74adafe0e">_postprocess_node</a>(babBase::BabNode &amp;currentNodeInOut, const std::vector&lt; double &gt; &amp;lbpSolutionPoint, const lbp::LbpDualInfo &amp;dualInfo)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a88880806d0ddfe42862a876ca961cbf6">_firstFound</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aa52c4379706307b5d5834a702d824854">_foundFeas</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a2685cdd222deff1b30e3b83c7b4bb259">_incumbent</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a2defed7ca937feacb124cc97b8f7915f">_incumbentNodeId</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a1f509aa5a3de69ff00e8d2c31b654d48">_initialPoint</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a3b90d97c448a84541e48eeb4388358a9">_iterations</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a4d1d7552bc0294281b7453a757a5b1c4">_iterationsgap</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a7329b6c29c7a8686f7b417f3cfe93026">_lbd</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a278e8c37f4d71abed1e0cb62b6366e5e">_lbdcnt</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a67bce3a5b8585ec930b305d9a77a3d47">_lbdNotChanged</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#adaeb5fb5c51be07833bf51f921ce2e65">_lbdOld</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a4a63abd1f85d04b411bd3f46c95c994b">_LBS</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a46473e89580e44ef3576e9040e469478">_linesprinted</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a7bd1a5254c74b3adac3b74712d92257e">_logger</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a9836ba957bbfd2acace285065fe81710">_lowerVarBoundsOrig</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#abb34f49557e1d417e5a87a467cee2ec8">_maingoSettings</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#acc9b140b91203d6ca5d45f84b697be42">_moreScalingActivated</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a10bf89f5a097f9d865ad5546eeee9b40">_nNodesDeleted</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a70df6922540227a62b49549e0d6f9dcf">_nNodesFathomed</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#af0c2fdc294a5197cc5cf2931945f1ec6">_nNodesLeft</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a88be959487932d46d6ff8227bd8f3f5b">_nNodesMaxInMemory</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aa66b24455102ab0550c9ed6c611e88a2">_nNodesTotal</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a4606d4d76cdd55c82480e7e28a65d67a">_NOT_TERMINATED</a> enum value</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aa66393ce301be8002cdea9b1b43aa5b2">_nvar</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a109e3a4afa84d559ec9b88376b0a63b2">_nvarWOaux</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a54fa45d1751c9a81b346bd7cd1f5969c">_originalVariables</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a29001119914eca2657390048e11db609">_postprocess_node</a>(babBase::BabNode &amp;currentNodeInOut, const std::vector&lt; double &gt; &amp;lbpSolutionPoint, const lbp::LbpDualInfo &amp;dualInfo)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a990927b31d0abc3c0df5ab3883c12de1">_preprocess_node</a>(babBase::BabNode &amp;currentNodeInOut)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a6ab1475deadb8906e5d680911e747469">_preprocess_node</a>(babBase::BabNode &amp;currentNodeInOut)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ad1c6f9191a7ab197f5a48ea554594462">_print_one_node</a>(const double theLBD, const int ID, const std::vector&lt; double &gt; lowerVarBounds, const std::vector&lt; double &gt; upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a01acae40320149ecfef11bda53350b3c">_print_one_node</a>(const double theLBD, const int ID, const std::vector&lt; double &gt; lowerVarBounds, const std::vector&lt; double &gt; upperVarBounds, std::ostream &amp;outstream)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a1f542019964ce925a4d19eb951049da7">_print_one_node</a>(const double theLBD, const babBase::BabNode &amp;theNode)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ad301660df21f804bccefa3da694aa743">_print_one_node</a>(const double theLBD, const babBase::BabNode &amp;theNode, std::ostream &amp;outstream)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a3250e84e0547b8de82d91fe929c0e8d9">_print_one_node</a>(const double theLBD, const int ID, const std::vector&lt; double &gt; lowerVarBounds, const std::vector&lt; double &gt; upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a202477d2ba7c16bf7d39dc4f77034c67">_print_one_node</a>(const double theLBD, const int ID, const std::vector&lt; double &gt; lowerVarBounds, const std::vector&lt; double &gt; upperVarBounds, std::ostream &amp;outstream)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a1f542019964ce925a4d19eb951049da7">_print_one_node</a>(const double theLBD, const babBase::BabNode &amp;theNode)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ad301660df21f804bccefa3da694aa743">_print_one_node</a>(const double theLBD, const babBase::BabNode &amp;theNode, std::ostream &amp;outstream)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a80be7a4efd5e0f39765c635d6be13116">_print_termination</a>(std::string message)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a4cab2a79ab0b12b712e7e45852be4a21">_print_termination</a>(std::string message)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ad1c6f9191a7ab197f5a48ea554594462">_print_one_node</a>(const double theLBD, const int ID, const std::vector&lt; double &gt; lowerVarBounds, const std::vector&lt; double &gt; upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a01acae40320149ecfef11bda53350b3c">_print_one_node</a>(const double theLBD, const int ID, const std::vector&lt; double &gt; lowerVarBounds, const std::vector&lt; double &gt; upperVarBounds, std::ostream &amp;outstream)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a1f542019964ce925a4d19eb951049da7">_print_one_node</a>(const double theLBD, const babBase::BabNode &amp;theNode)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ad301660df21f804bccefa3da694aa743">_print_one_node</a>(const double theLBD, const babBase::BabNode &amp;theNode, std::ostream &amp;outstream)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a80be7a4efd5e0f39765c635d6be13116">_print_termination</a>(std::string message)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a733596f5150a34554a2e001bc2a7bd1e">_printNewIncumbent</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a15520696d8e8e38197992c71ffd91c53">_process_node</a>(babBase::BabNode &amp;currentNodeInOut)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a1a78374e95574fbe731cdd0d2dae7b53">_process_node</a>(babBase::BabNode &amp;currentNodeInOut)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a969736750315215126c3bad4b398d2e9">_solve_LBP</a>(const babBase::BabNode &amp;currentNode)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a3d09b996010632d9f782e9d7e5926e80">_solve_LBP</a>(const babBase::BabNode &amp;currentNode)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a969736750315215126c3bad4b398d2e9">_solve_LBP</a>(const babBase::BabNode &amp;currentNode)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#acab7696c07ae41c7a9296c0977359b1e">_solve_UBP</a>(const babBase::BabNode &amp;currentNode, std::vector&lt; double &gt; &amp;ubpSolutionPoint, const double currentLBD)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ab2bb968cb7c8aba14c9d42268fbb63e1">_solve_UBP</a>(const babBase::BabNode &amp;currentNode, std::vector&lt; double &gt; &amp;ubpSolutionPoint, const double currentLBD)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a010075b80170c61b0c30490e64ec979d">_status</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ac0b46b223d15cc2e3851dcaf961b9e7a">_TERMINATED</a> enum value</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ab77e9f73c90db0ea95610d8103738966">_TERMINATED_WORKERS_ACTIVE</a> enum value</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1">_TERMINATION_TYPE</a> enum name</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a010075b80170c61b0c30490e64ec979d">_status</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a1a904c0cb2e9786677bfd0c13951dec7">_TERMINATED</a> enum value</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a803a5e6c3589e7407f7993fff57c30dd">_TERMINATED_WORKERS_ACTIVE</a> enum value</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1">_TERMINATION_TYPE</a> enum name</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#af4816842caa40287b9fcda0401238236">_timePassed</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a17af9af1c4195bb491a0624d3a4edb36">_timePreprocess</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#adf8377615ee4d86485f589700902126c">_ubd</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a85091bc9965339278cc9c02b2baf354b">_ubdcnt</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#af1853b2ef51e8bddd0a9ab2404340037">_UBS</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aba6e92ef8af1e76b62a543e1334b4948">_UBS</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a13e706473cf2f26ac9b3d20344270aaa">_update_incumbent_and_fathom</a>(const double solval, const std::vector&lt; double &gt; sol, const unsigned int currentNodeID)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a0608306463120a72b9ec32395044470f">_update_incumbent_and_fathom</a>(const double solval, const std::vector&lt; double &gt; sol, const unsigned int currentNodeID)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a5cbefb1e86ca300d67ae3c65eab1099b">_update_lowest_lbd</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ac6de991f9fa810bc93ed5ce47577e210">_update_lowest_lbd</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a5bd0987c7dde438e8d52af87421d78c5">_upperVarBoundsOrig</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a2845411391c8498e7eece2e2e3ba073b">_wallPassed</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a193f594912e00a2c4d8cacfd4efbdfd5">_writeToLogEverySec</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a0795ab80ed85f416a1834c2bc62f2d88">BranchAndBound</a>(const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, std::shared_ptr&lt; lbp::LowerBoundingSolver &gt; LBSIn, std::shared_ptr&lt; ubp::UpperBoundingSolver &gt; UBSIn, Settings *settingsIn, Logger *loggerIn, const unsigned nvarWOaux)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a2d88760ca48bcea923ba4e868d5bdf43">BranchAndBound</a>(const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, std::shared_ptr&lt; lbp::LowerBoundingSolver &gt; LBSIn, std::shared_ptr&lt; ubp::UpperBoundingSolver &gt; UBSIn, Settings *settingsIn, Logger *loggerIn, const unsigned nvarWOaux)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a5cbefb1e86ca300d67ae3c65eab1099b">_update_lowest_lbd</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a6087a84349286d46bfc4a6633f5c881b">_upperVarBoundsOrig</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a193f594912e00a2c4d8cacfd4efbdfd5">_writeToLogEverySec</a></td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ab1e963d56b3adc807decb6e4dc1bee85">BranchAndBound</a>(const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, std::shared_ptr&lt; lbp::LowerBoundingSolver &gt; LBSIn, std::shared_ptr&lt; ubp::UpperBoundingSolver &gt; UBSIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, const unsigned nvarWOaux)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a4b993e6ced9b383b2ec2e3b4e617009a">get_final_abs_gap</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a4b993e6ced9b383b2ec2e3b4e617009a">get_final_abs_gap</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a2a6ba10d4cba3be0656bdc1f434b796d">get_final_LBD</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a2a6ba10d4cba3be0656bdc1f434b796d">get_final_LBD</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a18915a6568908d9aba4e09f1d2d8b23c">get_final_rel_gap</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a18915a6568908d9aba4e09f1d2d8b23c">get_final_rel_gap</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a63faf2c1a9fa6aaa062a271455813c01">get_first_found</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a63faf2c1a9fa6aaa062a271455813c01">get_first_found</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a90cf43573f5755481bdd020dcaa7d351">get_iterations</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a90cf43573f5755481bdd020dcaa7d351">get_iterations</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#af593cef9ed1bcfa512f7302732b9a614">get_LBP_count</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#af593cef9ed1bcfa512f7302732b9a614">get_LBP_count</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a668165551fb2c2cc69a05b1956755147">get_max_nodes_in_memory</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a668165551fb2c2cc69a05b1956755147">get_max_nodes_in_memory</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ae420e5187f1c1595d132a27bdc656529">get_nodes_left</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ae420e5187f1c1595d132a27bdc656529">get_nodes_left</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a3da7e60c4fad8100f38732fc06d2547c">get_UBP_count</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a3da7e60c4fad8100f38732fc06d2547c">get_UBP_count</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#afbbe46b34b476fa5b54c5faa112581b6">solve</a>(babBase::BabNode &amp;rootNodeIn, double &amp;solutionValue, std::vector&lt; double &gt; &amp;solutionPoint, const double preprocessTime, double &amp;timePassed)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a44ead97b56cfae660cbe695ef8dffb38">solve</a>(babBase::BabNode &amp;rootNodeIn, double &amp;solutionValue, std::vector&lt; double &gt; &amp;solutionPoint, const double preprocessTime, double &amp;timePassed)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#afbbe46b34b476fa5b54c5faa112581b6">solve</a>(babBase::BabNode &amp;rootNodeIn, double &amp;solutionValue, std::vector&lt; double &gt; &amp;solutionPoint, const double preprocessTime, double &amp;timePassed)</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a7db5251fcd9ad3ca2892a9b17cb7b197">~BranchAndBound</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a7db5251fcd9ad3ca2892a9b17cb7b197">~BranchAndBound</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">maingo::bab::BranchAndBound</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -197,7 +168,7 @@ $(document).ready(function(){initNavTree('classmaingo_1_1bab_1_1_branch_and_boun
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1bab_1_1_branch_and_bound.html b/doc/html/classmaingo_1_1bab_1_1_branch_and_bound.html
index aa2f1e516881f6b7ae16c19eb3545e8573596ee6..039465574119045c9a071eadbe215db3229f1148 100644
--- a/doc/html/classmaingo_1_1bab_1_1_branch_and_bound.html
+++ b/doc/html/classmaingo_1_1bab_1_1_branch_and_bound.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::bab::BranchAndBound Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -104,9 +104,9 @@ $(document).ready(function(){initNavTree('classmaingo_1_1bab_1_1_branch_and_boun
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:a0795ab80ed85f416a1834c2bc62f2d88"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a0795ab80ed85f416a1834c2bc62f2d88">BranchAndBound</a> (const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, std::shared_ptr&lt; <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">lbp::LowerBoundingSolver</a> &gt; LBSIn, std::shared_ptr&lt; <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">ubp::UpperBoundingSolver</a> &gt; UBSIn, <a class="el" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="el" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn, const unsigned nvarWOaux)</td></tr>
-<tr class="memdesc:a0795ab80ed85f416a1834c2bc62f2d88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on problem and settings.  <a href="#a0795ab80ed85f416a1834c2bc62f2d88">More...</a><br /></td></tr>
-<tr class="separator:a0795ab80ed85f416a1834c2bc62f2d88"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab1e963d56b3adc807decb6e4dc1bee85"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ab1e963d56b3adc807decb6e4dc1bee85">BranchAndBound</a> (const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, std::shared_ptr&lt; <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">lbp::LowerBoundingSolver</a> &gt; LBSIn, std::shared_ptr&lt; <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">ubp::UpperBoundingSolver</a> &gt; UBSIn, std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt; settingsIn, std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt; loggerIn, const unsigned nvarWOaux)</td></tr>
+<tr class="memdesc:ab1e963d56b3adc807decb6e4dc1bee85"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on problem and settings.  <a href="#ab1e963d56b3adc807decb6e4dc1bee85">More...</a><br /></td></tr>
+<tr class="separator:ab1e963d56b3adc807decb6e4dc1bee85"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a7db5251fcd9ad3ca2892a9b17cb7b197"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a7db5251fcd9ad3ca2892a9b17cb7b197">~BranchAndBound</a> ()</td></tr>
 <tr class="memdesc:a7db5251fcd9ad3ca2892a9b17cb7b197"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#a7db5251fcd9ad3ca2892a9b17cb7b197">More...</a><br /></td></tr>
 <tr class="separator:a7db5251fcd9ad3ca2892a9b17cb7b197"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -140,68 +140,15 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:ae420e5187f1c1595d132a27bdc656529"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ae420e5187f1c1595d132a27bdc656529">get_nodes_left</a> ()</td></tr>
 <tr class="memdesc:ae420e5187f1c1595d132a27bdc656529"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function returning the number of nodes left after termination of B&amp;B.  <a href="#ae420e5187f1c1595d132a27bdc656529">More...</a><br /></td></tr>
 <tr class="separator:ae420e5187f1c1595d132a27bdc656529"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2d88760ca48bcea923ba4e868d5bdf43"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a2d88760ca48bcea923ba4e868d5bdf43">BranchAndBound</a> (const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, std::shared_ptr&lt; <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">lbp::LowerBoundingSolver</a> &gt; LBSIn, std::shared_ptr&lt; <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">ubp::UpperBoundingSolver</a> &gt; UBSIn, <a class="el" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="el" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn, const unsigned nvarWOaux)</td></tr>
-<tr class="memdesc:a2d88760ca48bcea923ba4e868d5bdf43"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on problem and settings.  <a href="#a2d88760ca48bcea923ba4e868d5bdf43">More...</a><br /></td></tr>
-<tr class="separator:a2d88760ca48bcea923ba4e868d5bdf43"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7db5251fcd9ad3ca2892a9b17cb7b197"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a7db5251fcd9ad3ca2892a9b17cb7b197">~BranchAndBound</a> ()</td></tr>
-<tr class="memdesc:a7db5251fcd9ad3ca2892a9b17cb7b197"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#a7db5251fcd9ad3ca2892a9b17cb7b197">More...</a><br /></td></tr>
-<tr class="separator:a7db5251fcd9ad3ca2892a9b17cb7b197"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a44ead97b56cfae660cbe695ef8dffb38"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2">babBase::enums::BAB_RETCODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a44ead97b56cfae660cbe695ef8dffb38">solve</a> (<a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;rootNodeIn, double &amp;solutionValue, std::vector&lt; double &gt; &amp;solutionPoint, const double preprocessTime, double &amp;timePassed)</td></tr>
-<tr class="memdesc:a44ead97b56cfae660cbe695ef8dffb38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Main function to solve the optimization problem.  <a href="#a44ead97b56cfae660cbe695ef8dffb38">More...</a><br /></td></tr>
-<tr class="separator:a44ead97b56cfae660cbe695ef8dffb38"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a90cf43573f5755481bdd020dcaa7d351"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a90cf43573f5755481bdd020dcaa7d351">get_iterations</a> ()</td></tr>
-<tr class="memdesc:a90cf43573f5755481bdd020dcaa7d351"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function returning the number of iterations.  <a href="#a90cf43573f5755481bdd020dcaa7d351">More...</a><br /></td></tr>
-<tr class="separator:a90cf43573f5755481bdd020dcaa7d351"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a668165551fb2c2cc69a05b1956755147"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a668165551fb2c2cc69a05b1956755147">get_max_nodes_in_memory</a> ()</td></tr>
-<tr class="memdesc:a668165551fb2c2cc69a05b1956755147"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function returning the maximum number of nodes in memory.  <a href="#a668165551fb2c2cc69a05b1956755147">More...</a><br /></td></tr>
-<tr class="separator:a668165551fb2c2cc69a05b1956755147"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3da7e60c4fad8100f38732fc06d2547c"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a3da7e60c4fad8100f38732fc06d2547c">get_UBP_count</a> ()</td></tr>
-<tr class="memdesc:a3da7e60c4fad8100f38732fc06d2547c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function returning number of UBD problems solved.  <a href="#a3da7e60c4fad8100f38732fc06d2547c">More...</a><br /></td></tr>
-<tr class="separator:a3da7e60c4fad8100f38732fc06d2547c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af593cef9ed1bcfa512f7302732b9a614"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#af593cef9ed1bcfa512f7302732b9a614">get_LBP_count</a> ()</td></tr>
-<tr class="memdesc:af593cef9ed1bcfa512f7302732b9a614"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function returning number of LBD problems solved.  <a href="#af593cef9ed1bcfa512f7302732b9a614">More...</a><br /></td></tr>
-<tr class="separator:af593cef9ed1bcfa512f7302732b9a614"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2a6ba10d4cba3be0656bdc1f434b796d"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a2a6ba10d4cba3be0656bdc1f434b796d">get_final_LBD</a> ()</td></tr>
-<tr class="memdesc:a2a6ba10d4cba3be0656bdc1f434b796d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function returning the final LBD.  <a href="#a2a6ba10d4cba3be0656bdc1f434b796d">More...</a><br /></td></tr>
-<tr class="separator:a2a6ba10d4cba3be0656bdc1f434b796d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4b993e6ced9b383b2ec2e3b4e617009a"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a4b993e6ced9b383b2ec2e3b4e617009a">get_final_abs_gap</a> ()</td></tr>
-<tr class="memdesc:a4b993e6ced9b383b2ec2e3b4e617009a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function returning the final absolute gap.  <a href="#a4b993e6ced9b383b2ec2e3b4e617009a">More...</a><br /></td></tr>
-<tr class="separator:a4b993e6ced9b383b2ec2e3b4e617009a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a18915a6568908d9aba4e09f1d2d8b23c"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a18915a6568908d9aba4e09f1d2d8b23c">get_final_rel_gap</a> ()</td></tr>
-<tr class="memdesc:a18915a6568908d9aba4e09f1d2d8b23c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function returning the final relative gap.  <a href="#a18915a6568908d9aba4e09f1d2d8b23c">More...</a><br /></td></tr>
-<tr class="separator:a18915a6568908d9aba4e09f1d2d8b23c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a63faf2c1a9fa6aaa062a271455813c01"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a63faf2c1a9fa6aaa062a271455813c01">get_first_found</a> ()</td></tr>
-<tr class="memdesc:a63faf2c1a9fa6aaa062a271455813c01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function returning the ID of the node where the incumbent was first found.  <a href="#a63faf2c1a9fa6aaa062a271455813c01">More...</a><br /></td></tr>
-<tr class="separator:a63faf2c1a9fa6aaa062a271455813c01"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae420e5187f1c1595d132a27bdc656529"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ae420e5187f1c1595d132a27bdc656529">get_nodes_left</a> ()</td></tr>
-<tr class="memdesc:ae420e5187f1c1595d132a27bdc656529"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function returning the number of nodes left after termination of B&amp;B.  <a href="#ae420e5187f1c1595d132a27bdc656529">More...</a><br /></td></tr>
-<tr class="separator:ae420e5187f1c1595d132a27bdc656529"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-types"></a>
 Private Types</h2></td></tr>
-<tr class="memitem:a07ba7b9ae290bc913f2d2ca19c7c49e1"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1">_TERMINATION_TYPE</a> { <br />
-&#160;&#160;<a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ac0b46b223d15cc2e3851dcaf961b9e7a">_TERMINATED</a> = 0, 
-<a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ab77e9f73c90db0ea95610d8103738966">_TERMINATED_WORKERS_ACTIVE</a>, 
-<a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a244a114749491f6b442fd2563fefbc5e">_NOT_TERMINATED</a>, 
-<a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ac0b46b223d15cc2e3851dcaf961b9e7a">_TERMINATED</a> = 0, 
-<br />
-&#160;&#160;<a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ab77e9f73c90db0ea95610d8103738966">_TERMINATED_WORKERS_ACTIVE</a>, 
-<a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a244a114749491f6b442fd2563fefbc5e">_NOT_TERMINATED</a>
-<br />
+<tr class="memitem:a07ba7b9ae290bc913f2d2ca19c7c49e1"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1">_TERMINATION_TYPE</a> { <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a1a904c0cb2e9786677bfd0c13951dec7">_TERMINATED</a> = 0, 
+<a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a803a5e6c3589e7407f7993fff57c30dd">_TERMINATED_WORKERS_ACTIVE</a>, 
+<a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a4606d4d76cdd55c82480e7e28a65d67a">_NOT_TERMINATED</a>
  }</td></tr>
 <tr class="memdesc:a07ba7b9ae290bc913f2d2ca19c7c49e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enum for representing different termination types in B&amp;B.  <a href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1">More...</a><br /></td></tr>
 <tr class="separator:a07ba7b9ae290bc913f2d2ca19c7c49e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a07ba7b9ae290bc913f2d2ca19c7c49e1"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1">_TERMINATION_TYPE</a> { <br />
-&#160;&#160;<a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ac0b46b223d15cc2e3851dcaf961b9e7a">_TERMINATED</a> = 0, 
-<a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ab77e9f73c90db0ea95610d8103738966">_TERMINATED_WORKERS_ACTIVE</a>, 
-<a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a244a114749491f6b442fd2563fefbc5e">_NOT_TERMINATED</a>, 
-<a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ac0b46b223d15cc2e3851dcaf961b9e7a">_TERMINATED</a> = 0, 
-<br />
-&#160;&#160;<a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ab77e9f73c90db0ea95610d8103738966">_TERMINATED_WORKERS_ACTIVE</a>, 
-<a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a244a114749491f6b442fd2563fefbc5e">_NOT_TERMINATED</a>
-<br />
- }</td></tr>
-<tr class="separator:a07ba7b9ae290bc913f2d2ca19c7c49e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
 Private Member Functions</h2></td></tr>
@@ -250,78 +197,33 @@ Private Member Functions</h2></td></tr>
 <tr class="memitem:ad301660df21f804bccefa3da694aa743"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ad301660df21f804bccefa3da694aa743">_print_one_node</a> (const double theLBD, const <a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;theNode, std::ostream &amp;outstream)</td></tr>
 <tr class="memdesc:ad301660df21f804bccefa3da694aa743"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function printing one node.  <a href="#ad301660df21f804bccefa3da694aa743">More...</a><br /></td></tr>
 <tr class="separator:ad301660df21f804bccefa3da694aa743"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1a78374e95574fbe731cdd0d2dae7b53"><td class="memItemLeft" align="right" valign="top">std::tuple&lt; bool, bool, int, int, double, std::vector&lt; double &gt;, bool, double, std::vector&lt; double &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a1a78374e95574fbe731cdd0d2dae7b53">_process_node</a> (<a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNodeInOut)</td></tr>
-<tr class="memdesc:a1a78374e95574fbe731cdd0d2dae7b53"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function processing the current node.  <a href="#a1a78374e95574fbe731cdd0d2dae7b53">More...</a><br /></td></tr>
-<tr class="separator:a1a78374e95574fbe731cdd0d2dae7b53"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6ab1475deadb8906e5d680911e747469"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a6ab1475deadb8906e5d680911e747469">_preprocess_node</a> (<a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNodeInOut)</td></tr>
-<tr class="memdesc:a6ab1475deadb8906e5d680911e747469"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for pre-processing the current node. Includes bound tightening and OBBT.  <a href="#a6ab1475deadb8906e5d680911e747469">More...</a><br /></td></tr>
-<tr class="separator:a6ab1475deadb8906e5d680911e747469"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3d09b996010632d9f782e9d7e5926e80"><td class="memItemLeft" align="right" valign="top">std::tuple&lt; bool, bool, double, std::vector&lt; double &gt;, <a class="el" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html">lbp::LbpDualInfo</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a3d09b996010632d9f782e9d7e5926e80">_solve_LBP</a> (const <a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode)</td></tr>
-<tr class="memdesc:a3d09b996010632d9f782e9d7e5926e80"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function invoking the LBS to solve the lower bounding problem.  <a href="#a3d09b996010632d9f782e9d7e5926e80">More...</a><br /></td></tr>
-<tr class="separator:a3d09b996010632d9f782e9d7e5926e80"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab2bb968cb7c8aba14c9d42268fbb63e1"><td class="memItemLeft" align="right" valign="top">std::tuple&lt; bool, bool, double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ab2bb968cb7c8aba14c9d42268fbb63e1">_solve_UBP</a> (const <a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode, std::vector&lt; double &gt; &amp;ubpSolutionPoint, const double currentLBD)</td></tr>
-<tr class="memdesc:ab2bb968cb7c8aba14c9d42268fbb63e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function invoking the UBS to solve the upper bounding problem.  <a href="#ab2bb968cb7c8aba14c9d42268fbb63e1">More...</a><br /></td></tr>
-<tr class="separator:ab2bb968cb7c8aba14c9d42268fbb63e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa35b55427764ada3cba0b0a74adafe0e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aa35b55427764ada3cba0b0a74adafe0e">_postprocess_node</a> (<a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNodeInOut, const std::vector&lt; double &gt; &amp;lbpSolutionPoint, const <a class="el" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html">lbp::LbpDualInfo</a> &amp;dualInfo)</td></tr>
-<tr class="memdesc:aa35b55427764ada3cba0b0a74adafe0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for post-processing the current node. Includes bound DBBT and probing.  <a href="#aa35b55427764ada3cba0b0a74adafe0e">More...</a><br /></td></tr>
-<tr class="separator:aa35b55427764ada3cba0b0a74adafe0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0608306463120a72b9ec32395044470f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a0608306463120a72b9ec32395044470f">_update_incumbent_and_fathom</a> (const double solval, const std::vector&lt; double &gt; sol, const unsigned int currentNodeID)</td></tr>
-<tr class="memdesc:a0608306463120a72b9ec32395044470f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for updating the incumbent and fathoming accordingly.  <a href="#a0608306463120a72b9ec32395044470f">More...</a><br /></td></tr>
-<tr class="separator:a0608306463120a72b9ec32395044470f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac6de991f9fa810bc93ed5ce47577e210"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ac6de991f9fa810bc93ed5ce47577e210">_update_lowest_lbd</a> ()</td></tr>
-<tr class="memdesc:ac6de991f9fa810bc93ed5ce47577e210"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for updating the global lower bound.  <a href="#ac6de991f9fa810bc93ed5ce47577e210">More...</a><br /></td></tr>
-<tr class="separator:ac6de991f9fa810bc93ed5ce47577e210"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a60c5f5d7ae8fab91f990846207e88144"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a60c5f5d7ae8fab91f990846207e88144">_check_if_more_scaling_needed</a> ()</td></tr>
-<tr class="memdesc:a60c5f5d7ae8fab91f990846207e88144"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function which checks whether it is necessary to activate scaling within the LBD solver. This is a heuristic approach, which does not affect any deterministic optimization assumptions.  <a href="#a60c5f5d7ae8fab91f990846207e88144">More...</a><br /></td></tr>
-<tr class="separator:a60c5f5d7ae8fab91f990846207e88144"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a18cf39c5def55fea60f33438b77fece2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1">_TERMINATION_TYPE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a18cf39c5def55fea60f33438b77fece2">_check_termination</a> ()</td></tr>
-<tr class="memdesc:a18cf39c5def55fea60f33438b77fece2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for checking if the B&amp;B algorithm terminated.  <a href="#a18cf39c5def55fea60f33438b77fece2">More...</a><br /></td></tr>
-<tr class="separator:a18cf39c5def55fea60f33438b77fece2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af04b0ab5a5979ba684b4edf2a223d5ec"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#af04b0ab5a5979ba684b4edf2a223d5ec">_display_and_log_progress</a> (const double currentNodeLBD, const <a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode)</td></tr>
-<tr class="memdesc:af04b0ab5a5979ba684b4edf2a223d5ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for printing the current progress on the screen and appending it to the internal log to be written to file later.  <a href="#af04b0ab5a5979ba684b4edf2a223d5ec">More...</a><br /></td></tr>
-<tr class="separator:af04b0ab5a5979ba684b4edf2a223d5ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4cab2a79ab0b12b712e7e45852be4a21"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a4cab2a79ab0b12b712e7e45852be4a21">_print_termination</a> (std::string message)</td></tr>
-<tr class="memdesc:a4cab2a79ab0b12b712e7e45852be4a21"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function printing a termination message.  <a href="#a4cab2a79ab0b12b712e7e45852be4a21">More...</a><br /></td></tr>
-<tr class="separator:a4cab2a79ab0b12b712e7e45852be4a21"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3250e84e0547b8de82d91fe929c0e8d9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a3250e84e0547b8de82d91fe929c0e8d9">_print_one_node</a> (const double theLBD, const int ID, const std::vector&lt; double &gt; lowerVarBounds, const std::vector&lt; double &gt; upperVarBounds)</td></tr>
-<tr class="memdesc:a3250e84e0547b8de82d91fe929c0e8d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function printing one node.  <a href="#a3250e84e0547b8de82d91fe929c0e8d9">More...</a><br /></td></tr>
-<tr class="separator:a3250e84e0547b8de82d91fe929c0e8d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a202477d2ba7c16bf7d39dc4f77034c67"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a202477d2ba7c16bf7d39dc4f77034c67">_print_one_node</a> (const double theLBD, const int ID, const std::vector&lt; double &gt; lowerVarBounds, const std::vector&lt; double &gt; upperVarBounds, std::ostream &amp;outstream)</td></tr>
-<tr class="memdesc:a202477d2ba7c16bf7d39dc4f77034c67"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function printing one node.  <a href="#a202477d2ba7c16bf7d39dc4f77034c67">More...</a><br /></td></tr>
-<tr class="separator:a202477d2ba7c16bf7d39dc4f77034c67"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1f542019964ce925a4d19eb951049da7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a1f542019964ce925a4d19eb951049da7">_print_one_node</a> (const double theLBD, const <a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;theNode)</td></tr>
-<tr class="memdesc:a1f542019964ce925a4d19eb951049da7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function printing one node.  <a href="#a1f542019964ce925a4d19eb951049da7">More...</a><br /></td></tr>
-<tr class="separator:a1f542019964ce925a4d19eb951049da7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad301660df21f804bccefa3da694aa743"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ad301660df21f804bccefa3da694aa743">_print_one_node</a> (const double theLBD, const <a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;theNode, std::ostream &amp;outstream)</td></tr>
-<tr class="memdesc:ad301660df21f804bccefa3da694aa743"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function printing one node.  <a href="#ad301660df21f804bccefa3da694aa743">More...</a><br /></td></tr>
-<tr class="separator:ad301660df21f804bccefa3da694aa743"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
 Private Attributes</h2></td></tr>
-<tr class="memitem:a88d35fc68351774dadb831c38ffd93ee"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classbab_base_1_1_brancher.html">babBase::Brancher</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a88d35fc68351774dadb831c38ffd93ee">_brancher</a></td></tr>
-<tr class="separator:a88d35fc68351774dadb831c38ffd93ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af1853b2ef51e8bddd0a9ab2404340037"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">ubp::UpperBoundingSolver</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#af1853b2ef51e8bddd0a9ab2404340037">_UBS</a></td></tr>
-<tr class="separator:af1853b2ef51e8bddd0a9ab2404340037"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a16bbea3c96042145acc5df3830cd72b4"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">lbp::LowerBoundingSolver</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a16bbea3c96042145acc5df3830cd72b4">_LBS</a></td></tr>
-<tr class="separator:a16bbea3c96042145acc5df3830cd72b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:acca388f26f5e0c94b58643b566b8a235"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1_settings.html">Settings</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#acca388f26f5e0c94b58643b566b8a235">_maingoSettings</a></td></tr>
-<tr class="separator:acca388f26f5e0c94b58643b566b8a235"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae1454635b53b98cc4e395fd3ed7faca0"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classbab_base_1_1_brancher.html">babBase::Brancher</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ae1454635b53b98cc4e395fd3ed7faca0">_brancher</a></td></tr>
+<tr class="separator:ae1454635b53b98cc4e395fd3ed7faca0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aba6e92ef8af1e76b62a543e1334b4948"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">ubp::UpperBoundingSolver</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aba6e92ef8af1e76b62a543e1334b4948">_UBS</a></td></tr>
+<tr class="separator:aba6e92ef8af1e76b62a543e1334b4948"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4a63abd1f85d04b411bd3f46c95c994b"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">lbp::LowerBoundingSolver</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a4a63abd1f85d04b411bd3f46c95c994b">_LBS</a></td></tr>
+<tr class="separator:a4a63abd1f85d04b411bd3f46c95c994b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abb34f49557e1d417e5a87a467cee2ec8"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#abb34f49557e1d417e5a87a467cee2ec8">_maingoSettings</a></td></tr>
+<tr class="separator:abb34f49557e1d417e5a87a467cee2ec8"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr><td colspan="2"><div class="groupHeader">Internal variables for storing problem parameters</div></td></tr>
-<tr class="memitem:aa47a427d6c433a26a35b5882e54480e4"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aa47a427d6c433a26a35b5882e54480e4">_originalVariables</a></td></tr>
-<tr class="separator:aa47a427d6c433a26a35b5882e54480e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a54fa45d1751c9a81b346bd7cd1f5969c"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a54fa45d1751c9a81b346bd7cd1f5969c">_originalVariables</a></td></tr>
+<tr class="separator:a54fa45d1751c9a81b346bd7cd1f5969c"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aa66393ce301be8002cdea9b1b43aa5b2"><td class="memItemLeft" align="right" valign="top">const unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aa66393ce301be8002cdea9b1b43aa5b2">_nvar</a></td></tr>
 <tr class="separator:aa66393ce301be8002cdea9b1b43aa5b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a109e3a4afa84d559ec9b88376b0a63b2"><td class="memItemLeft" align="right" valign="top">const unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a109e3a4afa84d559ec9b88376b0a63b2">_nvarWOaux</a></td></tr>
 <tr class="separator:a109e3a4afa84d559ec9b88376b0a63b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0a241298a1b0f9b0707386e9143e0186"><td class="memItemLeft" align="right" valign="top">std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a0a241298a1b0f9b0707386e9143e0186">_lowerVarBoundsOrig</a></td></tr>
-<tr class="separator:a0a241298a1b0f9b0707386e9143e0186"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5bd0987c7dde438e8d52af87421d78c5"><td class="memItemLeft" align="right" valign="top">std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a5bd0987c7dde438e8d52af87421d78c5">_upperVarBoundsOrig</a></td></tr>
-<tr class="separator:a5bd0987c7dde438e8d52af87421d78c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9836ba957bbfd2acace285065fe81710"><td class="memItemLeft" align="right" valign="top">std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a9836ba957bbfd2acace285065fe81710">_lowerVarBoundsOrig</a></td></tr>
+<tr class="separator:a9836ba957bbfd2acace285065fe81710"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6087a84349286d46bfc4a6633f5c881b"><td class="memItemLeft" align="right" valign="top">std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a6087a84349286d46bfc4a6633f5c881b">_upperVarBoundsOrig</a></td></tr>
+<tr class="separator:a6087a84349286d46bfc4a6633f5c881b"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr><td colspan="2"><div class="groupHeader">Internal variables for storing solution information</div></td></tr>
-<tr class="memitem:ac3e65fd10f0294c31f8428330e517f85"><td class="memItemLeft" align="right" valign="top">std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ac3e65fd10f0294c31f8428330e517f85">_incumbent</a></td></tr>
-<tr class="separator:ac3e65fd10f0294c31f8428330e517f85"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:acc2f5918ff76d313d9f0d9eae3c749cd"><td class="memItemLeft" align="right" valign="top">std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#acc2f5918ff76d313d9f0d9eae3c749cd">_initialPoint</a></td></tr>
-<tr class="separator:acc2f5918ff76d313d9f0d9eae3c749cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2685cdd222deff1b30e3b83c7b4bb259"><td class="memItemLeft" align="right" valign="top">std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a2685cdd222deff1b30e3b83c7b4bb259">_incumbent</a></td></tr>
+<tr class="separator:a2685cdd222deff1b30e3b83c7b4bb259"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1f509aa5a3de69ff00e8d2c31b654d48"><td class="memItemLeft" align="right" valign="top">std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a1f509aa5a3de69ff00e8d2c31b654d48">_initialPoint</a></td></tr>
+<tr class="separator:a1f509aa5a3de69ff00e8d2c31b654d48"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:adf8377615ee4d86485f589700902126c"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#adf8377615ee4d86485f589700902126c">_ubd</a></td></tr>
 <tr class="separator:adf8377615ee4d86485f589700902126c"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a7329b6c29c7a8686f7b417f3cfe93026"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a7329b6c29c7a8686f7b417f3cfe93026">_lbd</a></td></tr>
@@ -365,8 +267,6 @@ Private Attributes</h2></td></tr>
 <tr class="separator:a17af9af1c4195bb491a0624d3a4edb36"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ab0c17e7072887baa0bf2377a7be7a4bc"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ab0c17e7072887baa0bf2377a7be7a4bc">_daysPassed</a></td></tr>
 <tr class="separator:ab0c17e7072887baa0bf2377a7be7a4bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2845411391c8498e7eece2e2e3ba073b"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a2845411391c8498e7eece2e2e3ba073b">_wallPassed</a></td></tr>
-<tr class="separator:a2845411391c8498e7eece2e2e3ba073b"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr><td colspan="2"><div class="groupHeader">Internal variables used for printing</div></td></tr>
 <tr class="memitem:a46473e89580e44ef3576e9040e469478"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a46473e89580e44ef3576e9040e469478">_linesprinted</a></td></tr>
 <tr class="separator:a46473e89580e44ef3576e9040e469478"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -378,51 +278,15 @@ Private Attributes</h2></td></tr>
 <tr class="separator:a733596f5150a34554a2e001bc2a7bd1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a193f594912e00a2c4d8cacfd4efbdfd5"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a193f594912e00a2c4d8cacfd4efbdfd5">_writeToLogEverySec</a></td></tr>
 <tr class="separator:a193f594912e00a2c4d8cacfd4efbdfd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aaf1e5ea028afe7d2700a6cc573d67674"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmaingo_1_1_logger.html">Logger</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aaf1e5ea028afe7d2700a6cc573d67674">_logger</a></td></tr>
-<tr class="separator:aaf1e5ea028afe7d2700a6cc573d67674"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7bd1a5254c74b3adac3b74712d92257e"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a7bd1a5254c74b3adac3b74712d92257e">_logger</a></td></tr>
+<tr class="separator:a7bd1a5254c74b3adac3b74712d92257e"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><p>This class contains the main algorithm, including handling of pre-processing routines and managing the B&amp;B tree as well as the respective sub-solvers. </p>
 <p>The class <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html" title="This class contains the main algorithm, including handling of pre-processing routines and managing th...">BranchAndBound</a> implements a basic branch-and-bound (BaB) solver with some simple features for range reduction. These include optimization-based range reduction (OBBT; cf., e.g., Gleixner et al., J. Glob. Optim. 67 (2017) 731), which can be conducted multiple times at the root node, and also once at every node of the BAB tree, as well as duality-based bounds tightening (DBBT) and probing (cf. Ryoo&amp;Sahinidis, Comput. Chem. Eng. 19 (1995) 551). It also contains a multi-start local search from randomly generated initial points at the root node. Lower and upper bounding are conducted by the respective lower and upper bounding solvers (LBS / UBS). </p>
 </div><h2 class="groupheader">Member Enumeration Documentation</h2>
 <a id="a07ba7b9ae290bc913f2d2ca19c7c49e1"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a07ba7b9ae290bc913f2d2ca19c7c49e1">&#9670;&nbsp;</a></span>_TERMINATION_TYPE <span class="overload">[1/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">enum <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1">maingo::bab::BranchAndBound::_TERMINATION_TYPE</a></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">private</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-<table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a07ba7b9ae290bc913f2d2ca19c7c49e1ac0b46b223d15cc2e3851dcaf961b9e7a"></a>_TERMINATED&#160;</td><td class="fielddoc"><p>termination condition has been reached and no worker is processing any nodes </p>
-</td></tr>
-<tr><td class="fieldname"><a id="a07ba7b9ae290bc913f2d2ca19c7c49e1ab77e9f73c90db0ea95610d8103738966"></a>_TERMINATED_WORKERS_ACTIVE&#160;</td><td class="fielddoc"><p>termination condition has been reached, but there are still nodes being processed by workers </p>
-</td></tr>
-<tr><td class="fieldname"><a id="a07ba7b9ae290bc913f2d2ca19c7c49e1a244a114749491f6b442fd2563fefbc5e"></a>_NOT_TERMINATED&#160;</td><td class="fielddoc"><p>termination condition has not been reached yet </p>
-</td></tr>
-<tr><td class="fieldname"><a id="a07ba7b9ae290bc913f2d2ca19c7c49e1ac0b46b223d15cc2e3851dcaf961b9e7a"></a>_TERMINATED&#160;</td><td class="fielddoc"><p>termination condition has been reached and no worker is processing any nodes </p>
-</td></tr>
-<tr><td class="fieldname"><a id="a07ba7b9ae290bc913f2d2ca19c7c49e1ab77e9f73c90db0ea95610d8103738966"></a>_TERMINATED_WORKERS_ACTIVE&#160;</td><td class="fielddoc"><p>termination condition has been reached, but there are still nodes being processed by workers </p>
-</td></tr>
-<tr><td class="fieldname"><a id="a07ba7b9ae290bc913f2d2ca19c7c49e1a244a114749491f6b442fd2563fefbc5e"></a>_NOT_TERMINATED&#160;</td><td class="fielddoc"><p>termination condition has not been reached yet </p>
-</td></tr>
-</table>
-
-</div>
-</div>
-<a id="a07ba7b9ae290bc913f2d2ca19c7c49e1"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a07ba7b9ae290bc913f2d2ca19c7c49e1">&#9670;&nbsp;</a></span>_TERMINATION_TYPE <span class="overload">[2/2]</span></h2>
+<h2 class="memtitle"><span class="permalink"><a href="#a07ba7b9ae290bc913f2d2ca19c7c49e1">&#9670;&nbsp;</a></span>_TERMINATION_TYPE</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -443,25 +307,19 @@ Private Attributes</h2></td></tr>
 
 <p>Enum for representing different termination types in B&amp;B. </p>
 <table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a07ba7b9ae290bc913f2d2ca19c7c49e1ac0b46b223d15cc2e3851dcaf961b9e7a"></a>_TERMINATED&#160;</td><td class="fielddoc"><p>termination condition has been reached and no worker is processing any nodes </p>
-</td></tr>
-<tr><td class="fieldname"><a id="a07ba7b9ae290bc913f2d2ca19c7c49e1ab77e9f73c90db0ea95610d8103738966"></a>_TERMINATED_WORKERS_ACTIVE&#160;</td><td class="fielddoc"><p>termination condition has been reached, but there are still nodes being processed by workers </p>
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a07ba7b9ae290bc913f2d2ca19c7c49e1a1a904c0cb2e9786677bfd0c13951dec7"></a>_TERMINATED&#160;</td><td class="fielddoc"><p>termination condition has been reached and no worker is processing any nodes </p>
 </td></tr>
-<tr><td class="fieldname"><a id="a07ba7b9ae290bc913f2d2ca19c7c49e1a244a114749491f6b442fd2563fefbc5e"></a>_NOT_TERMINATED&#160;</td><td class="fielddoc"><p>termination condition has not been reached yet </p>
+<tr><td class="fieldname"><a id="a07ba7b9ae290bc913f2d2ca19c7c49e1a803a5e6c3589e7407f7993fff57c30dd"></a>_TERMINATED_WORKERS_ACTIVE&#160;</td><td class="fielddoc"><p>termination condition has been reached, but there are still nodes being processed by workers </p>
 </td></tr>
-<tr><td class="fieldname"><a id="a07ba7b9ae290bc913f2d2ca19c7c49e1ac0b46b223d15cc2e3851dcaf961b9e7a"></a>_TERMINATED&#160;</td><td class="fielddoc"><p>termination condition has been reached and no worker is processing any nodes </p>
-</td></tr>
-<tr><td class="fieldname"><a id="a07ba7b9ae290bc913f2d2ca19c7c49e1ab77e9f73c90db0ea95610d8103738966"></a>_TERMINATED_WORKERS_ACTIVE&#160;</td><td class="fielddoc"><p>termination condition has been reached, but there are still nodes being processed by workers </p>
-</td></tr>
-<tr><td class="fieldname"><a id="a07ba7b9ae290bc913f2d2ca19c7c49e1a244a114749491f6b442fd2563fefbc5e"></a>_NOT_TERMINATED&#160;</td><td class="fielddoc"><p>termination condition has not been reached yet </p>
+<tr><td class="fieldname"><a id="a07ba7b9ae290bc913f2d2ca19c7c49e1a4606d4d76cdd55c82480e7e28a65d67a"></a>_NOT_TERMINATED&#160;</td><td class="fielddoc"><p>termination condition has not been reached yet </p>
 </td></tr>
 </table>
 
 </div>
 </div>
 <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a id="a0795ab80ed85f416a1834c2bc62f2d88"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a0795ab80ed85f416a1834c2bc62f2d88">&#9670;&nbsp;</a></span>BranchAndBound() <span class="overload">[1/2]</span></h2>
+<a id="ab1e963d56b3adc807decb6e4dc1bee85"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab1e963d56b3adc807decb6e4dc1bee85">&#9670;&nbsp;</a></span>BranchAndBound()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -487,13 +345,13 @@ Private Attributes</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="structmaingo_1_1_settings.html">Settings</a> *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt;&#160;</td>
           <td class="paramname"><em>settingsIn</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="classmaingo_1_1_logger.html">Logger</a> *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt;&#160;</td>
           <td class="paramname"><em>loggerIn</em>, </td>
         </tr>
         <tr>
@@ -526,7 +384,7 @@ Private Attributes</h2></td></tr>
 </div>
 </div>
 <a id="a7db5251fcd9ad3ca2892a9b17cb7b197"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a7db5251fcd9ad3ca2892a9b17cb7b197">&#9670;&nbsp;</a></span>~BranchAndBound() <span class="overload">[1/2]</span></h2>
+<h2 class="memtitle"><span class="permalink"><a href="#a7db5251fcd9ad3ca2892a9b17cb7b197">&#9670;&nbsp;</a></span>~BranchAndBound()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -552,73 +410,9 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="a2d88760ca48bcea923ba4e868d5bdf43"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a2d88760ca48bcea923ba4e868d5bdf43">&#9670;&nbsp;</a></span>BranchAndBound() <span class="overload">[2/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">maingo::bab::BranchAndBound::BranchAndBound </td>
-          <td>(</td>
-          <td class="paramtype">const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;&#160;</td>
-          <td class="paramname"><em>variables</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">lbp::LowerBoundingSolver</a> &gt;&#160;</td>
-          <td class="paramname"><em>LBSIn</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">ubp::UpperBoundingSolver</a> &gt;&#160;</td>
-          <td class="paramname"><em>UBSIn</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype"><a class="el" href="structmaingo_1_1_settings.html">Settings</a> *&#160;</td>
-          <td class="paramname"><em>settingsIn</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype"><a class="el" href="classmaingo_1_1_logger.html">Logger</a> *&#160;</td>
-          <td class="paramname"><em>loggerIn</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const unsigned&#160;</td>
-          <td class="paramname"><em>nvarWOaux</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p>Constructor, stores information on problem and settings. </p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">variables</td><td>is a vector containing the initial optimization variables defined in problem.h </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">LBSIn</td><td>is a pointer to the LowerBoundingSolver object </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">UBSIn</td><td>is a pointer to the UpperBoundingSolver object </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">settingsIn</td><td>is a pointer to an object containing the settings for the Branch-and-Bound solvers </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">loggerIn</td><td>is a pointer to the <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> logger object </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">nvarWOaux</td><td>is the number of optimization variables without the additional auxiliary variables added by the LBP_addAuxiliaryVars option </td></tr>
-  </table>
-  </dd>
-</dl>
-
-</div>
-</div>
-<a id="a7db5251fcd9ad3ca2892a9b17cb7b197"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a7db5251fcd9ad3ca2892a9b17cb7b197">&#9670;&nbsp;</a></span>~BranchAndBound() <span class="overload">[2/2]</span></h2>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="ad5e5e8e1a0f2a3dda0a6deac59409fd6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad5e5e8e1a0f2a3dda0a6deac59409fd6">&#9670;&nbsp;</a></span>_check_if_more_scaling_needed()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -627,7 +421,7 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">maingo::bab::BranchAndBound::~BranchAndBound </td>
+          <td class="memname">void BranchAndBound::_check_if_more_scaling_needed </td>
           <td>(</td>
           <td class="paramname"></td><td>)</td>
           <td></td>
@@ -635,18 +429,17 @@ Private Attributes</h2></td></tr>
       </table>
   </td>
   <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
   </tr>
 </table>
 </div><div class="memdoc">
 
-<p>Destructor. </p>
+<p>Function which checks whether it is necessary to activate scaling within the LBD solver. This is a heuristic approach, which does not affect any deterministic optimization assumptions. </p>
 
 </div>
 </div>
-<h2 class="groupheader">Member Function Documentation</h2>
-<a id="a60c5f5d7ae8fab91f990846207e88144"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a60c5f5d7ae8fab91f990846207e88144">&#9670;&nbsp;</a></span>_check_if_more_scaling_needed() <span class="overload">[1/2]</span></h2>
+<a id="a535696550d694df9bc017ef6cd144a58"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a535696550d694df9bc017ef6cd144a58">&#9670;&nbsp;</a></span>_check_termination()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -655,7 +448,7 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">void maingo::bab::BranchAndBound::_check_if_more_scaling_needed </td>
+          <td class="memname"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1">BranchAndBound::_TERMINATION_TYPE</a> BranchAndBound::_check_termination </td>
           <td>(</td>
           <td class="paramname"></td><td>)</td>
           <td></td>
@@ -668,12 +461,12 @@ Private Attributes</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Function which checks whether it is necessary to activate scaling within the LBD solver. This is a heuristic approach, which does not affect any deterministic optimization assumptions. </p>
+<p>Function for checking if the B&amp;B algorithm terminated. </p>
 
 </div>
 </div>
-<a id="ad5e5e8e1a0f2a3dda0a6deac59409fd6"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ad5e5e8e1a0f2a3dda0a6deac59409fd6">&#9670;&nbsp;</a></span>_check_if_more_scaling_needed() <span class="overload">[2/2]</span></h2>
+<a id="ad2b56f40c7255d731c196b1661cee2d4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad2b56f40c7255d731c196b1661cee2d4">&#9670;&nbsp;</a></span>_display_and_log_progress()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -682,10 +475,21 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">void BranchAndBound::_check_if_more_scaling_needed </td>
+          <td class="memname">void BranchAndBound::_display_and_log_progress </td>
           <td>(</td>
-          <td class="paramname"></td><td>)</td>
+          <td class="paramtype">const double&#160;</td>
+          <td class="paramname"><em>currentNodeLBD</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;&#160;</td>
+          <td class="paramname"><em>currentNode</em>&#160;</td>
+        </tr>
+        <tr>
           <td></td>
+          <td>)</td>
+          <td></td><td></td>
         </tr>
       </table>
   </td>
@@ -695,12 +499,19 @@ Private Attributes</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Function which checks whether it is necessary to activate scaling within the LBD solver. This is a heuristic approach, which does not affect any deterministic optimization assumptions. </p>
+<p>Function for printing the current progress on the screen and appending it to the internal log to be written to file later. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">currentNodeLBD</td><td>is the lower bound for the current node </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">currentNode</td><td>is the current node </td></tr>
+  </table>
+  </dd>
+</dl>
 
 </div>
 </div>
-<a id="a18cf39c5def55fea60f33438b77fece2"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a18cf39c5def55fea60f33438b77fece2">&#9670;&nbsp;</a></span>_check_termination() <span class="overload">[1/2]</span></h2>
+<a id="a29001119914eca2657390048e11db609"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a29001119914eca2657390048e11db609">&#9670;&nbsp;</a></span>_postprocess_node()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -709,10 +520,27 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1">_TERMINATION_TYPE</a> maingo::bab::BranchAndBound::_check_termination </td>
+          <td class="memname">bool BranchAndBound::_postprocess_node </td>
           <td>(</td>
-          <td class="paramname"></td><td>)</td>
+          <td class="paramtype"><a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;&#160;</td>
+          <td class="paramname"><em>currentNodeInOut</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::vector&lt; double &gt; &amp;&#160;</td>
+          <td class="paramname"><em>lbpSolutionPoint</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
           <td></td>
+          <td class="paramtype">const <a class="el" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html">lbp::LbpDualInfo</a> &amp;&#160;</td>
+          <td class="paramname"><em>dualInfo</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
         </tr>
       </table>
   </td>
@@ -722,12 +550,21 @@ Private Attributes</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Function for checking if the B&amp;B algorithm terminated. </p>
+<p>Function for post-processing the current node. Includes bound DBBT and probing. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in,out]</td><td class="paramname">currentNodeInOut</td><td>The node to be processed </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">lbpSolutionPoint</td><td>Solution point of the lower bounding problem </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">dualInfo</td><td>is a struct containing information from the LP solved during LBP </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Flag indicating whether the node has converged </dd></dl>
 
 </div>
 </div>
-<a id="a535696550d694df9bc017ef6cd144a58"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a535696550d694df9bc017ef6cd144a58">&#9670;&nbsp;</a></span>_check_termination() <span class="overload">[2/2]</span></h2>
+<a id="a990927b31d0abc3c0df5ab3883c12de1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a990927b31d0abc3c0df5ab3883c12de1">&#9670;&nbsp;</a></span>_preprocess_node()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -736,9 +573,10 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1">BranchAndBound::_TERMINATION_TYPE</a> BranchAndBound::_check_termination </td>
+          <td class="memname">bool BranchAndBound::_preprocess_node </td>
           <td>(</td>
-          <td class="paramname"></td><td>)</td>
+          <td class="paramtype"><a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;&#160;</td>
+          <td class="paramname"><em>currentNodeInOut</em></td><td>)</td>
           <td></td>
         </tr>
       </table>
@@ -749,12 +587,19 @@ Private Attributes</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Function for checking if the B&amp;B algorithm terminated. </p>
+<p>Function for pre-processing the current node. Includes bound tightening and OBBT. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in,out]</td><td class="paramname">currentNodeInOut</td><td>The node to be processed </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Flag indicating whether the node was proven to be infeasible </dd></dl>
 
 </div>
 </div>
-<a id="af04b0ab5a5979ba684b4edf2a223d5ec"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#af04b0ab5a5979ba684b4edf2a223d5ec">&#9670;&nbsp;</a></span>_display_and_log_progress() <span class="overload">[1/2]</span></h2>
+<a id="ad1c6f9191a7ab197f5a48ea554594462"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad1c6f9191a7ab197f5a48ea554594462">&#9670;&nbsp;</a></span>_print_one_node() <span class="overload">[1/4]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -763,16 +608,28 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">void maingo::bab::BranchAndBound::_display_and_log_progress </td>
+          <td class="memname">void BranchAndBound::_print_one_node </td>
           <td>(</td>
           <td class="paramtype">const double&#160;</td>
-          <td class="paramname"><em>currentNodeLBD</em>, </td>
+          <td class="paramname"><em>theLBD</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;&#160;</td>
-          <td class="paramname"><em>currentNode</em>&#160;</td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>ID</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::vector&lt; double &gt;&#160;</td>
+          <td class="paramname"><em>lowerVarBounds</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::vector&lt; double &gt;&#160;</td>
+          <td class="paramname"><em>upperVarBounds</em>&#160;</td>
         </tr>
         <tr>
           <td></td>
@@ -787,19 +644,21 @@ Private Attributes</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Function for printing the current progress on the screen and appending it to the internal log to be written to file later. </p>
+<p>Function printing one node. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">currentNodeLBD</td><td>is the lower bound for the current node </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">currentNode</td><td>is the current node </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">theLBD</td><td>is the lower bound of the node </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">ID</td><td>is the id of the node </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">lowerVarBounds</td><td>are the variables lower bounds </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">upperVarBounds</td><td>are the variables upper bounds </td></tr>
   </table>
   </dd>
 </dl>
 
 </div>
 </div>
-<a id="ad2b56f40c7255d731c196b1661cee2d4"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ad2b56f40c7255d731c196b1661cee2d4">&#9670;&nbsp;</a></span>_display_and_log_progress() <span class="overload">[2/2]</span></h2>
+<a id="a01acae40320149ecfef11bda53350b3c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a01acae40320149ecfef11bda53350b3c">&#9670;&nbsp;</a></span>_print_one_node() <span class="overload">[2/4]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -808,120 +667,34 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">void BranchAndBound::_display_and_log_progress </td>
+          <td class="memname">void BranchAndBound::_print_one_node </td>
           <td>(</td>
           <td class="paramtype">const double&#160;</td>
-          <td class="paramname"><em>currentNodeLBD</em>, </td>
+          <td class="paramname"><em>theLBD</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;&#160;</td>
-          <td class="paramname"><em>currentNode</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">private</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Function for printing the current progress on the screen and appending it to the internal log to be written to file later. </p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">currentNodeLBD</td><td>is the lower bound for the current node </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">currentNode</td><td>is the current node </td></tr>
-  </table>
-  </dd>
-</dl>
-
-</div>
-</div>
-<a id="aa35b55427764ada3cba0b0a74adafe0e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aa35b55427764ada3cba0b0a74adafe0e">&#9670;&nbsp;</a></span>_postprocess_node() <span class="overload">[1/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool maingo::bab::BranchAndBound::_postprocess_node </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;&#160;</td>
-          <td class="paramname"><em>currentNodeInOut</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const std::vector&lt; double &gt; &amp;&#160;</td>
-          <td class="paramname"><em>lbpSolutionPoint</em>, </td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>ID</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html">lbp::LbpDualInfo</a> &amp;&#160;</td>
-          <td class="paramname"><em>dualInfo</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">private</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Function for post-processing the current node. Includes bound DBBT and probing. </p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramdir">[in,out]</td><td class="paramname">currentNodeInOut</td><td>The node to be processed </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">lbpSolutionPoint</td><td>Solution point of the lower bounding problem </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">dualInfo</td><td>is a struct containing information from the LP solved during LBP </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Flag indicating whether the node has converged </dd></dl>
-
-</div>
-</div>
-<a id="a29001119914eca2657390048e11db609"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a29001119914eca2657390048e11db609">&#9670;&nbsp;</a></span>_postprocess_node() <span class="overload">[2/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool BranchAndBound::_postprocess_node </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;&#160;</td>
-          <td class="paramname"><em>currentNodeInOut</em>, </td>
+          <td class="paramtype">const std::vector&lt; double &gt;&#160;</td>
+          <td class="paramname"><em>lowerVarBounds</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const std::vector&lt; double &gt; &amp;&#160;</td>
-          <td class="paramname"><em>lbpSolutionPoint</em>, </td>
+          <td class="paramtype">const std::vector&lt; double &gt;&#160;</td>
+          <td class="paramname"><em>upperVarBounds</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html">lbp::LbpDualInfo</a> &amp;&#160;</td>
-          <td class="paramname"><em>dualInfo</em>&#160;</td>
+          <td class="paramtype">std::ostream &amp;&#160;</td>
+          <td class="paramname"><em>outstream</em>&#160;</td>
         </tr>
         <tr>
           <td></td>
@@ -936,91 +709,22 @@ Private Attributes</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Function for post-processing the current node. Includes bound DBBT and probing. </p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramdir">[in,out]</td><td class="paramname">currentNodeInOut</td><td>The node to be processed </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">lbpSolutionPoint</td><td>Solution point of the lower bounding problem </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">dualInfo</td><td>is a struct containing information from the LP solved during LBP </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Flag indicating whether the node has converged </dd></dl>
-
-</div>
-</div>
-<a id="a6ab1475deadb8906e5d680911e747469"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a6ab1475deadb8906e5d680911e747469">&#9670;&nbsp;</a></span>_preprocess_node() <span class="overload">[1/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool maingo::bab::BranchAndBound::_preprocess_node </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;&#160;</td>
-          <td class="paramname"><em>currentNodeInOut</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">private</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Function for pre-processing the current node. Includes bound tightening and OBBT. </p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramdir">[in,out]</td><td class="paramname">currentNodeInOut</td><td>The node to be processed </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Flag indicating whether the node was proven to be infeasible </dd></dl>
-
-</div>
-</div>
-<a id="a990927b31d0abc3c0df5ab3883c12de1"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a990927b31d0abc3c0df5ab3883c12de1">&#9670;&nbsp;</a></span>_preprocess_node() <span class="overload">[2/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool BranchAndBound::_preprocess_node </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;&#160;</td>
-          <td class="paramname"><em>currentNodeInOut</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">private</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Function for pre-processing the current node. Includes bound tightening and OBBT. </p>
+<p>Function printing one node. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
-    <tr><td class="paramdir">[in,out]</td><td class="paramname">currentNodeInOut</td><td>The node to be processed </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">theLBD</td><td>is the lower bound of the node </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">ID</td><td>is the id of the node </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">lowerVarBounds</td><td>are the variables lower bounds </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">upperVarBounds</td><td>are the variables upper bounds </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">outstream</td><td>is the stream to be written to, e.g., an error message </td></tr>
   </table>
   </dd>
 </dl>
-<dl class="section return"><dt>Returns</dt><dd>Flag indicating whether the node was proven to be infeasible </dd></dl>
 
 </div>
 </div>
-<a id="a3250e84e0547b8de82d91fe929c0e8d9"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3250e84e0547b8de82d91fe929c0e8d9">&#9670;&nbsp;</a></span>_print_one_node() <span class="overload">[1/8]</span></h2>
+<a id="a1f542019964ce925a4d19eb951049da7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1f542019964ce925a4d19eb951049da7">&#9670;&nbsp;</a></span>_print_one_node() <span class="overload">[3/4]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1037,20 +741,8 @@ Private Attributes</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const int&#160;</td>
-          <td class="paramname"><em>ID</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const std::vector&lt; double &gt;&#160;</td>
-          <td class="paramname"><em>lowerVarBounds</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const std::vector&lt; double &gt;&#160;</td>
-          <td class="paramname"><em>upperVarBounds</em>&#160;</td>
+          <td class="paramtype">const <a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;&#160;</td>
+          <td class="paramname"><em>theNode</em>&#160;</td>
         </tr>
         <tr>
           <td></td>
@@ -1060,7 +752,7 @@ Private Attributes</h2></td></tr>
       </table>
   </td>
   <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">private</span></span>  </td>
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span>  </td>
   </tr>
 </table>
 </div><div class="memdoc">
@@ -1069,17 +761,15 @@ Private Attributes</h2></td></tr>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">theLBD</td><td>is the lower bound of the node </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">ID</td><td>is the id of the node </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">lowerVarBounds</td><td>are the variables lower bounds </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">upperVarBounds</td><td>are the variables upper bounds </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">theNode</td><td>is the node to be printed </td></tr>
   </table>
   </dd>
 </dl>
 
 </div>
 </div>
-<a id="ad1c6f9191a7ab197f5a48ea554594462"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ad1c6f9191a7ab197f5a48ea554594462">&#9670;&nbsp;</a></span>_print_one_node() <span class="overload">[2/8]</span></h2>
+<a id="ad301660df21f804bccefa3da694aa743"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad301660df21f804bccefa3da694aa743">&#9670;&nbsp;</a></span>_print_one_node() <span class="overload">[4/4]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1088,7 +778,7 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">void BranchAndBound::_print_one_node </td>
+          <td class="memname">void maingo::bab::BranchAndBound::_print_one_node </td>
           <td>(</td>
           <td class="paramtype">const double&#160;</td>
           <td class="paramname"><em>theLBD</em>, </td>
@@ -1096,20 +786,14 @@ Private Attributes</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const int&#160;</td>
-          <td class="paramname"><em>ID</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const std::vector&lt; double &gt;&#160;</td>
-          <td class="paramname"><em>lowerVarBounds</em>, </td>
+          <td class="paramtype">const <a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;&#160;</td>
+          <td class="paramname"><em>theNode</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const std::vector&lt; double &gt;&#160;</td>
-          <td class="paramname"><em>upperVarBounds</em>&#160;</td>
+          <td class="paramtype">std::ostream &amp;&#160;</td>
+          <td class="paramname"><em>outstream</em>&#160;</td>
         </tr>
         <tr>
           <td></td>
@@ -1119,7 +803,7 @@ Private Attributes</h2></td></tr>
       </table>
   </td>
   <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">private</span></span>  </td>
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span>  </td>
   </tr>
 </table>
 </div><div class="memdoc">
@@ -1128,894 +812,16 @@ Private Attributes</h2></td></tr>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">theLBD</td><td>is the lower bound of the node </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">ID</td><td>is the id of the node </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">lowerVarBounds</td><td>are the variables lower bounds </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">upperVarBounds</td><td>are the variables upper bounds </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">theNode</td><td>is the node to be printed </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">outstream</td><td>is the stream to be written to, e.g., an error message </td></tr>
   </table>
-  </dd>
-</dl>
-
-</div>
-</div>
-<a id="a202477d2ba7c16bf7d39dc4f77034c67"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a202477d2ba7c16bf7d39dc4f77034c67">&#9670;&nbsp;</a></span>_print_one_node() <span class="overload">[3/8]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">void maingo::bab::BranchAndBound::_print_one_node </td>
-          <td>(</td>
-          <td class="paramtype">const double&#160;</td>
-          <td class="paramname"><em>theLBD</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const int&#160;</td>
-          <td class="paramname"><em>ID</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const std::vector&lt; double &gt;&#160;</td>
-          <td class="paramname"><em>lowerVarBounds</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const std::vector&lt; double &gt;&#160;</td>
-          <td class="paramname"><em>upperVarBounds</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">std::ostream &amp;&#160;</td>
-          <td class="paramname"><em>outstream</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">private</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Function printing one node. </p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">theLBD</td><td>is the lower bound of the node </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">ID</td><td>is the id of the node </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">lowerVarBounds</td><td>are the variables lower bounds </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">upperVarBounds</td><td>are the variables upper bounds </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">outstream</td><td>is the stream to be written to, e.g., an error message </td></tr>
-  </table>
-  </dd>
-</dl>
-
-</div>
-</div>
-<a id="a01acae40320149ecfef11bda53350b3c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a01acae40320149ecfef11bda53350b3c">&#9670;&nbsp;</a></span>_print_one_node() <span class="overload">[4/8]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">void BranchAndBound::_print_one_node </td>
-          <td>(</td>
-          <td class="paramtype">const double&#160;</td>
-          <td class="paramname"><em>theLBD</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const int&#160;</td>
-          <td class="paramname"><em>ID</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const std::vector&lt; double &gt;&#160;</td>
-          <td class="paramname"><em>lowerVarBounds</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const std::vector&lt; double &gt;&#160;</td>
-          <td class="paramname"><em>upperVarBounds</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">std::ostream &amp;&#160;</td>
-          <td class="paramname"><em>outstream</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">private</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Function printing one node. </p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">theLBD</td><td>is the lower bound of the node </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">ID</td><td>is the id of the node </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">lowerVarBounds</td><td>are the variables lower bounds </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">upperVarBounds</td><td>are the variables upper bounds </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">outstream</td><td>is the stream to be written to, e.g., an error message </td></tr>
-  </table>
-  </dd>
-</dl>
-
-</div>
-</div>
-<a id="a1f542019964ce925a4d19eb951049da7"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a1f542019964ce925a4d19eb951049da7">&#9670;&nbsp;</a></span>_print_one_node() <span class="overload">[5/8]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">void maingo::bab::BranchAndBound::_print_one_node </td>
-          <td>(</td>
-          <td class="paramtype">const double&#160;</td>
-          <td class="paramname"><em>theLBD</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;&#160;</td>
-          <td class="paramname"><em>theNode</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Function printing one node. </p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">theLBD</td><td>is the lower bound of the node </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">theNode</td><td>is the node to be printed </td></tr>
-  </table>
-  </dd>
-</dl>
-
-</div>
-</div>
-<a id="a1f542019964ce925a4d19eb951049da7"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a1f542019964ce925a4d19eb951049da7">&#9670;&nbsp;</a></span>_print_one_node() <span class="overload">[6/8]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">void maingo::bab::BranchAndBound::_print_one_node </td>
-          <td>(</td>
-          <td class="paramtype">const double&#160;</td>
-          <td class="paramname"><em>theLBD</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;&#160;</td>
-          <td class="paramname"><em>theNode</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Function printing one node. </p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">theLBD</td><td>is the lower bound of the node </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">theNode</td><td>is the node to be printed </td></tr>
-  </table>
-  </dd>
-</dl>
-
-</div>
-</div>
-<a id="ad301660df21f804bccefa3da694aa743"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ad301660df21f804bccefa3da694aa743">&#9670;&nbsp;</a></span>_print_one_node() <span class="overload">[7/8]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">void maingo::bab::BranchAndBound::_print_one_node </td>
-          <td>(</td>
-          <td class="paramtype">const double&#160;</td>
-          <td class="paramname"><em>theLBD</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;&#160;</td>
-          <td class="paramname"><em>theNode</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">std::ostream &amp;&#160;</td>
-          <td class="paramname"><em>outstream</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Function printing one node. </p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">theLBD</td><td>is the lower bound of the node </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">theNode</td><td>is the node to be printed </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">outstream</td><td>is the stream to be written to, e.g., an error message </td></tr>
-  </table>
-  </dd>
-</dl>
-
-</div>
-</div>
-<a id="ad301660df21f804bccefa3da694aa743"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ad301660df21f804bccefa3da694aa743">&#9670;&nbsp;</a></span>_print_one_node() <span class="overload">[8/8]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">void maingo::bab::BranchAndBound::_print_one_node </td>
-          <td>(</td>
-          <td class="paramtype">const double&#160;</td>
-          <td class="paramname"><em>theLBD</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;&#160;</td>
-          <td class="paramname"><em>theNode</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">std::ostream &amp;&#160;</td>
-          <td class="paramname"><em>outstream</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Function printing one node. </p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">theLBD</td><td>is the lower bound of the node </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">theNode</td><td>is the node to be printed </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">outstream</td><td>is the stream to be written to, e.g., an error message </td></tr>
-  </table>
-  </dd>
-</dl>
-
-</div>
-</div>
-<a id="a4cab2a79ab0b12b712e7e45852be4a21"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a4cab2a79ab0b12b712e7e45852be4a21">&#9670;&nbsp;</a></span>_print_termination() <span class="overload">[1/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">void maingo::bab::BranchAndBound::_print_termination </td>
-          <td>(</td>
-          <td class="paramtype">std::string&#160;</td>
-          <td class="paramname"><em>message</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">private</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Function printing a termination message. </p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">message</td><td>is a string holding the message to print </td></tr>
-  </table>
-  </dd>
-</dl>
-
-</div>
-</div>
-<a id="a80be7a4efd5e0f39765c635d6be13116"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a80be7a4efd5e0f39765c635d6be13116">&#9670;&nbsp;</a></span>_print_termination() <span class="overload">[2/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">void BranchAndBound::_print_termination </td>
-          <td>(</td>
-          <td class="paramtype">std::string&#160;</td>
-          <td class="paramname"><em>message</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">private</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Function printing a termination message. </p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">message</td><td>is a string holding the message to print </td></tr>
-  </table>
-  </dd>
-</dl>
-
-</div>
-</div>
-<a id="a1a78374e95574fbe731cdd0d2dae7b53"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a1a78374e95574fbe731cdd0d2dae7b53">&#9670;&nbsp;</a></span>_process_node() <span class="overload">[1/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">std::tuple&lt;bool, bool, int, int, double, std::vector&lt;double&gt;, bool, double, std::vector&lt;double&gt; &gt; maingo::bab::BranchAndBound::_process_node </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;&#160;</td>
-          <td class="paramname"><em>currentNodeInOut</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">private</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Function processing the current node. </p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramdir">[in,out]</td><td class="paramname">currentNodeInOut</td><td>The node to be processed </td></tr>
-  </table>
-  </dd>
-</dl>
-
-</div>
-</div>
-<a id="a15520696d8e8e38197992c71ffd91c53"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a15520696d8e8e38197992c71ffd91c53">&#9670;&nbsp;</a></span>_process_node() <span class="overload">[2/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">std::tuple&lt; bool, bool, int, int, double, std::vector&lt; double &gt;, bool, double, std::vector&lt; double &gt; &gt; BranchAndBound::_process_node </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;&#160;</td>
-          <td class="paramname"><em>currentNodeInOut</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">private</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Function processing the current node. </p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramdir">[in,out]</td><td class="paramname">currentNodeInOut</td><td>The node to be processed </td></tr>
-  </table>
-  </dd>
-</dl>
-
-</div>
-</div>
-<a id="a3d09b996010632d9f782e9d7e5926e80"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3d09b996010632d9f782e9d7e5926e80">&#9670;&nbsp;</a></span>_solve_LBP() <span class="overload">[1/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">std::tuple&lt;bool, bool, double, std::vector&lt;double&gt;, <a class="el" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html">lbp::LbpDualInfo</a>&gt; maingo::bab::BranchAndBound::_solve_LBP </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;&#160;</td>
-          <td class="paramname"><em>currentNode</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">private</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Function invoking the LBS to solve the lower bounding problem. </p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">currentNode</td><td>The node to be processed </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Tuple consisting of flags for whether the node is infeasible and whether it is converged, the lower bound, the lower bounding solution point, and dual information for DBBT </dd></dl>
-
-</div>
-</div>
-<a id="a969736750315215126c3bad4b398d2e9"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a969736750315215126c3bad4b398d2e9">&#9670;&nbsp;</a></span>_solve_LBP() <span class="overload">[2/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">std::tuple&lt; bool, bool, double, std::vector&lt; double &gt;, <a class="el" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html">lbp::LbpDualInfo</a> &gt; BranchAndBound::_solve_LBP </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;&#160;</td>
-          <td class="paramname"><em>currentNode</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">private</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Function invoking the LBS to solve the lower bounding problem. </p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">currentNode</td><td>The node to be processed </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Tuple consisting of flags for whether the node is infeasible and whether it is converged, the lower bound, the lower bounding solution point, and dual information for DBBT </dd></dl>
-
-</div>
-</div>
-<a id="ab2bb968cb7c8aba14c9d42268fbb63e1"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ab2bb968cb7c8aba14c9d42268fbb63e1">&#9670;&nbsp;</a></span>_solve_UBP() <span class="overload">[1/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">std::tuple&lt;bool, bool, double&gt; maingo::bab::BranchAndBound::_solve_UBP </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;&#160;</td>
-          <td class="paramname"><em>currentNode</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">std::vector&lt; double &gt; &amp;&#160;</td>
-          <td class="paramname"><em>ubpSolutionPoint</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const double&#160;</td>
-          <td class="paramname"><em>currentLBD</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">private</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Function invoking the UBS to solve the upper bounding problem. </p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">currentNode</td><td>The node to be processed </td></tr>
-    <tr><td class="paramdir">[in,out]</td><td class="paramname">ubpSolutionPoint</td><td>On input: initial point for local search. On output: solution point. </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">currentLBD</td><td>Lower bound of current Node. Needed for sanity check. </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Tuple consisting of flags indicating whether a new feasible point has been found and whether the node converged, and the optimal objective value of the new point </dd></dl>
-
-</div>
-</div>
-<a id="acab7696c07ae41c7a9296c0977359b1e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#acab7696c07ae41c7a9296c0977359b1e">&#9670;&nbsp;</a></span>_solve_UBP() <span class="overload">[2/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">std::tuple&lt; bool, bool, double &gt; BranchAndBound::_solve_UBP </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;&#160;</td>
-          <td class="paramname"><em>currentNode</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">std::vector&lt; double &gt; &amp;&#160;</td>
-          <td class="paramname"><em>ubpSolutionPoint</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const double&#160;</td>
-          <td class="paramname"><em>currentLBD</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">private</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Function invoking the UBS to solve the upper bounding problem. </p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">currentNode</td><td>The node to be processed </td></tr>
-    <tr><td class="paramdir">[in,out]</td><td class="paramname">ubpSolutionPoint</td><td>On input: initial point for local search. On output: solution point. </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">currentLBD</td><td>Lower bound of current Node. Needed for sanity check. </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Tuple consisting of flags indicating whether a new feasible point has been found and whether the node converged, and the optimal objective value of the new point </dd></dl>
-
-</div>
-</div>
-<a id="a0608306463120a72b9ec32395044470f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a0608306463120a72b9ec32395044470f">&#9670;&nbsp;</a></span>_update_incumbent_and_fathom() <span class="overload">[1/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">void maingo::bab::BranchAndBound::_update_incumbent_and_fathom </td>
-          <td>(</td>
-          <td class="paramtype">const double&#160;</td>
-          <td class="paramname"><em>solval</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const std::vector&lt; double &gt;&#160;</td>
-          <td class="paramname"><em>sol</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const unsigned int&#160;</td>
-          <td class="paramname"><em>currentNodeID</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">private</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Function for updating the incumbent and fathoming accordingly. </p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">solval</td><td>is the value of the processed solution </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">sol</td><td>is the solution point </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">currentNodeID</td><td>is the ID of the new node holding the incumbent (it is used instead of directly giving the node to match the parallel implementation) </td></tr>
-  </table>
-  </dd>
-</dl>
-
-</div>
-</div>
-<a id="a13e706473cf2f26ac9b3d20344270aaa"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a13e706473cf2f26ac9b3d20344270aaa">&#9670;&nbsp;</a></span>_update_incumbent_and_fathom() <span class="overload">[2/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">void BranchAndBound::_update_incumbent_and_fathom </td>
-          <td>(</td>
-          <td class="paramtype">const double&#160;</td>
-          <td class="paramname"><em>solval</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const std::vector&lt; double &gt;&#160;</td>
-          <td class="paramname"><em>sol</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const unsigned int&#160;</td>
-          <td class="paramname"><em>currentNodeID</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">private</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Function for updating the incumbent and fathoming accordingly. </p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">solval</td><td>is the value of the processed solution </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">sol</td><td>is the solution point </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">currentNodeID</td><td>is the ID of the new node holding the incumbent (it is used instead of directly giving the node to match the parallel implementation) </td></tr>
-  </table>
-  </dd>
-</dl>
-
-</div>
-</div>
-<a id="ac6de991f9fa810bc93ed5ce47577e210"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ac6de991f9fa810bc93ed5ce47577e210">&#9670;&nbsp;</a></span>_update_lowest_lbd() <span class="overload">[1/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">void maingo::bab::BranchAndBound::_update_lowest_lbd </td>
-          <td>(</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">private</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Function for updating the global lower bound. </p>
-
-</div>
-</div>
-<a id="a5cbefb1e86ca300d67ae3c65eab1099b"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a5cbefb1e86ca300d67ae3c65eab1099b">&#9670;&nbsp;</a></span>_update_lowest_lbd() <span class="overload">[2/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">void BranchAndBound::_update_lowest_lbd </td>
-          <td>(</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">private</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Function for updating the global lower bound. </p>
-
-</div>
-</div>
-<a id="a4b993e6ced9b383b2ec2e3b4e617009a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a4b993e6ced9b383b2ec2e3b4e617009a">&#9670;&nbsp;</a></span>get_final_abs_gap() <span class="overload">[1/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">double maingo::bab::BranchAndBound::get_final_abs_gap </td>
-          <td>(</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Function returning the final absolute gap. </p>
-
-</div>
-</div>
-<a id="a4b993e6ced9b383b2ec2e3b4e617009a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a4b993e6ced9b383b2ec2e3b4e617009a">&#9670;&nbsp;</a></span>get_final_abs_gap() <span class="overload">[2/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">double maingo::bab::BranchAndBound::get_final_abs_gap </td>
-          <td>(</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Function returning the final absolute gap. </p>
-
-</div>
-</div>
-<a id="a2a6ba10d4cba3be0656bdc1f434b796d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a2a6ba10d4cba3be0656bdc1f434b796d">&#9670;&nbsp;</a></span>get_final_LBD() <span class="overload">[1/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">double maingo::bab::BranchAndBound::get_final_LBD </td>
-          <td>(</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Function returning the final LBD. </p>
+  </dd>
+</dl>
 
 </div>
 </div>
-<a id="a2a6ba10d4cba3be0656bdc1f434b796d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a2a6ba10d4cba3be0656bdc1f434b796d">&#9670;&nbsp;</a></span>get_final_LBD() <span class="overload">[2/2]</span></h2>
+<a id="a80be7a4efd5e0f39765c635d6be13116"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a80be7a4efd5e0f39765c635d6be13116">&#9670;&nbsp;</a></span>_print_termination()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2024,25 +830,32 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">double maingo::bab::BranchAndBound::get_final_LBD </td>
+          <td class="memname">void BranchAndBound::_print_termination </td>
           <td>(</td>
-          <td class="paramname"></td><td>)</td>
+          <td class="paramtype">std::string&#160;</td>
+          <td class="paramname"><em>message</em></td><td>)</td>
           <td></td>
         </tr>
       </table>
   </td>
   <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
   </tr>
 </table>
 </div><div class="memdoc">
 
-<p>Function returning the final LBD. </p>
+<p>Function printing a termination message. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">message</td><td>is a string holding the message to print </td></tr>
+  </table>
+  </dd>
+</dl>
 
 </div>
 </div>
-<a id="a18915a6568908d9aba4e09f1d2d8b23c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a18915a6568908d9aba4e09f1d2d8b23c">&#9670;&nbsp;</a></span>get_final_rel_gap() <span class="overload">[1/2]</span></h2>
+<a id="a15520696d8e8e38197992c71ffd91c53"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a15520696d8e8e38197992c71ffd91c53">&#9670;&nbsp;</a></span>_process_node()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2051,25 +864,32 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">double maingo::bab::BranchAndBound::get_final_rel_gap </td>
+          <td class="memname">std::tuple&lt; bool, bool, int, int, double, std::vector&lt; double &gt;, bool, double, std::vector&lt; double &gt; &gt; BranchAndBound::_process_node </td>
           <td>(</td>
-          <td class="paramname"></td><td>)</td>
+          <td class="paramtype"><a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;&#160;</td>
+          <td class="paramname"><em>currentNodeInOut</em></td><td>)</td>
           <td></td>
         </tr>
       </table>
   </td>
   <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
   </tr>
 </table>
 </div><div class="memdoc">
 
-<p>Function returning the final relative gap. </p>
+<p>Function processing the current node. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in,out]</td><td class="paramname">currentNodeInOut</td><td>The node to be processed </td></tr>
+  </table>
+  </dd>
+</dl>
 
 </div>
 </div>
-<a id="a18915a6568908d9aba4e09f1d2d8b23c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a18915a6568908d9aba4e09f1d2d8b23c">&#9670;&nbsp;</a></span>get_final_rel_gap() <span class="overload">[2/2]</span></h2>
+<a id="a969736750315215126c3bad4b398d2e9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a969736750315215126c3bad4b398d2e9">&#9670;&nbsp;</a></span>_solve_LBP()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2078,25 +898,33 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">double maingo::bab::BranchAndBound::get_final_rel_gap </td>
+          <td class="memname">std::tuple&lt; bool, bool, double, std::vector&lt; double &gt;, <a class="el" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html">lbp::LbpDualInfo</a> &gt; BranchAndBound::_solve_LBP </td>
           <td>(</td>
-          <td class="paramname"></td><td>)</td>
+          <td class="paramtype">const <a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;&#160;</td>
+          <td class="paramname"><em>currentNode</em></td><td>)</td>
           <td></td>
         </tr>
       </table>
   </td>
   <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
   </tr>
 </table>
 </div><div class="memdoc">
 
-<p>Function returning the final relative gap. </p>
+<p>Function invoking the LBS to solve the lower bounding problem. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">currentNode</td><td>The node to be processed </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Tuple consisting of flags for whether the node is infeasible and whether it is converged, the lower bound, the lower bounding solution point, and dual information for DBBT </dd></dl>
 
 </div>
 </div>
-<a id="a63faf2c1a9fa6aaa062a271455813c01"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a63faf2c1a9fa6aaa062a271455813c01">&#9670;&nbsp;</a></span>get_first_found() <span class="overload">[1/2]</span></h2>
+<a id="acab7696c07ae41c7a9296c0977359b1e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acab7696c07ae41c7a9296c0977359b1e">&#9670;&nbsp;</a></span>_solve_UBP()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2105,25 +933,51 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">double maingo::bab::BranchAndBound::get_first_found </td>
+          <td class="memname">std::tuple&lt; bool, bool, double &gt; BranchAndBound::_solve_UBP </td>
           <td>(</td>
-          <td class="paramname"></td><td>)</td>
+          <td class="paramtype">const <a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;&#160;</td>
+          <td class="paramname"><em>currentNode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
           <td></td>
+          <td class="paramtype">std::vector&lt; double &gt; &amp;&#160;</td>
+          <td class="paramname"><em>ubpSolutionPoint</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const double&#160;</td>
+          <td class="paramname"><em>currentLBD</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
         </tr>
       </table>
   </td>
   <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
   </tr>
 </table>
 </div><div class="memdoc">
 
-<p>Function returning the ID of the node where the incumbent was first found. </p>
+<p>Function invoking the UBS to solve the upper bounding problem. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">currentNode</td><td>The node to be processed </td></tr>
+    <tr><td class="paramdir">[in,out]</td><td class="paramname">ubpSolutionPoint</td><td>On input: initial point for local search. On output: solution point. </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">currentLBD</td><td>Lower bound of current Node. Needed for sanity check. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Tuple consisting of flags indicating whether a new feasible point has been found and whether the node converged, and the optimal objective value of the new point </dd></dl>
 
 </div>
 </div>
-<a id="a63faf2c1a9fa6aaa062a271455813c01"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a63faf2c1a9fa6aaa062a271455813c01">&#9670;&nbsp;</a></span>get_first_found() <span class="overload">[2/2]</span></h2>
+<a id="a13e706473cf2f26ac9b3d20344270aaa"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a13e706473cf2f26ac9b3d20344270aaa">&#9670;&nbsp;</a></span>_update_incumbent_and_fathom()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2132,25 +986,50 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">double maingo::bab::BranchAndBound::get_first_found </td>
+          <td class="memname">void BranchAndBound::_update_incumbent_and_fathom </td>
           <td>(</td>
-          <td class="paramname"></td><td>)</td>
+          <td class="paramtype">const double&#160;</td>
+          <td class="paramname"><em>solval</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::vector&lt; double &gt;&#160;</td>
+          <td class="paramname"><em>sol</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const unsigned int&#160;</td>
+          <td class="paramname"><em>currentNodeID</em>&#160;</td>
+        </tr>
+        <tr>
           <td></td>
+          <td>)</td>
+          <td></td><td></td>
         </tr>
       </table>
   </td>
   <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
   </tr>
 </table>
 </div><div class="memdoc">
 
-<p>Function returning the ID of the node where the incumbent was first found. </p>
+<p>Function for updating the incumbent and fathoming accordingly. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">solval</td><td>is the value of the processed solution </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">sol</td><td>is the solution point </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">currentNodeID</td><td>is the ID of the new node holding the incumbent (it is used instead of directly giving the node to match the parallel implementation) </td></tr>
+  </table>
+  </dd>
+</dl>
 
 </div>
 </div>
-<a id="a90cf43573f5755481bdd020dcaa7d351"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a90cf43573f5755481bdd020dcaa7d351">&#9670;&nbsp;</a></span>get_iterations() <span class="overload">[1/2]</span></h2>
+<a id="a5cbefb1e86ca300d67ae3c65eab1099b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5cbefb1e86ca300d67ae3c65eab1099b">&#9670;&nbsp;</a></span>_update_lowest_lbd()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2159,7 +1038,7 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">double maingo::bab::BranchAndBound::get_iterations </td>
+          <td class="memname">void BranchAndBound::_update_lowest_lbd </td>
           <td>(</td>
           <td class="paramname"></td><td>)</td>
           <td></td>
@@ -2167,17 +1046,17 @@ Private Attributes</h2></td></tr>
       </table>
   </td>
   <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
   </tr>
 </table>
 </div><div class="memdoc">
 
-<p>Function returning the number of iterations. </p>
+<p>Function for updating the global lower bound. </p>
 
 </div>
 </div>
-<a id="a90cf43573f5755481bdd020dcaa7d351"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a90cf43573f5755481bdd020dcaa7d351">&#9670;&nbsp;</a></span>get_iterations() <span class="overload">[2/2]</span></h2>
+<a id="a4b993e6ced9b383b2ec2e3b4e617009a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4b993e6ced9b383b2ec2e3b4e617009a">&#9670;&nbsp;</a></span>get_final_abs_gap()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2186,7 +1065,7 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">double maingo::bab::BranchAndBound::get_iterations </td>
+          <td class="memname">double maingo::bab::BranchAndBound::get_final_abs_gap </td>
           <td>(</td>
           <td class="paramname"></td><td>)</td>
           <td></td>
@@ -2199,12 +1078,12 @@ Private Attributes</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Function returning the number of iterations. </p>
+<p>Function returning the final absolute gap. </p>
 
 </div>
 </div>
-<a id="af593cef9ed1bcfa512f7302732b9a614"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#af593cef9ed1bcfa512f7302732b9a614">&#9670;&nbsp;</a></span>get_LBP_count() <span class="overload">[1/2]</span></h2>
+<a id="a2a6ba10d4cba3be0656bdc1f434b796d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2a6ba10d4cba3be0656bdc1f434b796d">&#9670;&nbsp;</a></span>get_final_LBD()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2213,7 +1092,7 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">double maingo::bab::BranchAndBound::get_LBP_count </td>
+          <td class="memname">double maingo::bab::BranchAndBound::get_final_LBD </td>
           <td>(</td>
           <td class="paramname"></td><td>)</td>
           <td></td>
@@ -2226,12 +1105,12 @@ Private Attributes</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Function returning number of LBD problems solved. </p>
+<p>Function returning the final LBD. </p>
 
 </div>
 </div>
-<a id="af593cef9ed1bcfa512f7302732b9a614"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#af593cef9ed1bcfa512f7302732b9a614">&#9670;&nbsp;</a></span>get_LBP_count() <span class="overload">[2/2]</span></h2>
+<a id="a18915a6568908d9aba4e09f1d2d8b23c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a18915a6568908d9aba4e09f1d2d8b23c">&#9670;&nbsp;</a></span>get_final_rel_gap()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2240,7 +1119,7 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">double maingo::bab::BranchAndBound::get_LBP_count </td>
+          <td class="memname">double maingo::bab::BranchAndBound::get_final_rel_gap </td>
           <td>(</td>
           <td class="paramname"></td><td>)</td>
           <td></td>
@@ -2253,12 +1132,12 @@ Private Attributes</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Function returning number of LBD problems solved. </p>
+<p>Function returning the final relative gap. </p>
 
 </div>
 </div>
-<a id="a668165551fb2c2cc69a05b1956755147"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a668165551fb2c2cc69a05b1956755147">&#9670;&nbsp;</a></span>get_max_nodes_in_memory() <span class="overload">[1/2]</span></h2>
+<a id="a63faf2c1a9fa6aaa062a271455813c01"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a63faf2c1a9fa6aaa062a271455813c01">&#9670;&nbsp;</a></span>get_first_found()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2267,7 +1146,7 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">double maingo::bab::BranchAndBound::get_max_nodes_in_memory </td>
+          <td class="memname">double maingo::bab::BranchAndBound::get_first_found </td>
           <td>(</td>
           <td class="paramname"></td><td>)</td>
           <td></td>
@@ -2280,12 +1159,12 @@ Private Attributes</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Function returning the maximum number of nodes in memory. </p>
+<p>Function returning the ID of the node where the incumbent was first found. </p>
 
 </div>
 </div>
-<a id="a668165551fb2c2cc69a05b1956755147"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a668165551fb2c2cc69a05b1956755147">&#9670;&nbsp;</a></span>get_max_nodes_in_memory() <span class="overload">[2/2]</span></h2>
+<a id="a90cf43573f5755481bdd020dcaa7d351"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a90cf43573f5755481bdd020dcaa7d351">&#9670;&nbsp;</a></span>get_iterations()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2294,7 +1173,7 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">double maingo::bab::BranchAndBound::get_max_nodes_in_memory </td>
+          <td class="memname">double maingo::bab::BranchAndBound::get_iterations </td>
           <td>(</td>
           <td class="paramname"></td><td>)</td>
           <td></td>
@@ -2307,12 +1186,12 @@ Private Attributes</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Function returning the maximum number of nodes in memory. </p>
+<p>Function returning the number of iterations. </p>
 
 </div>
 </div>
-<a id="ae420e5187f1c1595d132a27bdc656529"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ae420e5187f1c1595d132a27bdc656529">&#9670;&nbsp;</a></span>get_nodes_left() <span class="overload">[1/2]</span></h2>
+<a id="af593cef9ed1bcfa512f7302732b9a614"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af593cef9ed1bcfa512f7302732b9a614">&#9670;&nbsp;</a></span>get_LBP_count()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2321,7 +1200,7 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">double maingo::bab::BranchAndBound::get_nodes_left </td>
+          <td class="memname">double maingo::bab::BranchAndBound::get_LBP_count </td>
           <td>(</td>
           <td class="paramname"></td><td>)</td>
           <td></td>
@@ -2334,12 +1213,12 @@ Private Attributes</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Function returning the number of nodes left after termination of B&amp;B. </p>
+<p>Function returning number of LBD problems solved. </p>
 
 </div>
 </div>
-<a id="ae420e5187f1c1595d132a27bdc656529"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ae420e5187f1c1595d132a27bdc656529">&#9670;&nbsp;</a></span>get_nodes_left() <span class="overload">[2/2]</span></h2>
+<a id="a668165551fb2c2cc69a05b1956755147"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a668165551fb2c2cc69a05b1956755147">&#9670;&nbsp;</a></span>get_max_nodes_in_memory()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2348,7 +1227,7 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">double maingo::bab::BranchAndBound::get_nodes_left </td>
+          <td class="memname">double maingo::bab::BranchAndBound::get_max_nodes_in_memory </td>
           <td>(</td>
           <td class="paramname"></td><td>)</td>
           <td></td>
@@ -2361,12 +1240,12 @@ Private Attributes</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Function returning the number of nodes left after termination of B&amp;B. </p>
+<p>Function returning the maximum number of nodes in memory. </p>
 
 </div>
 </div>
-<a id="a3da7e60c4fad8100f38732fc06d2547c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3da7e60c4fad8100f38732fc06d2547c">&#9670;&nbsp;</a></span>get_UBP_count() <span class="overload">[1/2]</span></h2>
+<a id="ae420e5187f1c1595d132a27bdc656529"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae420e5187f1c1595d132a27bdc656529">&#9670;&nbsp;</a></span>get_nodes_left()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2375,7 +1254,7 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">double maingo::bab::BranchAndBound::get_UBP_count </td>
+          <td class="memname">double maingo::bab::BranchAndBound::get_nodes_left </td>
           <td>(</td>
           <td class="paramname"></td><td>)</td>
           <td></td>
@@ -2388,12 +1267,12 @@ Private Attributes</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Function returning number of UBD problems solved. </p>
+<p>Function returning the number of nodes left after termination of B&amp;B. </p>
 
 </div>
 </div>
 <a id="a3da7e60c4fad8100f38732fc06d2547c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3da7e60c4fad8100f38732fc06d2547c">&#9670;&nbsp;</a></span>get_UBP_count() <span class="overload">[2/2]</span></h2>
+<h2 class="memtitle"><span class="permalink"><a href="#a3da7e60c4fad8100f38732fc06d2547c">&#9670;&nbsp;</a></span>get_UBP_count()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2417,69 +1296,10 @@ Private Attributes</h2></td></tr>
 
 <p>Function returning number of UBD problems solved. </p>
 
-</div>
-</div>
-<a id="a44ead97b56cfae660cbe695ef8dffb38"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a44ead97b56cfae660cbe695ef8dffb38">&#9670;&nbsp;</a></span>solve() <span class="overload">[1/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2">babBase::enums::BAB_RETCODE</a> maingo::bab::BranchAndBound::solve </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;&#160;</td>
-          <td class="paramname"><em>rootNodeIn</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">double &amp;&#160;</td>
-          <td class="paramname"><em>solutionValue</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">std::vector&lt; double &gt; &amp;&#160;</td>
-          <td class="paramname"><em>solutionPoint</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const double&#160;</td>
-          <td class="paramname"><em>preprocessTime</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">double &amp;&#160;</td>
-          <td class="paramname"><em>timePassed</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p>Main function to solve the optimization problem. </p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramdir">[in]</td><td class="paramname">rootNodeIn</td><td>Root node to start Branch&amp;Bound on. </td></tr>
-    <tr><td class="paramdir">[in,out]</td><td class="paramname">solutionValue</td><td>Objective value of best feasible point found (empty if no feasible point was found); Also used for communicating objective value of initial feasible point. </td></tr>
-    <tr><td class="paramdir">[in,out]</td><td class="paramname">solutionPoint</td><td>Solution point, i.e., (one of) the point(s) at which the best objective value was found (empty if no feasible point was found); Also used for communicating initial feasible point. </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">preprocessTime</td><td>Is the CPU time spent in pre-processing before invoking this solve routine (needed for correct output of total CPU time during B&amp;B) </td></tr>
-    <tr><td class="paramdir">[out]</td><td class="paramname">timePassed</td><td>Is the CPU time spent in B&amp;B (especially useful if time is &gt;24h) </td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>Return code summarizing the solution status. </dd></dl>
-
 </div>
 </div>
 <a id="afbbe46b34b476fa5b54c5faa112581b6"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#afbbe46b34b476fa5b54c5faa112581b6">&#9670;&nbsp;</a></span>solve() <span class="overload">[2/2]</span></h2>
+<h2 class="memtitle"><span class="permalink"><a href="#afbbe46b34b476fa5b54c5faa112581b6">&#9670;&nbsp;</a></span>solve()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2561,8 +1381,8 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="a88d35fc68351774dadb831c38ffd93ee"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a88d35fc68351774dadb831c38ffd93ee">&#9670;&nbsp;</a></span>_brancher</h2>
+<a id="ae1454635b53b98cc4e395fd3ed7faca0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae1454635b53b98cc4e395fd3ed7faca0">&#9670;&nbsp;</a></span>_brancher</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2571,7 +1391,7 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">std::unique_ptr&lt; <a class="el" href="classbab_base_1_1_brancher.html">babBase::Brancher</a> &gt; maingo::bab::BranchAndBound::_brancher</td>
+          <td class="memname">std::unique_ptr&lt;<a class="el" href="classbab_base_1_1_brancher.html">babBase::Brancher</a>&gt; maingo::bab::BranchAndBound::_brancher</td>
         </tr>
       </table>
   </td>
@@ -2653,8 +1473,8 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="ac3e65fd10f0294c31f8428330e517f85"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ac3e65fd10f0294c31f8428330e517f85">&#9670;&nbsp;</a></span>_incumbent</h2>
+<a id="a2685cdd222deff1b30e3b83c7b4bb259"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2685cdd222deff1b30e3b83c7b4bb259">&#9670;&nbsp;</a></span>_incumbent</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2663,7 +1483,7 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">std::vector&lt; double &gt; maingo::bab::BranchAndBound::_incumbent</td>
+          <td class="memname">std::vector&lt;double&gt; maingo::bab::BranchAndBound::_incumbent</td>
         </tr>
       </table>
   </td>
@@ -2699,8 +1519,8 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="acc2f5918ff76d313d9f0d9eae3c749cd"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#acc2f5918ff76d313d9f0d9eae3c749cd">&#9670;&nbsp;</a></span>_initialPoint</h2>
+<a id="a1f509aa5a3de69ff00e8d2c31b654d48"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1f509aa5a3de69ff00e8d2c31b654d48">&#9670;&nbsp;</a></span>_initialPoint</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2709,7 +1529,7 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">std::vector&lt; double &gt; maingo::bab::BranchAndBound::_initialPoint</td>
+          <td class="memname">std::vector&lt;double&gt; maingo::bab::BranchAndBound::_initialPoint</td>
         </tr>
       </table>
   </td>
@@ -2856,12 +1676,12 @@ Private Attributes</h2></td></tr>
   </tr>
 </table>
 </div><div class="memdoc">
-<p>lowest lower bound before update in <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a5cbefb1e86ca300d67ae3c65eab1099b" title="Function for updating the global lower bound.">_update_lowest_lbd()</a> </p>
+<p>lowest lower bound before update in <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a5cbefb1e86ca300d67ae3c65eab1099b" title="Function for updating the global lower bound. ">_update_lowest_lbd()</a> </p>
 
 </div>
 </div>
-<a id="a16bbea3c96042145acc5df3830cd72b4"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a16bbea3c96042145acc5df3830cd72b4">&#9670;&nbsp;</a></span>_LBS</h2>
+<a id="a4a63abd1f85d04b411bd3f46c95c994b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4a63abd1f85d04b411bd3f46c95c994b">&#9670;&nbsp;</a></span>_LBS</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2870,7 +1690,7 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">lbp::LowerBoundingSolver</a> &gt; maingo::bab::BranchAndBound::_LBS</td>
+          <td class="memname">std::shared_ptr&lt;<a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">lbp::LowerBoundingSolver</a>&gt; maingo::bab::BranchAndBound::_LBS</td>
         </tr>
       </table>
   </td>
@@ -2906,8 +1726,8 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="aaf1e5ea028afe7d2700a6cc573d67674"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aaf1e5ea028afe7d2700a6cc573d67674">&#9670;&nbsp;</a></span>_logger</h2>
+<a id="a7bd1a5254c74b3adac3b74712d92257e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7bd1a5254c74b3adac3b74712d92257e">&#9670;&nbsp;</a></span>_logger</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2916,7 +1736,7 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classmaingo_1_1_logger.html">Logger</a> * maingo::bab::BranchAndBound::_logger</td>
+          <td class="memname">std::shared_ptr&lt;<a class="el" href="classmaingo_1_1_logger.html">Logger</a>&gt; maingo::bab::BranchAndBound::_logger</td>
         </tr>
       </table>
   </td>
@@ -2929,8 +1749,8 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="a0a241298a1b0f9b0707386e9143e0186"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a0a241298a1b0f9b0707386e9143e0186">&#9670;&nbsp;</a></span>_lowerVarBoundsOrig</h2>
+<a id="a9836ba957bbfd2acace285065fe81710"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9836ba957bbfd2acace285065fe81710">&#9670;&nbsp;</a></span>_lowerVarBoundsOrig</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2939,7 +1759,7 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">std::vector&lt; double &gt; maingo::bab::BranchAndBound::_lowerVarBoundsOrig</td>
+          <td class="memname">std::vector&lt;double&gt; maingo::bab::BranchAndBound::_lowerVarBoundsOrig</td>
         </tr>
       </table>
   </td>
@@ -2952,8 +1772,8 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="acca388f26f5e0c94b58643b566b8a235"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#acca388f26f5e0c94b58643b566b8a235">&#9670;&nbsp;</a></span>_maingoSettings</h2>
+<a id="abb34f49557e1d417e5a87a467cee2ec8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abb34f49557e1d417e5a87a467cee2ec8">&#9670;&nbsp;</a></span>_maingoSettings</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -2962,7 +1782,7 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="structmaingo_1_1_settings.html">Settings</a> * maingo::bab::BranchAndBound::_maingoSettings</td>
+          <td class="memname">std::shared_ptr&lt;<a class="el" href="structmaingo_1_1_settings.html">Settings</a>&gt; maingo::bab::BranchAndBound::_maingoSettings</td>
         </tr>
       </table>
   </td>
@@ -3159,8 +1979,8 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="aa47a427d6c433a26a35b5882e54480e4"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aa47a427d6c433a26a35b5882e54480e4">&#9670;&nbsp;</a></span>_originalVariables</h2>
+<a id="a54fa45d1751c9a81b346bd7cd1f5969c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a54fa45d1751c9a81b346bd7cd1f5969c">&#9670;&nbsp;</a></span>_originalVariables</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -3169,7 +1989,7 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; maingo::bab::BranchAndBound::_originalVariables</td>
+          <td class="memname">std::vector&lt;<a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a>&gt; maingo::bab::BranchAndBound::_originalVariables</td>
         </tr>
       </table>
   </td>
@@ -3320,8 +2140,8 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="af1853b2ef51e8bddd0a9ab2404340037"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#af1853b2ef51e8bddd0a9ab2404340037">&#9670;&nbsp;</a></span>_UBS</h2>
+<a id="aba6e92ef8af1e76b62a543e1334b4948"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aba6e92ef8af1e76b62a543e1334b4948">&#9670;&nbsp;</a></span>_UBS</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -3330,7 +2150,7 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">ubp::UpperBoundingSolver</a> &gt; maingo::bab::BranchAndBound::_UBS</td>
+          <td class="memname">std::shared_ptr&lt;<a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">ubp::UpperBoundingSolver</a>&gt; maingo::bab::BranchAndBound::_UBS</td>
         </tr>
       </table>
   </td>
@@ -3343,8 +2163,8 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="a5bd0987c7dde438e8d52af87421d78c5"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a5bd0987c7dde438e8d52af87421d78c5">&#9670;&nbsp;</a></span>_upperVarBoundsOrig</h2>
+<a id="a6087a84349286d46bfc4a6633f5c881b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6087a84349286d46bfc4a6633f5c881b">&#9670;&nbsp;</a></span>_upperVarBoundsOrig</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -3353,7 +2173,7 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">std::vector&lt; double &gt; maingo::bab::BranchAndBound::_upperVarBoundsOrig</td>
+          <td class="memname">std::vector&lt;double&gt; maingo::bab::BranchAndBound::_upperVarBoundsOrig</td>
         </tr>
       </table>
   </td>
@@ -3364,29 +2184,6 @@ Private Attributes</h2></td></tr>
 </div><div class="memdoc">
 <p>vector storing upper bounds </p>
 
-</div>
-</div>
-<a id="a2845411391c8498e7eece2e2e3ba073b"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a2845411391c8498e7eece2e2e3ba073b">&#9670;&nbsp;</a></span>_wallPassed</h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">double maingo::bab::BranchAndBound::_wallPassed</td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">private</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-<p>total wall clock time in seconds </p>
-
 </div>
 </div>
 <a id="a193f594912e00a2c4d8cacfd4efbdfd5"></a>
@@ -3413,10 +2210,8 @@ Private Attributes</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this class was generated from the following files:<ul>
-<li>C:/Users/dobo01/maingo/inc/<a class="el" href="bab_8h_source.html">bab.h</a></li>
-<li>C:/Users/dobo01/maingo/inc/<a class="el" href="bab_w_a_l_l_8h_source.html">babWALL.h</a></li>
-<li>C:/Users/dobo01/maingo/src/<a class="el" href="bab_8cpp.html">bab.cpp</a></li>
-<li>C:/Users/dobo01/maingo/src/<a class="el" href="bab_w_a_l_l_8cpp.html">babWALL.cpp</a></li>
+<li>C:/dobo01/maingo/inc/<a class="el" href="bab_8h_source.html">bab.h</a></li>
+<li>C:/dobo01/maingo/src/<a class="el" href="bab_8cpp.html">bab.cpp</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -3426,7 +2221,7 @@ Private Attributes</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="namespacemaingo_1_1bab.html">bab</a></li><li class="navelem"><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html">BranchAndBound</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1bab_1_1_branch_and_bound.js b/doc/html/classmaingo_1_1bab_1_1_branch_and_bound.js
index 3419de6e39c04368ec7e522d60024de22c7a8f80..863fb5b335e3034d049d17c52a960b62dc0d78b3 100644
--- a/doc/html/classmaingo_1_1bab_1_1_branch_and_bound.js
+++ b/doc/html/classmaingo_1_1bab_1_1_branch_and_bound.js
@@ -1,94 +1,56 @@
 var classmaingo_1_1bab_1_1_branch_and_bound =
 [
     [ "_TERMINATION_TYPE", "classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1", [
-      [ "_TERMINATED", "classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ac0b46b223d15cc2e3851dcaf961b9e7a", null ],
-      [ "_TERMINATED_WORKERS_ACTIVE", "classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ab77e9f73c90db0ea95610d8103738966", null ],
-      [ "_NOT_TERMINATED", "classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a244a114749491f6b442fd2563fefbc5e", null ],
-      [ "_TERMINATED", "classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ac0b46b223d15cc2e3851dcaf961b9e7a", null ],
-      [ "_TERMINATED_WORKERS_ACTIVE", "classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ab77e9f73c90db0ea95610d8103738966", null ],
-      [ "_NOT_TERMINATED", "classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a244a114749491f6b442fd2563fefbc5e", null ]
+      [ "_TERMINATED", "classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a1a904c0cb2e9786677bfd0c13951dec7", null ],
+      [ "_TERMINATED_WORKERS_ACTIVE", "classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a803a5e6c3589e7407f7993fff57c30dd", null ],
+      [ "_NOT_TERMINATED", "classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a4606d4d76cdd55c82480e7e28a65d67a", null ]
     ] ],
-    [ "_TERMINATION_TYPE", "classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1", [
-      [ "_TERMINATED", "classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ac0b46b223d15cc2e3851dcaf961b9e7a", null ],
-      [ "_TERMINATED_WORKERS_ACTIVE", "classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ab77e9f73c90db0ea95610d8103738966", null ],
-      [ "_NOT_TERMINATED", "classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a244a114749491f6b442fd2563fefbc5e", null ],
-      [ "_TERMINATED", "classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ac0b46b223d15cc2e3851dcaf961b9e7a", null ],
-      [ "_TERMINATED_WORKERS_ACTIVE", "classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ab77e9f73c90db0ea95610d8103738966", null ],
-      [ "_NOT_TERMINATED", "classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a244a114749491f6b442fd2563fefbc5e", null ]
-    ] ],
-    [ "BranchAndBound", "classmaingo_1_1bab_1_1_branch_and_bound.html#a0795ab80ed85f416a1834c2bc62f2d88", null ],
+    [ "BranchAndBound", "classmaingo_1_1bab_1_1_branch_and_bound.html#ab1e963d56b3adc807decb6e4dc1bee85", null ],
     [ "~BranchAndBound", "classmaingo_1_1bab_1_1_branch_and_bound.html#a7db5251fcd9ad3ca2892a9b17cb7b197", null ],
-    [ "BranchAndBound", "classmaingo_1_1bab_1_1_branch_and_bound.html#a2d88760ca48bcea923ba4e868d5bdf43", null ],
-    [ "~BranchAndBound", "classmaingo_1_1bab_1_1_branch_and_bound.html#a7db5251fcd9ad3ca2892a9b17cb7b197", null ],
-    [ "_check_if_more_scaling_needed", "classmaingo_1_1bab_1_1_branch_and_bound.html#a60c5f5d7ae8fab91f990846207e88144", null ],
     [ "_check_if_more_scaling_needed", "classmaingo_1_1bab_1_1_branch_and_bound.html#ad5e5e8e1a0f2a3dda0a6deac59409fd6", null ],
-    [ "_check_termination", "classmaingo_1_1bab_1_1_branch_and_bound.html#a18cf39c5def55fea60f33438b77fece2", null ],
     [ "_check_termination", "classmaingo_1_1bab_1_1_branch_and_bound.html#a535696550d694df9bc017ef6cd144a58", null ],
-    [ "_display_and_log_progress", "classmaingo_1_1bab_1_1_branch_and_bound.html#af04b0ab5a5979ba684b4edf2a223d5ec", null ],
     [ "_display_and_log_progress", "classmaingo_1_1bab_1_1_branch_and_bound.html#ad2b56f40c7255d731c196b1661cee2d4", null ],
-    [ "_postprocess_node", "classmaingo_1_1bab_1_1_branch_and_bound.html#aa35b55427764ada3cba0b0a74adafe0e", null ],
     [ "_postprocess_node", "classmaingo_1_1bab_1_1_branch_and_bound.html#a29001119914eca2657390048e11db609", null ],
-    [ "_preprocess_node", "classmaingo_1_1bab_1_1_branch_and_bound.html#a6ab1475deadb8906e5d680911e747469", null ],
     [ "_preprocess_node", "classmaingo_1_1bab_1_1_branch_and_bound.html#a990927b31d0abc3c0df5ab3883c12de1", null ],
-    [ "_print_one_node", "classmaingo_1_1bab_1_1_branch_and_bound.html#a3250e84e0547b8de82d91fe929c0e8d9", null ],
     [ "_print_one_node", "classmaingo_1_1bab_1_1_branch_and_bound.html#ad1c6f9191a7ab197f5a48ea554594462", null ],
-    [ "_print_one_node", "classmaingo_1_1bab_1_1_branch_and_bound.html#a202477d2ba7c16bf7d39dc4f77034c67", null ],
     [ "_print_one_node", "classmaingo_1_1bab_1_1_branch_and_bound.html#a01acae40320149ecfef11bda53350b3c", null ],
     [ "_print_one_node", "classmaingo_1_1bab_1_1_branch_and_bound.html#a1f542019964ce925a4d19eb951049da7", null ],
-    [ "_print_one_node", "classmaingo_1_1bab_1_1_branch_and_bound.html#a1f542019964ce925a4d19eb951049da7", null ],
     [ "_print_one_node", "classmaingo_1_1bab_1_1_branch_and_bound.html#ad301660df21f804bccefa3da694aa743", null ],
-    [ "_print_one_node", "classmaingo_1_1bab_1_1_branch_and_bound.html#ad301660df21f804bccefa3da694aa743", null ],
-    [ "_print_termination", "classmaingo_1_1bab_1_1_branch_and_bound.html#a4cab2a79ab0b12b712e7e45852be4a21", null ],
     [ "_print_termination", "classmaingo_1_1bab_1_1_branch_and_bound.html#a80be7a4efd5e0f39765c635d6be13116", null ],
-    [ "_process_node", "classmaingo_1_1bab_1_1_branch_and_bound.html#a1a78374e95574fbe731cdd0d2dae7b53", null ],
     [ "_process_node", "classmaingo_1_1bab_1_1_branch_and_bound.html#a15520696d8e8e38197992c71ffd91c53", null ],
-    [ "_solve_LBP", "classmaingo_1_1bab_1_1_branch_and_bound.html#a3d09b996010632d9f782e9d7e5926e80", null ],
     [ "_solve_LBP", "classmaingo_1_1bab_1_1_branch_and_bound.html#a969736750315215126c3bad4b398d2e9", null ],
-    [ "_solve_UBP", "classmaingo_1_1bab_1_1_branch_and_bound.html#ab2bb968cb7c8aba14c9d42268fbb63e1", null ],
     [ "_solve_UBP", "classmaingo_1_1bab_1_1_branch_and_bound.html#acab7696c07ae41c7a9296c0977359b1e", null ],
-    [ "_update_incumbent_and_fathom", "classmaingo_1_1bab_1_1_branch_and_bound.html#a0608306463120a72b9ec32395044470f", null ],
     [ "_update_incumbent_and_fathom", "classmaingo_1_1bab_1_1_branch_and_bound.html#a13e706473cf2f26ac9b3d20344270aaa", null ],
-    [ "_update_lowest_lbd", "classmaingo_1_1bab_1_1_branch_and_bound.html#ac6de991f9fa810bc93ed5ce47577e210", null ],
     [ "_update_lowest_lbd", "classmaingo_1_1bab_1_1_branch_and_bound.html#a5cbefb1e86ca300d67ae3c65eab1099b", null ],
     [ "get_final_abs_gap", "classmaingo_1_1bab_1_1_branch_and_bound.html#a4b993e6ced9b383b2ec2e3b4e617009a", null ],
-    [ "get_final_abs_gap", "classmaingo_1_1bab_1_1_branch_and_bound.html#a4b993e6ced9b383b2ec2e3b4e617009a", null ],
-    [ "get_final_LBD", "classmaingo_1_1bab_1_1_branch_and_bound.html#a2a6ba10d4cba3be0656bdc1f434b796d", null ],
     [ "get_final_LBD", "classmaingo_1_1bab_1_1_branch_and_bound.html#a2a6ba10d4cba3be0656bdc1f434b796d", null ],
     [ "get_final_rel_gap", "classmaingo_1_1bab_1_1_branch_and_bound.html#a18915a6568908d9aba4e09f1d2d8b23c", null ],
-    [ "get_final_rel_gap", "classmaingo_1_1bab_1_1_branch_and_bound.html#a18915a6568908d9aba4e09f1d2d8b23c", null ],
-    [ "get_first_found", "classmaingo_1_1bab_1_1_branch_and_bound.html#a63faf2c1a9fa6aaa062a271455813c01", null ],
     [ "get_first_found", "classmaingo_1_1bab_1_1_branch_and_bound.html#a63faf2c1a9fa6aaa062a271455813c01", null ],
     [ "get_iterations", "classmaingo_1_1bab_1_1_branch_and_bound.html#a90cf43573f5755481bdd020dcaa7d351", null ],
-    [ "get_iterations", "classmaingo_1_1bab_1_1_branch_and_bound.html#a90cf43573f5755481bdd020dcaa7d351", null ],
-    [ "get_LBP_count", "classmaingo_1_1bab_1_1_branch_and_bound.html#af593cef9ed1bcfa512f7302732b9a614", null ],
     [ "get_LBP_count", "classmaingo_1_1bab_1_1_branch_and_bound.html#af593cef9ed1bcfa512f7302732b9a614", null ],
     [ "get_max_nodes_in_memory", "classmaingo_1_1bab_1_1_branch_and_bound.html#a668165551fb2c2cc69a05b1956755147", null ],
-    [ "get_max_nodes_in_memory", "classmaingo_1_1bab_1_1_branch_and_bound.html#a668165551fb2c2cc69a05b1956755147", null ],
-    [ "get_nodes_left", "classmaingo_1_1bab_1_1_branch_and_bound.html#ae420e5187f1c1595d132a27bdc656529", null ],
     [ "get_nodes_left", "classmaingo_1_1bab_1_1_branch_and_bound.html#ae420e5187f1c1595d132a27bdc656529", null ],
     [ "get_UBP_count", "classmaingo_1_1bab_1_1_branch_and_bound.html#a3da7e60c4fad8100f38732fc06d2547c", null ],
-    [ "get_UBP_count", "classmaingo_1_1bab_1_1_branch_and_bound.html#a3da7e60c4fad8100f38732fc06d2547c", null ],
-    [ "solve", "classmaingo_1_1bab_1_1_branch_and_bound.html#a44ead97b56cfae660cbe695ef8dffb38", null ],
     [ "solve", "classmaingo_1_1bab_1_1_branch_and_bound.html#afbbe46b34b476fa5b54c5faa112581b6", null ],
     [ "_bestLbdFathomed", "classmaingo_1_1bab_1_1_branch_and_bound.html#a8855b78bf4580af1d40f463eb88f9883", null ],
-    [ "_brancher", "classmaingo_1_1bab_1_1_branch_and_bound.html#a88d35fc68351774dadb831c38ffd93ee", null ],
+    [ "_brancher", "classmaingo_1_1bab_1_1_branch_and_bound.html#ae1454635b53b98cc4e395fd3ed7faca0", null ],
     [ "_daysPassed", "classmaingo_1_1bab_1_1_branch_and_bound.html#ab0c17e7072887baa0bf2377a7be7a4bc", null ],
     [ "_firstFound", "classmaingo_1_1bab_1_1_branch_and_bound.html#a88880806d0ddfe42862a876ca961cbf6", null ],
     [ "_foundFeas", "classmaingo_1_1bab_1_1_branch_and_bound.html#aa52c4379706307b5d5834a702d824854", null ],
-    [ "_incumbent", "classmaingo_1_1bab_1_1_branch_and_bound.html#ac3e65fd10f0294c31f8428330e517f85", null ],
+    [ "_incumbent", "classmaingo_1_1bab_1_1_branch_and_bound.html#a2685cdd222deff1b30e3b83c7b4bb259", null ],
     [ "_incumbentNodeId", "classmaingo_1_1bab_1_1_branch_and_bound.html#a2defed7ca937feacb124cc97b8f7915f", null ],
-    [ "_initialPoint", "classmaingo_1_1bab_1_1_branch_and_bound.html#acc2f5918ff76d313d9f0d9eae3c749cd", null ],
+    [ "_initialPoint", "classmaingo_1_1bab_1_1_branch_and_bound.html#a1f509aa5a3de69ff00e8d2c31b654d48", null ],
     [ "_iterations", "classmaingo_1_1bab_1_1_branch_and_bound.html#a3b90d97c448a84541e48eeb4388358a9", null ],
     [ "_iterationsgap", "classmaingo_1_1bab_1_1_branch_and_bound.html#a4d1d7552bc0294281b7453a757a5b1c4", null ],
     [ "_lbd", "classmaingo_1_1bab_1_1_branch_and_bound.html#a7329b6c29c7a8686f7b417f3cfe93026", null ],
     [ "_lbdcnt", "classmaingo_1_1bab_1_1_branch_and_bound.html#a278e8c37f4d71abed1e0cb62b6366e5e", null ],
     [ "_lbdNotChanged", "classmaingo_1_1bab_1_1_branch_and_bound.html#a67bce3a5b8585ec930b305d9a77a3d47", null ],
     [ "_lbdOld", "classmaingo_1_1bab_1_1_branch_and_bound.html#adaeb5fb5c51be07833bf51f921ce2e65", null ],
-    [ "_LBS", "classmaingo_1_1bab_1_1_branch_and_bound.html#a16bbea3c96042145acc5df3830cd72b4", null ],
+    [ "_LBS", "classmaingo_1_1bab_1_1_branch_and_bound.html#a4a63abd1f85d04b411bd3f46c95c994b", null ],
     [ "_linesprinted", "classmaingo_1_1bab_1_1_branch_and_bound.html#a46473e89580e44ef3576e9040e469478", null ],
-    [ "_logger", "classmaingo_1_1bab_1_1_branch_and_bound.html#aaf1e5ea028afe7d2700a6cc573d67674", null ],
-    [ "_lowerVarBoundsOrig", "classmaingo_1_1bab_1_1_branch_and_bound.html#a0a241298a1b0f9b0707386e9143e0186", null ],
-    [ "_maingoSettings", "classmaingo_1_1bab_1_1_branch_and_bound.html#acca388f26f5e0c94b58643b566b8a235", null ],
+    [ "_logger", "classmaingo_1_1bab_1_1_branch_and_bound.html#a7bd1a5254c74b3adac3b74712d92257e", null ],
+    [ "_lowerVarBoundsOrig", "classmaingo_1_1bab_1_1_branch_and_bound.html#a9836ba957bbfd2acace285065fe81710", null ],
+    [ "_maingoSettings", "classmaingo_1_1bab_1_1_branch_and_bound.html#abb34f49557e1d417e5a87a467cee2ec8", null ],
     [ "_moreScalingActivated", "classmaingo_1_1bab_1_1_branch_and_bound.html#acc9b140b91203d6ca5d45f84b697be42", null ],
     [ "_nNodesDeleted", "classmaingo_1_1bab_1_1_branch_and_bound.html#a10bf89f5a097f9d865ad5546eeee9b40", null ],
     [ "_nNodesFathomed", "classmaingo_1_1bab_1_1_branch_and_bound.html#a70df6922540227a62b49549e0d6f9dcf", null ],
@@ -97,15 +59,14 @@ var classmaingo_1_1bab_1_1_branch_and_bound =
     [ "_nNodesTotal", "classmaingo_1_1bab_1_1_branch_and_bound.html#aa66b24455102ab0550c9ed6c611e88a2", null ],
     [ "_nvar", "classmaingo_1_1bab_1_1_branch_and_bound.html#aa66393ce301be8002cdea9b1b43aa5b2", null ],
     [ "_nvarWOaux", "classmaingo_1_1bab_1_1_branch_and_bound.html#a109e3a4afa84d559ec9b88376b0a63b2", null ],
-    [ "_originalVariables", "classmaingo_1_1bab_1_1_branch_and_bound.html#aa47a427d6c433a26a35b5882e54480e4", null ],
+    [ "_originalVariables", "classmaingo_1_1bab_1_1_branch_and_bound.html#a54fa45d1751c9a81b346bd7cd1f5969c", null ],
     [ "_printNewIncumbent", "classmaingo_1_1bab_1_1_branch_and_bound.html#a733596f5150a34554a2e001bc2a7bd1e", null ],
     [ "_status", "classmaingo_1_1bab_1_1_branch_and_bound.html#a010075b80170c61b0c30490e64ec979d", null ],
     [ "_timePassed", "classmaingo_1_1bab_1_1_branch_and_bound.html#af4816842caa40287b9fcda0401238236", null ],
     [ "_timePreprocess", "classmaingo_1_1bab_1_1_branch_and_bound.html#a17af9af1c4195bb491a0624d3a4edb36", null ],
     [ "_ubd", "classmaingo_1_1bab_1_1_branch_and_bound.html#adf8377615ee4d86485f589700902126c", null ],
     [ "_ubdcnt", "classmaingo_1_1bab_1_1_branch_and_bound.html#a85091bc9965339278cc9c02b2baf354b", null ],
-    [ "_UBS", "classmaingo_1_1bab_1_1_branch_and_bound.html#af1853b2ef51e8bddd0a9ab2404340037", null ],
-    [ "_upperVarBoundsOrig", "classmaingo_1_1bab_1_1_branch_and_bound.html#a5bd0987c7dde438e8d52af87421d78c5", null ],
-    [ "_wallPassed", "classmaingo_1_1bab_1_1_branch_and_bound.html#a2845411391c8498e7eece2e2e3ba073b", null ],
+    [ "_UBS", "classmaingo_1_1bab_1_1_branch_and_bound.html#aba6e92ef8af1e76b62a543e1334b4948", null ],
+    [ "_upperVarBoundsOrig", "classmaingo_1_1bab_1_1_branch_and_bound.html#a6087a84349286d46bfc4a6633f5c881b", null ],
     [ "_writeToLogEverySec", "classmaingo_1_1bab_1_1_branch_and_bound.html#a193f594912e00a2c4d8cacfd4efbdfd5", null ]
 ];
\ No newline at end of file
diff --git a/doc/html/classmaingo_1_1lbp_1_1_lbp_clp-members.html b/doc/html/classmaingo_1_1lbp_1_1_lbp_clp-members.html
index b14f70c5b21e1fe5ce741d815b7eca44c112ce4c..12ab9a682008aa7deefa9e89fa6fe855d3181df5 100644
--- a/doc/html/classmaingo_1_1lbp_1_1_lbp_clp-members.html
+++ b/doc/html/classmaingo_1_1lbp_1_1_lbp_clp-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -101,7 +101,7 @@ $(document).ready(function(){initNavTree('classmaingo_1_1lbp_1_1_lbp_clp.html','
   <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#aa2b757fbec54c610ba3d9fe8ba35b67e">_clp</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aaa92d78b7ce6a1b2939131063bd6f68a">_computationTol</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4dd432d487c2099767f0d6de64711bb9">_compute_and_rotate_simplex</a>(const unsigned int dim, const double angleIn, const double sphereRadius, std::vector&lt; std::vector&lt; double &gt;&gt; &amp;simplexPoints)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1b23a7c1621517ac4506bd043d43950e">_constraintProperties</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a701c19e247fa6e9791313252084b770a">_constraintProperties</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a807d99cf52ff7bcfa7948e03b585ea54">_DAGobj</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab77a56c003c64a99988d6b560c3104bf">_deactivate_objective_function_for_OBBT</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1994bc43cf051908c35889bb08d3cb02">_differentNumberOfLins</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
@@ -133,11 +133,11 @@ $(document).ready(function(){initNavTree('classmaingo_1_1lbp_1_1_lbp_clp.html','
   <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4fe2354f3e4bbee160964b089710838e">_linearize_functions_at_preset_vector_linpoint</a>(std::vector&lt; vMC &gt; &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoints, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, mc::FFSubgraph &amp;subgraph, std::vector&lt; mc::FFVar &gt; &amp;functions)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a96d0133b5deda10067177dee19fd4f6f">_linearize_model_at_incumbent</a>(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, const bool holdsIncumbent)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a88c29043b78956e34cc95ab46eaac9d1">_linearize_model_at_midpoint</a>(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ac82365b8f4f2d24466e60bbf01042142">_logger</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9ec401321cfa9eda2672c9a65b6ba11d">_logger</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab38029cc0d0963194ac6ca8c4e7c6632">_lowerRowBounds</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af0baca6c1bd4847c2c3ab98e3c6c4adb">_lowerVarBounds</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7952199940d657eed365a660f4538527">_LPstatus</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2277a8ee8f3f41a9498c43add63835c4">_maingoSettings</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1b4b4c6e80d76f83bb5a2a7f7d2f165c">_maingoSettings</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ad98f31f435d1a770ea2df783c84b40c2">_matrix</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8ef7d876bfe5e621b0d9dce7e00f4e8f">_matrixEq1</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a75e8efba11ed031032d7e75513f10ba1">_matrixEq2</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
@@ -167,55 +167,56 @@ $(document).ready(function(){initNavTree('classmaingo_1_1lbp_1_1_lbp_clp.html','
   <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a474d16acc565bd8d8e3f4422ca1408df">_objective</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a67b22b446040aa9148dbbd411ad928bb">_objectiveScalingFactors</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ab2c6d75aa915dd5e3296b0873d39acfd">_objectiveValue</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a39ef7296e50fb200934ff74a017e43bf">_originalVariables</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ad73a525d4fbef8238e26dd95890f2b2b">_print_LP</a>(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af8be99dda0a3968034aed1c5a0d9fba4">_reset_LP</a>(const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#aa0964fe28a1d7c5b3095821749792a7b">_restore_LP_coefficients_after_OBBT</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7d227b1709674b820d8bc7c0466aaa13">_rhsEq1</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a56a7df7c8fc8858597b8cdb8985949cd">_rhsEq2</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a53ec1c841361380f907fe4bc059096f3">_rhsEqRelaxationOnly1</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae4517e4a83ca2c5e58a22d5725aea439">_rhsEqRelaxationOnly2</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#abc5d2f11849c00d60b5c181e3fc1ecc5">_rhsIneq</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a687c42fa025369080f4fa0745a5a2256">_rhsIneqRelaxationOnly</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af5a66b5283474172bf128f2b2c3a4ba7">_rhsIneqSquash</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a443c3bf5e7640f49f8fa7b5503ac9371">_rhsObj</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a1f1dce9b46444d50651cb9f6c6216f51">_set_optimization_sense_of_variable</a>(const unsigned &amp;iVar, const int &amp;optimizationSense)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab26772712b05679592cd25f1245d90b9">_set_variable_bounds</a>(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae9f3f49ebc4c635d2c38abbf42c9f256">_solutionPoint</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a3423814b107c872de9f6c7b877546d78">_solve_LP</a>(const babBase::BabNode &amp;currentNode)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a584ba5226cae8fee0db0cb043a4f08a3">_terminate_Clp</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a456cbe28fac6fbf3508b09b04d1ea846">_truncate_value</a>(double &amp;value, const double tolerance)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ada95cd9dabecd558b31f2bdc4c26e8e4">_turn_off_specific_options</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a018fd682b724900df5060adfd73a953b">_update_LP</a>(const babBase::BabNode &amp;currentNode)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a52de428ac88f082ffc3cfe4c9ec0ca84">_update_LP_eq</a>(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEq)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a14ab839fae5a1d3370c5431b665d542e">_update_LP_eq</a>(const vMC &amp;resultRelaxationCvVMC, const vMC &amp;resultRelaxationCcVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iEq)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a09930dee52d992c1aeab1e8a6f32ef59">_update_LP_eqRelaxationOnly</a>(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEqRelaxationOnly)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#abda27bf8bd56a6870d43acc6ff9d7f81">_update_LP_eqRelaxationOnly</a>(const vMC &amp;resultRelaxationCvVMC, const vMC &amp;resultRelaxationCcVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iEqRelaxationOnly)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#af9cf257a4e806ecbb182bfa037cad8a4">_update_LP_ineq</a>(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneq)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a34c8b280f87b4c1802bd595e2742917e">_update_LP_ineq</a>(const vMC &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iIneq)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a8b153369bff742d44e37bd7133168877">_update_LP_ineq_squash</a>(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneqSquash)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a9981f64fc302d8ee34ecff0fa9db4b6c">_update_LP_ineq_squash</a>(const vMC &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iIneqSquash)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a9d4da7fbb2fc96bbcba558f5126bac60">_update_LP_ineqRelaxationOnly</a>(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneqRelaxationOnly)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a75b81dd4fbf2e86cd325e5f495ee6b55">_update_LP_ineqRelaxationOnly</a>(const vMC &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iIneqRelaxationOnly)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aa0074d7d40a6c7d983ed738cfb501a5e">_update_LP_nonlinear</a>(const std::vector&lt; MC &gt; &amp;resultRelaxationNonlinear, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, const unsigned iLin)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a44512a8b2e88dee8c859b382c7777beb">_update_LP_nonlinear_linear</a>(const std::vector&lt; vMC &gt; &amp;resultRelaxationVMCNonlinear, const std::vector&lt; MC &gt; &amp;resultRelaxationLinear, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;scaledPoints, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#adf6172de124b973b6f1ce730119f222c">_update_LP_obj</a>(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iObj)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a7f1ecf9544c6400076473c3cbb1459d2">_update_LP_obj</a>(const vMC &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iObj)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8f63bc9db34d63c361e2a5e8943fe6c6">_update_whole_LP_at_linpoint</a>(const std::vector&lt; MC &gt; &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a346ce6af484360fa0d789f02a460ca33">_update_whole_LP_at_vector_linpoints</a>(const std::vector&lt; vMC &gt; &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoints, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a92aff88ba6eff7858852ad88c7545f80">_upperRowBounds</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae8e6470d9c422e32457e7dd7e7a8cc50">_upperVarBounds</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a514fd19d84444ee472f075f6056d1a05">activate_more_scaling</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1f0229a0978bf619d22afe5a5c5f3e3a">do_constraint_propagation</a>(babBase::BabNode &amp;currentNode, const double currentUBD, const unsigned pass=3)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9617d81f28d3a1ba3270d3a73ee81e85">do_dbbt_and_probing</a>(babBase::BabNode &amp;currentNode, const std::vector&lt; double &gt; &amp;lbpSolutionPoint, const LbpDualInfo &amp;dualInfo, const double currentUBD)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab7e8f8e062116c53497ed6884529a2a3">LbpClp</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a31416f2224eea283c3ae280ed3beb497">LowerBoundingSolver</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a75d8c7d165cc917a455243f528ea23df">preprocessor_check_options</a>(const babBase::BabNode &amp;rootNode)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1bd1db09ee19b087b11a761d41dc195d">solve_LBP</a>(const babBase::BabNode &amp;currentNode, double &amp;lowerBound, std::vector&lt; double &gt; &amp;solutionPoint, LbpDualInfo &amp;dualInfo)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a51baac566450ca4b94cd715b57c38752">solve_OBBT</a>(babBase::BabNode &amp;currentNode, const double currentUBD, const OBBT reductionType)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2f1320936ed40642c7cf4cf0fe31d14f">update_incumbent_LBP</a>(const std::vector&lt; double &gt; &amp;incumbentBAB)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab8577790c0bc0371e97f63040a576171">~LbpClp</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae45e85f9c8bc19bba1510e89b0698a97">~LowerBoundingSolver</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a44e1d78a441997c6fced40f8c91c8043">_onlyBoxConstraints</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a39ef7296e50fb200934ff74a017e43bf">_originalVariables</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ad73a525d4fbef8238e26dd95890f2b2b">_print_LP</a>(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af8be99dda0a3968034aed1c5a0d9fba4">_reset_LP</a>(const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#aa0964fe28a1d7c5b3095821749792a7b">_restore_LP_coefficients_after_OBBT</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7d227b1709674b820d8bc7c0466aaa13">_rhsEq1</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a56a7df7c8fc8858597b8cdb8985949cd">_rhsEq2</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a53ec1c841361380f907fe4bc059096f3">_rhsEqRelaxationOnly1</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae4517e4a83ca2c5e58a22d5725aea439">_rhsEqRelaxationOnly2</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#abc5d2f11849c00d60b5c181e3fc1ecc5">_rhsIneq</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a687c42fa025369080f4fa0745a5a2256">_rhsIneqRelaxationOnly</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af5a66b5283474172bf128f2b2c3a4ba7">_rhsIneqSquash</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a443c3bf5e7640f49f8fa7b5503ac9371">_rhsObj</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a1f1dce9b46444d50651cb9f6c6216f51">_set_optimization_sense_of_variable</a>(const unsigned &amp;iVar, const int &amp;optimizationSense)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab26772712b05679592cd25f1245d90b9">_set_variable_bounds</a>(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae9f3f49ebc4c635d2c38abbf42c9f256">_solutionPoint</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a3423814b107c872de9f6c7b877546d78">_solve_LP</a>(const babBase::BabNode &amp;currentNode)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a584ba5226cae8fee0db0cb043a4f08a3">_terminate_Clp</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a456cbe28fac6fbf3508b09b04d1ea846">_truncate_value</a>(double &amp;value, const double tolerance)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ada95cd9dabecd558b31f2bdc4c26e8e4">_turn_off_specific_options</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a018fd682b724900df5060adfd73a953b">_update_LP</a>(const babBase::BabNode &amp;currentNode)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a52de428ac88f082ffc3cfe4c9ec0ca84">_update_LP_eq</a>(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEq)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a14ab839fae5a1d3370c5431b665d542e">_update_LP_eq</a>(const vMC &amp;resultRelaxationCvVMC, const vMC &amp;resultRelaxationCcVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iEq)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a09930dee52d992c1aeab1e8a6f32ef59">_update_LP_eqRelaxationOnly</a>(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEqRelaxationOnly)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#abda27bf8bd56a6870d43acc6ff9d7f81">_update_LP_eqRelaxationOnly</a>(const vMC &amp;resultRelaxationCvVMC, const vMC &amp;resultRelaxationCcVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iEqRelaxationOnly)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#af9cf257a4e806ecbb182bfa037cad8a4">_update_LP_ineq</a>(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneq)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a34c8b280f87b4c1802bd595e2742917e">_update_LP_ineq</a>(const vMC &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iIneq)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a8b153369bff742d44e37bd7133168877">_update_LP_ineq_squash</a>(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneqSquash)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a9981f64fc302d8ee34ecff0fa9db4b6c">_update_LP_ineq_squash</a>(const vMC &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iIneqSquash)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a9d4da7fbb2fc96bbcba558f5126bac60">_update_LP_ineqRelaxationOnly</a>(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneqRelaxationOnly)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a75b81dd4fbf2e86cd325e5f495ee6b55">_update_LP_ineqRelaxationOnly</a>(const vMC &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iIneqRelaxationOnly)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aa0074d7d40a6c7d983ed738cfb501a5e">_update_LP_nonlinear</a>(const std::vector&lt; MC &gt; &amp;resultRelaxationNonlinear, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, const unsigned iLin)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a44512a8b2e88dee8c859b382c7777beb">_update_LP_nonlinear_linear</a>(const std::vector&lt; vMC &gt; &amp;resultRelaxationVMCNonlinear, const std::vector&lt; MC &gt; &amp;resultRelaxationLinear, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;scaledPoints, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#adf6172de124b973b6f1ce730119f222c">_update_LP_obj</a>(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iObj)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a7f1ecf9544c6400076473c3cbb1459d2">_update_LP_obj</a>(const vMC &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iObj)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8f63bc9db34d63c361e2a5e8943fe6c6">_update_whole_LP_at_linpoint</a>(const std::vector&lt; MC &gt; &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a346ce6af484360fa0d789f02a460ca33">_update_whole_LP_at_vector_linpoints</a>(const std::vector&lt; vMC &gt; &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoints, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a92aff88ba6eff7858852ad88c7545f80">_upperRowBounds</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae8e6470d9c422e32457e7dd7e7a8cc50">_upperVarBounds</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a514fd19d84444ee472f075f6056d1a05">activate_more_scaling</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1f0229a0978bf619d22afe5a5c5f3e3a">do_constraint_propagation</a>(babBase::BabNode &amp;currentNode, const double currentUBD, const unsigned pass=3)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9617d81f28d3a1ba3270d3a73ee81e85">do_dbbt_and_probing</a>(babBase::BabNode &amp;currentNode, const std::vector&lt; double &gt; &amp;lbpSolutionPoint, const LbpDualInfo &amp;dualInfo, const double currentUBD)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a9e39ab1a9b491aa0d71efbaf3467c19d">LbpClp</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9680e92120bb8a0693095f965421d7d7">LowerBoundingSolver</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a75d8c7d165cc917a455243f528ea23df">preprocessor_check_options</a>(const babBase::BabNode &amp;rootNode)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1bd1db09ee19b087b11a761d41dc195d">solve_LBP</a>(const babBase::BabNode &amp;currentNode, double &amp;lowerBound, std::vector&lt; double &gt; &amp;solutionPoint, LbpDualInfo &amp;dualInfo)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a51baac566450ca4b94cd715b57c38752">solve_OBBT</a>(babBase::BabNode &amp;currentNode, const double currentUBD, const OBBT reductionType)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2f1320936ed40642c7cf4cf0fe31d14f">update_incumbent_LBP</a>(const std::vector&lt; double &gt; &amp;incumbentBAB)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab8577790c0bc0371e97f63040a576171">~LbpClp</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae45e85f9c8bc19bba1510e89b0698a97">~LowerBoundingSolver</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -223,7 +224,7 @@ $(document).ready(function(){initNavTree('classmaingo_1_1lbp_1_1_lbp_clp.html','
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1lbp_1_1_lbp_clp.html b/doc/html/classmaingo_1_1lbp_1_1_lbp_clp.html
index b41f1f62f88bab518471493c7a3e27e3404c2f48..aa695a4decb694dec17282784857bc4f3550d787 100644
--- a/doc/html/classmaingo_1_1lbp_1_1_lbp_clp.html
+++ b/doc/html/classmaingo_1_1lbp_1_1_lbp_clp.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::lbp::LbpClp Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -107,14 +107,14 @@ Inheritance diagram for maingo::lbp::LbpClp:</div>
   <img src="classmaingo_1_1lbp_1_1_lbp_clp.png" usemap="#maingo::lbp::LbpClp_map" alt=""/>
   <map id="maingo::lbp::LbpClp_map" name="maingo::lbp::LbpClp_map">
 <area href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html" title="Wrapper for handling the lower bounding problems as well as optimization-based bounds tightening (OBB..." alt="maingo::lbp::LowerBoundingSolver" shape="rect" coords="0,0,206,24"/>
-  </map>
-</div></div>
+</map>
+ </div></div>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:ab7e8f8e062116c53497ed6884529a2a3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab7e8f8e062116c53497ed6884529a2a3">LbpClp</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, <a class="el" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="el" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn, std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *constraintPropertiesIn)</td></tr>
-<tr class="memdesc:ab7e8f8e062116c53497ed6884529a2a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem and initializes the CLP problem and solver instances.  <a href="#ab7e8f8e062116c53497ed6884529a2a3">More...</a><br /></td></tr>
-<tr class="separator:ab7e8f8e062116c53497ed6884529a2a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9e39ab1a9b491aa0d71efbaf3467c19d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a9e39ab1a9b491aa0d71efbaf3467c19d">LbpClp</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt; settingsIn, std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt; constraintPropertiesIn)</td></tr>
+<tr class="memdesc:a9e39ab1a9b491aa0d71efbaf3467c19d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem and initializes the CLP problem and solver instances.  <a href="#a9e39ab1a9b491aa0d71efbaf3467c19d">More...</a><br /></td></tr>
+<tr class="separator:a9e39ab1a9b491aa0d71efbaf3467c19d"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ab8577790c0bc0371e97f63040a576171"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab8577790c0bc0371e97f63040a576171">~LbpClp</a> ()</td></tr>
 <tr class="memdesc:ab8577790c0bc0371e97f63040a576171"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#ab8577790c0bc0371e97f63040a576171">More...</a><br /></td></tr>
 <tr class="separator:ab8577790c0bc0371e97f63040a576171"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -122,9 +122,9 @@ Public Member Functions</h2></td></tr>
 <tr class="memdesc:a514fd19d84444ee472f075f6056d1a05"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function called by the B&amp;B solver to heuristically activate more scaling in the LBS.  <a href="#a514fd19d84444ee472f075f6056d1a05">More...</a><br /></td></tr>
 <tr class="separator:a514fd19d84444ee472f075f6056d1a05"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_methods_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classmaingo_1_1lbp_1_1_lower_bounding_solver')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td></tr>
-<tr class="memitem:a31416f2224eea283c3ae280ed3beb497 inherit pub_methods_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a31416f2224eea283c3ae280ed3beb497">LowerBoundingSolver</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, <a class="el" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="el" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn, std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *constraintPropertiesIn)</td></tr>
-<tr class="memdesc:a31416f2224eea283c3ae280ed3beb497 inherit pub_methods_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem and constructs an own copy of the directed acyclic graph.  <a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a31416f2224eea283c3ae280ed3beb497">More...</a><br /></td></tr>
-<tr class="separator:a31416f2224eea283c3ae280ed3beb497 inherit pub_methods_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9680e92120bb8a0693095f965421d7d7 inherit pub_methods_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9680e92120bb8a0693095f965421d7d7">LowerBoundingSolver</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt; settingsIn, std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt; constraintPropertiesIn)</td></tr>
+<tr class="memdesc:a9680e92120bb8a0693095f965421d7d7 inherit pub_methods_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem and constructs an own copy of the directed acyclic graph.  <a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9680e92120bb8a0693095f965421d7d7">More...</a><br /></td></tr>
+<tr class="separator:a9680e92120bb8a0693095f965421d7d7 inherit pub_methods_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ae45e85f9c8bc19bba1510e89b0698a97 inherit pub_methods_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae45e85f9c8bc19bba1510e89b0698a97">~LowerBoundingSolver</a> ()</td></tr>
 <tr class="memdesc:ae45e85f9c8bc19bba1510e89b0698a97 inherit pub_methods_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual destructor, only needed to make sure the correct destructor of the derived classes is called.  <a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae45e85f9c8bc19bba1510e89b0698a97">More...</a><br /></td></tr>
 <tr class="separator:ae45e85f9c8bc19bba1510e89b0698a97 inherit pub_methods_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -386,12 +386,12 @@ Additional Inherited Members</h2></td></tr>
 <tr class="separator:af5a66b5283474172bf128f2b2c3a4ba7 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a807d99cf52ff7bcfa7948e03b585ea54 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html">DagObj</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a807d99cf52ff7bcfa7948e03b585ea54">_DAGobj</a></td></tr>
 <tr class="separator:a807d99cf52ff7bcfa7948e03b585ea54 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2277a8ee8f3f41a9498c43add63835c4 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1_settings.html">Settings</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2277a8ee8f3f41a9498c43add63835c4">_maingoSettings</a></td></tr>
-<tr class="separator:a2277a8ee8f3f41a9498c43add63835c4 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac82365b8f4f2d24466e60bbf01042142 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmaingo_1_1_logger.html">Logger</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ac82365b8f4f2d24466e60bbf01042142">_logger</a></td></tr>
-<tr class="separator:ac82365b8f4f2d24466e60bbf01042142 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1b23a7c1621517ac4506bd043d43950e inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1b23a7c1621517ac4506bd043d43950e">_constraintProperties</a></td></tr>
-<tr class="separator:a1b23a7c1621517ac4506bd043d43950e inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1b4b4c6e80d76f83bb5a2a7f7d2f165c inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1b4b4c6e80d76f83bb5a2a7f7d2f165c">_maingoSettings</a></td></tr>
+<tr class="separator:a1b4b4c6e80d76f83bb5a2a7f7d2f165c inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9ec401321cfa9eda2672c9a65b6ba11d inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9ec401321cfa9eda2672c9a65b6ba11d">_logger</a></td></tr>
+<tr class="separator:a9ec401321cfa9eda2672c9a65b6ba11d inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a701c19e247fa6e9791313252084b770a inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a701c19e247fa6e9791313252084b770a">_constraintProperties</a></td></tr>
+<tr class="separator:a701c19e247fa6e9791313252084b770a inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a8fc065971f7753722d93201222f91063 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::vector&lt; unsigned &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8fc065971f7753722d93201222f91063">_nLinObj</a></td></tr>
 <tr class="separator:a8fc065971f7753722d93201222f91063 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a3bb190287b40d8ff446184a0ace005bf inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::vector&lt; unsigned &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a3bb190287b40d8ff446184a0ace005bf">_nLinIneq</a></td></tr>
@@ -418,6 +418,8 @@ Additional Inherited Members</h2></td></tr>
 <tr class="separator:a637f881b8ce5464725a611fde5ae5bc2 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:af339d8b557668fa7f961faf44c4cbf6b inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">const unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af339d8b557668fa7f961faf44c4cbf6b">_nineqSquash</a></td></tr>
 <tr class="separator:af339d8b557668fa7f961faf44c4cbf6b inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a44e1d78a441997c6fced40f8c91c8043 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a44e1d78a441997c6fced40f8c91c8043">_onlyBoxConstraints</a></td></tr>
+<tr class="separator:a44e1d78a441997c6fced40f8c91c8043 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a39ef7296e50fb200934ff74a017e43bf inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a39ef7296e50fb200934ff74a017e43bf">_originalVariables</a></td></tr>
 <tr class="separator:a39ef7296e50fb200934ff74a017e43bf inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ab2c6d75aa915dd5e3296b0873d39acfd inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ab2c6d75aa915dd5e3296b0873d39acfd">_objectiveValue</a></td></tr>
@@ -441,8 +443,8 @@ Additional Inherited Members</h2></td></tr>
 <div class="textblock"><p>Wrapper for handling the lower bounding problems by interfacing CLP. </p>
 <p>This class constructs and solves lower bounding problems using CLP (COIN-OR project). </p>
 </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a id="ab7e8f8e062116c53497ed6884529a2a3"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ab7e8f8e062116c53497ed6884529a2a3">&#9670;&nbsp;</a></span>LbpClp()</h2>
+<a id="a9e39ab1a9b491aa0d71efbaf3467c19d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9e39ab1a9b491aa0d71efbaf3467c19d">&#9670;&nbsp;</a></span>LbpClp()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -504,19 +506,19 @@ Additional Inherited Members</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="structmaingo_1_1_settings.html">Settings</a> *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt;&#160;</td>
           <td class="paramname"><em>settingsIn</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="classmaingo_1_1_logger.html">Logger</a> *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt;&#160;</td>
           <td class="paramname"><em>loggerIn</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt;&#160;</td>
           <td class="paramname"><em>constraintPropertiesIn</em>&#160;</td>
         </tr>
         <tr>
@@ -2564,8 +2566,8 @@ Additional Inherited Members</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this class was generated from the following files:<ul>
-<li>C:/Users/dobo01/maingo/inc/<a class="el" href="lbp_clp_8h_source.html">lbpClp.h</a></li>
-<li>C:/Users/dobo01/maingo/src/<a class="el" href="lbp_clp_8cpp.html">lbpClp.cpp</a></li>
+<li>C:/dobo01/maingo/inc/<a class="el" href="lbp_clp_8h_source.html">lbpClp.h</a></li>
+<li>C:/dobo01/maingo/src/<a class="el" href="lbp_clp_8cpp.html">lbpClp.cpp</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -2575,7 +2577,7 @@ Additional Inherited Members</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="namespacemaingo_1_1lbp.html">lbp</a></li><li class="navelem"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html">LbpClp</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1lbp_1_1_lbp_clp.js b/doc/html/classmaingo_1_1lbp_1_1_lbp_clp.js
index 9515b7c2232e538cdef03fce6196118615d10495..7ef19b6d0ed06f14532ae35d4ea17651024ca9e1 100644
--- a/doc/html/classmaingo_1_1lbp_1_1_lbp_clp.js
+++ b/doc/html/classmaingo_1_1lbp_1_1_lbp_clp.js
@@ -1,6 +1,6 @@
 var classmaingo_1_1lbp_1_1_lbp_clp =
 [
-    [ "LbpClp", "classmaingo_1_1lbp_1_1_lbp_clp.html#ab7e8f8e062116c53497ed6884529a2a3", null ],
+    [ "LbpClp", "classmaingo_1_1lbp_1_1_lbp_clp.html#a9e39ab1a9b491aa0d71efbaf3467c19d", null ],
     [ "~LbpClp", "classmaingo_1_1lbp_1_1_lbp_clp.html#ab8577790c0bc0371e97f63040a576171", null ],
     [ "_check_feasibility", "classmaingo_1_1lbp_1_1_lbp_clp.html#ad1ca347dd4c44d58cbc0acef37b20ac2", null ],
     [ "_check_if_LP_really_infeasible", "classmaingo_1_1lbp_1_1_lbp_clp.html#aa4482d8e03130757248872892e2fcb2b", null ],
diff --git a/doc/html/classmaingo_1_1lbp_1_1_lbp_cplex-members.html b/doc/html/classmaingo_1_1lbp_1_1_lbp_cplex-members.html
index 157fd79d4987b68dcc3d4d78c00d7adaeddae7c7..ecfe95d67b61049799cbcbfbabf03fdc2e7d0ef7 100644
--- a/doc/html/classmaingo_1_1lbp_1_1_lbp_cplex-members.html
+++ b/doc/html/classmaingo_1_1lbp_1_1_lbp_cplex-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -100,7 +100,7 @@ $(document).ready(function(){initNavTree('classmaingo_1_1lbp_1_1_lbp_cplex.html'
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a13d16bea111e56762479856995fe8435">_choose_good_lin_points</a>(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, bool firstTime=true)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aaa92d78b7ce6a1b2939131063bd6f68a">_computationTol</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4dd432d487c2099767f0d6de64711bb9">_compute_and_rotate_simplex</a>(const unsigned int dim, const double angleIn, const double sphereRadius, std::vector&lt; std::vector&lt; double &gt;&gt; &amp;simplexPoints)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1b23a7c1621517ac4506bd043d43950e">_constraintProperties</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a701c19e247fa6e9791313252084b770a">_constraintProperties</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a807d99cf52ff7bcfa7948e03b585ea54">_DAGobj</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a52d7567c17415e93e1f7ca11e779b7df">_deactivate_objective_function_for_OBBT</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1994bc43cf051908c35889bb08d3cb02">_differentNumberOfLins</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
@@ -121,10 +121,10 @@ $(document).ready(function(){initNavTree('classmaingo_1_1lbp_1_1_lbp_cplex.html'
   <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4fe2354f3e4bbee160964b089710838e">_linearize_functions_at_preset_vector_linpoint</a>(std::vector&lt; vMC &gt; &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoints, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, mc::FFSubgraph &amp;subgraph, std::vector&lt; mc::FFVar &gt; &amp;functions)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a96d0133b5deda10067177dee19fd4f6f">_linearize_model_at_incumbent</a>(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, const bool holdsIncumbent)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a88c29043b78956e34cc95ab46eaac9d1">_linearize_model_at_midpoint</a>(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ac82365b8f4f2d24466e60bbf01042142">_logger</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9ec401321cfa9eda2672c9a65b6ba11d">_logger</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af0baca6c1bd4847c2c3ab98e3c6c4adb">_lowerVarBounds</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7952199940d657eed365a660f4538527">_LPstatus</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2277a8ee8f3f41a9498c43add63835c4">_maingoSettings</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1b4b4c6e80d76f83bb5a2a7f7d2f165c">_maingoSettings</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8ef7d876bfe5e621b0d9dce7e00f4e8f">_matrixEq1</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a75e8efba11ed031032d7e75513f10ba1">_matrixEq2</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a05546b786f27f965b411bf39944e2d61">_matrixEqRelaxationOnly1</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
@@ -150,79 +150,80 @@ $(document).ready(function(){initNavTree('classmaingo_1_1lbp_1_1_lbp_cplex.html'
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a5e059ef32469739da674be2946048dd0">_nvar</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a67b22b446040aa9148dbbd411ad928bb">_objectiveScalingFactors</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ab2c6d75aa915dd5e3296b0873d39acfd">_objectiveValue</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a39ef7296e50fb200934ff74a017e43bf">_originalVariables</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ad73a525d4fbef8238e26dd95890f2b2b">_print_LP</a>(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af8be99dda0a3968034aed1c5a0d9fba4">_reset_LP</a>(const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#aa9d3a01d31337a11c0e74e9883597d99">_restore_LP_coefficients_after_OBBT</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7d227b1709674b820d8bc7c0466aaa13">_rhsEq1</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a56a7df7c8fc8858597b8cdb8985949cd">_rhsEq2</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a53ec1c841361380f907fe4bc059096f3">_rhsEqRelaxationOnly1</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae4517e4a83ca2c5e58a22d5725aea439">_rhsEqRelaxationOnly2</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#abc5d2f11849c00d60b5c181e3fc1ecc5">_rhsIneq</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a687c42fa025369080f4fa0745a5a2256">_rhsIneqRelaxationOnly</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af5a66b5283474172bf128f2b2c3a4ba7">_rhsIneqSquash</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a443c3bf5e7640f49f8fa7b5503ac9371">_rhsObj</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a83502d4b1d4e3f0487daefb1b241ce4a">_set_optimization_sense_of_variable</a>(const unsigned &amp;iVar, const int &amp;optimizationSense)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a8607c42324581cb796ce36f5d0750917">_set_variable_bounds</a>(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae9f3f49ebc4c635d2c38abbf42c9f256">_solutionPoint</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a1dec750f6f585a7ec3887d8786747104">_solve_LP</a>(const babBase::BabNode &amp;currentNode)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a08adc9be917d4a13774634695cf59065">_terminate_cplex</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a456cbe28fac6fbf3508b09b04d1ea846">_truncate_value</a>(double &amp;value, const double tolerance)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a792aea9d68cf82b893b5ed1ca0d439b5">_turn_off_specific_options</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a018fd682b724900df5060adfd73a953b">_update_LP</a>(const babBase::BabNode &amp;currentNode)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab05713911aef1c8aac1d4da8f8d1faac">_update_LP_eq</a>(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEq)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a64e1ffb352c8b5cb3ff2d349ae95dc40">_update_LP_eq</a>(const vMC &amp;resultRelaxationCvVMC, const vMC &amp;resultRelaxationCcVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iEq)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a84205c27db34dc362f0ac7302d2cecbc">_update_LP_eqRelaxationOnly</a>(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEqRelaxationOnly)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a2ece08fdba41c3234cf486328cb270f3">_update_LP_eqRelaxationOnly</a>(const vMC &amp;resultRelaxationCvVMC, const vMC &amp;resultRelaxationCcVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iEqRelaxationOnly)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a19f7e270bfcdca9bce0c55aa0608dfd4">_update_LP_ineq</a>(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneq)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a351fbe171122c56e1117028b4d2fe2b9">_update_LP_ineq</a>(const vMC &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iIneq)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a323d0e6ce0aec6d2f0a498e9a53e3e68">_update_LP_ineq_squash</a>(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneqSquash)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#aa4eb11afb673511208c9522da41ae68a">_update_LP_ineq_squash</a>(const vMC &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iIneqSquash)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a7551c7b0a8d63b589a3e5e64153add73">_update_LP_ineqRelaxationOnly</a>(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneqRelaxationOnly)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a0a0889638a62f4e34e7cc39be8acd8c7">_update_LP_ineqRelaxationOnly</a>(const vMC &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iIneqRelaxationOnly)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aa0074d7d40a6c7d983ed738cfb501a5e">_update_LP_nonlinear</a>(const std::vector&lt; MC &gt; &amp;resultRelaxationNonlinear, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, const unsigned iLin)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a44512a8b2e88dee8c859b382c7777beb">_update_LP_nonlinear_linear</a>(const std::vector&lt; vMC &gt; &amp;resultRelaxationVMCNonlinear, const std::vector&lt; MC &gt; &amp;resultRelaxationLinear, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;scaledPoints, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a54a04809e29838e9e2d787f1e8200a8d">_update_LP_obj</a>(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iObj)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#adf18833e2fcf0195e9407308aea38b6f">_update_LP_obj</a>(const vMC &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iObj)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8f63bc9db34d63c361e2a5e8943fe6c6">_update_whole_LP_at_linpoint</a>(const std::vector&lt; MC &gt; &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a346ce6af484360fa0d789f02a460ca33">_update_whole_LP_at_vector_linpoints</a>(const std::vector&lt; vMC &gt; &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoints, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae8e6470d9c422e32457e7dd7e7a8cc50">_upperVarBounds</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab551861cdafea80ba3f9dbffa07475a0">activate_more_scaling</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a7dda609edcb60a37ba2cb3841a660ebd">cplex</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a2df1db1980c5364b07ff8d58fc217034">cplxEnv</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a951643df3f751b62c79f476a0ea3c608">cplxModel</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ac88cac7557fd9ba8a903ce0f8bec2aa1">cplxObjective</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab051569370a1f5574a9e4b2049d7f91c">cplxVars</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1f0229a0978bf619d22afe5a5c5f3e3a">do_constraint_propagation</a>(babBase::BabNode &amp;currentNode, const double currentUBD, const unsigned pass=3)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9617d81f28d3a1ba3270d3a73ee81e85">do_dbbt_and_probing</a>(babBase::BabNode &amp;currentNode, const std::vector&lt; double &gt; &amp;lbpSolutionPoint, const LbpDualInfo &amp;dualInfo, const double currentUBD)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a85bd7308a8f4542bad51fb32dc8a86e6">dualValsEq1</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab0dc9e53cabaf5897e2950d6b9d1b93b">dualValsEq2</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#acc180d01e0c9452c5a58435b3bace97a">dualValsEqRelaxationOnly1</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a3bad1daefb975b53d7e2ba2211bd8fb7">dualValsEqRelaxationOnly2</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a5cc102e4bdde27460e7c616800eace16">dualValsIneq</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ae2d5d4c819acd3ba32022492370f32a4">dualValsIneqRelaxationOnly</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a4f60e9240871fc4785447932e2f5f7f4">dualValsIneqSquash</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a4888f571a5c013fbd790fafda5720aa8">dualValsObj</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#aeb417aefdc41100afb0e2909b89c48de">eta</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a597ef61cfc52812826709ac4cbd03e69">etaCoeff</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#af4552b8d7392bf83f24ffd77be3ac2c9">farkasCons</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#aa34760a024d749e14cd39c81060e99a5">farkasVals</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ae9d2adeabbd07038fd8a27192548ebef">LbpCplex</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a82570231ff560ede1f10507014071ddb">linEq1</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a652e421291526e503dd2883418759396">linEq2</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#abf000bb326887d3f342c963bea965ff1">linEqRelaxationOnly1</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a528413321d2e8655b7716fe93cc3e520">linEqRelaxationOnly2</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a6c4e8f3f96aac77b3237f85cc7d6797b">linIneq</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a7f36e0416328d26653e05b70b8c54e80">linIneqRelaxationOnly</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a6d3ad23f21da9a7e0c6b714b90f3d024">linIneqSquash</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a25db11157597f82460caa11b4eaef535">linObj</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a31416f2224eea283c3ae280ed3beb497">LowerBoundingSolver</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a75d8c7d165cc917a455243f528ea23df">preprocessor_check_options</a>(const babBase::BabNode &amp;rootNode)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1bd1db09ee19b087b11a761d41dc195d">solve_LBP</a>(const babBase::BabNode &amp;currentNode, double &amp;lowerBound, std::vector&lt; double &gt; &amp;solutionPoint, LbpDualInfo &amp;dualInfo)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a51baac566450ca4b94cd715b57c38752">solve_OBBT</a>(babBase::BabNode &amp;currentNode, const double currentUBD, const OBBT reductionType)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2f1320936ed40642c7cf4cf0fe31d14f">update_incumbent_LBP</a>(const std::vector&lt; double &gt; &amp;incumbentBAB)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#acea05d7f9625a5dc671c43611a15cf4b">~LbpCplex</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae45e85f9c8bc19bba1510e89b0698a97">~LowerBoundingSolver</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a44e1d78a441997c6fced40f8c91c8043">_onlyBoxConstraints</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a39ef7296e50fb200934ff74a017e43bf">_originalVariables</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ad73a525d4fbef8238e26dd95890f2b2b">_print_LP</a>(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af8be99dda0a3968034aed1c5a0d9fba4">_reset_LP</a>(const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#aa9d3a01d31337a11c0e74e9883597d99">_restore_LP_coefficients_after_OBBT</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7d227b1709674b820d8bc7c0466aaa13">_rhsEq1</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a56a7df7c8fc8858597b8cdb8985949cd">_rhsEq2</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a53ec1c841361380f907fe4bc059096f3">_rhsEqRelaxationOnly1</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae4517e4a83ca2c5e58a22d5725aea439">_rhsEqRelaxationOnly2</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#abc5d2f11849c00d60b5c181e3fc1ecc5">_rhsIneq</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a687c42fa025369080f4fa0745a5a2256">_rhsIneqRelaxationOnly</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af5a66b5283474172bf128f2b2c3a4ba7">_rhsIneqSquash</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a443c3bf5e7640f49f8fa7b5503ac9371">_rhsObj</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a83502d4b1d4e3f0487daefb1b241ce4a">_set_optimization_sense_of_variable</a>(const unsigned &amp;iVar, const int &amp;optimizationSense)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a8607c42324581cb796ce36f5d0750917">_set_variable_bounds</a>(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae9f3f49ebc4c635d2c38abbf42c9f256">_solutionPoint</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a1dec750f6f585a7ec3887d8786747104">_solve_LP</a>(const babBase::BabNode &amp;currentNode)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a08adc9be917d4a13774634695cf59065">_terminate_cplex</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a456cbe28fac6fbf3508b09b04d1ea846">_truncate_value</a>(double &amp;value, const double tolerance)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a792aea9d68cf82b893b5ed1ca0d439b5">_turn_off_specific_options</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a018fd682b724900df5060adfd73a953b">_update_LP</a>(const babBase::BabNode &amp;currentNode)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab05713911aef1c8aac1d4da8f8d1faac">_update_LP_eq</a>(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEq)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a64e1ffb352c8b5cb3ff2d349ae95dc40">_update_LP_eq</a>(const vMC &amp;resultRelaxationCvVMC, const vMC &amp;resultRelaxationCcVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iEq)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a84205c27db34dc362f0ac7302d2cecbc">_update_LP_eqRelaxationOnly</a>(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEqRelaxationOnly)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a2ece08fdba41c3234cf486328cb270f3">_update_LP_eqRelaxationOnly</a>(const vMC &amp;resultRelaxationCvVMC, const vMC &amp;resultRelaxationCcVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iEqRelaxationOnly)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a19f7e270bfcdca9bce0c55aa0608dfd4">_update_LP_ineq</a>(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneq)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a351fbe171122c56e1117028b4d2fe2b9">_update_LP_ineq</a>(const vMC &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iIneq)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a323d0e6ce0aec6d2f0a498e9a53e3e68">_update_LP_ineq_squash</a>(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneqSquash)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#aa4eb11afb673511208c9522da41ae68a">_update_LP_ineq_squash</a>(const vMC &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iIneqSquash)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a7551c7b0a8d63b589a3e5e64153add73">_update_LP_ineqRelaxationOnly</a>(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneqRelaxationOnly)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a0a0889638a62f4e34e7cc39be8acd8c7">_update_LP_ineqRelaxationOnly</a>(const vMC &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iIneqRelaxationOnly)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aa0074d7d40a6c7d983ed738cfb501a5e">_update_LP_nonlinear</a>(const std::vector&lt; MC &gt; &amp;resultRelaxationNonlinear, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, const unsigned iLin)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a44512a8b2e88dee8c859b382c7777beb">_update_LP_nonlinear_linear</a>(const std::vector&lt; vMC &gt; &amp;resultRelaxationVMCNonlinear, const std::vector&lt; MC &gt; &amp;resultRelaxationLinear, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;scaledPoints, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a54a04809e29838e9e2d787f1e8200a8d">_update_LP_obj</a>(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iObj)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#adf18833e2fcf0195e9407308aea38b6f">_update_LP_obj</a>(const vMC &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iObj)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8f63bc9db34d63c361e2a5e8943fe6c6">_update_whole_LP_at_linpoint</a>(const std::vector&lt; MC &gt; &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a346ce6af484360fa0d789f02a460ca33">_update_whole_LP_at_vector_linpoints</a>(const std::vector&lt; vMC &gt; &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoints, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae8e6470d9c422e32457e7dd7e7a8cc50">_upperVarBounds</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab551861cdafea80ba3f9dbffa07475a0">activate_more_scaling</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a7dda609edcb60a37ba2cb3841a660ebd">cplex</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a2df1db1980c5364b07ff8d58fc217034">cplxEnv</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a951643df3f751b62c79f476a0ea3c608">cplxModel</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ac88cac7557fd9ba8a903ce0f8bec2aa1">cplxObjective</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab051569370a1f5574a9e4b2049d7f91c">cplxVars</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1f0229a0978bf619d22afe5a5c5f3e3a">do_constraint_propagation</a>(babBase::BabNode &amp;currentNode, const double currentUBD, const unsigned pass=3)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9617d81f28d3a1ba3270d3a73ee81e85">do_dbbt_and_probing</a>(babBase::BabNode &amp;currentNode, const std::vector&lt; double &gt; &amp;lbpSolutionPoint, const LbpDualInfo &amp;dualInfo, const double currentUBD)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a85bd7308a8f4542bad51fb32dc8a86e6">dualValsEq1</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab0dc9e53cabaf5897e2950d6b9d1b93b">dualValsEq2</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#acc180d01e0c9452c5a58435b3bace97a">dualValsEqRelaxationOnly1</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a3bad1daefb975b53d7e2ba2211bd8fb7">dualValsEqRelaxationOnly2</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a5cc102e4bdde27460e7c616800eace16">dualValsIneq</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ae2d5d4c819acd3ba32022492370f32a4">dualValsIneqRelaxationOnly</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a4f60e9240871fc4785447932e2f5f7f4">dualValsIneqSquash</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a4888f571a5c013fbd790fafda5720aa8">dualValsObj</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#aeb417aefdc41100afb0e2909b89c48de">eta</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a597ef61cfc52812826709ac4cbd03e69">etaCoeff</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#af4552b8d7392bf83f24ffd77be3ac2c9">farkasCons</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#aa34760a024d749e14cd39c81060e99a5">farkasVals</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ac3a9c29513f616834eb0cd0cddf08b0c">LbpCplex</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a82570231ff560ede1f10507014071ddb">linEq1</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a652e421291526e503dd2883418759396">linEq2</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#abf000bb326887d3f342c963bea965ff1">linEqRelaxationOnly1</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a528413321d2e8655b7716fe93cc3e520">linEqRelaxationOnly2</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a6c4e8f3f96aac77b3237f85cc7d6797b">linIneq</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a7f36e0416328d26653e05b70b8c54e80">linIneqRelaxationOnly</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a6d3ad23f21da9a7e0c6b714b90f3d024">linIneqSquash</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a25db11157597f82460caa11b4eaef535">linObj</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9680e92120bb8a0693095f965421d7d7">LowerBoundingSolver</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a75d8c7d165cc917a455243f528ea23df">preprocessor_check_options</a>(const babBase::BabNode &amp;rootNode)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1bd1db09ee19b087b11a761d41dc195d">solve_LBP</a>(const babBase::BabNode &amp;currentNode, double &amp;lowerBound, std::vector&lt; double &gt; &amp;solutionPoint, LbpDualInfo &amp;dualInfo)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a51baac566450ca4b94cd715b57c38752">solve_OBBT</a>(babBase::BabNode &amp;currentNode, const double currentUBD, const OBBT reductionType)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2f1320936ed40642c7cf4cf0fe31d14f">update_incumbent_LBP</a>(const std::vector&lt; double &gt; &amp;incumbentBAB)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#acea05d7f9625a5dc671c43611a15cf4b">~LbpCplex</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae45e85f9c8bc19bba1510e89b0698a97">~LowerBoundingSolver</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -230,7 +231,7 @@ $(document).ready(function(){initNavTree('classmaingo_1_1lbp_1_1_lbp_cplex.html'
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1lbp_1_1_lbp_cplex.html b/doc/html/classmaingo_1_1lbp_1_1_lbp_cplex.html
index 8533e797fc4319ff1d026bcac3a7da4ca8ed4852..8f737d0e7bb8daff287f6ce6e292abb485f1ec15 100644
--- a/doc/html/classmaingo_1_1lbp_1_1_lbp_cplex.html
+++ b/doc/html/classmaingo_1_1lbp_1_1_lbp_cplex.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::lbp::LbpCplex Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -107,14 +107,14 @@ Inheritance diagram for maingo::lbp::LbpCplex:</div>
   <img src="classmaingo_1_1lbp_1_1_lbp_cplex.png" usemap="#maingo::lbp::LbpCplex_map" alt=""/>
   <map id="maingo::lbp::LbpCplex_map" name="maingo::lbp::LbpCplex_map">
 <area href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html" title="Wrapper for handling the lower bounding problems as well as optimization-based bounds tightening (OBB..." alt="maingo::lbp::LowerBoundingSolver" shape="rect" coords="0,0,206,24"/>
-  </map>
-</div></div>
+</map>
+ </div></div>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:ae9d2adeabbd07038fd8a27192548ebef"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ae9d2adeabbd07038fd8a27192548ebef">LbpCplex</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, <a class="el" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="el" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn, std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *constraintPropertiesIn)</td></tr>
-<tr class="memdesc:ae9d2adeabbd07038fd8a27192548ebef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem and initializes the CPLEX problem and solver instances.  <a href="#ae9d2adeabbd07038fd8a27192548ebef">More...</a><br /></td></tr>
-<tr class="separator:ae9d2adeabbd07038fd8a27192548ebef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac3a9c29513f616834eb0cd0cddf08b0c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ac3a9c29513f616834eb0cd0cddf08b0c">LbpCplex</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt; settingsIn, std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt; constraintPropertiesIn)</td></tr>
+<tr class="memdesc:ac3a9c29513f616834eb0cd0cddf08b0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem and initializes the CPLEX problem and solver instances.  <a href="#ac3a9c29513f616834eb0cd0cddf08b0c">More...</a><br /></td></tr>
+<tr class="separator:ac3a9c29513f616834eb0cd0cddf08b0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:acea05d7f9625a5dc671c43611a15cf4b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#acea05d7f9625a5dc671c43611a15cf4b">~LbpCplex</a> ()</td></tr>
 <tr class="memdesc:acea05d7f9625a5dc671c43611a15cf4b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#acea05d7f9625a5dc671c43611a15cf4b">More...</a><br /></td></tr>
 <tr class="separator:acea05d7f9625a5dc671c43611a15cf4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -122,9 +122,9 @@ Public Member Functions</h2></td></tr>
 <tr class="memdesc:ab551861cdafea80ba3f9dbffa07475a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function called by the B&amp;B solver to heuristically activate more scaling in the LBS.  <a href="#ab551861cdafea80ba3f9dbffa07475a0">More...</a><br /></td></tr>
 <tr class="separator:ab551861cdafea80ba3f9dbffa07475a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_methods_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classmaingo_1_1lbp_1_1_lower_bounding_solver')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td></tr>
-<tr class="memitem:a31416f2224eea283c3ae280ed3beb497 inherit pub_methods_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a31416f2224eea283c3ae280ed3beb497">LowerBoundingSolver</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, <a class="el" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="el" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn, std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *constraintPropertiesIn)</td></tr>
-<tr class="memdesc:a31416f2224eea283c3ae280ed3beb497 inherit pub_methods_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem and constructs an own copy of the directed acyclic graph.  <a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a31416f2224eea283c3ae280ed3beb497">More...</a><br /></td></tr>
-<tr class="separator:a31416f2224eea283c3ae280ed3beb497 inherit pub_methods_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9680e92120bb8a0693095f965421d7d7 inherit pub_methods_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9680e92120bb8a0693095f965421d7d7">LowerBoundingSolver</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt; settingsIn, std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt; constraintPropertiesIn)</td></tr>
+<tr class="memdesc:a9680e92120bb8a0693095f965421d7d7 inherit pub_methods_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem and constructs an own copy of the directed acyclic graph.  <a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9680e92120bb8a0693095f965421d7d7">More...</a><br /></td></tr>
+<tr class="separator:a9680e92120bb8a0693095f965421d7d7 inherit pub_methods_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ae45e85f9c8bc19bba1510e89b0698a97 inherit pub_methods_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae45e85f9c8bc19bba1510e89b0698a97">~LowerBoundingSolver</a> ()</td></tr>
 <tr class="memdesc:ae45e85f9c8bc19bba1510e89b0698a97 inherit pub_methods_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual destructor, only needed to make sure the correct destructor of the derived classes is called.  <a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae45e85f9c8bc19bba1510e89b0698a97">More...</a><br /></td></tr>
 <tr class="separator:ae45e85f9c8bc19bba1510e89b0698a97 inherit pub_methods_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -399,12 +399,12 @@ Additional Inherited Members</h2></td></tr>
 <tr class="separator:af5a66b5283474172bf128f2b2c3a4ba7 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a807d99cf52ff7bcfa7948e03b585ea54 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html">DagObj</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a807d99cf52ff7bcfa7948e03b585ea54">_DAGobj</a></td></tr>
 <tr class="separator:a807d99cf52ff7bcfa7948e03b585ea54 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2277a8ee8f3f41a9498c43add63835c4 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1_settings.html">Settings</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2277a8ee8f3f41a9498c43add63835c4">_maingoSettings</a></td></tr>
-<tr class="separator:a2277a8ee8f3f41a9498c43add63835c4 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac82365b8f4f2d24466e60bbf01042142 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmaingo_1_1_logger.html">Logger</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ac82365b8f4f2d24466e60bbf01042142">_logger</a></td></tr>
-<tr class="separator:ac82365b8f4f2d24466e60bbf01042142 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1b23a7c1621517ac4506bd043d43950e inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1b23a7c1621517ac4506bd043d43950e">_constraintProperties</a></td></tr>
-<tr class="separator:a1b23a7c1621517ac4506bd043d43950e inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1b4b4c6e80d76f83bb5a2a7f7d2f165c inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1b4b4c6e80d76f83bb5a2a7f7d2f165c">_maingoSettings</a></td></tr>
+<tr class="separator:a1b4b4c6e80d76f83bb5a2a7f7d2f165c inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9ec401321cfa9eda2672c9a65b6ba11d inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9ec401321cfa9eda2672c9a65b6ba11d">_logger</a></td></tr>
+<tr class="separator:a9ec401321cfa9eda2672c9a65b6ba11d inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a701c19e247fa6e9791313252084b770a inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a701c19e247fa6e9791313252084b770a">_constraintProperties</a></td></tr>
+<tr class="separator:a701c19e247fa6e9791313252084b770a inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a8fc065971f7753722d93201222f91063 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::vector&lt; unsigned &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8fc065971f7753722d93201222f91063">_nLinObj</a></td></tr>
 <tr class="separator:a8fc065971f7753722d93201222f91063 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a3bb190287b40d8ff446184a0ace005bf inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::vector&lt; unsigned &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a3bb190287b40d8ff446184a0ace005bf">_nLinIneq</a></td></tr>
@@ -431,6 +431,8 @@ Additional Inherited Members</h2></td></tr>
 <tr class="separator:a637f881b8ce5464725a611fde5ae5bc2 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:af339d8b557668fa7f961faf44c4cbf6b inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">const unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af339d8b557668fa7f961faf44c4cbf6b">_nineqSquash</a></td></tr>
 <tr class="separator:af339d8b557668fa7f961faf44c4cbf6b inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a44e1d78a441997c6fced40f8c91c8043 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a44e1d78a441997c6fced40f8c91c8043">_onlyBoxConstraints</a></td></tr>
+<tr class="separator:a44e1d78a441997c6fced40f8c91c8043 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a39ef7296e50fb200934ff74a017e43bf inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a39ef7296e50fb200934ff74a017e43bf">_originalVariables</a></td></tr>
 <tr class="separator:a39ef7296e50fb200934ff74a017e43bf inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ab2c6d75aa915dd5e3296b0873d39acfd inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ab2c6d75aa915dd5e3296b0873d39acfd">_objectiveValue</a></td></tr>
@@ -454,8 +456,8 @@ Additional Inherited Members</h2></td></tr>
 <div class="textblock"><p>Wrapper for handling the lower bounding problems by interfacing CPLEX. </p>
 <p>This class constructs and solves lower bounding problems using CPLEX (International Business Machines Corporation: IBM ILOG CPLEX v12.8. Armonk (2009)). </p>
 </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a id="ae9d2adeabbd07038fd8a27192548ebef"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ae9d2adeabbd07038fd8a27192548ebef">&#9670;&nbsp;</a></span>LbpCplex()</h2>
+<a id="ac3a9c29513f616834eb0cd0cddf08b0c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac3a9c29513f616834eb0cd0cddf08b0c">&#9670;&nbsp;</a></span>LbpCplex()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -517,19 +519,19 @@ Additional Inherited Members</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="structmaingo_1_1_settings.html">Settings</a> *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt;&#160;</td>
           <td class="paramname"><em>settingsIn</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="classmaingo_1_1_logger.html">Logger</a> *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt;&#160;</td>
           <td class="paramname"><em>loggerIn</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt;&#160;</td>
           <td class="paramname"><em>constraintPropertiesIn</em>&#160;</td>
         </tr>
         <tr>
@@ -2734,7 +2736,7 @@ Additional Inherited Members</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this class was generated from the following file:<ul>
-<li>C:/Users/dobo01/maingo/inc/<a class="el" href="lbp_cplex_8h_source.html">lbpCplex.h</a></li>
+<li>C:/dobo01/maingo/inc/<a class="el" href="lbp_cplex_8h_source.html">lbpCplex.h</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -2744,7 +2746,7 @@ Additional Inherited Members</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="namespacemaingo_1_1lbp.html">lbp</a></li><li class="navelem"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">LbpCplex</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1lbp_1_1_lbp_cplex.js b/doc/html/classmaingo_1_1lbp_1_1_lbp_cplex.js
index cc3fd79fb296e299cdb06217de371decbac052db..45fa5733313891a17bfd298a958e58c36e7f2c9c 100644
--- a/doc/html/classmaingo_1_1lbp_1_1_lbp_cplex.js
+++ b/doc/html/classmaingo_1_1lbp_1_1_lbp_cplex.js
@@ -1,6 +1,6 @@
 var classmaingo_1_1lbp_1_1_lbp_cplex =
 [
-    [ "LbpCplex", "classmaingo_1_1lbp_1_1_lbp_cplex.html#ae9d2adeabbd07038fd8a27192548ebef", null ],
+    [ "LbpCplex", "classmaingo_1_1lbp_1_1_lbp_cplex.html#ac3a9c29513f616834eb0cd0cddf08b0c", null ],
     [ "~LbpCplex", "classmaingo_1_1lbp_1_1_lbp_cplex.html#acea05d7f9625a5dc671c43611a15cf4b", null ],
     [ "_check_feasibility", "classmaingo_1_1lbp_1_1_lbp_cplex.html#aa4b86f37a78b5f8ce2ac3abdbd6e3a74", null ],
     [ "_check_if_LP_really_infeasible", "classmaingo_1_1lbp_1_1_lbp_cplex.html#a325f7fbdb9704f99fc46b5e26d84558f", null ],
diff --git a/doc/html/classmaingo_1_1lbp_1_1_lbp_interval-members.html b/doc/html/classmaingo_1_1lbp_1_1_lbp_interval-members.html
index bbfae03f489485f91a833a5d2f14756b0afd23b8..bdc0649fc530c1e8bbc1b2604c966b102ff0dc19 100644
--- a/doc/html/classmaingo_1_1lbp_1_1_lbp_interval-members.html
+++ b/doc/html/classmaingo_1_1lbp_1_1_lbp_interval-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -100,7 +100,7 @@ $(document).ready(function(){initNavTree('classmaingo_1_1lbp_1_1_lbp_interval.ht
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a13d16bea111e56762479856995fe8435">_choose_good_lin_points</a>(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, bool firstTime=true)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aaa92d78b7ce6a1b2939131063bd6f68a">_computationTol</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4dd432d487c2099767f0d6de64711bb9">_compute_and_rotate_simplex</a>(const unsigned int dim, const double angleIn, const double sphereRadius, std::vector&lt; std::vector&lt; double &gt;&gt; &amp;simplexPoints)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1b23a7c1621517ac4506bd043d43950e">_constraintProperties</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a701c19e247fa6e9791313252084b770a">_constraintProperties</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a807d99cf52ff7bcfa7948e03b585ea54">_DAGobj</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a3fcb771d5ccdac5d7ee197f6b412044b">_deactivate_objective_function_for_OBBT</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1994bc43cf051908c35889bb08d3cb02">_differentNumberOfLins</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
@@ -123,10 +123,10 @@ $(document).ready(function(){initNavTree('classmaingo_1_1lbp_1_1_lbp_interval.ht
   <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4fe2354f3e4bbee160964b089710838e">_linearize_functions_at_preset_vector_linpoint</a>(std::vector&lt; vMC &gt; &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoints, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, mc::FFSubgraph &amp;subgraph, std::vector&lt; mc::FFVar &gt; &amp;functions)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a96d0133b5deda10067177dee19fd4f6f">_linearize_model_at_incumbent</a>(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, const bool holdsIncumbent)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a88c29043b78956e34cc95ab46eaac9d1">_linearize_model_at_midpoint</a>(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ac82365b8f4f2d24466e60bbf01042142">_logger</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9ec401321cfa9eda2672c9a65b6ba11d">_logger</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af0baca6c1bd4847c2c3ab98e3c6c4adb">_lowerVarBounds</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7952199940d657eed365a660f4538527">_LPstatus</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2277a8ee8f3f41a9498c43add63835c4">_maingoSettings</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1b4b4c6e80d76f83bb5a2a7f7d2f165c">_maingoSettings</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8ef7d876bfe5e621b0d9dce7e00f4e8f">_matrixEq1</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a75e8efba11ed031032d7e75513f10ba1">_matrixEq2</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a05546b786f27f965b411bf39944e2d61">_matrixEqRelaxationOnly1</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
@@ -152,53 +152,54 @@ $(document).ready(function(){initNavTree('classmaingo_1_1lbp_1_1_lbp_interval.ht
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a5e059ef32469739da674be2946048dd0">_nvar</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a67b22b446040aa9148dbbd411ad928bb">_objectiveScalingFactors</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ab2c6d75aa915dd5e3296b0873d39acfd">_objectiveValue</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a39ef7296e50fb200934ff74a017e43bf">_originalVariables</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ad73a525d4fbef8238e26dd95890f2b2b">_print_LP</a>(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af8be99dda0a3968034aed1c5a0d9fba4">_reset_LP</a>(const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9ee38ffd8ce3d627bfd70c195f9be58d">_restore_LP_coefficients_after_OBBT</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#ac7defcd5788a9a9d5e6808a153befe3c">_resultInterval</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html">maingo::lbp::LbpInterval</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7d227b1709674b820d8bc7c0466aaa13">_rhsEq1</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a56a7df7c8fc8858597b8cdb8985949cd">_rhsEq2</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a53ec1c841361380f907fe4bc059096f3">_rhsEqRelaxationOnly1</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae4517e4a83ca2c5e58a22d5725aea439">_rhsEqRelaxationOnly2</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#abc5d2f11849c00d60b5c181e3fc1ecc5">_rhsIneq</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a687c42fa025369080f4fa0745a5a2256">_rhsIneqRelaxationOnly</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af5a66b5283474172bf128f2b2c3a4ba7">_rhsIneqSquash</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a443c3bf5e7640f49f8fa7b5503ac9371">_rhsObj</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae59a4d355107b80b3e1a6efbc6488b66">_set_optimization_sense_of_variable</a>(const unsigned &amp;iVar, const int &amp;optimizationSense)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#afde12ebd0aeaaf720167a51b0fd08a83">_set_variable_bounds</a>(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html">maingo::lbp::LbpInterval</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae9f3f49ebc4c635d2c38abbf42c9f256">_solutionPoint</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#ac28a50c89f88e52c1af7af2ed5104bdb">_solve_LP</a>(const babBase::BabNode &amp;currentNode)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html">maingo::lbp::LbpInterval</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a456cbe28fac6fbf3508b09b04d1ea846">_truncate_value</a>(double &amp;value, const double tolerance)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a2a9d6be191c080861b7ae9de9ca46f98">_turn_off_specific_options</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html">maingo::lbp::LbpInterval</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a70bb4b9bda381f7e2f1e49b66be863c2">_update_LP</a>(const babBase::BabNode &amp;currentNode)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html">maingo::lbp::LbpInterval</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a274c50b0ce633cb4b9616f9ec737bbae">_update_LP_eq</a>(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEq)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html">maingo::lbp::LbpInterval</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a40d9842e7d85a37376bd3bf51761b315">maingo::lbp::LowerBoundingSolver::_update_LP_eq</a>(const vMC &amp;resultRelaxationCvVMC, const vMC &amp;resultRelaxationCcVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iEq)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#aea1859e400fedef26c0391fe3d2262e0">_update_LP_eqRelaxationOnly</a>(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEqRelaxationOnly)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html">maingo::lbp::LbpInterval</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ad3893a30edf38b7801801e754773e8da">maingo::lbp::LowerBoundingSolver::_update_LP_eqRelaxationOnly</a>(const vMC &amp;resultRelaxationCvVMC, const vMC &amp;resultRelaxationCcVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iEqRelaxationOnly)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a936d2fad181003f31673eb053299aa4e">_update_LP_ineq</a>(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneq)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html">maingo::lbp::LbpInterval</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aa8861fe9e09b15e2f5ce5ade743f003a">maingo::lbp::LowerBoundingSolver::_update_LP_ineq</a>(const vMC &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iIneq)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a6fe830f1bb82860614d7812e260520bd">_update_LP_ineq_squash</a>(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneqSquash)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html">maingo::lbp::LbpInterval</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9c717d353a6b55b72879c448ba927add">maingo::lbp::LowerBoundingSolver::_update_LP_ineq_squash</a>(const vMC &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iIneqSquash)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#af632f780426eb916d395a7854b446e23">_update_LP_ineqRelaxationOnly</a>(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneqRelaxationOnly)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html">maingo::lbp::LbpInterval</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a161849015fb7e113fdf088a24671b9c9">maingo::lbp::LowerBoundingSolver::_update_LP_ineqRelaxationOnly</a>(const vMC &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iIneqRelaxationOnly)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aa0074d7d40a6c7d983ed738cfb501a5e">_update_LP_nonlinear</a>(const std::vector&lt; MC &gt; &amp;resultRelaxationNonlinear, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, const unsigned iLin)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a44512a8b2e88dee8c859b382c7777beb">_update_LP_nonlinear_linear</a>(const std::vector&lt; vMC &gt; &amp;resultRelaxationVMCNonlinear, const std::vector&lt; MC &gt; &amp;resultRelaxationLinear, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;scaledPoints, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a7282b284518725b3754a29531001d67f">_update_LP_obj</a>(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iObj)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html">maingo::lbp::LbpInterval</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#acbf69ad8646a8f786e6b4d2e91fd54fe">maingo::lbp::LowerBoundingSolver::_update_LP_obj</a>(const vMC &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iObj)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8f63bc9db34d63c361e2a5e8943fe6c6">_update_whole_LP_at_linpoint</a>(const std::vector&lt; MC &gt; &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a346ce6af484360fa0d789f02a460ca33">_update_whole_LP_at_vector_linpoints</a>(const std::vector&lt; vMC &gt; &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoints, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae8e6470d9c422e32457e7dd7e7a8cc50">_upperVarBounds</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a5ae276345994ad701c7640d7c4bd4f0d">activate_more_scaling</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html">maingo::lbp::LbpInterval</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1f0229a0978bf619d22afe5a5c5f3e3a">do_constraint_propagation</a>(babBase::BabNode &amp;currentNode, const double currentUBD, const unsigned pass=3)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9617d81f28d3a1ba3270d3a73ee81e85">do_dbbt_and_probing</a>(babBase::BabNode &amp;currentNode, const std::vector&lt; double &gt; &amp;lbpSolutionPoint, const LbpDualInfo &amp;dualInfo, const double currentUBD)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#ae0c855db98ba9a8c6e32500e1efcbbe7">LbpInterval</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html">maingo::lbp::LbpInterval</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a31416f2224eea283c3ae280ed3beb497">LowerBoundingSolver</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a75d8c7d165cc917a455243f528ea23df">preprocessor_check_options</a>(const babBase::BabNode &amp;rootNode)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1bd1db09ee19b087b11a761d41dc195d">solve_LBP</a>(const babBase::BabNode &amp;currentNode, double &amp;lowerBound, std::vector&lt; double &gt; &amp;solutionPoint, LbpDualInfo &amp;dualInfo)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a51baac566450ca4b94cd715b57c38752">solve_OBBT</a>(babBase::BabNode &amp;currentNode, const double currentUBD, const OBBT reductionType)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2f1320936ed40642c7cf4cf0fe31d14f">update_incumbent_LBP</a>(const std::vector&lt; double &gt; &amp;incumbentBAB)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae45e85f9c8bc19bba1510e89b0698a97">~LowerBoundingSolver</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a44e1d78a441997c6fced40f8c91c8043">_onlyBoxConstraints</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a39ef7296e50fb200934ff74a017e43bf">_originalVariables</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ad73a525d4fbef8238e26dd95890f2b2b">_print_LP</a>(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af8be99dda0a3968034aed1c5a0d9fba4">_reset_LP</a>(const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9ee38ffd8ce3d627bfd70c195f9be58d">_restore_LP_coefficients_after_OBBT</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#ac7defcd5788a9a9d5e6808a153befe3c">_resultInterval</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html">maingo::lbp::LbpInterval</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7d227b1709674b820d8bc7c0466aaa13">_rhsEq1</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a56a7df7c8fc8858597b8cdb8985949cd">_rhsEq2</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a53ec1c841361380f907fe4bc059096f3">_rhsEqRelaxationOnly1</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae4517e4a83ca2c5e58a22d5725aea439">_rhsEqRelaxationOnly2</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#abc5d2f11849c00d60b5c181e3fc1ecc5">_rhsIneq</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a687c42fa025369080f4fa0745a5a2256">_rhsIneqRelaxationOnly</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af5a66b5283474172bf128f2b2c3a4ba7">_rhsIneqSquash</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a443c3bf5e7640f49f8fa7b5503ac9371">_rhsObj</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae59a4d355107b80b3e1a6efbc6488b66">_set_optimization_sense_of_variable</a>(const unsigned &amp;iVar, const int &amp;optimizationSense)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#afde12ebd0aeaaf720167a51b0fd08a83">_set_variable_bounds</a>(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html">maingo::lbp::LbpInterval</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae9f3f49ebc4c635d2c38abbf42c9f256">_solutionPoint</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#ac28a50c89f88e52c1af7af2ed5104bdb">_solve_LP</a>(const babBase::BabNode &amp;currentNode)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html">maingo::lbp::LbpInterval</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a456cbe28fac6fbf3508b09b04d1ea846">_truncate_value</a>(double &amp;value, const double tolerance)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a2a9d6be191c080861b7ae9de9ca46f98">_turn_off_specific_options</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html">maingo::lbp::LbpInterval</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a70bb4b9bda381f7e2f1e49b66be863c2">_update_LP</a>(const babBase::BabNode &amp;currentNode)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html">maingo::lbp::LbpInterval</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a274c50b0ce633cb4b9616f9ec737bbae">_update_LP_eq</a>(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEq)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html">maingo::lbp::LbpInterval</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a40d9842e7d85a37376bd3bf51761b315">maingo::lbp::LowerBoundingSolver::_update_LP_eq</a>(const vMC &amp;resultRelaxationCvVMC, const vMC &amp;resultRelaxationCcVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iEq)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#aea1859e400fedef26c0391fe3d2262e0">_update_LP_eqRelaxationOnly</a>(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEqRelaxationOnly)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html">maingo::lbp::LbpInterval</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ad3893a30edf38b7801801e754773e8da">maingo::lbp::LowerBoundingSolver::_update_LP_eqRelaxationOnly</a>(const vMC &amp;resultRelaxationCvVMC, const vMC &amp;resultRelaxationCcVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iEqRelaxationOnly)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a936d2fad181003f31673eb053299aa4e">_update_LP_ineq</a>(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneq)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html">maingo::lbp::LbpInterval</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aa8861fe9e09b15e2f5ce5ade743f003a">maingo::lbp::LowerBoundingSolver::_update_LP_ineq</a>(const vMC &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iIneq)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a6fe830f1bb82860614d7812e260520bd">_update_LP_ineq_squash</a>(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneqSquash)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html">maingo::lbp::LbpInterval</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9c717d353a6b55b72879c448ba927add">maingo::lbp::LowerBoundingSolver::_update_LP_ineq_squash</a>(const vMC &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iIneqSquash)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#af632f780426eb916d395a7854b446e23">_update_LP_ineqRelaxationOnly</a>(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneqRelaxationOnly)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html">maingo::lbp::LbpInterval</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a161849015fb7e113fdf088a24671b9c9">maingo::lbp::LowerBoundingSolver::_update_LP_ineqRelaxationOnly</a>(const vMC &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iIneqRelaxationOnly)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aa0074d7d40a6c7d983ed738cfb501a5e">_update_LP_nonlinear</a>(const std::vector&lt; MC &gt; &amp;resultRelaxationNonlinear, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, const unsigned iLin)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a44512a8b2e88dee8c859b382c7777beb">_update_LP_nonlinear_linear</a>(const std::vector&lt; vMC &gt; &amp;resultRelaxationVMCNonlinear, const std::vector&lt; MC &gt; &amp;resultRelaxationLinear, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;scaledPoints, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a7282b284518725b3754a29531001d67f">_update_LP_obj</a>(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iObj)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html">maingo::lbp::LbpInterval</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#acbf69ad8646a8f786e6b4d2e91fd54fe">maingo::lbp::LowerBoundingSolver::_update_LP_obj</a>(const vMC &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iObj)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8f63bc9db34d63c361e2a5e8943fe6c6">_update_whole_LP_at_linpoint</a>(const std::vector&lt; MC &gt; &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a346ce6af484360fa0d789f02a460ca33">_update_whole_LP_at_vector_linpoints</a>(const std::vector&lt; vMC &gt; &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoints, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae8e6470d9c422e32457e7dd7e7a8cc50">_upperVarBounds</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a5ae276345994ad701c7640d7c4bd4f0d">activate_more_scaling</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html">maingo::lbp::LbpInterval</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1f0229a0978bf619d22afe5a5c5f3e3a">do_constraint_propagation</a>(babBase::BabNode &amp;currentNode, const double currentUBD, const unsigned pass=3)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9617d81f28d3a1ba3270d3a73ee81e85">do_dbbt_and_probing</a>(babBase::BabNode &amp;currentNode, const std::vector&lt; double &gt; &amp;lbpSolutionPoint, const LbpDualInfo &amp;dualInfo, const double currentUBD)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a42f6c355cd7752a138f96614bb401491">LbpInterval</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html">maingo::lbp::LbpInterval</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9680e92120bb8a0693095f965421d7d7">LowerBoundingSolver</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a75d8c7d165cc917a455243f528ea23df">preprocessor_check_options</a>(const babBase::BabNode &amp;rootNode)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1bd1db09ee19b087b11a761d41dc195d">solve_LBP</a>(const babBase::BabNode &amp;currentNode, double &amp;lowerBound, std::vector&lt; double &gt; &amp;solutionPoint, LbpDualInfo &amp;dualInfo)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a51baac566450ca4b94cd715b57c38752">solve_OBBT</a>(babBase::BabNode &amp;currentNode, const double currentUBD, const OBBT reductionType)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2f1320936ed40642c7cf4cf0fe31d14f">update_incumbent_LBP</a>(const std::vector&lt; double &gt; &amp;incumbentBAB)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae45e85f9c8bc19bba1510e89b0698a97">~LowerBoundingSolver</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -206,7 +207,7 @@ $(document).ready(function(){initNavTree('classmaingo_1_1lbp_1_1_lbp_interval.ht
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1lbp_1_1_lbp_interval.html b/doc/html/classmaingo_1_1lbp_1_1_lbp_interval.html
index 348423458d3f59eb6d7ddd792c7ce52754ed0566..e0d120721ec9a2376a6eb6d33f17ba5fd66cbf47 100644
--- a/doc/html/classmaingo_1_1lbp_1_1_lbp_interval.html
+++ b/doc/html/classmaingo_1_1lbp_1_1_lbp_interval.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::lbp::LbpInterval Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -106,21 +106,21 @@ Inheritance diagram for maingo::lbp::LbpInterval:</div>
   <img src="classmaingo_1_1lbp_1_1_lbp_interval.png" usemap="#maingo::lbp::LbpInterval_map" alt=""/>
   <map id="maingo::lbp::LbpInterval_map" name="maingo::lbp::LbpInterval_map">
 <area href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html" title="Wrapper for handling the lower bounding problems as well as optimization-based bounds tightening (OBB..." alt="maingo::lbp::LowerBoundingSolver" shape="rect" coords="0,0,206,24"/>
-  </map>
-</div></div>
+</map>
+ </div></div>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:ae0c855db98ba9a8c6e32500e1efcbbe7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#ae0c855db98ba9a8c6e32500e1efcbbe7">LbpInterval</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, <a class="el" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="el" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn, std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *constraintPropertiesIn)</td></tr>
-<tr class="memdesc:ae0c855db98ba9a8c6e32500e1efcbbe7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem.  <a href="#ae0c855db98ba9a8c6e32500e1efcbbe7">More...</a><br /></td></tr>
-<tr class="separator:ae0c855db98ba9a8c6e32500e1efcbbe7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a42f6c355cd7752a138f96614bb401491"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a42f6c355cd7752a138f96614bb401491">LbpInterval</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt; settingsIn, std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt; constraintPropertiesIn)</td></tr>
+<tr class="memdesc:a42f6c355cd7752a138f96614bb401491"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem.  <a href="#a42f6c355cd7752a138f96614bb401491">More...</a><br /></td></tr>
+<tr class="separator:a42f6c355cd7752a138f96614bb401491"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a5ae276345994ad701c7640d7c4bd4f0d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a5ae276345994ad701c7640d7c4bd4f0d">activate_more_scaling</a> ()</td></tr>
 <tr class="memdesc:a5ae276345994ad701c7640d7c4bd4f0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function called by the B&amp;B solver to heuristically activate more scaling in the LBS.  <a href="#a5ae276345994ad701c7640d7c4bd4f0d">More...</a><br /></td></tr>
 <tr class="separator:a5ae276345994ad701c7640d7c4bd4f0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_methods_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classmaingo_1_1lbp_1_1_lower_bounding_solver')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td></tr>
-<tr class="memitem:a31416f2224eea283c3ae280ed3beb497 inherit pub_methods_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a31416f2224eea283c3ae280ed3beb497">LowerBoundingSolver</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, <a class="el" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="el" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn, std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *constraintPropertiesIn)</td></tr>
-<tr class="memdesc:a31416f2224eea283c3ae280ed3beb497 inherit pub_methods_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem and constructs an own copy of the directed acyclic graph.  <a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a31416f2224eea283c3ae280ed3beb497">More...</a><br /></td></tr>
-<tr class="separator:a31416f2224eea283c3ae280ed3beb497 inherit pub_methods_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9680e92120bb8a0693095f965421d7d7 inherit pub_methods_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9680e92120bb8a0693095f965421d7d7">LowerBoundingSolver</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt; settingsIn, std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt; constraintPropertiesIn)</td></tr>
+<tr class="memdesc:a9680e92120bb8a0693095f965421d7d7 inherit pub_methods_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem and constructs an own copy of the directed acyclic graph.  <a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9680e92120bb8a0693095f965421d7d7">More...</a><br /></td></tr>
+<tr class="separator:a9680e92120bb8a0693095f965421d7d7 inherit pub_methods_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ae45e85f9c8bc19bba1510e89b0698a97 inherit pub_methods_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae45e85f9c8bc19bba1510e89b0698a97">~LowerBoundingSolver</a> ()</td></tr>
 <tr class="memdesc:ae45e85f9c8bc19bba1510e89b0698a97 inherit pub_methods_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual destructor, only needed to make sure the correct destructor of the derived classes is called.  <a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae45e85f9c8bc19bba1510e89b0698a97">More...</a><br /></td></tr>
 <tr class="separator:ae45e85f9c8bc19bba1510e89b0698a97 inherit pub_methods_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -297,11 +297,11 @@ Protected Member Functions</h2></td></tr>
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
 Private Attributes</h2></td></tr>
 <tr><td colspan="2"><div class="groupHeader">Internal interval variables</div></td></tr>
-<tr class="memitem:ac7defcd5788a9a9d5e6808a153befe3c"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="interval_library_8h.html#a719e28aa7350b1ab0efe53725d78a54f">I</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#ac7defcd5788a9a9d5e6808a153befe3c">_resultInterval</a></td></tr>
+<tr class="memitem:ac7defcd5788a9a9d5e6808a153befe3c"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="interval_library_8h.html#a752577663acb2d105778a51e93452c1a">I</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#ac7defcd5788a9a9d5e6808a153befe3c">_resultInterval</a></td></tr>
 <tr class="separator:ac7defcd5788a9a9d5e6808a153befe3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8ff583ee6ae4a233daf85c29cabc6ba5"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="interval_library_8h.html#a719e28aa7350b1ab0efe53725d78a54f">I</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a8ff583ee6ae4a233daf85c29cabc6ba5">_Intervals</a></td></tr>
+<tr class="memitem:a8ff583ee6ae4a233daf85c29cabc6ba5"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="interval_library_8h.html#a752577663acb2d105778a51e93452c1a">I</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a8ff583ee6ae4a233daf85c29cabc6ba5">_Intervals</a></td></tr>
 <tr class="separator:a8ff583ee6ae4a233daf85c29cabc6ba5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aef1c4f8ac1b79c59562f10d2e87f4a6a"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="interval_library_8h.html#a719e28aa7350b1ab0efe53725d78a54f">I</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#aef1c4f8ac1b79c59562f10d2e87f4a6a">_Iarray</a></td></tr>
+<tr class="memitem:aef1c4f8ac1b79c59562f10d2e87f4a6a"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="interval_library_8h.html#a752577663acb2d105778a51e93452c1a">I</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#aef1c4f8ac1b79c59562f10d2e87f4a6a">_Iarray</a></td></tr>
 <tr class="separator:aef1c4f8ac1b79c59562f10d2e87f4a6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
@@ -345,12 +345,12 @@ Additional Inherited Members</h2></td></tr>
 <tr class="separator:af5a66b5283474172bf128f2b2c3a4ba7 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a807d99cf52ff7bcfa7948e03b585ea54 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html">DagObj</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a807d99cf52ff7bcfa7948e03b585ea54">_DAGobj</a></td></tr>
 <tr class="separator:a807d99cf52ff7bcfa7948e03b585ea54 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2277a8ee8f3f41a9498c43add63835c4 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1_settings.html">Settings</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2277a8ee8f3f41a9498c43add63835c4">_maingoSettings</a></td></tr>
-<tr class="separator:a2277a8ee8f3f41a9498c43add63835c4 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac82365b8f4f2d24466e60bbf01042142 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmaingo_1_1_logger.html">Logger</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ac82365b8f4f2d24466e60bbf01042142">_logger</a></td></tr>
-<tr class="separator:ac82365b8f4f2d24466e60bbf01042142 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1b23a7c1621517ac4506bd043d43950e inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1b23a7c1621517ac4506bd043d43950e">_constraintProperties</a></td></tr>
-<tr class="separator:a1b23a7c1621517ac4506bd043d43950e inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1b4b4c6e80d76f83bb5a2a7f7d2f165c inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1b4b4c6e80d76f83bb5a2a7f7d2f165c">_maingoSettings</a></td></tr>
+<tr class="separator:a1b4b4c6e80d76f83bb5a2a7f7d2f165c inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9ec401321cfa9eda2672c9a65b6ba11d inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9ec401321cfa9eda2672c9a65b6ba11d">_logger</a></td></tr>
+<tr class="separator:a9ec401321cfa9eda2672c9a65b6ba11d inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a701c19e247fa6e9791313252084b770a inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a701c19e247fa6e9791313252084b770a">_constraintProperties</a></td></tr>
+<tr class="separator:a701c19e247fa6e9791313252084b770a inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a8fc065971f7753722d93201222f91063 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::vector&lt; unsigned &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8fc065971f7753722d93201222f91063">_nLinObj</a></td></tr>
 <tr class="separator:a8fc065971f7753722d93201222f91063 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a3bb190287b40d8ff446184a0ace005bf inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::vector&lt; unsigned &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a3bb190287b40d8ff446184a0ace005bf">_nLinIneq</a></td></tr>
@@ -377,6 +377,8 @@ Additional Inherited Members</h2></td></tr>
 <tr class="separator:a637f881b8ce5464725a611fde5ae5bc2 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:af339d8b557668fa7f961faf44c4cbf6b inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">const unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af339d8b557668fa7f961faf44c4cbf6b">_nineqSquash</a></td></tr>
 <tr class="separator:af339d8b557668fa7f961faf44c4cbf6b inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a44e1d78a441997c6fced40f8c91c8043 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a44e1d78a441997c6fced40f8c91c8043">_onlyBoxConstraints</a></td></tr>
+<tr class="separator:a44e1d78a441997c6fced40f8c91c8043 inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a39ef7296e50fb200934ff74a017e43bf inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a39ef7296e50fb200934ff74a017e43bf">_originalVariables</a></td></tr>
 <tr class="separator:a39ef7296e50fb200934ff74a017e43bf inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ab2c6d75aa915dd5e3296b0873d39acfd inherit pro_attribs_classmaingo_1_1lbp_1_1_lower_bounding_solver"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ab2c6d75aa915dd5e3296b0873d39acfd">_objectiveValue</a></td></tr>
@@ -399,8 +401,8 @@ Additional Inherited Members</h2></td></tr>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><p>Wrapper for handling the lower bounding problems by using interval arithmetics. We currently do a bit too much work, if the subgradient interval heuristic is not used, since we additionally compute the McCormick relaxations. </p>
 </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a id="ae0c855db98ba9a8c6e32500e1efcbbe7"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ae0c855db98ba9a8c6e32500e1efcbbe7">&#9670;&nbsp;</a></span>LbpInterval()</h2>
+<a id="a42f6c355cd7752a138f96614bb401491"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a42f6c355cd7752a138f96614bb401491">&#9670;&nbsp;</a></span>LbpInterval()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -462,19 +464,19 @@ Additional Inherited Members</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="structmaingo_1_1_settings.html">Settings</a> *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt;&#160;</td>
           <td class="paramname"><em>settingsIn</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="classmaingo_1_1_logger.html">Logger</a> *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt;&#160;</td>
           <td class="paramname"><em>loggerIn</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt;&#160;</td>
           <td class="paramname"><em>constraintPropertiesIn</em>&#160;</td>
         </tr>
         <tr>
@@ -1303,7 +1305,7 @@ Additional Inherited Members</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">std::vector&lt;<a class="el" href="interval_library_8h.html#a719e28aa7350b1ab0efe53725d78a54f">I</a>&gt; maingo::lbp::LbpInterval::_Iarray</td>
+          <td class="memname">std::vector&lt;<a class="el" href="interval_library_8h.html#a752577663acb2d105778a51e93452c1a">I</a>&gt; maingo::lbp::LbpInterval::_Iarray</td>
         </tr>
       </table>
   </td>
@@ -1326,7 +1328,7 @@ Additional Inherited Members</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">std::vector&lt;<a class="el" href="interval_library_8h.html#a719e28aa7350b1ab0efe53725d78a54f">I</a>&gt; maingo::lbp::LbpInterval::_Intervals</td>
+          <td class="memname">std::vector&lt;<a class="el" href="interval_library_8h.html#a752577663acb2d105778a51e93452c1a">I</a>&gt; maingo::lbp::LbpInterval::_Intervals</td>
         </tr>
       </table>
   </td>
@@ -1349,7 +1351,7 @@ Additional Inherited Members</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">std::vector&lt;<a class="el" href="interval_library_8h.html#a719e28aa7350b1ab0efe53725d78a54f">I</a>&gt; maingo::lbp::LbpInterval::_resultInterval</td>
+          <td class="memname">std::vector&lt;<a class="el" href="interval_library_8h.html#a752577663acb2d105778a51e93452c1a">I</a>&gt; maingo::lbp::LbpInterval::_resultInterval</td>
         </tr>
       </table>
   </td>
@@ -1363,8 +1365,8 @@ Additional Inherited Members</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this class was generated from the following files:<ul>
-<li>C:/Users/dobo01/maingo/inc/<a class="el" href="lbp_interval_8h_source.html">lbpInterval.h</a></li>
-<li>C:/Users/dobo01/maingo/src/<a class="el" href="lbp_interval_8cpp.html">lbpInterval.cpp</a></li>
+<li>C:/dobo01/maingo/inc/<a class="el" href="lbp_interval_8h_source.html">lbpInterval.h</a></li>
+<li>C:/dobo01/maingo/src/<a class="el" href="lbp_interval_8cpp.html">lbpInterval.cpp</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -1374,7 +1376,7 @@ Additional Inherited Members</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="namespacemaingo_1_1lbp.html">lbp</a></li><li class="navelem"><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html">LbpInterval</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1lbp_1_1_lbp_interval.js b/doc/html/classmaingo_1_1lbp_1_1_lbp_interval.js
index ffe0cf95485f7f4448236c72c2e0dcc914178993..97cfba2b7c57282b2749c6aa70b355d68fb1fc44 100644
--- a/doc/html/classmaingo_1_1lbp_1_1_lbp_interval.js
+++ b/doc/html/classmaingo_1_1lbp_1_1_lbp_interval.js
@@ -1,6 +1,6 @@
 var classmaingo_1_1lbp_1_1_lbp_interval =
 [
-    [ "LbpInterval", "classmaingo_1_1lbp_1_1_lbp_interval.html#ae0c855db98ba9a8c6e32500e1efcbbe7", null ],
+    [ "LbpInterval", "classmaingo_1_1lbp_1_1_lbp_interval.html#a42f6c355cd7752a138f96614bb401491", null ],
     [ "_check_feasibility", "classmaingo_1_1lbp_1_1_lbp_interval.html#aae0fb055173014b96398727f31cf8138", null ],
     [ "_check_infeasibility", "classmaingo_1_1lbp_1_1_lbp_interval.html#a5ec0a4dc7543d432fe2c44892469c959", null ],
     [ "_check_optimality", "classmaingo_1_1lbp_1_1_lbp_interval.html#a5a44a19b7c78a6235abd0e44f9de71b7", null ],
diff --git a/doc/html/classmaingo_1_1lbp_1_1_lower_bounding_solver-members.html b/doc/html/classmaingo_1_1lbp_1_1_lower_bounding_solver-members.html
index f8f1d1918bf86abde129a549b6ba0f9e216c3c6b..3227f0b7b78e642480c7c82068a358f781dab8fe 100644
--- a/doc/html/classmaingo_1_1lbp_1_1_lower_bounding_solver-members.html
+++ b/doc/html/classmaingo_1_1lbp_1_1_lower_bounding_solver-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -100,7 +100,7 @@ $(document).ready(function(){initNavTree('classmaingo_1_1lbp_1_1_lower_bounding_
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a13d16bea111e56762479856995fe8435">_choose_good_lin_points</a>(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, bool firstTime=true)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aaa92d78b7ce6a1b2939131063bd6f68a">_computationTol</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4dd432d487c2099767f0d6de64711bb9">_compute_and_rotate_simplex</a>(const unsigned int dim, const double angleIn, const double sphereRadius, std::vector&lt; std::vector&lt; double &gt;&gt; &amp;simplexPoints)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1b23a7c1621517ac4506bd043d43950e">_constraintProperties</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a701c19e247fa6e9791313252084b770a">_constraintProperties</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a807d99cf52ff7bcfa7948e03b585ea54">_DAGobj</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a3fcb771d5ccdac5d7ee197f6b412044b">_deactivate_objective_function_for_OBBT</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1994bc43cf051908c35889bb08d3cb02">_differentNumberOfLins</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
@@ -121,10 +121,10 @@ $(document).ready(function(){initNavTree('classmaingo_1_1lbp_1_1_lower_bounding_
   <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4fe2354f3e4bbee160964b089710838e">_linearize_functions_at_preset_vector_linpoint</a>(std::vector&lt; vMC &gt; &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoints, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, mc::FFSubgraph &amp;subgraph, std::vector&lt; mc::FFVar &gt; &amp;functions)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a96d0133b5deda10067177dee19fd4f6f">_linearize_model_at_incumbent</a>(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, const bool holdsIncumbent)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a88c29043b78956e34cc95ab46eaac9d1">_linearize_model_at_midpoint</a>(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ac82365b8f4f2d24466e60bbf01042142">_logger</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9ec401321cfa9eda2672c9a65b6ba11d">_logger</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af0baca6c1bd4847c2c3ab98e3c6c4adb">_lowerVarBounds</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7952199940d657eed365a660f4538527">_LPstatus</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2277a8ee8f3f41a9498c43add63835c4">_maingoSettings</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1b4b4c6e80d76f83bb5a2a7f7d2f165c">_maingoSettings</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8ef7d876bfe5e621b0d9dce7e00f4e8f">_matrixEq1</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a75e8efba11ed031032d7e75513f10ba1">_matrixEq2</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a05546b786f27f965b411bf39944e2d61">_matrixEqRelaxationOnly1</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
@@ -150,55 +150,56 @@ $(document).ready(function(){initNavTree('classmaingo_1_1lbp_1_1_lower_bounding_
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a5e059ef32469739da674be2946048dd0">_nvar</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a67b22b446040aa9148dbbd411ad928bb">_objectiveScalingFactors</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ab2c6d75aa915dd5e3296b0873d39acfd">_objectiveValue</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a39ef7296e50fb200934ff74a017e43bf">_originalVariables</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ad73a525d4fbef8238e26dd95890f2b2b">_print_LP</a>(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af8be99dda0a3968034aed1c5a0d9fba4">_reset_LP</a>(const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9ee38ffd8ce3d627bfd70c195f9be58d">_restore_LP_coefficients_after_OBBT</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7d227b1709674b820d8bc7c0466aaa13">_rhsEq1</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a56a7df7c8fc8858597b8cdb8985949cd">_rhsEq2</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a53ec1c841361380f907fe4bc059096f3">_rhsEqRelaxationOnly1</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae4517e4a83ca2c5e58a22d5725aea439">_rhsEqRelaxationOnly2</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#abc5d2f11849c00d60b5c181e3fc1ecc5">_rhsIneq</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a687c42fa025369080f4fa0745a5a2256">_rhsIneqRelaxationOnly</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af5a66b5283474172bf128f2b2c3a4ba7">_rhsIneqSquash</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a443c3bf5e7640f49f8fa7b5503ac9371">_rhsObj</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a0fa8b386f6bd8a3803e1c8fbfbde6e64">_set_number_of_linpoints</a>(const unsigned int LBP_linPoints)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae59a4d355107b80b3e1a6efbc6488b66">_set_optimization_sense_of_variable</a>(const unsigned &amp;iVar, const int &amp;optimizationSense)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4124918b8c196646da6489c6d19a5cb9">_set_variable_bounds</a>(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae9f3f49ebc4c635d2c38abbf42c9f256">_solutionPoint</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aaa7dbb4ba6ef927a0889233378725089">_solve_LP</a>(const babBase::BabNode &amp;currentNode)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a124cee8eb569d80dbe8c162e412906d8">_solve_probing_LBP</a>(babBase::BabNode &amp;currentNode, LbpDualInfo &amp;dualInfo, const unsigned int iVar, const bool fixToLowerBound)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a456cbe28fac6fbf3508b09b04d1ea846">_truncate_value</a>(double &amp;value, const double tolerance)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9f37648a18e394088679dc92701dd76f">_turn_off_specific_options</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a018fd682b724900df5060adfd73a953b">_update_LP</a>(const babBase::BabNode &amp;currentNode)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1aec7459f261f58b6e476fd7eae99581">_update_LP_eq</a>(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEq)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a40d9842e7d85a37376bd3bf51761b315">_update_LP_eq</a>(const vMC &amp;resultRelaxationCvVMC, const vMC &amp;resultRelaxationCcVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iEq)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a59a4631f9fbe8e1a568fd2a36fac31e2">_update_LP_eqRelaxationOnly</a>(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEqRelaxationOnly)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ad3893a30edf38b7801801e754773e8da">_update_LP_eqRelaxationOnly</a>(const vMC &amp;resultRelaxationCvVMC, const vMC &amp;resultRelaxationCcVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iEqRelaxationOnly)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6a57781338bfbdf0b99f3ec474ff3feb">_update_LP_ineq</a>(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneq)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aa8861fe9e09b15e2f5ce5ade743f003a">_update_LP_ineq</a>(const vMC &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iIneq)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aff0358f2e7b23dcabb961d27b71e6642">_update_LP_ineq_squash</a>(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneqSquash)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9c717d353a6b55b72879c448ba927add">_update_LP_ineq_squash</a>(const vMC &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iIneqSquash)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a793016f5e661fbfaf1488f1a6889f3c8">_update_LP_ineqRelaxationOnly</a>(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneqRelaxationOnly)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a161849015fb7e113fdf088a24671b9c9">_update_LP_ineqRelaxationOnly</a>(const vMC &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iIneqRelaxationOnly)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aa0074d7d40a6c7d983ed738cfb501a5e">_update_LP_nonlinear</a>(const std::vector&lt; MC &gt; &amp;resultRelaxationNonlinear, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, const unsigned iLin)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a44512a8b2e88dee8c859b382c7777beb">_update_LP_nonlinear_linear</a>(const std::vector&lt; vMC &gt; &amp;resultRelaxationVMCNonlinear, const std::vector&lt; MC &gt; &amp;resultRelaxationLinear, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;scaledPoints, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a464be8ca82b76704c0ecf60d7f9d2aad">_update_LP_obj</a>(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iObj)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#acbf69ad8646a8f786e6b4d2e91fd54fe">_update_LP_obj</a>(const vMC &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iObj)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8f63bc9db34d63c361e2a5e8943fe6c6">_update_whole_LP_at_linpoint</a>(const std::vector&lt; MC &gt; &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a346ce6af484360fa0d789f02a460ca33">_update_whole_LP_at_vector_linpoints</a>(const std::vector&lt; vMC &gt; &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoints, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae8e6470d9c422e32457e7dd7e7a8cc50">_upperVarBounds</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1c3d3c5fd2144af3a5e99fb1c74ef772">activate_more_scaling</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1f0229a0978bf619d22afe5a5c5f3e3a">do_constraint_propagation</a>(babBase::BabNode &amp;currentNode, const double currentUBD, const unsigned pass=3)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9617d81f28d3a1ba3270d3a73ee81e85">do_dbbt_and_probing</a>(babBase::BabNode &amp;currentNode, const std::vector&lt; double &gt; &amp;lbpSolutionPoint, const LbpDualInfo &amp;dualInfo, const double currentUBD)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a31416f2224eea283c3ae280ed3beb497">LowerBoundingSolver</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae097029abb950c0838bab24ef4bc360f">LowerBoundingSolver</a>(const LowerBoundingSolver &amp;)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7a7062b87f2074558f67c7cbbe397b58">operator=</a>(const LowerBoundingSolver &amp;)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a75d8c7d165cc917a455243f528ea23df">preprocessor_check_options</a>(const babBase::BabNode &amp;rootNode)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1bd1db09ee19b087b11a761d41dc195d">solve_LBP</a>(const babBase::BabNode &amp;currentNode, double &amp;lowerBound, std::vector&lt; double &gt; &amp;solutionPoint, LbpDualInfo &amp;dualInfo)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a51baac566450ca4b94cd715b57c38752">solve_OBBT</a>(babBase::BabNode &amp;currentNode, const double currentUBD, const OBBT reductionType)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2f1320936ed40642c7cf4cf0fe31d14f">update_incumbent_LBP</a>(const std::vector&lt; double &gt; &amp;incumbentBAB)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae45e85f9c8bc19bba1510e89b0698a97">~LowerBoundingSolver</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a44e1d78a441997c6fced40f8c91c8043">_onlyBoxConstraints</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a39ef7296e50fb200934ff74a017e43bf">_originalVariables</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ad73a525d4fbef8238e26dd95890f2b2b">_print_LP</a>(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af8be99dda0a3968034aed1c5a0d9fba4">_reset_LP</a>(const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9ee38ffd8ce3d627bfd70c195f9be58d">_restore_LP_coefficients_after_OBBT</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7d227b1709674b820d8bc7c0466aaa13">_rhsEq1</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a56a7df7c8fc8858597b8cdb8985949cd">_rhsEq2</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a53ec1c841361380f907fe4bc059096f3">_rhsEqRelaxationOnly1</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae4517e4a83ca2c5e58a22d5725aea439">_rhsEqRelaxationOnly2</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#abc5d2f11849c00d60b5c181e3fc1ecc5">_rhsIneq</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a687c42fa025369080f4fa0745a5a2256">_rhsIneqRelaxationOnly</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af5a66b5283474172bf128f2b2c3a4ba7">_rhsIneqSquash</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a443c3bf5e7640f49f8fa7b5503ac9371">_rhsObj</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a0fa8b386f6bd8a3803e1c8fbfbde6e64">_set_number_of_linpoints</a>(const unsigned int LBP_linPoints)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae59a4d355107b80b3e1a6efbc6488b66">_set_optimization_sense_of_variable</a>(const unsigned &amp;iVar, const int &amp;optimizationSense)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4124918b8c196646da6489c6d19a5cb9">_set_variable_bounds</a>(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae9f3f49ebc4c635d2c38abbf42c9f256">_solutionPoint</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aaa7dbb4ba6ef927a0889233378725089">_solve_LP</a>(const babBase::BabNode &amp;currentNode)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a124cee8eb569d80dbe8c162e412906d8">_solve_probing_LBP</a>(babBase::BabNode &amp;currentNode, LbpDualInfo &amp;dualInfo, const unsigned int iVar, const bool fixToLowerBound)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a456cbe28fac6fbf3508b09b04d1ea846">_truncate_value</a>(double &amp;value, const double tolerance)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9f37648a18e394088679dc92701dd76f">_turn_off_specific_options</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a018fd682b724900df5060adfd73a953b">_update_LP</a>(const babBase::BabNode &amp;currentNode)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1aec7459f261f58b6e476fd7eae99581">_update_LP_eq</a>(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEq)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a40d9842e7d85a37376bd3bf51761b315">_update_LP_eq</a>(const vMC &amp;resultRelaxationCvVMC, const vMC &amp;resultRelaxationCcVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iEq)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a59a4631f9fbe8e1a568fd2a36fac31e2">_update_LP_eqRelaxationOnly</a>(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEqRelaxationOnly)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ad3893a30edf38b7801801e754773e8da">_update_LP_eqRelaxationOnly</a>(const vMC &amp;resultRelaxationCvVMC, const vMC &amp;resultRelaxationCcVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iEqRelaxationOnly)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6a57781338bfbdf0b99f3ec474ff3feb">_update_LP_ineq</a>(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneq)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aa8861fe9e09b15e2f5ce5ade743f003a">_update_LP_ineq</a>(const vMC &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iIneq)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aff0358f2e7b23dcabb961d27b71e6642">_update_LP_ineq_squash</a>(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneqSquash)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9c717d353a6b55b72879c448ba927add">_update_LP_ineq_squash</a>(const vMC &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iIneqSquash)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a793016f5e661fbfaf1488f1a6889f3c8">_update_LP_ineqRelaxationOnly</a>(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneqRelaxationOnly)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a161849015fb7e113fdf088a24671b9c9">_update_LP_ineqRelaxationOnly</a>(const vMC &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iIneqRelaxationOnly)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aa0074d7d40a6c7d983ed738cfb501a5e">_update_LP_nonlinear</a>(const std::vector&lt; MC &gt; &amp;resultRelaxationNonlinear, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, const unsigned iLin)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a44512a8b2e88dee8c859b382c7777beb">_update_LP_nonlinear_linear</a>(const std::vector&lt; vMC &gt; &amp;resultRelaxationVMCNonlinear, const std::vector&lt; MC &gt; &amp;resultRelaxationLinear, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;scaledPoints, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a464be8ca82b76704c0ecf60d7f9d2aad">_update_LP_obj</a>(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iObj)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#acbf69ad8646a8f786e6b4d2e91fd54fe">_update_LP_obj</a>(const vMC &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iObj)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8f63bc9db34d63c361e2a5e8943fe6c6">_update_whole_LP_at_linpoint</a>(const std::vector&lt; MC &gt; &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a346ce6af484360fa0d789f02a460ca33">_update_whole_LP_at_vector_linpoints</a>(const std::vector&lt; vMC &gt; &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoints, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae8e6470d9c422e32457e7dd7e7a8cc50">_upperVarBounds</a></td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1c3d3c5fd2144af3a5e99fb1c74ef772">activate_more_scaling</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1f0229a0978bf619d22afe5a5c5f3e3a">do_constraint_propagation</a>(babBase::BabNode &amp;currentNode, const double currentUBD, const unsigned pass=3)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9617d81f28d3a1ba3270d3a73ee81e85">do_dbbt_and_probing</a>(babBase::BabNode &amp;currentNode, const std::vector&lt; double &gt; &amp;lbpSolutionPoint, const LbpDualInfo &amp;dualInfo, const double currentUBD)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9680e92120bb8a0693095f965421d7d7">LowerBoundingSolver</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae097029abb950c0838bab24ef4bc360f">LowerBoundingSolver</a>(const LowerBoundingSolver &amp;)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7a7062b87f2074558f67c7cbbe397b58">operator=</a>(const LowerBoundingSolver &amp;)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a75d8c7d165cc917a455243f528ea23df">preprocessor_check_options</a>(const babBase::BabNode &amp;rootNode)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1bd1db09ee19b087b11a761d41dc195d">solve_LBP</a>(const babBase::BabNode &amp;currentNode, double &amp;lowerBound, std::vector&lt; double &gt; &amp;solutionPoint, LbpDualInfo &amp;dualInfo)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a51baac566450ca4b94cd715b57c38752">solve_OBBT</a>(babBase::BabNode &amp;currentNode, const double currentUBD, const OBBT reductionType)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2f1320936ed40642c7cf4cf0fe31d14f">update_incumbent_LBP</a>(const std::vector&lt; double &gt; &amp;incumbentBAB)</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae45e85f9c8bc19bba1510e89b0698a97">~LowerBoundingSolver</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -206,7 +207,7 @@ $(document).ready(function(){initNavTree('classmaingo_1_1lbp_1_1_lower_bounding_
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1lbp_1_1_lower_bounding_solver.html b/doc/html/classmaingo_1_1lbp_1_1_lower_bounding_solver.html
index 9cb17a2ac959d236c233fa486dec1497275e6953..0ba94ab2772f2f1993ba72b5e84842a96113b267 100644
--- a/doc/html/classmaingo_1_1lbp_1_1_lower_bounding_solver.html
+++ b/doc/html/classmaingo_1_1lbp_1_1_lower_bounding_solver.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::lbp::LowerBoundingSolver Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -107,17 +107,17 @@ Inheritance diagram for maingo::lbp::LowerBoundingSolver:</div>
  <div class="center">
   <img src="classmaingo_1_1lbp_1_1_lower_bounding_solver.png" usemap="#maingo::lbp::LowerBoundingSolver_map" alt=""/>
   <map id="maingo::lbp::LowerBoundingSolver_map" name="maingo::lbp::LowerBoundingSolver_map">
-<area href="classmaingo_1_1lbp_1_1_lbp_clp.html" title="Wrapper for handling the lower bounding problems by interfacing CLP." alt="maingo::lbp::LbpClp" shape="rect" coords="0,56,206,80"/>
-<area href="classmaingo_1_1lbp_1_1_lbp_cplex.html" title="Wrapper for handling the lower bounding problems by interfacing CPLEX." alt="maingo::lbp::LbpCplex" shape="rect" coords="216,56,422,80"/>
+<area href="classmaingo_1_1lbp_1_1_lbp_clp.html" title="Wrapper for handling the lower bounding problems by interfacing CLP. " alt="maingo::lbp::LbpClp" shape="rect" coords="0,56,206,80"/>
+<area href="classmaingo_1_1lbp_1_1_lbp_cplex.html" title="Wrapper for handling the lower bounding problems by interfacing CPLEX. " alt="maingo::lbp::LbpCplex" shape="rect" coords="216,56,422,80"/>
 <area href="classmaingo_1_1lbp_1_1_lbp_interval.html" title="Wrapper for handling the lower bounding problems by using interval arithmetics. We currently do a bit..." alt="maingo::lbp::LbpInterval" shape="rect" coords="432,56,638,80"/>
-  </map>
-</div></div>
+</map>
+ </div></div>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:a31416f2224eea283c3ae280ed3beb497"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a31416f2224eea283c3ae280ed3beb497">LowerBoundingSolver</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, <a class="el" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="el" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn, std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *constraintPropertiesIn)</td></tr>
-<tr class="memdesc:a31416f2224eea283c3ae280ed3beb497"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem and constructs an own copy of the directed acyclic graph.  <a href="#a31416f2224eea283c3ae280ed3beb497">More...</a><br /></td></tr>
-<tr class="separator:a31416f2224eea283c3ae280ed3beb497"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9680e92120bb8a0693095f965421d7d7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9680e92120bb8a0693095f965421d7d7">LowerBoundingSolver</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt; settingsIn, std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt; constraintPropertiesIn)</td></tr>
+<tr class="memdesc:a9680e92120bb8a0693095f965421d7d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem and constructs an own copy of the directed acyclic graph.  <a href="#a9680e92120bb8a0693095f965421d7d7">More...</a><br /></td></tr>
+<tr class="separator:a9680e92120bb8a0693095f965421d7d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ae45e85f9c8bc19bba1510e89b0698a97"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae45e85f9c8bc19bba1510e89b0698a97">~LowerBoundingSolver</a> ()</td></tr>
 <tr class="memdesc:ae45e85f9c8bc19bba1510e89b0698a97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual destructor, only needed to make sure the correct destructor of the derived classes is called.  <a href="#ae45e85f9c8bc19bba1510e89b0698a97">More...</a><br /></td></tr>
 <tr class="separator:ae45e85f9c8bc19bba1510e89b0698a97"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -335,12 +335,12 @@ Protected Attributes</h2></td></tr>
 <tr><td colspan="2"><div class="groupHeader">Pointers to several objects. Note that these are NOT const, since if we want to resolve with MAiNGO, the pointers have to change</div></td></tr>
 <tr class="memitem:a807d99cf52ff7bcfa7948e03b585ea54"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html">DagObj</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a807d99cf52ff7bcfa7948e03b585ea54">_DAGobj</a></td></tr>
 <tr class="separator:a807d99cf52ff7bcfa7948e03b585ea54"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2277a8ee8f3f41a9498c43add63835c4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1_settings.html">Settings</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2277a8ee8f3f41a9498c43add63835c4">_maingoSettings</a></td></tr>
-<tr class="separator:a2277a8ee8f3f41a9498c43add63835c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac82365b8f4f2d24466e60bbf01042142"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmaingo_1_1_logger.html">Logger</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ac82365b8f4f2d24466e60bbf01042142">_logger</a></td></tr>
-<tr class="separator:ac82365b8f4f2d24466e60bbf01042142"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1b23a7c1621517ac4506bd043d43950e"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1b23a7c1621517ac4506bd043d43950e">_constraintProperties</a></td></tr>
-<tr class="separator:a1b23a7c1621517ac4506bd043d43950e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1b4b4c6e80d76f83bb5a2a7f7d2f165c"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1b4b4c6e80d76f83bb5a2a7f7d2f165c">_maingoSettings</a></td></tr>
+<tr class="separator:a1b4b4c6e80d76f83bb5a2a7f7d2f165c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9ec401321cfa9eda2672c9a65b6ba11d"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9ec401321cfa9eda2672c9a65b6ba11d">_logger</a></td></tr>
+<tr class="separator:a9ec401321cfa9eda2672c9a65b6ba11d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a701c19e247fa6e9791313252084b770a"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a701c19e247fa6e9791313252084b770a">_constraintProperties</a></td></tr>
+<tr class="separator:a701c19e247fa6e9791313252084b770a"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr><td colspan="2"><div class="groupHeader">Internal variables for storing information on the problem</div></td></tr>
 <tr class="memitem:a8fc065971f7753722d93201222f91063"><td class="memItemLeft" align="right" valign="top">std::vector&lt; unsigned &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8fc065971f7753722d93201222f91063">_nLinObj</a></td></tr>
 <tr class="separator:a8fc065971f7753722d93201222f91063"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -368,6 +368,8 @@ Protected Attributes</h2></td></tr>
 <tr class="separator:a637f881b8ce5464725a611fde5ae5bc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:af339d8b557668fa7f961faf44c4cbf6b"><td class="memItemLeft" align="right" valign="top">const unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af339d8b557668fa7f961faf44c4cbf6b">_nineqSquash</a></td></tr>
 <tr class="separator:af339d8b557668fa7f961faf44c4cbf6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a44e1d78a441997c6fced40f8c91c8043"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a44e1d78a441997c6fced40f8c91c8043">_onlyBoxConstraints</a></td></tr>
+<tr class="separator:a44e1d78a441997c6fced40f8c91c8043"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a39ef7296e50fb200934ff74a017e43bf"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a39ef7296e50fb200934ff74a017e43bf">_originalVariables</a></td></tr>
 <tr class="separator:a39ef7296e50fb200934ff74a017e43bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ab2c6d75aa915dd5e3296b0873d39acfd"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ab2c6d75aa915dd5e3296b0873d39acfd">_objectiveValue</a></td></tr>
@@ -404,8 +406,8 @@ Private Member Functions</h2></td></tr>
 <div class="textblock"><p>Wrapper for handling the lower bounding problems as well as optimization-based bounds tightening (OBBT) </p>
 <p>This class provides an interface between the Branch-and-Bound solver, the problem definition used by BigMC, and the actual sub-solver used for lower bounding (currently CPLEX). It manages the CPLEX problem and solver instance(s), evaluates the Model using MC++ to obtain relaxations and subgradients, constructs the respective LP relaxations, and calls CPLEX to solve either the lower bounding problems (LBP) or OBBT as queried by the B&amp;B solver. </p>
 </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a id="a31416f2224eea283c3ae280ed3beb497"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a31416f2224eea283c3ae280ed3beb497">&#9670;&nbsp;</a></span>LowerBoundingSolver() <span class="overload">[1/2]</span></h2>
+<a id="a9680e92120bb8a0693095f965421d7d7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9680e92120bb8a0693095f965421d7d7">&#9670;&nbsp;</a></span>LowerBoundingSolver() <span class="overload">[1/2]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -467,19 +469,19 @@ Private Member Functions</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="structmaingo_1_1_settings.html">Settings</a> *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt;&#160;</td>
           <td class="paramname"><em>settingsIn</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="classmaingo_1_1_logger.html">Logger</a> *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt;&#160;</td>
           <td class="paramname"><em>loggerIn</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt;&#160;</td>
           <td class="paramname"><em>constraintPropertiesIn</em>&#160;</td>
         </tr>
         <tr>
@@ -3590,8 +3592,8 @@ Private Member Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="a1b23a7c1621517ac4506bd043d43950e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a1b23a7c1621517ac4506bd043d43950e">&#9670;&nbsp;</a></span>_constraintProperties</h2>
+<a id="a701c19e247fa6e9791313252084b770a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a701c19e247fa6e9791313252084b770a">&#9670;&nbsp;</a></span>_constraintProperties</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -3600,7 +3602,7 @@ Private Member Functions</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">std::vector&lt;<a class="el" href="structmaingo_1_1_constraint.html">Constraint</a>&gt;* maingo::lbp::LowerBoundingSolver::_constraintProperties</td>
+          <td class="memname">std::shared_ptr&lt;std::vector&lt;<a class="el" href="structmaingo_1_1_constraint.html">Constraint</a>&gt; &gt; maingo::lbp::LowerBoundingSolver::_constraintProperties</td>
         </tr>
       </table>
   </td>
@@ -3682,8 +3684,8 @@ Private Member Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="ac82365b8f4f2d24466e60bbf01042142"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ac82365b8f4f2d24466e60bbf01042142">&#9670;&nbsp;</a></span>_logger</h2>
+<a id="a9ec401321cfa9eda2672c9a65b6ba11d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9ec401321cfa9eda2672c9a65b6ba11d">&#9670;&nbsp;</a></span>_logger</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -3692,7 +3694,7 @@ Private Member Functions</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classmaingo_1_1_logger.html">Logger</a>* maingo::lbp::LowerBoundingSolver::_logger</td>
+          <td class="memname">std::shared_ptr&lt;<a class="el" href="classmaingo_1_1_logger.html">Logger</a>&gt; maingo::lbp::LowerBoundingSolver::_logger</td>
         </tr>
       </table>
   </td>
@@ -3751,8 +3753,8 @@ Private Member Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="a2277a8ee8f3f41a9498c43add63835c4"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a2277a8ee8f3f41a9498c43add63835c4">&#9670;&nbsp;</a></span>_maingoSettings</h2>
+<a id="a1b4b4c6e80d76f83bb5a2a7f7d2f165c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1b4b4c6e80d76f83bb5a2a7f7d2f165c">&#9670;&nbsp;</a></span>_maingoSettings</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -3761,7 +3763,7 @@ Private Member Functions</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="structmaingo_1_1_settings.html">Settings</a>* maingo::lbp::LowerBoundingSolver::_maingoSettings</td>
+          <td class="memname">std::shared_ptr&lt;<a class="el" href="structmaingo_1_1_settings.html">Settings</a>&gt; maingo::lbp::LowerBoundingSolver::_maingoSettings</td>
         </tr>
       </table>
   </td>
@@ -4324,6 +4326,29 @@ Private Member Functions</h2></td></tr>
 </div><div class="memdoc">
 <p>variable holding the objective value of the linear program for <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> solver and Interval solver </p>
 
+</div>
+</div>
+<a id="a44e1d78a441997c6fced40f8c91c8043"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a44e1d78a441997c6fced40f8c91c8043">&#9670;&nbsp;</a></span>_onlyBoxConstraints</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool maingo::lbp::LowerBoundingSolver::_onlyBoxConstraints</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<p>flag indicating whether the relaxed problem has only box constraints, i.e., all constraint counters are 0 </p>
+
 </div>
 </div>
 <a id="a39ef7296e50fb200934ff74a017e43bf"></a>
@@ -4580,9 +4605,9 @@ Private Member Functions</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this class was generated from the following files:<ul>
-<li>C:/Users/dobo01/maingo/inc/<a class="el" href="lbp_8h_source.html">lbp.h</a></li>
-<li>C:/Users/dobo01/maingo/src/<a class="el" href="lbp_8cpp.html">lbp.cpp</a></li>
-<li>C:/Users/dobo01/maingo/src/<a class="el" href="lbp_linearization_strats_8cpp.html">lbpLinearizationStrats.cpp</a></li>
+<li>C:/dobo01/maingo/inc/<a class="el" href="lbp_8h_source.html">lbp.h</a></li>
+<li>C:/dobo01/maingo/src/<a class="el" href="lbp_8cpp.html">lbp.cpp</a></li>
+<li>C:/dobo01/maingo/src/<a class="el" href="lbp_linearization_strats_8cpp.html">lbpLinearizationStrats.cpp</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -4592,7 +4617,7 @@ Private Member Functions</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="namespacemaingo_1_1lbp.html">lbp</a></li><li class="navelem"><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">LowerBoundingSolver</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1lbp_1_1_lower_bounding_solver.js b/doc/html/classmaingo_1_1lbp_1_1_lower_bounding_solver.js
index 194c30e093fa143a8217de06812f69ef627b7290..2903bfb94360afa1d84c5b32b308837f6affc0df 100644
--- a/doc/html/classmaingo_1_1lbp_1_1_lower_bounding_solver.js
+++ b/doc/html/classmaingo_1_1lbp_1_1_lower_bounding_solver.js
@@ -1,6 +1,6 @@
 var classmaingo_1_1lbp_1_1_lower_bounding_solver =
 [
-    [ "LowerBoundingSolver", "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a31416f2224eea283c3ae280ed3beb497", null ],
+    [ "LowerBoundingSolver", "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9680e92120bb8a0693095f965421d7d7", null ],
     [ "~LowerBoundingSolver", "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae45e85f9c8bc19bba1510e89b0698a97", null ],
     [ "LowerBoundingSolver", "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae097029abb950c0838bab24ef4bc360f", null ],
     [ "_check_feasibility", "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2fa3ad57113343a493feac9a5f4c2667", null ],
@@ -63,14 +63,14 @@ var classmaingo_1_1lbp_1_1_lower_bounding_solver =
     [ "solve_OBBT", "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a51baac566450ca4b94cd715b57c38752", null ],
     [ "update_incumbent_LBP", "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2f1320936ed40642c7cf4cf0fe31d14f", null ],
     [ "_computationTol", "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aaa92d78b7ce6a1b2939131063bd6f68a", null ],
-    [ "_constraintProperties", "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1b23a7c1621517ac4506bd043d43950e", null ],
+    [ "_constraintProperties", "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a701c19e247fa6e9791313252084b770a", null ],
     [ "_DAGobj", "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a807d99cf52ff7bcfa7948e03b585ea54", null ],
     [ "_differentNumberOfLins", "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1994bc43cf051908c35889bb08d3cb02", null ],
     [ "_incumbent", "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6a6c925badc9b14fb61232aceb859b9c", null ],
-    [ "_logger", "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ac82365b8f4f2d24466e60bbf01042142", null ],
+    [ "_logger", "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9ec401321cfa9eda2672c9a65b6ba11d", null ],
     [ "_lowerVarBounds", "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af0baca6c1bd4847c2c3ab98e3c6c4adb", null ],
     [ "_LPstatus", "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7952199940d657eed365a660f4538527", null ],
-    [ "_maingoSettings", "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2277a8ee8f3f41a9498c43add63835c4", null ],
+    [ "_maingoSettings", "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1b4b4c6e80d76f83bb5a2a7f7d2f165c", null ],
     [ "_matrixEq1", "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8ef7d876bfe5e621b0d9dce7e00f4e8f", null ],
     [ "_matrixEq2", "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a75e8efba11ed031032d7e75513f10ba1", null ],
     [ "_matrixEqRelaxationOnly1", "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a05546b786f27f965b411bf39944e2d61", null ],
@@ -95,6 +95,7 @@ var classmaingo_1_1lbp_1_1_lower_bounding_solver =
     [ "_nvar", "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a5e059ef32469739da674be2946048dd0", null ],
     [ "_objectiveScalingFactors", "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a67b22b446040aa9148dbbd411ad928bb", null ],
     [ "_objectiveValue", "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ab2c6d75aa915dd5e3296b0873d39acfd", null ],
+    [ "_onlyBoxConstraints", "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a44e1d78a441997c6fced40f8c91c8043", null ],
     [ "_originalVariables", "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a39ef7296e50fb200934ff74a017e43bf", null ],
     [ "_rhsEq1", "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7d227b1709674b820d8bc7c0466aaa13", null ],
     [ "_rhsEq2", "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a56a7df7c8fc8858597b8cdb8985949cd", null ],
diff --git a/doc/html/classmaingo_1_1ubp_1_1_ipopt_problem-members.html b/doc/html/classmaingo_1_1ubp_1_1_ipopt_problem-members.html
index 6176a2880d70136f440f2b6a628c783a26bfb9d6..6238b763baf835fd49f0f1c0308540fd828e727e 100644
--- a/doc/html/classmaingo_1_1ubp_1_1_ipopt_problem-members.html
+++ b/doc/html/classmaingo_1_1ubp_1_1_ipopt_problem-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -93,7 +93,7 @@ $(document).ready(function(){initNavTree('classmaingo_1_1ubp_1_1_ipopt_problem.h
 
 <p>This is the complete list of members for <a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html">maingo::ubp::IpoptProblem</a>, including all inherited members.</p>
 <table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#aa7b6d4e92ccd5f357728d82baec6cf59">_constraintProperties</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html">maingo::ubp::IpoptProblem</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a1e56ab6219a4daa52c5cbbcd6548a603">_constraintProperties</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html">maingo::ubp::IpoptProblem</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#ab5457949d2dc3765ac984f4debd9b7e3">_DAGobj</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html">maingo::ubp::IpoptProblem</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a988a8b7d3f4f7f89c2ac09323af39111">_neq</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html">maingo::ubp::IpoptProblem</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#ad9ffa23e5b922eb6c42c4cfefaeb6269">_nineq</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html">maingo::ubp::IpoptProblem</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
@@ -116,7 +116,7 @@ $(document).ready(function(){initNavTree('classmaingo_1_1ubp_1_1_ipopt_problem.h
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a317864cfc5afc13826914711cacabea2">get_solution</a>(std::vector&lt; double &gt; &amp;sol_x)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html">maingo::ubp::IpoptProblem</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a02f91f4b0962c2c77ab5f2c91891a806">get_starting_point</a>(Ipopt::Index n, bool init_x, Ipopt::Number *x, bool init_z, Ipopt::Number *z_L, Ipopt::Number *z_U, Ipopt::Index m, bool init_lambda, Ipopt::Number *lambda)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html">maingo::ubp::IpoptProblem</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#aff434ac6d45f748ead8315abcc825bed">IpoptProblem</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html">maingo::ubp::IpoptProblem</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a986a798fcfb41ccf30a4e21dece92dbf">IpoptProblem</a>(unsigned nvarIn, unsigned neqIn, unsigned nineqIn, unsigned nineqSquashIn, UbpStructure *structureIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, std::shared_ptr&lt; DagObj &gt; dagObj)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html">maingo::ubp::IpoptProblem</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a62bc2a5c3d02532a6fc568f704177264">IpoptProblem</a>(unsigned nvarIn, unsigned neqIn, unsigned nineqIn, unsigned nineqSquashIn, UbpStructure *structureIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, std::shared_ptr&lt; DagObj &gt; dagObj)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html">maingo::ubp::IpoptProblem</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#aa2beb96149ad4140eef75964e0297125">IpoptProblem</a>(const IpoptProblem &amp;)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html">maingo::ubp::IpoptProblem</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a0ab5a8e212575c185980cb7c6eed2ceb">operator=</a>(const IpoptProblem &amp;)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html">maingo::ubp::IpoptProblem</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#ad44bb659518b5e9d4a0362a477d46164">set_bounds_and_starting_point</a>(const std::vector&lt; double &gt; &amp;xL, const std::vector&lt; double &gt; &amp;xU, const std::vector&lt; double &gt; &amp;xStart)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html">maingo::ubp::IpoptProblem</a></td><td class="entry"></td></tr>
@@ -128,7 +128,7 @@ $(document).ready(function(){initNavTree('classmaingo_1_1ubp_1_1_ipopt_problem.h
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1ubp_1_1_ipopt_problem.html b/doc/html/classmaingo_1_1ubp_1_1_ipopt_problem.html
index 815e8134eb59e84b6cf1cb8805f2a53de65a40b2..4db45eb904117fb5fd27bfe4bc51c99a7f077393 100644
--- a/doc/html/classmaingo_1_1ubp_1_1_ipopt_problem.html
+++ b/doc/html/classmaingo_1_1ubp_1_1_ipopt_problem.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::ubp::IpoptProblem Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -104,7 +104,9 @@ $(document).ready(function(){initNavTree('classmaingo_1_1ubp_1_1_ipopt_problem.h
 Inheritance diagram for maingo::ubp::IpoptProblem:</div>
 <div class="dyncontent">
  <div class="center">
-  <img src="classmaingo_1_1ubp_1_1_ipopt_problem.png" alt=""/>
+  <img src="classmaingo_1_1ubp_1_1_ipopt_problem.png" usemap="#maingo::ubp::IpoptProblem_map" alt=""/>
+  <map id="maingo::ubp::IpoptProblem_map" name="maingo::ubp::IpoptProblem_map">
+</map>
  </div></div>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
@@ -112,9 +114,9 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:aff434ac6d45f748ead8315abcc825bed"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#aff434ac6d45f748ead8315abcc825bed">IpoptProblem</a> ()</td></tr>
 <tr class="memdesc:aff434ac6d45f748ead8315abcc825bed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Standard constructor.  <a href="#aff434ac6d45f748ead8315abcc825bed">More...</a><br /></td></tr>
 <tr class="separator:aff434ac6d45f748ead8315abcc825bed"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a986a798fcfb41ccf30a4e21dece92dbf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a986a798fcfb41ccf30a4e21dece92dbf">IpoptProblem</a> (unsigned nvarIn, unsigned neqIn, unsigned nineqIn, unsigned nineqSquashIn, <a class="el" href="structmaingo_1_1ubp_1_1_ubp_structure.html">UbpStructure</a> *structureIn, std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *constraintPropertiesIn, std::shared_ptr&lt; <a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html">DagObj</a> &gt; dagObj)</td></tr>
-<tr class="memdesc:a986a798fcfb41ccf30a4e21dece92dbf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor actually used in <a class="el" href="ubp_8cpp.html">ubp.cpp</a>. Initializes the corresponding members.  <a href="#a986a798fcfb41ccf30a4e21dece92dbf">More...</a><br /></td></tr>
-<tr class="separator:a986a798fcfb41ccf30a4e21dece92dbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a62bc2a5c3d02532a6fc568f704177264"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a62bc2a5c3d02532a6fc568f704177264">IpoptProblem</a> (unsigned nvarIn, unsigned neqIn, unsigned nineqIn, unsigned nineqSquashIn, <a class="el" href="structmaingo_1_1ubp_1_1_ubp_structure.html">UbpStructure</a> *structureIn, std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt; constraintPropertiesIn, std::shared_ptr&lt; <a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html">DagObj</a> &gt; dagObj)</td></tr>
+<tr class="memdesc:a62bc2a5c3d02532a6fc568f704177264"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor actually used in <a class="el" href="ubp_8cpp.html">ubp.cpp</a>. Initializes the corresponding members.  <a href="#a62bc2a5c3d02532a6fc568f704177264">More...</a><br /></td></tr>
+<tr class="separator:a62bc2a5c3d02532a6fc568f704177264"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a83ab40c3ed93a2ec0d23a3e62d3eb92f"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a83ab40c3ed93a2ec0d23a3e62d3eb92f">~IpoptProblem</a> ()</td></tr>
 <tr class="memdesc:a83ab40c3ed93a2ec0d23a3e62d3eb92f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#a83ab40c3ed93a2ec0d23a3e62d3eb92f">More...</a><br /></td></tr>
 <tr class="separator:a83ab40c3ed93a2ec0d23a3e62d3eb92f"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -174,8 +176,8 @@ Private Attributes</h2></td></tr>
 <tr class="separator:a988a8b7d3f4f7f89c2ac09323af39111"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:afb2e8af34a1ecdbd9fbcabf01cdba05a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_structure.html">UbpStructure</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#afb2e8af34a1ecdbd9fbcabf01cdba05a">_structure</a></td></tr>
 <tr class="separator:afb2e8af34a1ecdbd9fbcabf01cdba05a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa7b6d4e92ccd5f357728d82baec6cf59"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#aa7b6d4e92ccd5f357728d82baec6cf59">_constraintProperties</a></td></tr>
-<tr class="separator:aa7b6d4e92ccd5f357728d82baec6cf59"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1e56ab6219a4daa52c5cbbcd6548a603"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a1e56ab6219a4daa52c5cbbcd6548a603">_constraintProperties</a></td></tr>
+<tr class="separator:a1e56ab6219a4daa52c5cbbcd6548a603"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a16905e9bb3e4cfbb79c91c93c3ebe13c"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a16905e9bb3e4cfbb79c91c93c3ebe13c">_solution_f</a></td></tr>
 <tr class="separator:a16905e9bb3e4cfbb79c91c93c3ebe13c"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a05145891e0b75e9163d3f1bb4ae81f42"><td class="memItemLeft" align="right" valign="top">std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a05145891e0b75e9163d3f1bb4ae81f42">_xL</a></td></tr>
@@ -210,8 +212,8 @@ Private Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="a986a798fcfb41ccf30a4e21dece92dbf"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a986a798fcfb41ccf30a4e21dece92dbf">&#9670;&nbsp;</a></span>IpoptProblem() <span class="overload">[2/3]</span></h2>
+<a id="a62bc2a5c3d02532a6fc568f704177264"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a62bc2a5c3d02532a6fc568f704177264">&#9670;&nbsp;</a></span>IpoptProblem() <span class="overload">[2/3]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -249,7 +251,7 @@ Private Attributes</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt;&#160;</td>
           <td class="paramname"><em>constraintPropertiesIn</em>, </td>
         </tr>
         <tr>
@@ -1156,8 +1158,8 @@ Private Attributes</h2></td></tr>
 </div>
 </div>
 <h2 class="groupheader">Member Data Documentation</h2>
-<a id="aa7b6d4e92ccd5f357728d82baec6cf59"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aa7b6d4e92ccd5f357728d82baec6cf59">&#9670;&nbsp;</a></span>_constraintProperties</h2>
+<a id="a1e56ab6219a4daa52c5cbbcd6548a603"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1e56ab6219a4daa52c5cbbcd6548a603">&#9670;&nbsp;</a></span>_constraintProperties</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1166,7 +1168,7 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">std::vector&lt;<a class="el" href="structmaingo_1_1_constraint.html">Constraint</a>&gt;* maingo::ubp::IpoptProblem::_constraintProperties</td>
+          <td class="memname">std::shared_ptr&lt;std::vector&lt;<a class="el" href="structmaingo_1_1_constraint.html">Constraint</a>&gt; &gt; maingo::ubp::IpoptProblem::_constraintProperties</td>
         </tr>
       </table>
   </td>
@@ -1433,8 +1435,8 @@ Private Attributes</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this class was generated from the following files:<ul>
-<li>C:/Users/dobo01/maingo/inc/<a class="el" href="ipopt_problem_8h_source.html">ipoptProblem.h</a></li>
-<li>C:/Users/dobo01/maingo/src/<a class="el" href="ipopt_problem_8cpp.html">ipoptProblem.cpp</a></li>
+<li>C:/dobo01/maingo/inc/<a class="el" href="ipopt_problem_8h_source.html">ipoptProblem.h</a></li>
+<li>C:/dobo01/maingo/src/<a class="el" href="ipopt_problem_8cpp.html">ipoptProblem.cpp</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -1444,7 +1446,7 @@ Private Attributes</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="namespacemaingo_1_1ubp.html">ubp</a></li><li class="navelem"><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html">IpoptProblem</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1ubp_1_1_ipopt_problem.js b/doc/html/classmaingo_1_1ubp_1_1_ipopt_problem.js
index 6ea569b97a0c4333b094a9e6ecbe76c6fc3279b3..446a9c74611caa3e5a25a4c4afaed665cc80d807 100644
--- a/doc/html/classmaingo_1_1ubp_1_1_ipopt_problem.js
+++ b/doc/html/classmaingo_1_1ubp_1_1_ipopt_problem.js
@@ -1,7 +1,7 @@
 var classmaingo_1_1ubp_1_1_ipopt_problem =
 [
     [ "IpoptProblem", "classmaingo_1_1ubp_1_1_ipopt_problem.html#aff434ac6d45f748ead8315abcc825bed", null ],
-    [ "IpoptProblem", "classmaingo_1_1ubp_1_1_ipopt_problem.html#a986a798fcfb41ccf30a4e21dece92dbf", null ],
+    [ "IpoptProblem", "classmaingo_1_1ubp_1_1_ipopt_problem.html#a62bc2a5c3d02532a6fc568f704177264", null ],
     [ "~IpoptProblem", "classmaingo_1_1ubp_1_1_ipopt_problem.html#a83ab40c3ed93a2ec0d23a3e62d3eb92f", null ],
     [ "IpoptProblem", "classmaingo_1_1ubp_1_1_ipopt_problem.html#aa2beb96149ad4140eef75964e0297125", null ],
     [ "eval_f", "classmaingo_1_1ubp_1_1_ipopt_problem.html#af5c9129a86a3d83676f34feabd29a3ed", null ],
@@ -16,7 +16,7 @@ var classmaingo_1_1ubp_1_1_ipopt_problem =
     [ "get_starting_point", "classmaingo_1_1ubp_1_1_ipopt_problem.html#a02f91f4b0962c2c77ab5f2c91891a806", null ],
     [ "operator=", "classmaingo_1_1ubp_1_1_ipopt_problem.html#a0ab5a8e212575c185980cb7c6eed2ceb", null ],
     [ "set_bounds_and_starting_point", "classmaingo_1_1ubp_1_1_ipopt_problem.html#ad44bb659518b5e9d4a0362a477d46164", null ],
-    [ "_constraintProperties", "classmaingo_1_1ubp_1_1_ipopt_problem.html#aa7b6d4e92ccd5f357728d82baec6cf59", null ],
+    [ "_constraintProperties", "classmaingo_1_1ubp_1_1_ipopt_problem.html#a1e56ab6219a4daa52c5cbbcd6548a603", null ],
     [ "_DAGobj", "classmaingo_1_1ubp_1_1_ipopt_problem.html#ab5457949d2dc3765ac984f4debd9b7e3", null ],
     [ "_neq", "classmaingo_1_1ubp_1_1_ipopt_problem.html#a988a8b7d3f4f7f89c2ac09323af39111", null ],
     [ "_nineq", "classmaingo_1_1ubp_1_1_ipopt_problem.html#ad9ffa23e5b922eb6c42c4cfefaeb6269", null ],
diff --git a/doc/html/classmaingo_1_1ubp_1_1_knitro_problem-members.html b/doc/html/classmaingo_1_1ubp_1_1_knitro_problem-members.html
index e2e53c863f23b825a5449089a6db74b122203503..276540a00cb90983883ab97e19c91a9257ebcb12 100644
--- a/doc/html/classmaingo_1_1ubp_1_1_knitro_problem-members.html
+++ b/doc/html/classmaingo_1_1ubp_1_1_knitro_problem-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -93,7 +93,7 @@ $(document).ready(function(){initNavTree('classmaingo_1_1ubp_1_1_knitro_problem.
 
 <p>This is the complete list of members for <a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html">maingo::ubp::KnitroProblem</a>, including all inherited members.</p>
 <table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a0bd778c8b72652bafe429d874cba73af">_constraintProperties</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html">maingo::ubp::KnitroProblem</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html#adfd54311b1a62a9cb423071ce1c436eb">_constraintProperties</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html">maingo::ubp::KnitroProblem</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a4192883914d02b7e76205e7693f25411">_neq</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html">maingo::ubp::KnitroProblem</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html#adb4e43c94df78c14a7b46a9d7e52a9f3">_nineq</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html">maingo::ubp::KnitroProblem</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html#ab4c0c56943e432eaeda5eb2984a8d4ee">_nineqSquash</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html">maingo::ubp::KnitroProblem</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
@@ -107,7 +107,7 @@ $(document).ready(function(){initNavTree('classmaingo_1_1ubp_1_1_knitro_problem.
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html#ab7df62ea5f3792b87f831adcc6a5de22">evaluateFC</a>(const double *const x, double *const c, double *const objGrad, double *const jac)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html">maingo::ubp::KnitroProblem</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a136eaa7eaac67cd3155bde2e779237d3">evaluateGA</a>(const double *const x, double *const objGrad, double *const jac)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html">maingo::ubp::KnitroProblem</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a8cd4079344ccbac5828fbd998d333f8f">evaluateHess</a>(const double *const x, double objScaler, const double *const lambda, double *const hess)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html">maingo::ubp::KnitroProblem</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a01412351da813879180374f925289e14">KnitroProblem</a>(unsigned nvarIn, unsigned neqIn, unsigned nineqIn, const unsigned nineqSquashIn, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, UbpStructure *structureIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, std::shared_ptr&lt; DagObj &gt; dagObj)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html">maingo::ubp::KnitroProblem</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html#af6bc2325caaf7ab6e70eb032669208e7">KnitroProblem</a>(unsigned nvarIn, unsigned neqIn, unsigned nineqIn, const unsigned nineqSquashIn, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, UbpStructure *structureIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, std::shared_ptr&lt; DagObj &gt; dagObj)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html">maingo::ubp::KnitroProblem</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html#aeee41f6f83fe4abfc075ded564a767ee">KnitroProblem</a>(const KnitroProblem &amp;)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html">maingo::ubp::KnitroProblem</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a62c8ad5120c5b5f4ca0df3773364077a">operator=</a>(const KnitroProblem &amp;)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html">maingo::ubp::KnitroProblem</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a5aafe97d4cd0294ca5998f7973a79bfe">~KnitroProblem</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html">maingo::ubp::KnitroProblem</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
@@ -118,7 +118,7 @@ $(document).ready(function(){initNavTree('classmaingo_1_1ubp_1_1_knitro_problem.
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1ubp_1_1_knitro_problem.html b/doc/html/classmaingo_1_1ubp_1_1_knitro_problem.html
index fd8f0c8e81d5d78a427358fc36ae9e07d1d138b2..9f6e142287af294ca13f4679211015bfbe952ba6 100644
--- a/doc/html/classmaingo_1_1ubp_1_1_knitro_problem.html
+++ b/doc/html/classmaingo_1_1ubp_1_1_knitro_problem.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::ubp::KnitroProblem Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -103,14 +103,16 @@ $(document).ready(function(){initNavTree('classmaingo_1_1ubp_1_1_knitro_problem.
 Inheritance diagram for maingo::ubp::KnitroProblem:</div>
 <div class="dyncontent">
  <div class="center">
-  <img src="classmaingo_1_1ubp_1_1_knitro_problem.png" alt=""/>
+  <img src="classmaingo_1_1ubp_1_1_knitro_problem.png" usemap="#maingo::ubp::KnitroProblem_map" alt=""/>
+  <map id="maingo::ubp::KnitroProblem_map" name="maingo::ubp::KnitroProblem_map">
+</map>
  </div></div>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:a01412351da813879180374f925289e14"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a01412351da813879180374f925289e14">KnitroProblem</a> (unsigned nvarIn, unsigned neqIn, unsigned nineqIn, const unsigned nineqSquashIn, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, <a class="el" href="structmaingo_1_1ubp_1_1_ubp_structure.html">UbpStructure</a> *structureIn, std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *constraintPropertiesIn, std::shared_ptr&lt; <a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html">DagObj</a> &gt; dagObj)</td></tr>
-<tr class="memdesc:a01412351da813879180374f925289e14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor actually used in <a class="el" href="ubp_8cpp.html">ubp.cpp</a>. Initializes the corresponding members.  <a href="#a01412351da813879180374f925289e14">More...</a><br /></td></tr>
-<tr class="separator:a01412351da813879180374f925289e14"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af6bc2325caaf7ab6e70eb032669208e7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html#af6bc2325caaf7ab6e70eb032669208e7">KnitroProblem</a> (unsigned nvarIn, unsigned neqIn, unsigned nineqIn, const unsigned nineqSquashIn, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, <a class="el" href="structmaingo_1_1ubp_1_1_ubp_structure.html">UbpStructure</a> *structureIn, std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt; constraintPropertiesIn, std::shared_ptr&lt; <a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html">DagObj</a> &gt; dagObj)</td></tr>
+<tr class="memdesc:af6bc2325caaf7ab6e70eb032669208e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor actually used in <a class="el" href="ubp_8cpp.html">ubp.cpp</a>. Initializes the corresponding members.  <a href="#af6bc2325caaf7ab6e70eb032669208e7">More...</a><br /></td></tr>
+<tr class="separator:af6bc2325caaf7ab6e70eb032669208e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a5aafe97d4cd0294ca5998f7973a79bfe"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a5aafe97d4cd0294ca5998f7973a79bfe">~KnitroProblem</a> ()</td></tr>
 <tr class="memdesc:a5aafe97d4cd0294ca5998f7973a79bfe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#a5aafe97d4cd0294ca5998f7973a79bfe">More...</a><br /></td></tr>
 <tr class="separator:a5aafe97d4cd0294ca5998f7973a79bfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -156,8 +158,8 @@ Private Attributes</h2></td></tr>
 <tr class="separator:a4192883914d02b7e76205e7693f25411"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a77d82898e6cb1ade896eb72f709f121e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_structure.html">UbpStructure</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a77d82898e6cb1ade896eb72f709f121e">_structure</a></td></tr>
 <tr class="separator:a77d82898e6cb1ade896eb72f709f121e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0bd778c8b72652bafe429d874cba73af"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a0bd778c8b72652bafe429d874cba73af">_constraintProperties</a></td></tr>
-<tr class="separator:a0bd778c8b72652bafe429d874cba73af"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adfd54311b1a62a9cb423071ce1c436eb"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html#adfd54311b1a62a9cb423071ce1c436eb">_constraintProperties</a></td></tr>
+<tr class="separator:adfd54311b1a62a9cb423071ce1c436eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a06238fa671eeb532dcfac051beeff95f"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a06238fa671eeb532dcfac051beeff95f">_optimizationVariables</a></td></tr>
 <tr class="separator:a06238fa671eeb532dcfac051beeff95f"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
@@ -165,8 +167,8 @@ Private Attributes</h2></td></tr>
 <div class="textblock"><p>Class for representing problems to be solved by Knitro, providing an interface to the problem definition in problem.h. </p>
 <p>This class provides an interface between Knitro and the problem definition in problem.h. by evaluating the Model equations and preparing the information required by Knitro. An instance of this class is handed to Knitro as an argument of its KN_solve routine in <a class="el" href="ubp_knitro_8cpp.html">ubpKnitro.cpp</a>. For more information on the basic interface see <a href="https://www.artelys.com/tools/knitro_doc/3_referenceManual/callableLibraryAPI.html#basic-problem-construction">https://www.artelys.com/tools/knitro_doc/3_referenceManual/callableLibraryAPI.html#basic-problem-construction</a> . </p>
 </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a id="a01412351da813879180374f925289e14"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a01412351da813879180374f925289e14">&#9670;&nbsp;</a></span>KnitroProblem() <span class="overload">[1/2]</span></h2>
+<a id="af6bc2325caaf7ab6e70eb032669208e7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af6bc2325caaf7ab6e70eb032669208e7">&#9670;&nbsp;</a></span>KnitroProblem() <span class="overload">[1/2]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -210,7 +212,7 @@ Private Attributes</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt;&#160;</td>
           <td class="paramname"><em>constraintPropertiesIn</em>, </td>
         </tr>
         <tr>
@@ -584,8 +586,8 @@ Private Attributes</h2></td></tr>
 </div>
 </div>
 <h2 class="groupheader">Member Data Documentation</h2>
-<a id="a0bd778c8b72652bafe429d874cba73af"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a0bd778c8b72652bafe429d874cba73af">&#9670;&nbsp;</a></span>_constraintProperties</h2>
+<a id="adfd54311b1a62a9cb423071ce1c436eb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#adfd54311b1a62a9cb423071ce1c436eb">&#9670;&nbsp;</a></span>_constraintProperties</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -594,7 +596,7 @@ Private Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">std::vector&lt;<a class="el" href="structmaingo_1_1_constraint.html">Constraint</a>&gt;* maingo::ubp::KnitroProblem::_constraintProperties</td>
+          <td class="memname">std::shared_ptr&lt;std::vector&lt;<a class="el" href="structmaingo_1_1_constraint.html">Constraint</a>&gt; &gt; maingo::ubp::KnitroProblem::_constraintProperties</td>
         </tr>
       </table>
   </td>
@@ -746,7 +748,7 @@ Private Attributes</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this class was generated from the following file:<ul>
-<li>C:/Users/dobo01/maingo/inc/<a class="el" href="knitro_problem_8h_source.html">knitroProblem.h</a></li>
+<li>C:/dobo01/maingo/inc/<a class="el" href="knitro_problem_8h_source.html">knitroProblem.h</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -756,7 +758,7 @@ Private Attributes</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="namespacemaingo_1_1ubp.html">ubp</a></li><li class="navelem"><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html">KnitroProblem</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1ubp_1_1_knitro_problem.js b/doc/html/classmaingo_1_1ubp_1_1_knitro_problem.js
index 8597b44045f1e2cf0e494c088ce36ef025dfc6ec..ec5c8f4e88c8d0286756035f4703430d2bbce865 100644
--- a/doc/html/classmaingo_1_1ubp_1_1_knitro_problem.js
+++ b/doc/html/classmaingo_1_1ubp_1_1_knitro_problem.js
@@ -1,6 +1,6 @@
 var classmaingo_1_1ubp_1_1_knitro_problem =
 [
-    [ "KnitroProblem", "classmaingo_1_1ubp_1_1_knitro_problem.html#a01412351da813879180374f925289e14", null ],
+    [ "KnitroProblem", "classmaingo_1_1ubp_1_1_knitro_problem.html#af6bc2325caaf7ab6e70eb032669208e7", null ],
     [ "~KnitroProblem", "classmaingo_1_1ubp_1_1_knitro_problem.html#a5aafe97d4cd0294ca5998f7973a79bfe", null ],
     [ "KnitroProblem", "classmaingo_1_1ubp_1_1_knitro_problem.html#aeee41f6f83fe4abfc075ded564a767ee", null ],
     [ "_setConstraintProperties", "classmaingo_1_1ubp_1_1_knitro_problem.html#ac55dfe4d8eea4c9c4ebd79a12e9bb06d", null ],
@@ -11,7 +11,7 @@ var classmaingo_1_1ubp_1_1_knitro_problem =
     [ "evaluateGA", "classmaingo_1_1ubp_1_1_knitro_problem.html#a136eaa7eaac67cd3155bde2e779237d3", null ],
     [ "evaluateHess", "classmaingo_1_1ubp_1_1_knitro_problem.html#a8cd4079344ccbac5828fbd998d333f8f", null ],
     [ "operator=", "classmaingo_1_1ubp_1_1_knitro_problem.html#a62c8ad5120c5b5f4ca0df3773364077a", null ],
-    [ "_constraintProperties", "classmaingo_1_1ubp_1_1_knitro_problem.html#a0bd778c8b72652bafe429d874cba73af", null ],
+    [ "_constraintProperties", "classmaingo_1_1ubp_1_1_knitro_problem.html#adfd54311b1a62a9cb423071ce1c436eb", null ],
     [ "_neq", "classmaingo_1_1ubp_1_1_knitro_problem.html#a4192883914d02b7e76205e7693f25411", null ],
     [ "_nineq", "classmaingo_1_1ubp_1_1_knitro_problem.html#adb4e43c94df78c14a7b46a9d7e52a9f3", null ],
     [ "_nineqSquash", "classmaingo_1_1ubp_1_1_knitro_problem.html#ab4c0c56943e432eaeda5eb2984a8d4ee", null ],
diff --git a/doc/html/classmaingo_1_1ubp_1_1_ubp_clp-members.html b/doc/html/classmaingo_1_1ubp_1_1_ubp_clp-members.html
index afae5bfe28721054ca5b2d5968d8d01bba7a5060..28b4735efeba9f3228450fdd7cbc2837102c04f7 100644
--- a/doc/html/classmaingo_1_1ubp_1_1_ubp_clp-members.html
+++ b/doc/html/classmaingo_1_1ubp_1_1_ubp_clp-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -99,17 +99,17 @@ $(document).ready(function(){initNavTree('classmaingo_1_1ubp_1_1_ubp_clp.html','
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa40b7dc4622a4ffed899195174f3fda7">_check_ineq_squash</a>(const std::vector&lt; double &gt; &amp;modelOutput) const</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac1124e613e46e59fb88415116e08e326">_check_integrality</a>(const std::vector&lt; double &gt; &amp;currentPoint) const</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html#ae2d176177a7821c5532fb229f04577c9">_clp</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html">maingo::ubp::UbpClp</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aae0c39f4b14cfb8a3c70a57b49f15e67">_constraintProperties</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a633d6c072f7388ade44ccebf3fa3c935">_constraintProperties</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac9710c21359f1811dbdee779247fa701">_DAGobj</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#afce03a4f45462c5afb5af2146ddd7e78">_determine_sparsity_hessian</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a04b6d46cf762e76a70611b9c9e54f71d">_determine_sparsity_jacobian</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a566cab6bf72ec7da46a8e42d63378d02">_determine_structure</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a88f6a1e58a7274d44f6c9513581a6f4b">_generate_multistart_point</a>(bool &amp;usedCenter, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac626a7b38249edde44afdbf721df0c79">_intendedUse</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab436cb85b75f92ef42ca46adb87b83c0">_logger</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab76a699684d09100c63ec4ddcaa10456">_logger</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a3073de5a0fbe6fa5632a9090f1b056ef">_lowerRowBounds</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html">maingo::ubp::UbpClp</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a377da5ab602aaf0ad0d53ea444dce938">_lowerVarBounds</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html">maingo::ubp::UbpClp</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1b4e1d2ce3d3413c1c5d509d13ec752e">_maingoSettings</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4d7aaa4de8e2e6633b9064568961bc72">_maingoSettings</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a52188ee77b0ac7ba4bf8215d8fac556e">_matrix</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html">maingo::ubp::UbpClp</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a826673302ff22c211249640a0e924515">_neq</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2a4ed8977b38691844e43bb86ee86012">_nineq</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
@@ -129,10 +129,10 @@ $(document).ready(function(){initNavTree('classmaingo_1_1ubp_1_1_ubp_clp.html','
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac291c925f9007b90cbf09497a93d8239">multistart</a>(babBase::BabNode const &amp;currentNode, double &amp;objectiveValue, std::vector&lt; double &gt; &amp;solutionPoint, std::vector&lt; SUBSOLVER_RETCODE &gt; &amp;feasible, std::vector&lt; double &gt; &amp;optimalObjectives, bool &amp;initialPointFeasible)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a0f3faa3937a515be22cff1913eda1b06">operator=</a>(const UbpClp &amp;)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html">maingo::ubp::UbpClp</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4ac108083fde6741e77d7c0b231bd610">solve</a>(babBase::BabNode const &amp;currentNode, double &amp;objectiveValue, std::vector&lt; double &gt; &amp;solutionPoint)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html#acffeaea83adc9f0e61e3998fab15cf6f">UbpClp</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, UBS_USE useIn)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html">maingo::ubp::UbpClp</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a2ff59fcf2223f5851ec4fffa59299656">UbpClp</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, UBS_USE useIn)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html">maingo::ubp::UbpClp</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html#add6af506f65cb501373ca1c57e51b82c">UbpClp</a>(const UbpClp &amp;)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html">maingo::ubp::UbpClp</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> enum name</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a9ce3a82556ab016cdff94f032b19d6af">UpperBoundingSolver</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, UBS_USE useIn)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ad9c2c0ae5e137605da0f9588df694a52">UpperBoundingSolver</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, UBS_USE useIn)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395a8c993825a2321788812ac88fa8666a34">USE_BAB</a> enum value</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395aaf072b94cbf6e5d23d6b55bc2846a4e6">USE_PRE</a> enum value</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa17ca0c5dbf33219148dc2fff3446357">~UpperBoundingSolver</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
@@ -143,7 +143,7 @@ $(document).ready(function(){initNavTree('classmaingo_1_1ubp_1_1_ubp_clp.html','
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1ubp_1_1_ubp_clp.html b/doc/html/classmaingo_1_1ubp_1_1_ubp_clp.html
index d35131eb5df2343a76995fdb3435ca38540fdcfe..8d7d78b315f77358a4b52a3206196a3955837097 100644
--- a/doc/html/classmaingo_1_1ubp_1_1_ubp_clp.html
+++ b/doc/html/classmaingo_1_1ubp_1_1_ubp_clp.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::ubp::UbpClp Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -105,19 +105,19 @@ Inheritance diagram for maingo::ubp::UbpClp:</div>
  <div class="center">
   <img src="classmaingo_1_1ubp_1_1_ubp_clp.png" usemap="#maingo::ubp::UbpClp_map" alt=""/>
   <map id="maingo::ubp::UbpClp_map" name="maingo::ubp::UbpClp_map">
-<area href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html" title="Base class for wrappers for handling the upper bounding problems." alt="maingo::ubp::UpperBoundingSolver" shape="rect" coords="0,0,209,24"/>
-  </map>
-</div></div>
+<area href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html" title="Base class for wrappers for handling the upper bounding problems. " alt="maingo::ubp::UpperBoundingSolver" shape="rect" coords="0,0,209,24"/>
+</map>
+ </div></div>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:acffeaea83adc9f0e61e3998fab15cf6f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html#acffeaea83adc9f0e61e3998fab15cf6f">UbpClp</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, <a class="el" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="el" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn, std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *constraintPropertiesIn, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> useIn)</td></tr>
-<tr class="memdesc:acffeaea83adc9f0e61e3998fab15cf6f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem and initializes the local-subsolvers used.  <a href="#acffeaea83adc9f0e61e3998fab15cf6f">More...</a><br /></td></tr>
-<tr class="separator:acffeaea83adc9f0e61e3998fab15cf6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2ff59fcf2223f5851ec4fffa59299656"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a2ff59fcf2223f5851ec4fffa59299656">UbpClp</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt; settingsIn, std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt; constraintPropertiesIn, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> useIn)</td></tr>
+<tr class="memdesc:a2ff59fcf2223f5851ec4fffa59299656"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem and initializes the local-subsolvers used.  <a href="#a2ff59fcf2223f5851ec4fffa59299656">More...</a><br /></td></tr>
+<tr class="separator:a2ff59fcf2223f5851ec4fffa59299656"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td></tr>
-<tr class="memitem:a9ce3a82556ab016cdff94f032b19d6af inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a9ce3a82556ab016cdff94f032b19d6af">UpperBoundingSolver</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, <a class="el" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="el" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn, std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *constraintPropertiesIn, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> useIn)</td></tr>
-<tr class="memdesc:a9ce3a82556ab016cdff94f032b19d6af inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem and constructs an own copy of the directed acyclic graph.  <a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a9ce3a82556ab016cdff94f032b19d6af">More...</a><br /></td></tr>
-<tr class="separator:a9ce3a82556ab016cdff94f032b19d6af inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad9c2c0ae5e137605da0f9588df694a52 inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ad9c2c0ae5e137605da0f9588df694a52">UpperBoundingSolver</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt; settingsIn, std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt; constraintPropertiesIn, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> useIn)</td></tr>
+<tr class="memdesc:ad9c2c0ae5e137605da0f9588df694a52 inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem and constructs an own copy of the directed acyclic graph.  <a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ad9c2c0ae5e137605da0f9588df694a52">More...</a><br /></td></tr>
+<tr class="separator:ad9c2c0ae5e137605da0f9588df694a52 inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aa17ca0c5dbf33219148dc2fff3446357 inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa17ca0c5dbf33219148dc2fff3446357">~UpperBoundingSolver</a> ()</td></tr>
 <tr class="memdesc:aa17ca0c5dbf33219148dc2fff3446357 inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual destructor, only needed to make sure the correct destructor of the derived classes is called.  <a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa17ca0c5dbf33219148dc2fff3446357">More...</a><br /></td></tr>
 <tr class="separator:aa17ca0c5dbf33219148dc2fff3446357 inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -200,16 +200,16 @@ Additional Inherited Members</h2></td></tr>
 <tr class="memdesc:ac1124e613e46e59fb88415116e08e326 inherit pro_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function checking if discrete variables are indeed discrete.  <a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac1124e613e46e59fb88415116e08e326">More...</a><br /></td></tr>
 <tr class="separator:ac1124e613e46e59fb88415116e08e326 inherit pro_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td></tr>
-<tr class="memitem:a1b4e1d2ce3d3413c1c5d509d13ec752e inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1_settings.html">Settings</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1b4e1d2ce3d3413c1c5d509d13ec752e">_maingoSettings</a></td></tr>
-<tr class="separator:a1b4e1d2ce3d3413c1c5d509d13ec752e inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab436cb85b75f92ef42ca46adb87b83c0 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmaingo_1_1_logger.html">Logger</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab436cb85b75f92ef42ca46adb87b83c0">_logger</a></td></tr>
-<tr class="separator:ab436cb85b75f92ef42ca46adb87b83c0 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4d7aaa4de8e2e6633b9064568961bc72 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4d7aaa4de8e2e6633b9064568961bc72">_maingoSettings</a></td></tr>
+<tr class="separator:a4d7aaa4de8e2e6633b9064568961bc72 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab76a699684d09100c63ec4ddcaa10456 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab76a699684d09100c63ec4ddcaa10456">_logger</a></td></tr>
+<tr class="separator:ab76a699684d09100c63ec4ddcaa10456 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ac9710c21359f1811dbdee779247fa701 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html">DagObj</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac9710c21359f1811dbdee779247fa701">_DAGobj</a></td></tr>
 <tr class="separator:ac9710c21359f1811dbdee779247fa701 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ac626a7b38249edde44afdbf721df0c79 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac626a7b38249edde44afdbf721df0c79">_intendedUse</a></td></tr>
 <tr class="separator:ac626a7b38249edde44afdbf721df0c79 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aae0c39f4b14cfb8a3c70a57b49f15e67 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aae0c39f4b14cfb8a3c70a57b49f15e67">_constraintProperties</a></td></tr>
-<tr class="separator:aae0c39f4b14cfb8a3c70a57b49f15e67 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a633d6c072f7388ade44ccebf3fa3c935 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a633d6c072f7388ade44ccebf3fa3c935">_constraintProperties</a></td></tr>
+<tr class="separator:a633d6c072f7388ade44ccebf3fa3c935 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a42b77e82598864f05222b9dc415945a9 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a42b77e82598864f05222b9dc415945a9">_nvar</a></td></tr>
 <tr class="separator:a42b77e82598864f05222b9dc415945a9 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a2a4ed8977b38691844e43bb86ee86012 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2a4ed8977b38691844e43bb86ee86012">_nineq</a></td></tr>
@@ -231,8 +231,8 @@ Additional Inherited Members</h2></td></tr>
 <div class="textblock"><p>Wrapper for handling the upper bounding problems by interfacing CLP. </p>
 <p>This class constructs and solves upper bounding problems which were recognized as LP using CLP (COIN-OR project). </p>
 </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a id="acffeaea83adc9f0e61e3998fab15cf6f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#acffeaea83adc9f0e61e3998fab15cf6f">&#9670;&nbsp;</a></span>UbpClp() <span class="overload">[1/2]</span></h2>
+<a id="a2ff59fcf2223f5851ec4fffa59299656"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2ff59fcf2223f5851ec4fffa59299656">&#9670;&nbsp;</a></span>UbpClp() <span class="overload">[1/2]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -282,19 +282,19 @@ Additional Inherited Members</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="structmaingo_1_1_settings.html">Settings</a> *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt;&#160;</td>
           <td class="paramname"><em>settingsIn</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="classmaingo_1_1_logger.html">Logger</a> *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt;&#160;</td>
           <td class="paramname"><em>loggerIn</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt;&#160;</td>
           <td class="paramname"><em>constraintPropertiesIn</em>, </td>
         </tr>
         <tr>
@@ -657,8 +657,8 @@ Additional Inherited Members</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this class was generated from the following files:<ul>
-<li>C:/Users/dobo01/maingo/inc/<a class="el" href="ubp_clp_8h_source.html">ubpClp.h</a></li>
-<li>C:/Users/dobo01/maingo/src/<a class="el" href="ubp_clp_8cpp.html">ubpClp.cpp</a></li>
+<li>C:/dobo01/maingo/inc/<a class="el" href="ubp_clp_8h_source.html">ubpClp.h</a></li>
+<li>C:/dobo01/maingo/src/<a class="el" href="ubp_clp_8cpp.html">ubpClp.cpp</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -668,7 +668,7 @@ Additional Inherited Members</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="namespacemaingo_1_1ubp.html">ubp</a></li><li class="navelem"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html">UbpClp</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1ubp_1_1_ubp_clp.js b/doc/html/classmaingo_1_1ubp_1_1_ubp_clp.js
index 5446920263dd8b51e9d75ad69d9e715dd8938e1a..f4de7357152189d5c8a6bf49ccd583253894304e 100644
--- a/doc/html/classmaingo_1_1ubp_1_1_ubp_clp.js
+++ b/doc/html/classmaingo_1_1ubp_1_1_ubp_clp.js
@@ -1,6 +1,6 @@
 var classmaingo_1_1ubp_1_1_ubp_clp =
 [
-    [ "UbpClp", "classmaingo_1_1ubp_1_1_ubp_clp.html#acffeaea83adc9f0e61e3998fab15cf6f", null ],
+    [ "UbpClp", "classmaingo_1_1ubp_1_1_ubp_clp.html#a2ff59fcf2223f5851ec4fffa59299656", null ],
     [ "UbpClp", "classmaingo_1_1ubp_1_1_ubp_clp.html#add6af506f65cb501373ca1c57e51b82c", null ],
     [ "_solve_nlp", "classmaingo_1_1ubp_1_1_ubp_clp.html#ab24d1e766d5bbc32fdaab11dbdd05ef2", null ],
     [ "operator=", "classmaingo_1_1ubp_1_1_ubp_clp.html#a0f3faa3937a515be22cff1913eda1b06", null ],
diff --git a/doc/html/classmaingo_1_1ubp_1_1_ubp_cplex-members.html b/doc/html/classmaingo_1_1ubp_1_1_ubp_cplex-members.html
index 3b6a7c319616bde86b19792e3314e5dc1479c7d1..9fe36c33cdb19ac2c3c46396ef1bf7293e34d6ca 100644
--- a/doc/html/classmaingo_1_1ubp_1_1_ubp_cplex-members.html
+++ b/doc/html/classmaingo_1_1ubp_1_1_ubp_cplex-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -98,15 +98,15 @@ $(document).ready(function(){initNavTree('classmaingo_1_1ubp_1_1_ubp_cplex.html'
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ae20cc817f6ec888d8a9e7a9723cfe0b7">_check_ineq</a>(const std::vector&lt; double &gt; &amp;modelOutput) const</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa40b7dc4622a4ffed899195174f3fda7">_check_ineq_squash</a>(const std::vector&lt; double &gt; &amp;modelOutput) const</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac1124e613e46e59fb88415116e08e326">_check_integrality</a>(const std::vector&lt; double &gt; &amp;currentPoint) const</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aae0c39f4b14cfb8a3c70a57b49f15e67">_constraintProperties</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a633d6c072f7388ade44ccebf3fa3c935">_constraintProperties</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac9710c21359f1811dbdee779247fa701">_DAGobj</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#afce03a4f45462c5afb5af2146ddd7e78">_determine_sparsity_hessian</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a04b6d46cf762e76a70611b9c9e54f71d">_determine_sparsity_jacobian</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a566cab6bf72ec7da46a8e42d63378d02">_determine_structure</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a88f6a1e58a7274d44f6c9513581a6f4b">_generate_multistart_point</a>(bool &amp;usedCenter, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac626a7b38249edde44afdbf721df0c79">_intendedUse</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab436cb85b75f92ef42ca46adb87b83c0">_logger</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1b4e1d2ce3d3413c1c5d509d13ec752e">_maingoSettings</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab76a699684d09100c63ec4ddcaa10456">_logger</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4d7aaa4de8e2e6633b9064568961bc72">_maingoSettings</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a826673302ff22c211249640a0e924515">_neq</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2a4ed8977b38691844e43bb86ee86012">_nineq</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab774cf6400badf5cb3675dac2daf27bd">_nineqSquash</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
@@ -125,13 +125,13 @@ $(document).ready(function(){initNavTree('classmaingo_1_1ubp_1_1_ubp_cplex.html'
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac291c925f9007b90cbf09497a93d8239">multistart</a>(babBase::BabNode const &amp;currentNode, double &amp;objectiveValue, std::vector&lt; double &gt; &amp;solutionPoint, std::vector&lt; SUBSOLVER_RETCODE &gt; &amp;feasible, std::vector&lt; double &gt; &amp;optimalObjectives, bool &amp;initialPointFeasible)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a944ac3f482c2db599bd0c0cfdd76b868">operator=</a>(const UbpCplex &amp;)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_cplex.html">maingo::ubp::UbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4ac108083fde6741e77d7c0b231bd610">solve</a>(babBase::BabNode const &amp;currentNode, double &amp;objectiveValue, std::vector&lt; double &gt; &amp;solutionPoint)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a151f2ced79870ee59b168cdcaaf34bff">UbpCplex</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, UBS_USE useIn)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_cplex.html">maingo::ubp::UbpCplex</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#aa7a3ededf743a2cde154b5c267cf26d6">UbpCplex</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, UBS_USE useIn)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_cplex.html">maingo::ubp::UbpCplex</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a080f171542c7ad6ffb84762238bdb816">UbpCplex</a>(const UbpCplex &amp;)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_cplex.html">maingo::ubp::UbpCplex</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> enum name</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a9ce3a82556ab016cdff94f032b19d6af">UpperBoundingSolver</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, UBS_USE useIn)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ad9c2c0ae5e137605da0f9588df694a52">UpperBoundingSolver</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, UBS_USE useIn)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395a8c993825a2321788812ac88fa8666a34">USE_BAB</a> enum value</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395aaf072b94cbf6e5d23d6b55bc2846a4e6">USE_PRE</a> enum value</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#ada023ef9d9bd4904e5e47e2181d38ab9">~UbpCplex</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_cplex.html">maingo::ubp::UbpCplex</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#ada023ef9d9bd4904e5e47e2181d38ab9">~UbpCplex</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_cplex.html">maingo::ubp::UbpCplex</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa17ca0c5dbf33219148dc2fff3446357">~UpperBoundingSolver</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
@@ -140,7 +140,7 @@ $(document).ready(function(){initNavTree('classmaingo_1_1ubp_1_1_ubp_cplex.html'
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1ubp_1_1_ubp_cplex.html b/doc/html/classmaingo_1_1ubp_1_1_ubp_cplex.html
index ae9035c63370bc58b3116d017866276e91afd009..e5d9e7fa8bcc5a7f3865e1c69400d1eaeb7d5c2c 100644
--- a/doc/html/classmaingo_1_1ubp_1_1_ubp_cplex.html
+++ b/doc/html/classmaingo_1_1ubp_1_1_ubp_cplex.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::ubp::UbpCplex Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -105,22 +105,22 @@ Inheritance diagram for maingo::ubp::UbpCplex:</div>
  <div class="center">
   <img src="classmaingo_1_1ubp_1_1_ubp_cplex.png" usemap="#maingo::ubp::UbpCplex_map" alt=""/>
   <map id="maingo::ubp::UbpCplex_map" name="maingo::ubp::UbpCplex_map">
-<area href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html" title="Base class for wrappers for handling the upper bounding problems." alt="maingo::ubp::UpperBoundingSolver" shape="rect" coords="0,0,209,24"/>
-  </map>
-</div></div>
+<area href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html" title="Base class for wrappers for handling the upper bounding problems. " alt="maingo::ubp::UpperBoundingSolver" shape="rect" coords="0,0,209,24"/>
+</map>
+ </div></div>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:a151f2ced79870ee59b168cdcaaf34bff"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a151f2ced79870ee59b168cdcaaf34bff">UbpCplex</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, <a class="el" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="el" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn, std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *constraintPropertiesIn, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> useIn)</td></tr>
-<tr class="memdesc:a151f2ced79870ee59b168cdcaaf34bff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem and initializes the local-subsolvers used.  <a href="#a151f2ced79870ee59b168cdcaaf34bff">More...</a><br /></td></tr>
-<tr class="separator:a151f2ced79870ee59b168cdcaaf34bff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa7a3ededf743a2cde154b5c267cf26d6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#aa7a3ededf743a2cde154b5c267cf26d6">UbpCplex</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt; settingsIn, std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt; constraintPropertiesIn, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> useIn)</td></tr>
+<tr class="memdesc:aa7a3ededf743a2cde154b5c267cf26d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem and initializes the local-subsolvers used.  <a href="#aa7a3ededf743a2cde154b5c267cf26d6">More...</a><br /></td></tr>
+<tr class="separator:aa7a3ededf743a2cde154b5c267cf26d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ada023ef9d9bd4904e5e47e2181d38ab9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#ada023ef9d9bd4904e5e47e2181d38ab9">~UbpCplex</a> ()</td></tr>
 <tr class="memdesc:ada023ef9d9bd4904e5e47e2181d38ab9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#ada023ef9d9bd4904e5e47e2181d38ab9">More...</a><br /></td></tr>
 <tr class="separator:ada023ef9d9bd4904e5e47e2181d38ab9"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td></tr>
-<tr class="memitem:a9ce3a82556ab016cdff94f032b19d6af inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a9ce3a82556ab016cdff94f032b19d6af">UpperBoundingSolver</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, <a class="el" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="el" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn, std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *constraintPropertiesIn, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> useIn)</td></tr>
-<tr class="memdesc:a9ce3a82556ab016cdff94f032b19d6af inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem and constructs an own copy of the directed acyclic graph.  <a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a9ce3a82556ab016cdff94f032b19d6af">More...</a><br /></td></tr>
-<tr class="separator:a9ce3a82556ab016cdff94f032b19d6af inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad9c2c0ae5e137605da0f9588df694a52 inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ad9c2c0ae5e137605da0f9588df694a52">UpperBoundingSolver</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt; settingsIn, std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt; constraintPropertiesIn, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> useIn)</td></tr>
+<tr class="memdesc:ad9c2c0ae5e137605da0f9588df694a52 inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem and constructs an own copy of the directed acyclic graph.  <a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ad9c2c0ae5e137605da0f9588df694a52">More...</a><br /></td></tr>
+<tr class="separator:ad9c2c0ae5e137605da0f9588df694a52 inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aa17ca0c5dbf33219148dc2fff3446357 inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa17ca0c5dbf33219148dc2fff3446357">~UpperBoundingSolver</a> ()</td></tr>
 <tr class="memdesc:aa17ca0c5dbf33219148dc2fff3446357 inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual destructor, only needed to make sure the correct destructor of the derived classes is called.  <a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa17ca0c5dbf33219148dc2fff3446357">More...</a><br /></td></tr>
 <tr class="separator:aa17ca0c5dbf33219148dc2fff3446357 inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -196,16 +196,16 @@ Additional Inherited Members</h2></td></tr>
 <tr class="memdesc:ac1124e613e46e59fb88415116e08e326 inherit pro_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function checking if discrete variables are indeed discrete.  <a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac1124e613e46e59fb88415116e08e326">More...</a><br /></td></tr>
 <tr class="separator:ac1124e613e46e59fb88415116e08e326 inherit pro_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td></tr>
-<tr class="memitem:a1b4e1d2ce3d3413c1c5d509d13ec752e inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1_settings.html">Settings</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1b4e1d2ce3d3413c1c5d509d13ec752e">_maingoSettings</a></td></tr>
-<tr class="separator:a1b4e1d2ce3d3413c1c5d509d13ec752e inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab436cb85b75f92ef42ca46adb87b83c0 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmaingo_1_1_logger.html">Logger</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab436cb85b75f92ef42ca46adb87b83c0">_logger</a></td></tr>
-<tr class="separator:ab436cb85b75f92ef42ca46adb87b83c0 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4d7aaa4de8e2e6633b9064568961bc72 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4d7aaa4de8e2e6633b9064568961bc72">_maingoSettings</a></td></tr>
+<tr class="separator:a4d7aaa4de8e2e6633b9064568961bc72 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab76a699684d09100c63ec4ddcaa10456 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab76a699684d09100c63ec4ddcaa10456">_logger</a></td></tr>
+<tr class="separator:ab76a699684d09100c63ec4ddcaa10456 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ac9710c21359f1811dbdee779247fa701 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html">DagObj</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac9710c21359f1811dbdee779247fa701">_DAGobj</a></td></tr>
 <tr class="separator:ac9710c21359f1811dbdee779247fa701 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ac626a7b38249edde44afdbf721df0c79 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac626a7b38249edde44afdbf721df0c79">_intendedUse</a></td></tr>
 <tr class="separator:ac626a7b38249edde44afdbf721df0c79 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aae0c39f4b14cfb8a3c70a57b49f15e67 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aae0c39f4b14cfb8a3c70a57b49f15e67">_constraintProperties</a></td></tr>
-<tr class="separator:aae0c39f4b14cfb8a3c70a57b49f15e67 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a633d6c072f7388ade44ccebf3fa3c935 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a633d6c072f7388ade44ccebf3fa3c935">_constraintProperties</a></td></tr>
+<tr class="separator:a633d6c072f7388ade44ccebf3fa3c935 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a42b77e82598864f05222b9dc415945a9 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a42b77e82598864f05222b9dc415945a9">_nvar</a></td></tr>
 <tr class="separator:a42b77e82598864f05222b9dc415945a9 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a2a4ed8977b38691844e43bb86ee86012 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2a4ed8977b38691844e43bb86ee86012">_nineq</a></td></tr>
@@ -227,8 +227,8 @@ Additional Inherited Members</h2></td></tr>
 <div class="textblock"><p>Wrapper for handling the upper bounding problems by interfacing CPLEX. </p>
 <p>This class constructs and solves upper bounding problems which were recognized as LP, MIP, QCP or MIQCP using CPLEX (International Business Machines Corporation: IBM ILOG CPLEX v12.8. Armonk (2009)). </p>
 </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a id="a151f2ced79870ee59b168cdcaaf34bff"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a151f2ced79870ee59b168cdcaaf34bff">&#9670;&nbsp;</a></span>UbpCplex() <span class="overload">[1/2]</span></h2>
+<a id="aa7a3ededf743a2cde154b5c267cf26d6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa7a3ededf743a2cde154b5c267cf26d6">&#9670;&nbsp;</a></span>UbpCplex() <span class="overload">[1/2]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -278,19 +278,19 @@ Additional Inherited Members</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="structmaingo_1_1_settings.html">Settings</a> *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt;&#160;</td>
           <td class="paramname"><em>settingsIn</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="classmaingo_1_1_logger.html">Logger</a> *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt;&#160;</td>
           <td class="paramname"><em>loggerIn</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt;&#160;</td>
           <td class="paramname"><em>constraintPropertiesIn</em>, </td>
         </tr>
         <tr>
@@ -332,6 +332,9 @@ Additional Inherited Members</h2></td></tr>
 
 <div class="memitem">
 <div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
       <table class="memname">
         <tr>
           <td class="memname">maingo::ubp::UbpCplex::~UbpCplex </td>
@@ -340,6 +343,11 @@ Additional Inherited Members</h2></td></tr>
           <td></td>
         </tr>
       </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
 </div><div class="memdoc">
 
 <p>Destructor. </p>
@@ -584,7 +592,7 @@ Additional Inherited Members</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this class was generated from the following file:<ul>
-<li>C:/Users/dobo01/maingo/inc/<a class="el" href="ubp_cplex_8h_source.html">ubpCplex.h</a></li>
+<li>C:/dobo01/maingo/inc/<a class="el" href="ubp_cplex_8h_source.html">ubpCplex.h</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -594,7 +602,7 @@ Additional Inherited Members</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="namespacemaingo_1_1ubp.html">ubp</a></li><li class="navelem"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_cplex.html">UbpCplex</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1ubp_1_1_ubp_cplex.js b/doc/html/classmaingo_1_1ubp_1_1_ubp_cplex.js
index f03c24ee9699eba9c58c3dee65c181369385427b..62dfd650955ba9b0475e3af596225c011594048c 100644
--- a/doc/html/classmaingo_1_1ubp_1_1_ubp_cplex.js
+++ b/doc/html/classmaingo_1_1ubp_1_1_ubp_cplex.js
@@ -1,6 +1,6 @@
 var classmaingo_1_1ubp_1_1_ubp_cplex =
 [
-    [ "UbpCplex", "classmaingo_1_1ubp_1_1_ubp_cplex.html#a151f2ced79870ee59b168cdcaaf34bff", null ],
+    [ "UbpCplex", "classmaingo_1_1ubp_1_1_ubp_cplex.html#aa7a3ededf743a2cde154b5c267cf26d6", null ],
     [ "~UbpCplex", "classmaingo_1_1ubp_1_1_ubp_cplex.html#ada023ef9d9bd4904e5e47e2181d38ab9", null ],
     [ "UbpCplex", "classmaingo_1_1ubp_1_1_ubp_cplex.html#a080f171542c7ad6ffb84762238bdb816", null ],
     [ "_solve_nlp", "classmaingo_1_1ubp_1_1_ubp_cplex.html#a6ddfc769b26441e3712ec56c5dcec7ba", null ],
diff --git a/doc/html/classmaingo_1_1ubp_1_1_ubp_ipopt-members.html b/doc/html/classmaingo_1_1ubp_1_1_ubp_ipopt-members.html
index bbafac6fef75c9ed944378a93fffc02d98a13aa3..a585426ae725991da70263218d0b621eba5e6640 100644
--- a/doc/html/classmaingo_1_1ubp_1_1_ubp_ipopt-members.html
+++ b/doc/html/classmaingo_1_1ubp_1_1_ubp_ipopt-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -98,7 +98,7 @@ $(document).ready(function(){initNavTree('classmaingo_1_1ubp_1_1_ubp_ipopt.html'
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ae20cc817f6ec888d8a9e7a9723cfe0b7">_check_ineq</a>(const std::vector&lt; double &gt; &amp;modelOutput) const</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa40b7dc4622a4ffed899195174f3fda7">_check_ineq_squash</a>(const std::vector&lt; double &gt; &amp;modelOutput) const</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac1124e613e46e59fb88415116e08e326">_check_integrality</a>(const std::vector&lt; double &gt; &amp;currentPoint) const</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aae0c39f4b14cfb8a3c70a57b49f15e67">_constraintProperties</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a633d6c072f7388ade44ccebf3fa3c935">_constraintProperties</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac9710c21359f1811dbdee779247fa701">_DAGobj</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#afce03a4f45462c5afb5af2146ddd7e78">_determine_sparsity_hessian</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a04b6d46cf762e76a70611b9c9e54f71d">_determine_sparsity_jacobian</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
@@ -106,8 +106,8 @@ $(document).ready(function(){initNavTree('classmaingo_1_1ubp_1_1_ubp_ipopt.html'
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a88f6a1e58a7274d44f6c9513581a6f4b">_generate_multistart_point</a>(bool &amp;usedCenter, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac626a7b38249edde44afdbf721df0c79">_intendedUse</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#a6a7bbb8629378389e64679418ffab50d">_Ipopt</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html">maingo::ubp::UbpIpopt</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab436cb85b75f92ef42ca46adb87b83c0">_logger</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1b4e1d2ce3d3413c1c5d509d13ec752e">_maingoSettings</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab76a699684d09100c63ec4ddcaa10456">_logger</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4d7aaa4de8e2e6633b9064568961bc72">_maingoSettings</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a826673302ff22c211249640a0e924515">_neq</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2a4ed8977b38691844e43bb86ee86012">_nineq</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab774cf6400badf5cb3675dac2daf27bd">_nineqSquash</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
@@ -122,10 +122,10 @@ $(document).ready(function(){initNavTree('classmaingo_1_1ubp_1_1_ubp_ipopt.html'
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac291c925f9007b90cbf09497a93d8239">multistart</a>(babBase::BabNode const &amp;currentNode, double &amp;objectiveValue, std::vector&lt; double &gt; &amp;solutionPoint, std::vector&lt; SUBSOLVER_RETCODE &gt; &amp;feasible, std::vector&lt; double &gt; &amp;optimalObjectives, bool &amp;initialPointFeasible)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#ad12c30c11fb6ef915670ffd51bf5f860">operator=</a>(const UbpIpopt &amp;)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html">maingo::ubp::UbpIpopt</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4ac108083fde6741e77d7c0b231bd610">solve</a>(babBase::BabNode const &amp;currentNode, double &amp;objectiveValue, std::vector&lt; double &gt; &amp;solutionPoint)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#a3b4a6331fd9876205ae349bdc95d06a4">UbpIpopt</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, UBS_USE useIn)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html">maingo::ubp::UbpIpopt</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#acd84ac4a7669c214242419ee880426fa">UbpIpopt</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, UBS_USE useIn)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html">maingo::ubp::UbpIpopt</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#a452dbba117fa1b3edd676f31c04258fe">UbpIpopt</a>(const UbpIpopt &amp;)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html">maingo::ubp::UbpIpopt</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> enum name</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a9ce3a82556ab016cdff94f032b19d6af">UpperBoundingSolver</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, UBS_USE useIn)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ad9c2c0ae5e137605da0f9588df694a52">UpperBoundingSolver</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, UBS_USE useIn)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395a8c993825a2321788812ac88fa8666a34">USE_BAB</a> enum value</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395aaf072b94cbf6e5d23d6b55bc2846a4e6">USE_PRE</a> enum value</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa17ca0c5dbf33219148dc2fff3446357">~UpperBoundingSolver</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
@@ -136,7 +136,7 @@ $(document).ready(function(){initNavTree('classmaingo_1_1ubp_1_1_ubp_ipopt.html'
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1ubp_1_1_ubp_ipopt.html b/doc/html/classmaingo_1_1ubp_1_1_ubp_ipopt.html
index 7ce8674607b66d0b21312f1187a68490577b0aa6..69d2a4e919daa567f821f41e18e54bd230c49524 100644
--- a/doc/html/classmaingo_1_1ubp_1_1_ubp_ipopt.html
+++ b/doc/html/classmaingo_1_1ubp_1_1_ubp_ipopt.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::ubp::UbpIpopt Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -106,19 +106,19 @@ Inheritance diagram for maingo::ubp::UbpIpopt:</div>
  <div class="center">
   <img src="classmaingo_1_1ubp_1_1_ubp_ipopt.png" usemap="#maingo::ubp::UbpIpopt_map" alt=""/>
   <map id="maingo::ubp::UbpIpopt_map" name="maingo::ubp::UbpIpopt_map">
-<area href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html" title="Base class for wrappers for handling the upper bounding problems." alt="maingo::ubp::UpperBoundingSolver" shape="rect" coords="0,0,209,24"/>
-  </map>
-</div></div>
+<area href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html" title="Base class for wrappers for handling the upper bounding problems. " alt="maingo::ubp::UpperBoundingSolver" shape="rect" coords="0,0,209,24"/>
+</map>
+ </div></div>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:a3b4a6331fd9876205ae349bdc95d06a4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#a3b4a6331fd9876205ae349bdc95d06a4">UbpIpopt</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, <a class="el" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="el" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn, std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *constraintPropertiesIn, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> useIn)</td></tr>
-<tr class="memdesc:a3b4a6331fd9876205ae349bdc95d06a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem and initializes the local-subsolvers used.  <a href="#a3b4a6331fd9876205ae349bdc95d06a4">More...</a><br /></td></tr>
-<tr class="separator:a3b4a6331fd9876205ae349bdc95d06a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acd84ac4a7669c214242419ee880426fa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#acd84ac4a7669c214242419ee880426fa">UbpIpopt</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt; settingsIn, std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt; constraintPropertiesIn, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> useIn)</td></tr>
+<tr class="memdesc:acd84ac4a7669c214242419ee880426fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem and initializes the local-subsolvers used.  <a href="#acd84ac4a7669c214242419ee880426fa">More...</a><br /></td></tr>
+<tr class="separator:acd84ac4a7669c214242419ee880426fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td></tr>
-<tr class="memitem:a9ce3a82556ab016cdff94f032b19d6af inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a9ce3a82556ab016cdff94f032b19d6af">UpperBoundingSolver</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, <a class="el" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="el" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn, std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *constraintPropertiesIn, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> useIn)</td></tr>
-<tr class="memdesc:a9ce3a82556ab016cdff94f032b19d6af inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem and constructs an own copy of the directed acyclic graph.  <a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a9ce3a82556ab016cdff94f032b19d6af">More...</a><br /></td></tr>
-<tr class="separator:a9ce3a82556ab016cdff94f032b19d6af inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad9c2c0ae5e137605da0f9588df694a52 inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ad9c2c0ae5e137605da0f9588df694a52">UpperBoundingSolver</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt; settingsIn, std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt; constraintPropertiesIn, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> useIn)</td></tr>
+<tr class="memdesc:ad9c2c0ae5e137605da0f9588df694a52 inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem and constructs an own copy of the directed acyclic graph.  <a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ad9c2c0ae5e137605da0f9588df694a52">More...</a><br /></td></tr>
+<tr class="separator:ad9c2c0ae5e137605da0f9588df694a52 inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aa17ca0c5dbf33219148dc2fff3446357 inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa17ca0c5dbf33219148dc2fff3446357">~UpperBoundingSolver</a> ()</td></tr>
 <tr class="memdesc:aa17ca0c5dbf33219148dc2fff3446357 inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual destructor, only needed to make sure the correct destructor of the derived classes is called.  <a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa17ca0c5dbf33219148dc2fff3446357">More...</a><br /></td></tr>
 <tr class="separator:aa17ca0c5dbf33219148dc2fff3446357 inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -186,16 +186,16 @@ Additional Inherited Members</h2></td></tr>
 <tr class="memdesc:ac1124e613e46e59fb88415116e08e326 inherit pro_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function checking if discrete variables are indeed discrete.  <a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac1124e613e46e59fb88415116e08e326">More...</a><br /></td></tr>
 <tr class="separator:ac1124e613e46e59fb88415116e08e326 inherit pro_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td></tr>
-<tr class="memitem:a1b4e1d2ce3d3413c1c5d509d13ec752e inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1_settings.html">Settings</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1b4e1d2ce3d3413c1c5d509d13ec752e">_maingoSettings</a></td></tr>
-<tr class="separator:a1b4e1d2ce3d3413c1c5d509d13ec752e inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab436cb85b75f92ef42ca46adb87b83c0 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmaingo_1_1_logger.html">Logger</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab436cb85b75f92ef42ca46adb87b83c0">_logger</a></td></tr>
-<tr class="separator:ab436cb85b75f92ef42ca46adb87b83c0 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4d7aaa4de8e2e6633b9064568961bc72 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4d7aaa4de8e2e6633b9064568961bc72">_maingoSettings</a></td></tr>
+<tr class="separator:a4d7aaa4de8e2e6633b9064568961bc72 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab76a699684d09100c63ec4ddcaa10456 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab76a699684d09100c63ec4ddcaa10456">_logger</a></td></tr>
+<tr class="separator:ab76a699684d09100c63ec4ddcaa10456 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ac9710c21359f1811dbdee779247fa701 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html">DagObj</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac9710c21359f1811dbdee779247fa701">_DAGobj</a></td></tr>
 <tr class="separator:ac9710c21359f1811dbdee779247fa701 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ac626a7b38249edde44afdbf721df0c79 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac626a7b38249edde44afdbf721df0c79">_intendedUse</a></td></tr>
 <tr class="separator:ac626a7b38249edde44afdbf721df0c79 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aae0c39f4b14cfb8a3c70a57b49f15e67 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aae0c39f4b14cfb8a3c70a57b49f15e67">_constraintProperties</a></td></tr>
-<tr class="separator:aae0c39f4b14cfb8a3c70a57b49f15e67 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a633d6c072f7388ade44ccebf3fa3c935 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a633d6c072f7388ade44ccebf3fa3c935">_constraintProperties</a></td></tr>
+<tr class="separator:a633d6c072f7388ade44ccebf3fa3c935 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a42b77e82598864f05222b9dc415945a9 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a42b77e82598864f05222b9dc415945a9">_nvar</a></td></tr>
 <tr class="separator:a42b77e82598864f05222b9dc415945a9 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a2a4ed8977b38691844e43bb86ee86012 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2a4ed8977b38691844e43bb86ee86012">_nineq</a></td></tr>
@@ -217,8 +217,8 @@ Additional Inherited Members</h2></td></tr>
 <div class="textblock"><p>Wrapper for handling the upper bounding problems by interfacing Ipopt. </p>
 <p>This class constructs and solves upper bounding problems using Ipopt (<a href="https://projects.coin-or.org/Ipopt">https://projects.coin-or.org/Ipopt</a>). It thus evaluates the Model equations using either regular floating point arithmetics or FADBAD++ to obtain function values and gradients, and solves the resulting NLPs. The solution point obtained is checked for feasibility within the given tolerances. </p>
 </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a id="a3b4a6331fd9876205ae349bdc95d06a4"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3b4a6331fd9876205ae349bdc95d06a4">&#9670;&nbsp;</a></span>UbpIpopt() <span class="overload">[1/2]</span></h2>
+<a id="acd84ac4a7669c214242419ee880426fa"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acd84ac4a7669c214242419ee880426fa">&#9670;&nbsp;</a></span>UbpIpopt() <span class="overload">[1/2]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -268,19 +268,19 @@ Additional Inherited Members</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="structmaingo_1_1_settings.html">Settings</a> *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt;&#160;</td>
           <td class="paramname"><em>settingsIn</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="classmaingo_1_1_logger.html">Logger</a> *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt;&#160;</td>
           <td class="paramname"><em>loggerIn</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt;&#160;</td>
           <td class="paramname"><em>constraintPropertiesIn</em>, </td>
         </tr>
         <tr>
@@ -482,8 +482,8 @@ Additional Inherited Members</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this class was generated from the following files:<ul>
-<li>C:/Users/dobo01/maingo/inc/<a class="el" href="ubp_ipopt_8h_source.html">ubpIpopt.h</a></li>
-<li>C:/Users/dobo01/maingo/src/<a class="el" href="ubp_ipopt_8cpp.html">ubpIpopt.cpp</a></li>
+<li>C:/dobo01/maingo/inc/<a class="el" href="ubp_ipopt_8h_source.html">ubpIpopt.h</a></li>
+<li>C:/dobo01/maingo/src/<a class="el" href="ubp_ipopt_8cpp.html">ubpIpopt.cpp</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -493,7 +493,7 @@ Additional Inherited Members</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="namespacemaingo_1_1ubp.html">ubp</a></li><li class="navelem"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html">UbpIpopt</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1ubp_1_1_ubp_ipopt.js b/doc/html/classmaingo_1_1ubp_1_1_ubp_ipopt.js
index 53b1ee850c1bcb5b265251ed070c031d0364f6ae..f7163e68d40b5baec6e89f95938469217bf65d48 100644
--- a/doc/html/classmaingo_1_1ubp_1_1_ubp_ipopt.js
+++ b/doc/html/classmaingo_1_1ubp_1_1_ubp_ipopt.js
@@ -1,6 +1,6 @@
 var classmaingo_1_1ubp_1_1_ubp_ipopt =
 [
-    [ "UbpIpopt", "classmaingo_1_1ubp_1_1_ubp_ipopt.html#a3b4a6331fd9876205ae349bdc95d06a4", null ],
+    [ "UbpIpopt", "classmaingo_1_1ubp_1_1_ubp_ipopt.html#acd84ac4a7669c214242419ee880426fa", null ],
     [ "UbpIpopt", "classmaingo_1_1ubp_1_1_ubp_ipopt.html#a452dbba117fa1b3edd676f31c04258fe", null ],
     [ "_solve_nlp", "classmaingo_1_1ubp_1_1_ubp_ipopt.html#a1d566d058e7134be0305fed79d25be08", null ],
     [ "operator=", "classmaingo_1_1ubp_1_1_ubp_ipopt.html#ad12c30c11fb6ef915670ffd51bf5f860", null ],
diff --git a/doc/html/classmaingo_1_1ubp_1_1_ubp_knitro-members.html b/doc/html/classmaingo_1_1ubp_1_1_ubp_knitro-members.html
index 11db4fe473c0cceeef2c4e73722cd282712a16c8..fc5d1d6d6df5f8f35ce180ac530baf8499c76d56 100644
--- a/doc/html/classmaingo_1_1ubp_1_1_ubp_knitro-members.html
+++ b/doc/html/classmaingo_1_1ubp_1_1_ubp_knitro-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -98,7 +98,7 @@ $(document).ready(function(){initNavTree('classmaingo_1_1ubp_1_1_ubp_knitro.html
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ae20cc817f6ec888d8a9e7a9723cfe0b7">_check_ineq</a>(const std::vector&lt; double &gt; &amp;modelOutput) const</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa40b7dc4622a4ffed899195174f3fda7">_check_ineq_squash</a>(const std::vector&lt; double &gt; &amp;modelOutput) const</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac1124e613e46e59fb88415116e08e326">_check_integrality</a>(const std::vector&lt; double &gt; &amp;currentPoint) const</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aae0c39f4b14cfb8a3c70a57b49f15e67">_constraintProperties</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a633d6c072f7388ade44ccebf3fa3c935">_constraintProperties</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac9710c21359f1811dbdee779247fa701">_DAGobj</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#afce03a4f45462c5afb5af2146ddd7e78">_determine_sparsity_hessian</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a04b6d46cf762e76a70611b9c9e54f71d">_determine_sparsity_jacobian</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
@@ -106,8 +106,8 @@ $(document).ready(function(){initNavTree('classmaingo_1_1ubp_1_1_ubp_knitro.html
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a88f6a1e58a7274d44f6c9513581a6f4b">_generate_multistart_point</a>(bool &amp;usedCenter, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac626a7b38249edde44afdbf721df0c79">_intendedUse</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#ae54f2f80561a3f03efbdb107b03d93eb">_Knitro</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_knitro.html">maingo::ubp::UbpKnitro</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab436cb85b75f92ef42ca46adb87b83c0">_logger</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1b4e1d2ce3d3413c1c5d509d13ec752e">_maingoSettings</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab76a699684d09100c63ec4ddcaa10456">_logger</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4d7aaa4de8e2e6633b9064568961bc72">_maingoSettings</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a826673302ff22c211249640a0e924515">_neq</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2a4ed8977b38691844e43bb86ee86012">_nineq</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab774cf6400badf5cb3675dac2daf27bd">_nineqSquash</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
@@ -123,10 +123,10 @@ $(document).ready(function(){initNavTree('classmaingo_1_1ubp_1_1_ubp_knitro.html
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac291c925f9007b90cbf09497a93d8239">multistart</a>(babBase::BabNode const &amp;currentNode, double &amp;objectiveValue, std::vector&lt; double &gt; &amp;solutionPoint, std::vector&lt; SUBSOLVER_RETCODE &gt; &amp;feasible, std::vector&lt; double &gt; &amp;optimalObjectives, bool &amp;initialPointFeasible)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#ad05c1f048da57b4af99fd5cd8b7c2cdb">operator=</a>(const UbpKnitro &amp;)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_knitro.html">maingo::ubp::UbpKnitro</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4ac108083fde6741e77d7c0b231bd610">solve</a>(babBase::BabNode const &amp;currentNode, double &amp;objectiveValue, std::vector&lt; double &gt; &amp;solutionPoint)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#ac916b5455e5ae20c5d9dd9a4006d0482">UbpKnitro</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, UBS_USE useIn)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_knitro.html">maingo::ubp::UbpKnitro</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a94a323841bca8d54129aa85fad4ce06c">UbpKnitro</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, UBS_USE useIn)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_knitro.html">maingo::ubp::UbpKnitro</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a76b1d3d5ca75b9d7b12015482fae7aa5">UbpKnitro</a>(const UbpKnitro &amp;)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_knitro.html">maingo::ubp::UbpKnitro</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> enum name</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a9ce3a82556ab016cdff94f032b19d6af">UpperBoundingSolver</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, UBS_USE useIn)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ad9c2c0ae5e137605da0f9588df694a52">UpperBoundingSolver</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, UBS_USE useIn)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395a8c993825a2321788812ac88fa8666a34">USE_BAB</a> enum value</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395aaf072b94cbf6e5d23d6b55bc2846a4e6">USE_PRE</a> enum value</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a0ebc116dd3ddaea32fb9330ee725295d">~UbpKnitro</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_knitro.html">maingo::ubp::UbpKnitro</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
@@ -138,7 +138,7 @@ $(document).ready(function(){initNavTree('classmaingo_1_1ubp_1_1_ubp_knitro.html
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1ubp_1_1_ubp_knitro.html b/doc/html/classmaingo_1_1ubp_1_1_ubp_knitro.html
index 53ba6babda4a5806fdb4e9fc54d6a07c01e947b7..cfc230912efac936610d8fec336408e89c548cff 100644
--- a/doc/html/classmaingo_1_1ubp_1_1_ubp_knitro.html
+++ b/doc/html/classmaingo_1_1ubp_1_1_ubp_knitro.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::ubp::UbpKnitro Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -106,22 +106,22 @@ Inheritance diagram for maingo::ubp::UbpKnitro:</div>
  <div class="center">
   <img src="classmaingo_1_1ubp_1_1_ubp_knitro.png" usemap="#maingo::ubp::UbpKnitro_map" alt=""/>
   <map id="maingo::ubp::UbpKnitro_map" name="maingo::ubp::UbpKnitro_map">
-<area href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html" title="Base class for wrappers for handling the upper bounding problems." alt="maingo::ubp::UpperBoundingSolver" shape="rect" coords="0,0,209,24"/>
-  </map>
-</div></div>
+<area href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html" title="Base class for wrappers for handling the upper bounding problems. " alt="maingo::ubp::UpperBoundingSolver" shape="rect" coords="0,0,209,24"/>
+</map>
+ </div></div>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:ac916b5455e5ae20c5d9dd9a4006d0482"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#ac916b5455e5ae20c5d9dd9a4006d0482">UbpKnitro</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, <a class="el" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="el" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn, std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *constraintPropertiesIn, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> useIn)</td></tr>
-<tr class="memdesc:ac916b5455e5ae20c5d9dd9a4006d0482"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem and initializes the local-subsolvers used.  <a href="#ac916b5455e5ae20c5d9dd9a4006d0482">More...</a><br /></td></tr>
-<tr class="separator:ac916b5455e5ae20c5d9dd9a4006d0482"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a94a323841bca8d54129aa85fad4ce06c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a94a323841bca8d54129aa85fad4ce06c">UbpKnitro</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt; settingsIn, std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt; constraintPropertiesIn, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> useIn)</td></tr>
+<tr class="memdesc:a94a323841bca8d54129aa85fad4ce06c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem and initializes the local-subsolvers used.  <a href="#a94a323841bca8d54129aa85fad4ce06c">More...</a><br /></td></tr>
+<tr class="separator:a94a323841bca8d54129aa85fad4ce06c"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a0ebc116dd3ddaea32fb9330ee725295d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a0ebc116dd3ddaea32fb9330ee725295d">~UbpKnitro</a> ()</td></tr>
 <tr class="memdesc:a0ebc116dd3ddaea32fb9330ee725295d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#a0ebc116dd3ddaea32fb9330ee725295d">More...</a><br /></td></tr>
 <tr class="separator:a0ebc116dd3ddaea32fb9330ee725295d"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td></tr>
-<tr class="memitem:a9ce3a82556ab016cdff94f032b19d6af inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a9ce3a82556ab016cdff94f032b19d6af">UpperBoundingSolver</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, <a class="el" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="el" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn, std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *constraintPropertiesIn, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> useIn)</td></tr>
-<tr class="memdesc:a9ce3a82556ab016cdff94f032b19d6af inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem and constructs an own copy of the directed acyclic graph.  <a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a9ce3a82556ab016cdff94f032b19d6af">More...</a><br /></td></tr>
-<tr class="separator:a9ce3a82556ab016cdff94f032b19d6af inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad9c2c0ae5e137605da0f9588df694a52 inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ad9c2c0ae5e137605da0f9588df694a52">UpperBoundingSolver</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt; settingsIn, std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt; constraintPropertiesIn, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> useIn)</td></tr>
+<tr class="memdesc:ad9c2c0ae5e137605da0f9588df694a52 inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem and constructs an own copy of the directed acyclic graph.  <a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ad9c2c0ae5e137605da0f9588df694a52">More...</a><br /></td></tr>
+<tr class="separator:ad9c2c0ae5e137605da0f9588df694a52 inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aa17ca0c5dbf33219148dc2fff3446357 inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa17ca0c5dbf33219148dc2fff3446357">~UpperBoundingSolver</a> ()</td></tr>
 <tr class="memdesc:aa17ca0c5dbf33219148dc2fff3446357 inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual destructor, only needed to make sure the correct destructor of the derived classes is called.  <a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa17ca0c5dbf33219148dc2fff3446357">More...</a><br /></td></tr>
 <tr class="separator:aa17ca0c5dbf33219148dc2fff3446357 inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -191,16 +191,16 @@ Additional Inherited Members</h2></td></tr>
 <tr class="memdesc:ac1124e613e46e59fb88415116e08e326 inherit pro_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function checking if discrete variables are indeed discrete.  <a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac1124e613e46e59fb88415116e08e326">More...</a><br /></td></tr>
 <tr class="separator:ac1124e613e46e59fb88415116e08e326 inherit pro_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td></tr>
-<tr class="memitem:a1b4e1d2ce3d3413c1c5d509d13ec752e inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1_settings.html">Settings</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1b4e1d2ce3d3413c1c5d509d13ec752e">_maingoSettings</a></td></tr>
-<tr class="separator:a1b4e1d2ce3d3413c1c5d509d13ec752e inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab436cb85b75f92ef42ca46adb87b83c0 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmaingo_1_1_logger.html">Logger</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab436cb85b75f92ef42ca46adb87b83c0">_logger</a></td></tr>
-<tr class="separator:ab436cb85b75f92ef42ca46adb87b83c0 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4d7aaa4de8e2e6633b9064568961bc72 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4d7aaa4de8e2e6633b9064568961bc72">_maingoSettings</a></td></tr>
+<tr class="separator:a4d7aaa4de8e2e6633b9064568961bc72 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab76a699684d09100c63ec4ddcaa10456 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab76a699684d09100c63ec4ddcaa10456">_logger</a></td></tr>
+<tr class="separator:ab76a699684d09100c63ec4ddcaa10456 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ac9710c21359f1811dbdee779247fa701 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html">DagObj</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac9710c21359f1811dbdee779247fa701">_DAGobj</a></td></tr>
 <tr class="separator:ac9710c21359f1811dbdee779247fa701 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ac626a7b38249edde44afdbf721df0c79 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac626a7b38249edde44afdbf721df0c79">_intendedUse</a></td></tr>
 <tr class="separator:ac626a7b38249edde44afdbf721df0c79 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aae0c39f4b14cfb8a3c70a57b49f15e67 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aae0c39f4b14cfb8a3c70a57b49f15e67">_constraintProperties</a></td></tr>
-<tr class="separator:aae0c39f4b14cfb8a3c70a57b49f15e67 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a633d6c072f7388ade44ccebf3fa3c935 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a633d6c072f7388ade44ccebf3fa3c935">_constraintProperties</a></td></tr>
+<tr class="separator:a633d6c072f7388ade44ccebf3fa3c935 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a42b77e82598864f05222b9dc415945a9 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a42b77e82598864f05222b9dc415945a9">_nvar</a></td></tr>
 <tr class="separator:a42b77e82598864f05222b9dc415945a9 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a2a4ed8977b38691844e43bb86ee86012 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2a4ed8977b38691844e43bb86ee86012">_nineq</a></td></tr>
@@ -222,8 +222,8 @@ Additional Inherited Members</h2></td></tr>
 <div class="textblock"><p>Wrapper for handling the upper bounding problems by interfacing Knitro. </p>
 <p>This class constructs and solves upper bounding problems using Knitro (<a href="https://www.artelys.com/en/optimization-tools/knitro">https://www.artelys.com/en/optimization-tools/knitro</a> ). It thus evaluates the Model equations using either regular floating point arithmetics or FADBAD++ to obtain function values and gradients, and solves the resulting (MI)NLPs. The solution point obtained is checked for feasibility within the given tolerances. </p>
 </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a id="ac916b5455e5ae20c5d9dd9a4006d0482"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ac916b5455e5ae20c5d9dd9a4006d0482">&#9670;&nbsp;</a></span>UbpKnitro() <span class="overload">[1/2]</span></h2>
+<a id="a94a323841bca8d54129aa85fad4ce06c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a94a323841bca8d54129aa85fad4ce06c">&#9670;&nbsp;</a></span>UbpKnitro() <span class="overload">[1/2]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -273,19 +273,19 @@ Additional Inherited Members</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="structmaingo_1_1_settings.html">Settings</a> *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt;&#160;</td>
           <td class="paramname"><em>settingsIn</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="classmaingo_1_1_logger.html">Logger</a> *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt;&#160;</td>
           <td class="paramname"><em>loggerIn</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt;&#160;</td>
           <td class="paramname"><em>constraintPropertiesIn</em>, </td>
         </tr>
         <tr>
@@ -537,7 +537,7 @@ Additional Inherited Members</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this class was generated from the following file:<ul>
-<li>C:/Users/dobo01/maingo/inc/<a class="el" href="ubp_knitro_8h_source.html">ubpKnitro.h</a></li>
+<li>C:/dobo01/maingo/inc/<a class="el" href="ubp_knitro_8h_source.html">ubpKnitro.h</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -547,7 +547,7 @@ Additional Inherited Members</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="namespacemaingo_1_1ubp.html">ubp</a></li><li class="navelem"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_knitro.html">UbpKnitro</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1ubp_1_1_ubp_knitro.js b/doc/html/classmaingo_1_1ubp_1_1_ubp_knitro.js
index 53a7c9a7c8fb6f564c4e8481264ff785e92d05e8..9bd65c53ae179583331caf28984a2c326eceab58 100644
--- a/doc/html/classmaingo_1_1ubp_1_1_ubp_knitro.js
+++ b/doc/html/classmaingo_1_1ubp_1_1_ubp_knitro.js
@@ -1,6 +1,6 @@
 var classmaingo_1_1ubp_1_1_ubp_knitro =
 [
-    [ "UbpKnitro", "classmaingo_1_1ubp_1_1_ubp_knitro.html#ac916b5455e5ae20c5d9dd9a4006d0482", null ],
+    [ "UbpKnitro", "classmaingo_1_1ubp_1_1_ubp_knitro.html#a94a323841bca8d54129aa85fad4ce06c", null ],
     [ "~UbpKnitro", "classmaingo_1_1ubp_1_1_ubp_knitro.html#a0ebc116dd3ddaea32fb9330ee725295d", null ],
     [ "UbpKnitro", "classmaingo_1_1ubp_1_1_ubp_knitro.html#a76b1d3d5ca75b9d7b12015482fae7aa5", null ],
     [ "_solve_nlp", "classmaingo_1_1ubp_1_1_ubp_knitro.html#a25aec304d6681184a572778f8a8c8379", null ],
diff --git a/doc/html/classmaingo_1_1ubp_1_1_ubp_n_lopt-members.html b/doc/html/classmaingo_1_1ubp_1_1_ubp_n_lopt-members.html
index 6616079ae33fc23d9ae9b7b4b98c8b82a3089598..3dc044527dbe856370fd1c012a640515d483c4c7 100644
--- a/doc/html/classmaingo_1_1ubp_1_1_ubp_n_lopt-members.html
+++ b/doc/html/classmaingo_1_1ubp_1_1_ubp_n_lopt-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -98,15 +98,15 @@ $(document).ready(function(){initNavTree('classmaingo_1_1ubp_1_1_ubp_n_lopt.html
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ae20cc817f6ec888d8a9e7a9723cfe0b7">_check_ineq</a>(const std::vector&lt; double &gt; &amp;modelOutput) const</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa40b7dc4622a4ffed899195174f3fda7">_check_ineq_squash</a>(const std::vector&lt; double &gt; &amp;modelOutput) const</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac1124e613e46e59fb88415116e08e326">_check_integrality</a>(const std::vector&lt; double &gt; &amp;currentPoint) const</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aae0c39f4b14cfb8a3c70a57b49f15e67">_constraintProperties</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a633d6c072f7388ade44ccebf3fa3c935">_constraintProperties</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac9710c21359f1811dbdee779247fa701">_DAGobj</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#afce03a4f45462c5afb5af2146ddd7e78">_determine_sparsity_hessian</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a04b6d46cf762e76a70611b9c9e54f71d">_determine_sparsity_jacobian</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a566cab6bf72ec7da46a8e42d63378d02">_determine_structure</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a88f6a1e58a7274d44f6c9513581a6f4b">_generate_multistart_point</a>(bool &amp;usedCenter, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac626a7b38249edde44afdbf721df0c79">_intendedUse</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab436cb85b75f92ef42ca46adb87b83c0">_logger</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1b4e1d2ce3d3413c1c5d509d13ec752e">_maingoSettings</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab76a699684d09100c63ec4ddcaa10456">_logger</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4d7aaa4de8e2e6633b9064568961bc72">_maingoSettings</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a826673302ff22c211249640a0e924515">_neq</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2a4ed8977b38691844e43bb86ee86012">_nineq</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab774cf6400badf5cb3675dac2daf27bd">_nineqSquash</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
@@ -125,10 +125,10 @@ $(document).ready(function(){initNavTree('classmaingo_1_1ubp_1_1_ubp_n_lopt.html
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac291c925f9007b90cbf09497a93d8239">multistart</a>(babBase::BabNode const &amp;currentNode, double &amp;objectiveValue, std::vector&lt; double &gt; &amp;solutionPoint, std::vector&lt; SUBSOLVER_RETCODE &gt; &amp;feasible, std::vector&lt; double &gt; &amp;optimalObjectives, bool &amp;initialPointFeasible)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#ac2fe06860e2c920acf0b7f8304a99d54">operator=</a>(const UbpNLopt &amp;)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html">maingo::ubp::UbpNLopt</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4ac108083fde6741e77d7c0b231bd610">solve</a>(babBase::BabNode const &amp;currentNode, double &amp;objectiveValue, std::vector&lt; double &gt; &amp;solutionPoint)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a84e83af5033d99a79f1fd1d65f6b8b7f">UbpNLopt</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, UBS_USE useIn)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html">maingo::ubp::UbpNLopt</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#ae5c7ea9072ed95c5521916c756be3f0f">UbpNLopt</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, UBS_USE useIn)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html">maingo::ubp::UbpNLopt</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#aa41c03634188b349a77fa5b33f987bd4">UbpNLopt</a>(const UbpNLopt &amp;)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html">maingo::ubp::UbpNLopt</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> enum name</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a9ce3a82556ab016cdff94f032b19d6af">UpperBoundingSolver</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, UBS_USE useIn)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ad9c2c0ae5e137605da0f9588df694a52">UpperBoundingSolver</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, UBS_USE useIn)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395a8c993825a2321788812ac88fa8666a34">USE_BAB</a> enum value</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395aaf072b94cbf6e5d23d6b55bc2846a4e6">USE_PRE</a> enum value</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa17ca0c5dbf33219148dc2fff3446357">~UpperBoundingSolver</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
@@ -139,7 +139,7 @@ $(document).ready(function(){initNavTree('classmaingo_1_1ubp_1_1_ubp_n_lopt.html
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1ubp_1_1_ubp_n_lopt.html b/doc/html/classmaingo_1_1ubp_1_1_ubp_n_lopt.html
index 38b2e5e9014d877aad90f496bf48affb08ed178a..d846d9b828bccd9d68867efde6456cc32e44e779 100644
--- a/doc/html/classmaingo_1_1ubp_1_1_ubp_n_lopt.html
+++ b/doc/html/classmaingo_1_1ubp_1_1_ubp_n_lopt.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::ubp::UbpNLopt Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -105,19 +105,19 @@ Inheritance diagram for maingo::ubp::UbpNLopt:</div>
  <div class="center">
   <img src="classmaingo_1_1ubp_1_1_ubp_n_lopt.png" usemap="#maingo::ubp::UbpNLopt_map" alt=""/>
   <map id="maingo::ubp::UbpNLopt_map" name="maingo::ubp::UbpNLopt_map">
-<area href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html" title="Base class for wrappers for handling the upper bounding problems." alt="maingo::ubp::UpperBoundingSolver" shape="rect" coords="0,0,209,24"/>
-  </map>
-</div></div>
+<area href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html" title="Base class for wrappers for handling the upper bounding problems. " alt="maingo::ubp::UpperBoundingSolver" shape="rect" coords="0,0,209,24"/>
+</map>
+ </div></div>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:a84e83af5033d99a79f1fd1d65f6b8b7f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a84e83af5033d99a79f1fd1d65f6b8b7f">UbpNLopt</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, <a class="el" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="el" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn, std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *constraintPropertiesIn, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> useIn)</td></tr>
-<tr class="memdesc:a84e83af5033d99a79f1fd1d65f6b8b7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem and initializes the local-subsolvers used.  <a href="#a84e83af5033d99a79f1fd1d65f6b8b7f">More...</a><br /></td></tr>
-<tr class="separator:a84e83af5033d99a79f1fd1d65f6b8b7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae5c7ea9072ed95c5521916c756be3f0f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#ae5c7ea9072ed95c5521916c756be3f0f">UbpNLopt</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt; settingsIn, std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt; constraintPropertiesIn, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> useIn)</td></tr>
+<tr class="memdesc:ae5c7ea9072ed95c5521916c756be3f0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem and initializes the local-subsolvers used.  <a href="#ae5c7ea9072ed95c5521916c756be3f0f">More...</a><br /></td></tr>
+<tr class="separator:ae5c7ea9072ed95c5521916c756be3f0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td></tr>
-<tr class="memitem:a9ce3a82556ab016cdff94f032b19d6af inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a9ce3a82556ab016cdff94f032b19d6af">UpperBoundingSolver</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, <a class="el" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="el" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn, std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *constraintPropertiesIn, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> useIn)</td></tr>
-<tr class="memdesc:a9ce3a82556ab016cdff94f032b19d6af inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem and constructs an own copy of the directed acyclic graph.  <a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a9ce3a82556ab016cdff94f032b19d6af">More...</a><br /></td></tr>
-<tr class="separator:a9ce3a82556ab016cdff94f032b19d6af inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad9c2c0ae5e137605da0f9588df694a52 inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ad9c2c0ae5e137605da0f9588df694a52">UpperBoundingSolver</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt; settingsIn, std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt; constraintPropertiesIn, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> useIn)</td></tr>
+<tr class="memdesc:ad9c2c0ae5e137605da0f9588df694a52 inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem and constructs an own copy of the directed acyclic graph.  <a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ad9c2c0ae5e137605da0f9588df694a52">More...</a><br /></td></tr>
+<tr class="separator:ad9c2c0ae5e137605da0f9588df694a52 inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aa17ca0c5dbf33219148dc2fff3446357 inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa17ca0c5dbf33219148dc2fff3446357">~UpperBoundingSolver</a> ()</td></tr>
 <tr class="memdesc:aa17ca0c5dbf33219148dc2fff3446357 inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual destructor, only needed to make sure the correct destructor of the derived classes is called.  <a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa17ca0c5dbf33219148dc2fff3446357">More...</a><br /></td></tr>
 <tr class="separator:aa17ca0c5dbf33219148dc2fff3446357 inherit pub_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -199,16 +199,16 @@ Additional Inherited Members</h2></td></tr>
 <tr class="memdesc:ac1124e613e46e59fb88415116e08e326 inherit pro_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function checking if discrete variables are indeed discrete.  <a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac1124e613e46e59fb88415116e08e326">More...</a><br /></td></tr>
 <tr class="separator:ac1124e613e46e59fb88415116e08e326 inherit pro_methods_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td></tr>
-<tr class="memitem:a1b4e1d2ce3d3413c1c5d509d13ec752e inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1_settings.html">Settings</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1b4e1d2ce3d3413c1c5d509d13ec752e">_maingoSettings</a></td></tr>
-<tr class="separator:a1b4e1d2ce3d3413c1c5d509d13ec752e inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab436cb85b75f92ef42ca46adb87b83c0 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmaingo_1_1_logger.html">Logger</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab436cb85b75f92ef42ca46adb87b83c0">_logger</a></td></tr>
-<tr class="separator:ab436cb85b75f92ef42ca46adb87b83c0 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4d7aaa4de8e2e6633b9064568961bc72 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4d7aaa4de8e2e6633b9064568961bc72">_maingoSettings</a></td></tr>
+<tr class="separator:a4d7aaa4de8e2e6633b9064568961bc72 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab76a699684d09100c63ec4ddcaa10456 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab76a699684d09100c63ec4ddcaa10456">_logger</a></td></tr>
+<tr class="separator:ab76a699684d09100c63ec4ddcaa10456 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ac9710c21359f1811dbdee779247fa701 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html">DagObj</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac9710c21359f1811dbdee779247fa701">_DAGobj</a></td></tr>
 <tr class="separator:ac9710c21359f1811dbdee779247fa701 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ac626a7b38249edde44afdbf721df0c79 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac626a7b38249edde44afdbf721df0c79">_intendedUse</a></td></tr>
 <tr class="separator:ac626a7b38249edde44afdbf721df0c79 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aae0c39f4b14cfb8a3c70a57b49f15e67 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aae0c39f4b14cfb8a3c70a57b49f15e67">_constraintProperties</a></td></tr>
-<tr class="separator:aae0c39f4b14cfb8a3c70a57b49f15e67 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a633d6c072f7388ade44ccebf3fa3c935 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a633d6c072f7388ade44ccebf3fa3c935">_constraintProperties</a></td></tr>
+<tr class="separator:a633d6c072f7388ade44ccebf3fa3c935 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a42b77e82598864f05222b9dc415945a9 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a42b77e82598864f05222b9dc415945a9">_nvar</a></td></tr>
 <tr class="separator:a42b77e82598864f05222b9dc415945a9 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a2a4ed8977b38691844e43bb86ee86012 inherit pro_attribs_classmaingo_1_1ubp_1_1_upper_bounding_solver"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2a4ed8977b38691844e43bb86ee86012">_nineq</a></td></tr>
@@ -230,8 +230,8 @@ Additional Inherited Members</h2></td></tr>
 <div class="textblock"><p>Wrapper for handling the upper bounding problems by interfacing NLopt. </p>
 <p>This class constructs and solves upper bounding problems using different solvers from the NLopt toolbox (<a href="http://ab-initio.mit.edu/wiki/index.php/NLopt">http://ab-initio.mit.edu/wiki/index.php/NLopt</a>). It thus evaluates the Model equations using either regular floating point arithmetics or FADBAD++ to obtain function values and gradients, and solves the resulting NLPs. The solution point obtained is checked for feasibility within the given tolerances. </p>
 </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a id="a84e83af5033d99a79f1fd1d65f6b8b7f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a84e83af5033d99a79f1fd1d65f6b8b7f">&#9670;&nbsp;</a></span>UbpNLopt() <span class="overload">[1/2]</span></h2>
+<a id="ae5c7ea9072ed95c5521916c756be3f0f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae5c7ea9072ed95c5521916c756be3f0f">&#9670;&nbsp;</a></span>UbpNLopt() <span class="overload">[1/2]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -281,19 +281,19 @@ Additional Inherited Members</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="structmaingo_1_1_settings.html">Settings</a> *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt;&#160;</td>
           <td class="paramname"><em>settingsIn</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="classmaingo_1_1_logger.html">Logger</a> *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt;&#160;</td>
           <td class="paramname"><em>loggerIn</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt;&#160;</td>
           <td class="paramname"><em>constraintPropertiesIn</em>, </td>
         </tr>
         <tr>
@@ -693,8 +693,8 @@ Additional Inherited Members</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this class was generated from the following files:<ul>
-<li>C:/Users/dobo01/maingo/inc/<a class="el" href="ubp_n_lopt_8h_source.html">ubpNLopt.h</a></li>
-<li>C:/Users/dobo01/maingo/src/<a class="el" href="ubp_n_lopt_8cpp.html">ubpNLopt.cpp</a></li>
+<li>C:/dobo01/maingo/inc/<a class="el" href="ubp_n_lopt_8h_source.html">ubpNLopt.h</a></li>
+<li>C:/dobo01/maingo/src/<a class="el" href="ubp_n_lopt_8cpp.html">ubpNLopt.cpp</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -704,7 +704,7 @@ Additional Inherited Members</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="namespacemaingo_1_1ubp.html">ubp</a></li><li class="navelem"><a class="el" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html">UbpNLopt</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1ubp_1_1_ubp_n_lopt.js b/doc/html/classmaingo_1_1ubp_1_1_ubp_n_lopt.js
index a72c4ffc13dea02d9f9d2eb2b6eae525436cec32..bb654fd157cdbdedae427d203a4a98c4a2bdd654 100644
--- a/doc/html/classmaingo_1_1ubp_1_1_ubp_n_lopt.js
+++ b/doc/html/classmaingo_1_1ubp_1_1_ubp_n_lopt.js
@@ -1,6 +1,6 @@
 var classmaingo_1_1ubp_1_1_ubp_n_lopt =
 [
-    [ "UbpNLopt", "classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a84e83af5033d99a79f1fd1d65f6b8b7f", null ],
+    [ "UbpNLopt", "classmaingo_1_1ubp_1_1_ubp_n_lopt.html#ae5c7ea9072ed95c5521916c756be3f0f", null ],
     [ "UbpNLopt", "classmaingo_1_1ubp_1_1_ubp_n_lopt.html#aa41c03634188b349a77fa5b33f987bd4", null ],
     [ "_solve_nlp", "classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a07be0f105dd3dbd86e6e91ccea83ce20", null ],
     [ "operator=", "classmaingo_1_1ubp_1_1_ubp_n_lopt.html#ac2fe06860e2c920acf0b7f8304a99d54", null ],
diff --git a/doc/html/classmaingo_1_1ubp_1_1_upper_bounding_solver-members.html b/doc/html/classmaingo_1_1ubp_1_1_upper_bounding_solver-members.html
index 505224149364179fd57bbc8e56d142bae456993b..b876cfd8acd710fa91de47c80647871d5d98d961 100644
--- a/doc/html/classmaingo_1_1ubp_1_1_upper_bounding_solver-members.html
+++ b/doc/html/classmaingo_1_1ubp_1_1_upper_bounding_solver-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -98,15 +98,15 @@ $(document).ready(function(){initNavTree('classmaingo_1_1ubp_1_1_upper_bounding_
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ae20cc817f6ec888d8a9e7a9723cfe0b7">_check_ineq</a>(const std::vector&lt; double &gt; &amp;modelOutput) const</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa40b7dc4622a4ffed899195174f3fda7">_check_ineq_squash</a>(const std::vector&lt; double &gt; &amp;modelOutput) const</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac1124e613e46e59fb88415116e08e326">_check_integrality</a>(const std::vector&lt; double &gt; &amp;currentPoint) const</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aae0c39f4b14cfb8a3c70a57b49f15e67">_constraintProperties</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a633d6c072f7388ade44ccebf3fa3c935">_constraintProperties</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac9710c21359f1811dbdee779247fa701">_DAGobj</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#afce03a4f45462c5afb5af2146ddd7e78">_determine_sparsity_hessian</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a04b6d46cf762e76a70611b9c9e54f71d">_determine_sparsity_jacobian</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a566cab6bf72ec7da46a8e42d63378d02">_determine_structure</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a88f6a1e58a7274d44f6c9513581a6f4b">_generate_multistart_point</a>(bool &amp;usedCenter, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac626a7b38249edde44afdbf721df0c79">_intendedUse</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab436cb85b75f92ef42ca46adb87b83c0">_logger</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1b4e1d2ce3d3413c1c5d509d13ec752e">_maingoSettings</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab76a699684d09100c63ec4ddcaa10456">_logger</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4d7aaa4de8e2e6633b9064568961bc72">_maingoSettings</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a826673302ff22c211249640a0e924515">_neq</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2a4ed8977b38691844e43bb86ee86012">_nineq</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab774cf6400badf5cb3675dac2daf27bd">_nineqSquash</a></td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
@@ -121,7 +121,7 @@ $(document).ready(function(){initNavTree('classmaingo_1_1ubp_1_1_upper_bounding_
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#afa9dca36d7987121ddc0327e62dfdcf2">operator=</a>(const UpperBoundingSolver &amp;)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4ac108083fde6741e77d7c0b231bd610">solve</a>(babBase::BabNode const &amp;currentNode, double &amp;objectiveValue, std::vector&lt; double &gt; &amp;solutionPoint)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> enum name</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a9ce3a82556ab016cdff94f032b19d6af">UpperBoundingSolver</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, UBS_USE useIn)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ad9c2c0ae5e137605da0f9588df694a52">UpperBoundingSolver</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, UBS_USE useIn)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ae75dea5b3107d53e3ffec3b0c18d7749">UpperBoundingSolver</a>()</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1c0659fdddc86e0528771ce8dd977f7e">UpperBoundingSolver</a>(const UpperBoundingSolver &amp;)</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
   <tr><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395a8c993825a2321788812ac88fa8666a34">USE_BAB</a> enum value</td><td class="entry"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></td><td class="entry"></td></tr>
@@ -134,7 +134,7 @@ $(document).ready(function(){initNavTree('classmaingo_1_1ubp_1_1_upper_bounding_
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1ubp_1_1_upper_bounding_solver.html b/doc/html/classmaingo_1_1ubp_1_1_upper_bounding_solver.html
index a0e027e97e7628475be543cd3c8a49f42e7e7a38..75874cc07ee5483b5d41630eac6c4829b38e7e3a 100644
--- a/doc/html/classmaingo_1_1ubp_1_1_upper_bounding_solver.html
+++ b/doc/html/classmaingo_1_1ubp_1_1_upper_bounding_solver.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::ubp::UpperBoundingSolver Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -107,13 +107,13 @@ Inheritance diagram for maingo::ubp::UpperBoundingSolver:</div>
  <div class="center">
   <img src="classmaingo_1_1ubp_1_1_upper_bounding_solver.png" usemap="#maingo::ubp::UpperBoundingSolver_map" alt=""/>
   <map id="maingo::ubp::UpperBoundingSolver_map" name="maingo::ubp::UpperBoundingSolver_map">
-<area href="classmaingo_1_1ubp_1_1_ubp_clp.html" title="Wrapper for handling the upper bounding problems by interfacing CLP." alt="maingo::ubp::UbpClp" shape="rect" coords="0,56,209,80"/>
-<area href="classmaingo_1_1ubp_1_1_ubp_cplex.html" title="Wrapper for handling the upper bounding problems by interfacing CPLEX." alt="maingo::ubp::UbpCplex" shape="rect" coords="219,56,428,80"/>
-<area href="classmaingo_1_1ubp_1_1_ubp_ipopt.html" title="Wrapper for handling the upper bounding problems by interfacing Ipopt." alt="maingo::ubp::UbpIpopt" shape="rect" coords="438,56,647,80"/>
-<area href="classmaingo_1_1ubp_1_1_ubp_knitro.html" title="Wrapper for handling the upper bounding problems by interfacing Knitro." alt="maingo::ubp::UbpKnitro" shape="rect" coords="657,56,866,80"/>
-<area href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html" title="Wrapper for handling the upper bounding problems by interfacing NLopt." alt="maingo::ubp::UbpNLopt" shape="rect" coords="876,56,1085,80"/>
-  </map>
-</div></div>
+<area href="classmaingo_1_1ubp_1_1_ubp_clp.html" title="Wrapper for handling the upper bounding problems by interfacing CLP. " alt="maingo::ubp::UbpClp" shape="rect" coords="0,56,209,80"/>
+<area href="classmaingo_1_1ubp_1_1_ubp_cplex.html" title="Wrapper for handling the upper bounding problems by interfacing CPLEX. " alt="maingo::ubp::UbpCplex" shape="rect" coords="219,56,428,80"/>
+<area href="classmaingo_1_1ubp_1_1_ubp_ipopt.html" title="Wrapper for handling the upper bounding problems by interfacing Ipopt. " alt="maingo::ubp::UbpIpopt" shape="rect" coords="438,56,647,80"/>
+<area href="classmaingo_1_1ubp_1_1_ubp_knitro.html" title="Wrapper for handling the upper bounding problems by interfacing Knitro. " alt="maingo::ubp::UbpKnitro" shape="rect" coords="657,56,866,80"/>
+<area href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html" title="Wrapper for handling the upper bounding problems by interfacing NLopt. " alt="maingo::ubp::UbpNLopt" shape="rect" coords="876,56,1085,80"/>
+</map>
+ </div></div>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
 Public Types</h2></td></tr>
@@ -125,9 +125,9 @@ Public Types</h2></td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:a9ce3a82556ab016cdff94f032b19d6af"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a9ce3a82556ab016cdff94f032b19d6af">UpperBoundingSolver</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, <a class="el" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="el" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn, std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *constraintPropertiesIn, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> useIn)</td></tr>
-<tr class="memdesc:a9ce3a82556ab016cdff94f032b19d6af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem and constructs an own copy of the directed acyclic graph.  <a href="#a9ce3a82556ab016cdff94f032b19d6af">More...</a><br /></td></tr>
-<tr class="separator:a9ce3a82556ab016cdff94f032b19d6af"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad9c2c0ae5e137605da0f9588df694a52"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ad9c2c0ae5e137605da0f9588df694a52">UpperBoundingSolver</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt; settingsIn, std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt; constraintPropertiesIn, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> useIn)</td></tr>
+<tr class="memdesc:ad9c2c0ae5e137605da0f9588df694a52"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, stores information on the problem and constructs an own copy of the directed acyclic graph.  <a href="#ad9c2c0ae5e137605da0f9588df694a52">More...</a><br /></td></tr>
+<tr class="separator:ad9c2c0ae5e137605da0f9588df694a52"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aa17ca0c5dbf33219148dc2fff3446357"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa17ca0c5dbf33219148dc2fff3446357">~UpperBoundingSolver</a> ()</td></tr>
 <tr class="memdesc:aa17ca0c5dbf33219148dc2fff3446357"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual destructor, only needed to make sure the correct destructor of the derived classes is called.  <a href="#aa17ca0c5dbf33219148dc2fff3446357">More...</a><br /></td></tr>
 <tr class="separator:aa17ca0c5dbf33219148dc2fff3446357"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -178,16 +178,16 @@ Protected Member Functions</h2></td></tr>
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
 Protected Attributes</h2></td></tr>
 <tr><td colspan="2"><div class="groupHeader">Pointers to several objects. Note that these are NOT const, since if we want to resolve with MAiNGO, the pointers have to change</div></td></tr>
-<tr class="memitem:a1b4e1d2ce3d3413c1c5d509d13ec752e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1_settings.html">Settings</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1b4e1d2ce3d3413c1c5d509d13ec752e">_maingoSettings</a></td></tr>
-<tr class="separator:a1b4e1d2ce3d3413c1c5d509d13ec752e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab436cb85b75f92ef42ca46adb87b83c0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmaingo_1_1_logger.html">Logger</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab436cb85b75f92ef42ca46adb87b83c0">_logger</a></td></tr>
-<tr class="separator:ab436cb85b75f92ef42ca46adb87b83c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4d7aaa4de8e2e6633b9064568961bc72"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4d7aaa4de8e2e6633b9064568961bc72">_maingoSettings</a></td></tr>
+<tr class="separator:a4d7aaa4de8e2e6633b9064568961bc72"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab76a699684d09100c63ec4ddcaa10456"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab76a699684d09100c63ec4ddcaa10456">_logger</a></td></tr>
+<tr class="separator:ab76a699684d09100c63ec4ddcaa10456"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ac9710c21359f1811dbdee779247fa701"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html">DagObj</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac9710c21359f1811dbdee779247fa701">_DAGobj</a></td></tr>
 <tr class="separator:ac9710c21359f1811dbdee779247fa701"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ac626a7b38249edde44afdbf721df0c79"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac626a7b38249edde44afdbf721df0c79">_intendedUse</a></td></tr>
 <tr class="separator:ac626a7b38249edde44afdbf721df0c79"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aae0c39f4b14cfb8a3c70a57b49f15e67"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aae0c39f4b14cfb8a3c70a57b49f15e67">_constraintProperties</a></td></tr>
-<tr class="separator:aae0c39f4b14cfb8a3c70a57b49f15e67"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a633d6c072f7388ade44ccebf3fa3c935"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a633d6c072f7388ade44ccebf3fa3c935">_constraintProperties</a></td></tr>
+<tr class="separator:a633d6c072f7388ade44ccebf3fa3c935"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr><td colspan="2"><div class="groupHeader">Internal variables for storing information on the problem</div></td></tr>
 <tr class="memitem:a42b77e82598864f05222b9dc415945a9"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a42b77e82598864f05222b9dc415945a9">_nvar</a></td></tr>
 <tr class="separator:a42b77e82598864f05222b9dc415945a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -242,8 +242,8 @@ Private Member Functions</h2></td></tr>
 </div>
 </div>
 <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a id="a9ce3a82556ab016cdff94f032b19d6af"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a9ce3a82556ab016cdff94f032b19d6af">&#9670;&nbsp;</a></span>UpperBoundingSolver() <span class="overload">[1/3]</span></h2>
+<a id="ad9c2c0ae5e137605da0f9588df694a52"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad9c2c0ae5e137605da0f9588df694a52">&#9670;&nbsp;</a></span>UpperBoundingSolver() <span class="overload">[1/3]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -293,19 +293,19 @@ Private Member Functions</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="structmaingo_1_1_settings.html">Settings</a> *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt;&#160;</td>
           <td class="paramname"><em>settingsIn</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="classmaingo_1_1_logger.html">Logger</a> *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt;&#160;</td>
           <td class="paramname"><em>loggerIn</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt;&#160;</td>
           <td class="paramname"><em>constraintPropertiesIn</em>, </td>
         </tr>
         <tr>
@@ -784,7 +784,7 @@ Private Member Functions</h2></td></tr>
 </dl>
 <dl class="section return"><dt>Returns</dt><dd>Return code, either SUBSOLVER_FEASIBLE or SUBSOLVER_INFEASIBLE, indicating whether the returned solutionPoint (!!) is feasible or not </dd></dl>
 
-<p>Reimplemented in <a class="el" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a6ddfc769b26441e3712ec56c5dcec7ba">maingo::ubp::UbpCplex</a>, <a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html#ab24d1e766d5bbc32fdaab11dbdd05ef2">maingo::ubp::UbpClp</a>, <a class="el" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a25aec304d6681184a572778f8a8c8379">maingo::ubp::UbpKnitro</a>, <a class="el" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#a1d566d058e7134be0305fed79d25be08">maingo::ubp::UbpIpopt</a>, and <a class="el" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a07be0f105dd3dbd86e6e91ccea83ce20">maingo::ubp::UbpNLopt</a>.</p>
+<p>Reimplemented in <a class="el" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a6ddfc769b26441e3712ec56c5dcec7ba">maingo::ubp::UbpCplex</a>, <a class="el" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a25aec304d6681184a572778f8a8c8379">maingo::ubp::UbpKnitro</a>, <a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html#ab24d1e766d5bbc32fdaab11dbdd05ef2">maingo::ubp::UbpClp</a>, <a class="el" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#a1d566d058e7134be0305fed79d25be08">maingo::ubp::UbpIpopt</a>, and <a class="el" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a07be0f105dd3dbd86e6e91ccea83ce20">maingo::ubp::UbpNLopt</a>.</p>
 
 </div>
 </div>
@@ -972,8 +972,8 @@ Private Member Functions</h2></td></tr>
 </div>
 </div>
 <h2 class="groupheader">Member Data Documentation</h2>
-<a id="aae0c39f4b14cfb8a3c70a57b49f15e67"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aae0c39f4b14cfb8a3c70a57b49f15e67">&#9670;&nbsp;</a></span>_constraintProperties</h2>
+<a id="a633d6c072f7388ade44ccebf3fa3c935"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a633d6c072f7388ade44ccebf3fa3c935">&#9670;&nbsp;</a></span>_constraintProperties</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -982,7 +982,7 @@ Private Member Functions</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">std::vector&lt;<a class="el" href="structmaingo_1_1_constraint.html">Constraint</a>&gt;* maingo::ubp::UpperBoundingSolver::_constraintProperties</td>
+          <td class="memname">std::shared_ptr&lt;std::vector&lt;<a class="el" href="structmaingo_1_1_constraint.html">Constraint</a>&gt; &gt; maingo::ubp::UpperBoundingSolver::_constraintProperties</td>
         </tr>
       </table>
   </td>
@@ -1037,12 +1037,12 @@ Private Member Functions</h2></td></tr>
   </tr>
 </table>
 </div><div class="memdoc">
-<p>object storing information about the intended use of this <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html" title="Base class for wrappers for handling the upper bounding problems.">UpperBoundingSolver</a> object </p>
+<p>object storing information about the intended use of this <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html" title="Base class for wrappers for handling the upper bounding problems. ">UpperBoundingSolver</a> object </p>
 
 </div>
 </div>
-<a id="ab436cb85b75f92ef42ca46adb87b83c0"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ab436cb85b75f92ef42ca46adb87b83c0">&#9670;&nbsp;</a></span>_logger</h2>
+<a id="ab76a699684d09100c63ec4ddcaa10456"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab76a699684d09100c63ec4ddcaa10456">&#9670;&nbsp;</a></span>_logger</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1051,7 +1051,7 @@ Private Member Functions</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classmaingo_1_1_logger.html">Logger</a>* maingo::ubp::UpperBoundingSolver::_logger</td>
+          <td class="memname">std::shared_ptr&lt;<a class="el" href="classmaingo_1_1_logger.html">Logger</a>&gt; maingo::ubp::UpperBoundingSolver::_logger</td>
         </tr>
       </table>
   </td>
@@ -1064,8 +1064,8 @@ Private Member Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="a1b4e1d2ce3d3413c1c5d509d13ec752e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a1b4e1d2ce3d3413c1c5d509d13ec752e">&#9670;&nbsp;</a></span>_maingoSettings</h2>
+<a id="a4d7aaa4de8e2e6633b9064568961bc72"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4d7aaa4de8e2e6633b9064568961bc72">&#9670;&nbsp;</a></span>_maingoSettings</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1074,7 +1074,7 @@ Private Member Functions</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="structmaingo_1_1_settings.html">Settings</a>* maingo::ubp::UpperBoundingSolver::_maingoSettings</td>
+          <td class="memname">std::shared_ptr&lt;<a class="el" href="structmaingo_1_1_settings.html">Settings</a>&gt; maingo::ubp::UpperBoundingSolver::_maingoSettings</td>
         </tr>
       </table>
   </td>
@@ -1272,8 +1272,8 @@ Private Member Functions</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this class was generated from the following files:<ul>
-<li>C:/Users/dobo01/maingo/inc/<a class="el" href="ubp_8h_source.html">ubp.h</a></li>
-<li>C:/Users/dobo01/maingo/src/<a class="el" href="ubp_8cpp.html">ubp.cpp</a></li>
+<li>C:/dobo01/maingo/inc/<a class="el" href="ubp_8h_source.html">ubp.h</a></li>
+<li>C:/dobo01/maingo/src/<a class="el" href="ubp_8cpp.html">ubp.cpp</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -1283,7 +1283,7 @@ Private Member Functions</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="namespacemaingo_1_1ubp.html">ubp</a></li><li class="navelem"><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">UpperBoundingSolver</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/classmaingo_1_1ubp_1_1_upper_bounding_solver.js b/doc/html/classmaingo_1_1ubp_1_1_upper_bounding_solver.js
index 8934c9dd4f62b7dc57b9fafa61e07106f4d35628..7f68a3bccdf002cdfca7e00da873d8e0408a6ea9 100644
--- a/doc/html/classmaingo_1_1ubp_1_1_upper_bounding_solver.js
+++ b/doc/html/classmaingo_1_1ubp_1_1_upper_bounding_solver.js
@@ -4,7 +4,7 @@ var classmaingo_1_1ubp_1_1_upper_bounding_solver =
       [ "USE_PRE", "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395aaf072b94cbf6e5d23d6b55bc2846a4e6", null ],
       [ "USE_BAB", "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395a8c993825a2321788812ac88fa8666a34", null ]
     ] ],
-    [ "UpperBoundingSolver", "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a9ce3a82556ab016cdff94f032b19d6af", null ],
+    [ "UpperBoundingSolver", "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ad9c2c0ae5e137605da0f9588df694a52", null ],
     [ "~UpperBoundingSolver", "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa17ca0c5dbf33219148dc2fff3446357", null ],
     [ "UpperBoundingSolver", "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ae75dea5b3107d53e3ffec3b0c18d7749", null ],
     [ "UpperBoundingSolver", "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1c0659fdddc86e0528771ce8dd977f7e", null ],
@@ -22,11 +22,11 @@ var classmaingo_1_1ubp_1_1_upper_bounding_solver =
     [ "multistart", "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac291c925f9007b90cbf09497a93d8239", null ],
     [ "operator=", "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#afa9dca36d7987121ddc0327e62dfdcf2", null ],
     [ "solve", "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4ac108083fde6741e77d7c0b231bd610", null ],
-    [ "_constraintProperties", "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aae0c39f4b14cfb8a3c70a57b49f15e67", null ],
+    [ "_constraintProperties", "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a633d6c072f7388ade44ccebf3fa3c935", null ],
     [ "_DAGobj", "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac9710c21359f1811dbdee779247fa701", null ],
     [ "_intendedUse", "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac626a7b38249edde44afdbf721df0c79", null ],
-    [ "_logger", "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab436cb85b75f92ef42ca46adb87b83c0", null ],
-    [ "_maingoSettings", "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1b4e1d2ce3d3413c1c5d509d13ec752e", null ],
+    [ "_logger", "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab76a699684d09100c63ec4ddcaa10456", null ],
+    [ "_maingoSettings", "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4d7aaa4de8e2e6633b9064568961bc72", null ],
     [ "_neq", "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a826673302ff22c211249640a0e924515", null ],
     [ "_nineq", "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2a4ed8977b38691844e43bb86ee86012", null ],
     [ "_nineqSquash", "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab774cf6400badf5cb3675dac2daf27bd", null ],
diff --git a/doc/html/constraint_8h.html b/doc/html/constraint_8h.html
index 4e46a140ff74fb6c7a785e72bd01523b338348a3..cff3998dc6b1b03dbcc6a05fe33669e214d711a3 100644
--- a/doc/html/constraint_8h.html
+++ b/doc/html/constraint_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/constraint.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/constraint.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -176,7 +176,7 @@ Enumerations</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="constraint_8h.html">constraint.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/constraint_8h_source.html b/doc/html/constraint_8h_source.html
index 8cd420349bda8995e0d95ce071d459c15241952c..cc3d27c9de4df19c5cbc3c38c4ab68b92a27978a 100644
--- a/doc/html/constraint_8h_source.html
+++ b/doc/html/constraint_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/constraint.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/constraint.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,65 +90,65 @@ $(document).ready(function(){initNavTree('constraint_8h_source.html','');});
 <div class="title">constraint.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="constraint_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file constraint.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing declaration of constraint used for storing properties,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *        indices, constness and name of a constraint</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ece">   30</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ece">PROBLEM_STRUCTURE</a> {</div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea6ef20a631ab5ecf8ea394e3fac0da92b">   31</a></span>&#160;    <a class="code" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea6ef20a631ab5ecf8ea394e3fac0da92b">LP</a> = 0, </div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea42d41aaf63d0c23502e376644eee9488">   32</a></span>&#160;    <a class="code" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea42d41aaf63d0c23502e376644eee9488">MIP</a>,    </div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea2984f944d36bfe0b9e7fd8b872ab3b7a">   33</a></span>&#160;    <a class="code" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea2984f944d36bfe0b9e7fd8b872ab3b7a">QP</a>,     </div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea0bfa87ed0fa2108171fba8ee039617da">   34</a></span>&#160;    <a class="code" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea0bfa87ed0fa2108171fba8ee039617da">MIQP</a>,   </div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea0d7b1cf896f4e2740742df1df01bd4e6">   35</a></span>&#160;    <a class="code" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea0d7b1cf896f4e2740742df1df01bd4e6">NLP</a>,    </div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4eceaa4af8d9b8ea0ae7f958dc3197fa5c932">   36</a></span>&#160;    <a class="code" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4eceaa4af8d9b8ea0ae7f958dc3197fa5c932">DNLP</a>,   </div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4eceae2416015e6faafb64141704d46b3336d">   37</a></span>&#160;    <a class="code" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4eceae2416015e6faafb64141704d46b3336d">MINLP</a>   </div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;};</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cff">   44</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cff">CONSTRAINT_TYPE</a> {</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa19ac253da82c7f431e902e1be9cc236d">   45</a></span>&#160;    <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa19ac253da82c7f431e902e1be9cc236d">OBJ</a> = 0,         </div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa2a2d5953a4091c4c7a47698a5a5bbfaa">   46</a></span>&#160;    <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa2a2d5953a4091c4c7a47698a5a5bbfaa">INEQ</a>,            </div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa5f02b52b5b416052d5545294adb30288">   47</a></span>&#160;    <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa5f02b52b5b416052d5545294adb30288">EQ</a>,              </div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffabcfee51ddb6ed7d3c74ba9aa6f11fc96">   48</a></span>&#160;    <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffabcfee51ddb6ed7d3c74ba9aa6f11fc96">INEQ_REL_ONLY</a>,   </div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffab931d88f14bc394968ab9e43265b58db">   49</a></span>&#160;    <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffab931d88f14bc394968ab9e43265b58db">EQ_REL_ONLY</a>,     </div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffacaec66b04e8cec2efaf72c40f4d4d60d">   50</a></span>&#160;    <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffacaec66b04e8cec2efaf72c40f4d4d60d">INEQ_SQUASH</a>,     </div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa3f418251b7df4d1f7abae45ec2c7120e">   51</a></span>&#160;    <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa3f418251b7df4d1f7abae45ec2c7120e">AUX_EQ_REL_ONLY</a>, </div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa58dc28c036216f9a14e602b625c1b500">   52</a></span>&#160;    <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa58dc28c036216f9a14e602b625c1b500">OUTPUT</a>,          </div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffaf84cd6db07e8c7447cb7d15446557031">   53</a></span>&#160;    <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffaf84cd6db07e8c7447cb7d15446557031">TYPE_UNKNOWN</a>     </div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;};</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5">   60</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5">CONSTRAINT_CONVEXITY</a> {</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5a409b78c0dd509a926ef1b3440410a04b">   61</a></span>&#160;    <a class="code" href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5a409b78c0dd509a926ef1b3440410a04b">CONV_NONE</a> = 0, </div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5a48e648e05429a27358521dd9b1ee5cb0">   62</a></span>&#160;    <a class="code" href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5a48e648e05429a27358521dd9b1ee5cb0">CONVEX</a>,        </div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5a4a5f73483bf025f9060c8ae1c39f2e8a">   63</a></span>&#160;    <a class="code" href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5a4a5f73483bf025f9060c8ae1c39f2e8a">CONCAVE</a>        </div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;};</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556">   70</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556">CONSTRAINT_MONOTONICITY</a> {</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556a3d1967d1d7970d402f5e5ab65b6506f3">   71</a></span>&#160;    <a class="code" href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556a3d1967d1d7970d402f5e5ab65b6506f3">MON_NONE</a> = 0, </div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556a8755ac3d60d24f246f2afd6ba8ab59d9">   72</a></span>&#160;    <a class="code" href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556a8755ac3d60d24f246f2afd6ba8ab59d9">INCR</a>,         </div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556a776a6ea773b9bf563eec732a7c59ce78">   73</a></span>&#160;    <a class="code" href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556a776a6ea773b9bf563eec732a7c59ce78">DECR</a>          </div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;};</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592">   81</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592">CONSTRAINT_DEPENDENCY</a> {</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592acfee03e4e055614895c428dd9f4902a6">   82</a></span>&#160;    <a class="code" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592acfee03e4e055614895c428dd9f4902a6">DEP_UNKNOWN</a> = 0, </div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592a548bd51fa74da094234483596a6b0933">   83</a></span>&#160;    <a class="code" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592a548bd51fa74da094234483596a6b0933">LINEAR</a>,          </div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592aaee4ec0f6a2b7adb51f538e7b9c1cf5a">   84</a></span>&#160;    <a class="code" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592aaee4ec0f6a2b7adb51f538e7b9c1cf5a">BILINEAR</a>,        </div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592a40c20210d66888659250ea4a9471677c">   85</a></span>&#160;    <a class="code" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592a40c20210d66888659250ea4a9471677c">QUADRATIC</a>,       </div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592aa25e5c3c1d625e9188448d1e61afe4e5">   86</a></span>&#160;    <a class="code" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592aa25e5c3c1d625e9188448d1e61afe4e5">POLYNOMIAL</a>,      </div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592ad851e0122baa7113a1beca227d21b8b1">   87</a></span>&#160;    <a class="code" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592ad851e0122baa7113a1beca227d21b8b1">RATIONAL</a>,        </div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592ae5fc3c0c5d379b66525987200d425036">   88</a></span>&#160;    <a class="code" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592ae5fc3c0c5d379b66525987200d425036">NONLINEAR</a>        </div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;};</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html">  101</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmaingo_1_1_constraint.html">Constraint</a> {</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#ad56325852b641d2f3eb557b0f6f161a6">  107</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint.html#ad56325852b641d2f3eb557b0f6f161a6">Constraint</a>():</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        <a class="code" href="structmaingo_1_1_constraint.html#a1965d26e79a4537ff38947721b4761a3">name</a>(<span class="stringliteral">&quot;&quot;</span>), <a class="code" href="structmaingo_1_1_constraint.html#ab73c06d8bf9488187e23e4ae1df6d317">constantValue</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#aec621f226b74a09c4579c4627f2844d8">type</a>(<a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cff">CONSTRAINT_TYPE</a>::<a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffaf84cd6db07e8c7447cb7d15446557031">TYPE_UNKNOWN</a>), <a class="code" href="structmaingo_1_1_constraint.html#ab64e0f8193d7cc112045eb16cf223d93">convexity</a>(<a class="code" href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5">CONSTRAINT_CONVEXITY</a>::<a class="code" href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5a409b78c0dd509a926ef1b3440410a04b">CONV_NONE</a>),</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        <a class="code" href="structmaingo_1_1_constraint.html#a90ed0a8aa176f6311588abe5af0a2581">monotonicity</a>(<a class="code" href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556">CONSTRAINT_MONOTONICITY</a>::<a class="code" href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556a3d1967d1d7970d402f5e5ab65b6506f3">MON_NONE</a>), <a class="code" href="structmaingo_1_1_constraint.html#af0f4e66a1a7b7156836487328fabf9c6">dependency</a>(<a class="code" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592">CONSTRAINT_DEPENDENCY</a>::<a class="code" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592acfee03e4e055614895c428dd9f4902a6">DEP_UNKNOWN</a>), <a class="code" href="structmaingo_1_1_constraint.html#aee74bed061fd79bcd83099f3628659a4">isConstant</a>(false),</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;        <a class="code" href="structmaingo_1_1_constraint.html#ac507234364f92a66f3b364637dee882b">isFeasible</a>(true), <a class="code" href="structmaingo_1_1_constraint.html#ac6f1cd30c698f3de45d00a6ea145cb61">indexOriginal</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#a605ac95bdc24a14f9eb78cdcb4496561">indexNonconstant</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#a8ac54f774d821d1719217c27d7cfebff">indexNonconstantUBP</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#a94843b5f555c22b913bdecf04df5b3c1">indexConstant</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#a909de1acfc0b0a295fe496c281dbb130">indexLinear</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#ad54e402d2c9796f2c74ca70e3f9110c1">indexNonlinear</a>(0),</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        <a class="code" href="structmaingo_1_1_constraint.html#a0737a38df2e9e635c200f6b7fa284dc9">indexType</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#a35f780dfe5b201d6fb8b9e475ef69901">indexTypeNonconstant</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#a53aa15e45bc19a32d03d11449b8608e3">indexTypeConstant</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#a626edd77588759b684f954fa68891798">nparticipatingVariables</a>(0) {}</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#a5d45d01e07187f636bf0b381c460d32e">  116</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint.html#a5d45d01e07187f636bf0b381c460d32e">Constraint</a>(<span class="keyword">const</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cff">CONSTRAINT_TYPE</a> typeIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> indexOriginalIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> indexTypeIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> indexNonconstantIn,</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;               <span class="keyword">const</span> <span class="keywordtype">unsigned</span> indexTypeNonconstantIn, <span class="keyword">const</span> std::string&amp; nameIn = <span class="stringliteral">&quot;&quot;</span>):</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;        <a class="code" href="structmaingo_1_1_constraint.html#a1965d26e79a4537ff38947721b4761a3">name</a>(nameIn),</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;        <a class="code" href="structmaingo_1_1_constraint.html#ab73c06d8bf9488187e23e4ae1df6d317">constantValue</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#aec621f226b74a09c4579c4627f2844d8">type</a>(typeIn), <a class="code" href="structmaingo_1_1_constraint.html#ab64e0f8193d7cc112045eb16cf223d93">convexity</a>(<a class="code" href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5">CONSTRAINT_CONVEXITY</a>::<a class="code" href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5a409b78c0dd509a926ef1b3440410a04b">CONV_NONE</a>),</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;        <a class="code" href="structmaingo_1_1_constraint.html#a90ed0a8aa176f6311588abe5af0a2581">monotonicity</a>(<a class="code" href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556">CONSTRAINT_MONOTONICITY</a>::<a class="code" href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556a3d1967d1d7970d402f5e5ab65b6506f3">MON_NONE</a>), <a class="code" href="structmaingo_1_1_constraint.html#af0f4e66a1a7b7156836487328fabf9c6">dependency</a>(<a class="code" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592">CONSTRAINT_DEPENDENCY</a>::<a class="code" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592acfee03e4e055614895c428dd9f4902a6">DEP_UNKNOWN</a>), <a class="code" href="structmaingo_1_1_constraint.html#aee74bed061fd79bcd83099f3628659a4">isConstant</a>(false),</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;        <a class="code" href="structmaingo_1_1_constraint.html#ac507234364f92a66f3b364637dee882b">isFeasible</a>(true), <a class="code" href="structmaingo_1_1_constraint.html#ac6f1cd30c698f3de45d00a6ea145cb61">indexOriginal</a>(indexOriginalIn), <a class="code" href="structmaingo_1_1_constraint.html#a605ac95bdc24a14f9eb78cdcb4496561">indexNonconstant</a>(indexNonconstantIn), <a class="code" href="structmaingo_1_1_constraint.html#a8ac54f774d821d1719217c27d7cfebff">indexNonconstantUBP</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#a94843b5f555c22b913bdecf04df5b3c1">indexConstant</a>(0),</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        <a class="code" href="structmaingo_1_1_constraint.html#a909de1acfc0b0a295fe496c281dbb130">indexLinear</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#ad54e402d2c9796f2c74ca70e3f9110c1">indexNonlinear</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#a0737a38df2e9e635c200f6b7fa284dc9">indexType</a>(indexTypeIn), <a class="code" href="structmaingo_1_1_constraint.html#a35f780dfe5b201d6fb8b9e475ef69901">indexTypeNonconstant</a>(indexTypeNonconstantIn), <a class="code" href="structmaingo_1_1_constraint.html#a53aa15e45bc19a32d03d11449b8608e3">indexTypeConstant</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#a626edd77588759b684f954fa68891798">nparticipatingVariables</a>(0)</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    {</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="structmaingo_1_1_constraint.html#a1965d26e79a4537ff38947721b4761a3">name</a> == <span class="stringliteral">&quot;&quot;</span>) {</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;            std::string str;</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;            <span class="keywordflow">switch</span> (typeIn) {</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa19ac253da82c7f431e902e1be9cc236d">OBJ</a>:</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;                    str = <span class="stringliteral">&quot;obj&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa2a2d5953a4091c4c7a47698a5a5bbfaa">INEQ</a>:</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;                    str = <span class="stringliteral">&quot;ineq&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa5f02b52b5b416052d5545294adb30288">EQ</a>:</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;                    str = <span class="stringliteral">&quot;eq&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffabcfee51ddb6ed7d3c74ba9aa6f11fc96">INEQ_REL_ONLY</a>:</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;                    str = <span class="stringliteral">&quot;relOnlyIneq&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffab931d88f14bc394968ab9e43265b58db">EQ_REL_ONLY</a>:</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;                    str = <span class="stringliteral">&quot;relOnlyEq&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffacaec66b04e8cec2efaf72c40f4d4d60d">INEQ_SQUASH</a>:</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;                    str = <span class="stringliteral">&quot;squashIneq&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa3f418251b7df4d1f7abae45ec2c7120e">AUX_EQ_REL_ONLY</a>:</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;                    str = <span class="stringliteral">&quot;auxRelOnlyEq&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa58dc28c036216f9a14e602b625c1b500">OUTPUT</a>:</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;                    str = <span class="stringliteral">&quot;output&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;                <span class="keywordflow">default</span>:</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;                    str = <span class="stringliteral">&quot;constraint&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;            }</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;            <a class="code" href="structmaingo_1_1_constraint.html#a1965d26e79a4537ff38947721b4761a3">name</a> = str;</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;        }</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    }</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#a472c03a2d70a7547d9307daf622ddda9">  162</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint.html#a472c03a2d70a7547d9307daf622ddda9">Constraint</a>(<span class="keyword">const</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cff">CONSTRAINT_TYPE</a> typeIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> indexOriginalIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> indexTypeIn,</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;               <span class="keyword">const</span> <span class="keywordtype">unsigned</span> indexConstantIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> indexTypeConstantIn, <span class="keyword">const</span> <span class="keywordtype">bool</span> isConstantIn,</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;               <span class="keyword">const</span> <span class="keywordtype">bool</span> isFeasibleIn, <span class="keyword">const</span> <span class="keywordtype">double</span> valueIn, <span class="keyword">const</span> std::string&amp; nameIn = <span class="stringliteral">&quot;&quot;</span>):</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;        <a class="code" href="structmaingo_1_1_constraint.html#a1965d26e79a4537ff38947721b4761a3">name</a>(nameIn),</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;        <a class="code" href="structmaingo_1_1_constraint.html#ab73c06d8bf9488187e23e4ae1df6d317">constantValue</a>(valueIn), <a class="code" href="structmaingo_1_1_constraint.html#aec621f226b74a09c4579c4627f2844d8">type</a>(typeIn), <a class="code" href="structmaingo_1_1_constraint.html#ab64e0f8193d7cc112045eb16cf223d93">convexity</a>(<a class="code" href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5">CONSTRAINT_CONVEXITY</a>::<a class="code" href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5a409b78c0dd509a926ef1b3440410a04b">CONV_NONE</a>),</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;        <a class="code" href="structmaingo_1_1_constraint.html#a90ed0a8aa176f6311588abe5af0a2581">monotonicity</a>(<a class="code" href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556">CONSTRAINT_MONOTONICITY</a>::<a class="code" href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556a3d1967d1d7970d402f5e5ab65b6506f3">MON_NONE</a>), <a class="code" href="structmaingo_1_1_constraint.html#af0f4e66a1a7b7156836487328fabf9c6">dependency</a>(<a class="code" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592">CONSTRAINT_DEPENDENCY</a>::<a class="code" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592acfee03e4e055614895c428dd9f4902a6">DEP_UNKNOWN</a>), <a class="code" href="structmaingo_1_1_constraint.html#aee74bed061fd79bcd83099f3628659a4">isConstant</a>(isConstantIn),</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;        <a class="code" href="structmaingo_1_1_constraint.html#ac507234364f92a66f3b364637dee882b">isFeasible</a>(isFeasibleIn), <a class="code" href="structmaingo_1_1_constraint.html#ac6f1cd30c698f3de45d00a6ea145cb61">indexOriginal</a>(indexOriginalIn), <a class="code" href="structmaingo_1_1_constraint.html#a605ac95bdc24a14f9eb78cdcb4496561">indexNonconstant</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#a8ac54f774d821d1719217c27d7cfebff">indexNonconstantUBP</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#a94843b5f555c22b913bdecf04df5b3c1">indexConstant</a>(indexConstantIn),</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;        <a class="code" href="structmaingo_1_1_constraint.html#a909de1acfc0b0a295fe496c281dbb130">indexLinear</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#ad54e402d2c9796f2c74ca70e3f9110c1">indexNonlinear</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#a0737a38df2e9e635c200f6b7fa284dc9">indexType</a>(indexTypeIn), <a class="code" href="structmaingo_1_1_constraint.html#a35f780dfe5b201d6fb8b9e475ef69901">indexTypeNonconstant</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#a53aa15e45bc19a32d03d11449b8608e3">indexTypeConstant</a>(indexTypeConstantIn), <a class="code" href="structmaingo_1_1_constraint.html#a626edd77588759b684f954fa68891798">nparticipatingVariables</a>(0)</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    {</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="structmaingo_1_1_constraint.html#a1965d26e79a4537ff38947721b4761a3">name</a> == <span class="stringliteral">&quot;&quot;</span>) {</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;            std::string str;</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;            <span class="keywordflow">switch</span> (typeIn) {</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa19ac253da82c7f431e902e1be9cc236d">OBJ</a>:</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;                    str = <span class="stringliteral">&quot;obj&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa2a2d5953a4091c4c7a47698a5a5bbfaa">INEQ</a>:</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;                    str = <span class="stringliteral">&quot;ineq&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa5f02b52b5b416052d5545294adb30288">EQ</a>:</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;                    str = <span class="stringliteral">&quot;eq&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffabcfee51ddb6ed7d3c74ba9aa6f11fc96">INEQ_REL_ONLY</a>:</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;                    str = <span class="stringliteral">&quot;relOnlyIneq&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffab931d88f14bc394968ab9e43265b58db">EQ_REL_ONLY</a>:</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;                    str = <span class="stringliteral">&quot;relOnlyEq&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffacaec66b04e8cec2efaf72c40f4d4d60d">INEQ_SQUASH</a>:</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;                    str = <span class="stringliteral">&quot;squashIneq&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa3f418251b7df4d1f7abae45ec2c7120e">AUX_EQ_REL_ONLY</a>:</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;                    str = <span class="stringliteral">&quot;auxRelOnlyEq&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa58dc28c036216f9a14e602b625c1b500">OUTPUT</a>:</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;                    str = <span class="stringliteral">&quot;output&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;                <span class="keywordflow">default</span>:</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;                    str = <span class="stringliteral">&quot;constraint&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;            }</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;            <a class="code" href="structmaingo_1_1_constraint.html#a1965d26e79a4537ff38947721b4761a3">name</a> = str;</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;        }</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;    }</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;    <a class="code" href="structmaingo_1_1_constraint.html#ad56325852b641d2f3eb557b0f6f161a6">Constraint</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1_constraint.html">Constraint</a>&amp;) = <span class="keywordflow">default</span>;                         </div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;    <a class="code" href="structmaingo_1_1_constraint.html">Constraint</a>&amp; <a class="code" href="structmaingo_1_1_constraint.html#a8dd2c5a8ca4f6978f6643b3212698852">operator=</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1_constraint.html">Constraint</a>&amp; constraintIn) = <span class="keywordflow">default</span>; </div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#a1965d26e79a4537ff38947721b4761a3">  209</a></span>&#160;    std::string <a class="code" href="structmaingo_1_1_constraint.html#a1965d26e79a4537ff38947721b4761a3">name</a>;                             </div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#ab73c06d8bf9488187e23e4ae1df6d317">  210</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structmaingo_1_1_constraint.html#ab73c06d8bf9488187e23e4ae1df6d317">constantValue</a>;                         </div><div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#a626edd77588759b684f954fa68891798">  211</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="structmaingo_1_1_constraint.html#a626edd77588759b684f954fa68891798">nparticipatingVariables</a>;             </div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#a975b6e0e75a3d025b9b26d4406deff1b">  212</a></span>&#160;    std::vector&lt;unsigned&gt; <a class="code" href="structmaingo_1_1_constraint.html#a975b6e0e75a3d025b9b26d4406deff1b">participatingVariables</a>; </div><div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#aec621f226b74a09c4579c4627f2844d8">  217</a></span>&#160;    <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cff">CONSTRAINT_TYPE</a> <a class="code" href="structmaingo_1_1_constraint.html#aec621f226b74a09c4579c4627f2844d8">type</a>;                 </div><div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#ab64e0f8193d7cc112045eb16cf223d93">  218</a></span>&#160;    <a class="code" href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5">CONSTRAINT_CONVEXITY</a> <a class="code" href="structmaingo_1_1_constraint.html#ab64e0f8193d7cc112045eb16cf223d93">convexity</a>;       </div><div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#a90ed0a8aa176f6311588abe5af0a2581">  219</a></span>&#160;    <a class="code" href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556">CONSTRAINT_MONOTONICITY</a> <a class="code" href="structmaingo_1_1_constraint.html#a90ed0a8aa176f6311588abe5af0a2581">monotonicity</a>; </div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#af0f4e66a1a7b7156836487328fabf9c6">  220</a></span>&#160;    <a class="code" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592">CONSTRAINT_DEPENDENCY</a> <a class="code" href="structmaingo_1_1_constraint.html#af0f4e66a1a7b7156836487328fabf9c6">dependency</a>;     </div><div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#aee74bed061fd79bcd83099f3628659a4">  221</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_constraint.html#aee74bed061fd79bcd83099f3628659a4">isConstant</a>;                      </div><div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#ac507234364f92a66f3b364637dee882b">  222</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_constraint.html#ac507234364f92a66f3b364637dee882b">isFeasible</a>;                      </div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#ac6f1cd30c698f3de45d00a6ea145cb61">  228</a></span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structmaingo_1_1_constraint.html#ac6f1cd30c698f3de45d00a6ea145cb61">indexOriginal</a>;        </div><div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#a605ac95bdc24a14f9eb78cdcb4496561">  229</a></span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structmaingo_1_1_constraint.html#a605ac95bdc24a14f9eb78cdcb4496561">indexNonconstant</a>;     </div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#a8ac54f774d821d1719217c27d7cfebff">  230</a></span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structmaingo_1_1_constraint.html#a8ac54f774d821d1719217c27d7cfebff">indexNonconstantUBP</a>;  </div><div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#a94843b5f555c22b913bdecf04df5b3c1">  231</a></span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structmaingo_1_1_constraint.html#a94843b5f555c22b913bdecf04df5b3c1">indexConstant</a>;        </div><div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#a909de1acfc0b0a295fe496c281dbb130">  232</a></span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structmaingo_1_1_constraint.html#a909de1acfc0b0a295fe496c281dbb130">indexLinear</a>;          </div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#ad54e402d2c9796f2c74ca70e3f9110c1">  233</a></span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structmaingo_1_1_constraint.html#ad54e402d2c9796f2c74ca70e3f9110c1">indexNonlinear</a>;       </div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#a0737a38df2e9e635c200f6b7fa284dc9">  234</a></span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structmaingo_1_1_constraint.html#a0737a38df2e9e635c200f6b7fa284dc9">indexType</a>;            </div><div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#a35f780dfe5b201d6fb8b9e475ef69901">  235</a></span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structmaingo_1_1_constraint.html#a35f780dfe5b201d6fb8b9e475ef69901">indexTypeNonconstant</a>; </div><div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#a53aa15e45bc19a32d03d11449b8608e3">  236</a></span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structmaingo_1_1_constraint.html#a53aa15e45bc19a32d03d11449b8608e3">indexTypeConstant</a>;    </div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;};</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="namespacemaingo_html_a1fb378d6003f3c76e1674673a2e64cffa19ac253da82c7f431e902e1be9cc236d"><div class="ttname"><a href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa19ac253da82c7f431e902e1be9cc236d">maingo::OBJ</a></div><div class="ttdef"><b>Definition:</b> constraint.h:45</div></div>
-<div class="ttc" id="structmaingo_1_1_constraint_html_a53aa15e45bc19a32d03d11449b8608e3"><div class="ttname"><a href="structmaingo_1_1_constraint.html#a53aa15e45bc19a32d03d11449b8608e3">maingo::Constraint::indexTypeConstant</a></div><div class="ttdeci">unsigned int indexTypeConstant</div><div class="ttdef"><b>Definition:</b> constraint.h:236</div></div>
-<div class="ttc" id="namespacemaingo_html_a1fb378d6003f3c76e1674673a2e64cffaf84cd6db07e8c7447cb7d15446557031"><div class="ttname"><a href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffaf84cd6db07e8c7447cb7d15446557031">maingo::TYPE_UNKNOWN</a></div><div class="ttdef"><b>Definition:</b> constraint.h:53</div></div>
-<div class="ttc" id="namespacemaingo_html_ab2f406d1eb0027c320d3705f954e4592acfee03e4e055614895c428dd9f4902a6"><div class="ttname"><a href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592acfee03e4e055614895c428dd9f4902a6">maingo::DEP_UNKNOWN</a></div><div class="ttdef"><b>Definition:</b> constraint.h:82</div></div>
-<div class="ttc" id="namespacemaingo_html_a5adb287f73598fd8ec0928c8f3d127a5a409b78c0dd509a926ef1b3440410a04b"><div class="ttname"><a href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5a409b78c0dd509a926ef1b3440410a04b">maingo::CONV_NONE</a></div><div class="ttdef"><b>Definition:</b> constraint.h:61</div></div>
-<div class="ttc" id="structmaingo_1_1_constraint_html_ac6f1cd30c698f3de45d00a6ea145cb61"><div class="ttname"><a href="structmaingo_1_1_constraint.html#ac6f1cd30c698f3de45d00a6ea145cb61">maingo::Constraint::indexOriginal</a></div><div class="ttdeci">unsigned int indexOriginal</div><div class="ttdef"><b>Definition:</b> constraint.h:228</div></div>
-<div class="ttc" id="namespacemaingo_html_a1fb378d6003f3c76e1674673a2e64cffa2a2d5953a4091c4c7a47698a5a5bbfaa"><div class="ttname"><a href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa2a2d5953a4091c4c7a47698a5a5bbfaa">maingo::INEQ</a></div><div class="ttdef"><b>Definition:</b> constraint.h:46</div></div>
-<div class="ttc" id="namespacemaingo_html_af7f79f3a80779720285a182fb0fd4ecea0d7b1cf896f4e2740742df1df01bd4e6"><div class="ttname"><a href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea0d7b1cf896f4e2740742df1df01bd4e6">maingo::NLP</a></div><div class="ttdef"><b>Definition:</b> constraint.h:35</div></div>
-<div class="ttc" id="namespacemaingo_html_ab2f406d1eb0027c320d3705f954e4592aaee4ec0f6a2b7adb51f538e7b9c1cf5a"><div class="ttname"><a href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592aaee4ec0f6a2b7adb51f538e7b9c1cf5a">maingo::BILINEAR</a></div><div class="ttdef"><b>Definition:</b> constraint.h:84</div></div>
-<div class="ttc" id="namespacemaingo_html_ad9c47002281f89b9efdfaa30e672c556a8755ac3d60d24f246f2afd6ba8ab59d9"><div class="ttname"><a href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556a8755ac3d60d24f246f2afd6ba8ab59d9">maingo::INCR</a></div><div class="ttdef"><b>Definition:</b> constraint.h:72</div></div>
-<div class="ttc" id="namespacemaingo_html_a5adb287f73598fd8ec0928c8f3d127a5"><div class="ttname"><a href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5">maingo::CONSTRAINT_CONVEXITY</a></div><div class="ttdeci">CONSTRAINT_CONVEXITY</div><div class="ttdoc">Enum for representing the constraint convexity.</div><div class="ttdef"><b>Definition:</b> constraint.h:60</div></div>
-<div class="ttc" id="namespacemaingo_html_a1fb378d6003f3c76e1674673a2e64cff"><div class="ttname"><a href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cff">maingo::CONSTRAINT_TYPE</a></div><div class="ttdeci">CONSTRAINT_TYPE</div><div class="ttdoc">Enum for representing the constraint type.</div><div class="ttdef"><b>Definition:</b> constraint.h:44</div></div>
-<div class="ttc" id="namespacemaingo_html_af7f79f3a80779720285a182fb0fd4eceaa4af8d9b8ea0ae7f958dc3197fa5c932"><div class="ttname"><a href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4eceaa4af8d9b8ea0ae7f958dc3197fa5c932">maingo::DNLP</a></div><div class="ttdef"><b>Definition:</b> constraint.h:36</div></div>
-<div class="ttc" id="structmaingo_1_1_constraint_html_af0f4e66a1a7b7156836487328fabf9c6"><div class="ttname"><a href="structmaingo_1_1_constraint.html#af0f4e66a1a7b7156836487328fabf9c6">maingo::Constraint::dependency</a></div><div class="ttdeci">CONSTRAINT_DEPENDENCY dependency</div><div class="ttdef"><b>Definition:</b> constraint.h:220</div></div>
-<div class="ttc" id="structmaingo_1_1_constraint_html_a0737a38df2e9e635c200f6b7fa284dc9"><div class="ttname"><a href="structmaingo_1_1_constraint.html#a0737a38df2e9e635c200f6b7fa284dc9">maingo::Constraint::indexType</a></div><div class="ttdeci">unsigned int indexType</div><div class="ttdef"><b>Definition:</b> constraint.h:234</div></div>
-<div class="ttc" id="structmaingo_1_1_constraint_html_a909de1acfc0b0a295fe496c281dbb130"><div class="ttname"><a href="structmaingo_1_1_constraint.html#a909de1acfc0b0a295fe496c281dbb130">maingo::Constraint::indexLinear</a></div><div class="ttdeci">unsigned int indexLinear</div><div class="ttdef"><b>Definition:</b> constraint.h:232</div></div>
-<div class="ttc" id="structmaingo_1_1_constraint_html_aee74bed061fd79bcd83099f3628659a4"><div class="ttname"><a href="structmaingo_1_1_constraint.html#aee74bed061fd79bcd83099f3628659a4">maingo::Constraint::isConstant</a></div><div class="ttdeci">bool isConstant</div><div class="ttdef"><b>Definition:</b> constraint.h:221</div></div>
-<div class="ttc" id="structmaingo_1_1_constraint_html"><div class="ttname"><a href="structmaingo_1_1_constraint.html">maingo::Constraint</a></div><div class="ttdoc">Struct for storing information about constraints.</div><div class="ttdef"><b>Definition:</b> constraint.h:101</div></div>
-<div class="ttc" id="structmaingo_1_1_constraint_html_a94843b5f555c22b913bdecf04df5b3c1"><div class="ttname"><a href="structmaingo_1_1_constraint.html#a94843b5f555c22b913bdecf04df5b3c1">maingo::Constraint::indexConstant</a></div><div class="ttdeci">unsigned int indexConstant</div><div class="ttdef"><b>Definition:</b> constraint.h:231</div></div>
-<div class="ttc" id="structmaingo_1_1_constraint_html_a35f780dfe5b201d6fb8b9e475ef69901"><div class="ttname"><a href="structmaingo_1_1_constraint.html#a35f780dfe5b201d6fb8b9e475ef69901">maingo::Constraint::indexTypeNonconstant</a></div><div class="ttdeci">unsigned int indexTypeNonconstant</div><div class="ttdef"><b>Definition:</b> constraint.h:235</div></div>
-<div class="ttc" id="namespacemaingo_html_ab2f406d1eb0027c320d3705f954e4592ad851e0122baa7113a1beca227d21b8b1"><div class="ttname"><a href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592ad851e0122baa7113a1beca227d21b8b1">maingo::RATIONAL</a></div><div class="ttdef"><b>Definition:</b> constraint.h:87</div></div>
-<div class="ttc" id="structmaingo_1_1_constraint_html_ad56325852b641d2f3eb557b0f6f161a6"><div class="ttname"><a href="structmaingo_1_1_constraint.html#ad56325852b641d2f3eb557b0f6f161a6">maingo::Constraint::Constraint</a></div><div class="ttdeci">Constraint()</div><div class="ttdoc">Default conststructor.</div><div class="ttdef"><b>Definition:</b> constraint.h:107</div></div>
-<div class="ttc" id="structmaingo_1_1_constraint_html_ac507234364f92a66f3b364637dee882b"><div class="ttname"><a href="structmaingo_1_1_constraint.html#ac507234364f92a66f3b364637dee882b">maingo::Constraint::isFeasible</a></div><div class="ttdeci">bool isFeasible</div><div class="ttdef"><b>Definition:</b> constraint.h:222</div></div>
-<div class="ttc" id="namespacemaingo_html_a1fb378d6003f3c76e1674673a2e64cffa3f418251b7df4d1f7abae45ec2c7120e"><div class="ttname"><a href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa3f418251b7df4d1f7abae45ec2c7120e">maingo::AUX_EQ_REL_ONLY</a></div><div class="ttdef"><b>Definition:</b> constraint.h:51</div></div>
-<div class="ttc" id="namespacemaingo_html_ab2f406d1eb0027c320d3705f954e4592"><div class="ttname"><a href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592">maingo::CONSTRAINT_DEPENDENCY</a></div><div class="ttdeci">CONSTRAINT_DEPENDENCY</div><div class="ttdoc">Enum for representing the constraint dependency. Note that the dependency is increasing meaning that ...</div><div class="ttdef"><b>Definition:</b> constraint.h:81</div></div>
-<div class="ttc" id="namespacemaingo_html_a5adb287f73598fd8ec0928c8f3d127a5a4a5f73483bf025f9060c8ae1c39f2e8a"><div class="ttname"><a href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5a4a5f73483bf025f9060c8ae1c39f2e8a">maingo::CONCAVE</a></div><div class="ttdef"><b>Definition:</b> constraint.h:63</div></div>
-<div class="ttc" id="namespacemaingo_html_af7f79f3a80779720285a182fb0fd4ecea0bfa87ed0fa2108171fba8ee039617da"><div class="ttname"><a href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea0bfa87ed0fa2108171fba8ee039617da">maingo::MIQP</a></div><div class="ttdef"><b>Definition:</b> constraint.h:34</div></div>
-<div class="ttc" id="namespacemaingo_html_a1fb378d6003f3c76e1674673a2e64cffa5f02b52b5b416052d5545294adb30288"><div class="ttname"><a href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa5f02b52b5b416052d5545294adb30288">maingo::EQ</a></div><div class="ttdef"><b>Definition:</b> constraint.h:47</div></div>
-<div class="ttc" id="structmaingo_1_1_constraint_html_a8ac54f774d821d1719217c27d7cfebff"><div class="ttname"><a href="structmaingo_1_1_constraint.html#a8ac54f774d821d1719217c27d7cfebff">maingo::Constraint::indexNonconstantUBP</a></div><div class="ttdeci">unsigned int indexNonconstantUBP</div><div class="ttdef"><b>Definition:</b> constraint.h:230</div></div>
-<div class="ttc" id="structmaingo_1_1_constraint_html_a975b6e0e75a3d025b9b26d4406deff1b"><div class="ttname"><a href="structmaingo_1_1_constraint.html#a975b6e0e75a3d025b9b26d4406deff1b">maingo::Constraint::participatingVariables</a></div><div class="ttdeci">std::vector&lt; unsigned &gt; participatingVariables</div><div class="ttdef"><b>Definition:</b> constraint.h:212</div></div>
-<div class="ttc" id="namespacemaingo_html_af7f79f3a80779720285a182fb0fd4ecea2984f944d36bfe0b9e7fd8b872ab3b7a"><div class="ttname"><a href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea2984f944d36bfe0b9e7fd8b872ab3b7a">maingo::QP</a></div><div class="ttdef"><b>Definition:</b> constraint.h:33</div></div>
-<div class="ttc" id="namespacemaingo_html_ab2f406d1eb0027c320d3705f954e4592aa25e5c3c1d625e9188448d1e61afe4e5"><div class="ttname"><a href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592aa25e5c3c1d625e9188448d1e61afe4e5">maingo::POLYNOMIAL</a></div><div class="ttdef"><b>Definition:</b> constraint.h:86</div></div>
-<div class="ttc" id="namespacemaingo_html_af7f79f3a80779720285a182fb0fd4eceae2416015e6faafb64141704d46b3336d"><div class="ttname"><a href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4eceae2416015e6faafb64141704d46b3336d">maingo::MINLP</a></div><div class="ttdef"><b>Definition:</b> constraint.h:37</div></div>
-<div class="ttc" id="structmaingo_1_1_constraint_html_ab73c06d8bf9488187e23e4ae1df6d317"><div class="ttname"><a href="structmaingo_1_1_constraint.html#ab73c06d8bf9488187e23e4ae1df6d317">maingo::Constraint::constantValue</a></div><div class="ttdeci">double constantValue</div><div class="ttdef"><b>Definition:</b> constraint.h:210</div></div>
-<div class="ttc" id="namespacemaingo_html_ab2f406d1eb0027c320d3705f954e4592ae5fc3c0c5d379b66525987200d425036"><div class="ttname"><a href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592ae5fc3c0c5d379b66525987200d425036">maingo::NONLINEAR</a></div><div class="ttdef"><b>Definition:</b> constraint.h:88</div></div>
-<div class="ttc" id="namespacemaingo_html_a1fb378d6003f3c76e1674673a2e64cffabcfee51ddb6ed7d3c74ba9aa6f11fc96"><div class="ttname"><a href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffabcfee51ddb6ed7d3c74ba9aa6f11fc96">maingo::INEQ_REL_ONLY</a></div><div class="ttdef"><b>Definition:</b> constraint.h:48</div></div>
-<div class="ttc" id="namespacemaingo_html_af7f79f3a80779720285a182fb0fd4ece"><div class="ttname"><a href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ece">maingo::PROBLEM_STRUCTURE</a></div><div class="ttdeci">PROBLEM_STRUCTURE</div><div class="ttdoc">Enum for representing the problem structure.</div><div class="ttdef"><b>Definition:</b> constraint.h:30</div></div>
+<a href="constraint_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ece">   25</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ece">PROBLEM_STRUCTURE</a> {</div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea6ef20a631ab5ecf8ea394e3fac0da92b">   26</a></span>&#160;    <a class="code" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea6ef20a631ab5ecf8ea394e3fac0da92b">LP</a> = 0, </div><div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea42d41aaf63d0c23502e376644eee9488">   27</a></span>&#160;    <a class="code" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea42d41aaf63d0c23502e376644eee9488">MIP</a>,    </div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea2984f944d36bfe0b9e7fd8b872ab3b7a">   28</a></span>&#160;    <a class="code" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea2984f944d36bfe0b9e7fd8b872ab3b7a">QP</a>,     </div><div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea0bfa87ed0fa2108171fba8ee039617da">   29</a></span>&#160;    <a class="code" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea0bfa87ed0fa2108171fba8ee039617da">MIQP</a>,   </div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea0d7b1cf896f4e2740742df1df01bd4e6">   30</a></span>&#160;    <a class="code" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea0d7b1cf896f4e2740742df1df01bd4e6">NLP</a>,    </div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4eceaa4af8d9b8ea0ae7f958dc3197fa5c932">   31</a></span>&#160;    <a class="code" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4eceaa4af8d9b8ea0ae7f958dc3197fa5c932">DNLP</a>,   </div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4eceae2416015e6faafb64141704d46b3336d">   32</a></span>&#160;    <a class="code" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4eceae2416015e6faafb64141704d46b3336d">MINLP</a>   </div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;};</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cff">   39</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cff">CONSTRAINT_TYPE</a> {</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa19ac253da82c7f431e902e1be9cc236d">   40</a></span>&#160;    <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa19ac253da82c7f431e902e1be9cc236d">OBJ</a> = 0,         </div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa2a2d5953a4091c4c7a47698a5a5bbfaa">   41</a></span>&#160;    <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa2a2d5953a4091c4c7a47698a5a5bbfaa">INEQ</a>,            </div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa5f02b52b5b416052d5545294adb30288">   42</a></span>&#160;    <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa5f02b52b5b416052d5545294adb30288">EQ</a>,              </div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffabcfee51ddb6ed7d3c74ba9aa6f11fc96">   43</a></span>&#160;    <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffabcfee51ddb6ed7d3c74ba9aa6f11fc96">INEQ_REL_ONLY</a>,   </div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffab931d88f14bc394968ab9e43265b58db">   44</a></span>&#160;    <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffab931d88f14bc394968ab9e43265b58db">EQ_REL_ONLY</a>,     </div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffacaec66b04e8cec2efaf72c40f4d4d60d">   45</a></span>&#160;    <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffacaec66b04e8cec2efaf72c40f4d4d60d">INEQ_SQUASH</a>,     </div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa3f418251b7df4d1f7abae45ec2c7120e">   46</a></span>&#160;    <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa3f418251b7df4d1f7abae45ec2c7120e">AUX_EQ_REL_ONLY</a>, </div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa58dc28c036216f9a14e602b625c1b500">   47</a></span>&#160;    <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa58dc28c036216f9a14e602b625c1b500">OUTPUT</a>,          </div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffaf84cd6db07e8c7447cb7d15446557031">   48</a></span>&#160;    <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffaf84cd6db07e8c7447cb7d15446557031">TYPE_UNKNOWN</a>     </div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;};</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5">   55</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5">CONSTRAINT_CONVEXITY</a> {</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5a409b78c0dd509a926ef1b3440410a04b">   56</a></span>&#160;    <a class="code" href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5a409b78c0dd509a926ef1b3440410a04b">CONV_NONE</a> = 0, </div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5a48e648e05429a27358521dd9b1ee5cb0">   57</a></span>&#160;    <a class="code" href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5a48e648e05429a27358521dd9b1ee5cb0">CONVEX</a>,        </div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5a4a5f73483bf025f9060c8ae1c39f2e8a">   58</a></span>&#160;    <a class="code" href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5a4a5f73483bf025f9060c8ae1c39f2e8a">CONCAVE</a>        </div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;};</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556">   65</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556">CONSTRAINT_MONOTONICITY</a> {</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556a3d1967d1d7970d402f5e5ab65b6506f3">   66</a></span>&#160;    <a class="code" href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556a3d1967d1d7970d402f5e5ab65b6506f3">MON_NONE</a> = 0, </div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556a8755ac3d60d24f246f2afd6ba8ab59d9">   67</a></span>&#160;    <a class="code" href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556a8755ac3d60d24f246f2afd6ba8ab59d9">INCR</a>,         </div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556a776a6ea773b9bf563eec732a7c59ce78">   68</a></span>&#160;    <a class="code" href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556a776a6ea773b9bf563eec732a7c59ce78">DECR</a>          </div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;};</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592">   76</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592">CONSTRAINT_DEPENDENCY</a> {</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592acfee03e4e055614895c428dd9f4902a6">   77</a></span>&#160;    <a class="code" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592acfee03e4e055614895c428dd9f4902a6">DEP_UNKNOWN</a> = 0, </div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592a548bd51fa74da094234483596a6b0933">   78</a></span>&#160;    <a class="code" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592a548bd51fa74da094234483596a6b0933">LINEAR</a>,          </div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592aaee4ec0f6a2b7adb51f538e7b9c1cf5a">   79</a></span>&#160;    <a class="code" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592aaee4ec0f6a2b7adb51f538e7b9c1cf5a">BILINEAR</a>,        </div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592a40c20210d66888659250ea4a9471677c">   80</a></span>&#160;    <a class="code" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592a40c20210d66888659250ea4a9471677c">QUADRATIC</a>,       </div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592aa25e5c3c1d625e9188448d1e61afe4e5">   81</a></span>&#160;    <a class="code" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592aa25e5c3c1d625e9188448d1e61afe4e5">POLYNOMIAL</a>,      </div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592ad851e0122baa7113a1beca227d21b8b1">   82</a></span>&#160;    <a class="code" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592ad851e0122baa7113a1beca227d21b8b1">RATIONAL</a>,        </div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592ae5fc3c0c5d379b66525987200d425036">   83</a></span>&#160;    <a class="code" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592ae5fc3c0c5d379b66525987200d425036">NONLINEAR</a>        </div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;};</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html">   96</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmaingo_1_1_constraint.html">Constraint</a> {</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#ad56325852b641d2f3eb557b0f6f161a6">  102</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint.html#ad56325852b641d2f3eb557b0f6f161a6">Constraint</a>():</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        <a class="code" href="structmaingo_1_1_constraint.html#a1965d26e79a4537ff38947721b4761a3">name</a>(<span class="stringliteral">&quot;&quot;</span>), <a class="code" href="structmaingo_1_1_constraint.html#ab73c06d8bf9488187e23e4ae1df6d317">constantValue</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#aec621f226b74a09c4579c4627f2844d8">type</a>(<a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cff">CONSTRAINT_TYPE</a>::<a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffaf84cd6db07e8c7447cb7d15446557031">TYPE_UNKNOWN</a>), <a class="code" href="structmaingo_1_1_constraint.html#ab64e0f8193d7cc112045eb16cf223d93">convexity</a>(<a class="code" href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5">CONSTRAINT_CONVEXITY</a>::<a class="code" href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5a409b78c0dd509a926ef1b3440410a04b">CONV_NONE</a>),</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;        <a class="code" href="structmaingo_1_1_constraint.html#a90ed0a8aa176f6311588abe5af0a2581">monotonicity</a>(<a class="code" href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556">CONSTRAINT_MONOTONICITY</a>::<a class="code" href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556a3d1967d1d7970d402f5e5ab65b6506f3">MON_NONE</a>), <a class="code" href="structmaingo_1_1_constraint.html#af0f4e66a1a7b7156836487328fabf9c6">dependency</a>(<a class="code" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592">CONSTRAINT_DEPENDENCY</a>::<a class="code" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592acfee03e4e055614895c428dd9f4902a6">DEP_UNKNOWN</a>), <a class="code" href="structmaingo_1_1_constraint.html#aee74bed061fd79bcd83099f3628659a4">isConstant</a>(false),</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;        <a class="code" href="structmaingo_1_1_constraint.html#ac507234364f92a66f3b364637dee882b">isFeasible</a>(true), <a class="code" href="structmaingo_1_1_constraint.html#ac6f1cd30c698f3de45d00a6ea145cb61">indexOriginal</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#a605ac95bdc24a14f9eb78cdcb4496561">indexNonconstant</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#a8ac54f774d821d1719217c27d7cfebff">indexNonconstantUBP</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#a94843b5f555c22b913bdecf04df5b3c1">indexConstant</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#a909de1acfc0b0a295fe496c281dbb130">indexLinear</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#ad54e402d2c9796f2c74ca70e3f9110c1">indexNonlinear</a>(0),</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;        <a class="code" href="structmaingo_1_1_constraint.html#a0737a38df2e9e635c200f6b7fa284dc9">indexType</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#a35f780dfe5b201d6fb8b9e475ef69901">indexTypeNonconstant</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#a53aa15e45bc19a32d03d11449b8608e3">indexTypeConstant</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#a626edd77588759b684f954fa68891798">nparticipatingVariables</a>(0) {}</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#a5d45d01e07187f636bf0b381c460d32e">  111</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint.html#a5d45d01e07187f636bf0b381c460d32e">Constraint</a>(<span class="keyword">const</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cff">CONSTRAINT_TYPE</a> typeIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> indexOriginalIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> indexTypeIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> indexNonconstantIn,</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;               <span class="keyword">const</span> <span class="keywordtype">unsigned</span> indexTypeNonconstantIn, <span class="keyword">const</span> std::string&amp; nameIn = <span class="stringliteral">&quot;&quot;</span>):</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        <a class="code" href="structmaingo_1_1_constraint.html#a1965d26e79a4537ff38947721b4761a3">name</a>(nameIn),</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        <a class="code" href="structmaingo_1_1_constraint.html#ab73c06d8bf9488187e23e4ae1df6d317">constantValue</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#aec621f226b74a09c4579c4627f2844d8">type</a>(typeIn), <a class="code" href="structmaingo_1_1_constraint.html#ab64e0f8193d7cc112045eb16cf223d93">convexity</a>(<a class="code" href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5">CONSTRAINT_CONVEXITY</a>::<a class="code" href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5a409b78c0dd509a926ef1b3440410a04b">CONV_NONE</a>),</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        <a class="code" href="structmaingo_1_1_constraint.html#a90ed0a8aa176f6311588abe5af0a2581">monotonicity</a>(<a class="code" href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556">CONSTRAINT_MONOTONICITY</a>::<a class="code" href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556a3d1967d1d7970d402f5e5ab65b6506f3">MON_NONE</a>), <a class="code" href="structmaingo_1_1_constraint.html#af0f4e66a1a7b7156836487328fabf9c6">dependency</a>(<a class="code" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592">CONSTRAINT_DEPENDENCY</a>::<a class="code" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592acfee03e4e055614895c428dd9f4902a6">DEP_UNKNOWN</a>), <a class="code" href="structmaingo_1_1_constraint.html#aee74bed061fd79bcd83099f3628659a4">isConstant</a>(false),</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;        <a class="code" href="structmaingo_1_1_constraint.html#ac507234364f92a66f3b364637dee882b">isFeasible</a>(true), <a class="code" href="structmaingo_1_1_constraint.html#ac6f1cd30c698f3de45d00a6ea145cb61">indexOriginal</a>(indexOriginalIn), <a class="code" href="structmaingo_1_1_constraint.html#a605ac95bdc24a14f9eb78cdcb4496561">indexNonconstant</a>(indexNonconstantIn), <a class="code" href="structmaingo_1_1_constraint.html#a8ac54f774d821d1719217c27d7cfebff">indexNonconstantUBP</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#a94843b5f555c22b913bdecf04df5b3c1">indexConstant</a>(0),</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        <a class="code" href="structmaingo_1_1_constraint.html#a909de1acfc0b0a295fe496c281dbb130">indexLinear</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#ad54e402d2c9796f2c74ca70e3f9110c1">indexNonlinear</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#a0737a38df2e9e635c200f6b7fa284dc9">indexType</a>(indexTypeIn), <a class="code" href="structmaingo_1_1_constraint.html#a35f780dfe5b201d6fb8b9e475ef69901">indexTypeNonconstant</a>(indexTypeNonconstantIn), <a class="code" href="structmaingo_1_1_constraint.html#a53aa15e45bc19a32d03d11449b8608e3">indexTypeConstant</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#a626edd77588759b684f954fa68891798">nparticipatingVariables</a>(0)</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    {</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="structmaingo_1_1_constraint.html#a1965d26e79a4537ff38947721b4761a3">name</a> == <span class="stringliteral">&quot;&quot;</span>) {</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;            std::string str;</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;            <span class="keywordflow">switch</span> (typeIn) {</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa19ac253da82c7f431e902e1be9cc236d">OBJ</a>:</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;                    str = <span class="stringliteral">&quot;obj&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa2a2d5953a4091c4c7a47698a5a5bbfaa">INEQ</a>:</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;                    str = <span class="stringliteral">&quot;ineq&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa5f02b52b5b416052d5545294adb30288">EQ</a>:</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;                    str = <span class="stringliteral">&quot;eq&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffabcfee51ddb6ed7d3c74ba9aa6f11fc96">INEQ_REL_ONLY</a>:</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;                    str = <span class="stringliteral">&quot;relOnlyIneq&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffab931d88f14bc394968ab9e43265b58db">EQ_REL_ONLY</a>:</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;                    str = <span class="stringliteral">&quot;relOnlyEq&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffacaec66b04e8cec2efaf72c40f4d4d60d">INEQ_SQUASH</a>:</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;                    str = <span class="stringliteral">&quot;squashIneq&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa3f418251b7df4d1f7abae45ec2c7120e">AUX_EQ_REL_ONLY</a>:</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;                    str = <span class="stringliteral">&quot;auxRelOnlyEq&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa58dc28c036216f9a14e602b625c1b500">OUTPUT</a>:</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;                    str = <span class="stringliteral">&quot;output&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;                <span class="keywordflow">default</span>:</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;                    str = <span class="stringliteral">&quot;constraint&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;            }</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;            <a class="code" href="structmaingo_1_1_constraint.html#a1965d26e79a4537ff38947721b4761a3">name</a> = str;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        }</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    }</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#a472c03a2d70a7547d9307daf622ddda9">  157</a></span>&#160;    <a class="code" href="structmaingo_1_1_constraint.html#a472c03a2d70a7547d9307daf622ddda9">Constraint</a>(<span class="keyword">const</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cff">CONSTRAINT_TYPE</a> typeIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> indexOriginalIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> indexTypeIn,</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;               <span class="keyword">const</span> <span class="keywordtype">unsigned</span> indexConstantIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> indexTypeConstantIn, <span class="keyword">const</span> <span class="keywordtype">bool</span> isConstantIn,</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;               <span class="keyword">const</span> <span class="keywordtype">bool</span> isFeasibleIn, <span class="keyword">const</span> <span class="keywordtype">double</span> valueIn, <span class="keyword">const</span> std::string&amp; nameIn = <span class="stringliteral">&quot;&quot;</span>):</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        <a class="code" href="structmaingo_1_1_constraint.html#a1965d26e79a4537ff38947721b4761a3">name</a>(nameIn),</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;        <a class="code" href="structmaingo_1_1_constraint.html#ab73c06d8bf9488187e23e4ae1df6d317">constantValue</a>(valueIn), <a class="code" href="structmaingo_1_1_constraint.html#aec621f226b74a09c4579c4627f2844d8">type</a>(typeIn), <a class="code" href="structmaingo_1_1_constraint.html#ab64e0f8193d7cc112045eb16cf223d93">convexity</a>(<a class="code" href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5">CONSTRAINT_CONVEXITY</a>::<a class="code" href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5a409b78c0dd509a926ef1b3440410a04b">CONV_NONE</a>),</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;        <a class="code" href="structmaingo_1_1_constraint.html#a90ed0a8aa176f6311588abe5af0a2581">monotonicity</a>(<a class="code" href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556">CONSTRAINT_MONOTONICITY</a>::<a class="code" href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556a3d1967d1d7970d402f5e5ab65b6506f3">MON_NONE</a>), <a class="code" href="structmaingo_1_1_constraint.html#af0f4e66a1a7b7156836487328fabf9c6">dependency</a>(<a class="code" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592">CONSTRAINT_DEPENDENCY</a>::<a class="code" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592acfee03e4e055614895c428dd9f4902a6">DEP_UNKNOWN</a>), <a class="code" href="structmaingo_1_1_constraint.html#aee74bed061fd79bcd83099f3628659a4">isConstant</a>(isConstantIn),</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;        <a class="code" href="structmaingo_1_1_constraint.html#ac507234364f92a66f3b364637dee882b">isFeasible</a>(isFeasibleIn), <a class="code" href="structmaingo_1_1_constraint.html#ac6f1cd30c698f3de45d00a6ea145cb61">indexOriginal</a>(indexOriginalIn), <a class="code" href="structmaingo_1_1_constraint.html#a605ac95bdc24a14f9eb78cdcb4496561">indexNonconstant</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#a8ac54f774d821d1719217c27d7cfebff">indexNonconstantUBP</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#a94843b5f555c22b913bdecf04df5b3c1">indexConstant</a>(indexConstantIn),</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;        <a class="code" href="structmaingo_1_1_constraint.html#a909de1acfc0b0a295fe496c281dbb130">indexLinear</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#ad54e402d2c9796f2c74ca70e3f9110c1">indexNonlinear</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#a0737a38df2e9e635c200f6b7fa284dc9">indexType</a>(indexTypeIn), <a class="code" href="structmaingo_1_1_constraint.html#a35f780dfe5b201d6fb8b9e475ef69901">indexTypeNonconstant</a>(0), <a class="code" href="structmaingo_1_1_constraint.html#a53aa15e45bc19a32d03d11449b8608e3">indexTypeConstant</a>(indexTypeConstantIn), <a class="code" href="structmaingo_1_1_constraint.html#a626edd77588759b684f954fa68891798">nparticipatingVariables</a>(0)</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;    {</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="structmaingo_1_1_constraint.html#a1965d26e79a4537ff38947721b4761a3">name</a> == <span class="stringliteral">&quot;&quot;</span>) {</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;            std::string str;</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;            <span class="keywordflow">switch</span> (typeIn) {</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa19ac253da82c7f431e902e1be9cc236d">OBJ</a>:</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;                    str = <span class="stringliteral">&quot;obj&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa2a2d5953a4091c4c7a47698a5a5bbfaa">INEQ</a>:</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;                    str = <span class="stringliteral">&quot;ineq&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa5f02b52b5b416052d5545294adb30288">EQ</a>:</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;                    str = <span class="stringliteral">&quot;eq&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffabcfee51ddb6ed7d3c74ba9aa6f11fc96">INEQ_REL_ONLY</a>:</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;                    str = <span class="stringliteral">&quot;relOnlyIneq&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffab931d88f14bc394968ab9e43265b58db">EQ_REL_ONLY</a>:</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;                    str = <span class="stringliteral">&quot;relOnlyEq&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffacaec66b04e8cec2efaf72c40f4d4d60d">INEQ_SQUASH</a>:</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;                    str = <span class="stringliteral">&quot;squashIneq&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa3f418251b7df4d1f7abae45ec2c7120e">AUX_EQ_REL_ONLY</a>:</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;                    str = <span class="stringliteral">&quot;auxRelOnlyEq&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa58dc28c036216f9a14e602b625c1b500">OUTPUT</a>:</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;                    str = <span class="stringliteral">&quot;output&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;                <span class="keywordflow">default</span>:</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;                    str = <span class="stringliteral">&quot;constraint&quot;</span> + std::to_string(indexTypeIn + 1);</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;            }</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;            <a class="code" href="structmaingo_1_1_constraint.html#a1965d26e79a4537ff38947721b4761a3">name</a> = str;</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;        }</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    }</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;    <a class="code" href="structmaingo_1_1_constraint.html#ad56325852b641d2f3eb557b0f6f161a6">Constraint</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1_constraint.html">Constraint</a>&amp;) = <span class="keywordflow">default</span>;                         </div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    <a class="code" href="structmaingo_1_1_constraint.html">Constraint</a>&amp; <a class="code" href="structmaingo_1_1_constraint.html#a8dd2c5a8ca4f6978f6643b3212698852">operator=</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1_constraint.html">Constraint</a>&amp; constraintIn) = <span class="keywordflow">default</span>; </div><div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#a1965d26e79a4537ff38947721b4761a3">  204</a></span>&#160;    std::string <a class="code" href="structmaingo_1_1_constraint.html#a1965d26e79a4537ff38947721b4761a3">name</a>;                             </div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#ab73c06d8bf9488187e23e4ae1df6d317">  205</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structmaingo_1_1_constraint.html#ab73c06d8bf9488187e23e4ae1df6d317">constantValue</a>;                         </div><div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#a626edd77588759b684f954fa68891798">  206</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="structmaingo_1_1_constraint.html#a626edd77588759b684f954fa68891798">nparticipatingVariables</a>;             </div><div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#a975b6e0e75a3d025b9b26d4406deff1b">  207</a></span>&#160;    std::vector&lt;unsigned&gt; <a class="code" href="structmaingo_1_1_constraint.html#a975b6e0e75a3d025b9b26d4406deff1b">participatingVariables</a>; </div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#aec621f226b74a09c4579c4627f2844d8">  212</a></span>&#160;    <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cff">CONSTRAINT_TYPE</a> <a class="code" href="structmaingo_1_1_constraint.html#aec621f226b74a09c4579c4627f2844d8">type</a>;                 </div><div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#ab64e0f8193d7cc112045eb16cf223d93">  213</a></span>&#160;    <a class="code" href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5">CONSTRAINT_CONVEXITY</a> <a class="code" href="structmaingo_1_1_constraint.html#ab64e0f8193d7cc112045eb16cf223d93">convexity</a>;       </div><div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#a90ed0a8aa176f6311588abe5af0a2581">  214</a></span>&#160;    <a class="code" href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556">CONSTRAINT_MONOTONICITY</a> <a class="code" href="structmaingo_1_1_constraint.html#a90ed0a8aa176f6311588abe5af0a2581">monotonicity</a>; </div><div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#af0f4e66a1a7b7156836487328fabf9c6">  215</a></span>&#160;    <a class="code" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592">CONSTRAINT_DEPENDENCY</a> <a class="code" href="structmaingo_1_1_constraint.html#af0f4e66a1a7b7156836487328fabf9c6">dependency</a>;     </div><div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#aee74bed061fd79bcd83099f3628659a4">  216</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_constraint.html#aee74bed061fd79bcd83099f3628659a4">isConstant</a>;                      </div><div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#ac507234364f92a66f3b364637dee882b">  217</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_constraint.html#ac507234364f92a66f3b364637dee882b">isFeasible</a>;                      </div><div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#ac6f1cd30c698f3de45d00a6ea145cb61">  223</a></span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structmaingo_1_1_constraint.html#ac6f1cd30c698f3de45d00a6ea145cb61">indexOriginal</a>;        </div><div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#a605ac95bdc24a14f9eb78cdcb4496561">  224</a></span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structmaingo_1_1_constraint.html#a605ac95bdc24a14f9eb78cdcb4496561">indexNonconstant</a>;     </div><div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#a8ac54f774d821d1719217c27d7cfebff">  225</a></span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structmaingo_1_1_constraint.html#a8ac54f774d821d1719217c27d7cfebff">indexNonconstantUBP</a>;  </div><div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#a94843b5f555c22b913bdecf04df5b3c1">  226</a></span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structmaingo_1_1_constraint.html#a94843b5f555c22b913bdecf04df5b3c1">indexConstant</a>;        </div><div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#a909de1acfc0b0a295fe496c281dbb130">  227</a></span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structmaingo_1_1_constraint.html#a909de1acfc0b0a295fe496c281dbb130">indexLinear</a>;          </div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#ad54e402d2c9796f2c74ca70e3f9110c1">  228</a></span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structmaingo_1_1_constraint.html#ad54e402d2c9796f2c74ca70e3f9110c1">indexNonlinear</a>;       </div><div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#a0737a38df2e9e635c200f6b7fa284dc9">  229</a></span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structmaingo_1_1_constraint.html#a0737a38df2e9e635c200f6b7fa284dc9">indexType</a>;            </div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#a35f780dfe5b201d6fb8b9e475ef69901">  230</a></span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structmaingo_1_1_constraint.html#a35f780dfe5b201d6fb8b9e475ef69901">indexTypeNonconstant</a>; </div><div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="structmaingo_1_1_constraint.html#a53aa15e45bc19a32d03d11449b8608e3">  231</a></span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structmaingo_1_1_constraint.html#a53aa15e45bc19a32d03d11449b8608e3">indexTypeConstant</a>;    </div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;};</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="namespacemaingo_html_a1fb378d6003f3c76e1674673a2e64cffa19ac253da82c7f431e902e1be9cc236d"><div class="ttname"><a href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa19ac253da82c7f431e902e1be9cc236d">maingo::OBJ</a></div><div class="ttdef"><b>Definition:</b> constraint.h:40</div></div>
+<div class="ttc" id="structmaingo_1_1_constraint_html_a53aa15e45bc19a32d03d11449b8608e3"><div class="ttname"><a href="structmaingo_1_1_constraint.html#a53aa15e45bc19a32d03d11449b8608e3">maingo::Constraint::indexTypeConstant</a></div><div class="ttdeci">unsigned int indexTypeConstant</div><div class="ttdef"><b>Definition:</b> constraint.h:231</div></div>
+<div class="ttc" id="namespacemaingo_html_a1fb378d6003f3c76e1674673a2e64cffaf84cd6db07e8c7447cb7d15446557031"><div class="ttname"><a href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffaf84cd6db07e8c7447cb7d15446557031">maingo::TYPE_UNKNOWN</a></div><div class="ttdef"><b>Definition:</b> constraint.h:48</div></div>
+<div class="ttc" id="namespacemaingo_html_ab2f406d1eb0027c320d3705f954e4592acfee03e4e055614895c428dd9f4902a6"><div class="ttname"><a href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592acfee03e4e055614895c428dd9f4902a6">maingo::DEP_UNKNOWN</a></div><div class="ttdef"><b>Definition:</b> constraint.h:77</div></div>
+<div class="ttc" id="namespacemaingo_html_a5adb287f73598fd8ec0928c8f3d127a5a409b78c0dd509a926ef1b3440410a04b"><div class="ttname"><a href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5a409b78c0dd509a926ef1b3440410a04b">maingo::CONV_NONE</a></div><div class="ttdef"><b>Definition:</b> constraint.h:56</div></div>
+<div class="ttc" id="structmaingo_1_1_constraint_html_ac6f1cd30c698f3de45d00a6ea145cb61"><div class="ttname"><a href="structmaingo_1_1_constraint.html#ac6f1cd30c698f3de45d00a6ea145cb61">maingo::Constraint::indexOriginal</a></div><div class="ttdeci">unsigned int indexOriginal</div><div class="ttdef"><b>Definition:</b> constraint.h:223</div></div>
+<div class="ttc" id="namespacemaingo_html_a1fb378d6003f3c76e1674673a2e64cffa2a2d5953a4091c4c7a47698a5a5bbfaa"><div class="ttname"><a href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa2a2d5953a4091c4c7a47698a5a5bbfaa">maingo::INEQ</a></div><div class="ttdef"><b>Definition:</b> constraint.h:41</div></div>
+<div class="ttc" id="namespacemaingo_html_af7f79f3a80779720285a182fb0fd4ecea0d7b1cf896f4e2740742df1df01bd4e6"><div class="ttname"><a href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea0d7b1cf896f4e2740742df1df01bd4e6">maingo::NLP</a></div><div class="ttdef"><b>Definition:</b> constraint.h:30</div></div>
+<div class="ttc" id="namespacemaingo_html_ab2f406d1eb0027c320d3705f954e4592aaee4ec0f6a2b7adb51f538e7b9c1cf5a"><div class="ttname"><a href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592aaee4ec0f6a2b7adb51f538e7b9c1cf5a">maingo::BILINEAR</a></div><div class="ttdef"><b>Definition:</b> constraint.h:79</div></div>
+<div class="ttc" id="namespacemaingo_html_ad9c47002281f89b9efdfaa30e672c556a8755ac3d60d24f246f2afd6ba8ab59d9"><div class="ttname"><a href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556a8755ac3d60d24f246f2afd6ba8ab59d9">maingo::INCR</a></div><div class="ttdef"><b>Definition:</b> constraint.h:67</div></div>
+<div class="ttc" id="namespacemaingo_html_a5adb287f73598fd8ec0928c8f3d127a5"><div class="ttname"><a href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5">maingo::CONSTRAINT_CONVEXITY</a></div><div class="ttdeci">CONSTRAINT_CONVEXITY</div><div class="ttdoc">Enum for representing the constraint convexity. </div><div class="ttdef"><b>Definition:</b> constraint.h:55</div></div>
+<div class="ttc" id="namespacemaingo_html_a1fb378d6003f3c76e1674673a2e64cff"><div class="ttname"><a href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cff">maingo::CONSTRAINT_TYPE</a></div><div class="ttdeci">CONSTRAINT_TYPE</div><div class="ttdoc">Enum for representing the constraint type. </div><div class="ttdef"><b>Definition:</b> constraint.h:39</div></div>
+<div class="ttc" id="namespacemaingo_html_af7f79f3a80779720285a182fb0fd4eceaa4af8d9b8ea0ae7f958dc3197fa5c932"><div class="ttname"><a href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4eceaa4af8d9b8ea0ae7f958dc3197fa5c932">maingo::DNLP</a></div><div class="ttdef"><b>Definition:</b> constraint.h:31</div></div>
+<div class="ttc" id="structmaingo_1_1_constraint_html_af0f4e66a1a7b7156836487328fabf9c6"><div class="ttname"><a href="structmaingo_1_1_constraint.html#af0f4e66a1a7b7156836487328fabf9c6">maingo::Constraint::dependency</a></div><div class="ttdeci">CONSTRAINT_DEPENDENCY dependency</div><div class="ttdef"><b>Definition:</b> constraint.h:215</div></div>
+<div class="ttc" id="structmaingo_1_1_constraint_html_a0737a38df2e9e635c200f6b7fa284dc9"><div class="ttname"><a href="structmaingo_1_1_constraint.html#a0737a38df2e9e635c200f6b7fa284dc9">maingo::Constraint::indexType</a></div><div class="ttdeci">unsigned int indexType</div><div class="ttdef"><b>Definition:</b> constraint.h:229</div></div>
+<div class="ttc" id="structmaingo_1_1_constraint_html_a909de1acfc0b0a295fe496c281dbb130"><div class="ttname"><a href="structmaingo_1_1_constraint.html#a909de1acfc0b0a295fe496c281dbb130">maingo::Constraint::indexLinear</a></div><div class="ttdeci">unsigned int indexLinear</div><div class="ttdef"><b>Definition:</b> constraint.h:227</div></div>
+<div class="ttc" id="structmaingo_1_1_constraint_html_aee74bed061fd79bcd83099f3628659a4"><div class="ttname"><a href="structmaingo_1_1_constraint.html#aee74bed061fd79bcd83099f3628659a4">maingo::Constraint::isConstant</a></div><div class="ttdeci">bool isConstant</div><div class="ttdef"><b>Definition:</b> constraint.h:216</div></div>
+<div class="ttc" id="structmaingo_1_1_constraint_html"><div class="ttname"><a href="structmaingo_1_1_constraint.html">maingo::Constraint</a></div><div class="ttdoc">Struct for storing information about constraints. </div><div class="ttdef"><b>Definition:</b> constraint.h:96</div></div>
+<div class="ttc" id="structmaingo_1_1_constraint_html_a94843b5f555c22b913bdecf04df5b3c1"><div class="ttname"><a href="structmaingo_1_1_constraint.html#a94843b5f555c22b913bdecf04df5b3c1">maingo::Constraint::indexConstant</a></div><div class="ttdeci">unsigned int indexConstant</div><div class="ttdef"><b>Definition:</b> constraint.h:226</div></div>
+<div class="ttc" id="structmaingo_1_1_constraint_html_a35f780dfe5b201d6fb8b9e475ef69901"><div class="ttname"><a href="structmaingo_1_1_constraint.html#a35f780dfe5b201d6fb8b9e475ef69901">maingo::Constraint::indexTypeNonconstant</a></div><div class="ttdeci">unsigned int indexTypeNonconstant</div><div class="ttdef"><b>Definition:</b> constraint.h:230</div></div>
+<div class="ttc" id="namespacemaingo_html_ab2f406d1eb0027c320d3705f954e4592ad851e0122baa7113a1beca227d21b8b1"><div class="ttname"><a href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592ad851e0122baa7113a1beca227d21b8b1">maingo::RATIONAL</a></div><div class="ttdef"><b>Definition:</b> constraint.h:82</div></div>
+<div class="ttc" id="structmaingo_1_1_constraint_html_ad56325852b641d2f3eb557b0f6f161a6"><div class="ttname"><a href="structmaingo_1_1_constraint.html#ad56325852b641d2f3eb557b0f6f161a6">maingo::Constraint::Constraint</a></div><div class="ttdeci">Constraint()</div><div class="ttdoc">Default conststructor. </div><div class="ttdef"><b>Definition:</b> constraint.h:102</div></div>
+<div class="ttc" id="structmaingo_1_1_constraint_html_ac507234364f92a66f3b364637dee882b"><div class="ttname"><a href="structmaingo_1_1_constraint.html#ac507234364f92a66f3b364637dee882b">maingo::Constraint::isFeasible</a></div><div class="ttdeci">bool isFeasible</div><div class="ttdef"><b>Definition:</b> constraint.h:217</div></div>
+<div class="ttc" id="namespacemaingo_html_a1fb378d6003f3c76e1674673a2e64cffa3f418251b7df4d1f7abae45ec2c7120e"><div class="ttname"><a href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa3f418251b7df4d1f7abae45ec2c7120e">maingo::AUX_EQ_REL_ONLY</a></div><div class="ttdef"><b>Definition:</b> constraint.h:46</div></div>
+<div class="ttc" id="namespacemaingo_html_ab2f406d1eb0027c320d3705f954e4592"><div class="ttname"><a href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592">maingo::CONSTRAINT_DEPENDENCY</a></div><div class="ttdeci">CONSTRAINT_DEPENDENCY</div><div class="ttdoc">Enum for representing the constraint dependency. Note that the dependency is increasing meaning that ...</div><div class="ttdef"><b>Definition:</b> constraint.h:76</div></div>
+<div class="ttc" id="namespacemaingo_html_a5adb287f73598fd8ec0928c8f3d127a5a4a5f73483bf025f9060c8ae1c39f2e8a"><div class="ttname"><a href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5a4a5f73483bf025f9060c8ae1c39f2e8a">maingo::CONCAVE</a></div><div class="ttdef"><b>Definition:</b> constraint.h:58</div></div>
+<div class="ttc" id="namespacemaingo_html_af7f79f3a80779720285a182fb0fd4ecea0bfa87ed0fa2108171fba8ee039617da"><div class="ttname"><a href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea0bfa87ed0fa2108171fba8ee039617da">maingo::MIQP</a></div><div class="ttdef"><b>Definition:</b> constraint.h:29</div></div>
+<div class="ttc" id="namespacemaingo_html_a1fb378d6003f3c76e1674673a2e64cffa5f02b52b5b416052d5545294adb30288"><div class="ttname"><a href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa5f02b52b5b416052d5545294adb30288">maingo::EQ</a></div><div class="ttdef"><b>Definition:</b> constraint.h:42</div></div>
+<div class="ttc" id="structmaingo_1_1_constraint_html_a8ac54f774d821d1719217c27d7cfebff"><div class="ttname"><a href="structmaingo_1_1_constraint.html#a8ac54f774d821d1719217c27d7cfebff">maingo::Constraint::indexNonconstantUBP</a></div><div class="ttdeci">unsigned int indexNonconstantUBP</div><div class="ttdef"><b>Definition:</b> constraint.h:225</div></div>
+<div class="ttc" id="structmaingo_1_1_constraint_html_a975b6e0e75a3d025b9b26d4406deff1b"><div class="ttname"><a href="structmaingo_1_1_constraint.html#a975b6e0e75a3d025b9b26d4406deff1b">maingo::Constraint::participatingVariables</a></div><div class="ttdeci">std::vector&lt; unsigned &gt; participatingVariables</div><div class="ttdef"><b>Definition:</b> constraint.h:207</div></div>
+<div class="ttc" id="namespacemaingo_html_af7f79f3a80779720285a182fb0fd4ecea2984f944d36bfe0b9e7fd8b872ab3b7a"><div class="ttname"><a href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea2984f944d36bfe0b9e7fd8b872ab3b7a">maingo::QP</a></div><div class="ttdef"><b>Definition:</b> constraint.h:28</div></div>
+<div class="ttc" id="namespacemaingo_html_ab2f406d1eb0027c320d3705f954e4592aa25e5c3c1d625e9188448d1e61afe4e5"><div class="ttname"><a href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592aa25e5c3c1d625e9188448d1e61afe4e5">maingo::POLYNOMIAL</a></div><div class="ttdef"><b>Definition:</b> constraint.h:81</div></div>
+<div class="ttc" id="namespacemaingo_html_af7f79f3a80779720285a182fb0fd4eceae2416015e6faafb64141704d46b3336d"><div class="ttname"><a href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4eceae2416015e6faafb64141704d46b3336d">maingo::MINLP</a></div><div class="ttdef"><b>Definition:</b> constraint.h:32</div></div>
+<div class="ttc" id="structmaingo_1_1_constraint_html_ab73c06d8bf9488187e23e4ae1df6d317"><div class="ttname"><a href="structmaingo_1_1_constraint.html#ab73c06d8bf9488187e23e4ae1df6d317">maingo::Constraint::constantValue</a></div><div class="ttdeci">double constantValue</div><div class="ttdef"><b>Definition:</b> constraint.h:205</div></div>
+<div class="ttc" id="namespacemaingo_html_ab2f406d1eb0027c320d3705f954e4592ae5fc3c0c5d379b66525987200d425036"><div class="ttname"><a href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592ae5fc3c0c5d379b66525987200d425036">maingo::NONLINEAR</a></div><div class="ttdef"><b>Definition:</b> constraint.h:83</div></div>
+<div class="ttc" id="namespacemaingo_html_a1fb378d6003f3c76e1674673a2e64cffabcfee51ddb6ed7d3c74ba9aa6f11fc96"><div class="ttname"><a href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffabcfee51ddb6ed7d3c74ba9aa6f11fc96">maingo::INEQ_REL_ONLY</a></div><div class="ttdef"><b>Definition:</b> constraint.h:43</div></div>
+<div class="ttc" id="namespacemaingo_html_af7f79f3a80779720285a182fb0fd4ece"><div class="ttname"><a href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ece">maingo::PROBLEM_STRUCTURE</a></div><div class="ttdeci">PROBLEM_STRUCTURE</div><div class="ttdoc">Enum for representing the problem structure. </div><div class="ttdef"><b>Definition:</b> constraint.h:25</div></div>
 <div class="ttc" id="structmaingo_1_1_constraint_html_a8dd2c5a8ca4f6978f6643b3212698852"><div class="ttname"><a href="structmaingo_1_1_constraint.html#a8dd2c5a8ca4f6978f6643b3212698852">maingo::Constraint::operator=</a></div><div class="ttdeci">Constraint &amp; operator=(const Constraint &amp;constraintIn)=default</div></div>
-<div class="ttc" id="namespacemaingo_html_ad9c47002281f89b9efdfaa30e672c556a776a6ea773b9bf563eec732a7c59ce78"><div class="ttname"><a href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556a776a6ea773b9bf563eec732a7c59ce78">maingo::DECR</a></div><div class="ttdef"><b>Definition:</b> constraint.h:73</div></div>
-<div class="ttc" id="structmaingo_1_1_constraint_html_a472c03a2d70a7547d9307daf622ddda9"><div class="ttname"><a href="structmaingo_1_1_constraint.html#a472c03a2d70a7547d9307daf622ddda9">maingo::Constraint::Constraint</a></div><div class="ttdeci">Constraint(const CONSTRAINT_TYPE typeIn, const unsigned indexOriginalIn, const unsigned indexTypeIn, const unsigned indexConstantIn, const unsigned indexTypeConstantIn, const bool isConstantIn, const bool isFeasibleIn, const double valueIn, const std::string &amp;nameIn=&quot;&quot;)</div><div class="ttdoc">Conststructor for constant constraints with a possible name.</div><div class="ttdef"><b>Definition:</b> constraint.h:162</div></div>
-<div class="ttc" id="namespacemaingo_html_a1fb378d6003f3c76e1674673a2e64cffab931d88f14bc394968ab9e43265b58db"><div class="ttname"><a href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffab931d88f14bc394968ab9e43265b58db">maingo::EQ_REL_ONLY</a></div><div class="ttdef"><b>Definition:</b> constraint.h:49</div></div>
-<div class="ttc" id="namespacemaingo_html_af7f79f3a80779720285a182fb0fd4ecea6ef20a631ab5ecf8ea394e3fac0da92b"><div class="ttname"><a href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea6ef20a631ab5ecf8ea394e3fac0da92b">maingo::LP</a></div><div class="ttdef"><b>Definition:</b> constraint.h:31</div></div>
-<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO</div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
-<div class="ttc" id="structmaingo_1_1_constraint_html_a90ed0a8aa176f6311588abe5af0a2581"><div class="ttname"><a href="structmaingo_1_1_constraint.html#a90ed0a8aa176f6311588abe5af0a2581">maingo::Constraint::monotonicity</a></div><div class="ttdeci">CONSTRAINT_MONOTONICITY monotonicity</div><div class="ttdef"><b>Definition:</b> constraint.h:219</div></div>
-<div class="ttc" id="namespacemaingo_html_af7f79f3a80779720285a182fb0fd4ecea42d41aaf63d0c23502e376644eee9488"><div class="ttname"><a href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea42d41aaf63d0c23502e376644eee9488">maingo::MIP</a></div><div class="ttdef"><b>Definition:</b> constraint.h:32</div></div>
-<div class="ttc" id="structmaingo_1_1_constraint_html_a626edd77588759b684f954fa68891798"><div class="ttname"><a href="structmaingo_1_1_constraint.html#a626edd77588759b684f954fa68891798">maingo::Constraint::nparticipatingVariables</a></div><div class="ttdeci">unsigned nparticipatingVariables</div><div class="ttdef"><b>Definition:</b> constraint.h:211</div></div>
-<div class="ttc" id="structmaingo_1_1_constraint_html_ab64e0f8193d7cc112045eb16cf223d93"><div class="ttname"><a href="structmaingo_1_1_constraint.html#ab64e0f8193d7cc112045eb16cf223d93">maingo::Constraint::convexity</a></div><div class="ttdeci">CONSTRAINT_CONVEXITY convexity</div><div class="ttdef"><b>Definition:</b> constraint.h:218</div></div>
-<div class="ttc" id="namespacemaingo_html_a1fb378d6003f3c76e1674673a2e64cffacaec66b04e8cec2efaf72c40f4d4d60d"><div class="ttname"><a href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffacaec66b04e8cec2efaf72c40f4d4d60d">maingo::INEQ_SQUASH</a></div><div class="ttdef"><b>Definition:</b> constraint.h:50</div></div>
-<div class="ttc" id="structmaingo_1_1_constraint_html_a1965d26e79a4537ff38947721b4761a3"><div class="ttname"><a href="structmaingo_1_1_constraint.html#a1965d26e79a4537ff38947721b4761a3">maingo::Constraint::name</a></div><div class="ttdeci">std::string name</div><div class="ttdef"><b>Definition:</b> constraint.h:209</div></div>
-<div class="ttc" id="namespacemaingo_html_ab2f406d1eb0027c320d3705f954e4592a548bd51fa74da094234483596a6b0933"><div class="ttname"><a href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592a548bd51fa74da094234483596a6b0933">maingo::LINEAR</a></div><div class="ttdef"><b>Definition:</b> constraint.h:83</div></div>
-<div class="ttc" id="namespacemaingo_html_ad9c47002281f89b9efdfaa30e672c556a3d1967d1d7970d402f5e5ab65b6506f3"><div class="ttname"><a href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556a3d1967d1d7970d402f5e5ab65b6506f3">maingo::MON_NONE</a></div><div class="ttdef"><b>Definition:</b> constraint.h:71</div></div>
-<div class="ttc" id="namespacemaingo_html_ad9c47002281f89b9efdfaa30e672c556"><div class="ttname"><a href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556">maingo::CONSTRAINT_MONOTONICITY</a></div><div class="ttdeci">CONSTRAINT_MONOTONICITY</div><div class="ttdoc">Enum for representing the constraint monotonicity.</div><div class="ttdef"><b>Definition:</b> constraint.h:70</div></div>
-<div class="ttc" id="namespacemaingo_html_a1fb378d6003f3c76e1674673a2e64cffa58dc28c036216f9a14e602b625c1b500"><div class="ttname"><a href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa58dc28c036216f9a14e602b625c1b500">maingo::OUTPUT</a></div><div class="ttdef"><b>Definition:</b> constraint.h:52</div></div>
-<div class="ttc" id="structmaingo_1_1_constraint_html_a605ac95bdc24a14f9eb78cdcb4496561"><div class="ttname"><a href="structmaingo_1_1_constraint.html#a605ac95bdc24a14f9eb78cdcb4496561">maingo::Constraint::indexNonconstant</a></div><div class="ttdeci">unsigned int indexNonconstant</div><div class="ttdef"><b>Definition:</b> constraint.h:229</div></div>
-<div class="ttc" id="namespacemaingo_html_a5adb287f73598fd8ec0928c8f3d127a5a48e648e05429a27358521dd9b1ee5cb0"><div class="ttname"><a href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5a48e648e05429a27358521dd9b1ee5cb0">maingo::CONVEX</a></div><div class="ttdef"><b>Definition:</b> constraint.h:62</div></div>
-<div class="ttc" id="structmaingo_1_1_constraint_html_ad54e402d2c9796f2c74ca70e3f9110c1"><div class="ttname"><a href="structmaingo_1_1_constraint.html#ad54e402d2c9796f2c74ca70e3f9110c1">maingo::Constraint::indexNonlinear</a></div><div class="ttdeci">unsigned int indexNonlinear</div><div class="ttdef"><b>Definition:</b> constraint.h:233</div></div>
-<div class="ttc" id="structmaingo_1_1_constraint_html_aec621f226b74a09c4579c4627f2844d8"><div class="ttname"><a href="structmaingo_1_1_constraint.html#aec621f226b74a09c4579c4627f2844d8">maingo::Constraint::type</a></div><div class="ttdeci">CONSTRAINT_TYPE type</div><div class="ttdef"><b>Definition:</b> constraint.h:217</div></div>
-<div class="ttc" id="namespacemaingo_html_ab2f406d1eb0027c320d3705f954e4592a40c20210d66888659250ea4a9471677c"><div class="ttname"><a href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592a40c20210d66888659250ea4a9471677c">maingo::QUADRATIC</a></div><div class="ttdef"><b>Definition:</b> constraint.h:85</div></div>
-<div class="ttc" id="structmaingo_1_1_constraint_html_a5d45d01e07187f636bf0b381c460d32e"><div class="ttname"><a href="structmaingo_1_1_constraint.html#a5d45d01e07187f636bf0b381c460d32e">maingo::Constraint::Constraint</a></div><div class="ttdeci">Constraint(const CONSTRAINT_TYPE typeIn, const unsigned indexOriginalIn, const unsigned indexTypeIn, const unsigned indexNonconstantIn, const unsigned indexTypeNonconstantIn, const std::string &amp;nameIn=&quot;&quot;)</div><div class="ttdoc">Conststructor for non-constant constraints with a possible name.</div><div class="ttdef"><b>Definition:</b> constraint.h:116</div></div>
+<div class="ttc" id="namespacemaingo_html_ad9c47002281f89b9efdfaa30e672c556a776a6ea773b9bf563eec732a7c59ce78"><div class="ttname"><a href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556a776a6ea773b9bf563eec732a7c59ce78">maingo::DECR</a></div><div class="ttdef"><b>Definition:</b> constraint.h:68</div></div>
+<div class="ttc" id="structmaingo_1_1_constraint_html_a472c03a2d70a7547d9307daf622ddda9"><div class="ttname"><a href="structmaingo_1_1_constraint.html#a472c03a2d70a7547d9307daf622ddda9">maingo::Constraint::Constraint</a></div><div class="ttdeci">Constraint(const CONSTRAINT_TYPE typeIn, const unsigned indexOriginalIn, const unsigned indexTypeIn, const unsigned indexConstantIn, const unsigned indexTypeConstantIn, const bool isConstantIn, const bool isFeasibleIn, const double valueIn, const std::string &amp;nameIn=&quot;&quot;)</div><div class="ttdoc">Conststructor for constant constraints with a possible name. </div><div class="ttdef"><b>Definition:</b> constraint.h:157</div></div>
+<div class="ttc" id="namespacemaingo_html_a1fb378d6003f3c76e1674673a2e64cffab931d88f14bc394968ab9e43265b58db"><div class="ttname"><a href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffab931d88f14bc394968ab9e43265b58db">maingo::EQ_REL_ONLY</a></div><div class="ttdef"><b>Definition:</b> constraint.h:44</div></div>
+<div class="ttc" id="namespacemaingo_html_af7f79f3a80779720285a182fb0fd4ecea6ef20a631ab5ecf8ea394e3fac0da92b"><div class="ttname"><a href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea6ef20a631ab5ecf8ea394e3fac0da92b">maingo::LP</a></div><div class="ttdef"><b>Definition:</b> constraint.h:26</div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
+<div class="ttc" id="structmaingo_1_1_constraint_html_a90ed0a8aa176f6311588abe5af0a2581"><div class="ttname"><a href="structmaingo_1_1_constraint.html#a90ed0a8aa176f6311588abe5af0a2581">maingo::Constraint::monotonicity</a></div><div class="ttdeci">CONSTRAINT_MONOTONICITY monotonicity</div><div class="ttdef"><b>Definition:</b> constraint.h:214</div></div>
+<div class="ttc" id="namespacemaingo_html_af7f79f3a80779720285a182fb0fd4ecea42d41aaf63d0c23502e376644eee9488"><div class="ttname"><a href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea42d41aaf63d0c23502e376644eee9488">maingo::MIP</a></div><div class="ttdef"><b>Definition:</b> constraint.h:27</div></div>
+<div class="ttc" id="structmaingo_1_1_constraint_html_a626edd77588759b684f954fa68891798"><div class="ttname"><a href="structmaingo_1_1_constraint.html#a626edd77588759b684f954fa68891798">maingo::Constraint::nparticipatingVariables</a></div><div class="ttdeci">unsigned nparticipatingVariables</div><div class="ttdef"><b>Definition:</b> constraint.h:206</div></div>
+<div class="ttc" id="structmaingo_1_1_constraint_html_ab64e0f8193d7cc112045eb16cf223d93"><div class="ttname"><a href="structmaingo_1_1_constraint.html#ab64e0f8193d7cc112045eb16cf223d93">maingo::Constraint::convexity</a></div><div class="ttdeci">CONSTRAINT_CONVEXITY convexity</div><div class="ttdef"><b>Definition:</b> constraint.h:213</div></div>
+<div class="ttc" id="namespacemaingo_html_a1fb378d6003f3c76e1674673a2e64cffacaec66b04e8cec2efaf72c40f4d4d60d"><div class="ttname"><a href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffacaec66b04e8cec2efaf72c40f4d4d60d">maingo::INEQ_SQUASH</a></div><div class="ttdef"><b>Definition:</b> constraint.h:45</div></div>
+<div class="ttc" id="structmaingo_1_1_constraint_html_a1965d26e79a4537ff38947721b4761a3"><div class="ttname"><a href="structmaingo_1_1_constraint.html#a1965d26e79a4537ff38947721b4761a3">maingo::Constraint::name</a></div><div class="ttdeci">std::string name</div><div class="ttdef"><b>Definition:</b> constraint.h:204</div></div>
+<div class="ttc" id="namespacemaingo_html_ab2f406d1eb0027c320d3705f954e4592a548bd51fa74da094234483596a6b0933"><div class="ttname"><a href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592a548bd51fa74da094234483596a6b0933">maingo::LINEAR</a></div><div class="ttdef"><b>Definition:</b> constraint.h:78</div></div>
+<div class="ttc" id="namespacemaingo_html_ad9c47002281f89b9efdfaa30e672c556a3d1967d1d7970d402f5e5ab65b6506f3"><div class="ttname"><a href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556a3d1967d1d7970d402f5e5ab65b6506f3">maingo::MON_NONE</a></div><div class="ttdef"><b>Definition:</b> constraint.h:66</div></div>
+<div class="ttc" id="namespacemaingo_html_ad9c47002281f89b9efdfaa30e672c556"><div class="ttname"><a href="namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556">maingo::CONSTRAINT_MONOTONICITY</a></div><div class="ttdeci">CONSTRAINT_MONOTONICITY</div><div class="ttdoc">Enum for representing the constraint monotonicity. </div><div class="ttdef"><b>Definition:</b> constraint.h:65</div></div>
+<div class="ttc" id="namespacemaingo_html_a1fb378d6003f3c76e1674673a2e64cffa58dc28c036216f9a14e602b625c1b500"><div class="ttname"><a href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa58dc28c036216f9a14e602b625c1b500">maingo::OUTPUT</a></div><div class="ttdef"><b>Definition:</b> constraint.h:47</div></div>
+<div class="ttc" id="structmaingo_1_1_constraint_html_a605ac95bdc24a14f9eb78cdcb4496561"><div class="ttname"><a href="structmaingo_1_1_constraint.html#a605ac95bdc24a14f9eb78cdcb4496561">maingo::Constraint::indexNonconstant</a></div><div class="ttdeci">unsigned int indexNonconstant</div><div class="ttdef"><b>Definition:</b> constraint.h:224</div></div>
+<div class="ttc" id="namespacemaingo_html_a5adb287f73598fd8ec0928c8f3d127a5a48e648e05429a27358521dd9b1ee5cb0"><div class="ttname"><a href="namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5a48e648e05429a27358521dd9b1ee5cb0">maingo::CONVEX</a></div><div class="ttdef"><b>Definition:</b> constraint.h:57</div></div>
+<div class="ttc" id="structmaingo_1_1_constraint_html_ad54e402d2c9796f2c74ca70e3f9110c1"><div class="ttname"><a href="structmaingo_1_1_constraint.html#ad54e402d2c9796f2c74ca70e3f9110c1">maingo::Constraint::indexNonlinear</a></div><div class="ttdeci">unsigned int indexNonlinear</div><div class="ttdef"><b>Definition:</b> constraint.h:228</div></div>
+<div class="ttc" id="structmaingo_1_1_constraint_html_aec621f226b74a09c4579c4627f2844d8"><div class="ttname"><a href="structmaingo_1_1_constraint.html#aec621f226b74a09c4579c4627f2844d8">maingo::Constraint::type</a></div><div class="ttdeci">CONSTRAINT_TYPE type</div><div class="ttdef"><b>Definition:</b> constraint.h:212</div></div>
+<div class="ttc" id="namespacemaingo_html_ab2f406d1eb0027c320d3705f954e4592a40c20210d66888659250ea4a9471677c"><div class="ttname"><a href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592a40c20210d66888659250ea4a9471677c">maingo::QUADRATIC</a></div><div class="ttdef"><b>Definition:</b> constraint.h:80</div></div>
+<div class="ttc" id="structmaingo_1_1_constraint_html_a5d45d01e07187f636bf0b381c460d32e"><div class="ttname"><a href="structmaingo_1_1_constraint.html#a5d45d01e07187f636bf0b381c460d32e">maingo::Constraint::Constraint</a></div><div class="ttdeci">Constraint(const CONSTRAINT_TYPE typeIn, const unsigned indexOriginalIn, const unsigned indexTypeIn, const unsigned indexNonconstantIn, const unsigned indexTypeNonconstantIn, const std::string &amp;nameIn=&quot;&quot;)</div><div class="ttdoc">Conststructor for non-constant constraints with a possible name. </div><div class="ttdef"><b>Definition:</b> constraint.h:111</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -157,7 +157,7 @@ $(document).ready(function(){initNavTree('constraint_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="constraint_8h.html">constraint.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/dir_47e169a4fe08058254fbf7964fa7bfb6.html b/doc/html/dir_47e169a4fe08058254fbf7964fa7bfb6.html
index 534e073a0b2d35526382463d1bfb5276624e1391..74acd17e261533e6b5b08fa82607c69703eef91f 100644
--- a/doc/html/dir_47e169a4fe08058254fbf7964fa7bfb6.html
+++ b/doc/html/dir_47e169a4fe08058254fbf7964fa7bfb6.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/dep/babbase Directory Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/dep/babbase Directory Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -106,7 +106,7 @@ Directories</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_ede40f663fdbaac4622f0a2d30ba279b.html">dep</a></li><li class="navelem"><a class="el" href="dir_47e169a4fe08058254fbf7964fa7bfb6.html">babbase</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/dir_637fe8785ffc83488bdb33305770812c.html b/doc/html/dir_637fe8785ffc83488bdb33305770812c.html
index 93b914c86bbbb5860a4d10946d378fe741d8bf94..556a04bbaad427e3acc04b51cc642a8214ce34eb 100644
--- a/doc/html/dir_637fe8785ffc83488bdb33305770812c.html
+++ b/doc/html/dir_637fe8785ffc83488bdb33305770812c.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/dep/babbase/inc Directory Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/dep/babbase/inc Directory Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -93,6 +93,8 @@ $(document).ready(function(){initNavTree('dir_637fe8785ffc83488bdb33305770812c.h
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
 Files</h2></td></tr>
+<tr class="memitem:bab_bounds_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bab_bounds_8h.html">babBounds.h</a> <a href="bab_bounds_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:bab_brancher_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bab_brancher_8h.html">babBrancher.h</a> <a href="bab_brancher_8h_source.html">[code]</a></td></tr>
 <tr class="memdesc:bab_brancher_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">File containing definition of the Branch-and-Bound brancher class. <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -115,7 +117,7 @@ Files</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_ede40f663fdbaac4622f0a2d30ba279b.html">dep</a></li><li class="navelem"><a class="el" href="dir_47e169a4fe08058254fbf7964fa7bfb6.html">babbase</a></li><li class="navelem"><a class="el" href="dir_637fe8785ffc83488bdb33305770812c.html">inc</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/dir_637fe8785ffc83488bdb33305770812c.js b/doc/html/dir_637fe8785ffc83488bdb33305770812c.js
index b9f2add180b7f09bb35a9a59dbb7ccc1068c9821..5ee2f94c7d85ae65810d155ab45729bde4603ef7 100644
--- a/doc/html/dir_637fe8785ffc83488bdb33305770812c.js
+++ b/doc/html/dir_637fe8785ffc83488bdb33305770812c.js
@@ -1,5 +1,6 @@
 var dir_637fe8785ffc83488bdb33305770812c =
 [
+    [ "babBounds.h", "bab_bounds_8h.html", "bab_bounds_8h" ],
     [ "babBrancher.h", "bab_brancher_8h.html", "bab_brancher_8h" ],
     [ "babException.h", "bab_exception_8h.html", [
       [ "BranchAndBoundBaseException", "classbab_base_1_1_branch_and_bound_base_exception.html", "classbab_base_1_1_branch_and_bound_base_exception" ]
diff --git a/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html
index 4ed6fa5e169c79d5258814936f40f1b0ca4f75cf..fa401dd1b55e729307e011186772412a6029d8be 100644
--- a/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html
+++ b/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/src Directory Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/src Directory Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -99,8 +99,6 @@ Files</h2></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:bab_mpi_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bab_mpi_8cpp.html">babMpi.cpp</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:bab_w_a_l_l_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bab_w_a_l_l_8cpp.html">babWALL.cpp</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:get_time_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="get_time_8cpp.html">getTime.cpp</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ipopt_problem_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ipopt_problem_8cpp.html">ipoptProblem.cpp</a></td></tr>
@@ -125,22 +123,24 @@ Files</h2></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:_m_ai_n_g_o_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_m_ai_n_g_o_8cpp.html">MAiNGO.cpp</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_m_ai_n_g_oevaluation_functions_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_m_ai_n_g_oevaluation_functions_8cpp.html">MAiNGOevaluationFunctions.cpp</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:_m_ai_n_g_ogetter_functions_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_m_ai_n_g_ogetter_functions_8cpp.html">MAiNGOgetterFunctions.cpp</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:_m_ai_n_g_omodel_eps_con_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_m_ai_n_g_omodel_eps_con_8cpp.html">MAiNGOmodelEpsCon.cpp</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:_m_ai_n_g_oprinting_functions_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_m_ai_n_g_oprinting_functions_8cpp.html">MAiNGOprintingFunctions.cpp</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:_m_ai_n_g_oto_other_language_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_m_ai_n_g_oto_other_language_8cpp.html">MAiNGOtoOtherLanguage.cpp</a></td></tr>
+<tr class="memitem:_m_ai_n_g_oread_settings_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_m_ai_n_g_oread_settings_8cpp.html">MAiNGOreadSettings.cpp</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:_m_ai_n_g_o_w_a_l_l_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_m_ai_n_g_o_w_a_l_l_8cpp.html">MAiNGOWALL.cpp</a></td></tr>
+<tr class="memitem:_m_ai_n_g_oset_option_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_m_ai_n_g_oset_option_8cpp.html">MAiNGOsetOption.cpp</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_m_ai_n_g_oto_other_language_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_m_ai_n_g_oto_other_language_8cpp.html">MAiNGOtoOtherLanguage.cpp</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:_m_ai_n_g_owriting_functions_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_m_ai_n_g_owriting_functions_8cpp.html">MAiNGOwritingFunctions.cpp</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:program_parser_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="program_parser_8cpp.html">programParser.cpp</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:settings_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="settings_8cpp.html">settings.cpp</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ubp_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ubp_8cpp.html">ubp.cpp</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ubp_clp_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ubp_clp_8cpp.html">ubpClp.cpp</a></td></tr>
@@ -164,7 +164,7 @@ Files</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.js b/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.js
index 6ac1043867e934c4f0fcde1df9932e936e2acd42..89a82f1435b9419488e31ad944b5c900b64864a0 100644
--- a/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.js
+++ b/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.js
@@ -3,7 +3,6 @@ var dir_68267d1309a1af8e8297ef4c3efbcdba =
     [ "aleModel.cpp", "ale_model_8cpp.html", null ],
     [ "bab.cpp", "bab_8cpp.html", null ],
     [ "babMpi.cpp", "bab_mpi_8cpp.html", null ],
-    [ "babWALL.cpp", "bab_w_a_l_l_8cpp.html", null ],
     [ "getTime.cpp", "get_time_8cpp.html", null ],
     [ "ipoptProblem.cpp", "ipopt_problem_8cpp.html", null ],
     [ "knitroProblem.cpp", "knitro_problem_8cpp.html", null ],
@@ -16,14 +15,15 @@ var dir_68267d1309a1af8e8297ef4c3efbcdba =
     [ "lbpLinearizationStrats.cpp", "lbp_linearization_strats_8cpp.html", null ],
     [ "logger.cpp", "logger_8cpp.html", null ],
     [ "MAiNGO.cpp", "_m_ai_n_g_o_8cpp.html", null ],
+    [ "MAiNGOevaluationFunctions.cpp", "_m_ai_n_g_oevaluation_functions_8cpp.html", null ],
     [ "MAiNGOgetterFunctions.cpp", "_m_ai_n_g_ogetter_functions_8cpp.html", null ],
     [ "MAiNGOmodelEpsCon.cpp", "_m_ai_n_g_omodel_eps_con_8cpp.html", null ],
     [ "MAiNGOprintingFunctions.cpp", "_m_ai_n_g_oprinting_functions_8cpp.html", null ],
+    [ "MAiNGOreadSettings.cpp", "_m_ai_n_g_oread_settings_8cpp.html", null ],
+    [ "MAiNGOsetOption.cpp", "_m_ai_n_g_oset_option_8cpp.html", null ],
     [ "MAiNGOtoOtherLanguage.cpp", "_m_ai_n_g_oto_other_language_8cpp.html", null ],
-    [ "MAiNGOWALL.cpp", "_m_ai_n_g_o_w_a_l_l_8cpp.html", null ],
     [ "MAiNGOwritingFunctions.cpp", "_m_ai_n_g_owriting_functions_8cpp.html", null ],
     [ "programParser.cpp", "program_parser_8cpp.html", null ],
-    [ "settings.cpp", "settings_8cpp.html", null ],
     [ "ubp.cpp", "ubp_8cpp.html", null ],
     [ "ubpClp.cpp", "ubp_clp_8cpp.html", null ],
     [ "ubpCplex.cpp", "ubp_cplex_8cpp.html", null ],
diff --git a/doc/html/dir_bfccd401955b95cf8c75461437045ac0.html b/doc/html/dir_bfccd401955b95cf8c75461437045ac0.html
index d879690c08fe400edec98755eff6b6769cbccda8..19ac879c2e70190fbd707562abd425ad96ca69ed 100644
--- a/doc/html/dir_bfccd401955b95cf8c75461437045ac0.html
+++ b/doc/html/dir_bfccd401955b95cf8c75461437045ac0.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc Directory Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc Directory Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -97,14 +97,10 @@ Files</h2></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:bab_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bab_8h.html">bab.h</a> <a href="bab_8h_source.html">[code]</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:bab_w_a_l_l_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bab_w_a_l_l_8h.html">babWALL.h</a> <a href="bab_w_a_l_l_8h_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:constraint_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="constraint_8h.html">constraint.h</a> <a href="constraint_8h_source.html">[code]</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:evaluation_container_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="evaluation_container_8h.html">evaluationContainer.h</a> <a href="evaluation_container_8h_source.html">[code]</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:exceptions_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="exceptions_8h.html">exceptions.h</a> <a href="exceptions_8h_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:function_wrapper_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="function_wrapper_8h.html">functionWrapper.h</a> <a href="function_wrapper_8h_source.html">[code]</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:get_time_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="get_time_8h.html">getTime.h</a> <a href="get_time_8h_source.html">[code]</a></td></tr>
@@ -133,11 +129,13 @@ Files</h2></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:_m_ai_n_g_oevaluator_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_m_ai_n_g_oevaluator_8h.html">MAiNGOevaluator.h</a> <a href="_m_ai_n_g_oevaluator_8h_source.html">[code]</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_m_ai_n_g_o_exception_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_m_ai_n_g_o_exception_8h.html">MAiNGOException.h</a> <a href="_m_ai_n_g_o_exception_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:_m_ai_n_g_omodel_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_m_ai_n_g_omodel_8h.html">MAiNGOmodel.h</a> <a href="_m_ai_n_g_omodel_8h_source.html">[code]</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:_m_ai_n_g_omodel_eps_con_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_m_ai_n_g_omodel_eps_con_8h.html">MAiNGOmodelEpsCon.h</a> <a href="_m_ai_n_g_omodel_eps_con_8h_source.html">[code]</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:manual_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="manual_8h.html">manual.h</a> <a href="manual_8h_source.html">[code]</a></td></tr>
+<tr class="memitem:_m_ai_n_g_o_mpi_exception_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_m_ai_n_g_o_mpi_exception_8h.html">MAiNGOMpiException.h</a> <a href="_m_ai_n_g_o_mpi_exception_8h_source.html">[code]</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:mc_forward_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mc_forward_8h.html">mcForward.h</a> <a href="mc_forward_8h_source.html">[code]</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -186,7 +184,7 @@ Files</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/dir_bfccd401955b95cf8c75461437045ac0.js b/doc/html/dir_bfccd401955b95cf8c75461437045ac0.js
index af591007fd26ee31189def3075830fc5dae01712..718d506973bfeaf04e2e50971cc56f0b63f29c74 100644
--- a/doc/html/dir_bfccd401955b95cf8c75461437045ac0.js
+++ b/doc/html/dir_bfccd401955b95cf8c75461437045ac0.js
@@ -4,17 +4,11 @@ var dir_bfccd401955b95cf8c75461437045ac0 =
     [ "bab.h", "bab_8h.html", [
       [ "BranchAndBound", "classmaingo_1_1bab_1_1_branch_and_bound.html", "classmaingo_1_1bab_1_1_branch_and_bound" ]
     ] ],
-    [ "babWALL.h", "bab_w_a_l_l_8h.html", [
-      [ "BranchAndBound", "classmaingo_1_1bab_1_1_branch_and_bound.html", "classmaingo_1_1bab_1_1_branch_and_bound" ]
-    ] ],
     [ "constraint.h", "constraint_8h.html", "constraint_8h" ],
     [ "evaluationContainer.h", "evaluation_container_8h.html", [
-      [ "modelFunction", "structmaingo_1_1model_function.html", "structmaingo_1_1model_function" ],
+      [ "ModelFunction", "structmaingo_1_1_model_function.html", "structmaingo_1_1_model_function" ],
       [ "EvaluationContainer", "structmaingo_1_1_evaluation_container.html", "structmaingo_1_1_evaluation_container" ]
     ] ],
-    [ "exceptions.h", "exceptions_8h.html", [
-      [ "MAiNGOException", "classmaingo_1_1_m_ai_n_g_o_exception.html", "classmaingo_1_1_m_ai_n_g_o_exception" ]
-    ] ],
     [ "functionWrapper.h", "function_wrapper_8h.html", "function_wrapper_8h" ],
     [ "getTime.h", "get_time_8h.html", "get_time_8h" ],
     [ "intervalLibrary.h", "interval_library_8h.html", "interval_library_8h" ],
@@ -41,11 +35,14 @@ var dir_bfccd401955b95cf8c75461437045ac0 =
     ] ],
     [ "MAiNGOdebug.h", "_m_ai_n_g_odebug_8h.html", "_m_ai_n_g_odebug_8h" ],
     [ "MAiNGOevaluator.h", "_m_ai_n_g_oevaluator_8h.html", "_m_ai_n_g_oevaluator_8h" ],
+    [ "MAiNGOException.h", "_m_ai_n_g_o_exception_8h.html", [
+      [ "MAiNGOException", "classmaingo_1_1_m_ai_n_g_o_exception.html", "classmaingo_1_1_m_ai_n_g_o_exception" ]
+    ] ],
     [ "MAiNGOmodel.h", "_m_ai_n_g_omodel_8h.html", "_m_ai_n_g_omodel_8h" ],
     [ "MAiNGOmodelEpsCon.h", "_m_ai_n_g_omodel_eps_con_8h.html", [
       [ "MAiNGOmodelEpsCon", "classmaingo_1_1_m_ai_n_g_omodel_eps_con.html", "classmaingo_1_1_m_ai_n_g_omodel_eps_con" ]
     ] ],
-    [ "manual.h", "manual_8h.html", null ],
+    [ "MAiNGOMpiException.h", "_m_ai_n_g_o_mpi_exception_8h.html", null ],
     [ "mcForward.h", "mc_forward_8h.html", "mc_forward_8h" ],
     [ "mpiUtilities.h", "mpi_utilities_8h.html", "mpi_utilities_8h" ],
     [ "outputVariable.h", "output_variable_8h.html", [
diff --git a/doc/html/dir_e05b43b1ebfd1f958e3d8d3f7545ccd7.html b/doc/html/dir_e05b43b1ebfd1f958e3d8d3f7545ccd7.html
index 8befe2ce8bb58ac64fa071335d7850e446ff74ae..527593a6d3d4ad0904fa2af37bfa98d284e6957b 100644
--- a/doc/html/dir_e05b43b1ebfd1f958e3d8d3f7545ccd7.html
+++ b/doc/html/dir_e05b43b1ebfd1f958e3d8d3f7545ccd7.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/dep/babbase/src Directory Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/dep/babbase/src Directory Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -108,7 +108,7 @@ Files</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_ede40f663fdbaac4622f0a2d30ba279b.html">dep</a></li><li class="navelem"><a class="el" href="dir_47e169a4fe08058254fbf7964fa7bfb6.html">babbase</a></li><li class="navelem"><a class="el" href="dir_e05b43b1ebfd1f958e3d8d3f7545ccd7.html">src</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/dir_ede40f663fdbaac4622f0a2d30ba279b.html b/doc/html/dir_ede40f663fdbaac4622f0a2d30ba279b.html
index 4f554422902663456a75ffbd56c99c805b22fed6..8e9fc0d2707c297ba018b41e8bfad9e33dede088 100644
--- a/doc/html/dir_ede40f663fdbaac4622f0a2d30ba279b.html
+++ b/doc/html/dir_ede40f663fdbaac4622f0a2d30ba279b.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/dep Directory Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/dep Directory Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -104,7 +104,7 @@ Directories</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_ede40f663fdbaac4622f0a2d30ba279b.html">dep</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/dir_fb6b81e558fe2a09cdb3602de97a65f7.html b/doc/html/dir_fb6b81e558fe2a09cdb3602de97a65f7.html
new file mode 100644
index 0000000000000000000000000000000000000000..1a0dd8fa375f4373a80e5932b72be0dbc967a364
--- /dev/null
+++ b/doc/html/dir_fb6b81e558fe2a09cdb3602de97a65f7.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>MAiNGO: C:/dobo01/maingo/pymaingo Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(initResizable);
+/* @license-end */</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><img alt="Logo" src="mango_only.png"/></td>
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">MAiNGO
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(document).ready(function(){initNavTree('dir_fb6b81e558fe2a09cdb3602de97a65f7.html','');});
+/* @license-end */
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">pymaingo Directory Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:____init_____8py"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="____init_____8py.html">__init__.py</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:__pymaingo_8cpp"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="__pymaingo_8cpp.html">_pymaingo.cpp</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_fb6b81e558fe2a09cdb3602de97a65f7.html">pymaingo</a></li>
+    <li class="footer">Generated by
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/doc/html/dir_fb6b81e558fe2a09cdb3602de97a65f7.js b/doc/html/dir_fb6b81e558fe2a09cdb3602de97a65f7.js
new file mode 100644
index 0000000000000000000000000000000000000000..065e088e18c15f32e3a8a23c77d05708feb98972
--- /dev/null
+++ b/doc/html/dir_fb6b81e558fe2a09cdb3602de97a65f7.js
@@ -0,0 +1,5 @@
+var dir_fb6b81e558fe2a09cdb3602de97a65f7 =
+[
+    [ "__init__.py", "____init_____8py.html", null ],
+    [ "_pymaingo.cpp", "__pymaingo_8cpp.html", "__pymaingo_8cpp" ]
+];
\ No newline at end of file
diff --git a/doc/html/doxygen.css b/doc/html/doxygen.css
index e2515926c80d5d948bee1e24a4f8ca334efa0ad5..266c8b3a6b5c21a6c2f8441654463286578f3e56 100644
--- a/doc/html/doxygen.css
+++ b/doc/html/doxygen.css
@@ -1,4 +1,4 @@
-/* The standard CSS for doxygen 1.8.15 */
+/* The standard CSS for doxygen 1.8.14 */
 
 body, table, div, p, dl {
 	font: 400 14px/22px Roboto,sans-serif;
@@ -80,15 +80,6 @@ p.endtd {
 	margin-bottom: 2px;
 }
 
-p.interli {
-}
-
-p.interdd {
-}
-
-p.intertd {
-}
-
 /* @end */
 
 caption {
@@ -143,12 +134,12 @@ a.qindex {
 a.qindexHL {
 	font-weight: bold;
 	background-color: #9CAFD4;
-	color: #FFFFFF;
+	color: #ffffff;
 	border: 1px double #869DCA;
 }
 
 .contents a.qindexHL:visited {
-        color: #FFFFFF;
+        color: #ffffff;
 }
 
 a.el {
@@ -172,25 +163,6 @@ dl.el {
 	margin-left: -1cm;
 }
 
-ul {
-  overflow: hidden; /*Fixed: list item bullets overlap floating elements*/
-}
-
-#side-nav ul {
-  overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */
-}
-
-#main-nav ul {
-  overflow: visible; /* reset ul rule for the navigation bar drop down lists */
-}
-
-.fragment {
-  text-align: left;
-  direction: ltr;
-  overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/
-  overflow-y: hidden;
-}
-
 pre.fragment {
         border: 1px solid #C4CFE5;
         background-color: #FBFCFD;
@@ -205,8 +177,8 @@ pre.fragment {
 }
 
 div.fragment {
-  padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/
-  margin: 4px 8px 4px 2px;
+        padding: 0px;
+        margin: 4px 8px 4px 2px;
 	background-color: #FBFCFD;
 	border: 1px solid #C4CFE5;
 }
@@ -276,7 +248,7 @@ span.lineno a:hover {
 div.ah, span.ah {
 	background-color: black;
 	font-weight: bold;
-	color: #FFFFFF;
+	color: #ffffff;
 	margin-bottom: 3px;
 	margin-top: 3px;
 	padding: 0.2em;
@@ -352,7 +324,7 @@ img.formulaDsp {
 	
 }
 
-img.formulaInl, img.inline {
+img.formulaInl {
 	vertical-align: middle;
 }
 
@@ -430,13 +402,6 @@ blockquote {
         padding: 0 12px 0 16px;
 }
 
-blockquote.DocNodeRTL {
-   border-left: 0;
-   border-right: 2px solid #9CAFD4;
-   margin: 0 4px 0 24px;
-   padding: 0 16px 0 12px;
-}
-
 /* @end */
 
 /*
@@ -701,17 +666,17 @@ dl.reflist dd {
         padding-left: 0px;
 }       
 
-.params .paramname, .retval .paramname, .tparams .paramname {
+.params .paramname, .retval .paramname {
         font-weight: bold;
         vertical-align: top;
 }
         
-.params .paramtype, .tparams .paramtype {
+.params .paramtype {
         font-style: italic;
         vertical-align: top;
 }       
         
-.params .paramdir, .tparams .paramdir {
+.params .paramdir {
         font-family: "courier new",courier,monospace;
         vertical-align: top;
 }
@@ -1116,143 +1081,72 @@ div.headertitle
 	padding: 5px 5px 5px 10px;
 }
 
-.PageDocRTL-title div.headertitle {
-  text-align: right;
-  direction: rtl;
-}
-
-dl {
-        padding: 0 0 0 0;
+dl
+{
+        padding: 0 0 0 10px;
 }
 
-/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */
-dl.section {
+/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */
+dl.section
+{
 	margin-left: 0px;
 	padding-left: 0px;
 }
 
-dl.section.DocNodeRTL {
-  margin-right: 0px;
-  padding-right: 0px;
-}
-
-dl.note {
-  margin-left: -7px;
-  padding-left: 3px;
-  border-left: 4px solid;
-  border-color: #D0C000;
-}
-
-dl.note.DocNodeRTL {
-  margin-left: 0;
-  padding-left: 0;
-  border-left: 0;
-  margin-right: -7px;
-  padding-right: 3px;
-  border-right: 4px solid;
-  border-color: #D0C000;
-}
-
-dl.warning, dl.attention {
-  margin-left: -7px;
-  padding-left: 3px;
-  border-left: 4px solid;
-  border-color: #FF0000;
-}
-
-dl.warning.DocNodeRTL, dl.attention.DocNodeRTL {
-  margin-left: 0;
-  padding-left: 0;
-  border-left: 0;
-  margin-right: -7px;
-  padding-right: 3px;
-  border-right: 4px solid;
-  border-color: #FF0000;
-}
-
-dl.pre, dl.post, dl.invariant {
-  margin-left: -7px;
-  padding-left: 3px;
-  border-left: 4px solid;
-  border-color: #00D000;
-}
-
-dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL {
-  margin-left: 0;
-  padding-left: 0;
-  border-left: 0;
-  margin-right: -7px;
-  padding-right: 3px;
-  border-right: 4px solid;
-  border-color: #00D000;
+dl.note
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #D0C000;
 }
 
-dl.deprecated {
-  margin-left: -7px;
-  padding-left: 3px;
-  border-left: 4px solid;
-  border-color: #505050;
+dl.warning, dl.attention
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #FF0000;
 }
 
-dl.deprecated.DocNodeRTL {
-  margin-left: 0;
-  padding-left: 0;
-  border-left: 0;
-  margin-right: -7px;
-  padding-right: 3px;
-  border-right: 4px solid;
-  border-color: #505050;
+dl.pre, dl.post, dl.invariant
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #00D000;
 }
 
-dl.todo {
-  margin-left: -7px;
-  padding-left: 3px;
-  border-left: 4px solid;
-  border-color: #00C0E0;
+dl.deprecated
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #505050;
 }
 
-dl.todo.DocNodeRTL {
-  margin-left: 0;
-  padding-left: 0;
-  border-left: 0;
-  margin-right: -7px;
-  padding-right: 3px;
-  border-right: 4px solid;
-  border-color: #00C0E0;
+dl.todo
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #00C0E0;
 }
 
-dl.test {
-  margin-left: -7px;
-  padding-left: 3px;
-  border-left: 4px solid;
-  border-color: #3030E0;
+dl.test
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #3030E0;
 }
 
-dl.test.DocNodeRTL {
-  margin-left: 0;
-  padding-left: 0;
-  border-left: 0;
-  margin-right: -7px;
-  padding-right: 3px;
-  border-right: 4px solid;
-  border-color: #3030E0;
-}
-
-dl.bug {
-  margin-left: -7px;
-  padding-left: 3px;
-  border-left: 4px solid;
-  border-color: #C08050;
-}
-
-dl.bug.DocNodeRTL {
-  margin-left: 0;
-  padding-left: 0;
-  border-left: 0;
-  margin-right: -7px;
-  padding-right: 3px;
-  border-right: 4px solid;
-  border-color: #C08050;
+dl.bug
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #C08050;
 }
 
 dl.section dd {
@@ -1369,11 +1263,6 @@ div.toc {
         width: 200px;
 }
 
-.PageDocRTL-title div.toc {
-  float: left !important;
-  text-align: right;
-}
-
 div.toc li {
         background: url("bdwn.png") no-repeat scroll 0 5px transparent;
         font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
@@ -1382,12 +1271,6 @@ div.toc li {
         padding-top: 2px;
 }
 
-.PageDocRTL-title div.toc li {
-  background-position-x: right !important;
-  padding-left: 0 !important;
-  padding-right: 10px;
-}
-
 div.toc h3 {
         font: bold 12px/1.2 Arial,FreeSans,sans-serif;
 	color: #4665A2;
@@ -1417,26 +1300,6 @@ div.toc li.level4 {
         margin-left: 45px;
 }
 
-.PageDocRTL-title div.toc li.level1 {
-  margin-left: 0 !important;
-  margin-right: 0;
-}
-
-.PageDocRTL-title div.toc li.level2 {
-  margin-left: 0 !important;
-  margin-right: 15px;
-}
-
-.PageDocRTL-title div.toc li.level3 {
-  margin-left: 0 !important;
-  margin-right: 30px;
-}
-
-.PageDocRTL-title div.toc li.level4 {
-  margin-left: 0 !important;
-  margin-right: 45px;
-}
-
 .inherit_header {
         font-weight: bold;
         color: gray;
@@ -1550,7 +1413,7 @@ tr.heading h2 {
 }
 
 #powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {
-	border-top-color: #FFFFFF;
+	border-top-color: #ffffff;
 	border-width: 10px;
 	margin: 0px -10px;
 }
@@ -1578,7 +1441,7 @@ tr.heading h2 {
 }
 
 #powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {
-	border-bottom-color: #FFFFFF;
+	border-bottom-color: #ffffff;
 	border-width: 10px;
 	margin: 0px -10px;
 }
@@ -1605,7 +1468,7 @@ tr.heading h2 {
 	left: 100%;
 }
 #powerTip.e:after {
-	border-left-color: #FFFFFF;
+	border-left-color: #ffffff;
 	border-width: 10px;
 	top: 50%;
 	margin-top: -10px;
@@ -1621,7 +1484,7 @@ tr.heading h2 {
 	right: 100%;
 }
 #powerTip.w:after {
-	border-right-color: #FFFFFF;
+	border-right-color: #ffffff;
 	border-width: 10px;
 	top: 50%;
 	margin-top: -10px;
@@ -1729,36 +1592,5 @@ th.markdownTableHeadCenter, td.markdownTableBodyCenter {
 	text-align: center
 }
 
-.DocNodeRTL {
-  text-align: right;
-  direction: rtl;
-}
-
-.DocNodeLTR {
-  text-align: left;
-  direction: ltr;
-}
-
-table.DocNodeRTL {
-   width: auto;
-   margin-right: 0;
-   margin-left: auto;
-}
-
-table.DocNodeLTR {
-   width: auto;
-   margin-right: auto;
-   margin-left: 0;
-}
 
-tt, code, kbd, samp
-{
-  display: inline-block;
-  direction:ltr; 
-}
 /* @end */
-
-u {
-	text-decoration: underline;
-}
-
diff --git a/doc/html/dynsections.js b/doc/html/dynsections.js
index ea0a7b39a1bb1d393cdf0b7060d323dad27564f2..c1ce12260c1dfc2696ed07506250176fb3269af9 100644
--- a/doc/html/dynsections.js
+++ b/doc/html/dynsections.js
@@ -60,7 +60,7 @@ function toggleLevel(level)
       $(this).show();
     } else if (l==level+1) {
       i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
-      a.html('&#9658;');
+      a.html('&#9654;');
       $(this).show();
     } else {
       $(this).hide();
@@ -87,7 +87,7 @@ function toggleFolder(id)
     // replace down arrow by right arrow for current row
     var currentRowSpans = currentRow.find("span");
     currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
-    currentRowSpans.filter(".arrow").html('&#9658;');
+    currentRowSpans.filter(".arrow").html('&#9654;');
     rows.filter("[id^=row_"+id+"]").hide(); // hide all children
   } else { // we are SHOWING
     // replace right arrow by down arrow for current row
@@ -97,7 +97,7 @@ function toggleFolder(id)
     // replace down arrows by right arrows for child rows
     var childRowsSpans = childRows.find("span");
     childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
-    childRowsSpans.filter(".arrow").html('&#9658;');
+    childRowsSpans.filter(".arrow").html('&#9654;');
     childRows.show(); //show all children
   }
   updateStripes();
diff --git a/doc/html/evaluation_container_8h.html b/doc/html/evaluation_container_8h.html
index 7932f657631a2fef35f036c08d3268812aec8d98..3cedf18707f8657dc54f99e4cbf92b87331518b8 100644
--- a/doc/html/evaluation_container_8h.html
+++ b/doc/html/evaluation_container_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/evaluationContainer.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/evaluationContainer.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -101,8 +101,8 @@ $(document).ready(function(){initNavTree('evaluation_container_8h.html','');});
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
 Classes</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1model_function.html">maingo::modelFunction</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct for making work with the <a class="el" href="structmaingo_1_1_evaluation_container.html" title="Struct for storing the values returned by model evaluation at the given point &quot;var&quot;.">EvaluationContainer</a> easier for the user and also to ensure backward compatibility.  <a href="structmaingo_1_1model_function.html#details">More...</a><br /></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_model_function.html">maingo::ModelFunction</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct for making work with the <a class="el" href="structmaingo_1_1_evaluation_container.html" title="Struct for storing the values returned by model evaluation at the given point &quot;var&quot;. ">EvaluationContainer</a> easier for the user and also to ensure backward compatibility.  <a href="structmaingo_1_1_model_function.html#details">More...</a><br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_evaluation_container.html">maingo::EvaluationContainer</a></td></tr>
 <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct for storing the values returned by model evaluation at the given point "var".  <a href="structmaingo_1_1_evaluation_container.html#details">More...</a><br /></td></tr>
@@ -122,7 +122,7 @@ Namespaces</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="evaluation_container_8h.html">evaluationContainer.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/evaluation_container_8h_source.html b/doc/html/evaluation_container_8h_source.html
index b281df9a8146f1f4ad5c114f7e114d675d0ce866..56972c046740254c0a45601957bee1a8dfe2ae10 100644
--- a/doc/html/evaluation_container_8h_source.html
+++ b/doc/html/evaluation_container_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/evaluationContainer.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/evaluationContainer.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,36 +90,39 @@ $(document).ready(function(){initNavTree('evaluation_container_8h_source.html','
 <div class="title">evaluationContainer.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="evaluation_container_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file evaluationContainer.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing declaration of the EvaluationContainer struct used to </span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *        communicate model results</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="output_variable_8h.html">outputVariable.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;ffunc.hpp&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="structmaingo_1_1model_function.html">   33</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmaingo_1_1model_function.html">modelFunction</a> {</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="structmaingo_1_1model_function.html#a6c599ca9d697a04a892ec228b88b7b02">   35</a></span>&#160;    <a class="code" href="structmaingo_1_1model_function.html#a6c599ca9d697a04a892ec228b88b7b02">modelFunction</a>() {}  </div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="structmaingo_1_1model_function.html#a8b288537eb4166adf7ffb65456bee18e">   36</a></span>&#160;    <a class="code" href="structmaingo_1_1model_function.html#a8b288537eb4166adf7ffb65456bee18e">~modelFunction</a>() {} </div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="structmaingo_1_1model_function.html#ac08320da20704d3bec91fb2540dfa12f">   41</a></span>&#160;    <a class="code" href="structmaingo_1_1model_function.html#ac08320da20704d3bec91fb2540dfa12f">modelFunction</a>(<span class="keyword">const</span> mc::FFVar var)</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    {</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;        <a class="code" href="structmaingo_1_1model_function.html#ad32e16eebdef8b4e555417cc514c43c0">value</a>.clear();</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        <a class="code" href="structmaingo_1_1model_function.html#ad32e16eebdef8b4e555417cc514c43c0">value</a>.push_back(var);</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;        <a class="code" href="structmaingo_1_1model_function.html#a602058ed28dc600017e666b82faf43b6">name</a>.clear();</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;        <a class="code" href="structmaingo_1_1model_function.html#a602058ed28dc600017e666b82faf43b6">name</a>.push_back(<span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    }</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="structmaingo_1_1model_function.html#a43527d838950718179d9055ae7aeb96c">   52</a></span>&#160;    <a class="code" href="structmaingo_1_1model_function.html#a43527d838950718179d9055ae7aeb96c">modelFunction</a>(<span class="keyword">const</span> mc::FFVar var, <span class="keyword">const</span> std::string &amp;str)</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    {</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;        <a class="code" href="structmaingo_1_1model_function.html#ad32e16eebdef8b4e555417cc514c43c0">value</a>.clear();</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;        <a class="code" href="structmaingo_1_1model_function.html#ad32e16eebdef8b4e555417cc514c43c0">value</a>.push_back(var);</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;        <a class="code" href="structmaingo_1_1model_function.html#a602058ed28dc600017e666b82faf43b6">name</a>.clear();</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        <a class="code" href="structmaingo_1_1model_function.html#a602058ed28dc600017e666b82faf43b6">name</a>.push_back(str);</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    }</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="structmaingo_1_1model_function.html#ac410fafee15b027dc87007207aca4fe0">   63</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="structmaingo_1_1model_function.html#ac410fafee15b027dc87007207aca4fe0">clear</a>()</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    {</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;        <a class="code" href="structmaingo_1_1model_function.html#ad32e16eebdef8b4e555417cc514c43c0">value</a>.clear();</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;        <a class="code" href="structmaingo_1_1model_function.html#a602058ed28dc600017e666b82faf43b6">name</a>.clear();</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    }</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="structmaingo_1_1model_function.html#aea4187e90212d71b2f368711cc5ee4cb">   72</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="structmaingo_1_1model_function.html#aea4187e90212d71b2f368711cc5ee4cb">push_back</a>(<span class="keyword">const</span> mc::FFVar var)</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    {</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        <a class="code" href="structmaingo_1_1model_function.html#ad32e16eebdef8b4e555417cc514c43c0">value</a>.push_back(var);</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;        <a class="code" href="structmaingo_1_1model_function.html#a602058ed28dc600017e666b82faf43b6">name</a>.push_back(<span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    }</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="structmaingo_1_1model_function.html#a4acc3cdbd96f5b6b5b4e803ee1dbf369">   81</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="structmaingo_1_1model_function.html#a4acc3cdbd96f5b6b5b4e803ee1dbf369">push_back</a>(<span class="keyword">const</span> mc::FFVar var, <span class="keyword">const</span> std::string &amp;str)</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    {</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;        <a class="code" href="structmaingo_1_1model_function.html#ad32e16eebdef8b4e555417cc514c43c0">value</a>.push_back(var);</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;        <a class="code" href="structmaingo_1_1model_function.html#a602058ed28dc600017e666b82faf43b6">name</a>.push_back(str);</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    }</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="structmaingo_1_1model_function.html#ab7c7f3001efc0df4c1fca1dba56dcf45">   90</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="structmaingo_1_1model_function.html#ab7c7f3001efc0df4c1fca1dba56dcf45">push_back</a>(<span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;vars)</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    {</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; vars.size(); i++) {</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;            <a class="code" href="structmaingo_1_1model_function.html#ad32e16eebdef8b4e555417cc514c43c0">value</a>.push_back(vars[i]);</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;            <a class="code" href="structmaingo_1_1model_function.html#a602058ed28dc600017e666b82faf43b6">name</a>.push_back(<span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;        }</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    }</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="structmaingo_1_1model_function.html#a67d7053072c5d28e36f91ec598a09011">  101</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="structmaingo_1_1model_function.html#a67d7053072c5d28e36f91ec598a09011">push_back</a>(<span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;vars, <span class="keyword">const</span> std::string &amp;baseName)</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    {</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        <span class="keywordflow">if</span> (vars.size() == 1) {</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;            <a class="code" href="structmaingo_1_1model_function.html#ad32e16eebdef8b4e555417cc514c43c0">value</a>.push_back(vars[0]);</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;            <a class="code" href="structmaingo_1_1model_function.html#a602058ed28dc600017e666b82faf43b6">name</a>.push_back(baseName);</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;        }</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (baseName == <span class="stringliteral">&quot;&quot;</span>) {</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;            <a class="code" href="structmaingo_1_1model_function.html#aea4187e90212d71b2f368711cc5ee4cb">push_back</a>(vars);</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        }</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;        <span class="keywordflow">else</span> {</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;            <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; vars.size(); i++) {</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;                <a class="code" href="structmaingo_1_1model_function.html#ad32e16eebdef8b4e555417cc514c43c0">value</a>.push_back(vars[i]);</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;                <a class="code" href="structmaingo_1_1model_function.html#a602058ed28dc600017e666b82faf43b6">name</a>.push_back(baseName + <span class="charliteral">&#39;_&#39;</span> + std::to_string(i + 1));</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;            }</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        }</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    }</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="structmaingo_1_1model_function.html#a6625f2f7e468b0d5b1590284826e355a">  121</a></span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="structmaingo_1_1model_function.html#a6625f2f7e468b0d5b1590284826e355a">size</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;<span class="keyword">    </span>{</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1model_function.html#ad32e16eebdef8b4e555417cc514c43c0">value</a>.size();</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    }</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="structmaingo_1_1model_function.html#a3ccf2b6601e828e0fff4f27356d78f8a">  129</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="structmaingo_1_1model_function.html#a3ccf2b6601e828e0fff4f27356d78f8a">resize</a>(<span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="structmaingo_1_1model_function.html#a6625f2f7e468b0d5b1590284826e355a">size</a>)</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    {</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;        <a class="code" href="structmaingo_1_1model_function.html#ad32e16eebdef8b4e555417cc514c43c0">value</a>.resize(<a class="code" href="structmaingo_1_1model_function.html#a6625f2f7e468b0d5b1590284826e355a">size</a>);</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;        <a class="code" href="structmaingo_1_1model_function.html#a602058ed28dc600017e666b82faf43b6">name</a>.resize(<a class="code" href="structmaingo_1_1model_function.html#a6625f2f7e468b0d5b1590284826e355a">size</a>);</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    }</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="structmaingo_1_1model_function.html#ac7ccbc9aabfa39f93e01e706f74f649e">  138</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="structmaingo_1_1model_function.html#ac7ccbc9aabfa39f93e01e706f74f649e">set_value</a>(<span class="keyword">const</span> mc::FFVar var, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> i)</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    {</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        <a class="code" href="structmaingo_1_1model_function.html#ad32e16eebdef8b4e555417cc514c43c0">value</a>[i] = var;</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    }</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="structmaingo_1_1model_function.html#ae27a8eb161619cea1e29a6df0d38c3d7">  146</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="structmaingo_1_1model_function.html#ae27a8eb161619cea1e29a6df0d38c3d7">set_name</a>(<span class="keyword">const</span> std::string str, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> i)</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    {</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        <a class="code" href="structmaingo_1_1model_function.html#a602058ed28dc600017e666b82faf43b6">name</a>[i] = str;</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    }</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="structmaingo_1_1model_function.html#acfa12e44318f039d4dd7b62d6da21996">  154</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="structmaingo_1_1model_function.html">modelFunction</a> &amp;<a class="code" href="structmaingo_1_1model_function.html#acfa12e44318f039d4dd7b62d6da21996">operator=</a>(<span class="keyword">const</span> mc::FFVar var)</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    {</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;        <a class="code" href="structmaingo_1_1model_function.html#ad32e16eebdef8b4e555417cc514c43c0">value</a>.clear();</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;        <a class="code" href="structmaingo_1_1model_function.html#ad32e16eebdef8b4e555417cc514c43c0">value</a>.push_back(var);</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        <a class="code" href="structmaingo_1_1model_function.html#a602058ed28dc600017e666b82faf43b6">name</a>.clear();</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;        <a class="code" href="structmaingo_1_1model_function.html#a602058ed28dc600017e666b82faf43b6">name</a>.push_back(<span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;    }</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="structmaingo_1_1model_function.html#a97f49921923957ca2170e5ab65959fbb">  166</a></span>&#160;    <span class="keyword">inline</span> mc::FFVar &amp;<a class="code" href="structmaingo_1_1model_function.html#a97f49921923957ca2170e5ab65959fbb">operator[]</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i)</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    {</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1model_function.html#ad32e16eebdef8b4e555417cc514c43c0">value</a>[i];</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    }</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="structmaingo_1_1model_function.html#a53bb709db5915f9762d84b3a160c549e">  174</a></span>&#160;    <span class="keyword">inline</span> mc::FFVar &amp;<a class="code" href="structmaingo_1_1model_function.html#a53bb709db5915f9762d84b3a160c549e">at</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i)</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    {</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1model_function.html#ad32e16eebdef8b4e555417cc514c43c0">value</a>.at(i);</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    }</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="structmaingo_1_1model_function.html#a602058ed28dc600017e666b82faf43b6">  179</a></span>&#160;    std::vector&lt;std::string&gt; <a class="code" href="structmaingo_1_1model_function.html#a602058ed28dc600017e666b82faf43b6">name</a>; </div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="structmaingo_1_1model_function.html#ad32e16eebdef8b4e555417cc514c43c0">  180</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="structmaingo_1_1model_function.html#ad32e16eebdef8b4e555417cc514c43c0">value</a>;  </div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;};</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="structmaingo_1_1_evaluation_container.html">  192</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmaingo_1_1_evaluation_container.html">EvaluationContainer</a> {</div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="structmaingo_1_1_evaluation_container.html#af0c40f10ae5192b4bb6478138c6ad1a0">  193</a></span>&#160;    <a class="code" href="structmaingo_1_1model_function.html">modelFunction</a> <a class="code" href="structmaingo_1_1_evaluation_container.html#af0c40f10ae5192b4bb6478138c6ad1a0">objective</a>;            </div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="structmaingo_1_1_evaluation_container.html#a6871b7430185e5c4152b941720b606f3">  194</a></span>&#160;    <a class="code" href="structmaingo_1_1model_function.html">modelFunction</a> <a class="code" href="structmaingo_1_1_evaluation_container.html#a6871b7430185e5c4152b941720b606f3">ineq</a>;                 </div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="structmaingo_1_1_evaluation_container.html#a9c91e67852946ccb7381351512875a06">  195</a></span>&#160;    <a class="code" href="structmaingo_1_1model_function.html">modelFunction</a> <a class="code" href="structmaingo_1_1_evaluation_container.html#a9c91e67852946ccb7381351512875a06">eq</a>;                   </div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="structmaingo_1_1_evaluation_container.html#af754c93b79ce6fa668c17d2fd26c812b">  196</a></span>&#160;    <a class="code" href="structmaingo_1_1model_function.html">modelFunction</a> <a class="code" href="structmaingo_1_1_evaluation_container.html#af754c93b79ce6fa668c17d2fd26c812b">ineqRelaxationOnly</a>;   </div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="structmaingo_1_1_evaluation_container.html#afd4671f76d0f58502f7f8a36bc574642">  197</a></span>&#160;    <a class="code" href="structmaingo_1_1model_function.html">modelFunction</a> <a class="code" href="structmaingo_1_1_evaluation_container.html#afd4671f76d0f58502f7f8a36bc574642">eqRelaxationOnly</a>;     </div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="structmaingo_1_1_evaluation_container.html#aa40bfc61f94bf6850d3ee53db7e2afeb">  198</a></span>&#160;    <a class="code" href="structmaingo_1_1model_function.html">modelFunction</a> <a class="code" href="structmaingo_1_1_evaluation_container.html#aa40bfc61f94bf6850d3ee53db7e2afeb">ineqSquash</a>;           </div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="structmaingo_1_1_evaluation_container.html#a86a57d19de362bd56b022103b14bd793">  199</a></span>&#160;    std::vector&lt;OutputVariable&gt; <a class="code" href="structmaingo_1_1_evaluation_container.html#a86a57d19de362bd56b022103b14bd793">output</a>; </div><div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="structmaingo_1_1_evaluation_container.html#ab9eb3ecf31c9d5d48ccb04880a635819">  204</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="structmaingo_1_1_evaluation_container.html#ab9eb3ecf31c9d5d48ccb04880a635819">clear</a>()</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    {</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;        <a class="code" href="structmaingo_1_1_evaluation_container.html#af0c40f10ae5192b4bb6478138c6ad1a0">objective</a>.<a class="code" href="structmaingo_1_1model_function.html#ac410fafee15b027dc87007207aca4fe0">clear</a>();</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;        <a class="code" href="structmaingo_1_1_evaluation_container.html#a6871b7430185e5c4152b941720b606f3">ineq</a>.<a class="code" href="structmaingo_1_1model_function.html#ac410fafee15b027dc87007207aca4fe0">clear</a>();</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;        <a class="code" href="structmaingo_1_1_evaluation_container.html#a9c91e67852946ccb7381351512875a06">eq</a>.<a class="code" href="structmaingo_1_1model_function.html#ac410fafee15b027dc87007207aca4fe0">clear</a>();</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;        <a class="code" href="structmaingo_1_1_evaluation_container.html#af754c93b79ce6fa668c17d2fd26c812b">ineqRelaxationOnly</a>.<a class="code" href="structmaingo_1_1model_function.html#ac410fafee15b027dc87007207aca4fe0">clear</a>();</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;        <a class="code" href="structmaingo_1_1_evaluation_container.html#afd4671f76d0f58502f7f8a36bc574642">eqRelaxationOnly</a>.<a class="code" href="structmaingo_1_1model_function.html#ac410fafee15b027dc87007207aca4fe0">clear</a>();</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;        <a class="code" href="structmaingo_1_1_evaluation_container.html#aa40bfc61f94bf6850d3ee53db7e2afeb">ineqSquash</a>.<a class="code" href="structmaingo_1_1model_function.html#ac410fafee15b027dc87007207aca4fe0">clear</a>();</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;        <a class="code" href="structmaingo_1_1_evaluation_container.html#a86a57d19de362bd56b022103b14bd793">output</a>.clear();</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;    }</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;};</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="structmaingo_1_1model_function_html_ae27a8eb161619cea1e29a6df0d38c3d7"><div class="ttname"><a href="structmaingo_1_1model_function.html#ae27a8eb161619cea1e29a6df0d38c3d7">maingo::modelFunction::set_name</a></div><div class="ttdeci">void set_name(const std::string str, const unsigned i)</div><div class="ttdoc">Function for seting name value at a given index.</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:146</div></div>
-<div class="ttc" id="structmaingo_1_1_evaluation_container_html_ab9eb3ecf31c9d5d48ccb04880a635819"><div class="ttname"><a href="structmaingo_1_1_evaluation_container.html#ab9eb3ecf31c9d5d48ccb04880a635819">maingo::EvaluationContainer::clear</a></div><div class="ttdeci">void clear()</div><div class="ttdoc">Clears all information, note that currently objective has not to be cleared, since it is overwritten.</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:204</div></div>
-<div class="ttc" id="structmaingo_1_1model_function_html_aea4187e90212d71b2f368711cc5ee4cb"><div class="ttname"><a href="structmaingo_1_1model_function.html#aea4187e90212d71b2f368711cc5ee4cb">maingo::modelFunction::push_back</a></div><div class="ttdeci">void push_back(const mc::FFVar var)</div><div class="ttdoc">Function for inserting a FFVar value at the end of the value vector.</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:72</div></div>
-<div class="ttc" id="structmaingo_1_1model_function_html_ac08320da20704d3bec91fb2540dfa12f"><div class="ttname"><a href="structmaingo_1_1model_function.html#ac08320da20704d3bec91fb2540dfa12f">maingo::modelFunction::modelFunction</a></div><div class="ttdeci">modelFunction(const mc::FFVar var)</div><div class="ttdoc">Constructor with FFVar value only.</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:41</div></div>
-<div class="ttc" id="structmaingo_1_1model_function_html_a6c599ca9d697a04a892ec228b88b7b02"><div class="ttname"><a href="structmaingo_1_1model_function.html#a6c599ca9d697a04a892ec228b88b7b02">maingo::modelFunction::modelFunction</a></div><div class="ttdeci">modelFunction()</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:35</div></div>
-<div class="ttc" id="structmaingo_1_1_evaluation_container_html_a9c91e67852946ccb7381351512875a06"><div class="ttname"><a href="structmaingo_1_1_evaluation_container.html#a9c91e67852946ccb7381351512875a06">maingo::EvaluationContainer::eq</a></div><div class="ttdeci">modelFunction eq</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:195</div></div>
-<div class="ttc" id="structmaingo_1_1_evaluation_container_html_a86a57d19de362bd56b022103b14bd793"><div class="ttname"><a href="structmaingo_1_1_evaluation_container.html#a86a57d19de362bd56b022103b14bd793">maingo::EvaluationContainer::output</a></div><div class="ttdeci">std::vector&lt; OutputVariable &gt; output</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:199</div></div>
-<div class="ttc" id="structmaingo_1_1model_function_html"><div class="ttname"><a href="structmaingo_1_1model_function.html">maingo::modelFunction</a></div><div class="ttdoc">Struct for making work with the EvaluationContainer easier for the user and also to ensure backward c...</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:33</div></div>
-<div class="ttc" id="structmaingo_1_1model_function_html_a6625f2f7e468b0d5b1590284826e355a"><div class="ttname"><a href="structmaingo_1_1model_function.html#a6625f2f7e468b0d5b1590284826e355a">maingo::modelFunction::size</a></div><div class="ttdeci">size_t size() const</div><div class="ttdoc">Function returning the size of the value vector. Note that value and name vectors have the same size ...</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:121</div></div>
-<div class="ttc" id="structmaingo_1_1_evaluation_container_html_aa40bfc61f94bf6850d3ee53db7e2afeb"><div class="ttname"><a href="structmaingo_1_1_evaluation_container.html#aa40bfc61f94bf6850d3ee53db7e2afeb">maingo::EvaluationContainer::ineqSquash</a></div><div class="ttdeci">modelFunction ineqSquash</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:198</div></div>
-<div class="ttc" id="structmaingo_1_1_evaluation_container_html"><div class="ttname"><a href="structmaingo_1_1_evaluation_container.html">maingo::EvaluationContainer</a></div><div class="ttdoc">Struct for storing the values returned by model evaluation at the given point &quot;var&quot;.</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:192</div></div>
-<div class="ttc" id="structmaingo_1_1model_function_html_ac410fafee15b027dc87007207aca4fe0"><div class="ttname"><a href="structmaingo_1_1model_function.html#ac410fafee15b027dc87007207aca4fe0">maingo::modelFunction::clear</a></div><div class="ttdeci">void clear()</div><div class="ttdoc">Constructor with FFVar value only.</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:63</div></div>
-<div class="ttc" id="structmaingo_1_1model_function_html_ab7c7f3001efc0df4c1fca1dba56dcf45"><div class="ttname"><a href="structmaingo_1_1model_function.html#ab7c7f3001efc0df4c1fca1dba56dcf45">maingo::modelFunction::push_back</a></div><div class="ttdeci">void push_back(const std::vector&lt; mc::FFVar &gt; &amp;vars)</div><div class="ttdoc">Function for inserting a vector of FFVar at the end of the value vector.</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:90</div></div>
-<div class="ttc" id="structmaingo_1_1model_function_html_a67d7053072c5d28e36f91ec598a09011"><div class="ttname"><a href="structmaingo_1_1model_function.html#a67d7053072c5d28e36f91ec598a09011">maingo::modelFunction::push_back</a></div><div class="ttdeci">void push_back(const std::vector&lt; mc::FFVar &gt; &amp;vars, const std::string &amp;baseName)</div><div class="ttdoc">Function for inserting a vector of FFVar at the end of the value vector with names.</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:101</div></div>
-<div class="ttc" id="structmaingo_1_1_evaluation_container_html_af0c40f10ae5192b4bb6478138c6ad1a0"><div class="ttname"><a href="structmaingo_1_1_evaluation_container.html#af0c40f10ae5192b4bb6478138c6ad1a0">maingo::EvaluationContainer::objective</a></div><div class="ttdeci">modelFunction objective</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:193</div></div>
-<div class="ttc" id="structmaingo_1_1model_function_html_a4acc3cdbd96f5b6b5b4e803ee1dbf369"><div class="ttname"><a href="structmaingo_1_1model_function.html#a4acc3cdbd96f5b6b5b4e803ee1dbf369">maingo::modelFunction::push_back</a></div><div class="ttdeci">void push_back(const mc::FFVar var, const std::string &amp;str)</div><div class="ttdoc">Function for inserting a FFVar and a name at the end of the vectors.</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:81</div></div>
-<div class="ttc" id="structmaingo_1_1model_function_html_a97f49921923957ca2170e5ab65959fbb"><div class="ttname"><a href="structmaingo_1_1model_function.html#a97f49921923957ca2170e5ab65959fbb">maingo::modelFunction::operator[]</a></div><div class="ttdeci">mc::FFVar &amp; operator[](const unsigned int i)</div><div class="ttdoc">[] operator for easier access to value vector</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:166</div></div>
-<div class="ttc" id="structmaingo_1_1_evaluation_container_html_a6871b7430185e5c4152b941720b606f3"><div class="ttname"><a href="structmaingo_1_1_evaluation_container.html#a6871b7430185e5c4152b941720b606f3">maingo::EvaluationContainer::ineq</a></div><div class="ttdeci">modelFunction ineq</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:194</div></div>
-<div class="ttc" id="structmaingo_1_1_evaluation_container_html_af754c93b79ce6fa668c17d2fd26c812b"><div class="ttname"><a href="structmaingo_1_1_evaluation_container.html#af754c93b79ce6fa668c17d2fd26c812b">maingo::EvaluationContainer::ineqRelaxationOnly</a></div><div class="ttdeci">modelFunction ineqRelaxationOnly</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:196</div></div>
-<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO</div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
-<div class="ttc" id="structmaingo_1_1model_function_html_a3ccf2b6601e828e0fff4f27356d78f8a"><div class="ttname"><a href="structmaingo_1_1model_function.html#a3ccf2b6601e828e0fff4f27356d78f8a">maingo::modelFunction::resize</a></div><div class="ttdeci">void resize(const size_t size)</div><div class="ttdoc">Function for resizing of the underlying vectors.</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:129</div></div>
-<div class="ttc" id="structmaingo_1_1model_function_html_a53bb709db5915f9762d84b3a160c549e"><div class="ttname"><a href="structmaingo_1_1model_function.html#a53bb709db5915f9762d84b3a160c549e">maingo::modelFunction::at</a></div><div class="ttdeci">mc::FFVar &amp; at(const unsigned int i)</div><div class="ttdoc">Function for accessing elements.</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:174</div></div>
-<div class="ttc" id="structmaingo_1_1model_function_html_ac7ccbc9aabfa39f93e01e706f74f649e"><div class="ttname"><a href="structmaingo_1_1model_function.html#ac7ccbc9aabfa39f93e01e706f74f649e">maingo::modelFunction::set_value</a></div><div class="ttdeci">void set_value(const mc::FFVar var, const unsigned i)</div><div class="ttdoc">Function for seting FFVar value at a given index.</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:138</div></div>
-<div class="ttc" id="structmaingo_1_1model_function_html_a43527d838950718179d9055ae7aeb96c"><div class="ttname"><a href="structmaingo_1_1model_function.html#a43527d838950718179d9055ae7aeb96c">maingo::modelFunction::modelFunction</a></div><div class="ttdeci">modelFunction(const mc::FFVar var, const std::string &amp;str)</div><div class="ttdoc">Constructor with FFVar value and a name.</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:52</div></div>
-<div class="ttc" id="structmaingo_1_1model_function_html_a602058ed28dc600017e666b82faf43b6"><div class="ttname"><a href="structmaingo_1_1model_function.html#a602058ed28dc600017e666b82faf43b6">maingo::modelFunction::name</a></div><div class="ttdeci">std::vector&lt; std::string &gt; name</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:179</div></div>
-<div class="ttc" id="structmaingo_1_1model_function_html_a8b288537eb4166adf7ffb65456bee18e"><div class="ttname"><a href="structmaingo_1_1model_function.html#a8b288537eb4166adf7ffb65456bee18e">maingo::modelFunction::~modelFunction</a></div><div class="ttdeci">~modelFunction()</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:36</div></div>
+<a href="evaluation_container_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="output_variable_8h.html">outputVariable.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &quot;ffunc.hpp&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="structmaingo_1_1_model_function.html">   28</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmaingo_1_1_model_function.html">ModelFunction</a> {</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    <a class="code" href="structmaingo_1_1_model_function.html#a59519941d0bb502f58c197894c6a0d2a">ModelFunction</a>()                      = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    <a class="code" href="structmaingo_1_1_model_function.html#af5cbeca4a2b4e75d111e6073e9351a8b">~ModelFunction</a>()                     = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    <a class="code" href="structmaingo_1_1_model_function.html#a59519941d0bb502f58c197894c6a0d2a">ModelFunction</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1_model_function.html">ModelFunction</a> &amp;) = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <a class="code" href="structmaingo_1_1_model_function.html#a59519941d0bb502f58c197894c6a0d2a">ModelFunction</a>(<a class="code" href="structmaingo_1_1_model_function.html">ModelFunction</a> &amp;&amp;)      = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    <a class="code" href="structmaingo_1_1_model_function.html">ModelFunction</a> &amp;<a class="code" href="structmaingo_1_1_model_function.html#a2dad7f76d791717fc532cd4e1eab37b2">operator=</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1_model_function.html">ModelFunction</a> &amp;) = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    <a class="code" href="structmaingo_1_1_model_function.html">ModelFunction</a> &amp;<a class="code" href="structmaingo_1_1_model_function.html#a2dad7f76d791717fc532cd4e1eab37b2">operator=</a>(<a class="code" href="structmaingo_1_1_model_function.html">ModelFunction</a> &amp;&amp;) = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="structmaingo_1_1_model_function.html#a2a99a82296b2b73f9375c1396d40d2b4">   40</a></span>&#160;    <a class="code" href="structmaingo_1_1_model_function.html#a2a99a82296b2b73f9375c1396d40d2b4">ModelFunction</a>(<span class="keyword">const</span> mc::FFVar var)</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    {</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        <a class="code" href="structmaingo_1_1_model_function.html#a3468e730a934be8be5bf5ee2f84aacc7">value</a>.clear();</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;        <a class="code" href="structmaingo_1_1_model_function.html#a3468e730a934be8be5bf5ee2f84aacc7">value</a>.push_back(var);</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        <a class="code" href="structmaingo_1_1_model_function.html#acb85f5084123b7d4d42c2d0e03b3e7c6">name</a>.clear();</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;        <a class="code" href="structmaingo_1_1_model_function.html#acb85f5084123b7d4d42c2d0e03b3e7c6">name</a>.push_back(<span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    }</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="structmaingo_1_1_model_function.html#a99dfad4b58342d3f6bf80813369f079e">   51</a></span>&#160;    <a class="code" href="structmaingo_1_1_model_function.html#a99dfad4b58342d3f6bf80813369f079e">ModelFunction</a>(<span class="keyword">const</span> mc::FFVar var, <span class="keyword">const</span> std::string &amp;str)</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    {</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;        <a class="code" href="structmaingo_1_1_model_function.html#a3468e730a934be8be5bf5ee2f84aacc7">value</a>.clear();</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;        <a class="code" href="structmaingo_1_1_model_function.html#a3468e730a934be8be5bf5ee2f84aacc7">value</a>.push_back(var);</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;        <a class="code" href="structmaingo_1_1_model_function.html#acb85f5084123b7d4d42c2d0e03b3e7c6">name</a>.clear();</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;        <a class="code" href="structmaingo_1_1_model_function.html#acb85f5084123b7d4d42c2d0e03b3e7c6">name</a>.push_back(str);</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    }</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="structmaingo_1_1_model_function.html#a643e6d2e6cb1a5d78eae384361be9d72">   62</a></span>&#160;    <a class="code" href="structmaingo_1_1_model_function.html#a643e6d2e6cb1a5d78eae384361be9d72">ModelFunction</a>(<span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;vars)</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    {</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;        <a class="code" href="structmaingo_1_1_model_function.html#a3468e730a934be8be5bf5ee2f84aacc7">value</a> = vars;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;        <a class="code" href="structmaingo_1_1_model_function.html#acb85f5084123b7d4d42c2d0e03b3e7c6">name</a>  = std::vector&lt;std::string&gt;(<a class="code" href="structmaingo_1_1_model_function.html#a3468e730a934be8be5bf5ee2f84aacc7">value</a>.size(), <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    }</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="structmaingo_1_1_model_function.html#aadda375307d57abd5a7e1c3f8fee2289">   71</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="structmaingo_1_1_model_function.html#aadda375307d57abd5a7e1c3f8fee2289">clear</a>()</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    {</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;        <a class="code" href="structmaingo_1_1_model_function.html#a3468e730a934be8be5bf5ee2f84aacc7">value</a>.clear();</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        <a class="code" href="structmaingo_1_1_model_function.html#acb85f5084123b7d4d42c2d0e03b3e7c6">name</a>.clear();</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    }</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="structmaingo_1_1_model_function.html#a351a87d89c0212305c3e477d692aedbb">   80</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="structmaingo_1_1_model_function.html#a351a87d89c0212305c3e477d692aedbb">push_back</a>(<span class="keyword">const</span> mc::FFVar var)</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    {</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;        <a class="code" href="structmaingo_1_1_model_function.html#a3468e730a934be8be5bf5ee2f84aacc7">value</a>.push_back(var);</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;        <a class="code" href="structmaingo_1_1_model_function.html#acb85f5084123b7d4d42c2d0e03b3e7c6">name</a>.push_back(<span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    }</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="structmaingo_1_1_model_function.html#af1e48836d22ea8f0dcc46d8622800058">   89</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="structmaingo_1_1_model_function.html#af1e48836d22ea8f0dcc46d8622800058">push_back</a>(<span class="keyword">const</span> mc::FFVar var, <span class="keyword">const</span> std::string &amp;str)</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    {</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;        <a class="code" href="structmaingo_1_1_model_function.html#a3468e730a934be8be5bf5ee2f84aacc7">value</a>.push_back(var);</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        <a class="code" href="structmaingo_1_1_model_function.html#acb85f5084123b7d4d42c2d0e03b3e7c6">name</a>.push_back(str);</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    }</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="structmaingo_1_1_model_function.html#af7fe04e13594b729a7fe3cde9caedbc3">   98</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="structmaingo_1_1_model_function.html#af7fe04e13594b729a7fe3cde9caedbc3">push_back</a>(<span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;vars)</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    {</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; vars.size(); i++) {</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;            <a class="code" href="structmaingo_1_1_model_function.html#a3468e730a934be8be5bf5ee2f84aacc7">value</a>.push_back(vars[i]);</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;            <a class="code" href="structmaingo_1_1_model_function.html#acb85f5084123b7d4d42c2d0e03b3e7c6">name</a>.push_back(<span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        }</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    }</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="structmaingo_1_1_model_function.html#ad07bf75626a6914c9f15b23fa5ec518e">  109</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="structmaingo_1_1_model_function.html#ad07bf75626a6914c9f15b23fa5ec518e">push_back</a>(<span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;vars, <span class="keyword">const</span> std::string &amp;baseName)</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    {</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        <span class="keywordflow">if</span> (vars.size() == 1) {</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;            <a class="code" href="structmaingo_1_1_model_function.html#a3468e730a934be8be5bf5ee2f84aacc7">value</a>.push_back(vars[0]);</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;            <a class="code" href="structmaingo_1_1_model_function.html#acb85f5084123b7d4d42c2d0e03b3e7c6">name</a>.push_back(baseName);</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        }</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (baseName == <span class="stringliteral">&quot;&quot;</span>) {</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;            <a class="code" href="structmaingo_1_1_model_function.html#a351a87d89c0212305c3e477d692aedbb">push_back</a>(vars);</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        }</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;        <span class="keywordflow">else</span> {</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;            <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; vars.size(); i++) {</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;                <a class="code" href="structmaingo_1_1_model_function.html#a3468e730a934be8be5bf5ee2f84aacc7">value</a>.push_back(vars[i]);</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;                <a class="code" href="structmaingo_1_1_model_function.html#acb85f5084123b7d4d42c2d0e03b3e7c6">name</a>.push_back(baseName + <span class="charliteral">&#39;_&#39;</span> + std::to_string(i + 1));</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;            }</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        }</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    }</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="structmaingo_1_1_model_function.html#a8c2f2e692410848475b8c5caffcf5e51">  129</a></span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="structmaingo_1_1_model_function.html#a8c2f2e692410848475b8c5caffcf5e51">size</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;<span class="keyword">    </span>{</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1_model_function.html#a3468e730a934be8be5bf5ee2f84aacc7">value</a>.size();</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    }</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="structmaingo_1_1_model_function.html#a925155d044f3f8e24cd55150bb668683">  137</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="structmaingo_1_1_model_function.html#a925155d044f3f8e24cd55150bb668683">resize</a>(<span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="structmaingo_1_1_model_function.html#a8c2f2e692410848475b8c5caffcf5e51">size</a>)</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    {</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        <a class="code" href="structmaingo_1_1_model_function.html#a3468e730a934be8be5bf5ee2f84aacc7">value</a>.resize(<a class="code" href="structmaingo_1_1_model_function.html#a8c2f2e692410848475b8c5caffcf5e51">size</a>);</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        <a class="code" href="structmaingo_1_1_model_function.html#acb85f5084123b7d4d42c2d0e03b3e7c6">name</a>.resize(<a class="code" href="structmaingo_1_1_model_function.html#a8c2f2e692410848475b8c5caffcf5e51">size</a>);</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    }</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="structmaingo_1_1_model_function.html#a0af1f22b1bc87961451c52913567a4fd">  146</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="structmaingo_1_1_model_function.html#a0af1f22b1bc87961451c52913567a4fd">set_value</a>(<span class="keyword">const</span> mc::FFVar var, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> i)</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    {</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        <a class="code" href="structmaingo_1_1_model_function.html#a3468e730a934be8be5bf5ee2f84aacc7">value</a>[i] = var;</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    }</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="structmaingo_1_1_model_function.html#a77f51cfc74b6f5dc0b1a8919b01f3333">  154</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="structmaingo_1_1_model_function.html#a77f51cfc74b6f5dc0b1a8919b01f3333">set_name</a>(<span class="keyword">const</span> std::string str, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> i)</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    {</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;        <a class="code" href="structmaingo_1_1_model_function.html#acb85f5084123b7d4d42c2d0e03b3e7c6">name</a>[i] = str;</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    }</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="structmaingo_1_1_model_function.html#a93e188a00ecf49b5dc85f9a58ab7c9f7">  162</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="structmaingo_1_1_model_function.html">ModelFunction</a> &amp;<a class="code" href="structmaingo_1_1_model_function.html#a93e188a00ecf49b5dc85f9a58ab7c9f7">operator=</a>(<span class="keyword">const</span> mc::FFVar var)</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    {</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;        <a class="code" href="structmaingo_1_1_model_function.html#a3468e730a934be8be5bf5ee2f84aacc7">value</a>.clear();</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;        <a class="code" href="structmaingo_1_1_model_function.html#a3468e730a934be8be5bf5ee2f84aacc7">value</a>.push_back(var);</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;        <a class="code" href="structmaingo_1_1_model_function.html#acb85f5084123b7d4d42c2d0e03b3e7c6">name</a>.clear();</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;        <a class="code" href="structmaingo_1_1_model_function.html#acb85f5084123b7d4d42c2d0e03b3e7c6">name</a>.push_back(<span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    }</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="structmaingo_1_1_model_function.html#a28a2c95923dee0d58ca16ba62b02e10a">  174</a></span>&#160;    <span class="keyword">inline</span> mc::FFVar &amp;<a class="code" href="structmaingo_1_1_model_function.html#a28a2c95923dee0d58ca16ba62b02e10a">operator[]</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i)</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    {</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1_model_function.html#a3468e730a934be8be5bf5ee2f84aacc7">value</a>[i];</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    }</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="structmaingo_1_1_model_function.html#ac53aa934e420edd2363328a685a35170">  182</a></span>&#160;    <span class="keyword">inline</span> mc::FFVar &amp;<a class="code" href="structmaingo_1_1_model_function.html#ac53aa934e420edd2363328a685a35170">at</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i)</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;    {</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1_model_function.html#a3468e730a934be8be5bf5ee2f84aacc7">value</a>.at(i);</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;    }</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="structmaingo_1_1_model_function.html#a2cd284c38a9f30f487ad0481fcfaa363">  190</a></span>&#160;    <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_model_function.html#a2cd284c38a9f30f487ad0481fcfaa363">operator==</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1_model_function.html">ModelFunction</a> &amp;other)<span class="keyword"> const</span></div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;<span class="keyword">    </span>{</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;        <span class="keywordflow">return</span> ((<a class="code" href="structmaingo_1_1_model_function.html#acb85f5084123b7d4d42c2d0e03b3e7c6">name</a> == other.<a class="code" href="structmaingo_1_1_model_function.html#acb85f5084123b7d4d42c2d0e03b3e7c6">name</a>) &amp;&amp; (<a class="code" href="structmaingo_1_1_model_function.html#a3468e730a934be8be5bf5ee2f84aacc7">value</a> == other.<a class="code" href="structmaingo_1_1_model_function.html#a3468e730a934be8be5bf5ee2f84aacc7">value</a>));</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;    }</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="structmaingo_1_1_model_function.html#acb85f5084123b7d4d42c2d0e03b3e7c6">  195</a></span>&#160;    std::vector&lt;std::string&gt; <a class="code" href="structmaingo_1_1_model_function.html#acb85f5084123b7d4d42c2d0e03b3e7c6">name</a>; </div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="structmaingo_1_1_model_function.html#a3468e730a934be8be5bf5ee2f84aacc7">  196</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="structmaingo_1_1_model_function.html#a3468e730a934be8be5bf5ee2f84aacc7">value</a>;  </div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;};</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="structmaingo_1_1_evaluation_container.html">  208</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmaingo_1_1_evaluation_container.html">EvaluationContainer</a> {</div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="structmaingo_1_1_evaluation_container.html#ac13bde03d078f5c9402cce551a161024">  209</a></span>&#160;    <a class="code" href="structmaingo_1_1_model_function.html">ModelFunction</a> <a class="code" href="structmaingo_1_1_evaluation_container.html#ac13bde03d078f5c9402cce551a161024">objective</a>;            </div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="structmaingo_1_1_evaluation_container.html#af3256dbd0be5bea52c3a994da7082ea4">  210</a></span>&#160;    <a class="code" href="structmaingo_1_1_model_function.html">ModelFunction</a> <a class="code" href="structmaingo_1_1_evaluation_container.html#af3256dbd0be5bea52c3a994da7082ea4">ineq</a>;                 </div><div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="structmaingo_1_1_evaluation_container.html#ad71555eb350bbd6deb14d47559a6fa6d">  211</a></span>&#160;    <a class="code" href="structmaingo_1_1_model_function.html">ModelFunction</a> <a class="code" href="structmaingo_1_1_evaluation_container.html#ad71555eb350bbd6deb14d47559a6fa6d">eq</a>;                   </div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="structmaingo_1_1_evaluation_container.html#acf712256b2506b6388af16e648a04fae">  212</a></span>&#160;    <a class="code" href="structmaingo_1_1_model_function.html">ModelFunction</a> <a class="code" href="structmaingo_1_1_evaluation_container.html#acf712256b2506b6388af16e648a04fae">ineqRelaxationOnly</a>;   </div><div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="structmaingo_1_1_evaluation_container.html#a564d618660f9675c33900127aa686f38">  213</a></span>&#160;    <a class="code" href="structmaingo_1_1_model_function.html">ModelFunction</a> <a class="code" href="structmaingo_1_1_evaluation_container.html#a564d618660f9675c33900127aa686f38">eqRelaxationOnly</a>;     </div><div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="structmaingo_1_1_evaluation_container.html#af9572d873db6d0ebd0402cbc3539e8ee">  214</a></span>&#160;    <a class="code" href="structmaingo_1_1_model_function.html">ModelFunction</a> <a class="code" href="structmaingo_1_1_evaluation_container.html#af9572d873db6d0ebd0402cbc3539e8ee">ineqSquash</a>;           </div><div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="structmaingo_1_1_evaluation_container.html#a86a57d19de362bd56b022103b14bd793">  215</a></span>&#160;    std::vector&lt;OutputVariable&gt; <a class="code" href="structmaingo_1_1_evaluation_container.html#a86a57d19de362bd56b022103b14bd793">output</a>; </div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="structmaingo_1_1_evaluation_container.html#ab9eb3ecf31c9d5d48ccb04880a635819">  220</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="structmaingo_1_1_evaluation_container.html#ab9eb3ecf31c9d5d48ccb04880a635819">clear</a>()</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;    {</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;        <a class="code" href="structmaingo_1_1_evaluation_container.html#ac13bde03d078f5c9402cce551a161024">objective</a>.<a class="code" href="structmaingo_1_1_model_function.html#aadda375307d57abd5a7e1c3f8fee2289">clear</a>();</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;        <a class="code" href="structmaingo_1_1_evaluation_container.html#af3256dbd0be5bea52c3a994da7082ea4">ineq</a>.<a class="code" href="structmaingo_1_1_model_function.html#aadda375307d57abd5a7e1c3f8fee2289">clear</a>();</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;        <a class="code" href="structmaingo_1_1_evaluation_container.html#ad71555eb350bbd6deb14d47559a6fa6d">eq</a>.<a class="code" href="structmaingo_1_1_model_function.html#aadda375307d57abd5a7e1c3f8fee2289">clear</a>();</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;        <a class="code" href="structmaingo_1_1_evaluation_container.html#acf712256b2506b6388af16e648a04fae">ineqRelaxationOnly</a>.<a class="code" href="structmaingo_1_1_model_function.html#aadda375307d57abd5a7e1c3f8fee2289">clear</a>();</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;        <a class="code" href="structmaingo_1_1_evaluation_container.html#a564d618660f9675c33900127aa686f38">eqRelaxationOnly</a>.<a class="code" href="structmaingo_1_1_model_function.html#aadda375307d57abd5a7e1c3f8fee2289">clear</a>();</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;        <a class="code" href="structmaingo_1_1_evaluation_container.html#af9572d873db6d0ebd0402cbc3539e8ee">ineqSquash</a>.<a class="code" href="structmaingo_1_1_model_function.html#aadda375307d57abd5a7e1c3f8fee2289">clear</a>();</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;        <a class="code" href="structmaingo_1_1_evaluation_container.html#a86a57d19de362bd56b022103b14bd793">output</a>.clear();</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    }</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;};</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="structmaingo_1_1_model_function_html_a28a2c95923dee0d58ca16ba62b02e10a"><div class="ttname"><a href="structmaingo_1_1_model_function.html#a28a2c95923dee0d58ca16ba62b02e10a">maingo::ModelFunction::operator[]</a></div><div class="ttdeci">mc::FFVar &amp; operator[](const unsigned int i)</div><div class="ttdoc">[] operator for easier access to value vector </div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:174</div></div>
+<div class="ttc" id="structmaingo_1_1_evaluation_container_html_ab9eb3ecf31c9d5d48ccb04880a635819"><div class="ttname"><a href="structmaingo_1_1_evaluation_container.html#ab9eb3ecf31c9d5d48ccb04880a635819">maingo::EvaluationContainer::clear</a></div><div class="ttdeci">void clear()</div><div class="ttdoc">Clears all information, note that currently objective has not to be cleared, since it is overwritten...</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:220</div></div>
+<div class="ttc" id="structmaingo_1_1_model_function_html_a93e188a00ecf49b5dc85f9a58ab7c9f7"><div class="ttname"><a href="structmaingo_1_1_model_function.html#a93e188a00ecf49b5dc85f9a58ab7c9f7">maingo::ModelFunction::operator=</a></div><div class="ttdeci">ModelFunction &amp; operator=(const mc::FFVar var)</div><div class="ttdoc">= operator for backward compatibility </div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:162</div></div>
+<div class="ttc" id="structmaingo_1_1_model_function_html_a2a99a82296b2b73f9375c1396d40d2b4"><div class="ttname"><a href="structmaingo_1_1_model_function.html#a2a99a82296b2b73f9375c1396d40d2b4">maingo::ModelFunction::ModelFunction</a></div><div class="ttdeci">ModelFunction(const mc::FFVar var)</div><div class="ttdoc">Constructor with FFVar value only. </div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:40</div></div>
+<div class="ttc" id="structmaingo_1_1_model_function_html_acb85f5084123b7d4d42c2d0e03b3e7c6"><div class="ttname"><a href="structmaingo_1_1_model_function.html#acb85f5084123b7d4d42c2d0e03b3e7c6">maingo::ModelFunction::name</a></div><div class="ttdeci">std::vector&lt; std::string &gt; name</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:195</div></div>
+<div class="ttc" id="structmaingo_1_1_model_function_html_ad07bf75626a6914c9f15b23fa5ec518e"><div class="ttname"><a href="structmaingo_1_1_model_function.html#ad07bf75626a6914c9f15b23fa5ec518e">maingo::ModelFunction::push_back</a></div><div class="ttdeci">void push_back(const std::vector&lt; mc::FFVar &gt; &amp;vars, const std::string &amp;baseName)</div><div class="ttdoc">Function for inserting a vector of FFVar at the end of the value vector with names. </div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:109</div></div>
+<div class="ttc" id="structmaingo_1_1_model_function_html_a77f51cfc74b6f5dc0b1a8919b01f3333"><div class="ttname"><a href="structmaingo_1_1_model_function.html#a77f51cfc74b6f5dc0b1a8919b01f3333">maingo::ModelFunction::set_name</a></div><div class="ttdeci">void set_name(const std::string str, const unsigned i)</div><div class="ttdoc">Function for seting name value at a given index. </div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:154</div></div>
+<div class="ttc" id="structmaingo_1_1_model_function_html_a99dfad4b58342d3f6bf80813369f079e"><div class="ttname"><a href="structmaingo_1_1_model_function.html#a99dfad4b58342d3f6bf80813369f079e">maingo::ModelFunction::ModelFunction</a></div><div class="ttdeci">ModelFunction(const mc::FFVar var, const std::string &amp;str)</div><div class="ttdoc">Constructor with FFVar value and a name. </div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:51</div></div>
+<div class="ttc" id="structmaingo_1_1_evaluation_container_html_a86a57d19de362bd56b022103b14bd793"><div class="ttname"><a href="structmaingo_1_1_evaluation_container.html#a86a57d19de362bd56b022103b14bd793">maingo::EvaluationContainer::output</a></div><div class="ttdeci">std::vector&lt; OutputVariable &gt; output</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:215</div></div>
+<div class="ttc" id="structmaingo_1_1_model_function_html"><div class="ttname"><a href="structmaingo_1_1_model_function.html">maingo::ModelFunction</a></div><div class="ttdoc">Struct for making work with the EvaluationContainer easier for the user and also to ensure backward c...</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:28</div></div>
+<div class="ttc" id="structmaingo_1_1_model_function_html_a0af1f22b1bc87961451c52913567a4fd"><div class="ttname"><a href="structmaingo_1_1_model_function.html#a0af1f22b1bc87961451c52913567a4fd">maingo::ModelFunction::set_value</a></div><div class="ttdeci">void set_value(const mc::FFVar var, const unsigned i)</div><div class="ttdoc">Function for seting FFVar value at a given index. </div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:146</div></div>
+<div class="ttc" id="structmaingo_1_1_model_function_html_af1e48836d22ea8f0dcc46d8622800058"><div class="ttname"><a href="structmaingo_1_1_model_function.html#af1e48836d22ea8f0dcc46d8622800058">maingo::ModelFunction::push_back</a></div><div class="ttdeci">void push_back(const mc::FFVar var, const std::string &amp;str)</div><div class="ttdoc">Function for inserting a FFVar and a name at the end of the vectors. </div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:89</div></div>
+<div class="ttc" id="structmaingo_1_1_evaluation_container_html_a564d618660f9675c33900127aa686f38"><div class="ttname"><a href="structmaingo_1_1_evaluation_container.html#a564d618660f9675c33900127aa686f38">maingo::EvaluationContainer::eqRelaxationOnly</a></div><div class="ttdeci">ModelFunction eqRelaxationOnly</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:213</div></div>
+<div class="ttc" id="structmaingo_1_1_model_function_html_a2cd284c38a9f30f487ad0481fcfaa363"><div class="ttname"><a href="structmaingo_1_1_model_function.html#a2cd284c38a9f30f487ad0481fcfaa363">maingo::ModelFunction::operator==</a></div><div class="ttdeci">bool operator==(const ModelFunction &amp;other) const</div><div class="ttdoc">Equality comparison operator. </div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:190</div></div>
+<div class="ttc" id="structmaingo_1_1_evaluation_container_html"><div class="ttname"><a href="structmaingo_1_1_evaluation_container.html">maingo::EvaluationContainer</a></div><div class="ttdoc">Struct for storing the values returned by model evaluation at the given point &quot;var&quot;. </div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:208</div></div>
+<div class="ttc" id="structmaingo_1_1_model_function_html_af7fe04e13594b729a7fe3cde9caedbc3"><div class="ttname"><a href="structmaingo_1_1_model_function.html#af7fe04e13594b729a7fe3cde9caedbc3">maingo::ModelFunction::push_back</a></div><div class="ttdeci">void push_back(const std::vector&lt; mc::FFVar &gt; &amp;vars)</div><div class="ttdoc">Function for inserting a vector of FFVar at the end of the value vector. </div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:98</div></div>
+<div class="ttc" id="structmaingo_1_1_evaluation_container_html_ac13bde03d078f5c9402cce551a161024"><div class="ttname"><a href="structmaingo_1_1_evaluation_container.html#ac13bde03d078f5c9402cce551a161024">maingo::EvaluationContainer::objective</a></div><div class="ttdeci">ModelFunction objective</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:209</div></div>
+<div class="ttc" id="structmaingo_1_1_model_function_html_a59519941d0bb502f58c197894c6a0d2a"><div class="ttname"><a href="structmaingo_1_1_model_function.html#a59519941d0bb502f58c197894c6a0d2a">maingo::ModelFunction::ModelFunction</a></div><div class="ttdeci">ModelFunction()=default</div></div>
+<div class="ttc" id="structmaingo_1_1_model_function_html_af5cbeca4a2b4e75d111e6073e9351a8b"><div class="ttname"><a href="structmaingo_1_1_model_function.html#af5cbeca4a2b4e75d111e6073e9351a8b">maingo::ModelFunction::~ModelFunction</a></div><div class="ttdeci">~ModelFunction()=default</div></div>
+<div class="ttc" id="structmaingo_1_1_model_function_html_a8c2f2e692410848475b8c5caffcf5e51"><div class="ttname"><a href="structmaingo_1_1_model_function.html#a8c2f2e692410848475b8c5caffcf5e51">maingo::ModelFunction::size</a></div><div class="ttdeci">size_t size() const</div><div class="ttdoc">Function returning the size of the value vector. Note that value and name vectors have the same size ...</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:129</div></div>
+<div class="ttc" id="structmaingo_1_1_model_function_html_aadda375307d57abd5a7e1c3f8fee2289"><div class="ttname"><a href="structmaingo_1_1_model_function.html#aadda375307d57abd5a7e1c3f8fee2289">maingo::ModelFunction::clear</a></div><div class="ttdeci">void clear()</div><div class="ttdoc">Function deleting everything in the model function. </div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:71</div></div>
+<div class="ttc" id="structmaingo_1_1_evaluation_container_html_af3256dbd0be5bea52c3a994da7082ea4"><div class="ttname"><a href="structmaingo_1_1_evaluation_container.html#af3256dbd0be5bea52c3a994da7082ea4">maingo::EvaluationContainer::ineq</a></div><div class="ttdeci">ModelFunction ineq</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:210</div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
+<div class="ttc" id="structmaingo_1_1_evaluation_container_html_af9572d873db6d0ebd0402cbc3539e8ee"><div class="ttname"><a href="structmaingo_1_1_evaluation_container.html#af9572d873db6d0ebd0402cbc3539e8ee">maingo::EvaluationContainer::ineqSquash</a></div><div class="ttdeci">ModelFunction ineqSquash</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:214</div></div>
+<div class="ttc" id="structmaingo_1_1_model_function_html_a3468e730a934be8be5bf5ee2f84aacc7"><div class="ttname"><a href="structmaingo_1_1_model_function.html#a3468e730a934be8be5bf5ee2f84aacc7">maingo::ModelFunction::value</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; value</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:196</div></div>
+<div class="ttc" id="structmaingo_1_1_evaluation_container_html_ad71555eb350bbd6deb14d47559a6fa6d"><div class="ttname"><a href="structmaingo_1_1_evaluation_container.html#ad71555eb350bbd6deb14d47559a6fa6d">maingo::EvaluationContainer::eq</a></div><div class="ttdeci">ModelFunction eq</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:211</div></div>
 <div class="ttc" id="output_variable_8h_html"><div class="ttname"><a href="output_variable_8h.html">outputVariable.h</a></div></div>
-<div class="ttc" id="structmaingo_1_1model_function_html_acfa12e44318f039d4dd7b62d6da21996"><div class="ttname"><a href="structmaingo_1_1model_function.html#acfa12e44318f039d4dd7b62d6da21996">maingo::modelFunction::operator=</a></div><div class="ttdeci">modelFunction &amp; operator=(const mc::FFVar var)</div><div class="ttdoc">= operator for backward compatibility</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:154</div></div>
-<div class="ttc" id="structmaingo_1_1_evaluation_container_html_afd4671f76d0f58502f7f8a36bc574642"><div class="ttname"><a href="structmaingo_1_1_evaluation_container.html#afd4671f76d0f58502f7f8a36bc574642">maingo::EvaluationContainer::eqRelaxationOnly</a></div><div class="ttdeci">modelFunction eqRelaxationOnly</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:197</div></div>
-<div class="ttc" id="structmaingo_1_1model_function_html_ad32e16eebdef8b4e555417cc514c43c0"><div class="ttname"><a href="structmaingo_1_1model_function.html#ad32e16eebdef8b4e555417cc514c43c0">maingo::modelFunction::value</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; value</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:180</div></div>
+<div class="ttc" id="structmaingo_1_1_model_function_html_a925155d044f3f8e24cd55150bb668683"><div class="ttname"><a href="structmaingo_1_1_model_function.html#a925155d044f3f8e24cd55150bb668683">maingo::ModelFunction::resize</a></div><div class="ttdeci">void resize(const size_t size)</div><div class="ttdoc">Function for resizing of the underlying vectors. </div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:137</div></div>
+<div class="ttc" id="structmaingo_1_1_model_function_html_a643e6d2e6cb1a5d78eae384361be9d72"><div class="ttname"><a href="structmaingo_1_1_model_function.html#a643e6d2e6cb1a5d78eae384361be9d72">maingo::ModelFunction::ModelFunction</a></div><div class="ttdeci">ModelFunction(const std::vector&lt; mc::FFVar &gt; &amp;vars)</div><div class="ttdoc">Constructor with vector of FFVar. </div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:62</div></div>
+<div class="ttc" id="structmaingo_1_1_model_function_html_ac53aa934e420edd2363328a685a35170"><div class="ttname"><a href="structmaingo_1_1_model_function.html#ac53aa934e420edd2363328a685a35170">maingo::ModelFunction::at</a></div><div class="ttdeci">mc::FFVar &amp; at(const unsigned int i)</div><div class="ttdoc">Function for accessing elements. </div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:182</div></div>
+<div class="ttc" id="structmaingo_1_1_model_function_html_a2dad7f76d791717fc532cd4e1eab37b2"><div class="ttname"><a href="structmaingo_1_1_model_function.html#a2dad7f76d791717fc532cd4e1eab37b2">maingo::ModelFunction::operator=</a></div><div class="ttdeci">ModelFunction &amp; operator=(const ModelFunction &amp;)=default</div></div>
+<div class="ttc" id="structmaingo_1_1_model_function_html_a351a87d89c0212305c3e477d692aedbb"><div class="ttname"><a href="structmaingo_1_1_model_function.html#a351a87d89c0212305c3e477d692aedbb">maingo::ModelFunction::push_back</a></div><div class="ttdeci">void push_back(const mc::FFVar var)</div><div class="ttdoc">Function for inserting a FFVar value at the end of the value vector. </div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:80</div></div>
+<div class="ttc" id="structmaingo_1_1_evaluation_container_html_acf712256b2506b6388af16e648a04fae"><div class="ttname"><a href="structmaingo_1_1_evaluation_container.html#acf712256b2506b6388af16e648a04fae">maingo::EvaluationContainer::ineqRelaxationOnly</a></div><div class="ttdeci">ModelFunction ineqRelaxationOnly</div><div class="ttdef"><b>Definition:</b> evaluationContainer.h:212</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -128,7 +131,7 @@ $(document).ready(function(){initNavTree('evaluation_container_8h_source.html','
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="evaluation_container_8h.html">evaluationContainer.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/faq.html b/doc/html/faq.html
index 1a8440e1573cb76dba7b8f580acb599f033fddf8..687f09bc991e7f90aab099395ff5e3ff251f33f9 100644
--- a/doc/html/faq.html
+++ b/doc/html/faq.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: What can go wrong?</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -85,43 +85,37 @@ $(document).ready(function(){initNavTree('faq.html','');});
 </iframe>
 </div>
 
-<div class="PageDoc"><div class="header">
+<div class="header">
   <div class="headertitle">
 <div class="title">What can go wrong? </div>  </div>
 </div><!--header-->
 <div class="contents">
 <div class="textblock"><h1><a class="anchor" id="faq1"></a>
 After starting the MAiNGO executable nothing happens</h1>
-<p>This is usually the case if some of the libraries (in most cases CPLEX) are not found. Make sure that after you installed CPLEX, the CPLEX .lib and .dll files can be found in your environment variables. If you cannot change your environment variables, simply copy the .dll files to the <code>MAiNGO.exe</code> folder.<br />
+<p>This is usually the case if some of the libraries (in most cases CPLEX) are not found. Make sure that after you installed CPLEX, the directory containing the CPLEX .dll files can be found in your environment variables. If you cannot change your environment variables, simply copy the .dll files to the <code>MAiNGO.exe</code> folder.<br />
 <br />
 </p>
 <h1><a class="anchor" id="faq2"></a>
 MAiNGO reports a Problem to be infeasible although you expect it to be feasible</h1>
-<p>Double-check your variable bounds, model equations, and selection of constraints to make sure there are no mistakes. This is the cause in most cases. Check whether your problem might be badly scaled and consider scaling variables and objective (note that the constraints need to be properly scaled to ensure consistent application of tolerances, cf. Section <a class="el" href="writing_problem.html">Modeling in MAiNGO</a>). If the problem persists, try disabling the settings <a class="el" href="structmaingo_1_1_settings.html#a8fd91a3766129137cae15447565e7923">BAB_alwaysSolveObbt</a>, <a class="el" href="structmaingo_1_1_settings.html#a34c3073ced91a6837df66cfddd3a74ee">PRE_obbtMaxRounds</a> and <a class="el" href="structmaingo_1_1_settings.html#a5e457d44f0301389da787556d4e9aebe">BAB_dbbt</a>, which disables all range reduction. If this solves the problem, there might be an issue in the range reduction techniques. In this case, please report the problem to the developers. Otherwise, try to perform a multi-start by setting <a class="el" href="structmaingo_1_1_settings.html#af507cbfa73588513df3746e104c76c01">PRE_pureMultistart</a> to 1 and <a class="el" href="structmaingo_1_1_settings.html#a3003863167eab673fbeae391bfeb802b">PRE_maxLocalSearches</a> to a high number, in addition use a powerful upper bounding solver (e.g., <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac449153333e544edc3b78977ab02ea20">IPOPT</a>) and try a local solver from multiple initial points. If a feasible point is found like this, there is an issue with the relaxations of your problem. In this case, make sure your model does not contain conditional statements or loops with a number of iterations not known a priori. If you are using relaxation-only constraints, make sure these are actually valid. If the problem persists, please report it to the developers. <br />
+<p>Double-check your variable bounds, model equations, and selection of constraints to make sure there are no mistakes. This is the cause in most cases. Check whether your problem might be badly scaled and consider scaling variables and objective (note that the constraints need to be properly scaled to ensure consistent application of tolerances, cf. Section <a class="el" href="writing_problem.html#advanced_modeling">Modeling Tips and Tricks</a>). If the problem persists, try disabling the settings <a class="el" href="structmaingo_1_1_settings.html#a774378c7d329fb73be3cbb765f035cb6">BAB_constraintPropagation</a>, <a class="el" href="structmaingo_1_1_settings.html#a8fd91a3766129137cae15447565e7923">BAB_alwaysSolveObbt</a>, <a class="el" href="structmaingo_1_1_settings.html#a34c3073ced91a6837df66cfddd3a74ee">PRE_obbtMaxRounds</a> and <a class="el" href="structmaingo_1_1_settings.html#a5e457d44f0301389da787556d4e9aebe">BAB_dbbt</a>, which disables all range reduction. If this solves the problem, there might be an issue in the range reduction techniques. In this case, please report the problem to the developers. Otherwise, try to perform a multi-start by setting <a class="el" href="structmaingo_1_1_settings.html#af507cbfa73588513df3746e104c76c01">PRE_pureMultistart</a> to 1 and <a class="el" href="structmaingo_1_1_settings.html#a3003863167eab673fbeae391bfeb802b">PRE_maxLocalSearches</a> to a high number, in addition use a powerful upper bounding solver (e.g., <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da3d2c4a7fd42fd747fe825ec8f0b1a1ad">IPOPT</a>) and try a local solver from multiple initial points. If a feasible point is found like this, there is an issue with the relaxations of your problem. If you are using relaxation-only constraints, make sure these are actually valid. If the problem persists, please report it to the developers. <br />
 <br />
 </p>
 <h1><a class="anchor" id="faq3"></a>
 MAiNGO reports a domain violation, e.g., division by 0</h1>
-<p>This can have several causes: there may be a mistake in the model equations, the bounds on the optimization variables may be too loose, or the relaxations (or rather the underlying interval extensions) get too bad when propagating through the model equations. In the latter case, try locating the problem within your model by, e.g., using the mc_print(,) function. There are two different ways to remedy such situations (except for reformulating the problem or choosing tighter bounds) depending on why the domain violation occurs:<br />
+<p>This can have several causes: there may be a mistake in the model equations, the bounds on the optimization variables may be too loose, or the relaxations (or rather the underlying interval extensions) become too weak when propagating through the model equations. In the latter case, try locating the problem within your model by, e.g., using the mc_print(,) function. There are two different ways to remedy such situations (except for reformulating the problem or choosing tighter bounds) depending on why the domain violation occurs:<br />
 If you know that the argument of interest is within the correct domain for all values of your optimization variables within their box constraints (i.e., without considering additional (linear or nonlinear) constraints), the domain violation is purely caused by weak relaxations. In this case, you can use the functions pos(), neg(), lb_func(), ub_func() and bounding_func() to artificially cut the relaxations (cf. <code>doc/implementedFunctions/Implemented_functions.pdf</code>).<br />
 If, however, there are values of you optimization variables within their bounds (that may potentially violate other constraints) that leads to the argument actually violating the domain, the above functions must not be used. Doing so would lead to wrong relaxations and unpredictable behavior. Instead, the points that lead to domain violations need to be excluded via a constraint and the argument can then be restricted using the functions min(,) or max(,) (cf. <code>doc/implementedFunctions/Implemented_functions.pdf</code>).</p>
-<h2><a class="anchor" id="faq5"></a>
-MAiNGO terminates with a MC++ error saying something about alpha1 and alpha2</h2>
-<p>There seems to be a problem with the relaxations, please report this to the developers.<br />
+<h1><a class="anchor" id="faq6"></a>
+MAiNGO finds feasible solutions early on, but the LBD takes forever to converge</h1>
+<p>This occurs frequently with deterministic global solvers. It is usually a sign for the relaxations being weak. Sometimes it helps to start with tighter bounds on the optimization variables. Otherwise, more effort might be needed to find better relaxations. If not doing so already, you should also consider using some of the bound tightening techniques in MAiNGO (cf. Section <a class="el" href="algorithm.html">How does MAiNGO work?</a>).<br />
 <br />
 </p>
-<h2><a class="anchor" id="faq6"></a>
-MAiNGO finds feasible solutions early on, but the LBD takes forever to converge</h2>
-<p>This occurs frequently with deterministic global solvers. It is usually a sign for the relaxations being weak. Sometimes it helps to start with tighter bounds on the optimization variables. Otherwise, more effort might be needed to find better relaxations. If not doing so already, you should also consider using range reduction (cf. Section <a class="el" href="algorithm.html">How does MAiNGO work?</a>).<br />
-<br />
-</p>
-<h2><a class="anchor" id="faq7"></a>
-MAiNGO runs forever without finding a feasible point although LBD seems to be converged already</h2>
-<p>Try using a more powerful UBP solver (e.g., IPOPT or KNITRO), possibly increase <a class="el" href="structmaingo_1_1_settings.html#a930df85d476b40ebf1dd43b024e1b001">UBP_maxStepsPreprocessing</a>. Also set <a class="el" href="structmaingo_1_1_settings.html#a3003863167eab673fbeae391bfeb802b">PRE_maxLocalSearches</a>&gt; to 0 in order to enable local searches at the root node. If the problem persists, it might be problematic for local solvers. Try a more powerful solver which may currently not be implemented in MAiNGO and use the point reported by the external solver as an initial point for MAiNGO. Previous experience has shown that one possible cause can be redundant constraints (since these destroy constraint qualifications). If it seems like the lower bound converged, try using simple <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac9dd69c054981d95b5633af8eada06b7">function evaluations</a>. If your problem contains binary variables, improvements may be needed to the upper bounding strategy that currently does not distinguish between continuous and binary variables except that the latter are checked for integrality at the returned solution point. In this case, please report the problem to the developers.<br />
+<h1><a class="anchor" id="faq7"></a>
+MAiNGO runs forever without finding a feasible point although LBD seems to be converged already</h1>
+<p>Try using a more powerful UBP solver (e.g., IPOPT or Knitro), possibly increase <a class="el" href="structmaingo_1_1_settings.html#a930df85d476b40ebf1dd43b024e1b001">UBP_maxStepsPreprocessing</a>. Also set <a class="el" href="structmaingo_1_1_settings.html#a3003863167eab673fbeae391bfeb802b">PRE_maxLocalSearches</a> to &gt;0 to enable local searches at the root node. If the issue persists, your problem might be problematic for local solvers. Try a more powerful solver which may currently not be implemented in MAiNGO and use the point reported by the external solver as an initial point for MAiNGO. Previous experience has shown that one possible cause can be redundant constraints (since these destroy constraint qualifications). If it seems like the lower bound converged, try using simple <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da15b7028091e5f95408a2a26e643cb972">function evaluations</a>. If your problem contains binary variables, improvements may be needed to the upper bounding strategy that is currently rather basic for integers.<br />
 <br />
  </p>
-</div></div><!-- PageDoc -->
-</div><!-- contents -->
+</div></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
@@ -129,7 +123,7 @@ MAiNGO runs forever without finding a feasible point although LBD seems to be co
     <li class="navelem"><a class="el" href="index.html">McCormick-based Algorithm for mixed-integer Nonlinear Global Optimization</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/files.html b/doc/html/files.html
index 325e37b555dbb7f61cb5668a9e8958eac10c3a47..965cd8495af2a879d3ab4e40c1679b8a234692ed 100644
--- a/doc/html/files.html
+++ b/doc/html/files.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: File List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -95,91 +95,94 @@ $(document).ready(function(){initNavTree('files.html','');});
 <tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span id="img_0_" class="iconfopen" onclick="toggleFolder('0_')">&#160;</span><a class="el" href="dir_ede40f663fdbaac4622f0a2d30ba279b.html" target="_self">dep</a></td><td class="desc"></td></tr>
 <tr id="row_0_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_0_" class="arrow" onclick="toggleFolder('0_0_')">&#9660;</span><span id="img_0_0_" class="iconfopen" onclick="toggleFolder('0_0_')">&#160;</span><a class="el" href="dir_47e169a4fe08058254fbf7964fa7bfb6.html" target="_self">babbase</a></td><td class="desc"></td></tr>
 <tr id="row_0_0_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_0_0_0_" class="arrow" onclick="toggleFolder('0_0_0_')">&#9660;</span><span id="img_0_0_0_" class="iconfopen" onclick="toggleFolder('0_0_0_')">&#160;</span><a class="el" href="dir_637fe8785ffc83488bdb33305770812c.html" target="_self">inc</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_0_0_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="bab_brancher_8h_source.html"><span class="icondoc"></span></a><a class="el" href="bab_brancher_8h.html" target="_self">babBrancher.h</a></td><td class="desc">File containing definition of the Branch-and-Bound brancher class </td></tr>
-<tr id="row_0_0_0_1_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="bab_exception_8h_source.html"><span class="icondoc"></span></a><a class="el" href="bab_exception_8h.html" target="_self">babException.h</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_0_2_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="bab_node_8h_source.html"><span class="icondoc"></span></a><a class="el" href="bab_node_8h.html" target="_self">babNode.h</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_0_3_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="bab_opt_var_8h_source.html"><span class="icondoc"></span></a><a class="el" href="bab_opt_var_8h.html" target="_self">babOptVar.h</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_0_4_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="bab_tree_8h_source.html"><span class="icondoc"></span></a><a class="el" href="bab_tree_8h.html" target="_self">babTree.h</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_0_5_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="bab_utils_8h_source.html"><span class="icondoc"></span></a><a class="el" href="bab_utils_8h.html" target="_self">babUtils.h</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_0_0_1_" class="arrow" onclick="toggleFolder('0_0_1_')">&#9660;</span><span id="img_0_0_1_" class="iconfopen" onclick="toggleFolder('0_0_1_')">&#160;</span><a class="el" href="dir_e05b43b1ebfd1f958e3d8d3f7545ccd7.html" target="_self">src</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_1_0_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="bab_brancher_8cpp.html" target="_self">babBrancher.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_1_1_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="bab_opt_var_8cpp.html" target="_self">babOptVar.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_1_2_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="bab_tree_8cpp.html" target="_self">babTree.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_1_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">&#9660;</span><span id="img_1_" class="iconfopen" onclick="toggleFolder('1_')">&#160;</span><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html" target="_self">inc</a></td><td class="desc"></td></tr>
-<tr id="row_1_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="ale_model_8h_source.html"><span class="icondoc"></span></a><a class="el" href="ale_model_8h.html" target="_self">aleModel.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="bab_8h_source.html"><span class="icondoc"></span></a><a class="el" href="bab_8h.html" target="_self">bab.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="bab_w_a_l_l_8h_source.html"><span class="icondoc"></span></a><a class="el" href="bab_w_a_l_l_8h.html" target="_self">babWALL.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_3_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="constraint_8h_source.html"><span class="icondoc"></span></a><a class="el" href="constraint_8h.html" target="_self">constraint.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_4_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="evaluation_container_8h_source.html"><span class="icondoc"></span></a><a class="el" href="evaluation_container_8h.html" target="_self">evaluationContainer.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_5_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="exceptions_8h_source.html"><span class="icondoc"></span></a><a class="el" href="exceptions_8h.html" target="_self">exceptions.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_6_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="function_wrapper_8h_source.html"><span class="icondoc"></span></a><a class="el" href="function_wrapper_8h.html" target="_self">functionWrapper.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_7_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="get_time_8h_source.html"><span class="icondoc"></span></a><a class="el" href="get_time_8h.html" target="_self">getTime.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_8_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="interval_library_8h_source.html"><span class="icondoc"></span></a><a class="el" href="interval_library_8h.html" target="_self">intervalLibrary.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_9_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="ipopt_problem_8h_source.html"><span class="icondoc"></span></a><a class="el" href="ipopt_problem_8h.html" target="_self">ipoptProblem.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_10_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="knitro_problem_8h_source.html"><span class="icondoc"></span></a><a class="el" href="knitro_problem_8h.html" target="_self">knitroProblem.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_11_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="lbp_8h_source.html"><span class="icondoc"></span></a><a class="el" href="lbp_8h.html" target="_self">lbp.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_12_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="lbp_clp_8h_source.html"><span class="icondoc"></span></a><a class="el" href="lbp_clp_8h.html" target="_self">lbpClp.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_13_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="lbp_cplex_8h_source.html"><span class="icondoc"></span></a><a class="el" href="lbp_cplex_8h.html" target="_self">lbpCplex.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_14_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="lbp_dag_obj_8h_source.html"><span class="icondoc"></span></a><a class="el" href="lbp_dag_obj_8h.html" target="_self">lbpDagObj.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_15_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="lbp_interval_8h_source.html"><span class="icondoc"></span></a><a class="el" href="lbp_interval_8h.html" target="_self">lbpInterval.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_16_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="logger_8h_source.html"><span class="icondoc"></span></a><a class="el" href="logger_8h.html" target="_self">logger.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_17_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_m_ai_n_g_o_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_m_ai_n_g_o_8h.html" target="_self">MAiNGO.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_18_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_m_ai_n_g_odebug_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_m_ai_n_g_odebug_8h.html" target="_self">MAiNGOdebug.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_19_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_m_ai_n_g_oevaluator_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_m_ai_n_g_oevaluator_8h.html" target="_self">MAiNGOevaluator.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_20_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_m_ai_n_g_omodel_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_m_ai_n_g_omodel_8h.html" target="_self">MAiNGOmodel.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_21_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_m_ai_n_g_omodel_eps_con_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_m_ai_n_g_omodel_eps_con_8h.html" target="_self">MAiNGOmodelEpsCon.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_22_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="manual_8h_source.html"><span class="icondoc"></span></a><a class="el" href="manual_8h.html" target="_self">manual.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_23_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="mc_forward_8h_source.html"><span class="icondoc"></span></a><a class="el" href="mc_forward_8h.html" target="_self">mcForward.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_24_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="mpi_utilities_8h_source.html"><span class="icondoc"></span></a><a class="el" href="mpi_utilities_8h.html" target="_self">mpiUtilities.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_25_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="output_variable_8h_source.html"><span class="icondoc"></span></a><a class="el" href="output_variable_8h.html" target="_self">outputVariable.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_26_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="program_8h_source.html"><span class="icondoc"></span></a><a class="el" href="program_8h.html" target="_self">program.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_27_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="program_parser_8h_source.html"><span class="icondoc"></span></a><a class="el" href="program_parser_8h.html" target="_self">programParser.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_28_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="return_codes_8h_source.html"><span class="icondoc"></span></a><a class="el" href="return_codes_8h.html" target="_self">returnCodes.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_29_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="settings_8h_source.html"><span class="icondoc"></span></a><a class="el" href="settings_8h.html" target="_self">settings.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_30_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="ubp_8h_source.html"><span class="icondoc"></span></a><a class="el" href="ubp_8h.html" target="_self">ubp.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_31_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="ubp_clp_8h_source.html"><span class="icondoc"></span></a><a class="el" href="ubp_clp_8h.html" target="_self">ubpClp.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_32_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="ubp_cplex_8h_source.html"><span class="icondoc"></span></a><a class="el" href="ubp_cplex_8h.html" target="_self">ubpCplex.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_33_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="ubp_dag_obj_8h_source.html"><span class="icondoc"></span></a><a class="el" href="ubp_dag_obj_8h.html" target="_self">ubpDagObj.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_34_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="ubp_evaluators_8h_source.html"><span class="icondoc"></span></a><a class="el" href="ubp_evaluators_8h.html" target="_self">ubpEvaluators.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_35_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="ubp_ipopt_8h_source.html"><span class="icondoc"></span></a><a class="el" href="ubp_ipopt_8h.html" target="_self">ubpIpopt.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_36_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="ubp_knitro_8h_source.html"><span class="icondoc"></span></a><a class="el" href="ubp_knitro_8h.html" target="_self">ubpKnitro.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_37_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="ubp_n_lopt_8h_source.html"><span class="icondoc"></span></a><a class="el" href="ubp_n_lopt_8h.html" target="_self">ubpNLopt.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_38_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="ubp_quad_expr_8h_source.html"><span class="icondoc"></span></a><a class="el" href="ubp_quad_expr_8h.html" target="_self">ubpQuadExpr.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_39_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="ubp_structure_8h_source.html"><span class="icondoc"></span></a><a class="el" href="ubp_structure_8h.html" target="_self">ubpStructure.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_40_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="utilities_8h_source.html"><span class="icondoc"></span></a><a class="el" href="utilities_8h.html" target="_self">utilities.h</a></td><td class="desc"></td></tr>
-<tr id="row_1_41_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="variable_lister_8h_source.html"><span class="icondoc"></span></a><a class="el" href="variable_lister_8h.html" target="_self">variableLister.h</a></td><td class="desc"></td></tr>
-<tr id="row_2_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_2_" class="arrow" onclick="toggleFolder('2_')">&#9660;</span><span id="img_2_" class="iconfopen" onclick="toggleFolder('2_')">&#160;</span><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html" target="_self">src</a></td><td class="desc"></td></tr>
-<tr id="row_2_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="ale_model_8cpp.html" target="_self">aleModel.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_2_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="bab_8cpp.html" target="_self">bab.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_2_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="bab_mpi_8cpp.html" target="_self">babMpi.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_2_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="bab_w_a_l_l_8cpp.html" target="_self">babWALL.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_2_4_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="get_time_8cpp.html" target="_self">getTime.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_2_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="ipopt_problem_8cpp.html" target="_self">ipoptProblem.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_2_6_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="knitro_problem_8cpp.html" target="_self">knitroProblem.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_2_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="lbp_8cpp.html" target="_self">lbp.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_2_8_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="lbp_clp_8cpp.html" target="_self">lbpClp.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_2_9_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="lbp_cplex_8cpp.html" target="_self">lbpCplex.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_2_10_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="lbp_dag_obj_8cpp.html" target="_self">lbpDagObj.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_2_11_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="lbp_factory_8cpp.html" target="_self">lbpFactory.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_2_12_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="lbp_interval_8cpp.html" target="_self">lbpInterval.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_2_13_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="lbp_linearization_strats_8cpp.html" target="_self">lbpLinearizationStrats.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_2_14_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="logger_8cpp.html" target="_self">logger.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_2_15_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_m_ai_n_g_o_8cpp.html" target="_self">MAiNGO.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_2_16_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_m_ai_n_g_ogetter_functions_8cpp.html" target="_self">MAiNGOgetterFunctions.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_2_17_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_m_ai_n_g_omodel_eps_con_8cpp.html" target="_self">MAiNGOmodelEpsCon.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_2_18_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_m_ai_n_g_oprinting_functions_8cpp.html" target="_self">MAiNGOprintingFunctions.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_2_19_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_m_ai_n_g_oto_other_language_8cpp.html" target="_self">MAiNGOtoOtherLanguage.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_2_20_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_m_ai_n_g_o_w_a_l_l_8cpp.html" target="_self">MAiNGOWALL.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_2_21_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_m_ai_n_g_owriting_functions_8cpp.html" target="_self">MAiNGOwritingFunctions.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_2_22_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="program_parser_8cpp.html" target="_self">programParser.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_2_23_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="settings_8cpp.html" target="_self">settings.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_2_24_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="ubp_8cpp.html" target="_self">ubp.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_2_25_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="ubp_clp_8cpp.html" target="_self">ubpClp.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_2_26_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="ubp_cplex_8cpp.html" target="_self">ubpCplex.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_2_27_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="ubp_factory_8cpp.html" target="_self">ubpFactory.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_2_28_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="ubp_ipopt_8cpp.html" target="_self">ubpIpopt.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_2_29_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="ubp_knitro_8cpp.html" target="_self">ubpKnitro.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_2_30_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="ubp_n_lopt_8cpp.html" target="_self">ubpNLopt.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_0_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="bab_bounds_8h_source.html"><span class="icondoc"></span></a><a class="el" href="bab_bounds_8h.html" target="_self">babBounds.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_1_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="bab_brancher_8h_source.html"><span class="icondoc"></span></a><a class="el" href="bab_brancher_8h.html" target="_self">babBrancher.h</a></td><td class="desc">File containing definition of the Branch-and-Bound brancher class </td></tr>
+<tr id="row_0_0_0_2_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="bab_exception_8h_source.html"><span class="icondoc"></span></a><a class="el" href="bab_exception_8h.html" target="_self">babException.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_3_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="bab_node_8h_source.html"><span class="icondoc"></span></a><a class="el" href="bab_node_8h.html" target="_self">babNode.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_4_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="bab_opt_var_8h_source.html"><span class="icondoc"></span></a><a class="el" href="bab_opt_var_8h.html" target="_self">babOptVar.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_5_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="bab_tree_8h_source.html"><span class="icondoc"></span></a><a class="el" href="bab_tree_8h.html" target="_self">babTree.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_6_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="bab_utils_8h_source.html"><span class="icondoc"></span></a><a class="el" href="bab_utils_8h.html" target="_self">babUtils.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_0_0_1_" class="arrow" onclick="toggleFolder('0_0_1_')">&#9660;</span><span id="img_0_0_1_" class="iconfopen" onclick="toggleFolder('0_0_1_')">&#160;</span><a class="el" href="dir_e05b43b1ebfd1f958e3d8d3f7545ccd7.html" target="_self">src</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_0_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="bab_brancher_8cpp.html" target="_self">babBrancher.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_1_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="bab_opt_var_8cpp.html" target="_self">babOptVar.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_2_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="bab_tree_8cpp.html" target="_self">babTree.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_1_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">&#9660;</span><span id="img_1_" class="iconfopen" onclick="toggleFolder('1_')">&#160;</span><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html" target="_self">inc</a></td><td class="desc"></td></tr>
+<tr id="row_1_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="ale_model_8h_source.html"><span class="icondoc"></span></a><a class="el" href="ale_model_8h.html" target="_self">aleModel.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="bab_8h_source.html"><span class="icondoc"></span></a><a class="el" href="bab_8h.html" target="_self">bab.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="constraint_8h_source.html"><span class="icondoc"></span></a><a class="el" href="constraint_8h.html" target="_self">constraint.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="evaluation_container_8h_source.html"><span class="icondoc"></span></a><a class="el" href="evaluation_container_8h.html" target="_self">evaluationContainer.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_4_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="function_wrapper_8h_source.html"><span class="icondoc"></span></a><a class="el" href="function_wrapper_8h.html" target="_self">functionWrapper.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="get_time_8h_source.html"><span class="icondoc"></span></a><a class="el" href="get_time_8h.html" target="_self">getTime.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_6_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="interval_library_8h_source.html"><span class="icondoc"></span></a><a class="el" href="interval_library_8h.html" target="_self">intervalLibrary.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="ipopt_problem_8h_source.html"><span class="icondoc"></span></a><a class="el" href="ipopt_problem_8h.html" target="_self">ipoptProblem.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_8_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="knitro_problem_8h_source.html"><span class="icondoc"></span></a><a class="el" href="knitro_problem_8h.html" target="_self">knitroProblem.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_9_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="lbp_8h_source.html"><span class="icondoc"></span></a><a class="el" href="lbp_8h.html" target="_self">lbp.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_10_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="lbp_clp_8h_source.html"><span class="icondoc"></span></a><a class="el" href="lbp_clp_8h.html" target="_self">lbpClp.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_11_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="lbp_cplex_8h_source.html"><span class="icondoc"></span></a><a class="el" href="lbp_cplex_8h.html" target="_self">lbpCplex.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_12_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="lbp_dag_obj_8h_source.html"><span class="icondoc"></span></a><a class="el" href="lbp_dag_obj_8h.html" target="_self">lbpDagObj.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_13_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="lbp_interval_8h_source.html"><span class="icondoc"></span></a><a class="el" href="lbp_interval_8h.html" target="_self">lbpInterval.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_14_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="logger_8h_source.html"><span class="icondoc"></span></a><a class="el" href="logger_8h.html" target="_self">logger.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_15_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_m_ai_n_g_o_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_m_ai_n_g_o_8h.html" target="_self">MAiNGO.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_16_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_m_ai_n_g_odebug_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_m_ai_n_g_odebug_8h.html" target="_self">MAiNGOdebug.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_17_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_m_ai_n_g_oevaluator_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_m_ai_n_g_oevaluator_8h.html" target="_self">MAiNGOevaluator.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_18_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_m_ai_n_g_o_exception_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_m_ai_n_g_o_exception_8h.html" target="_self">MAiNGOException.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_19_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_m_ai_n_g_omodel_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_m_ai_n_g_omodel_8h.html" target="_self">MAiNGOmodel.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_20_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_m_ai_n_g_omodel_eps_con_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_m_ai_n_g_omodel_eps_con_8h.html" target="_self">MAiNGOmodelEpsCon.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_21_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_m_ai_n_g_o_mpi_exception_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_m_ai_n_g_o_mpi_exception_8h.html" target="_self">MAiNGOMpiException.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_22_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="mc_forward_8h_source.html"><span class="icondoc"></span></a><a class="el" href="mc_forward_8h.html" target="_self">mcForward.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_23_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="mpi_utilities_8h_source.html"><span class="icondoc"></span></a><a class="el" href="mpi_utilities_8h.html" target="_self">mpiUtilities.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_24_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="output_variable_8h_source.html"><span class="icondoc"></span></a><a class="el" href="output_variable_8h.html" target="_self">outputVariable.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_25_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="program_8h_source.html"><span class="icondoc"></span></a><a class="el" href="program_8h.html" target="_self">program.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_26_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="program_parser_8h_source.html"><span class="icondoc"></span></a><a class="el" href="program_parser_8h.html" target="_self">programParser.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_27_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="return_codes_8h_source.html"><span class="icondoc"></span></a><a class="el" href="return_codes_8h.html" target="_self">returnCodes.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_28_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="settings_8h_source.html"><span class="icondoc"></span></a><a class="el" href="settings_8h.html" target="_self">settings.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_29_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="ubp_8h_source.html"><span class="icondoc"></span></a><a class="el" href="ubp_8h.html" target="_self">ubp.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_30_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="ubp_clp_8h_source.html"><span class="icondoc"></span></a><a class="el" href="ubp_clp_8h.html" target="_self">ubpClp.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_31_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="ubp_cplex_8h_source.html"><span class="icondoc"></span></a><a class="el" href="ubp_cplex_8h.html" target="_self">ubpCplex.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_32_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="ubp_dag_obj_8h_source.html"><span class="icondoc"></span></a><a class="el" href="ubp_dag_obj_8h.html" target="_self">ubpDagObj.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_33_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="ubp_evaluators_8h_source.html"><span class="icondoc"></span></a><a class="el" href="ubp_evaluators_8h.html" target="_self">ubpEvaluators.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_34_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="ubp_ipopt_8h_source.html"><span class="icondoc"></span></a><a class="el" href="ubp_ipopt_8h.html" target="_self">ubpIpopt.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_35_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="ubp_knitro_8h_source.html"><span class="icondoc"></span></a><a class="el" href="ubp_knitro_8h.html" target="_self">ubpKnitro.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_36_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="ubp_n_lopt_8h_source.html"><span class="icondoc"></span></a><a class="el" href="ubp_n_lopt_8h.html" target="_self">ubpNLopt.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_37_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="ubp_quad_expr_8h_source.html"><span class="icondoc"></span></a><a class="el" href="ubp_quad_expr_8h.html" target="_self">ubpQuadExpr.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_38_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="ubp_structure_8h_source.html"><span class="icondoc"></span></a><a class="el" href="ubp_structure_8h.html" target="_self">ubpStructure.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_39_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="utilities_8h_source.html"><span class="icondoc"></span></a><a class="el" href="utilities_8h.html" target="_self">utilities.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_40_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="variable_lister_8h_source.html"><span class="icondoc"></span></a><a class="el" href="variable_lister_8h.html" target="_self">variableLister.h</a></td><td class="desc"></td></tr>
+<tr id="row_2_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_2_" class="arrow" onclick="toggleFolder('2_')">&#9660;</span><span id="img_2_" class="iconfopen" onclick="toggleFolder('2_')">&#160;</span><a class="el" href="dir_fb6b81e558fe2a09cdb3602de97a65f7.html" target="_self">pymaingo</a></td><td class="desc"></td></tr>
+<tr id="row_2_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="____init_____8py.html" target="_self">__init__.py</a></td><td class="desc"></td></tr>
+<tr id="row_2_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="__pymaingo_8cpp.html" target="_self">_pymaingo.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_3_" class="arrow" onclick="toggleFolder('3_')">&#9660;</span><span id="img_3_" class="iconfopen" onclick="toggleFolder('3_')">&#160;</span><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html" target="_self">src</a></td><td class="desc"></td></tr>
+<tr id="row_3_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="ale_model_8cpp.html" target="_self">aleModel.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="bab_8cpp.html" target="_self">bab.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="bab_mpi_8cpp.html" target="_self">babMpi.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_3_3_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="get_time_8cpp.html" target="_self">getTime.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_3_4_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="ipopt_problem_8cpp.html" target="_self">ipoptProblem.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_3_5_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="knitro_problem_8cpp.html" target="_self">knitroProblem.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_3_6_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="lbp_8cpp.html" target="_self">lbp.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_3_7_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="lbp_clp_8cpp.html" target="_self">lbpClp.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_3_8_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="lbp_cplex_8cpp.html" target="_self">lbpCplex.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_3_9_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="lbp_dag_obj_8cpp.html" target="_self">lbpDagObj.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_3_10_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="lbp_factory_8cpp.html" target="_self">lbpFactory.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_3_11_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="lbp_interval_8cpp.html" target="_self">lbpInterval.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_3_12_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="lbp_linearization_strats_8cpp.html" target="_self">lbpLinearizationStrats.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_3_13_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="logger_8cpp.html" target="_self">logger.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_3_14_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_m_ai_n_g_o_8cpp.html" target="_self">MAiNGO.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_3_15_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_m_ai_n_g_oevaluation_functions_8cpp.html" target="_self">MAiNGOevaluationFunctions.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_3_16_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_m_ai_n_g_ogetter_functions_8cpp.html" target="_self">MAiNGOgetterFunctions.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_3_17_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_m_ai_n_g_omodel_eps_con_8cpp.html" target="_self">MAiNGOmodelEpsCon.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_3_18_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_m_ai_n_g_oprinting_functions_8cpp.html" target="_self">MAiNGOprintingFunctions.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_3_19_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_m_ai_n_g_oread_settings_8cpp.html" target="_self">MAiNGOreadSettings.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_3_20_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_m_ai_n_g_oset_option_8cpp.html" target="_self">MAiNGOsetOption.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_3_21_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_m_ai_n_g_oto_other_language_8cpp.html" target="_self">MAiNGOtoOtherLanguage.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_3_22_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="_m_ai_n_g_owriting_functions_8cpp.html" target="_self">MAiNGOwritingFunctions.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_3_23_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="program_parser_8cpp.html" target="_self">programParser.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_3_24_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="ubp_8cpp.html" target="_self">ubp.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_3_25_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="ubp_clp_8cpp.html" target="_self">ubpClp.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_3_26_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="ubp_cplex_8cpp.html" target="_self">ubpCplex.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_3_27_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="ubp_factory_8cpp.html" target="_self">ubpFactory.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_3_28_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="ubp_ipopt_8cpp.html" target="_self">ubpIpopt.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_3_29_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="ubp_knitro_8cpp.html" target="_self">ubpKnitro.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_3_30_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="ubp_n_lopt_8cpp.html" target="_self">ubpNLopt.cpp</a></td><td class="desc"></td></tr>
 </table>
 </div><!-- directory -->
 </div><!-- contents -->
@@ -189,7 +192,7 @@ $(document).ready(function(){initNavTree('files.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/files_dup.js b/doc/html/files_dup.js
index be3b37aa07ed7b7cfcfb45ec7c49d124f0b27fd9..448e4e54c71dee5cd8ba3114aa87161fe8a1e072 100644
--- a/doc/html/files_dup.js
+++ b/doc/html/files_dup.js
@@ -2,5 +2,6 @@ var files_dup =
 [
     [ "dep", "dir_ede40f663fdbaac4622f0a2d30ba279b.html", "dir_ede40f663fdbaac4622f0a2d30ba279b" ],
     [ "inc", "dir_bfccd401955b95cf8c75461437045ac0.html", "dir_bfccd401955b95cf8c75461437045ac0" ],
+    [ "pymaingo", "dir_fb6b81e558fe2a09cdb3602de97a65f7.html", "dir_fb6b81e558fe2a09cdb3602de97a65f7" ],
     [ "src", "dir_68267d1309a1af8e8297ef4c3efbcdba.html", "dir_68267d1309a1af8e8297ef4c3efbcdba" ]
 ];
\ No newline at end of file
diff --git a/doc/html/function_wrapper_8h.html b/doc/html/function_wrapper_8h.html
index f4f0a7ddc4e7dc2d1ead1314ad6f85a877fa0e01..092e73e0259da8d8594773d8819ccd4c9ff43ffb 100644
--- a/doc/html/function_wrapper_8h.html
+++ b/doc/html/function_wrapper_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/functionWrapper.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/functionWrapper.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -2412,7 +2412,7 @@ Functions</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="function_wrapper_8h.html">functionWrapper.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/function_wrapper_8h_source.html b/doc/html/function_wrapper_8h_source.html
index ecb510c0096e1647a5f9c22b8b8e4ca0e5936c68..d837e11f2af53c2a7456567f6d2109f02198003b 100644
--- a/doc/html/function_wrapper_8h_source.html
+++ b/doc/html/function_wrapper_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/functionWrapper.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/functionWrapper.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,41 +90,41 @@ $(document).ready(function(){initNavTree('function_wrapper_8h_source.html','');}
 <div class="title">functionWrapper.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="function_wrapper_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file functionWrapper.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief Wrapper to provide more convenient names for functions defined by MC++.</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *        In particular, the names are chosen for better consistency with the</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *        ones used by the ALE parser.</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;ffunc.hpp&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a0b6522fdf714c03e7a67785eb6cbaa6f">   23</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a0b6522fdf714c03e7a67785eb6cbaa6f">xlogx</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>)</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;{</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    <span class="keywordflow">return</span> mc::xlog(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>);</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;}</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a2c9a08d6e6cdfd34502b054cd40a541a">   29</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a2c9a08d6e6cdfd34502b054cd40a541a">xexpy</a>(<span class="keyword">const</span> mc::FFVar&amp; y, <span class="keyword">const</span> mc::FFVar&amp; x)</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;{</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    <span class="keywordflow">return</span> mc::expx_times_y(x, y);</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;}</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a120fa48b16571a4b235689aaa3aecb4a">   35</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a120fa48b16571a4b235689aaa3aecb4a">norm2</a>(<span class="keyword">const</span> mc::FFVar&amp; Var1, <span class="keyword">const</span> mc::FFVar&amp; Var2)</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    <span class="keywordflow">return</span> mc::euclidean_norm_2d(Var1, Var2);</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;}</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a8444819a1a18057def8ae553ea4b9e2f">   41</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a8444819a1a18057def8ae553ea4b9e2f">xabsx</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>)</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    <span class="keywordflow">return</span> mc::fabsx_times_x(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>);</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;}</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a2c2f5640a480c80ee3b308e068fe7f94">   47</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a2c2f5640a480c80ee3b308e068fe7f94">squash</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, <span class="keyword">const</span> <span class="keywordtype">double</span> lb, <span class="keyword">const</span> <span class="keywordtype">double</span> ub)</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    <span class="keywordflow">return</span> mc::squash_node(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, lb, ub);</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;}</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a9a44539ac75362fa5edc574e56600b38">   53</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a9a44539ac75362fa5edc574e56600b38">ext_antoine_psat</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> <span class="keywordtype">double</span> p1, <span class="keyword">const</span> <span class="keywordtype">double</span> p2, <span class="keyword">const</span> <span class="keywordtype">double</span> p3, <span class="keyword">const</span> <span class="keywordtype">double</span> p4,</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                 <span class="keyword">const</span> <span class="keywordtype">double</span> p5, <span class="keyword">const</span> <span class="keywordtype">double</span> p6, <span class="keyword">const</span> <span class="keywordtype">double</span> p7)</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <span class="keywordflow">return</span> mc::vapor_pressure(T, 1, p1, p2, p3, p4, p5, p6, p7);</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;}</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#aa3ab279e543c72aa1697767729714744">   60</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a9a44539ac75362fa5edc574e56600b38">ext_antoine_psat</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;{</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    assert(p.size() == 7);</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    <span class="keywordflow">return</span> mc::vapor_pressure(T, 1, p[0], p[1], p[2], p[3], p[4], p[5], p[6]);</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;}</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a29383bf7dba49ebb8215a2ae142bf950">   67</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a29383bf7dba49ebb8215a2ae142bf950">antoine_psat</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> <span class="keywordtype">double</span> p1, <span class="keyword">const</span> <span class="keywordtype">double</span> p2, <span class="keyword">const</span> <span class="keywordtype">double</span> p3)</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;{</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <span class="keywordflow">return</span> mc::vapor_pressure(T, 2, p1, p2, p3);</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;}</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a62500f93eb2b51c22286f30417435a72">   73</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a29383bf7dba49ebb8215a2ae142bf950">antoine_psat</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;{</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    assert(p.size() == 3);</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    <span class="keywordflow">return</span> mc::vapor_pressure(T, 2, p[0], p[1], p[2]);</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;}</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a65b26fb0e0072635c113609dee611e6e">   80</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a65b26fb0e0072635c113609dee611e6e">wagner_psat</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, <span class="keyword">const</span> <span class="keywordtype">double</span> p1, <span class="keyword">const</span> <span class="keywordtype">double</span> p2, <span class="keyword">const</span> <span class="keywordtype">double</span> p3, <span class="keyword">const</span> <span class="keywordtype">double</span> p4, <span class="keyword">const</span> <span class="keywordtype">double</span> Tc, <span class="keyword">const</span> <span class="keywordtype">double</span> p6)</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;{</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <span class="keywordflow">return</span> mc::vapor_pressure(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, 3, p1, p2, p3, p4, Tc, p6);</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;}</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a86b8d89d4aece6d081f111422079ea88">   86</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a65b26fb0e0072635c113609dee611e6e">wagner_psat</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;{</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    assert(p.size() == 6);</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    <span class="keywordflow">return</span> mc::vapor_pressure(T, 3, p[0], p[1], p[2], p[3], p[4], p[5]);</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;}</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a60722162735fd25cb427d126ab74e9f3">   93</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a60722162735fd25cb427d126ab74e9f3">ik_cape_psat</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> <span class="keywordtype">double</span> p1, <span class="keyword">const</span> <span class="keywordtype">double</span> p2, <span class="keyword">const</span> <span class="keywordtype">double</span> p3, <span class="keyword">const</span> <span class="keywordtype">double</span> p4,</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;             <span class="keyword">const</span> <span class="keywordtype">double</span> p5, <span class="keyword">const</span> <span class="keywordtype">double</span> p6, <span class="keyword">const</span> <span class="keywordtype">double</span> p7, <span class="keyword">const</span> <span class="keywordtype">double</span> p8, <span class="keyword">const</span> <span class="keywordtype">double</span> p9, <span class="keyword">const</span> <span class="keywordtype">double</span> p10)</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;{</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    <span class="keywordflow">return</span> mc::vapor_pressure(T, 4, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10);</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;}</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#aff78d3d42f157cad660af05d00bd0112">  101</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a60722162735fd25cb427d126ab74e9f3">ik_cape_psat</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;{</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    assert(p.size() == 10);</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    <span class="keywordflow">return</span> mc::vapor_pressure(T, 4, p[0], p[1], p[2], p[3], p[4], p[5], p[6], p[7], p[8], p[9]);</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;}</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a3eb8125b56fd6ae41720d1bc3ebe56d3">  108</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a3eb8125b56fd6ae41720d1bc3ebe56d3">antoine_tsat</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> <span class="keywordtype">double</span> p1, <span class="keyword">const</span> <span class="keywordtype">double</span> p2, <span class="keyword">const</span> <span class="keywordtype">double</span> p3)</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;{</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    <span class="keywordflow">return</span> mc::saturation_temperature(T, 2, p1, p2, p3);</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;}</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a23169e33bacd55bca6e0d043b84495ac">  114</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a3eb8125b56fd6ae41720d1bc3ebe56d3">antoine_tsat</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;{</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    assert(p.size() == 3);</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    <span class="keywordflow">return</span> mc::saturation_temperature(T, 2, p[0], p[1], p[2]);</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;}</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a4b958aea1a60205b1399fd0686a36793">  121</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a4b958aea1a60205b1399fd0686a36793">aspen_hig</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> <span class="keywordtype">double</span> T0, <span class="keyword">const</span> <span class="keywordtype">double</span> p1, <span class="keyword">const</span> <span class="keywordtype">double</span> p2, <span class="keyword">const</span> <span class="keywordtype">double</span> p3, <span class="keyword">const</span> <span class="keywordtype">double</span> p4,</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;          <span class="keyword">const</span> <span class="keywordtype">double</span> p5, <span class="keyword">const</span> <span class="keywordtype">double</span> p6)</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;{</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    <span class="keywordflow">return</span> mc::ideal_gas_enthalpy(T, T0, 1, p1, p2, p3, p4, p5, p6);</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;}</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a9ed331d9b129728e9845de34796fc57c">  128</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a4b958aea1a60205b1399fd0686a36793">aspen_hig</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> <span class="keywordtype">double</span> T0, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;{</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    assert(p.size() == 6);</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    <span class="keywordflow">return</span> mc::ideal_gas_enthalpy(T, T0, 1, p[0], p[1], p[2], p[3], p[4], p[5]);</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;}</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#ad3d1dc943fd39eef8ee229ae74b6d9f3">  135</a></span>&#160;<a class="code" href="function_wrapper_8h.html#ad3d1dc943fd39eef8ee229ae74b6d9f3">nasa9_hig</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> <span class="keywordtype">double</span> T0, <span class="keyword">const</span> <span class="keywordtype">double</span> p1, <span class="keyword">const</span> <span class="keywordtype">double</span> p2, <span class="keyword">const</span> <span class="keywordtype">double</span> p3, <span class="keyword">const</span> <span class="keywordtype">double</span> p4,</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;          <span class="keyword">const</span> <span class="keywordtype">double</span> p5, <span class="keyword">const</span> <span class="keywordtype">double</span> p6, <span class="keyword">const</span> <span class="keywordtype">double</span> p7)</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;{</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    <span class="keywordflow">return</span> mc::ideal_gas_enthalpy(T, T0, 2, p1, p2, p3, p4, p5, p6, p7);</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;}</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#ad44d270287c3d5c476ba3504e3e7fc84">  142</a></span>&#160;<a class="code" href="function_wrapper_8h.html#ad3d1dc943fd39eef8ee229ae74b6d9f3">nasa9_hig</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> <span class="keywordtype">double</span> T0, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;{</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    assert(p.size() == 7);</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    <span class="keywordflow">return</span> mc::ideal_gas_enthalpy(T, T0, 2, p[0], p[1], p[2], p[3], p[4], p[5], p[6]);</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;}</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a63c9aad65173515a01c3312c4b53005d">  149</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a63c9aad65173515a01c3312c4b53005d">dippr107_hig</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> <span class="keywordtype">double</span> T0, <span class="keyword">const</span> <span class="keywordtype">double</span> p1, <span class="keyword">const</span> <span class="keywordtype">double</span> p2, <span class="keyword">const</span> <span class="keywordtype">double</span> p3, <span class="keyword">const</span> <span class="keywordtype">double</span> p4,</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;             <span class="keyword">const</span> <span class="keywordtype">double</span> p5)</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;{</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    <span class="keywordflow">return</span> mc::ideal_gas_enthalpy(T, T0, 3, p1, p2, p3, p4, p5);</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;}</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a9cf00a420deabe42b8124635e852af05">  156</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a63c9aad65173515a01c3312c4b53005d">dippr107_hig</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> <span class="keywordtype">double</span> T0, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;{</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    assert(p.size() == 5);</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;    <span class="keywordflow">return</span> mc::ideal_gas_enthalpy(T, T0, 3, p[0], p[1], p[2], p[3], p[4]);</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;}</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a93ac82fac115e82cc84115d08e26a9d7">  163</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a93ac82fac115e82cc84115d08e26a9d7">dippr127_hig</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> <span class="keywordtype">double</span> T0, <span class="keyword">const</span> <span class="keywordtype">double</span> p1, <span class="keyword">const</span> <span class="keywordtype">double</span> p2, <span class="keyword">const</span> <span class="keywordtype">double</span> p3, <span class="keyword">const</span> <span class="keywordtype">double</span> p4,</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;             <span class="keyword">const</span> <span class="keywordtype">double</span> p5, <span class="keyword">const</span> <span class="keywordtype">double</span> p6, <span class="keyword">const</span> <span class="keywordtype">double</span> p7)</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;{</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    <span class="keywordflow">return</span> mc::ideal_gas_enthalpy(T, T0, 4, p1, p2, p3, p4, p5, p6, p7);</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;}</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a23279a80b1dddc9c6df1152f78c347ef">  170</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a93ac82fac115e82cc84115d08e26a9d7">dippr127_hig</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> <span class="keywordtype">double</span> T0, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;{</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    assert(p.size() == 7);</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;    <span class="keywordflow">return</span> mc::ideal_gas_enthalpy(T, T0, 4, p[0], p[1], p[2], p[3], p[4], p[5], p[6]);</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;}</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a194545da47bf162f208d599f4e460017">  177</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a194545da47bf162f208d599f4e460017">watson_dhvap</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> <span class="keywordtype">double</span> Tc, <span class="keyword">const</span> <span class="keywordtype">double</span> a, <span class="keyword">const</span> <span class="keywordtype">double</span> b, <span class="keyword">const</span> <span class="keywordtype">double</span> T1,</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;             <span class="keyword">const</span> <span class="keywordtype">double</span> dHT1)</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;{</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    <span class="keywordflow">return</span> mc::enthalpy_of_vaporization(T, 1, Tc, a, b, T1, dHT1);</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;}</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#ab37b968c39c60ec673af52218aa7ffa0">  184</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a194545da47bf162f208d599f4e460017">watson_dhvap</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;{</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;    assert(p.size() == 5);</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;    <span class="keywordflow">return</span> mc::enthalpy_of_vaporization(T, 1, p[0], p[1], p[2], p[3], p[4]);</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;}</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a9734f0bacf604d4cb1b8f75f285cec2b">  191</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a9734f0bacf604d4cb1b8f75f285cec2b">dippr106_dhvap</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> <span class="keywordtype">double</span> Tc, <span class="keyword">const</span> <span class="keywordtype">double</span> p1, <span class="keyword">const</span> <span class="keywordtype">double</span> p2, <span class="keyword">const</span> <span class="keywordtype">double</span> p3,</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;               <span class="keyword">const</span> <span class="keywordtype">double</span> p4, <span class="keyword">const</span> <span class="keywordtype">double</span> p5)</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;{</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;    <span class="keywordflow">return</span> mc::enthalpy_of_vaporization(T, 2, Tc, p1, p2, p3, p4, p5);</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;}</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a56a48129859f32d4e6206982149421b2">  198</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a9734f0bacf604d4cb1b8f75f285cec2b">dippr106_dhvap</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;{</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    assert(p.size() == 6);</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;    <span class="keywordflow">return</span> mc::enthalpy_of_vaporization(T, 2, p[0], p[1], p[2], p[3], p[4], p[5]);</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;}</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a8d1832b6e26bba0d76ead168b5260a77">  206</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a8d1832b6e26bba0d76ead168b5260a77">nrtl_tau</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;{</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;    assert(p.size() == 4);</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="function_wrapper_8h.html#a8d1832b6e26bba0d76ead168b5260a77">mc::nrtl_tau</a>(T, p[0], p[1], p[2], p[3]);</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;}</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#af7f639d12a57ad25c80a3e4a0a15def6">  213</a></span>&#160;<a class="code" href="function_wrapper_8h.html#af7f639d12a57ad25c80a3e4a0a15def6">nrtl_dtau</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;{</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;    assert(p.size() == 3);</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="function_wrapper_8h.html#af7f639d12a57ad25c80a3e4a0a15def6">mc::nrtl_dtau</a>(T, p[0], p[1], p[2]);</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;}</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a8951a8260af6f4d7ebe65aae99e995fe">  220</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a8951a8260af6f4d7ebe65aae99e995fe">nrtl_g</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> <span class="keywordtype">double</span> a, <span class="keyword">const</span> <span class="keywordtype">double</span> b, <span class="keyword">const</span> <span class="keywordtype">double</span> e, <span class="keyword">const</span> <span class="keywordtype">double</span> f, <span class="keyword">const</span> <span class="keywordtype">double</span> alpha)</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;{</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;    <span class="keywordflow">return</span> mc::nrtl_G(T, a, b, e, f, alpha);</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;}</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#abee0b55ffe0c790ddd7d46cba79b19e8">  226</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a8951a8260af6f4d7ebe65aae99e995fe">nrtl_g</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;{</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;    assert(p.size() == 5);</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    <span class="keywordflow">return</span> mc::nrtl_G(T, p[0], p[1], p[2], p[3], p[4]);</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;}</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#aec8d022532775ee32b46fdf69bdda3f3">  233</a></span>&#160;<a class="code" href="function_wrapper_8h.html#aec8d022532775ee32b46fdf69bdda3f3">nrtl_gtau</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> <span class="keywordtype">double</span> a, <span class="keyword">const</span> <span class="keywordtype">double</span> b, <span class="keyword">const</span> <span class="keywordtype">double</span> e, <span class="keyword">const</span> <span class="keywordtype">double</span> f, <span class="keyword">const</span> <span class="keywordtype">double</span> alpha)</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;{</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;    <span class="keywordflow">return</span> mc::nrtl_Gtau(T, a, b, e, f, alpha);</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;}</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#ac4bb81cca694afc27f59eb307ac66616">  239</a></span>&#160;<a class="code" href="function_wrapper_8h.html#aec8d022532775ee32b46fdf69bdda3f3">nrtl_gtau</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;{</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    assert(p.size() == 5);</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;    <span class="keywordflow">return</span> mc::nrtl_Gtau(T, p[0], p[1], p[2], p[3], p[4]);</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;}</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a1f9e28e1b6ad5ff2d6f6e4c33d6aaf24">  246</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a1f9e28e1b6ad5ff2d6f6e4c33d6aaf24">nrtl_gdtau</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, <span class="keyword">const</span> <span class="keywordtype">double</span> a, <span class="keyword">const</span> <span class="keywordtype">double</span> b, <span class="keyword">const</span> <span class="keywordtype">double</span> e, <span class="keyword">const</span> <span class="keywordtype">double</span> f, <span class="keyword">const</span> <span class="keywordtype">double</span> alpha)</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;{</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;    <span class="keywordflow">return</span> mc::nrtl_Gdtau(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, a, b, e, f, alpha);</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;}</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#aaa57a91765e20865e492a9743cc0a892">  252</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a1f9e28e1b6ad5ff2d6f6e4c33d6aaf24">nrtl_gdtau</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;{</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;    assert(p.size() == 5);</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;    <span class="keywordflow">return</span> mc::nrtl_Gdtau(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, p[0], p[1], p[2], p[3], p[4]);</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;}</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a7e4ad88c6f2169ac4f828fba0f522740">  259</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a7e4ad88c6f2169ac4f828fba0f522740">nrtl_dgtau</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, <span class="keyword">const</span> <span class="keywordtype">double</span> a, <span class="keyword">const</span> <span class="keywordtype">double</span> b, <span class="keyword">const</span> <span class="keywordtype">double</span> e, <span class="keyword">const</span> <span class="keywordtype">double</span> f, <span class="keyword">const</span> <span class="keywordtype">double</span> alpha)</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;{</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;    <span class="keywordflow">return</span> mc::nrtl_dGtau(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, a, b, e, f, alpha);</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;}</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a5b45be879181cb3eade9feaf28f79cea">  265</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a7e4ad88c6f2169ac4f828fba0f522740">nrtl_dgtau</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;{</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;    assert(p.size() == 5);</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;    <span class="keywordflow">return</span> mc::nrtl_dGtau(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, p[0], p[1], p[2], p[3], p[4]);</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;}</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a7b4403422eeebdd9b79d3a24b7d9f910">  272</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a7b4403422eeebdd9b79d3a24b7d9f910">schroeder_ethanol_p</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>)</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;{</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;    <span class="keywordflow">return</span> mc::p_sat_ethanol_schroeder(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>);</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;}</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a307d5d824ec8da405242f672377a689b">  278</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a307d5d824ec8da405242f672377a689b">schroeder_ethanol_rhovap</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>)</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;{</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;    <span class="keywordflow">return</span> mc::rho_vap_sat_ethanol_schroeder(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>);</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;}</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a1250c885b8251f1cd8938e1c669b8dee">  284</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a1250c885b8251f1cd8938e1c669b8dee">schroeder_ethanol_rholiq</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>)</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;{</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;    <span class="keywordflow">return</span> mc::rho_liq_sat_ethanol_schroeder(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>);</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;}</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00290"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a72463c3ea36ac41383a73282c15e1fb0">  290</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a72463c3ea36ac41383a73282c15e1fb0">cost_turton</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, <span class="keyword">const</span> <span class="keywordtype">double</span> p1, <span class="keyword">const</span> <span class="keywordtype">double</span> p2, <span class="keyword">const</span> <span class="keywordtype">double</span> p3)</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;{</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;    <span class="keywordflow">return</span> mc::cost_function(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, 1, p1, p2, p3);</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;}</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00296"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#aa7e6848d015c9ed562813805a9af0efa">  296</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a72463c3ea36ac41383a73282c15e1fb0">cost_turton</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;{</div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;    assert(p.size() == 3);</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;    <span class="keywordflow">return</span> mc::cost_function(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, 1, p[0], p[1], p[2]);</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;}</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a393fac03606bafabb5ac516a21f8b82d">  303</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a393fac03606bafabb5ac516a21f8b82d">covar_matern_1</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>)</div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;{</div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;    <span class="keywordflow">return</span> mc::covariance_function(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, 1);</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;}</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;</div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#ab9fc36a1823201f93dca7b4ff6dc2e85">  309</a></span>&#160;<a class="code" href="function_wrapper_8h.html#ab9fc36a1823201f93dca7b4ff6dc2e85">covar_matern_3</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>)</div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;{</div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;    <span class="keywordflow">return</span> mc::covariance_function(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, 2);</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;}</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;</div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#acb14288e216211260fde8ff031a8deec">  315</a></span>&#160;<a class="code" href="function_wrapper_8h.html#acb14288e216211260fde8ff031a8deec">covar_matern_5</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>)</div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;{</div><div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;    <span class="keywordflow">return</span> mc::covariance_function(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, 3);</div><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;}</div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a5a3858fb864d7372bea4eec87c99c2c7">  321</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a5a3858fb864d7372bea4eec87c99c2c7">covar_sqrexp</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>)</div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;{</div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;    <span class="keywordflow">return</span> mc::covariance_function(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, 4);</div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;}</div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00327"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a36ab810e8ae60a22ed95fe79e274e110">  327</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a36ab810e8ae60a22ed95fe79e274e110">af_lcb</a>(<span class="keyword">const</span> mc::FFVar&amp; Var1, <span class="keyword">const</span> mc::FFVar&amp; Var2, <span class="keyword">const</span> <span class="keywordtype">double</span> kappa)</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;{</div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;    <span class="keywordflow">return</span> mc::acquisition_function(Var1, Var2, 1, kappa);</div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;}</div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;</div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a8ba798e25eb57db7e41b5bafea7e001d">  333</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a8ba798e25eb57db7e41b5bafea7e001d">af_ei</a>(<span class="keyword">const</span> mc::FFVar&amp; Var1, <span class="keyword">const</span> mc::FFVar&amp; Var2, <span class="keyword">const</span> <span class="keywordtype">double</span> fmin)</div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;{</div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;    <span class="keywordflow">return</span> mc::acquisition_function(Var1, Var2, 2, fmin);</div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;}</div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;</div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a497e2d299632d879d274138f78275c98">  339</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a497e2d299632d879d274138f78275c98">af_pi</a>(<span class="keyword">const</span> mc::FFVar&amp; Var1, <span class="keyword">const</span> mc::FFVar&amp; Var2, <span class="keyword">const</span> <span class="keywordtype">double</span> fmin)</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;{</div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;    <span class="keywordflow">return</span> mc::acquisition_function(Var1, Var2, 3, fmin);</div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;}</div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;</div><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#afab03d3ca78008087d0864bf50985edc">  345</a></span>&#160;<a class="code" href="function_wrapper_8h.html#afab03d3ca78008087d0864bf50985edc">gpdf</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>)</div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;{</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;    <span class="keywordflow">return</span> mc::gaussian_probability_density_function(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>);</div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;}</div><div class="ttc" id="function_wrapper_8h_html_a120fa48b16571a4b235689aaa3aecb4a"><div class="ttname"><a href="function_wrapper_8h.html#a120fa48b16571a4b235689aaa3aecb4a">norm2</a></div><div class="ttdeci">mc::FFVar norm2(const mc::FFVar &amp;Var1, const mc::FFVar &amp;Var2)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:35</div></div>
-<div class="ttc" id="function_wrapper_8h_html_a2c9a08d6e6cdfd34502b054cd40a541a"><div class="ttname"><a href="function_wrapper_8h.html#a2c9a08d6e6cdfd34502b054cd40a541a">xexpy</a></div><div class="ttdeci">mc::FFVar xexpy(const mc::FFVar &amp;y, const mc::FFVar &amp;x)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:29</div></div>
-<div class="ttc" id="function_wrapper_8h_html_a393fac03606bafabb5ac516a21f8b82d"><div class="ttname"><a href="function_wrapper_8h.html#a393fac03606bafabb5ac516a21f8b82d">covar_matern_1</a></div><div class="ttdeci">mc::FFVar covar_matern_1(const mc::FFVar &amp;Var)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:303</div></div>
-<div class="ttc" id="function_wrapper_8h_html_a1f9e28e1b6ad5ff2d6f6e4c33d6aaf24"><div class="ttname"><a href="function_wrapper_8h.html#a1f9e28e1b6ad5ff2d6f6e4c33d6aaf24">nrtl_gdtau</a></div><div class="ttdeci">mc::FFVar nrtl_gdtau(const mc::FFVar &amp;Var, const double a, const double b, const double e, const double f, const double alpha)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:246</div></div>
-<div class="ttc" id="function_wrapper_8h_html_a1250c885b8251f1cd8938e1c669b8dee"><div class="ttname"><a href="function_wrapper_8h.html#a1250c885b8251f1cd8938e1c669b8dee">schroeder_ethanol_rholiq</a></div><div class="ttdeci">mc::FFVar schroeder_ethanol_rholiq(const mc::FFVar &amp;Var)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:284</div></div>
-<div class="ttc" id="function_wrapper_8h_html_a5a3858fb864d7372bea4eec87c99c2c7"><div class="ttname"><a href="function_wrapper_8h.html#a5a3858fb864d7372bea4eec87c99c2c7">covar_sqrexp</a></div><div class="ttdeci">mc::FFVar covar_sqrexp(const mc::FFVar &amp;Var)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:321</div></div>
-<div class="ttc" id="ale_model_8h_html_a9c4e868adf1bc404290197d3c92f56bc"><div class="ttname"><a href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a></div><div class="ttdeci">mc::FFVar Var</div><div class="ttdef"><b>Definition:</b> aleModel.h:28</div></div>
-<div class="ttc" id="function_wrapper_8h_html_a9a44539ac75362fa5edc574e56600b38"><div class="ttname"><a href="function_wrapper_8h.html#a9a44539ac75362fa5edc574e56600b38">ext_antoine_psat</a></div><div class="ttdeci">mc::FFVar ext_antoine_psat(const mc::FFVar &amp;T, const double p1, const double p2, const double p3, const double p4, const double p5, const double p6, const double p7)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:53</div></div>
-<div class="ttc" id="function_wrapper_8h_html_a497e2d299632d879d274138f78275c98"><div class="ttname"><a href="function_wrapper_8h.html#a497e2d299632d879d274138f78275c98">af_pi</a></div><div class="ttdeci">mc::FFVar af_pi(const mc::FFVar &amp;Var1, const mc::FFVar &amp;Var2, const double fmin)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:339</div></div>
-<div class="ttc" id="function_wrapper_8h_html_a7b4403422eeebdd9b79d3a24b7d9f910"><div class="ttname"><a href="function_wrapper_8h.html#a7b4403422eeebdd9b79d3a24b7d9f910">schroeder_ethanol_p</a></div><div class="ttdeci">mc::FFVar schroeder_ethanol_p(const mc::FFVar &amp;Var)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:272</div></div>
-<div class="ttc" id="function_wrapper_8h_html_a63c9aad65173515a01c3312c4b53005d"><div class="ttname"><a href="function_wrapper_8h.html#a63c9aad65173515a01c3312c4b53005d">dippr107_hig</a></div><div class="ttdeci">mc::FFVar dippr107_hig(const mc::FFVar &amp;T, const double T0, const double p1, const double p2, const double p3, const double p4, const double p5)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:149</div></div>
-<div class="ttc" id="function_wrapper_8h_html_aec8d022532775ee32b46fdf69bdda3f3"><div class="ttname"><a href="function_wrapper_8h.html#aec8d022532775ee32b46fdf69bdda3f3">nrtl_gtau</a></div><div class="ttdeci">mc::FFVar nrtl_gtau(const mc::FFVar &amp;T, const double a, const double b, const double e, const double f, const double alpha)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:233</div></div>
-<div class="ttc" id="function_wrapper_8h_html_a60722162735fd25cb427d126ab74e9f3"><div class="ttname"><a href="function_wrapper_8h.html#a60722162735fd25cb427d126ab74e9f3">ik_cape_psat</a></div><div class="ttdeci">mc::FFVar ik_cape_psat(const mc::FFVar &amp;T, const double p1, const double p2, const double p3, const double p4, const double p5, const double p6, const double p7, const double p8, const double p9, const double p10)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:93</div></div>
-<div class="ttc" id="function_wrapper_8h_html_a7e4ad88c6f2169ac4f828fba0f522740"><div class="ttname"><a href="function_wrapper_8h.html#a7e4ad88c6f2169ac4f828fba0f522740">nrtl_dgtau</a></div><div class="ttdeci">mc::FFVar nrtl_dgtau(const mc::FFVar &amp;Var, const double a, const double b, const double e, const double f, const double alpha)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:259</div></div>
-<div class="ttc" id="function_wrapper_8h_html_ab9fc36a1823201f93dca7b4ff6dc2e85"><div class="ttname"><a href="function_wrapper_8h.html#ab9fc36a1823201f93dca7b4ff6dc2e85">covar_matern_3</a></div><div class="ttdeci">mc::FFVar covar_matern_3(const mc::FFVar &amp;Var)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:309</div></div>
-<div class="ttc" id="function_wrapper_8h_html_a0b6522fdf714c03e7a67785eb6cbaa6f"><div class="ttname"><a href="function_wrapper_8h.html#a0b6522fdf714c03e7a67785eb6cbaa6f">xlogx</a></div><div class="ttdeci">mc::FFVar xlogx(const mc::FFVar &amp;Var)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:23</div></div>
-<div class="ttc" id="function_wrapper_8h_html_a72463c3ea36ac41383a73282c15e1fb0"><div class="ttname"><a href="function_wrapper_8h.html#a72463c3ea36ac41383a73282c15e1fb0">cost_turton</a></div><div class="ttdeci">mc::FFVar cost_turton(const mc::FFVar &amp;Var, const double p1, const double p2, const double p3)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:290</div></div>
-<div class="ttc" id="function_wrapper_8h_html_a93ac82fac115e82cc84115d08e26a9d7"><div class="ttname"><a href="function_wrapper_8h.html#a93ac82fac115e82cc84115d08e26a9d7">dippr127_hig</a></div><div class="ttdeci">mc::FFVar dippr127_hig(const mc::FFVar &amp;T, const double T0, const double p1, const double p2, const double p3, const double p4, const double p5, const double p6, const double p7)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:163</div></div>
-<div class="ttc" id="function_wrapper_8h_html_a8951a8260af6f4d7ebe65aae99e995fe"><div class="ttname"><a href="function_wrapper_8h.html#a8951a8260af6f4d7ebe65aae99e995fe">nrtl_g</a></div><div class="ttdeci">mc::FFVar nrtl_g(const mc::FFVar &amp;T, const double a, const double b, const double e, const double f, const double alpha)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:220</div></div>
-<div class="ttc" id="function_wrapper_8h_html_a8d1832b6e26bba0d76ead168b5260a77"><div class="ttname"><a href="function_wrapper_8h.html#a8d1832b6e26bba0d76ead168b5260a77">nrtl_tau</a></div><div class="ttdeci">mc::FFVar nrtl_tau(const mc::FFVar &amp;T, const std::vector&lt; double &gt; p)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:206</div></div>
-<div class="ttc" id="function_wrapper_8h_html_a36ab810e8ae60a22ed95fe79e274e110"><div class="ttname"><a href="function_wrapper_8h.html#a36ab810e8ae60a22ed95fe79e274e110">af_lcb</a></div><div class="ttdeci">mc::FFVar af_lcb(const mc::FFVar &amp;Var1, const mc::FFVar &amp;Var2, const double kappa)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:327</div></div>
-<div class="ttc" id="function_wrapper_8h_html_af7f639d12a57ad25c80a3e4a0a15def6"><div class="ttname"><a href="function_wrapper_8h.html#af7f639d12a57ad25c80a3e4a0a15def6">nrtl_dtau</a></div><div class="ttdeci">mc::FFVar nrtl_dtau(const mc::FFVar &amp;T, const std::vector&lt; double &gt; p)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:213</div></div>
-<div class="ttc" id="function_wrapper_8h_html_acb14288e216211260fde8ff031a8deec"><div class="ttname"><a href="function_wrapper_8h.html#acb14288e216211260fde8ff031a8deec">covar_matern_5</a></div><div class="ttdeci">mc::FFVar covar_matern_5(const mc::FFVar &amp;Var)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:315</div></div>
-<div class="ttc" id="function_wrapper_8h_html_a307d5d824ec8da405242f672377a689b"><div class="ttname"><a href="function_wrapper_8h.html#a307d5d824ec8da405242f672377a689b">schroeder_ethanol_rhovap</a></div><div class="ttdeci">mc::FFVar schroeder_ethanol_rhovap(const mc::FFVar &amp;Var)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:278</div></div>
-<div class="ttc" id="function_wrapper_8h_html_a8444819a1a18057def8ae553ea4b9e2f"><div class="ttname"><a href="function_wrapper_8h.html#a8444819a1a18057def8ae553ea4b9e2f">xabsx</a></div><div class="ttdeci">mc::FFVar xabsx(const mc::FFVar &amp;Var)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:41</div></div>
-<div class="ttc" id="function_wrapper_8h_html_ad3d1dc943fd39eef8ee229ae74b6d9f3"><div class="ttname"><a href="function_wrapper_8h.html#ad3d1dc943fd39eef8ee229ae74b6d9f3">nasa9_hig</a></div><div class="ttdeci">mc::FFVar nasa9_hig(const mc::FFVar &amp;T, const double T0, const double p1, const double p2, const double p3, const double p4, const double p5, const double p6, const double p7)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:135</div></div>
-<div class="ttc" id="function_wrapper_8h_html_a9734f0bacf604d4cb1b8f75f285cec2b"><div class="ttname"><a href="function_wrapper_8h.html#a9734f0bacf604d4cb1b8f75f285cec2b">dippr106_dhvap</a></div><div class="ttdeci">mc::FFVar dippr106_dhvap(const mc::FFVar &amp;T, const double Tc, const double p1, const double p2, const double p3, const double p4, const double p5)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:191</div></div>
-<div class="ttc" id="function_wrapper_8h_html_a4b958aea1a60205b1399fd0686a36793"><div class="ttname"><a href="function_wrapper_8h.html#a4b958aea1a60205b1399fd0686a36793">aspen_hig</a></div><div class="ttdeci">mc::FFVar aspen_hig(const mc::FFVar &amp;T, const double T0, const double p1, const double p2, const double p3, const double p4, const double p5, const double p6)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:121</div></div>
-<div class="ttc" id="function_wrapper_8h_html_a2c2f5640a480c80ee3b308e068fe7f94"><div class="ttname"><a href="function_wrapper_8h.html#a2c2f5640a480c80ee3b308e068fe7f94">squash</a></div><div class="ttdeci">mc::FFVar squash(const mc::FFVar &amp;Var, const double lb, const double ub)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:47</div></div>
-<div class="ttc" id="function_wrapper_8h_html_a194545da47bf162f208d599f4e460017"><div class="ttname"><a href="function_wrapper_8h.html#a194545da47bf162f208d599f4e460017">watson_dhvap</a></div><div class="ttdeci">mc::FFVar watson_dhvap(const mc::FFVar &amp;T, const double Tc, const double a, const double b, const double T1, const double dHT1)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:177</div></div>
-<div class="ttc" id="function_wrapper_8h_html_a29383bf7dba49ebb8215a2ae142bf950"><div class="ttname"><a href="function_wrapper_8h.html#a29383bf7dba49ebb8215a2ae142bf950">antoine_psat</a></div><div class="ttdeci">mc::FFVar antoine_psat(const mc::FFVar &amp;T, const double p1, const double p2, const double p3)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:67</div></div>
-<div class="ttc" id="function_wrapper_8h_html_a65b26fb0e0072635c113609dee611e6e"><div class="ttname"><a href="function_wrapper_8h.html#a65b26fb0e0072635c113609dee611e6e">wagner_psat</a></div><div class="ttdeci">mc::FFVar wagner_psat(const mc::FFVar &amp;Var, const double p1, const double p2, const double p3, const double p4, const double Tc, const double p6)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:80</div></div>
-<div class="ttc" id="function_wrapper_8h_html_a8ba798e25eb57db7e41b5bafea7e001d"><div class="ttname"><a href="function_wrapper_8h.html#a8ba798e25eb57db7e41b5bafea7e001d">af_ei</a></div><div class="ttdeci">mc::FFVar af_ei(const mc::FFVar &amp;Var1, const mc::FFVar &amp;Var2, const double fmin)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:333</div></div>
-<div class="ttc" id="function_wrapper_8h_html_a3eb8125b56fd6ae41720d1bc3ebe56d3"><div class="ttname"><a href="function_wrapper_8h.html#a3eb8125b56fd6ae41720d1bc3ebe56d3">antoine_tsat</a></div><div class="ttdeci">mc::FFVar antoine_tsat(const mc::FFVar &amp;T, const double p1, const double p2, const double p3)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:108</div></div>
-<div class="ttc" id="function_wrapper_8h_html_afab03d3ca78008087d0864bf50985edc"><div class="ttname"><a href="function_wrapper_8h.html#afab03d3ca78008087d0864bf50985edc">gpdf</a></div><div class="ttdeci">mc::FFVar gpdf(const mc::FFVar &amp;Var)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:345</div></div>
+<a href="function_wrapper_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;ffunc.hpp&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a0b6522fdf714c03e7a67785eb6cbaa6f">   17</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a0b6522fdf714c03e7a67785eb6cbaa6f">xlogx</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>)</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;{</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;    <span class="keywordflow">return</span> mc::xlog(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>);</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;}</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a2c9a08d6e6cdfd34502b054cd40a541a">   23</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a2c9a08d6e6cdfd34502b054cd40a541a">xexpy</a>(<span class="keyword">const</span> mc::FFVar&amp; y, <span class="keyword">const</span> mc::FFVar&amp; x)</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;{</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    <span class="keywordflow">return</span> mc::expx_times_y(x, y);</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;}</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a120fa48b16571a4b235689aaa3aecb4a">   29</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a120fa48b16571a4b235689aaa3aecb4a">norm2</a>(<span class="keyword">const</span> mc::FFVar&amp; Var1, <span class="keyword">const</span> mc::FFVar&amp; Var2)</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;{</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    <span class="keywordflow">return</span> mc::euclidean_norm_2d(Var1, Var2);</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;}</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a8444819a1a18057def8ae553ea4b9e2f">   35</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a8444819a1a18057def8ae553ea4b9e2f">xabsx</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>)</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    <span class="keywordflow">return</span> mc::fabsx_times_x(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>);</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;}</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a2c2f5640a480c80ee3b308e068fe7f94">   41</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a2c2f5640a480c80ee3b308e068fe7f94">squash</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, <span class="keyword">const</span> <span class="keywordtype">double</span> lb, <span class="keyword">const</span> <span class="keywordtype">double</span> ub)</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    <span class="keywordflow">return</span> mc::squash_node(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, lb, ub);</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;}</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a9a44539ac75362fa5edc574e56600b38">   47</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a9a44539ac75362fa5edc574e56600b38">ext_antoine_psat</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> <span class="keywordtype">double</span> p1, <span class="keyword">const</span> <span class="keywordtype">double</span> p2, <span class="keyword">const</span> <span class="keywordtype">double</span> p3, <span class="keyword">const</span> <span class="keywordtype">double</span> p4,</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;                 <span class="keyword">const</span> <span class="keywordtype">double</span> p5, <span class="keyword">const</span> <span class="keywordtype">double</span> p6, <span class="keyword">const</span> <span class="keywordtype">double</span> p7)</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    <span class="keywordflow">return</span> mc::vapor_pressure(T, 1, p1, p2, p3, p4, p5, p6, p7);</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;}</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#aa3ab279e543c72aa1697767729714744">   54</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a9a44539ac75362fa5edc574e56600b38">ext_antoine_psat</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    assert(p.size() == 7);</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <span class="keywordflow">return</span> mc::vapor_pressure(T, 1, p[0], p[1], p[2], p[3], p[4], p[5], p[6]);</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;}</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a29383bf7dba49ebb8215a2ae142bf950">   61</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a29383bf7dba49ebb8215a2ae142bf950">antoine_psat</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> <span class="keywordtype">double</span> p1, <span class="keyword">const</span> <span class="keywordtype">double</span> p2, <span class="keyword">const</span> <span class="keywordtype">double</span> p3)</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;{</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    <span class="keywordflow">return</span> mc::vapor_pressure(T, 2, p1, p2, p3);</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;}</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a62500f93eb2b51c22286f30417435a72">   67</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a29383bf7dba49ebb8215a2ae142bf950">antoine_psat</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;{</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    assert(p.size() == 3);</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    <span class="keywordflow">return</span> mc::vapor_pressure(T, 2, p[0], p[1], p[2]);</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;}</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a65b26fb0e0072635c113609dee611e6e">   74</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a65b26fb0e0072635c113609dee611e6e">wagner_psat</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, <span class="keyword">const</span> <span class="keywordtype">double</span> p1, <span class="keyword">const</span> <span class="keywordtype">double</span> p2, <span class="keyword">const</span> <span class="keywordtype">double</span> p3, <span class="keyword">const</span> <span class="keywordtype">double</span> p4, <span class="keyword">const</span> <span class="keywordtype">double</span> Tc, <span class="keyword">const</span> <span class="keywordtype">double</span> p6)</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;{</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    <span class="keywordflow">return</span> mc::vapor_pressure(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, 3, p1, p2, p3, p4, Tc, p6);</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;}</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a86b8d89d4aece6d081f111422079ea88">   80</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a65b26fb0e0072635c113609dee611e6e">wagner_psat</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;{</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    assert(p.size() == 6);</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    <span class="keywordflow">return</span> mc::vapor_pressure(T, 3, p[0], p[1], p[2], p[3], p[4], p[5]);</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;}</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a60722162735fd25cb427d126ab74e9f3">   87</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a60722162735fd25cb427d126ab74e9f3">ik_cape_psat</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> <span class="keywordtype">double</span> p1, <span class="keyword">const</span> <span class="keywordtype">double</span> p2, <span class="keyword">const</span> <span class="keywordtype">double</span> p3, <span class="keyword">const</span> <span class="keywordtype">double</span> p4,</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;             <span class="keyword">const</span> <span class="keywordtype">double</span> p5, <span class="keyword">const</span> <span class="keywordtype">double</span> p6, <span class="keyword">const</span> <span class="keywordtype">double</span> p7, <span class="keyword">const</span> <span class="keywordtype">double</span> p8, <span class="keyword">const</span> <span class="keywordtype">double</span> p9, <span class="keyword">const</span> <span class="keywordtype">double</span> p10)</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;{</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    <span class="keywordflow">return</span> mc::vapor_pressure(T, 4, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10);</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;}</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#aff78d3d42f157cad660af05d00bd0112">   95</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a60722162735fd25cb427d126ab74e9f3">ik_cape_psat</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;{</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    assert(p.size() == 10);</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    <span class="keywordflow">return</span> mc::vapor_pressure(T, 4, p[0], p[1], p[2], p[3], p[4], p[5], p[6], p[7], p[8], p[9]);</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;}</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a3eb8125b56fd6ae41720d1bc3ebe56d3">  102</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a3eb8125b56fd6ae41720d1bc3ebe56d3">antoine_tsat</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> <span class="keywordtype">double</span> p1, <span class="keyword">const</span> <span class="keywordtype">double</span> p2, <span class="keyword">const</span> <span class="keywordtype">double</span> p3)</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;{</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    <span class="keywordflow">return</span> mc::saturation_temperature(T, 2, p1, p2, p3);</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;}</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a23169e33bacd55bca6e0d043b84495ac">  108</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a3eb8125b56fd6ae41720d1bc3ebe56d3">antoine_tsat</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;{</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    assert(p.size() == 3);</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    <span class="keywordflow">return</span> mc::saturation_temperature(T, 2, p[0], p[1], p[2]);</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;}</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a4b958aea1a60205b1399fd0686a36793">  115</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a4b958aea1a60205b1399fd0686a36793">aspen_hig</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> <span class="keywordtype">double</span> T0, <span class="keyword">const</span> <span class="keywordtype">double</span> p1, <span class="keyword">const</span> <span class="keywordtype">double</span> p2, <span class="keyword">const</span> <span class="keywordtype">double</span> p3, <span class="keyword">const</span> <span class="keywordtype">double</span> p4,</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;          <span class="keyword">const</span> <span class="keywordtype">double</span> p5, <span class="keyword">const</span> <span class="keywordtype">double</span> p6)</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;{</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    <span class="keywordflow">return</span> mc::ideal_gas_enthalpy(T, T0, 1, p1, p2, p3, p4, p5, p6);</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;}</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a9ed331d9b129728e9845de34796fc57c">  122</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a4b958aea1a60205b1399fd0686a36793">aspen_hig</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> <span class="keywordtype">double</span> T0, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;{</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    assert(p.size() == 6);</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    <span class="keywordflow">return</span> mc::ideal_gas_enthalpy(T, T0, 1, p[0], p[1], p[2], p[3], p[4], p[5]);</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;}</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#ad3d1dc943fd39eef8ee229ae74b6d9f3">  129</a></span>&#160;<a class="code" href="function_wrapper_8h.html#ad3d1dc943fd39eef8ee229ae74b6d9f3">nasa9_hig</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> <span class="keywordtype">double</span> T0, <span class="keyword">const</span> <span class="keywordtype">double</span> p1, <span class="keyword">const</span> <span class="keywordtype">double</span> p2, <span class="keyword">const</span> <span class="keywordtype">double</span> p3, <span class="keyword">const</span> <span class="keywordtype">double</span> p4,</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;          <span class="keyword">const</span> <span class="keywordtype">double</span> p5, <span class="keyword">const</span> <span class="keywordtype">double</span> p6, <span class="keyword">const</span> <span class="keywordtype">double</span> p7)</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;{</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    <span class="keywordflow">return</span> mc::ideal_gas_enthalpy(T, T0, 2, p1, p2, p3, p4, p5, p6, p7);</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;}</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#ad44d270287c3d5c476ba3504e3e7fc84">  136</a></span>&#160;<a class="code" href="function_wrapper_8h.html#ad3d1dc943fd39eef8ee229ae74b6d9f3">nasa9_hig</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> <span class="keywordtype">double</span> T0, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;{</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    assert(p.size() == 7);</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    <span class="keywordflow">return</span> mc::ideal_gas_enthalpy(T, T0, 2, p[0], p[1], p[2], p[3], p[4], p[5], p[6]);</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;}</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a63c9aad65173515a01c3312c4b53005d">  143</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a63c9aad65173515a01c3312c4b53005d">dippr107_hig</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> <span class="keywordtype">double</span> T0, <span class="keyword">const</span> <span class="keywordtype">double</span> p1, <span class="keyword">const</span> <span class="keywordtype">double</span> p2, <span class="keyword">const</span> <span class="keywordtype">double</span> p3, <span class="keyword">const</span> <span class="keywordtype">double</span> p4,</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;             <span class="keyword">const</span> <span class="keywordtype">double</span> p5)</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;{</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;    <span class="keywordflow">return</span> mc::ideal_gas_enthalpy(T, T0, 3, p1, p2, p3, p4, p5);</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;}</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a9cf00a420deabe42b8124635e852af05">  150</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a63c9aad65173515a01c3312c4b53005d">dippr107_hig</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> <span class="keywordtype">double</span> T0, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;{</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    assert(p.size() == 5);</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <span class="keywordflow">return</span> mc::ideal_gas_enthalpy(T, T0, 3, p[0], p[1], p[2], p[3], p[4]);</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;}</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a93ac82fac115e82cc84115d08e26a9d7">  157</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a93ac82fac115e82cc84115d08e26a9d7">dippr127_hig</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> <span class="keywordtype">double</span> T0, <span class="keyword">const</span> <span class="keywordtype">double</span> p1, <span class="keyword">const</span> <span class="keywordtype">double</span> p2, <span class="keyword">const</span> <span class="keywordtype">double</span> p3, <span class="keyword">const</span> <span class="keywordtype">double</span> p4,</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;             <span class="keyword">const</span> <span class="keywordtype">double</span> p5, <span class="keyword">const</span> <span class="keywordtype">double</span> p6, <span class="keyword">const</span> <span class="keywordtype">double</span> p7)</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;{</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;    <span class="keywordflow">return</span> mc::ideal_gas_enthalpy(T, T0, 4, p1, p2, p3, p4, p5, p6, p7);</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;}</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a23279a80b1dddc9c6df1152f78c347ef">  164</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a93ac82fac115e82cc84115d08e26a9d7">dippr127_hig</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> <span class="keywordtype">double</span> T0, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;{</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    assert(p.size() == 7);</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    <span class="keywordflow">return</span> mc::ideal_gas_enthalpy(T, T0, 4, p[0], p[1], p[2], p[3], p[4], p[5], p[6]);</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;}</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a194545da47bf162f208d599f4e460017">  171</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a194545da47bf162f208d599f4e460017">watson_dhvap</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> <span class="keywordtype">double</span> Tc, <span class="keyword">const</span> <span class="keywordtype">double</span> a, <span class="keyword">const</span> <span class="keywordtype">double</span> b, <span class="keyword">const</span> <span class="keywordtype">double</span> T1,</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;             <span class="keyword">const</span> <span class="keywordtype">double</span> dHT1)</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;{</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;    <span class="keywordflow">return</span> mc::enthalpy_of_vaporization(T, 1, Tc, a, b, T1, dHT1);</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;}</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#ab37b968c39c60ec673af52218aa7ffa0">  178</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a194545da47bf162f208d599f4e460017">watson_dhvap</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;{</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    assert(p.size() == 5);</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;    <span class="keywordflow">return</span> mc::enthalpy_of_vaporization(T, 1, p[0], p[1], p[2], p[3], p[4]);</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;}</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a9734f0bacf604d4cb1b8f75f285cec2b">  185</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a9734f0bacf604d4cb1b8f75f285cec2b">dippr106_dhvap</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> <span class="keywordtype">double</span> Tc, <span class="keyword">const</span> <span class="keywordtype">double</span> p1, <span class="keyword">const</span> <span class="keywordtype">double</span> p2, <span class="keyword">const</span> <span class="keywordtype">double</span> p3,</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;               <span class="keyword">const</span> <span class="keywordtype">double</span> p4, <span class="keyword">const</span> <span class="keywordtype">double</span> p5)</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;{</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;    <span class="keywordflow">return</span> mc::enthalpy_of_vaporization(T, 2, Tc, p1, p2, p3, p4, p5);</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;}</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a56a48129859f32d4e6206982149421b2">  192</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a9734f0bacf604d4cb1b8f75f285cec2b">dippr106_dhvap</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;{</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;    assert(p.size() == 6);</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    <span class="keywordflow">return</span> mc::enthalpy_of_vaporization(T, 2, p[0], p[1], p[2], p[3], p[4], p[5]);</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;}</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a8d1832b6e26bba0d76ead168b5260a77">  200</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a8d1832b6e26bba0d76ead168b5260a77">nrtl_tau</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;{</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    assert(p.size() == 4);</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="function_wrapper_8h.html#a8d1832b6e26bba0d76ead168b5260a77">mc::nrtl_tau</a>(T, p[0], p[1], p[2], p[3]);</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;}</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#af7f639d12a57ad25c80a3e4a0a15def6">  207</a></span>&#160;<a class="code" href="function_wrapper_8h.html#af7f639d12a57ad25c80a3e4a0a15def6">nrtl_dtau</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;{</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    assert(p.size() == 3);</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="function_wrapper_8h.html#af7f639d12a57ad25c80a3e4a0a15def6">mc::nrtl_dtau</a>(T, p[0], p[1], p[2]);</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;}</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a8951a8260af6f4d7ebe65aae99e995fe">  214</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a8951a8260af6f4d7ebe65aae99e995fe">nrtl_g</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> <span class="keywordtype">double</span> a, <span class="keyword">const</span> <span class="keywordtype">double</span> b, <span class="keyword">const</span> <span class="keywordtype">double</span> e, <span class="keyword">const</span> <span class="keywordtype">double</span> f, <span class="keyword">const</span> <span class="keywordtype">double</span> alpha)</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;{</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;    <span class="keywordflow">return</span> mc::nrtl_G(T, a, b, e, f, alpha);</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;}</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#abee0b55ffe0c790ddd7d46cba79b19e8">  220</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a8951a8260af6f4d7ebe65aae99e995fe">nrtl_g</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;{</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;    assert(p.size() == 5);</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    <span class="keywordflow">return</span> mc::nrtl_G(T, p[0], p[1], p[2], p[3], p[4]);</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;}</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#aec8d022532775ee32b46fdf69bdda3f3">  227</a></span>&#160;<a class="code" href="function_wrapper_8h.html#aec8d022532775ee32b46fdf69bdda3f3">nrtl_gtau</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> <span class="keywordtype">double</span> a, <span class="keyword">const</span> <span class="keywordtype">double</span> b, <span class="keyword">const</span> <span class="keywordtype">double</span> e, <span class="keyword">const</span> <span class="keywordtype">double</span> f, <span class="keyword">const</span> <span class="keywordtype">double</span> alpha)</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;{</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    <span class="keywordflow">return</span> mc::nrtl_Gtau(T, a, b, e, f, alpha);</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;}</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#ac4bb81cca694afc27f59eb307ac66616">  233</a></span>&#160;<a class="code" href="function_wrapper_8h.html#aec8d022532775ee32b46fdf69bdda3f3">nrtl_gtau</a>(<span class="keyword">const</span> mc::FFVar&amp; T, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;{</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;    assert(p.size() == 5);</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;    <span class="keywordflow">return</span> mc::nrtl_Gtau(T, p[0], p[1], p[2], p[3], p[4]);</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;}</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a1f9e28e1b6ad5ff2d6f6e4c33d6aaf24">  240</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a1f9e28e1b6ad5ff2d6f6e4c33d6aaf24">nrtl_gdtau</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, <span class="keyword">const</span> <span class="keywordtype">double</span> a, <span class="keyword">const</span> <span class="keywordtype">double</span> b, <span class="keyword">const</span> <span class="keywordtype">double</span> e, <span class="keyword">const</span> <span class="keywordtype">double</span> f, <span class="keyword">const</span> <span class="keywordtype">double</span> alpha)</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;{</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;    <span class="keywordflow">return</span> mc::nrtl_Gdtau(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, a, b, e, f, alpha);</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;}</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#aaa57a91765e20865e492a9743cc0a892">  246</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a1f9e28e1b6ad5ff2d6f6e4c33d6aaf24">nrtl_gdtau</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;{</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;    assert(p.size() == 5);</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;    <span class="keywordflow">return</span> mc::nrtl_Gdtau(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, p[0], p[1], p[2], p[3], p[4]);</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;}</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a7e4ad88c6f2169ac4f828fba0f522740">  253</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a7e4ad88c6f2169ac4f828fba0f522740">nrtl_dgtau</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, <span class="keyword">const</span> <span class="keywordtype">double</span> a, <span class="keyword">const</span> <span class="keywordtype">double</span> b, <span class="keyword">const</span> <span class="keywordtype">double</span> e, <span class="keyword">const</span> <span class="keywordtype">double</span> f, <span class="keyword">const</span> <span class="keywordtype">double</span> alpha)</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;{</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;    <span class="keywordflow">return</span> mc::nrtl_dGtau(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, a, b, e, f, alpha);</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;}</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a5b45be879181cb3eade9feaf28f79cea">  259</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a7e4ad88c6f2169ac4f828fba0f522740">nrtl_dgtau</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;{</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;    assert(p.size() == 5);</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;    <span class="keywordflow">return</span> mc::nrtl_dGtau(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, p[0], p[1], p[2], p[3], p[4]);</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;}</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a7b4403422eeebdd9b79d3a24b7d9f910">  266</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a7b4403422eeebdd9b79d3a24b7d9f910">schroeder_ethanol_p</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>)</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;{</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;    <span class="keywordflow">return</span> mc::p_sat_ethanol_schroeder(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>);</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;}</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a307d5d824ec8da405242f672377a689b">  272</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a307d5d824ec8da405242f672377a689b">schroeder_ethanol_rhovap</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>)</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;{</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;    <span class="keywordflow">return</span> mc::rho_vap_sat_ethanol_schroeder(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>);</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;}</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a1250c885b8251f1cd8938e1c669b8dee">  278</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a1250c885b8251f1cd8938e1c669b8dee">schroeder_ethanol_rholiq</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>)</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;{</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;    <span class="keywordflow">return</span> mc::rho_liq_sat_ethanol_schroeder(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>);</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;}</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a72463c3ea36ac41383a73282c15e1fb0">  284</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a72463c3ea36ac41383a73282c15e1fb0">cost_turton</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, <span class="keyword">const</span> <span class="keywordtype">double</span> p1, <span class="keyword">const</span> <span class="keywordtype">double</span> p2, <span class="keyword">const</span> <span class="keywordtype">double</span> p3)</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;{</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;    <span class="keywordflow">return</span> mc::cost_function(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, 1, p1, p2, p3);</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;}</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00290"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#aa7e6848d015c9ed562813805a9af0efa">  290</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a72463c3ea36ac41383a73282c15e1fb0">cost_turton</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, <span class="keyword">const</span> std::vector&lt;double&gt; p)</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;{</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;    assert(p.size() == 3);</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;    <span class="keywordflow">return</span> mc::cost_function(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, 1, p[0], p[1], p[2]);</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;}</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;</div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00297"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a393fac03606bafabb5ac516a21f8b82d">  297</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a393fac03606bafabb5ac516a21f8b82d">covar_matern_1</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>)</div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;{</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;    <span class="keywordflow">return</span> mc::covariance_function(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, 1);</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;}</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#ab9fc36a1823201f93dca7b4ff6dc2e85">  303</a></span>&#160;<a class="code" href="function_wrapper_8h.html#ab9fc36a1823201f93dca7b4ff6dc2e85">covar_matern_3</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>)</div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;{</div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;    <span class="keywordflow">return</span> mc::covariance_function(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, 2);</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;}</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;</div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#acb14288e216211260fde8ff031a8deec">  309</a></span>&#160;<a class="code" href="function_wrapper_8h.html#acb14288e216211260fde8ff031a8deec">covar_matern_5</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>)</div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;{</div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;    <span class="keywordflow">return</span> mc::covariance_function(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, 3);</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;}</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;</div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a5a3858fb864d7372bea4eec87c99c2c7">  315</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a5a3858fb864d7372bea4eec87c99c2c7">covar_sqrexp</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>)</div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;{</div><div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;    <span class="keywordflow">return</span> mc::covariance_function(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>, 4);</div><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;}</div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a36ab810e8ae60a22ed95fe79e274e110">  321</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a36ab810e8ae60a22ed95fe79e274e110">af_lcb</a>(<span class="keyword">const</span> mc::FFVar&amp; Var1, <span class="keyword">const</span> mc::FFVar&amp; Var2, <span class="keyword">const</span> <span class="keywordtype">double</span> kappa)</div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;{</div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;    <span class="keywordflow">return</span> mc::acquisition_function(Var1, Var2, 1, kappa);</div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;}</div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00327"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a8ba798e25eb57db7e41b5bafea7e001d">  327</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a8ba798e25eb57db7e41b5bafea7e001d">af_ei</a>(<span class="keyword">const</span> mc::FFVar&amp; Var1, <span class="keyword">const</span> mc::FFVar&amp; Var2, <span class="keyword">const</span> <span class="keywordtype">double</span> fmin)</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;{</div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;    <span class="keywordflow">return</span> mc::acquisition_function(Var1, Var2, 2, fmin);</div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;}</div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;</div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#a497e2d299632d879d274138f78275c98">  333</a></span>&#160;<a class="code" href="function_wrapper_8h.html#a497e2d299632d879d274138f78275c98">af_pi</a>(<span class="keyword">const</span> mc::FFVar&amp; Var1, <span class="keyword">const</span> mc::FFVar&amp; Var2, <span class="keyword">const</span> <span class="keywordtype">double</span> fmin)</div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;{</div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;    <span class="keywordflow">return</span> mc::acquisition_function(Var1, Var2, 3, fmin);</div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;}</div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;</div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;<span class="keyword">inline</span> mc::FFVar</div><div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="function_wrapper_8h.html#afab03d3ca78008087d0864bf50985edc">  339</a></span>&#160;<a class="code" href="function_wrapper_8h.html#afab03d3ca78008087d0864bf50985edc">gpdf</a>(<span class="keyword">const</span> mc::FFVar&amp; <a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>)</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;{</div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;    <span class="keywordflow">return</span> mc::gaussian_probability_density_function(<a class="code" href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a>);</div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;}</div><div class="ttc" id="function_wrapper_8h_html_a120fa48b16571a4b235689aaa3aecb4a"><div class="ttname"><a href="function_wrapper_8h.html#a120fa48b16571a4b235689aaa3aecb4a">norm2</a></div><div class="ttdeci">mc::FFVar norm2(const mc::FFVar &amp;Var1, const mc::FFVar &amp;Var2)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:29</div></div>
+<div class="ttc" id="function_wrapper_8h_html_a2c9a08d6e6cdfd34502b054cd40a541a"><div class="ttname"><a href="function_wrapper_8h.html#a2c9a08d6e6cdfd34502b054cd40a541a">xexpy</a></div><div class="ttdeci">mc::FFVar xexpy(const mc::FFVar &amp;y, const mc::FFVar &amp;x)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:23</div></div>
+<div class="ttc" id="function_wrapper_8h_html_a393fac03606bafabb5ac516a21f8b82d"><div class="ttname"><a href="function_wrapper_8h.html#a393fac03606bafabb5ac516a21f8b82d">covar_matern_1</a></div><div class="ttdeci">mc::FFVar covar_matern_1(const mc::FFVar &amp;Var)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:297</div></div>
+<div class="ttc" id="function_wrapper_8h_html_a1f9e28e1b6ad5ff2d6f6e4c33d6aaf24"><div class="ttname"><a href="function_wrapper_8h.html#a1f9e28e1b6ad5ff2d6f6e4c33d6aaf24">nrtl_gdtau</a></div><div class="ttdeci">mc::FFVar nrtl_gdtau(const mc::FFVar &amp;Var, const double a, const double b, const double e, const double f, const double alpha)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:240</div></div>
+<div class="ttc" id="function_wrapper_8h_html_a1250c885b8251f1cd8938e1c669b8dee"><div class="ttname"><a href="function_wrapper_8h.html#a1250c885b8251f1cd8938e1c669b8dee">schroeder_ethanol_rholiq</a></div><div class="ttdeci">mc::FFVar schroeder_ethanol_rholiq(const mc::FFVar &amp;Var)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:278</div></div>
+<div class="ttc" id="function_wrapper_8h_html_a5a3858fb864d7372bea4eec87c99c2c7"><div class="ttname"><a href="function_wrapper_8h.html#a5a3858fb864d7372bea4eec87c99c2c7">covar_sqrexp</a></div><div class="ttdeci">mc::FFVar covar_sqrexp(const mc::FFVar &amp;Var)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:315</div></div>
+<div class="ttc" id="ale_model_8h_html_a9c4e868adf1bc404290197d3c92f56bc"><div class="ttname"><a href="ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc">Var</a></div><div class="ttdeci">mc::FFVar Var</div><div class="ttdef"><b>Definition:</b> aleModel.h:22</div></div>
+<div class="ttc" id="function_wrapper_8h_html_a9a44539ac75362fa5edc574e56600b38"><div class="ttname"><a href="function_wrapper_8h.html#a9a44539ac75362fa5edc574e56600b38">ext_antoine_psat</a></div><div class="ttdeci">mc::FFVar ext_antoine_psat(const mc::FFVar &amp;T, const double p1, const double p2, const double p3, const double p4, const double p5, const double p6, const double p7)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:47</div></div>
+<div class="ttc" id="function_wrapper_8h_html_a497e2d299632d879d274138f78275c98"><div class="ttname"><a href="function_wrapper_8h.html#a497e2d299632d879d274138f78275c98">af_pi</a></div><div class="ttdeci">mc::FFVar af_pi(const mc::FFVar &amp;Var1, const mc::FFVar &amp;Var2, const double fmin)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:333</div></div>
+<div class="ttc" id="function_wrapper_8h_html_a7b4403422eeebdd9b79d3a24b7d9f910"><div class="ttname"><a href="function_wrapper_8h.html#a7b4403422eeebdd9b79d3a24b7d9f910">schroeder_ethanol_p</a></div><div class="ttdeci">mc::FFVar schroeder_ethanol_p(const mc::FFVar &amp;Var)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:266</div></div>
+<div class="ttc" id="function_wrapper_8h_html_a63c9aad65173515a01c3312c4b53005d"><div class="ttname"><a href="function_wrapper_8h.html#a63c9aad65173515a01c3312c4b53005d">dippr107_hig</a></div><div class="ttdeci">mc::FFVar dippr107_hig(const mc::FFVar &amp;T, const double T0, const double p1, const double p2, const double p3, const double p4, const double p5)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:143</div></div>
+<div class="ttc" id="function_wrapper_8h_html_aec8d022532775ee32b46fdf69bdda3f3"><div class="ttname"><a href="function_wrapper_8h.html#aec8d022532775ee32b46fdf69bdda3f3">nrtl_gtau</a></div><div class="ttdeci">mc::FFVar nrtl_gtau(const mc::FFVar &amp;T, const double a, const double b, const double e, const double f, const double alpha)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:227</div></div>
+<div class="ttc" id="function_wrapper_8h_html_a60722162735fd25cb427d126ab74e9f3"><div class="ttname"><a href="function_wrapper_8h.html#a60722162735fd25cb427d126ab74e9f3">ik_cape_psat</a></div><div class="ttdeci">mc::FFVar ik_cape_psat(const mc::FFVar &amp;T, const double p1, const double p2, const double p3, const double p4, const double p5, const double p6, const double p7, const double p8, const double p9, const double p10)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:87</div></div>
+<div class="ttc" id="function_wrapper_8h_html_a7e4ad88c6f2169ac4f828fba0f522740"><div class="ttname"><a href="function_wrapper_8h.html#a7e4ad88c6f2169ac4f828fba0f522740">nrtl_dgtau</a></div><div class="ttdeci">mc::FFVar nrtl_dgtau(const mc::FFVar &amp;Var, const double a, const double b, const double e, const double f, const double alpha)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:253</div></div>
+<div class="ttc" id="function_wrapper_8h_html_ab9fc36a1823201f93dca7b4ff6dc2e85"><div class="ttname"><a href="function_wrapper_8h.html#ab9fc36a1823201f93dca7b4ff6dc2e85">covar_matern_3</a></div><div class="ttdeci">mc::FFVar covar_matern_3(const mc::FFVar &amp;Var)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:303</div></div>
+<div class="ttc" id="function_wrapper_8h_html_a0b6522fdf714c03e7a67785eb6cbaa6f"><div class="ttname"><a href="function_wrapper_8h.html#a0b6522fdf714c03e7a67785eb6cbaa6f">xlogx</a></div><div class="ttdeci">mc::FFVar xlogx(const mc::FFVar &amp;Var)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:17</div></div>
+<div class="ttc" id="function_wrapper_8h_html_a72463c3ea36ac41383a73282c15e1fb0"><div class="ttname"><a href="function_wrapper_8h.html#a72463c3ea36ac41383a73282c15e1fb0">cost_turton</a></div><div class="ttdeci">mc::FFVar cost_turton(const mc::FFVar &amp;Var, const double p1, const double p2, const double p3)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:284</div></div>
+<div class="ttc" id="function_wrapper_8h_html_a93ac82fac115e82cc84115d08e26a9d7"><div class="ttname"><a href="function_wrapper_8h.html#a93ac82fac115e82cc84115d08e26a9d7">dippr127_hig</a></div><div class="ttdeci">mc::FFVar dippr127_hig(const mc::FFVar &amp;T, const double T0, const double p1, const double p2, const double p3, const double p4, const double p5, const double p6, const double p7)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:157</div></div>
+<div class="ttc" id="function_wrapper_8h_html_a8951a8260af6f4d7ebe65aae99e995fe"><div class="ttname"><a href="function_wrapper_8h.html#a8951a8260af6f4d7ebe65aae99e995fe">nrtl_g</a></div><div class="ttdeci">mc::FFVar nrtl_g(const mc::FFVar &amp;T, const double a, const double b, const double e, const double f, const double alpha)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:214</div></div>
+<div class="ttc" id="function_wrapper_8h_html_a8d1832b6e26bba0d76ead168b5260a77"><div class="ttname"><a href="function_wrapper_8h.html#a8d1832b6e26bba0d76ead168b5260a77">nrtl_tau</a></div><div class="ttdeci">mc::FFVar nrtl_tau(const mc::FFVar &amp;T, const std::vector&lt; double &gt; p)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:200</div></div>
+<div class="ttc" id="function_wrapper_8h_html_a36ab810e8ae60a22ed95fe79e274e110"><div class="ttname"><a href="function_wrapper_8h.html#a36ab810e8ae60a22ed95fe79e274e110">af_lcb</a></div><div class="ttdeci">mc::FFVar af_lcb(const mc::FFVar &amp;Var1, const mc::FFVar &amp;Var2, const double kappa)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:321</div></div>
+<div class="ttc" id="function_wrapper_8h_html_af7f639d12a57ad25c80a3e4a0a15def6"><div class="ttname"><a href="function_wrapper_8h.html#af7f639d12a57ad25c80a3e4a0a15def6">nrtl_dtau</a></div><div class="ttdeci">mc::FFVar nrtl_dtau(const mc::FFVar &amp;T, const std::vector&lt; double &gt; p)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:207</div></div>
+<div class="ttc" id="function_wrapper_8h_html_acb14288e216211260fde8ff031a8deec"><div class="ttname"><a href="function_wrapper_8h.html#acb14288e216211260fde8ff031a8deec">covar_matern_5</a></div><div class="ttdeci">mc::FFVar covar_matern_5(const mc::FFVar &amp;Var)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:309</div></div>
+<div class="ttc" id="function_wrapper_8h_html_a307d5d824ec8da405242f672377a689b"><div class="ttname"><a href="function_wrapper_8h.html#a307d5d824ec8da405242f672377a689b">schroeder_ethanol_rhovap</a></div><div class="ttdeci">mc::FFVar schroeder_ethanol_rhovap(const mc::FFVar &amp;Var)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:272</div></div>
+<div class="ttc" id="function_wrapper_8h_html_a8444819a1a18057def8ae553ea4b9e2f"><div class="ttname"><a href="function_wrapper_8h.html#a8444819a1a18057def8ae553ea4b9e2f">xabsx</a></div><div class="ttdeci">mc::FFVar xabsx(const mc::FFVar &amp;Var)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:35</div></div>
+<div class="ttc" id="function_wrapper_8h_html_ad3d1dc943fd39eef8ee229ae74b6d9f3"><div class="ttname"><a href="function_wrapper_8h.html#ad3d1dc943fd39eef8ee229ae74b6d9f3">nasa9_hig</a></div><div class="ttdeci">mc::FFVar nasa9_hig(const mc::FFVar &amp;T, const double T0, const double p1, const double p2, const double p3, const double p4, const double p5, const double p6, const double p7)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:129</div></div>
+<div class="ttc" id="function_wrapper_8h_html_a9734f0bacf604d4cb1b8f75f285cec2b"><div class="ttname"><a href="function_wrapper_8h.html#a9734f0bacf604d4cb1b8f75f285cec2b">dippr106_dhvap</a></div><div class="ttdeci">mc::FFVar dippr106_dhvap(const mc::FFVar &amp;T, const double Tc, const double p1, const double p2, const double p3, const double p4, const double p5)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:185</div></div>
+<div class="ttc" id="function_wrapper_8h_html_a4b958aea1a60205b1399fd0686a36793"><div class="ttname"><a href="function_wrapper_8h.html#a4b958aea1a60205b1399fd0686a36793">aspen_hig</a></div><div class="ttdeci">mc::FFVar aspen_hig(const mc::FFVar &amp;T, const double T0, const double p1, const double p2, const double p3, const double p4, const double p5, const double p6)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:115</div></div>
+<div class="ttc" id="function_wrapper_8h_html_a2c2f5640a480c80ee3b308e068fe7f94"><div class="ttname"><a href="function_wrapper_8h.html#a2c2f5640a480c80ee3b308e068fe7f94">squash</a></div><div class="ttdeci">mc::FFVar squash(const mc::FFVar &amp;Var, const double lb, const double ub)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:41</div></div>
+<div class="ttc" id="function_wrapper_8h_html_a194545da47bf162f208d599f4e460017"><div class="ttname"><a href="function_wrapper_8h.html#a194545da47bf162f208d599f4e460017">watson_dhvap</a></div><div class="ttdeci">mc::FFVar watson_dhvap(const mc::FFVar &amp;T, const double Tc, const double a, const double b, const double T1, const double dHT1)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:171</div></div>
+<div class="ttc" id="function_wrapper_8h_html_a29383bf7dba49ebb8215a2ae142bf950"><div class="ttname"><a href="function_wrapper_8h.html#a29383bf7dba49ebb8215a2ae142bf950">antoine_psat</a></div><div class="ttdeci">mc::FFVar antoine_psat(const mc::FFVar &amp;T, const double p1, const double p2, const double p3)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:61</div></div>
+<div class="ttc" id="function_wrapper_8h_html_a65b26fb0e0072635c113609dee611e6e"><div class="ttname"><a href="function_wrapper_8h.html#a65b26fb0e0072635c113609dee611e6e">wagner_psat</a></div><div class="ttdeci">mc::FFVar wagner_psat(const mc::FFVar &amp;Var, const double p1, const double p2, const double p3, const double p4, const double Tc, const double p6)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:74</div></div>
+<div class="ttc" id="function_wrapper_8h_html_a8ba798e25eb57db7e41b5bafea7e001d"><div class="ttname"><a href="function_wrapper_8h.html#a8ba798e25eb57db7e41b5bafea7e001d">af_ei</a></div><div class="ttdeci">mc::FFVar af_ei(const mc::FFVar &amp;Var1, const mc::FFVar &amp;Var2, const double fmin)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:327</div></div>
+<div class="ttc" id="function_wrapper_8h_html_a3eb8125b56fd6ae41720d1bc3ebe56d3"><div class="ttname"><a href="function_wrapper_8h.html#a3eb8125b56fd6ae41720d1bc3ebe56d3">antoine_tsat</a></div><div class="ttdeci">mc::FFVar antoine_tsat(const mc::FFVar &amp;T, const double p1, const double p2, const double p3)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:102</div></div>
+<div class="ttc" id="function_wrapper_8h_html_afab03d3ca78008087d0864bf50985edc"><div class="ttname"><a href="function_wrapper_8h.html#afab03d3ca78008087d0864bf50985edc">gpdf</a></div><div class="ttdeci">mc::FFVar gpdf(const mc::FFVar &amp;Var)</div><div class="ttdef"><b>Definition:</b> functionWrapper.h:339</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -133,7 +133,7 @@ $(document).ready(function(){initNavTree('function_wrapper_8h_source.html','');}
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="function_wrapper_8h.html">functionWrapper.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions.html b/doc/html/functions.html
index 60d3bb26a5a3f8d8d306988bb965d20829892307..fa128fe8239de07435ab5f4fb7efba91739feffd 100644
--- a/doc/html/functions.html
+++ b/doc/html/functions.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -88,7 +88,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
 <div class="contents">
 <div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
 
-<h3><a id="index__5F"></a>- _ -</h3><ul>
+<h3><a id="index__"></a>- _ -</h3><ul>
 <li>_absPruningTol
 : <a class="el" href="classbab_base_1_1_bab_tree.html#a90f1c73b6149b861acbded97b7221b35">babBase::BabTree</a>
 </li>
@@ -101,6 +101,15 @@ $(document).ready(function(){initNavTree('functions.html','');});
 <li>_analyze_and_solve_problem()
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a271c14d25b5423c7c077f8ea206f2818">maingo::MAiNGO</a>
 </li>
+<li>_append_current_error_message_to_message()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a978212ab50e44b92bc27cb853df35733">maingo::MAiNGOException</a>
+</li>
+<li>_append_node_info_to_message()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a78cc259eb3c775814b2214262f026b8a">maingo::MAiNGOException</a>
+</li>
+<li>_append_original_exception_info_to_message()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a9cd783e2e9ac6fcaf813bd8f94f2300d">maingo::MAiNGOException</a>
+</li>
 <li>_babStatus
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a8fe800a4fd347fc64b3f26de987c13f5">maingo::MAiNGO</a>
 </li>
@@ -110,8 +119,11 @@ $(document).ready(function(){initNavTree('functions.html','');});
 <li>_bestLbdFathomed
 : <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a8855b78bf4580af1d40f463eb88f9883">maingo::bab::BranchAndBound</a>
 </li>
+<li>_bounds
+: <a class="el" href="classbab_base_1_1_optimization_variable.html#acd60b14930c0261628aae974e42fe954">babBase::OptimizationVariable</a>
+</li>
 <li>_brancher
-: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a88d35fc68351774dadb831c38ffd93ee">maingo::bab::BranchAndBound</a>
+: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ae1454635b53b98cc4e395fd3ed7faca0">maingo::bab::BranchAndBound</a>
 </li>
 <li>_branchingPriority
 : <a class="el" href="classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b">babBase::OptimizationVariable</a>
@@ -122,9 +134,6 @@ $(document).ready(function(){initNavTree('functions.html','');});
 <li>_check_bounds()
 : <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2f7fe42bb11f791fc34c33f60ac057fc">maingo::ubp::UpperBoundingSolver</a>
 </li>
-<li>_check_discrete_bounds()
-: <a class="el" href="classbab_base_1_1_optimization_variable.html#a73cc92c1533194998ebee64ff851b5da">babBase::OptimizationVariable</a>
-</li>
 <li>_check_eq()
 : <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a8e0390a65c638a359c0fd4aca45898b6">maingo::ubp::UpperBoundingSolver</a>
 </li>
@@ -175,8 +184,8 @@ $(document).ready(function(){initNavTree('functions.html','');});
 <li>_choose_good_lin_points()
 : <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a13d16bea111e56762479856995fe8435">maingo::lbp::LowerBoundingSolver</a>
 </li>
-<li>_classify_constraints()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a874e8de2f4daafb262380b882a3d3553">maingo::MAiNGO</a>
+<li>_classify_objective_and_constraints()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a803800682d25b4edc28a3536faba2380">maingo::MAiNGO</a>
 </li>
 <li>_clp
 : <a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#aa2b757fbec54c610ba3d9fe8ba35b67e">maingo::lbp::LbpClp</a>
@@ -189,20 +198,23 @@ $(document).ready(function(){initNavTree('functions.html','');});
 : <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4dd432d487c2099767f0d6de64711bb9">maingo::lbp::LowerBoundingSolver</a>
 </li>
 <li>_constantConstraints
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a6094a619e5202a347ad3b755a0f13fe7">maingo::MAiNGO</a>
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#abb011b283ec6da5387c24804ba59ff6d">maingo::MAiNGO</a>
 </li>
 <li>_constantConstraintsFeasible
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#af917f2f3529a7c92bb0b972607c1e8df">maingo::MAiNGO</a>
 </li>
 <li>_constantOutputs
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a9393fdd939148611496b665d537ca6cb">maingo::MAiNGO</a>
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#aded61d763cefceab6bf099cf9d891cff">maingo::MAiNGO</a>
 </li>
 <li>_constraintProperties
-: <a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#a83cea7e83eb4744af421af42ab4c5cdb">maingo::lbp::DagObj</a>
-, <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1b23a7c1621517ac4506bd043d43950e">maingo::lbp::LowerBoundingSolver</a>
-, <a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#aa7b6d4e92ccd5f357728d82baec6cf59">maingo::ubp::IpoptProblem</a>
-, <a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a0bd778c8b72652bafe429d874cba73af">maingo::ubp::KnitroProblem</a>
-, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aae0c39f4b14cfb8a3c70a57b49f15e67">maingo::ubp::UpperBoundingSolver</a>
+: <a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#af2ba1ac965bfc48025172b978cbee2c6">maingo::lbp::DagObj</a>
+, <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a701c19e247fa6e9791313252084b770a">maingo::lbp::LowerBoundingSolver</a>
+, <a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a1e56ab6219a4daa52c5cbbcd6548a603">maingo::ubp::IpoptProblem</a>
+, <a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html#adfd54311b1a62a9cb423071ce1c436eb">maingo::ubp::KnitroProblem</a>
+, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a633d6c072f7388ade44ccebf3fa3c935">maingo::ubp::UpperBoundingSolver</a>
+</li>
+<li>_construct_complete_error_message()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a5cc5c15e7cb9d14f7877731fabb46189">maingo::MAiNGOException</a>
 </li>
 <li>_construct_DAG()
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a9908a4661a24667409c0a0fd5c06fe9f">maingo::MAiNGO</a>
@@ -213,6 +225,9 @@ $(document).ready(function(){initNavTree('functions.html','');});
 <li>_create_node_with_info_from_node()
 : <a class="el" href="classbab_base_1_1_brancher.html#a53d5b740ed9e0ad82601b59c941e21f5">babBase::Brancher</a>
 </li>
+<li>_csvSolutionStatisticsName
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a689902b992cca417907471e82b9526b1">maingo::MAiNGO</a>
+</li>
 <li>_DAG
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a54d978f1329af4acf801108591eea1f5">maingo::MAiNGO</a>
 </li>
@@ -295,24 +310,39 @@ $(document).ready(function(){initNavTree('functions.html','');});
 <li>_dualValsObj
 : <a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab49912af5fed8f32b703cb246b402272">maingo::lbp::LbpClp</a>
 </li>
+<li>_ensure_valid_objective_function_using_dummy_variable()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a56d30ff7a1a221550e6c7c045e5c6feb">maingo::MAiNGO</a>
+</li>
 <li>_epsilon
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#aee5a75bf580e8f53812e4698e9876b89">maingo::MAiNGOmodelEpsCon</a>
 </li>
 <li>_equilibrate_and_relax()
 : <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a77e97f9255980d5edaadd9da571b078f">maingo::lbp::LowerBoundingSolver</a>
 </li>
+<li>_errorMessage
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#ac3cd87bc11baff35170096a9a4fd8007">maingo::MAiNGOException</a>
+</li>
 <li>_eta
 : <a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a77dabe29a0aaf2ff45e1f966eef1c585">maingo::lbp::LbpClp</a>
 </li>
 <li>_etaCoeff
 : <a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a0108d59ae1bc4fc86d91c414b4f33b36">maingo::lbp::LbpClp</a>
 </li>
+<li>_evaluate_additional_outputs_at_point()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a92cbd5e8a92e5c335d57bb23574cf6b2">maingo::MAiNGO</a>
+</li>
+<li>_evaluate_model_at_point()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a241496b3e71881ee3cb7b8be661b44d4">maingo::MAiNGO</a>
+</li>
 <li>_fallback_to_intervals()
 : <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aafadf6738f60cca6831074ae54f0647d">maingo::lbp::LowerBoundingSolver</a>
 </li>
 <li>_fathom_nodes_exceeding_pruning_threshold()
 : <a class="el" href="classbab_base_1_1_bab_tree.html#a9dd406c60d514814311c4c9d4d8bd83e">babBase::BabTree</a>
 </li>
+<li>_feasibilityProblem
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a8b2bcd5e079464178341f24169e45bbc">maingo::MAiNGO</a>
+</li>
 <li>_feasible
 : <a class="el" href="classbab_base_1_1_optimization_variable.html#a7f00570cb2e44f165e2aa3028d215bc3">babBase::OptimizationVariable</a>
 </li>
@@ -333,17 +363,11 @@ $(document).ready(function(){initNavTree('functions.html','');});
 <li>_generate_multistart_point()
 : <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a88f6a1e58a7274d44f6c9513581a6f4b">maingo::ubp::UpperBoundingSolver</a>
 </li>
-<li>_get_additional_outputs()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a14ac25981c3df0f6317418c8b9f4857c">maingo::MAiNGO</a>
-</li>
 <li>_get_LP_status()
 : <a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a3e27387ed8c32d6a7a82477c19e99f29">maingo::lbp::LbpClp</a>
 , <a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a5fc72422c29fbfba6710f9f2e244b28c">maingo::lbp::LbpCplex</a>
 , <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4fd9a52441b77eff552c9034ae0fb76d">maingo::lbp::LowerBoundingSolver</a>
 </li>
-<li>_get_model_at_point()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0d372af3e069f9ff12f09936aa9099c0">maingo::MAiNGO</a>
-</li>
 <li>_get_multipliers()
 : <a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#af53e6dc42f11d7c5f5ac55e91414762e">maingo::lbp::LbpClp</a>
 , <a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a8e70de9d87020368dab0536c183d1fbb">maingo::lbp::LbpCplex</a>
@@ -378,7 +402,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
 : <a class="el" href="classbab_base_1_1_bab_node.html#a7d45d49a15377c4f03bf4c670ebb0f6b">babBase::BabNode</a>
 </li>
 <li>_incumbent
-: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ac3e65fd10f0294c31f8428330e517f85">maingo::bab::BranchAndBound</a>
+: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a2685cdd222deff1b30e3b83c7b4bb259">maingo::bab::BranchAndBound</a>
 , <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6a6c925badc9b14fb61232aceb859b9c">maingo::lbp::LowerBoundingSolver</a>
 </li>
 <li>_incumbentNodeId
@@ -390,6 +414,9 @@ $(document).ready(function(){initNavTree('functions.html','');});
 <li>_infeasibleVariables
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a49594efef0db3f36efcf342acf7c7525">maingo::MAiNGO</a>
 </li>
+<li>_infer_and_set_bounds_or_throw()
+: <a class="el" href="classbab_base_1_1_optimization_variable.html#a0678dfc3a0ca4daf488e40b1a0568f66">babBase::OptimizationVariable</a>
+</li>
 <li>_initialize_matrix()
 : <a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a4ba899146b3421853e50e87560e4cc05">maingo::lbp::LbpClp</a>
 </li>
@@ -397,7 +424,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#acdc8a1d98aa50ee3d76dc4873dda787f">maingo::MAiNGO</a>
 </li>
 <li>_initialPoint
-: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#acc2f5918ff76d313d9f0d9eae3c749cd">maingo::bab::BranchAndBound</a>
+: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a1f509aa5a3de69ff00e8d2c31b654d48">maingo::bab::BranchAndBound</a>
 , <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a6624f898a20299ccfa4a8fa2f8f7dd28">maingo::MAiNGO</a>
 </li>
 <li>_initialPointFeasible
@@ -431,6 +458,9 @@ $(document).ready(function(){initNavTree('functions.html','');});
 <li>_iterationsgap
 : <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a4d1d7552bc0294281b7453a757a5b1c4">maingo::bab::BranchAndBound</a>
 </li>
+<li>_jsonFileName
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0dffde2ace38c3fad7a6cfb38f0f374c">maingo::MAiNGO</a>
+</li>
 <li>_Knitro
 : <a class="el" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#ae54f2f80561a3f03efbdb107b03d93eb">maingo::ubp::UbpKnitro</a>
 </li>
@@ -447,7 +477,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
 : <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#adaeb5fb5c51be07833bf51f921ce2e65">maingo::bab::BranchAndBound</a>
 </li>
 <li>_LBS
-: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a16bbea3c96042145acc5df3830cd72b4">maingo::bab::BranchAndBound</a>
+: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a4a63abd1f85d04b411bd3f46c95c994b">maingo::bab::BranchAndBound</a>
 </li>
 <li>_linearization_points_Kelley()
 : <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4ce48185a33ab3815913f44b823352bb">maingo::lbp::LowerBoundingSolver</a>
@@ -477,13 +507,10 @@ $(document).ready(function(){initNavTree('functions.html','');});
 : <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a46473e89580e44ef3576e9040e469478">maingo::bab::BranchAndBound</a>
 </li>
 <li>_logger
-: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aaf1e5ea028afe7d2700a6cc573d67674">maingo::bab::BranchAndBound</a>
-, <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ac82365b8f4f2d24466e60bbf01042142">maingo::lbp::LowerBoundingSolver</a>
-, <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a96f1a3a2a8c24cdca954e63fdc155e01">maingo::MAiNGO</a>
-, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab436cb85b75f92ef42ca46adb87b83c0">maingo::ubp::UpperBoundingSolver</a>
-</li>
-<li>_lowerBound
-: <a class="el" href="classbab_base_1_1_optimization_variable.html#aefe950aa38fa5908dbdc2b34477c2bb2">babBase::OptimizationVariable</a>
+: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a7bd1a5254c74b3adac3b74712d92257e">maingo::bab::BranchAndBound</a>
+, <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9ec401321cfa9eda2672c9a65b6ba11d">maingo::lbp::LowerBoundingSolver</a>
+, <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#aad666fe69213402bdba8b9972a5985b3">maingo::MAiNGO</a>
+, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab76a699684d09100c63ec4ddcaa10456">maingo::ubp::UpperBoundingSolver</a>
 </li>
 <li>_lowerBounds
 : <a class="el" href="classbab_base_1_1_bab_node.html#a7d1097fbd9ec6c1d7468eb8ca3532707">babBase::BabNode</a>
@@ -497,7 +524,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
 , <a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a377da5ab602aaf0ad0d53ea444dce938">maingo::ubp::UbpClp</a>
 </li>
 <li>_lowerVarBoundsOrig
-: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a0a241298a1b0f9b0707386e9143e0186">maingo::bab::BranchAndBound</a>
+: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a9836ba957bbfd2acace285065fe81710">maingo::bab::BranchAndBound</a>
 </li>
 <li>_LPstatus
 : <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7952199940d657eed365a660f4538527">maingo::lbp::LowerBoundingSolver</a>
@@ -506,10 +533,10 @@ $(document).ready(function(){initNavTree('functions.html','');});
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a020f2b61ca2d2baabf16031f078c2ddd">maingo::MAiNGO</a>
 </li>
 <li>_maingoSettings
-: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#acca388f26f5e0c94b58643b566b8a235">maingo::bab::BranchAndBound</a>
-, <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2277a8ee8f3f41a9498c43add63835c4">maingo::lbp::LowerBoundingSolver</a>
-, <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#abdcc6fb032878028956050dcba5c9405">maingo::MAiNGO</a>
-, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1b4e1d2ce3d3413c1c5d509d13ec752e">maingo::ubp::UpperBoundingSolver</a>
+: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#abb34f49557e1d417e5a87a467cee2ec8">maingo::bab::BranchAndBound</a>
+, <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1b4b4c6e80d76f83bb5a2a7f7d2f165c">maingo::lbp::LowerBoundingSolver</a>
+, <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#acdbebd94e2fcccad46515741516799de">maingo::MAiNGO</a>
+, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4d7aaa4de8e2e6633b9064568961bc72">maingo::ubp::UpperBoundingSolver</a>
 </li>
 <li>_maingoStatus
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ace36a8a82262f885ae5f87be65d868db">maingo::MAiNGO</a>
@@ -561,7 +588,6 @@ $(document).ready(function(){initNavTree('functions.html','');});
 </li>
 <li>_msg
 : <a class="el" href="classbab_base_1_1_branch_and_bound_base_exception.html#ad7fa9d844b7264c7251488ecc1e69482">babBase::BranchAndBoundBaseException</a>
-, <a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a9e405ac624e18ae108f3474e4c8284d4">maingo::MAiNGOException</a>
 </li>
 <li>_multipliers
 : <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ad1db6e887f8b891d267b0347f17fe8db">maingo::lbp::LowerBoundingSolver</a>
@@ -698,16 +724,16 @@ $(document).ready(function(){initNavTree('functions.html','');});
 : <a class="el" href="classbab_base_1_1_bab_tree.html#a766066afd3863ebc1f9025d2e1200e20">babBase::BabTree</a>
 </li>
 <li>_nonconstantConstraints
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a92badf4c34413612706e7aeaefebe95a">maingo::MAiNGO</a>
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a8dacc1f270014ea3c70dee5451abae62">maingo::MAiNGO</a>
 </li>
 <li>_nonconstantConstraintsUBP
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a7bce17d744313c9b489b19179eb0b4f0">maingo::MAiNGO</a>
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0d1cde74073424f84d8b4692a8406101">maingo::MAiNGO</a>
 </li>
 <li>_nonconstantOutputs
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ace95ba4340090ffaafec40a30504ccb4">maingo::MAiNGO</a>
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ae1bb7b84481f6f827f61d84601fe9869">maingo::MAiNGO</a>
 </li>
 <li>_NOT_TERMINATED
-: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a244a114749491f6b442fd2563fefbc5e">maingo::bab::BranchAndBound</a>
+: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a4606d4d76cdd55c82480e7e28a65d67a">maingo::bab::BranchAndBound</a>
 </li>
 <li>_noutputVariables
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ae90a5539fd3c1790b49289c919948da7">maingo::MAiNGO</a>
@@ -775,11 +801,14 @@ $(document).ready(function(){initNavTree('functions.html','');});
 <li>_objectiveValue
 : <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ab2c6d75aa915dd5e3296b0873d39acfd">maingo::lbp::LowerBoundingSolver</a>
 </li>
+<li>_onlyBoxConstraints
+: <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a44e1d78a441997c6fced40f8c91c8043">maingo::lbp::LowerBoundingSolver</a>
+</li>
 <li>_optimizationVariables
 : <a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a06238fa671eeb532dcfac051beeff95f">maingo::ubp::KnitroProblem</a>
 </li>
 <li>_originalConstraints
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0314c3c342e0483b85692344d79d8486">maingo::MAiNGO</a>
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a88c7a2689b32500ebf09bf37de06d47f">maingo::MAiNGO</a>
 </li>
 <li>_originalLowerBounds
 : <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2eaaa9feb9ad231209cb01a29a76b5e4">maingo::ubp::UpperBoundingSolver</a>
@@ -788,7 +817,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
 : <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a9c95129dc31203f436aec2d4e71e0dc2">maingo::ubp::UpperBoundingSolver</a>
 </li>
 <li>_originalVariables
-: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aa47a427d6c433a26a35b5882e54480e4">maingo::bab::BranchAndBound</a>
+: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a54fa45d1751c9a81b346bd7cd1f5969c">maingo::bab::BranchAndBound</a>
 , <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a39ef7296e50fb200934ff74a017e43bf">maingo::lbp::LowerBoundingSolver</a>
 , <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#adf764bba4c067716ca0d9948eca504a8">maingo::MAiNGO</a>
 , <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a05f3d0a48a4c425ac11035a76426a184">maingo::ubp::UpperBoundingSolver</a>
@@ -826,7 +855,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a585967bc628b31b1fbba2105be7d36a2">maingo::MAiNGO</a>
 </li>
 <li>_print_MAiNGO_header_for_other_modeling_language()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a93a8eadb777ce6ff95072f16dc6ef762">maingo::MAiNGO</a>
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a1eeb14c069d224846f7684d95a90ed04">maingo::MAiNGO</a>
 </li>
 <li>_print_message()
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0a8c5d381ad5818cec8624db717de73a">maingo::MAiNGO</a>
@@ -853,7 +882,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a038bd07379ad5ac438d7253f67e5f456">maingo::MAiNGO</a>
 </li>
 <li>_process_node()
-: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a1a78374e95574fbe731cdd0d2dae7b53">maingo::bab::BranchAndBound</a>
+: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a15520696d8e8e38197992c71ffd91c53">maingo::bab::BranchAndBound</a>
 </li>
 <li>_prog
 : <a class="el" href="classmaingo_1_1_ale_model.html#a7e3a43566149a7d691bc4e74c622ed5c">maingo::AleModel</a>
@@ -893,6 +922,9 @@ $(document).ready(function(){initNavTree('functions.html','');});
 , <a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#aa9d3a01d31337a11c0e74e9883597d99">maingo::lbp::LbpCplex</a>
 , <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9ee38ffd8ce3d627bfd70c195f9be58d">maingo::lbp::LowerBoundingSolver</a>
 </li>
+<li>_resultFileName
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0a9de764a3521782c3f6e3dc68f01324">maingo::MAiNGO</a>
+</li>
 <li>_resultInterval
 : <a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#ac7defcd5788a9a9d5e6808a153befe3c">maingo::lbp::LbpInterval</a>
 </li>
@@ -947,6 +979,9 @@ $(document).ready(function(){initNavTree('functions.html','');});
 <li>_rootObbtStatus
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ae90d120eacc929b19609c6dcd9017fa6">maingo::MAiNGO</a>
 </li>
+<li>_round_and_check_discrete_bounds()
+: <a class="el" href="classbab_base_1_1_optimization_variable.html#ace610f731e7f44a53dbf4003ffe9f8d0">babBase::OptimizationVariable</a>
+</li>
 <li>_select_branching_dimension
 : <a class="el" href="classbab_base_1_1_brancher.html#aa6bd0c8e1afc7fd2e664eb758c76129d">babBase::Brancher</a>
 </li>
@@ -1059,10 +1094,10 @@ $(document).ready(function(){initNavTree('functions.html','');});
 , <a class="el" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a224b13053d2fdcaff567757fc3b4316e">maingo::ubp::UbpCplex</a>
 </li>
 <li>_TERMINATED
-: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ac0b46b223d15cc2e3851dcaf961b9e7a">maingo::bab::BranchAndBound</a>
+: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a1a904c0cb2e9786677bfd0c13951dec7">maingo::bab::BranchAndBound</a>
 </li>
 <li>_TERMINATED_WORKERS_ACTIVE
-: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ab77e9f73c90db0ea95610d8103738966">maingo::bab::BranchAndBound</a>
+: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a803a5e6c3589e7407f7993fff57c30dd">maingo::bab::BranchAndBound</a>
 </li>
 <li>_TERMINATION_TYPE
 : <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1">maingo::bab::BranchAndBound</a>
@@ -1095,7 +1130,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
 : <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a85091bc9965339278cc9c02b2baf354b">maingo::bab::BranchAndBound</a>
 </li>
 <li>_UBS
-: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#af1853b2ef51e8bddd0a9ab2404340037">maingo::bab::BranchAndBound</a>
+: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aba6e92ef8af1e76b62a543e1334b4948">maingo::bab::BranchAndBound</a>
 </li>
 <li>_uniqueNames
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a4151ba2d1c6b6965001dbf7fc1a7c122">maingo::MAiNGO</a>
@@ -1104,10 +1139,10 @@ $(document).ready(function(){initNavTree('functions.html','');});
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a805b901f0e2e25ee5910b2b0e6a7c99a">maingo::MAiNGO</a>
 </li>
 <li>_update_incumbent_and_fathom()
-: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a0608306463120a72b9ec32395044470f">maingo::bab::BranchAndBound</a>
+: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a13e706473cf2f26ac9b3d20344270aaa">maingo::bab::BranchAndBound</a>
 </li>
 <li>_update_lowest_lbd()
-: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ac6de991f9fa810bc93ed5ce47577e210">maingo::bab::BranchAndBound</a>
+: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a5cbefb1e86ca300d67ae3c65eab1099b">maingo::bab::BranchAndBound</a>
 </li>
 <li>_update_LP()
 : <a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a70bb4b9bda381f7e2f1e49b66be863c2">maingo::lbp::LbpInterval</a>
@@ -1117,7 +1152,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
 : <a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a52de428ac88f082ffc3cfe4c9ec0ca84">maingo::lbp::LbpClp</a>
 , <a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab05713911aef1c8aac1d4da8f8d1faac">maingo::lbp::LbpCplex</a>
 , <a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a274c50b0ce633cb4b9616f9ec737bbae">maingo::lbp::LbpInterval</a>
-, <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a40d9842e7d85a37376bd3bf51761b315">maingo::lbp::LowerBoundingSolver</a>
+, <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1aec7459f261f58b6e476fd7eae99581">maingo::lbp::LowerBoundingSolver</a>
 </li>
 <li>_update_LP_eqRelaxationOnly()
 : <a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#abda27bf8bd56a6870d43acc6ff9d7f81">maingo::lbp::LbpClp</a>
@@ -1129,16 +1164,16 @@ $(document).ready(function(){initNavTree('functions.html','');});
 : <a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a34c8b280f87b4c1802bd595e2742917e">maingo::lbp::LbpClp</a>
 , <a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a19f7e270bfcdca9bce0c55aa0608dfd4">maingo::lbp::LbpCplex</a>
 , <a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a936d2fad181003f31673eb053299aa4e">maingo::lbp::LbpInterval</a>
-, <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6a57781338bfbdf0b99f3ec474ff3feb">maingo::lbp::LowerBoundingSolver</a>
+, <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aa8861fe9e09b15e2f5ce5ade743f003a">maingo::lbp::LowerBoundingSolver</a>
 </li>
 <li>_update_LP_ineq_squash()
-: <a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a8b153369bff742d44e37bd7133168877">maingo::lbp::LbpClp</a>
-, <a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#aa4eb11afb673511208c9522da41ae68a">maingo::lbp::LbpCplex</a>
+: <a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a9981f64fc302d8ee34ecff0fa9db4b6c">maingo::lbp::LbpClp</a>
+, <a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a323d0e6ce0aec6d2f0a498e9a53e3e68">maingo::lbp::LbpCplex</a>
 , <a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a6fe830f1bb82860614d7812e260520bd">maingo::lbp::LbpInterval</a>
 , <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9c717d353a6b55b72879c448ba927add">maingo::lbp::LowerBoundingSolver</a>
 </li>
 <li>_update_LP_ineqRelaxationOnly()
-: <a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a75b81dd4fbf2e86cd325e5f495ee6b55">maingo::lbp::LbpClp</a>
+: <a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a9d4da7fbb2fc96bbcba558f5126bac60">maingo::lbp::LbpClp</a>
 , <a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a0a0889638a62f4e34e7cc39be8acd8c7">maingo::lbp::LbpCplex</a>
 , <a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#af632f780426eb916d395a7854b446e23">maingo::lbp::LbpInterval</a>
 , <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a793016f5e661fbfaf1488f1a6889f3c8">maingo::lbp::LowerBoundingSolver</a>
@@ -1150,10 +1185,10 @@ $(document).ready(function(){initNavTree('functions.html','');});
 : <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a44512a8b2e88dee8c859b382c7777beb">maingo::lbp::LowerBoundingSolver</a>
 </li>
 <li>_update_LP_obj()
-: <a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#adf6172de124b973b6f1ce730119f222c">maingo::lbp::LbpClp</a>
+: <a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a7f1ecf9544c6400076473c3cbb1459d2">maingo::lbp::LbpClp</a>
 , <a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a54a04809e29838e9e2d787f1e8200a8d">maingo::lbp::LbpCplex</a>
 , <a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a7282b284518725b3754a29531001d67f">maingo::lbp::LbpInterval</a>
-, <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a464be8ca82b76704c0ecf60d7f9d2aad">maingo::lbp::LowerBoundingSolver</a>
+, <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#acbf69ad8646a8f786e6b4d2e91fd54fe">maingo::lbp::LowerBoundingSolver</a>
 </li>
 <li>_update_whole_LP_at_linpoint()
 : <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8f63bc9db34d63c361e2a5e8943fe6c6">maingo::lbp::LowerBoundingSolver</a>
@@ -1161,9 +1196,6 @@ $(document).ready(function(){initNavTree('functions.html','');});
 <li>_update_whole_LP_at_vector_linpoints()
 : <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a346ce6af484360fa0d789f02a460ca33">maingo::lbp::LowerBoundingSolver</a>
 </li>
-<li>_upperBound
-: <a class="el" href="classbab_base_1_1_optimization_variable.html#a31a22d0b8661eb373ce5dbd72aedc819">babBase::OptimizationVariable</a>
-</li>
 <li>_upperBounds
 : <a class="el" href="classbab_base_1_1_bab_node.html#ad98784ad49fb92d9dc13bfb4faf1561f">babBase::BabNode</a>
 </li>
@@ -1176,11 +1208,14 @@ $(document).ready(function(){initNavTree('functions.html','');});
 , <a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a08203d67961695155e95c8941b75477a">maingo::ubp::UbpClp</a>
 </li>
 <li>_upperVarBoundsOrig
-: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a5bd0987c7dde438e8d52af87421d78c5">maingo::bab::BranchAndBound</a>
+: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a6087a84349286d46bfc4a6633f5c881b">maingo::bab::BranchAndBound</a>
 </li>
 <li>_userSetSettings
 : <a class="el" href="classmaingo_1_1_logger.html#ab9bc94904f592f8dad7532e140fe9394">maingo::Logger</a>
 </li>
+<li>_userSpecifiedBounds
+: <a class="el" href="classbab_base_1_1_optimization_variable.html#af0837b061723724dcb61543724f36d11">babBase::OptimizationVariable</a>
+</li>
 <li>_variables
 : <a class="el" href="classmaingo_1_1_ale_model.html#a8074ec7e8aa37574089920ad172ae964">maingo::AleModel</a>
 , <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a179c701e7f310080876879df45571aae">maingo::MAiNGO</a>
@@ -1196,9 +1231,6 @@ $(document).ready(function(){initNavTree('functions.html','');});
 <li>_variableType
 : <a class="el" href="classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9">babBase::OptimizationVariable</a>
 </li>
-<li>_wallPassed
-: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a2845411391c8498e7eece2e2e3ba073b">maingo::bab::BranchAndBound</a>
-</li>
 <li>_write_ale_file()
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a6e2e3685c938ae2e8605dab3f6a13632">maingo::MAiNGO</a>
 </li>
@@ -1211,9 +1243,6 @@ $(document).ready(function(){initNavTree('functions.html','');});
 <li>_write_ale_variables()
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a6d10798d58ceeac812fb853ca7eccf5c">maingo::MAiNGO</a>
 </li>
-<li>_write_csv_general()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a2287a4b633fd59097ce44a74e15f6660">maingo::MAiNGO</a>
-</li>
 <li>_write_epsilon_constraint_result()
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a40c4e33f9034542409daa1f0497c776f">maingo::MAiNGO</a>
 </li>
@@ -1221,7 +1250,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#acb69025e90c11f757a3f74c9b37daacd">maingo::MAiNGO</a>
 </li>
 <li>_write_files_error()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a72b6d958b300d7fc886b74790b001aeb">maingo::MAiNGO</a>
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a7ff011bd8ce28c9dc2e2d24c350698e1">maingo::MAiNGO</a>
 </li>
 <li>_write_gams_file()
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#af7aec196a4987e5f38ed642b21400aa9">maingo::MAiNGO</a>
@@ -1238,8 +1267,11 @@ $(document).ready(function(){initNavTree('functions.html','');});
 <li>_write_json_file()
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a9d8ceaac941b738db96be2326e4db27a">maingo::MAiNGO</a>
 </li>
-<li>_write_res_file()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a76ffecbb5590c1dd40ec896059af4fda">maingo::MAiNGO</a>
+<li>_write_result_file()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a83da0fbc8eeb9b2f336cd5d41707fbaf">maingo::MAiNGO</a>
+</li>
+<li>_write_solution_and_statistics_csv()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ab894162dd5074eea1d5dd153e4f72d9e">maingo::MAiNGO</a>
 </li>
 <li>_writeToLogEverySec
 : <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a193f594912e00a2c4d8cacfd4efbdfd5">maingo::bab::BranchAndBound</a>
@@ -1261,7 +1293,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_0x7e.html b/doc/html/functions_0x7e.html
new file mode 100644
index 0000000000000000000000000000000000000000..3545f216cf8f9c59b4c1bc04b1a8554c2d1ed718
--- /dev/null
+++ b/doc/html/functions_0x7e.html
@@ -0,0 +1,158 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>MAiNGO: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(initResizable);
+/* @license-end */</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><img alt="Logo" src="mango_only.png"/></td>
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">MAiNGO
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(document).ready(function(){initNavTree('functions_0x7e.html','');});
+/* @license-end */
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a id="index_0x7e"></a>- ~ -</h3><ul>
+<li>~BabTree()
+: <a class="el" href="classbab_base_1_1_bab_tree.html#a55a52c08fcb2eb8a59aa7b4b770ffb03">babBase::BabTree</a>
+</li>
+<li>~BranchAndBound()
+: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a7db5251fcd9ad3ca2892a9b17cb7b197">maingo::bab::BranchAndBound</a>
+</li>
+<li>~Brancher()
+: <a class="el" href="classbab_base_1_1_brancher.html#a7ed3656c248fc5438ebd4cfe15fd95e7">babBase::Brancher</a>
+</li>
+<li>~IpoptProblem()
+: <a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a83ab40c3ed93a2ec0d23a3e62d3eb92f">maingo::ubp::IpoptProblem</a>
+</li>
+<li>~KnitroProblem()
+: <a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a5aafe97d4cd0294ca5998f7973a79bfe">maingo::ubp::KnitroProblem</a>
+</li>
+<li>~LbpClp()
+: <a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab8577790c0bc0371e97f63040a576171">maingo::lbp::LbpClp</a>
+</li>
+<li>~LbpCplex()
+: <a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#acea05d7f9625a5dc671c43611a15cf4b">maingo::lbp::LbpCplex</a>
+</li>
+<li>~Logger()
+: <a class="el" href="classmaingo_1_1_logger.html#a31cae103ef08470e0db45f01c0360eed">maingo::Logger</a>
+</li>
+<li>~LowerBoundingSolver()
+: <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae45e85f9c8bc19bba1510e89b0698a97">maingo::lbp::LowerBoundingSolver</a>
+</li>
+<li>~MAiNGO()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#aa50b9f4993a803eb7ac98dee8ea2fcf1">maingo::MAiNGO</a>
+</li>
+<li>~MAiNGOException()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a2bddf4891f256ffd2f7395626412568a">maingo::MAiNGOException</a>
+</li>
+<li>~MAiNGOmodel()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html#ac1ff18446d407e6f663d4bf41fdb1003">maingo::MAiNGOmodel</a>
+</li>
+<li>~MAiNGOmodelEpsCon()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a0024c407e035cdadcf47b27e862b27ae">maingo::MAiNGOmodelEpsCon</a>
+</li>
+<li>~ModelFunction()
+: <a class="el" href="structmaingo_1_1_model_function.html#af5cbeca4a2b4e75d111e6073e9351a8b">maingo::ModelFunction</a>
+</li>
+<li>~OutputVariable()
+: <a class="el" href="structmaingo_1_1_output_variable.html#a09d1a2a865522f69c19cb057bc95f03f">maingo::OutputVariable</a>
+</li>
+<li>~UbpCplex()
+: <a class="el" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#ada023ef9d9bd4904e5e47e2181d38ab9">maingo::ubp::UbpCplex</a>
+</li>
+<li>~UbpKnitro()
+: <a class="el" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a0ebc116dd3ddaea32fb9330ee725295d">maingo::ubp::UbpKnitro</a>
+</li>
+<li>~UpperBoundingSolver()
+: <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa17ca0c5dbf33219148dc2fff3446357">maingo::ubp::UpperBoundingSolver</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="footer">Generated by
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/doc/html/functions_a.html b/doc/html/functions_a.html
index 0e6e27d54dc72209931e0139bcd9e84f82098320..fea9ce993aa80b0b4119a13e9422c06b037fe72e 100644
--- a/doc/html/functions_a.html
+++ b/doc/html/functions_a.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -125,6 +125,9 @@ $(document).ready(function(){initNavTree('functions_a.html','');});
 <li>AleModel()
 : <a class="el" href="classmaingo_1_1_ale_model.html#a3bb9ac4b8b424d7828893cddefe1d9e8">maingo::AleModel</a>
 </li>
+<li>are_consistent()
+: <a class="el" href="structbab_base_1_1_bounds.html#aac75f501a93c1ba546d9e9d2263ad2f4">babBase::Bounds</a>
+</li>
 <li>arh()
 : <a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ac3c457143c6f4a4400194ccf44f82c54">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a>
 </li>
@@ -135,7 +138,7 @@ $(document).ready(function(){initNavTree('functions_a.html','');});
 : <a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a0343beb7d475418ad9443de3dc486c2f">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a>
 </li>
 <li>at()
-: <a class="el" href="structmaingo_1_1model_function.html#a53bb709db5915f9762d84b3a160c549e">maingo::modelFunction</a>
+: <a class="el" href="structmaingo_1_1_model_function.html#ac53aa934e420edd2363328a685a35170">maingo::ModelFunction</a>
 </li>
 <li>atan()
 : <a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ae746ea045da4196e833c652a6264a126">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a>
@@ -151,7 +154,7 @@ $(document).ready(function(){initNavTree('functions_a.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_b.html b/doc/html/functions_b.html
index e6f4c23e717b14f1135644d5e8c2f09c84585d94..734a296bc8b30ef1fe6f055a1467c9e821645bea 100644
--- a/doc/html/functions_b.html
+++ b/doc/html/functions_b.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -141,19 +141,22 @@ $(document).ready(function(){initNavTree('functions_b.html','');});
 : <a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ae1eab66656e68a802a2d5a9a5aeb893e">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a>
 </li>
 <li>Bounds()
-: <a class="el" href="structbab_base_1_1_bounds.html#a58871ce4b6cf44aa16f6dd240fdeb295">babBase::Bounds</a>
+: <a class="el" href="structbab_base_1_1_bounds.html#a143d3617a4792c4ab189e372e8e0b681">babBase::Bounds</a>
+</li>
+<li>bounds_changed_from_user_input()
+: <a class="el" href="classbab_base_1_1_optimization_variable.html#ad2f581a8c131d5381232bce213e60823">babBase::OptimizationVariable</a>
 </li>
 <li>branch_on_node()
 : <a class="el" href="classbab_base_1_1_brancher.html#ac0128b99d5fdfc973298293f5913e729">babBase::Brancher</a>
 </li>
 <li>BranchAndBound()
-: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a2d88760ca48bcea923ba4e868d5bdf43">maingo::bab::BranchAndBound</a>
+: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ab1e963d56b3adc807decb6e4dc1bee85">maingo::bab::BranchAndBound</a>
 </li>
 <li>BranchAndBoundBaseException()
-: <a class="el" href="classbab_base_1_1_branch_and_bound_base_exception.html#a71f28b078d7768229740454c289a99fe">babBase::BranchAndBoundBaseException</a>
+: <a class="el" href="classbab_base_1_1_branch_and_bound_base_exception.html#a6d0ede19ef9bd580ca1a2d3dcfdbced6">babBase::BranchAndBoundBaseException</a>
 </li>
 <li>Brancher()
-: <a class="el" href="classbab_base_1_1_brancher.html#af9dc4eaddda3e1818ed6340be4353448">babBase::Brancher</a>
+: <a class="el" href="classbab_base_1_1_brancher.html#a05da26d4f5c313167569a1b23eb4539d">babBase::Brancher</a>
 </li>
 <li>branchingInfo
 : <a class="el" href="classbab_base_1_1_bab_node_with_info.html#ac6075518d3bd41539952567717008ada">babBase::BabNodeWithInfo</a>
@@ -178,7 +181,7 @@ $(document).ready(function(){initNavTree('functions_b.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_c.html b/doc/html/functions_c.html
index 97e2bc4fc721013dae29901d21f72dfbd8e58b2c..2fbac2b92a40ea2381c1397349c68b786fb8598c 100644
--- a/doc/html/functions_c.html
+++ b/doc/html/functions_c.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -89,9 +89,6 @@ $(document).ready(function(){initNavTree('functions_c.html','');});
 <div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
 
 <h3><a id="index_c"></a>- c -</h3><ul>
-<li>changedBounds
-: <a class="el" href="classbab_base_1_1_optimization_variable.html#a66fdae5945a00647d5dce7ba4750ae89">babBase::OptimizationVariable</a>
-</li>
 <li>cheb()
 : <a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ad9a450d917deff7d35dcbc47b952c528">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a>
 </li>
@@ -105,7 +102,7 @@ $(document).ready(function(){initNavTree('functions_c.html','');});
 : <a class="el" href="structbab_base_1_1_bab_log.html#a0128ab65edc7360210dd3a183f44e9d9">babBase::BabLog</a>
 , <a class="el" href="structmaingo_1_1_evaluation_container.html#ab9eb3ecf31c9d5d48ccb04880a635819">maingo::EvaluationContainer</a>
 , <a class="el" href="classmaingo_1_1_logger.html#ad63939a5c0535c5abb8e59024b0ca6d4">maingo::Logger</a>
-, <a class="el" href="structmaingo_1_1model_function.html#ac410fafee15b027dc87007207aca4fe0">maingo::modelFunction</a>
+, <a class="el" href="structmaingo_1_1_model_function.html#aadda375307d57abd5a7e1c3f8fee2289">maingo::ModelFunction</a>
 </li>
 <li>coeffsLin
 : <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">maingo::ubp::UbpQuadExpr</a>
@@ -116,9 +113,6 @@ $(document).ready(function(){initNavTree('functions_c.html','');});
 <li>confirmTermination
 : <a class="el" href="structmaingo_1_1_settings.html#a2442c5741a3601880b2903b69d32bbb9">maingo::Settings</a>
 </li>
-<li>consistent
-: <a class="el" href="structbab_base_1_1_bounds.html#a4b1a985eba004ed91b8383d2dde6224e">babBase::Bounds</a>
-</li>
 <li>constant
 : <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">maingo::ubp::UbpQuadExpr</a>
 </li>
@@ -126,7 +120,7 @@ $(document).ready(function(){initNavTree('functions_c.html','');});
 : <a class="el" href="structmaingo_1_1_constraint.html#ab73c06d8bf9488187e23e4ae1df6d317">maingo::Constraint</a>
 </li>
 <li>Constraint()
-: <a class="el" href="structmaingo_1_1_constraint.html#a5d45d01e07187f636bf0b381c460d32e">maingo::Constraint</a>
+: <a class="el" href="structmaingo_1_1_constraint.html#aae18f66e85bbadc497876478786b50f6">maingo::Constraint</a>
 </li>
 <li>constraintIntervals
 : <a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#adb5408c4f27e5267ba0086a2df4b29fa">maingo::lbp::DagObj</a>
@@ -168,18 +162,14 @@ $(document).ready(function(){initNavTree('functions_c.html','');});
 : <a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab051569370a1f5574a9e4b2049d7f91c">maingo::lbp::LbpCplex</a>
 , <a class="el" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a30c83b32af454645ccc8ad302377ce3f">maingo::ubp::UbpCplex</a>
 </li>
-<li>create_csv_files()
-: <a class="el" href="classmaingo_1_1_logger.html#a5776c77c4580d822350dc88225e46061">maingo::Logger</a>
-</li>
-<li>create_json_file()
-: <a class="el" href="classmaingo_1_1_logger.html#ab4926dc6a379823a0ece98e30f6a384f">maingo::Logger</a>
+<li>create_iterations_csv_file()
+: <a class="el" href="classmaingo_1_1_logger.html#a168a8239c87de32a540c9fdcb6a54ff7">maingo::Logger</a>
 </li>
 <li>create_log_file()
-: <a class="el" href="classmaingo_1_1_logger.html#aa6c83f95144d085092f854d64b9c1e2f">maingo::Logger</a>
+: <a class="el" href="classmaingo_1_1_logger.html#af67b92595cd069c402df9a448cd784a3">maingo::Logger</a>
 </li>
 <li>csvGeneralName
 : <a class="el" href="structbab_base_1_1_bab_log.html#a9b82e62a143f47a6fb85ec884fe1cf27">babBase::BabLog</a>
-, <a class="el" href="classmaingo_1_1_logger.html#a36f4bdb8cdcf58504dc06abd6d4e6725">maingo::Logger</a>
 </li>
 <li>csvIterationsName
 : <a class="el" href="structbab_base_1_1_bab_log.html#a5fe069f633ab86b5fb1df9cbfa89216a">babBase::BabLog</a>
@@ -199,7 +189,7 @@ $(document).ready(function(){initNavTree('functions_c.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_d.html b/doc/html/functions_d.html
index f00be5fec309fb2e2021fd3c065bf94b9c80e02f..a0a9c1b07db81d708e1cc22fb909bf503e5d03fa 100644
--- a/doc/html/functions_d.html
+++ b/doc/html/functions_d.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -94,8 +94,8 @@ $(document).ready(function(){initNavTree('functions_d.html','');});
 , <a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a5782efab4dab2431bd571bd62d0c1fd5">maingo::ubp::DagObj</a>
 </li>
 <li>DagObj()
-: <a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#afb7fb4ac1246771689f6e244e4777b06">maingo::lbp::DagObj</a>
-, <a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a38d4d4e046f3eea00ef8dce95ad36337">maingo::ubp::DagObj</a>
+: <a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#a03d316c8bf417fbb010961bb31d7cdbc">maingo::lbp::DagObj</a>
+, <a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a33f13fd662a2603c031c7284cd1ca098">maingo::ubp::DagObj</a>
 </li>
 <li>decrease_pruning_score_threshold_to()
 : <a class="el" href="classbab_base_1_1_brancher.html#af8c884a0262c7719aa832d2ed8761ea7">babBase::Brancher</a>
@@ -166,7 +166,7 @@ $(document).ready(function(){initNavTree('functions_d.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_dup.js b/doc/html/functions_dup.js
index 6cf010a3e91694c27ee04bf65080ce02482ddd2b..5ce5ccbaaa185fed28a5b59fa87e7b8b4b99d2d6 100644
--- a/doc/html/functions_dup.js
+++ b/doc/html/functions_dup.js
@@ -26,5 +26,5 @@ var functions_dup =
     [ "w", "functions_w.html", null ],
     [ "x", "functions_x.html", null ],
     [ "z", "functions_z.html", null ],
-    [ "~", "functions_~.html", null ]
+    [ "~", "functions_0x7e.html", null ]
 ];
\ No newline at end of file
diff --git a/doc/html/functions_e.html b/doc/html/functions_e.html
index 426fba1a40e7cabddba184d53b4574755586d615..76d33b385444487f226dd5a03dbf395266e3a86c 100644
--- a/doc/html/functions_e.html
+++ b/doc/html/functions_e.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -107,11 +107,11 @@ $(document).ready(function(){initNavTree('functions_e.html','');});
 </li>
 <li>eq
 : <a class="el" href="structmaingo_1_1_constraint_container.html#ad875878c83b9f5e2ab0ff68c7452a53e">maingo::ConstraintContainer</a>
-, <a class="el" href="structmaingo_1_1_evaluation_container.html#a9c91e67852946ccb7381351512875a06">maingo::EvaluationContainer</a>
+, <a class="el" href="structmaingo_1_1_evaluation_container.html#ad71555eb350bbd6deb14d47559a6fa6d">maingo::EvaluationContainer</a>
 , <a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a052639fdb63ad1b89ffeda209f67a4f1">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a>
 </li>
 <li>eqRelaxationOnly
-: <a class="el" href="structmaingo_1_1_evaluation_container.html#afd4671f76d0f58502f7f8a36bc574642">maingo::EvaluationContainer</a>
+: <a class="el" href="structmaingo_1_1_evaluation_container.html#a564d618660f9675c33900127aa686f38">maingo::EvaluationContainer</a>
 </li>
 <li>erf()
 : <a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a53999c0ccd04a819391c96726db8c98c">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a>
@@ -147,6 +147,19 @@ $(document).ready(function(){initNavTree('functions_e.html','');});
 : <a class="el" href="classmaingo_1_1_ale_model.html#a3ef454e2c543640ff4f77217396019f2">maingo::AleModel</a>
 , <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html#a7a50f1c3477c117936d2b59876e608d6">maingo::MAiNGOmodel</a>
 , <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#aa52fe81513f6d8f35020b3c492a5837d">maingo::MAiNGOmodelEpsCon</a>
+, <a class="el" href="class_py_m_ai_n_g_omodel.html#abdc36fa738c77f0e2c35f009ae35852b">PyMAiNGOmodel</a>
+</li>
+<li>evaluate_additional_outputs_at_point()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#adeef2c9d324fa8f9a26819b3a3307ad7">maingo::MAiNGO</a>
+</li>
+<li>evaluate_additional_outputs_at_solution_point()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a5ee95afece75a72e91aff11274eda43a">maingo::MAiNGO</a>
+</li>
+<li>evaluate_model_at_point()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#aaaa69dd8b526f0d9966ce35bd102601f">maingo::MAiNGO</a>
+</li>
+<li>evaluate_model_at_solution_point()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#acd561f4e9560a6a5c501bdf444f581b8">maingo::MAiNGO</a>
 </li>
 <li>evaluate_user_model()
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a2f0d0fb0d9bc6abc37e3ba544612ef98">maingo::MAiNGOmodelEpsCon</a>
@@ -174,7 +187,7 @@ $(document).ready(function(){initNavTree('functions_e.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_enum.html b/doc/html/functions_enum.html
index 3a712235ae33bf9588130d84c3f464b0f32758a1..e9899129d979af89b1add7b4a240f48fc77a1913 100644
--- a/doc/html/functions_enum.html
+++ b/doc/html/functions_enum.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Enumerations</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -104,7 +104,7 @@ $(document).ready(function(){initNavTree('functions_enum.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_eval.html b/doc/html/functions_eval.html
index 8c63e0e859bf6c35fc4b94a62b6f415c472e3a12..f9dc247fd71433bf79efe6c50283d28e27db77e2 100644
--- a/doc/html/functions_eval.html
+++ b/doc/html/functions_eval.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Enumerator</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -88,13 +88,13 @@ $(document).ready(function(){initNavTree('functions_eval.html','');});
 <div class="contents">
 &#160;<ul>
 <li>_NOT_TERMINATED
-: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a244a114749491f6b442fd2563fefbc5e">maingo::bab::BranchAndBound</a>
+: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a4606d4d76cdd55c82480e7e28a65d67a">maingo::bab::BranchAndBound</a>
 </li>
 <li>_TERMINATED
-: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ac0b46b223d15cc2e3851dcaf961b9e7a">maingo::bab::BranchAndBound</a>
+: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a1a904c0cb2e9786677bfd0c13951dec7">maingo::bab::BranchAndBound</a>
 </li>
 <li>_TERMINATED_WORKERS_ACTIVE
-: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ab77e9f73c90db0ea95610d8103738966">maingo::bab::BranchAndBound</a>
+: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a803a5e6c3589e7407f7993fff57c30dd">maingo::bab::BranchAndBound</a>
 </li>
 <li>USE_BAB
 : <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395a8c993825a2321788812ac88fa8666a34">maingo::ubp::UpperBoundingSolver</a>
@@ -110,7 +110,7 @@ $(document).ready(function(){initNavTree('functions_eval.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_f.html b/doc/html/functions_f.html
index 377c497eca6410de29c12718494485e40d855b4a..917ce074cd0d590288d043dd50c3f516b22cd62d 100644
--- a/doc/html/functions_f.html
+++ b/doc/html/functions_f.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -159,7 +159,7 @@ $(document).ready(function(){initNavTree('functions_f.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_func.html b/doc/html/functions_func.html
index b2467f83c81c6dabafd2042aa0a44bd8b9c0c4d9..75f7a3d4e1f1302218a49d4958195c5c899d5387 100644
--- a/doc/html/functions_func.html
+++ b/doc/html/functions_func.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Functions</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -88,7 +88,7 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
 <div class="contents">
 &#160;
 
-<h3><a id="index__5F"></a>- _ -</h3><ul>
+<h3><a id="index__"></a>- _ -</h3><ul>
 <li>_add_auxiliary_variables_to_lbd_dag()
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#af0fdf26f6ae26288a121e6912f0f1023">maingo::MAiNGO</a>
 </li>
@@ -98,15 +98,21 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
 <li>_analyze_and_solve_problem()
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a271c14d25b5423c7c077f8ea206f2818">maingo::MAiNGO</a>
 </li>
+<li>_append_current_error_message_to_message()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a978212ab50e44b92bc27cb853df35733">maingo::MAiNGOException</a>
+</li>
+<li>_append_node_info_to_message()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a78cc259eb3c775814b2214262f026b8a">maingo::MAiNGOException</a>
+</li>
+<li>_append_original_exception_info_to_message()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a9cd783e2e9ac6fcaf813bd8f94f2300d">maingo::MAiNGOException</a>
+</li>
 <li>_calculate_branching_point()
 : <a class="el" href="classbab_base_1_1_brancher.html#aee381075df2a3f5dfbf54ba6dadc4584">babBase::Brancher</a>
 </li>
 <li>_check_bounds()
 : <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2f7fe42bb11f791fc34c33f60ac057fc">maingo::ubp::UpperBoundingSolver</a>
 </li>
-<li>_check_discrete_bounds()
-: <a class="el" href="classbab_base_1_1_optimization_variable.html#a73cc92c1533194998ebee64ff851b5da">babBase::OptimizationVariable</a>
-</li>
 <li>_check_eq()
 : <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a8e0390a65c638a359c0fd4aca45898b6">maingo::ubp::UpperBoundingSolver</a>
 </li>
@@ -157,12 +163,15 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
 <li>_choose_good_lin_points()
 : <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a13d16bea111e56762479856995fe8435">maingo::lbp::LowerBoundingSolver</a>
 </li>
-<li>_classify_constraints()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a874e8de2f4daafb262380b882a3d3553">maingo::MAiNGO</a>
+<li>_classify_objective_and_constraints()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a803800682d25b4edc28a3536faba2380">maingo::MAiNGO</a>
 </li>
 <li>_compute_and_rotate_simplex()
 : <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4dd432d487c2099767f0d6de64711bb9">maingo::lbp::LowerBoundingSolver</a>
 </li>
+<li>_construct_complete_error_message()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a5cc5c15e7cb9d14f7877731fabb46189">maingo::MAiNGOException</a>
+</li>
 <li>_construct_DAG()
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a9908a4661a24667409c0a0fd5c06fe9f">maingo::MAiNGO</a>
 </li>
@@ -189,9 +198,18 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
 <li>_display_and_log_progress()
 : <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ad2b56f40c7255d731c196b1661cee2d4">maingo::bab::BranchAndBound</a>
 </li>
+<li>_ensure_valid_objective_function_using_dummy_variable()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a56d30ff7a1a221550e6c7c045e5c6feb">maingo::MAiNGO</a>
+</li>
 <li>_equilibrate_and_relax()
 : <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a77e97f9255980d5edaadd9da571b078f">maingo::lbp::LowerBoundingSolver</a>
 </li>
+<li>_evaluate_additional_outputs_at_point()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a92cbd5e8a92e5c335d57bb23574cf6b2">maingo::MAiNGO</a>
+</li>
+<li>_evaluate_model_at_point()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a241496b3e71881ee3cb7b8be661b44d4">maingo::MAiNGO</a>
+</li>
 <li>_fallback_to_intervals()
 : <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aafadf6738f60cca6831074ae54f0647d">maingo::lbp::LowerBoundingSolver</a>
 </li>
@@ -206,17 +224,11 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
 <li>_generate_multistart_point()
 : <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a88f6a1e58a7274d44f6c9513581a6f4b">maingo::ubp::UpperBoundingSolver</a>
 </li>
-<li>_get_additional_outputs()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a14ac25981c3df0f6317418c8b9f4857c">maingo::MAiNGO</a>
-</li>
 <li>_get_LP_status()
 : <a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a3e27387ed8c32d6a7a82477c19e99f29">maingo::lbp::LbpClp</a>
 , <a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a5fc72422c29fbfba6710f9f2e244b28c">maingo::lbp::LbpCplex</a>
 , <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4fd9a52441b77eff552c9034ae0fb76d">maingo::lbp::LowerBoundingSolver</a>
 </li>
-<li>_get_model_at_point()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0d372af3e069f9ff12f09936aa9099c0">maingo::MAiNGO</a>
-</li>
 <li>_get_multipliers()
 : <a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#af53e6dc42f11d7c5f5ac55e91414762e">maingo::lbp::LbpClp</a>
 , <a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a8e70de9d87020368dab0536c183d1fbb">maingo::lbp::LbpCplex</a>
@@ -235,6 +247,9 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
 , <a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab1306509036c3a0063f66bbcf8e8333e">maingo::lbp::LbpCplex</a>
 , <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af4e0c02718f150532912a15c213e608d">maingo::lbp::LowerBoundingSolver</a>
 </li>
+<li>_infer_and_set_bounds_or_throw()
+: <a class="el" href="classbab_base_1_1_optimization_variable.html#a0678dfc3a0ca4daf488e40b1a0568f66">babBase::OptimizationVariable</a>
+</li>
 <li>_initialize_matrix()
 : <a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a4ba899146b3421853e50e87560e4cc05">maingo::lbp::LbpClp</a>
 </li>
@@ -295,7 +310,7 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a585967bc628b31b1fbba2105be7d36a2">maingo::MAiNGO</a>
 </li>
 <li>_print_MAiNGO_header_for_other_modeling_language()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a93a8eadb777ce6ff95072f16dc6ef762">maingo::MAiNGO</a>
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a1eeb14c069d224846f7684d95a90ed04">maingo::MAiNGO</a>
 </li>
 <li>_print_message()
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0a8c5d381ad5818cec8624db717de73a">maingo::MAiNGO</a>
@@ -341,6 +356,9 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
 <li>_root_obbt_feasibility_optimality()
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ac685bcf7b2be55e2d689941c1b90fa72">maingo::MAiNGO</a>
 </li>
+<li>_round_and_check_discrete_bounds()
+: <a class="el" href="classbab_base_1_1_optimization_variable.html#ace610f731e7f44a53dbf4003ffe9f8d0">babBase::OptimizationVariable</a>
+</li>
 <li>_select_branching_dimension_pseudo_costs()
 : <a class="el" href="classbab_base_1_1_brancher.html#adc6989ca24a46718549abe6ae0a507a8">babBase::Brancher</a>
 </li>
@@ -419,7 +437,7 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
 , <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9f37648a18e394088679dc92701dd76f">maingo::lbp::LowerBoundingSolver</a>
 </li>
 <li>_update_incumbent_and_fathom()
-: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a0608306463120a72b9ec32395044470f">maingo::bab::BranchAndBound</a>
+: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a13e706473cf2f26ac9b3d20344270aaa">maingo::bab::BranchAndBound</a>
 </li>
 <li>_update_lowest_lbd()
 : <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a5cbefb1e86ca300d67ae3c65eab1099b">maingo::bab::BranchAndBound</a>
@@ -430,15 +448,15 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
 </li>
 <li>_update_LP_eq()
 : <a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a52de428ac88f082ffc3cfe4c9ec0ca84">maingo::lbp::LbpClp</a>
-, <a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab05713911aef1c8aac1d4da8f8d1faac">maingo::lbp::LbpCplex</a>
+, <a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a64e1ffb352c8b5cb3ff2d349ae95dc40">maingo::lbp::LbpCplex</a>
 , <a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a274c50b0ce633cb4b9616f9ec737bbae">maingo::lbp::LbpInterval</a>
 , <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1aec7459f261f58b6e476fd7eae99581">maingo::lbp::LowerBoundingSolver</a>
 </li>
 <li>_update_LP_eqRelaxationOnly()
 : <a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a09930dee52d992c1aeab1e8a6f32ef59">maingo::lbp::LbpClp</a>
-, <a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a2ece08fdba41c3234cf486328cb270f3">maingo::lbp::LbpCplex</a>
+, <a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a84205c27db34dc362f0ac7302d2cecbc">maingo::lbp::LbpCplex</a>
 , <a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#aea1859e400fedef26c0391fe3d2262e0">maingo::lbp::LbpInterval</a>
-, <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ad3893a30edf38b7801801e754773e8da">maingo::lbp::LowerBoundingSolver</a>
+, <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a59a4631f9fbe8e1a568fd2a36fac31e2">maingo::lbp::LowerBoundingSolver</a>
 </li>
 <li>_update_LP_ineq()
 : <a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#af9cf257a4e806ecbb182bfa037cad8a4">maingo::lbp::LbpClp</a>
@@ -448,15 +466,15 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
 </li>
 <li>_update_LP_ineq_squash()
 : <a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a9981f64fc302d8ee34ecff0fa9db4b6c">maingo::lbp::LbpClp</a>
-, <a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a323d0e6ce0aec6d2f0a498e9a53e3e68">maingo::lbp::LbpCplex</a>
+, <a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#aa4eb11afb673511208c9522da41ae68a">maingo::lbp::LbpCplex</a>
 , <a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a6fe830f1bb82860614d7812e260520bd">maingo::lbp::LbpInterval</a>
 , <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aff0358f2e7b23dcabb961d27b71e6642">maingo::lbp::LowerBoundingSolver</a>
 </li>
 <li>_update_LP_ineqRelaxationOnly()
 : <a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a9d4da7fbb2fc96bbcba558f5126bac60">maingo::lbp::LbpClp</a>
-, <a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a7551c7b0a8d63b589a3e5e64153add73">maingo::lbp::LbpCplex</a>
+, <a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a0a0889638a62f4e34e7cc39be8acd8c7">maingo::lbp::LbpCplex</a>
 , <a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#af632f780426eb916d395a7854b446e23">maingo::lbp::LbpInterval</a>
-, <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a793016f5e661fbfaf1488f1a6889f3c8">maingo::lbp::LowerBoundingSolver</a>
+, <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a161849015fb7e113fdf088a24671b9c9">maingo::lbp::LowerBoundingSolver</a>
 </li>
 <li>_update_LP_nonlinear()
 : <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aa0074d7d40a6c7d983ed738cfb501a5e">maingo::lbp::LowerBoundingSolver</a>
@@ -488,9 +506,6 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
 <li>_write_ale_variables()
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a6d10798d58ceeac812fb853ca7eccf5c">maingo::MAiNGO</a>
 </li>
-<li>_write_csv_general()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a2287a4b633fd59097ce44a74e15f6660">maingo::MAiNGO</a>
-</li>
 <li>_write_epsilon_constraint_result()
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a40c4e33f9034542409daa1f0497c776f">maingo::MAiNGO</a>
 </li>
@@ -498,7 +513,7 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#acb69025e90c11f757a3f74c9b37daacd">maingo::MAiNGO</a>
 </li>
 <li>_write_files_error()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a72b6d958b300d7fc886b74790b001aeb">maingo::MAiNGO</a>
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a7ff011bd8ce28c9dc2e2d24c350698e1">maingo::MAiNGO</a>
 </li>
 <li>_write_gams_file()
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#af7aec196a4987e5f38ed642b21400aa9">maingo::MAiNGO</a>
@@ -515,8 +530,11 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
 <li>_write_json_file()
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a9d8ceaac941b738db96be2326e4db27a">maingo::MAiNGO</a>
 </li>
-<li>_write_res_file()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a76ffecbb5590c1dd40ec896059af4fda">maingo::MAiNGO</a>
+<li>_write_result_file()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a83da0fbc8eeb9b2f336cd5d41707fbaf">maingo::MAiNGO</a>
+</li>
+<li>_write_solution_and_statistics_csv()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ab894162dd5074eea1d5dd153e4f72d9e">maingo::MAiNGO</a>
 </li>
 </ul>
 </div><!-- contents -->
@@ -526,7 +544,7 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_func.js b/doc/html/functions_func.js
index f5c9b23cf2d3af6987cabf8d1bb7f300f51ac190..8c655d0fe5c19a82f3d4d62ab859734b519050bb 100644
--- a/doc/html/functions_func.js
+++ b/doc/html/functions_func.js
@@ -24,5 +24,5 @@ var functions_func =
     [ "w", "functions_func_w.html", null ],
     [ "x", "functions_func_x.html", null ],
     [ "z", "functions_func_z.html", null ],
-    [ "~", "functions_func_~.html", null ]
+    [ "~", "functions_func_0x7e.html", null ]
 ];
\ No newline at end of file
diff --git a/doc/html/functions_func_0x7e.html b/doc/html/functions_func_0x7e.html
new file mode 100644
index 0000000000000000000000000000000000000000..6bfd62c465621fc9395cafb2fe67f63f76fe6d51
--- /dev/null
+++ b/doc/html/functions_func_0x7e.html
@@ -0,0 +1,158 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>MAiNGO: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(initResizable);
+/* @license-end */</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><img alt="Logo" src="mango_only.png"/></td>
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">MAiNGO
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(document).ready(function(){initNavTree('functions_func_0x7e.html','');});
+/* @license-end */
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_0x7e"></a>- ~ -</h3><ul>
+<li>~BabTree()
+: <a class="el" href="classbab_base_1_1_bab_tree.html#a55a52c08fcb2eb8a59aa7b4b770ffb03">babBase::BabTree</a>
+</li>
+<li>~BranchAndBound()
+: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a7db5251fcd9ad3ca2892a9b17cb7b197">maingo::bab::BranchAndBound</a>
+</li>
+<li>~Brancher()
+: <a class="el" href="classbab_base_1_1_brancher.html#a7ed3656c248fc5438ebd4cfe15fd95e7">babBase::Brancher</a>
+</li>
+<li>~IpoptProblem()
+: <a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a83ab40c3ed93a2ec0d23a3e62d3eb92f">maingo::ubp::IpoptProblem</a>
+</li>
+<li>~KnitroProblem()
+: <a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a5aafe97d4cd0294ca5998f7973a79bfe">maingo::ubp::KnitroProblem</a>
+</li>
+<li>~LbpClp()
+: <a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab8577790c0bc0371e97f63040a576171">maingo::lbp::LbpClp</a>
+</li>
+<li>~LbpCplex()
+: <a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#acea05d7f9625a5dc671c43611a15cf4b">maingo::lbp::LbpCplex</a>
+</li>
+<li>~Logger()
+: <a class="el" href="classmaingo_1_1_logger.html#a31cae103ef08470e0db45f01c0360eed">maingo::Logger</a>
+</li>
+<li>~LowerBoundingSolver()
+: <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae45e85f9c8bc19bba1510e89b0698a97">maingo::lbp::LowerBoundingSolver</a>
+</li>
+<li>~MAiNGO()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#aa50b9f4993a803eb7ac98dee8ea2fcf1">maingo::MAiNGO</a>
+</li>
+<li>~MAiNGOException()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a2bddf4891f256ffd2f7395626412568a">maingo::MAiNGOException</a>
+</li>
+<li>~MAiNGOmodel()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html#ac1ff18446d407e6f663d4bf41fdb1003">maingo::MAiNGOmodel</a>
+</li>
+<li>~MAiNGOmodelEpsCon()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a0024c407e035cdadcf47b27e862b27ae">maingo::MAiNGOmodelEpsCon</a>
+</li>
+<li>~ModelFunction()
+: <a class="el" href="structmaingo_1_1_model_function.html#af5cbeca4a2b4e75d111e6073e9351a8b">maingo::ModelFunction</a>
+</li>
+<li>~OutputVariable()
+: <a class="el" href="structmaingo_1_1_output_variable.html#a09d1a2a865522f69c19cb057bc95f03f">maingo::OutputVariable</a>
+</li>
+<li>~UbpCplex()
+: <a class="el" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#ada023ef9d9bd4904e5e47e2181d38ab9">maingo::ubp::UbpCplex</a>
+</li>
+<li>~UbpKnitro()
+: <a class="el" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a0ebc116dd3ddaea32fb9330ee725295d">maingo::ubp::UbpKnitro</a>
+</li>
+<li>~UpperBoundingSolver()
+: <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa17ca0c5dbf33219148dc2fff3446357">maingo::ubp::UpperBoundingSolver</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="footer">Generated by
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/doc/html/functions_func_a.html b/doc/html/functions_func_a.html
index d84a9858f7eb8e178c6eaf2862e47256f32120df..1aa03dc414d27308db6ce97ff1aaa7fc699c09cf 100644
--- a/doc/html/functions_func_a.html
+++ b/doc/html/functions_func_a.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Functions</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -116,6 +116,9 @@ $(document).ready(function(){initNavTree('functions_func_a.html','');});
 <li>AleModel()
 : <a class="el" href="classmaingo_1_1_ale_model.html#a3bb9ac4b8b424d7828893cddefe1d9e8">maingo::AleModel</a>
 </li>
+<li>are_consistent()
+: <a class="el" href="structbab_base_1_1_bounds.html#aac75f501a93c1ba546d9e9d2263ad2f4">babBase::Bounds</a>
+</li>
 <li>arh()
 : <a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ac3c457143c6f4a4400194ccf44f82c54">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a>
 </li>
@@ -126,7 +129,7 @@ $(document).ready(function(){initNavTree('functions_func_a.html','');});
 : <a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a0343beb7d475418ad9443de3dc486c2f">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a>
 </li>
 <li>at()
-: <a class="el" href="structmaingo_1_1model_function.html#a53bb709db5915f9762d84b3a160c549e">maingo::modelFunction</a>
+: <a class="el" href="structmaingo_1_1_model_function.html#ac53aa934e420edd2363328a685a35170">maingo::ModelFunction</a>
 </li>
 <li>atan()
 : <a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ae746ea045da4196e833c652a6264a126">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a>
@@ -142,7 +145,7 @@ $(document).ready(function(){initNavTree('functions_func_a.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_func_b.html b/doc/html/functions_func_b.html
index 2b355847027a9451c36e1552c038f679b593dc19..47b0056872c23ad53e989cbdca03c22ab4786feb 100644
--- a/doc/html/functions_func_b.html
+++ b/doc/html/functions_func_b.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Functions</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -104,17 +104,20 @@ $(document).ready(function(){initNavTree('functions_func_b.html','');});
 <li>Bounds()
 : <a class="el" href="structbab_base_1_1_bounds.html#a143d3617a4792c4ab189e372e8e0b681">babBase::Bounds</a>
 </li>
+<li>bounds_changed_from_user_input()
+: <a class="el" href="classbab_base_1_1_optimization_variable.html#ad2f581a8c131d5381232bce213e60823">babBase::OptimizationVariable</a>
+</li>
 <li>branch_on_node()
 : <a class="el" href="classbab_base_1_1_brancher.html#ac0128b99d5fdfc973298293f5913e729">babBase::Brancher</a>
 </li>
 <li>BranchAndBound()
-: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a0795ab80ed85f416a1834c2bc62f2d88">maingo::bab::BranchAndBound</a>
+: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ab1e963d56b3adc807decb6e4dc1bee85">maingo::bab::BranchAndBound</a>
 </li>
 <li>BranchAndBoundBaseException()
 : <a class="el" href="classbab_base_1_1_branch_and_bound_base_exception.html#a88e91f98099cf5db2b7365e13c9f0c3c">babBase::BranchAndBoundBaseException</a>
 </li>
 <li>Brancher()
-: <a class="el" href="classbab_base_1_1_brancher.html#af9dc4eaddda3e1818ed6340be4353448">babBase::Brancher</a>
+: <a class="el" href="classbab_base_1_1_brancher.html#a05da26d4f5c313167569a1b23eb4539d">babBase::Brancher</a>
 </li>
 <li>bstep()
 : <a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a4ee526b8aee72df2eec3366b9be4037e">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a>
@@ -127,7 +130,7 @@ $(document).ready(function(){initNavTree('functions_func_b.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_func_c.html b/doc/html/functions_func_c.html
index 04305d8f8f3783871de3bd3365c956e3b6a5c39f..c16ba505f4c9a02c6a31717a229760358454bc49 100644
--- a/doc/html/functions_func_c.html
+++ b/doc/html/functions_func_c.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Functions</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -99,7 +99,7 @@ $(document).ready(function(){initNavTree('functions_func_c.html','');});
 : <a class="el" href="structbab_base_1_1_bab_log.html#a0128ab65edc7360210dd3a183f44e9d9">babBase::BabLog</a>
 , <a class="el" href="structmaingo_1_1_evaluation_container.html#ab9eb3ecf31c9d5d48ccb04880a635819">maingo::EvaluationContainer</a>
 , <a class="el" href="classmaingo_1_1_logger.html#ad63939a5c0535c5abb8e59024b0ca6d4">maingo::Logger</a>
-, <a class="el" href="structmaingo_1_1model_function.html#ac410fafee15b027dc87007207aca4fe0">maingo::modelFunction</a>
+, <a class="el" href="structmaingo_1_1_model_function.html#aadda375307d57abd5a7e1c3f8fee2289">maingo::ModelFunction</a>
 </li>
 <li>Constraint()
 : <a class="el" href="structmaingo_1_1_constraint.html#a5d45d01e07187f636bf0b381c460d32e">maingo::Constraint</a>
@@ -119,14 +119,11 @@ $(document).ready(function(){initNavTree('functions_func_c.html','');});
 <li>covariance_function()
 : <a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a7e6b2880426b3aaf6ad0406c588d5ed2">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a>
 </li>
-<li>create_csv_files()
-: <a class="el" href="classmaingo_1_1_logger.html#a5776c77c4580d822350dc88225e46061">maingo::Logger</a>
-</li>
-<li>create_json_file()
-: <a class="el" href="classmaingo_1_1_logger.html#ab4926dc6a379823a0ece98e30f6a384f">maingo::Logger</a>
+<li>create_iterations_csv_file()
+: <a class="el" href="classmaingo_1_1_logger.html#a168a8239c87de32a540c9fdcb6a54ff7">maingo::Logger</a>
 </li>
 <li>create_log_file()
-: <a class="el" href="classmaingo_1_1_logger.html#aa6c83f95144d085092f854d64b9c1e2f">maingo::Logger</a>
+: <a class="el" href="classmaingo_1_1_logger.html#af67b92595cd069c402df9a448cd784a3">maingo::Logger</a>
 </li>
 </ul>
 </div><!-- contents -->
@@ -136,7 +133,7 @@ $(document).ready(function(){initNavTree('functions_func_c.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_func_d.html b/doc/html/functions_func_d.html
index 3455c8e3f9f2f911be71569e437cb6552e261ddb..c034ece846b3df1bae617498ae4f7cbc44655da4 100644
--- a/doc/html/functions_func_d.html
+++ b/doc/html/functions_func_d.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Functions</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,8 +90,8 @@ $(document).ready(function(){initNavTree('functions_func_d.html','');});
 
 <h3><a id="index_d"></a>- d -</h3><ul>
 <li>DagObj()
-: <a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#afb7fb4ac1246771689f6e244e4777b06">maingo::lbp::DagObj</a>
-, <a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a38d4d4e046f3eea00ef8dce95ad36337">maingo::ubp::DagObj</a>
+: <a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#a03d316c8bf417fbb010961bb31d7cdbc">maingo::lbp::DagObj</a>
+, <a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a33f13fd662a2603c031c7284cd1ca098">maingo::ubp::DagObj</a>
 </li>
 <li>decrease_pruning_score_threshold_to()
 : <a class="el" href="classbab_base_1_1_brancher.html#af8c884a0262c7719aa832d2ed8761ea7">babBase::Brancher</a>
@@ -120,7 +120,7 @@ $(document).ready(function(){initNavTree('functions_func_d.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_func_e.html b/doc/html/functions_func_e.html
index c7a8acb079e9299d31a52ccab08786248d6136be..832664203df4c482445cf5a7937b82ea7dfc6808 100644
--- a/doc/html/functions_func_e.html
+++ b/doc/html/functions_func_e.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Functions</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -127,6 +127,19 @@ $(document).ready(function(){initNavTree('functions_func_e.html','');});
 : <a class="el" href="classmaingo_1_1_ale_model.html#a3ef454e2c543640ff4f77217396019f2">maingo::AleModel</a>
 , <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html#a7a50f1c3477c117936d2b59876e608d6">maingo::MAiNGOmodel</a>
 , <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#aa52fe81513f6d8f35020b3c492a5837d">maingo::MAiNGOmodelEpsCon</a>
+, <a class="el" href="class_py_m_ai_n_g_omodel.html#abdc36fa738c77f0e2c35f009ae35852b">PyMAiNGOmodel</a>
+</li>
+<li>evaluate_additional_outputs_at_point()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#adeef2c9d324fa8f9a26819b3a3307ad7">maingo::MAiNGO</a>
+</li>
+<li>evaluate_additional_outputs_at_solution_point()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a5ee95afece75a72e91aff11274eda43a">maingo::MAiNGO</a>
+</li>
+<li>evaluate_model_at_point()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#aaaa69dd8b526f0d9966ce35bd102601f">maingo::MAiNGO</a>
+</li>
+<li>evaluate_model_at_solution_point()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#acd561f4e9560a6a5c501bdf444f581b8">maingo::MAiNGO</a>
 </li>
 <li>evaluate_user_model()
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a2f0d0fb0d9bc6abc37e3ba544612ef98">maingo::MAiNGOmodelEpsCon</a>
@@ -154,7 +167,7 @@ $(document).ready(function(){initNavTree('functions_func_e.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_func_f.html b/doc/html/functions_func_f.html
index acc9351224d0f17695fe644d3588154036ba1706..067452628f0c0cd829b86f7c8e57926aa5b5f851 100644
--- a/doc/html/functions_func_f.html
+++ b/doc/html/functions_func_f.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Functions</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -109,7 +109,7 @@ $(document).ready(function(){initNavTree('functions_func_f.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_func_g.html b/doc/html/functions_func_g.html
index 68a9b6bba3d328ef61b16874e2fca38f60319142..aa786afc4f08370b779a817067378bd9fecca0df 100644
--- a/doc/html/functions_func_g.html
+++ b/doc/html/functions_func_g.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Functions</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -98,12 +98,6 @@ $(document).ready(function(){initNavTree('functions_func_g.html','');});
 <li>get()
 : <a class="el" href="classbab_base_1_1_out_var.html#aa2878f955a6fca58b597161aff4964a8">babBase::OutVar&lt; T &gt;</a>
 </li>
-<li>get_additional_outputs_at_point()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a52df8cc85640aaee13afb5cd5748dbcc">maingo::MAiNGO</a>
-</li>
-<li>get_additional_outputs_at_solution_point()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#afd0f8acfe45a05c077810ef75b8d71dd">maingo::MAiNGO</a>
-</li>
 <li>get_all_nodes_from_strong_branching()
 : <a class="el" href="classbab_base_1_1_brancher.html#a2fa6eaac5e68dfde2de07ad72e74c906">babBase::Brancher</a>
 </li>
@@ -142,6 +136,7 @@ $(document).ready(function(){initNavTree('functions_func_g.html','');});
 : <a class="el" href="classmaingo_1_1_ale_model.html#ad16d625c2b0ab88cdf8c200680477510">maingo::AleModel</a>
 , <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html#a929215d08a5412b014d39fcda6e5d62a">maingo::MAiNGOmodel</a>
 , <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#af97462f303e12760d3bff115983515d4">maingo::MAiNGOmodelEpsCon</a>
+, <a class="el" href="class_py_m_ai_n_g_omodel.html#adf3fcc040878469f11236e47066fc923">PyMAiNGOmodel</a>
 </li>
 <li>get_iterations()
 : <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a90cf43573f5755481bdd020dcaa7d351">maingo::bab::BranchAndBound</a>
@@ -168,12 +163,6 @@ $(document).ready(function(){initNavTree('functions_func_g.html','');});
 <li>get_mid()
 : <a class="el" href="classbab_base_1_1_optimization_variable.html#aa62b8c28d96fbcb03b8890081fb31cde">babBase::OptimizationVariable</a>
 </li>
-<li>get_model_at_point()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#abd17e0e2d436da88f15738e8e0218ac8">maingo::MAiNGO</a>
-</li>
-<li>get_model_at_solution_point()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a50df488dd7b110d7e4ebc137a8949696">maingo::MAiNGO</a>
-</li>
 <li>get_name()
 : <a class="el" href="classbab_base_1_1_optimization_variable.html#a4b419fcf5d8b88a6d48f3f8beec1c509">babBase::OptimizationVariable</a>
 </li>
@@ -233,6 +222,12 @@ $(document).ready(function(){initNavTree('functions_func_g.html','');});
 <li>get_upper_bounds()
 : <a class="el" href="classbab_base_1_1_bab_node.html#a2a0922468fbfe492d9d70231c54c4bf9">babBase::BabNode</a>
 </li>
+<li>get_user_lower_bound()
+: <a class="el" href="classbab_base_1_1_optimization_variable.html#a74e9435f5bcfa900c9304ceda8f05be5">babBase::OptimizationVariable</a>
+</li>
+<li>get_user_upper_bound()
+: <a class="el" href="classbab_base_1_1_optimization_variable.html#adf64e2c7687fce1a063b7a4a46a2e212">babBase::OptimizationVariable</a>
+</li>
 <li>get_valid_id()
 : <a class="el" href="classbab_base_1_1_bab_tree.html#a931d3afc91a3c6011e9921cbfe09d0a2">babBase::BabTree</a>
 </li>
@@ -243,6 +238,7 @@ $(document).ready(function(){initNavTree('functions_func_g.html','');});
 : <a class="el" href="classmaingo_1_1_ale_model.html#a9d29639440ec6fae90238a0a6d32ab53">maingo::AleModel</a>
 , <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html#a9faead087bd24822a0d249e257b4df8d">maingo::MAiNGOmodel</a>
 , <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a5829ce6c25e38821c747faf90c5ffbbe">maingo::MAiNGOmodelEpsCon</a>
+, <a class="el" href="class_py_m_ai_n_g_omodel.html#aa21e4c1906ec1a7b299de5f30e43a182">PyMAiNGOmodel</a>
 </li>
 <li>get_wallclock_solution_time()
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ae1bfc496de0e05575a8f9ad290bd2b58">maingo::MAiNGO</a>
@@ -258,7 +254,7 @@ $(document).ready(function(){initNavTree('functions_func_g.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_func_h.html b/doc/html/functions_func_h.html
index 418e15c0add72f27a948b2b9df7d50fc3e9460fc..50f010e2f7475258891e9b43c67d349e9dce6ca2 100644
--- a/doc/html/functions_func_h.html
+++ b/doc/html/functions_func_h.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Functions</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -106,7 +106,7 @@ $(document).ready(function(){initNavTree('functions_func_h.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_func_i.html b/doc/html/functions_func_i.html
index 811f6fed7161799ca76b3fb080fe4d8b8f278a95..9109d47be6f74135b29aa743c3317393709982fc 100644
--- a/doc/html/functions_func_i.html
+++ b/doc/html/functions_func_i.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Functions</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -121,7 +121,7 @@ $(document).ready(function(){initNavTree('functions_func_i.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_func_k.html b/doc/html/functions_func_k.html
index 27350392b64259b570233f73f225eb7f4c374b92..d4deb98fd597ccf94091b58d72443ce2b2fc8ee0 100644
--- a/doc/html/functions_func_k.html
+++ b/doc/html/functions_func_k.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Functions</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,7 +90,7 @@ $(document).ready(function(){initNavTree('functions_func_k.html','');});
 
 <h3><a id="index_k"></a>- k -</h3><ul>
 <li>KnitroProblem()
-: <a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a01412351da813879180374f925289e14">maingo::ubp::KnitroProblem</a>
+: <a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html#af6bc2325caaf7ab6e70eb032669208e7">maingo::ubp::KnitroProblem</a>
 </li>
 </ul>
 </div><!-- contents -->
@@ -100,7 +100,7 @@ $(document).ready(function(){initNavTree('functions_func_k.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_func_l.html b/doc/html/functions_func_l.html
index 06147d9ed8d299f1607a92cd5ec702a2b2479135..274a9d81c2dd623b99d2a971dcad0f27d4f35e5f 100644
--- a/doc/html/functions_func_l.html
+++ b/doc/html/functions_func_l.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Functions</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -96,13 +96,13 @@ $(document).ready(function(){initNavTree('functions_func_l.html','');});
 : <a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a2cfbd58e1ce450b19c8329113b9654b6">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a>
 </li>
 <li>LbpClp()
-: <a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab7e8f8e062116c53497ed6884529a2a3">maingo::lbp::LbpClp</a>
+: <a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a9e39ab1a9b491aa0d71efbaf3467c19d">maingo::lbp::LbpClp</a>
 </li>
 <li>LbpCplex()
-: <a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ae9d2adeabbd07038fd8a27192548ebef">maingo::lbp::LbpCplex</a>
+: <a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ac3a9c29513f616834eb0cd0cddf08b0c">maingo::lbp::LbpCplex</a>
 </li>
 <li>LbpInterval()
-: <a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#ae0c855db98ba9a8c6e32500e1efcbbe7">maingo::lbp::LbpInterval</a>
+: <a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a42f6c355cd7752a138f96614bb401491">maingo::lbp::LbpInterval</a>
 </li>
 <li>le()
 : <a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a300c2a2c5eb7685e91ac7ae9228b66a1">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a>
@@ -117,7 +117,7 @@ $(document).ready(function(){initNavTree('functions_func_l.html','');});
 : <a class="el" href="classmaingo_1_1_logger.html#a4d8782e6212a58c9ba6bd8f2317669d9">maingo::Logger</a>
 </li>
 <li>LowerBoundingSolver()
-: <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a31416f2224eea283c3ae280ed3beb497">maingo::lbp::LowerBoundingSolver</a>
+: <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9680e92120bb8a0693095f965421d7d7">maingo::lbp::LowerBoundingSolver</a>
 </li>
 <li>lt()
 : <a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a151904b8ee5f3035d5cc4c819dd58d95">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a>
@@ -130,7 +130,7 @@ $(document).ready(function(){initNavTree('functions_func_l.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_func_m.html b/doc/html/functions_func_m.html
index 6c294faa7ff5f1a0ab5eef78720f70eb060de88f..ff6ab27bf80121dbf108ce809a1a2df83143f758 100644
--- a/doc/html/functions_func_m.html
+++ b/doc/html/functions_func_m.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Functions</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -96,7 +96,7 @@ $(document).ready(function(){initNavTree('functions_func_m.html','');});
 : <a class="el" href="classmaingo_1_1_maingo_evaluator.html#aba0042d5950c2d3af0e2a2b721bc5a93">maingo::MaingoEvaluator</a>
 </li>
 <li>MAiNGOException()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#afc29a64faad1be34d8b70205b3391910">maingo::MAiNGOException</a>
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a61855f24f971602b43e26c16b0593e4f">maingo::MAiNGOException</a>
 </li>
 <li>make_variables()
 : <a class="el" href="classmaingo_1_1_ale_model.html#aa779cdbfe41d12b35cf6b5fa7581782a">maingo::AleModel</a>
@@ -113,8 +113,8 @@ $(document).ready(function(){initNavTree('functions_func_m.html','');});
 <li>min()
 : <a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aef9780ca1ffdd1463312ecf3616fb1e4">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a>
 </li>
-<li>modelFunction()
-: <a class="el" href="structmaingo_1_1model_function.html#ac08320da20704d3bec91fb2540dfa12f">maingo::modelFunction</a>
+<li>ModelFunction()
+: <a class="el" href="structmaingo_1_1_model_function.html#a643e6d2e6cb1a5d78eae384361be9d72">maingo::ModelFunction</a>
 </li>
 <li>monom()
 : <a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#af4ef04f795e24dc93ee86751d647b889">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a>
@@ -130,7 +130,7 @@ $(document).ready(function(){initNavTree('functions_func_m.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_func_n.html b/doc/html/functions_func_n.html
index 3b95e12078c910b401ddf7704cb5bc27046e4709..b8774f3a4b102eeed431b5e7a58dad14f98bbeda 100644
--- a/doc/html/functions_func_n.html
+++ b/doc/html/functions_func_n.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Functions</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -121,7 +121,7 @@ $(document).ready(function(){initNavTree('functions_func_n.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_func_o.html b/doc/html/functions_func_o.html
index 5ff41320e65a1449b590409d4e306507f8545981..21f86d3133d42a8fef669f8cfcb7c0396820caac 100644
--- a/doc/html/functions_func_o.html
+++ b/doc/html/functions_func_o.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Functions</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -89,9 +89,6 @@ $(document).ready(function(){initNavTree('functions_func_o.html','');});
 &#160;
 
 <h3><a id="index_o"></a>- o -</h3><ul>
-<li>operator *=()
-: <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a0f9dba9a22cd1bad6d7920742a46785c">maingo::ubp::UbpQuadExpr</a>
-</li>
 <li>operator BabNode &amp;&amp;()
 : <a class="el" href="classbab_base_1_1_bab_node_with_info.html#aa21366a28ecacce7ee7cb231408f38b2">babBase::BabNodeWithInfo</a>
 </li>
@@ -99,36 +96,37 @@ $(document).ready(function(){initNavTree('functions_func_o.html','');});
 : <a class="el" href="classbab_base_1_1_bab_node_with_info.html#ab64329ad707a6b9914be851b784dba50">babBase::BabNodeWithInfo</a>
 </li>
 <li>operator T &amp;()
-: <a class="el" href="classbab_base_1_1_out_var.html#a7442f2a80f303c64467428a80f3cb8b9">babBase::OutVar&lt; T &gt;</a>
+: <a class="el" href="classbab_base_1_1_out_var.html#add7057afa563a0adeba7d7e77d717690">babBase::OutVar&lt; T &gt;</a>
 </li>
 <li>operator()()
 : <a class="el" href="structbab_base_1_1_node_priority_comparator.html#a046f2155e1e85bd556686c212ff44506">babBase::NodePriorityComparator</a>
 , <a class="el" href="structbab_base_1_1_pruning_score_comparator.html#a32adb58b8c8c680fbb87c9837ecf88c9">babBase::PruningScoreComparator</a>
-, <a class="el" href="classmaingo_1_1_maingo_evaluator.html#aebe214bf52d3d9054561dbd279ea630e">maingo::MaingoEvaluator</a>
-, <a class="el" href="classmaingo_1_1_variable_lister.html#af4841887f3cb320059cce7dcf1c1723e">maingo::VariableLister</a>
+, <a class="el" href="classmaingo_1_1_maingo_evaluator.html#a16353f72cbe6a6857f94eeb0a2a8ca2e">maingo::MaingoEvaluator</a>
+, <a class="el" href="classmaingo_1_1_variable_lister.html#a388010bf972557bb263e804184fd68d8">maingo::VariableLister</a>
+</li>
+<li>operator*=()
+: <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a24790536a92c354b15430c00b0258c40">maingo::ubp::UbpQuadExpr</a>
 </li>
 <li>operator+=()
 : <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a1cd55371cff5dac0174d8d37ceba6c5d">maingo::ubp::UbpQuadExpr</a>
 </li>
 <li>operator-=()
-: <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#aec88997480bed8057176853cfd2c7aaf">maingo::ubp::UbpQuadExpr</a>
+: <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a53ba87d0f920df7610866e1bcfe1ed5e">maingo::ubp::UbpQuadExpr</a>
 </li>
 <li>operator/=()
 : <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2a7ead5761ea56126a45479935588b06">maingo::ubp::UbpQuadExpr</a>
 </li>
 <li>operator=()
 : <a class="el" href="classbab_base_1_1_bab_tree.html#a9da3ce58d47965be2f5c5f04ad2871d9">babBase::BabTree</a>
-, <a class="el" href="structbab_base_1_1_bounds.html#a415e0920d82d09ffc5798edb59e89093">babBase::Bounds</a>
 , <a class="el" href="classbab_base_1_1_brancher.html#aa0aa0586d60d2e945161128325e4a462">babBase::Brancher</a>
-, <a class="el" href="classbab_base_1_1_optimization_variable.html#a51e6b16ace22f32f96a27af09358a695">babBase::OptimizationVariable</a>
 , <a class="el" href="classbab_base_1_1_out_var.html#aced8949099673a72ab3b436272f114e6">babBase::OutVar&lt; T &gt;</a>
 , <a class="el" href="structmaingo_1_1_constraint.html#a8dd2c5a8ca4f6978f6643b3212698852">maingo::Constraint</a>
 , <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7a7062b87f2074558f67c7cbbe397b58">maingo::lbp::LowerBoundingSolver</a>
 , <a class="el" href="classmaingo_1_1_logger.html#a82f7d5b5cb8e33d894f7e17e38d6dbcd">maingo::Logger</a>
 , <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a9d035ded892ca2fd6a0151f6ea761d54">maingo::MAiNGO</a>
-, <a class="el" href="structmaingo_1_1model_function.html#acfa12e44318f039d4dd7b62d6da21996">maingo::modelFunction</a>
-, <a class="el" href="structmaingo_1_1_output_variable.html#a1187fff45ba11b8a8c98a117000893a8">maingo::OutputVariable</a>
-, <a class="el" href="structmaingo_1_1_settings.html#a5e9afadd1d866d01c96a114686b32672">maingo::Settings</a>
+, <a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a781b7f59163bbc21dd5d3485f73f157a">maingo::MAiNGOException</a>
+, <a class="el" href="structmaingo_1_1_model_function.html#a2dad7f76d791717fc532cd4e1eab37b2">maingo::ModelFunction</a>
+, <a class="el" href="structmaingo_1_1_output_variable.html#ac513acc754eba158a496c3c4d2f4cc2b">maingo::OutputVariable</a>
 , <a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a0ab5a8e212575c185980cb7c6eed2ceb">maingo::ubp::IpoptProblem</a>
 , <a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a62c8ad5120c5b5f4ca0df3773364077a">maingo::ubp::KnitroProblem</a>
 , <a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a0f3faa3937a515be22cff1913eda1b06">maingo::ubp::UbpClp</a>
@@ -139,17 +137,21 @@ $(document).ready(function(){initNavTree('functions_func_o.html','');});
 , <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#acce2c14abe3accaee53ea03f84c19734">maingo::ubp::UbpQuadExpr</a>
 , <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#afa9dca36d7987121ddc0327e62dfdcf2">maingo::ubp::UpperBoundingSolver</a>
 </li>
+<li>operator==()
+: <a class="el" href="structmaingo_1_1_model_function.html#a2cd284c38a9f30f487ad0481fcfaa363">maingo::ModelFunction</a>
+, <a class="el" href="structmaingo_1_1_output_variable.html#a46108bea6aa824e9138db071db917035">maingo::OutputVariable</a>
+</li>
 <li>operator[]()
-: <a class="el" href="structmaingo_1_1model_function.html#a97f49921923957ca2170e5ab65959fbb">maingo::modelFunction</a>
+: <a class="el" href="structmaingo_1_1_model_function.html#a28a2c95923dee0d58ca16ba62b02e10a">maingo::ModelFunction</a>
 </li>
 <li>OptimizationVariable()
-: <a class="el" href="classbab_base_1_1_optimization_variable.html#a65c124f424b4d2dcf0916bdc19fb055f">babBase::OptimizationVariable</a>
+: <a class="el" href="classbab_base_1_1_optimization_variable.html#a0540b4fc9482daba6ed171e3fa50cccc">babBase::OptimizationVariable</a>
 </li>
 <li>OutputVariable()
-: <a class="el" href="structmaingo_1_1_output_variable.html#aa21e6b3349541ef65b14e8385e15c516">maingo::OutputVariable</a>
+: <a class="el" href="structmaingo_1_1_output_variable.html#af468c75f57d9d2debe8e3e3ecf8aa480">maingo::OutputVariable</a>
 </li>
 <li>OutVar()
-: <a class="el" href="classbab_base_1_1_out_var.html#a86b5336a40127a5a12fd4766986673b7">babBase::OutVar&lt; T &gt;</a>
+: <a class="el" href="classbab_base_1_1_out_var.html#a31ed18d3d1831c15ebc166a6135a217f">babBase::OutVar&lt; T &gt;</a>
 </li>
 </ul>
 </div><!-- contents -->
@@ -159,7 +161,7 @@ $(document).ready(function(){initNavTree('functions_func_o.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_func_p.html b/doc/html/functions_func_p.html
index dfec5d08f344d8cf634392f83d5d8ca151a614f3..f05d8dff577181ce5cf884948e38e2a9ed775034 100644
--- a/doc/html/functions_func_p.html
+++ b/doc/html/functions_func_p.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Functions</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -101,9 +101,6 @@ $(document).ready(function(){initNavTree('functions_func_p.html','');});
 <li>parse_definitions()
 : <a class="el" href="classmaingo_1_1_program_parser.html#a0e51ca5ae8eacb0f46dad2d6f044a4ae">maingo::ProgramParser</a>
 </li>
-<li>parse_maingo_to_other_language()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a4f888ef8f672e6ee7602951cd4b2c7a9">maingo::MAiNGO</a>
-</li>
 <li>parse_objective()
 : <a class="el" href="classmaingo_1_1_program_parser.html#ac3c4fcd63f8f1792a4e34a2fe3ddc5ab">maingo::ProgramParser</a>
 </li>
@@ -126,7 +123,7 @@ $(document).ready(function(){initNavTree('functions_func_p.html','');});
 : <a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ad92d43f2bfc5500822ae2f24ff426b6e">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a>
 </li>
 <li>pow()
-: <a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a246ae6c1ea943858ac55205e9cb26690">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a>
+: <a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a11c7c90a5cb3bb191af49d3e5c374eaf">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a>
 </li>
 <li>preprocessor_check_options()
 : <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a75d8c7d165cc917a455243f528ea23df">maingo::lbp::LowerBoundingSolver</a>
@@ -135,13 +132,13 @@ $(document).ready(function(){initNavTree('functions_func_p.html','');});
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a1a9fa4c0ae0a91178836350b5f5c22d3">maingo::MAiNGO</a>
 </li>
 <li>print_message()
-: <a class="el" href="classmaingo_1_1_logger.html#a85ebbae4b7d372e8ee4fc6df802d9621">maingo::Logger</a>
+: <a class="el" href="classmaingo_1_1_logger.html#afaa00650854698ce5bbde8fee9db7e0e">maingo::Logger</a>
 </li>
 <li>print_message_to_stream_only()
-: <a class="el" href="classmaingo_1_1_logger.html#a60d49f911f24c66da289da2dbccc35e2">maingo::Logger</a>
+: <a class="el" href="classmaingo_1_1_logger.html#a0df484648655184edbbd4bcb6531558f">maingo::Logger</a>
 </li>
 <li>print_settings()
-: <a class="el" href="classmaingo_1_1_logger.html#af4fdb40b8636eff018c56e45c293de7f">maingo::Logger</a>
+: <a class="el" href="classmaingo_1_1_logger.html#a1397947c86bde896214c7b77d4be6517">maingo::Logger</a>
 </li>
 <li>prod()
 : <a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a7c36b5f1e9e15a63b53482a96238dfde">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a>
@@ -150,7 +147,7 @@ $(document).ready(function(){initNavTree('functions_func_p.html','');});
 : <a class="el" href="classmaingo_1_1_program_parser.html#a63f53f3900dc996ca94137a017805f63">maingo::ProgramParser</a>
 </li>
 <li>push_back()
-: <a class="el" href="structmaingo_1_1model_function.html#a4acc3cdbd96f5b6b5b4e803ee1dbf369">maingo::modelFunction</a>
+: <a class="el" href="structmaingo_1_1_model_function.html#af1e48836d22ea8f0dcc46d8622800058">maingo::ModelFunction</a>
 </li>
 </ul>
 </div><!-- contents -->
@@ -160,7 +157,7 @@ $(document).ready(function(){initNavTree('functions_func_p.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_func_r.html b/doc/html/functions_func_r.html
index 575a6ef730cf7c3843bb357c30afa0499eb88a05..dafb572e832a84f589d6c8861c15e8461c6841ad 100644
--- a/doc/html/functions_func_r.html
+++ b/doc/html/functions_func_r.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Functions</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,7 +90,7 @@ $(document).ready(function(){initNavTree('functions_func_r.html','');});
 
 <h3><a id="index_r"></a>- r -</h3><ul>
 <li>read_settings()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a9d2cbee1f5ecf3321e2e5334e70757fe">maingo::MAiNGO</a>
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0728bb641f5f269763663ce89280bd4f">maingo::MAiNGO</a>
 </li>
 <li>recover_block()
 : <a class="el" href="classmaingo_1_1_program_parser.html#af10f0318985e4aee4fb7da75614daad8">maingo::ProgramParser</a>
@@ -105,7 +105,7 @@ $(document).ready(function(){initNavTree('functions_func_r.html','');});
 : <a class="el" href="classbab_base_1_1_bab_tree.html#a13e9545dba8eb0600f0f41b5a682081b">babBase::BabTree</a>
 </li>
 <li>resize()
-: <a class="el" href="structmaingo_1_1model_function.html#a3ccf2b6601e828e0fff4f27356d78f8a">maingo::modelFunction</a>
+: <a class="el" href="structmaingo_1_1_model_function.html#a925155d044f3f8e24cd55150bb668683">maingo::ModelFunction</a>
 </li>
 <li>rho_liq_sat_ethanol_schroeder()
 : <a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ac59db4469292d72c052f4da427a50f3d">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a>
@@ -124,7 +124,7 @@ $(document).ready(function(){initNavTree('functions_func_r.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_func_s.html b/doc/html/functions_func_s.html
index 79ad6f0f614863f1384bbb270b6b05ee6842907d..ffd9e4ee98a73482f30e18b7b827d476271df19c 100644
--- a/doc/html/functions_func_s.html
+++ b/doc/html/functions_func_s.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Functions</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -93,10 +93,10 @@ $(document).ready(function(){initNavTree('functions_func_s.html','');});
 : <a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a5426d1dd5c4adaf426119c168bee4e4e">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a>
 </li>
 <li>save_setting()
-: <a class="el" href="classmaingo_1_1_logger.html#ab14611926d783106de661c1c7221f5c3">maingo::Logger</a>
+: <a class="el" href="classmaingo_1_1_logger.html#a69e487a988a594016c12a7c919570f04">maingo::Logger</a>
 </li>
 <li>save_settings_file_name()
-: <a class="el" href="classmaingo_1_1_logger.html#accfbe2523be1fb7e14f30fd9b4c5031a">maingo::Logger</a>
+: <a class="el" href="classmaingo_1_1_logger.html#af1f4a383ab2f26319ae4da895d30aa2d">maingo::Logger</a>
 </li>
 <li>set_bounds_and_starting_point()
 : <a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#ad44bb659518b5e9d4a0362a477d46164">maingo::ubp::IpoptProblem</a>
@@ -104,20 +104,20 @@ $(document).ready(function(){initNavTree('functions_func_s.html','');});
 <li>set_branching_dimension_selection_strategy()
 : <a class="el" href="classbab_base_1_1_brancher.html#af9b60e80a40637b8aea84fab03cc665f">babBase::Brancher</a>
 </li>
-<li>set_csv_file_name()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a530c347d65ac74a1cf871e385ec18cc4">maingo::MAiNGO</a>
-</li>
 <li>set_epsilon()
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a5999eaab9bb4b9c7dba95ed6553da048">maingo::MAiNGOmodelEpsCon</a>
 </li>
 <li>set_holds_incumbent()
 : <a class="el" href="classbab_base_1_1_bab_node.html#a70530169b115d733df41aaafd449b23e">babBase::BabNode</a>
 </li>
+<li>set_iterations_csv_file_name()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#abe4f3a7b42c05c07e7962be17de02ed3">maingo::MAiNGO</a>
+</li>
 <li>set_json_file_name()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a755f6652395b3bad73976a26fa4243f9">maingo::MAiNGO</a>
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a3caca275897742b038011e6fd00b2bdc">maingo::MAiNGO</a>
 </li>
 <li>set_log_file_name()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ae99518c0b699295565d25c76b0187c58">maingo::MAiNGO</a>
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a450f5ac09e6afa9e34dc86b59359ae20">maingo::MAiNGO</a>
 </li>
 <li>set_lower_bound()
 : <a class="el" href="classbab_base_1_1_bab_node.html#a04b7b97d9b302cf99808e0301272d740">babBase::BabNode</a>
@@ -126,7 +126,7 @@ $(document).ready(function(){initNavTree('functions_func_s.html','');});
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a1fe4e8690548362eb1ec74fb052a424e">maingo::MAiNGO</a>
 </li>
 <li>set_name()
-: <a class="el" href="structmaingo_1_1model_function.html#ae27a8eb161619cea1e29a6df0d38c3d7">maingo::modelFunction</a>
+: <a class="el" href="structmaingo_1_1_model_function.html#a77f51cfc74b6f5dc0b1a8919b01f3333">maingo::ModelFunction</a>
 </li>
 <li>set_new_incumbent_point()
 : <a class="el" href="classbab_base_1_1_brancher.html#a657a3dc42d1a34b8a04e9e9d9c699ff6">babBase::Brancher</a>
@@ -145,11 +145,11 @@ $(document).ready(function(){initNavTree('functions_func_s.html','');});
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#aef1305b0d90fe52fdd99b6545cf77755">maingo::MAiNGOmodelEpsCon</a>
 </li>
 <li>set_option()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a383bc41aef21457041b6a79d0a376bed">maingo::MAiNGO</a>
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ae2bc7507ee0341d7b0a8ac06702ca964">maingo::MAiNGO</a>
 </li>
 <li>set_output_stream()
-: <a class="el" href="classmaingo_1_1_logger.html#ab4c18700b160cbe53b4e59069e7fcedd">maingo::Logger</a>
-, <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a66b60c8b60e9525e96e4d2dbb6398f88">maingo::MAiNGO</a>
+: <a class="el" href="classmaingo_1_1_logger.html#ae5cb965f581d2940eea1730a5e7a1f06">maingo::Logger</a>
+, <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a1a4ba608b818d6a2e303b836505e0234">maingo::MAiNGO</a>
 </li>
 <li>set_pruning_score()
 : <a class="el" href="classbab_base_1_1_bab_node.html#a747d334dcf93c85f9e2bd234b875486a">babBase::BabNode</a>
@@ -157,20 +157,20 @@ $(document).ready(function(){initNavTree('functions_func_s.html','');});
 <li>set_pruning_score_threshold()
 : <a class="el" href="classbab_base_1_1_bab_tree.html#a49521ddbee9e1d7e2a2b494d2ad5c4f5">babBase::BabTree</a>
 </li>
-<li>set_res_file_name()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ade7741b5e86018f3167c9f34622a2733">maingo::MAiNGO</a>
+<li>set_result_file_name()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a4dc94835e031b37290f96814486c2903">maingo::MAiNGO</a>
 </li>
 <li>set_single_objective()
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a20ba39ce81ad97f3c58e1fa78c0356af">maingo::MAiNGOmodelEpsCon</a>
 </li>
+<li>set_solution_and_statistics_csv_file_name()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0157c25ef59573826a916e301e836330">maingo::MAiNGO</a>
+</li>
 <li>set_upper_bound()
-: <a class="el" href="classbab_base_1_1_bab_node.html#a78cfcab15536723a4e2e0ee40c316167">babBase::BabNode</a>
+: <a class="el" href="classbab_base_1_1_bab_node.html#a2de1be347ecc66acf68ff816e2df0508">babBase::BabNode</a>
 </li>
 <li>set_value()
-: <a class="el" href="structmaingo_1_1model_function.html#ac7ccbc9aabfa39f93e01e706f74f649e">maingo::modelFunction</a>
-</li>
-<li>Settings()
-: <a class="el" href="structmaingo_1_1_settings.html#a74c2b2798213ed88903b13e8d9ca14e2">maingo::Settings</a>
+: <a class="el" href="structmaingo_1_1_model_function.html#a0af1f22b1bc87961451c52913567a4fd">maingo::ModelFunction</a>
 </li>
 <li>sin()
 : <a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#acf627d293021a04bb8ba547ad6349437">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a>
@@ -179,7 +179,7 @@ $(document).ready(function(){initNavTree('functions_func_s.html','');});
 : <a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a060be08bd96d38d7b7f64823fb843cff">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a>
 </li>
 <li>size()
-: <a class="el" href="structmaingo_1_1model_function.html#a6625f2f7e468b0d5b1590284826e355a">maingo::modelFunction</a>
+: <a class="el" href="structmaingo_1_1_model_function.html#a8c2f2e692410848475b8c5caffcf5e51">maingo::ModelFunction</a>
 </li>
 <li>solve()
 : <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#afbbe46b34b476fa5b54c5faa112581b6">maingo::bab::BranchAndBound</a>
@@ -215,7 +215,7 @@ $(document).ready(function(){initNavTree('functions_func_s.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_func_t.html b/doc/html/functions_func_t.html
index 2975b8d3187a557a381925f44324b7bf115688dd..ddaacb44a6f1e1523146497782dd396ba5bf75f2 100644
--- a/doc/html/functions_func_t.html
+++ b/doc/html/functions_func_t.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Functions</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -103,7 +103,7 @@ $(document).ready(function(){initNavTree('functions_func_t.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_func_u.html b/doc/html/functions_func_u.html
index 413d44e9da2074fa6055c7377ae8ce76774150dd..298777dfa60880babcf6574b24b36b37bcc33bb9 100644
--- a/doc/html/functions_func_u.html
+++ b/doc/html/functions_func_u.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Functions</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -99,16 +99,16 @@ $(document).ready(function(){initNavTree('functions_func_u.html','');});
 : <a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html#add6af506f65cb501373ca1c57e51b82c">maingo::ubp::UbpClp</a>
 </li>
 <li>UbpCplex()
-: <a class="el" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a151f2ced79870ee59b168cdcaaf34bff">maingo::ubp::UbpCplex</a>
+: <a class="el" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#aa7a3ededf743a2cde154b5c267cf26d6">maingo::ubp::UbpCplex</a>
 </li>
 <li>UbpIpopt()
 : <a class="el" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#a452dbba117fa1b3edd676f31c04258fe">maingo::ubp::UbpIpopt</a>
 </li>
 <li>UbpKnitro()
-: <a class="el" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#ac916b5455e5ae20c5d9dd9a4006d0482">maingo::ubp::UbpKnitro</a>
+: <a class="el" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a94a323841bca8d54129aa85fad4ce06c">maingo::ubp::UbpKnitro</a>
 </li>
 <li>UbpNLopt()
-: <a class="el" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a84e83af5033d99a79f1fd1d65f6b8b7f">maingo::ubp::UbpNLopt</a>
+: <a class="el" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#ae5c7ea9072ed95c5521916c756be3f0f">maingo::ubp::UbpNLopt</a>
 </li>
 <li>UbpQuadExpr()
 : <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a44586840f98d6fa9e24fa04e67b7fea4">maingo::ubp::UbpQuadExpr</a>
@@ -127,7 +127,7 @@ $(document).ready(function(){initNavTree('functions_func_u.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_func_v.html b/doc/html/functions_func_v.html
index cadfd5fefbbc71ae97806e218b1c3486ae24248d..05573ae33f59a3a27691d971062adb1ceffafa9d 100644
--- a/doc/html/functions_func_v.html
+++ b/doc/html/functions_func_v.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Functions</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -103,7 +103,7 @@ $(document).ready(function(){initNavTree('functions_func_v.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_func_w.html b/doc/html/functions_func_w.html
index c60d0f8db88b9012be08b73d5d99934b5e318166..b021f1a436e06fc8fe5d2550b2458e1f81e737e3 100644
--- a/doc/html/functions_func_w.html
+++ b/doc/html/functions_func_w.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Functions</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -91,13 +91,16 @@ $(document).ready(function(){initNavTree('functions_func_w.html','');});
 <h3><a id="index_w"></a>- w -</h3><ul>
 <li>what()
 : <a class="el" href="classbab_base_1_1_branch_and_bound_base_exception.html#a91e5a78198bf8ef94f140a9ac5978d05">babBase::BranchAndBoundBaseException</a>
-, <a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a382a9c1299485b028ea4a82afe5c1952">maingo::MAiNGOException</a>
+, <a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a07682a0877265a921df4401bb1dbb3f6">maingo::MAiNGOException</a>
 </li>
 <li>write_all_iterations_to_csv()
-: <a class="el" href="classmaingo_1_1_logger.html#aa557a6ff14dbd38ab4b251c56caa0f37">maingo::Logger</a>
+: <a class="el" href="classmaingo_1_1_logger.html#a17570df4a0a318ddf4e186a4fc66f476">maingo::Logger</a>
 </li>
 <li>write_all_lines_to_log()
-: <a class="el" href="classmaingo_1_1_logger.html#a99d59c1e627c16bfa155803f42cf28e7">maingo::Logger</a>
+: <a class="el" href="classmaingo_1_1_logger.html#a3134c2ef11ad7c45c3c8467421966021">maingo::Logger</a>
+</li>
+<li>write_model_to_file_in_other_language()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a8acf1fc912457043365faabd54861d50">maingo::MAiNGO</a>
 </li>
 </ul>
 </div><!-- contents -->
@@ -107,7 +110,7 @@ $(document).ready(function(){initNavTree('functions_func_w.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_func_x.html b/doc/html/functions_func_x.html
index cf97ba55574e8d4c245a0c5863a699b81e5cfb7d..9b6b03e6f237c43766bd26dade3fb07367d2600f 100644
--- a/doc/html/functions_func_x.html
+++ b/doc/html/functions_func_x.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Functions</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -106,7 +106,7 @@ $(document).ready(function(){initNavTree('functions_func_x.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_func_z.html b/doc/html/functions_func_z.html
index 27a4ae63b4ad7490750d4635747c1d4f5ce52466..8d5127636c2692d58b6c554d4071104e517a23c0 100644
--- a/doc/html/functions_func_z.html
+++ b/doc/html/functions_func_z.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Functions</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -100,7 +100,7 @@ $(document).ready(function(){initNavTree('functions_func_z.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_g.html b/doc/html/functions_g.html
index 6c2ea446db1207c2a479f71008939481e921e88c..b9b602fd59fa5a2bce7d72523e488b07c64ef046 100644
--- a/doc/html/functions_g.html
+++ b/doc/html/functions_g.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -98,12 +98,6 @@ $(document).ready(function(){initNavTree('functions_g.html','');});
 <li>get()
 : <a class="el" href="classbab_base_1_1_out_var.html#aa2878f955a6fca58b597161aff4964a8">babBase::OutVar&lt; T &gt;</a>
 </li>
-<li>get_additional_outputs_at_point()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a52df8cc85640aaee13afb5cd5748dbcc">maingo::MAiNGO</a>
-</li>
-<li>get_additional_outputs_at_solution_point()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#afd0f8acfe45a05c077810ef75b8d71dd">maingo::MAiNGO</a>
-</li>
 <li>get_all_nodes_from_strong_branching()
 : <a class="el" href="classbab_base_1_1_brancher.html#a2fa6eaac5e68dfde2de07ad72e74c906">babBase::Brancher</a>
 </li>
@@ -142,6 +136,7 @@ $(document).ready(function(){initNavTree('functions_g.html','');});
 : <a class="el" href="classmaingo_1_1_ale_model.html#ad16d625c2b0ab88cdf8c200680477510">maingo::AleModel</a>
 , <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html#a929215d08a5412b014d39fcda6e5d62a">maingo::MAiNGOmodel</a>
 , <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#af97462f303e12760d3bff115983515d4">maingo::MAiNGOmodelEpsCon</a>
+, <a class="el" href="class_py_m_ai_n_g_omodel.html#adf3fcc040878469f11236e47066fc923">PyMAiNGOmodel</a>
 </li>
 <li>get_iterations()
 : <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a90cf43573f5755481bdd020dcaa7d351">maingo::bab::BranchAndBound</a>
@@ -168,12 +163,6 @@ $(document).ready(function(){initNavTree('functions_g.html','');});
 <li>get_mid()
 : <a class="el" href="classbab_base_1_1_optimization_variable.html#aa62b8c28d96fbcb03b8890081fb31cde">babBase::OptimizationVariable</a>
 </li>
-<li>get_model_at_point()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#abd17e0e2d436da88f15738e8e0218ac8">maingo::MAiNGO</a>
-</li>
-<li>get_model_at_solution_point()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a50df488dd7b110d7e4ebc137a8949696">maingo::MAiNGO</a>
-</li>
 <li>get_name()
 : <a class="el" href="classbab_base_1_1_optimization_variable.html#a4b419fcf5d8b88a6d48f3f8beec1c509">babBase::OptimizationVariable</a>
 </li>
@@ -233,6 +222,12 @@ $(document).ready(function(){initNavTree('functions_g.html','');});
 <li>get_upper_bounds()
 : <a class="el" href="classbab_base_1_1_bab_node.html#a2a0922468fbfe492d9d70231c54c4bf9">babBase::BabNode</a>
 </li>
+<li>get_user_lower_bound()
+: <a class="el" href="classbab_base_1_1_optimization_variable.html#a74e9435f5bcfa900c9304ceda8f05be5">babBase::OptimizationVariable</a>
+</li>
+<li>get_user_upper_bound()
+: <a class="el" href="classbab_base_1_1_optimization_variable.html#adf64e2c7687fce1a063b7a4a46a2e212">babBase::OptimizationVariable</a>
+</li>
 <li>get_valid_id()
 : <a class="el" href="classbab_base_1_1_bab_tree.html#a931d3afc91a3c6011e9921cbfe09d0a2">babBase::BabTree</a>
 </li>
@@ -243,6 +238,7 @@ $(document).ready(function(){initNavTree('functions_g.html','');});
 : <a class="el" href="classmaingo_1_1_ale_model.html#a9d29639440ec6fae90238a0a6d32ab53">maingo::AleModel</a>
 , <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html#a9faead087bd24822a0d249e257b4df8d">maingo::MAiNGOmodel</a>
 , <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a5829ce6c25e38821c747faf90c5ffbbe">maingo::MAiNGOmodelEpsCon</a>
+, <a class="el" href="class_py_m_ai_n_g_omodel.html#aa21e4c1906ec1a7b299de5f30e43a182">PyMAiNGOmodel</a>
 </li>
 <li>get_wallclock_solution_time()
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ae1bfc496de0e05575a8f9ad290bd2b58">maingo::MAiNGO</a>
@@ -258,7 +254,7 @@ $(document).ready(function(){initNavTree('functions_g.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_h.html b/doc/html/functions_h.html
index 484f372613da5298176b5a3938f97600b64ffded..33b9f95f3d2258667cc9e9173e8671cb2cd8afb1 100644
--- a/doc/html/functions_h.html
+++ b/doc/html/functions_h.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -109,7 +109,7 @@ $(document).ready(function(){initNavTree('functions_h.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_i.html b/doc/html/functions_i.html
index 303a9fde1117f4b1649ea09caadad42810b891fd..39769683ab26aa03d02230a3624561e36b018680 100644
--- a/doc/html/functions_i.html
+++ b/doc/html/functions_i.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -127,13 +127,13 @@ $(document).ready(function(){initNavTree('functions_i.html','');});
 </li>
 <li>ineq
 : <a class="el" href="structmaingo_1_1_constraint_container.html#ac1b8182544f5f0fe5357d748b690dab2">maingo::ConstraintContainer</a>
-, <a class="el" href="structmaingo_1_1_evaluation_container.html#a6871b7430185e5c4152b941720b606f3">maingo::EvaluationContainer</a>
+, <a class="el" href="structmaingo_1_1_evaluation_container.html#af3256dbd0be5bea52c3a994da7082ea4">maingo::EvaluationContainer</a>
 </li>
 <li>ineqRelaxationOnly
-: <a class="el" href="structmaingo_1_1_evaluation_container.html#af754c93b79ce6fa668c17d2fd26c812b">maingo::EvaluationContainer</a>
+: <a class="el" href="structmaingo_1_1_evaluation_container.html#acf712256b2506b6388af16e648a04fae">maingo::EvaluationContainer</a>
 </li>
 <li>ineqSquash
-: <a class="el" href="structmaingo_1_1_evaluation_container.html#aa40bfc61f94bf6850d3ee53db7e2afeb">maingo::EvaluationContainer</a>
+: <a class="el" href="structmaingo_1_1_evaluation_container.html#af9572d873db6d0ebd0402cbc3539e8ee">maingo::EvaluationContainer</a>
 </li>
 <li>infinity
 : <a class="el" href="structmaingo_1_1_settings.html#a998dbf62d78386f5c7161b82ed37acbe">maingo::Settings</a>
@@ -179,7 +179,7 @@ $(document).ready(function(){initNavTree('functions_i.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_j.html b/doc/html/functions_j.html
index d3f8575c9b9f08fd52f3a8769d381a2b1878b555..b4ab12ce74cf0550f8ffa255a536666bda529448 100644
--- a/doc/html/functions_j.html
+++ b/doc/html/functions_j.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -92,9 +92,6 @@ $(document).ready(function(){initNavTree('functions_j.html','');});
 <li>jacProperties
 : <a class="el" href="structmaingo_1_1ubp_1_1_ubp_structure.html#af049943a023a5d094c469fb65aa9a3c5">maingo::ubp::UbpStructure</a>
 </li>
-<li>jsonFileName
-: <a class="el" href="classmaingo_1_1_logger.html#a55590e7a2d77ea9fd85512b17f02bffa">maingo::Logger</a>
-</li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -103,7 +100,7 @@ $(document).ready(function(){initNavTree('functions_j.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_k.html b/doc/html/functions_k.html
index 51c29f437b7fc4f55e4f92bc8bfb3f915d2b8eb7..2e12be23e9119f12b4c4a133498b7e4c1d0e2221 100644
--- a/doc/html/functions_k.html
+++ b/doc/html/functions_k.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,7 +90,7 @@ $(document).ready(function(){initNavTree('functions_k.html','');});
 
 <h3><a id="index_k"></a>- k -</h3><ul>
 <li>KnitroProblem()
-: <a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a01412351da813879180374f925289e14">maingo::ubp::KnitroProblem</a>
+: <a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html#af6bc2325caaf7ab6e70eb032669208e7">maingo::ubp::KnitroProblem</a>
 </li>
 </ul>
 </div><!-- contents -->
@@ -100,7 +100,7 @@ $(document).ready(function(){initNavTree('functions_k.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_l.html b/doc/html/functions_l.html
index 8c73a0df6565fba7f4c3b809a973de000aabb968..4c3343c65f2fff45051cc875e020fa863fac2dec 100644
--- a/doc/html/functions_l.html
+++ b/doc/html/functions_l.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -126,13 +126,13 @@ $(document).ready(function(){initNavTree('functions_l.html','');});
 : <a class="el" href="structmaingo_1_1_settings.html#a3bca851ad2486ec398bf0cff511fb805">maingo::Settings</a>
 </li>
 <li>LbpClp()
-: <a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab7e8f8e062116c53497ed6884529a2a3">maingo::lbp::LbpClp</a>
+: <a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a9e39ab1a9b491aa0d71efbaf3467c19d">maingo::lbp::LbpClp</a>
 </li>
 <li>LbpCplex()
-: <a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ae9d2adeabbd07038fd8a27192548ebef">maingo::lbp::LbpCplex</a>
+: <a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ac3a9c29513f616834eb0cd0cddf08b0c">maingo::lbp::LbpCplex</a>
 </li>
 <li>LbpInterval()
-: <a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#ae0c855db98ba9a8c6e32500e1efcbbe7">maingo::lbp::LbpInterval</a>
+: <a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a42f6c355cd7752a138f96614bb401491">maingo::lbp::LbpInterval</a>
 </li>
 <li>le()
 : <a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a300c2a2c5eb7685e91ac7ae9228b66a1">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a>
@@ -172,16 +172,16 @@ $(document).ready(function(){initNavTree('functions_l.html','');});
 , <a class="el" href="classmaingo_1_1_logger.html#a70f564ada7c6d7167bfc908096476996">maingo::Logger</a>
 </li>
 <li>Logger()
-: <a class="el" href="classmaingo_1_1_logger.html#ae677d6c6ce87b2484d82a493ac649ec3">maingo::Logger</a>
+: <a class="el" href="classmaingo_1_1_logger.html#a4d8782e6212a58c9ba6bd8f2317669d9">maingo::Logger</a>
 </li>
 <li>logger
-: <a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a61dda650b1a25155e541c4607fb7b82c">maingo::ubp::DagObj</a>
+: <a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a6e462e78027d46af3239c0463b7c9249">maingo::ubp::DagObj</a>
 </li>
-<li>lower
-: <a class="el" href="structbab_base_1_1_bounds.html#a41752124aaf238c73255f1941c861ce8">babBase::Bounds</a>
+<li>loggingDestination
+: <a class="el" href="structmaingo_1_1_settings.html#ad665aeee888f2746d7892ffc66bd5340">maingo::Settings</a>
 </li>
-<li>lowerBoundChanged
-: <a class="el" href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#a4ecf97573227d863a88a44747125aeb0">babBase::OptimizationVariable::ChangedBounds</a>
+<li>lower
+: <a class="el" href="structbab_base_1_1_bounds.html#ac371c3147b5737af08e1c03daf413c05">babBase::Bounds</a>
 </li>
 <li>LowerBoundingSolver()
 : <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae097029abb950c0838bab24ef4bc360f">maingo::lbp::LowerBoundingSolver</a>
@@ -200,7 +200,7 @@ $(document).ready(function(){initNavTree('functions_l.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_m.html b/doc/html/functions_m.html
index fb0e57d82fe302850d2644d05be622f6df74f3d3..d02c56c96465f61251eb0eed6f7be6eb72c117f8 100644
--- a/doc/html/functions_m.html
+++ b/doc/html/functions_m.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -96,10 +96,10 @@ $(document).ready(function(){initNavTree('functions_m.html','');});
 : <a class="el" href="classmaingo_1_1_maingo_evaluator.html#aba0042d5950c2d3af0e2a2b721bc5a93">maingo::MaingoEvaluator</a>
 </li>
 <li>MAiNGOException()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#afc29a64faad1be34d8b70205b3391910">maingo::MAiNGOException</a>
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a61855f24f971602b43e26c16b0593e4f">maingo::MAiNGOException</a>
 </li>
 <li>maingoSettings
-: <a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a4a939be99d5fff95ef5bd169d46fe205">maingo::ubp::DagObj</a>
+: <a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a8bebd0e09ae8e79b0826bb93cba34ffa">maingo::ubp::DagObj</a>
 </li>
 <li>make_variables()
 : <a class="el" href="classmaingo_1_1_ale_model.html#aa779cdbfe41d12b35cf6b5fa7581782a">maingo::AleModel</a>
@@ -138,10 +138,13 @@ $(document).ready(function(){initNavTree('functions_m.html','');});
 : <a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aef9780ca1ffdd1463312ecf3616fb1e4">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a>
 </li>
 <li>mObjective
-: <a class="el" href="structmaingo_1_1_program.html#a91830e99c06a7bd5c40a95a4038bae7b">maingo::Program</a>
+: <a class="el" href="structmaingo_1_1_program.html#ac8bcb8f9940fb42b8818612b837a3cc3">maingo::Program</a>
 </li>
-<li>modelFunction()
-: <a class="el" href="structmaingo_1_1model_function.html#a6c599ca9d697a04a892ec228b88b7b02">maingo::modelFunction</a>
+<li>ModelFunction()
+: <a class="el" href="structmaingo_1_1_model_function.html#a51752162c6f7c51938623341c9d92f50">maingo::ModelFunction</a>
+</li>
+<li>modelWritingLanguage
+: <a class="el" href="structmaingo_1_1_settings.html#a5d637f32b3496797a5a327fba9b2589a">maingo::Settings</a>
 </li>
 <li>monom()
 : <a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#af4ef04f795e24dc93ee86751d647b889">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a>
@@ -172,7 +175,7 @@ $(document).ready(function(){initNavTree('functions_m.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_n.html b/doc/html/functions_n.html
index bc9d07404ac34bb12a93350851d2c0c3854d0823..55089a5b47ebc0c30ba197aab3d7ccee50999541 100644
--- a/doc/html/functions_n.html
+++ b/doc/html/functions_n.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -91,7 +91,7 @@ $(document).ready(function(){initNavTree('functions_n.html','');});
 <h3><a id="index_n"></a>- n -</h3><ul>
 <li>name
 : <a class="el" href="structmaingo_1_1_constraint.html#a1965d26e79a4537ff38947721b4761a3">maingo::Constraint</a>
-, <a class="el" href="structmaingo_1_1model_function.html#a602058ed28dc600017e666b82faf43b6">maingo::modelFunction</a>
+, <a class="el" href="structmaingo_1_1_model_function.html#acb85f5084123b7d4d42c2d0e03b3e7c6">maingo::ModelFunction</a>
 </li>
 <li>ne()
 : <a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a28f4df31ca38d0899de9c5688ad20599">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a>
@@ -158,7 +158,7 @@ $(document).ready(function(){initNavTree('functions_n.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_o.html b/doc/html/functions_o.html
index 612226d35af553c1bc732ca8c1bdd0fd64ff0598..e4ac051598b7c08d4204bcbccabfcb33e056de8c 100644
--- a/doc/html/functions_o.html
+++ b/doc/html/functions_o.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,14 +90,11 @@ $(document).ready(function(){initNavTree('functions_o.html','');});
 
 <h3><a id="index_o"></a>- o -</h3><ul>
 <li>objective
-: <a class="el" href="structmaingo_1_1_evaluation_container.html#af0c40f10ae5192b4bb6478138c6ad1a0">maingo::EvaluationContainer</a>
+: <a class="el" href="structmaingo_1_1_evaluation_container.html#ac13bde03d078f5c9402cce551a161024">maingo::EvaluationContainer</a>
 </li>
 <li>objRowFilled
 : <a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#aafb406768277c0b3935a707000b0e2a5">maingo::lbp::DagObj</a>
 </li>
-<li>operator *=()
-: <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a192f82e999323888394268882f22e3f1">maingo::ubp::UbpQuadExpr</a>
-</li>
 <li>operator BabNode &amp;&amp;()
 : <a class="el" href="classbab_base_1_1_bab_node_with_info.html#aa21366a28ecacce7ee7cb231408f38b2">babBase::BabNodeWithInfo</a>
 </li>
@@ -105,13 +102,16 @@ $(document).ready(function(){initNavTree('functions_o.html','');});
 : <a class="el" href="classbab_base_1_1_bab_node_with_info.html#ab64329ad707a6b9914be851b784dba50">babBase::BabNodeWithInfo</a>
 </li>
 <li>operator T &amp;()
-: <a class="el" href="classbab_base_1_1_out_var.html#a7442f2a80f303c64467428a80f3cb8b9">babBase::OutVar&lt; T &gt;</a>
+: <a class="el" href="classbab_base_1_1_out_var.html#add7057afa563a0adeba7d7e77d717690">babBase::OutVar&lt; T &gt;</a>
 </li>
 <li>operator()()
 : <a class="el" href="structbab_base_1_1_node_priority_comparator.html#a046f2155e1e85bd556686c212ff44506">babBase::NodePriorityComparator</a>
 , <a class="el" href="structbab_base_1_1_pruning_score_comparator.html#a32adb58b8c8c680fbb87c9837ecf88c9">babBase::PruningScoreComparator</a>
-, <a class="el" href="classmaingo_1_1_maingo_evaluator.html#a313d06a1b681bda32d1baaf73b4c1ae0">maingo::MaingoEvaluator</a>
-, <a class="el" href="classmaingo_1_1_variable_lister.html#a388010bf972557bb263e804184fd68d8">maingo::VariableLister</a>
+, <a class="el" href="classmaingo_1_1_maingo_evaluator.html#a1eb1cdd102a6fdbefefa99006bb14d98">maingo::MaingoEvaluator</a>
+, <a class="el" href="classmaingo_1_1_variable_lister.html#a936ec1aaa564849fe32e22833c8d5fc0">maingo::VariableLister</a>
+</li>
+<li>operator*=()
+: <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a791a3261856056f2303dd574eb3f6dd3">maingo::ubp::UbpQuadExpr</a>
 </li>
 <li>operator+=()
 : <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a1cd55371cff5dac0174d8d37ceba6c5d">maingo::ubp::UbpQuadExpr</a>
@@ -124,22 +124,19 @@ $(document).ready(function(){initNavTree('functions_o.html','');});
 </li>
 <li>operator&lt;&lt;
 : <a class="el" href="classbab_base_1_1_bab_node.html#a0af68006f01d42b3f593fe2a6709f407">babBase::BabNode</a>
-, <a class="el" href="structbab_base_1_1_bounds.html#a674305fe2e7e8b2f777cb32a1b9c28f7">babBase::Bounds</a>
-, <a class="el" href="classbab_base_1_1_optimization_variable.html#aeb17c4ac5c23141e9acc87c5b1453605">babBase::OptimizationVariable</a>
+, <a class="el" href="classbab_base_1_1_optimization_variable.html#a14ab145b3997ff567e535665c30d5138">babBase::OptimizationVariable</a>
 </li>
 <li>operator=()
 : <a class="el" href="classbab_base_1_1_bab_tree.html#a9da3ce58d47965be2f5c5f04ad2871d9">babBase::BabTree</a>
-, <a class="el" href="structbab_base_1_1_bounds.html#a415e0920d82d09ffc5798edb59e89093">babBase::Bounds</a>
 , <a class="el" href="classbab_base_1_1_brancher.html#aa0aa0586d60d2e945161128325e4a462">babBase::Brancher</a>
-, <a class="el" href="classbab_base_1_1_optimization_variable.html#a51e6b16ace22f32f96a27af09358a695">babBase::OptimizationVariable</a>
 , <a class="el" href="classbab_base_1_1_out_var.html#aced8949099673a72ab3b436272f114e6">babBase::OutVar&lt; T &gt;</a>
 , <a class="el" href="structmaingo_1_1_constraint.html#a8dd2c5a8ca4f6978f6643b3212698852">maingo::Constraint</a>
 , <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7a7062b87f2074558f67c7cbbe397b58">maingo::lbp::LowerBoundingSolver</a>
 , <a class="el" href="classmaingo_1_1_logger.html#a82f7d5b5cb8e33d894f7e17e38d6dbcd">maingo::Logger</a>
 , <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a9d035ded892ca2fd6a0151f6ea761d54">maingo::MAiNGO</a>
-, <a class="el" href="structmaingo_1_1model_function.html#acfa12e44318f039d4dd7b62d6da21996">maingo::modelFunction</a>
-, <a class="el" href="structmaingo_1_1_output_variable.html#a1187fff45ba11b8a8c98a117000893a8">maingo::OutputVariable</a>
-, <a class="el" href="structmaingo_1_1_settings.html#a5e9afadd1d866d01c96a114686b32672">maingo::Settings</a>
+, <a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a781b7f59163bbc21dd5d3485f73f157a">maingo::MAiNGOException</a>
+, <a class="el" href="structmaingo_1_1_model_function.html#a1575a658d24ba107ff73f583e7c4eaca">maingo::ModelFunction</a>
+, <a class="el" href="structmaingo_1_1_output_variable.html#ab80383105b9791c367311daf64618890">maingo::OutputVariable</a>
 , <a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a0ab5a8e212575c185980cb7c6eed2ceb">maingo::ubp::IpoptProblem</a>
 , <a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a62c8ad5120c5b5f4ca0df3773364077a">maingo::ubp::KnitroProblem</a>
 , <a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a0f3faa3937a515be22cff1913eda1b06">maingo::ubp::UbpClp</a>
@@ -147,26 +144,27 @@ $(document).ready(function(){initNavTree('functions_o.html','');});
 , <a class="el" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#ad12c30c11fb6ef915670ffd51bf5f860">maingo::ubp::UbpIpopt</a>
 , <a class="el" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#ad05c1f048da57b4af99fd5cd8b7c2cdb">maingo::ubp::UbpKnitro</a>
 , <a class="el" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#ac2fe06860e2c920acf0b7f8304a99d54">maingo::ubp::UbpNLopt</a>
-, <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af72e66c0a04b6fa8d25d89351473abe4">maingo::ubp::UbpQuadExpr</a>
+, <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#acce2c14abe3accaee53ea03f84c19734">maingo::ubp::UbpQuadExpr</a>
 , <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#afa9dca36d7987121ddc0327e62dfdcf2">maingo::ubp::UpperBoundingSolver</a>
 </li>
+<li>operator==()
+: <a class="el" href="structmaingo_1_1_model_function.html#a2cd284c38a9f30f487ad0481fcfaa363">maingo::ModelFunction</a>
+, <a class="el" href="structmaingo_1_1_output_variable.html#a46108bea6aa824e9138db071db917035">maingo::OutputVariable</a>
+</li>
 <li>operator[]()
-: <a class="el" href="structmaingo_1_1model_function.html#a97f49921923957ca2170e5ab65959fbb">maingo::modelFunction</a>
+: <a class="el" href="structmaingo_1_1_model_function.html#a28a2c95923dee0d58ca16ba62b02e10a">maingo::ModelFunction</a>
 </li>
 <li>OptimizationVariable()
-: <a class="el" href="classbab_base_1_1_optimization_variable.html#a70eb28c9c674d0bd7340266b04f23f1d">babBase::OptimizationVariable</a>
+: <a class="el" href="classbab_base_1_1_optimization_variable.html#af172ca283de8b5159d998a5fe24ad697">babBase::OptimizationVariable</a>
 </li>
 <li>output
 : <a class="el" href="structmaingo_1_1_evaluation_container.html#a86a57d19de362bd56b022103b14bd793">maingo::EvaluationContainer</a>
 </li>
 <li>OutputVariable()
-: <a class="el" href="structmaingo_1_1_output_variable.html#a5444c9dfb8eb89b4a2ddd679ff819322">maingo::OutputVariable</a>
-</li>
-<li>outstreamVerbosity
-: <a class="el" href="structmaingo_1_1_settings.html#a63963398865197f332049e6a247bcb35">maingo::Settings</a>
+: <a class="el" href="structmaingo_1_1_output_variable.html#a9d13cfce0e3a1142c7f14d5b84d58028">maingo::OutputVariable</a>
 </li>
 <li>OutVar()
-: <a class="el" href="classbab_base_1_1_out_var.html#a81e7174faa0d0aa69a9e17fea6158a4a">babBase::OutVar&lt; T &gt;</a>
+: <a class="el" href="classbab_base_1_1_out_var.html#a31ed18d3d1831c15ebc166a6135a217f">babBase::OutVar&lt; T &gt;</a>
 </li>
 </ul>
 </div><!-- contents -->
@@ -176,7 +174,7 @@ $(document).ready(function(){initNavTree('functions_o.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_p.html b/doc/html/functions_p.html
index 562b613f787c394cd37944258f0614901465b484..3ad4543de55c9ae549b26570c94a035c1501713f 100644
--- a/doc/html/functions_p.html
+++ b/doc/html/functions_p.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -107,9 +107,6 @@ $(document).ready(function(){initNavTree('functions_p.html','');});
 <li>parse_definitions()
 : <a class="el" href="classmaingo_1_1_program_parser.html#a0e51ca5ae8eacb0f46dad2d6f044a4ae">maingo::ProgramParser</a>
 </li>
-<li>parse_maingo_to_other_language()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a4f888ef8f672e6ee7602951cd4b2c7a9">maingo::MAiNGO</a>
-</li>
 <li>parse_objective()
 : <a class="el" href="classmaingo_1_1_program_parser.html#ac3c4fcd63f8f1792a4e34a2fe3ddc5ab">maingo::ProgramParser</a>
 </li>
@@ -135,7 +132,7 @@ $(document).ready(function(){initNavTree('functions_p.html','');});
 : <a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ad92d43f2bfc5500822ae2f24ff426b6e">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a>
 </li>
 <li>pow()
-: <a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a1f2039b54ef15f2e194f90d97047dbf8">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a>
+: <a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a195d98248e0ba84680048c2611e60004">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a>
 </li>
 <li>PRE_maxLocalSearches
 : <a class="el" href="structmaingo_1_1_settings.html#a3003863167eab673fbeae391bfeb802b">maingo::Settings</a>
@@ -156,13 +153,13 @@ $(document).ready(function(){initNavTree('functions_p.html','');});
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a1a9fa4c0ae0a91178836350b5f5c22d3">maingo::MAiNGO</a>
 </li>
 <li>print_message()
-: <a class="el" href="classmaingo_1_1_logger.html#a85ebbae4b7d372e8ee4fc6df802d9621">maingo::Logger</a>
+: <a class="el" href="classmaingo_1_1_logger.html#afaa00650854698ce5bbde8fee9db7e0e">maingo::Logger</a>
 </li>
 <li>print_message_to_stream_only()
-: <a class="el" href="classmaingo_1_1_logger.html#a60d49f911f24c66da289da2dbccc35e2">maingo::Logger</a>
+: <a class="el" href="classmaingo_1_1_logger.html#a0df484648655184edbbd4bcb6531558f">maingo::Logger</a>
 </li>
 <li>print_settings()
-: <a class="el" href="classmaingo_1_1_logger.html#af4fdb40b8636eff018c56e45c293de7f">maingo::Logger</a>
+: <a class="el" href="classmaingo_1_1_logger.html#a1397947c86bde896214c7b77d4be6517">maingo::Logger</a>
 </li>
 <li>prod()
 : <a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a7c36b5f1e9e15a63b53482a96238dfde">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a>
@@ -171,7 +168,7 @@ $(document).ready(function(){initNavTree('functions_p.html','');});
 : <a class="el" href="classmaingo_1_1_program_parser.html#a63f53f3900dc996ca94137a017805f63">maingo::ProgramParser</a>
 </li>
 <li>push_back()
-: <a class="el" href="structmaingo_1_1model_function.html#ab7c7f3001efc0df4c1fca1dba56dcf45">maingo::modelFunction</a>
+: <a class="el" href="structmaingo_1_1_model_function.html#af1e48836d22ea8f0dcc46d8622800058">maingo::ModelFunction</a>
 </li>
 </ul>
 </div><!-- contents -->
@@ -181,7 +178,7 @@ $(document).ready(function(){initNavTree('functions_p.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_q.html b/doc/html/functions_q.html
index 0edc1f65e36ff94be414520b1dec6cf339669d90..333b2ab1e85b686652df441ee823b68312f66b83 100644
--- a/doc/html/functions_q.html
+++ b/doc/html/functions_q.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -100,7 +100,7 @@ $(document).ready(function(){initNavTree('functions_q.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_r.html b/doc/html/functions_r.html
index 8605615d2a7649c571936e369642e781f7002a14..bd2a3683702e1afd31d4314bfb43acbbe00c1e5a 100644
--- a/doc/html/functions_r.html
+++ b/doc/html/functions_r.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -94,7 +94,7 @@ $(document).ready(function(){initNavTree('functions_r.html','');});
 , <a class="el" href="classmaingo_1_1_logger.html#ae51c685a73d7e4e84c5eb69a1c720829">maingo::Logger</a>
 </li>
 <li>read_settings()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a9d2cbee1f5ecf3321e2e5334e70757fe">maingo::MAiNGO</a>
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0728bb641f5f269763663ce89280bd4f">maingo::MAiNGO</a>
 </li>
 <li>recover_block()
 : <a class="el" href="classmaingo_1_1_program_parser.html#af10f0318985e4aee4fb7da75614daad8">maingo::ProgramParser</a>
@@ -117,11 +117,8 @@ $(document).ready(function(){initNavTree('functions_r.html','');});
 <li>remove_has_incumbent_from_all_nodes()
 : <a class="el" href="classbab_base_1_1_bab_tree.html#a13e9545dba8eb0600f0f41b5a682081b">babBase::BabTree</a>
 </li>
-<li>resFileName
-: <a class="el" href="classmaingo_1_1_logger.html#a09a06a9baaf4765d8af2d9baea602962">maingo::Logger</a>
-</li>
 <li>resize()
-: <a class="el" href="structmaingo_1_1model_function.html#a3ccf2b6601e828e0fff4f27356d78f8a">maingo::modelFunction</a>
+: <a class="el" href="structmaingo_1_1_model_function.html#a925155d044f3f8e24cd55150bb668683">maingo::ModelFunction</a>
 </li>
 <li>resultAD
 : <a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#adf62f216e68f2545bff7ca8c2380de9d">maingo::ubp::DagObj</a>
@@ -201,7 +198,7 @@ $(document).ready(function(){initNavTree('functions_r.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_rela.html b/doc/html/functions_rela.html
index 10325ee3b5145aabca13c7362978341d854c4475..a55dae0165692215ffb27ef8dcb6c0c814f23d1f 100644
--- a/doc/html/functions_rela.html
+++ b/doc/html/functions_rela.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Related Functions</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -89,8 +89,7 @@ $(document).ready(function(){initNavTree('functions_rela.html','');});
 &#160;<ul>
 <li>operator&lt;&lt;
 : <a class="el" href="classbab_base_1_1_bab_node.html#a0af68006f01d42b3f593fe2a6709f407">babBase::BabNode</a>
-, <a class="el" href="structbab_base_1_1_bounds.html#a674305fe2e7e8b2f777cb32a1b9c28f7">babBase::Bounds</a>
-, <a class="el" href="classbab_base_1_1_optimization_variable.html#aeb17c4ac5c23141e9acc87c5b1453605">babBase::OptimizationVariable</a>
+, <a class="el" href="classbab_base_1_1_optimization_variable.html#a14ab145b3997ff567e535665c30d5138">babBase::OptimizationVariable</a>
 </li>
 </ul>
 </div><!-- contents -->
@@ -100,7 +99,7 @@ $(document).ready(function(){initNavTree('functions_rela.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_s.html b/doc/html/functions_s.html
index 2ed9abbcf44b00a0c6a8dd8fa60c4621169789c7..bdfa7f9efde33e295c2f3fcf77cae505ee6417dc 100644
--- a/doc/html/functions_s.html
+++ b/doc/html/functions_s.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -93,10 +93,10 @@ $(document).ready(function(){initNavTree('functions_s.html','');});
 : <a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a5426d1dd5c4adaf426119c168bee4e4e">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a>
 </li>
 <li>save_setting()
-: <a class="el" href="classmaingo_1_1_logger.html#ab14611926d783106de661c1c7221f5c3">maingo::Logger</a>
+: <a class="el" href="classmaingo_1_1_logger.html#a69e487a988a594016c12a7c919570f04">maingo::Logger</a>
 </li>
 <li>save_settings_file_name()
-: <a class="el" href="classmaingo_1_1_logger.html#accfbe2523be1fb7e14f30fd9b4c5031a">maingo::Logger</a>
+: <a class="el" href="classmaingo_1_1_logger.html#af1f4a383ab2f26319ae4da895d30aa2d">maingo::Logger</a>
 </li>
 <li>scaledPoints
 : <a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#aee1902712aacf900093a6bfe7c33e94c">maingo::lbp::DagObj</a>
@@ -107,20 +107,20 @@ $(document).ready(function(){initNavTree('functions_s.html','');});
 <li>set_branching_dimension_selection_strategy()
 : <a class="el" href="classbab_base_1_1_brancher.html#af9b60e80a40637b8aea84fab03cc665f">babBase::Brancher</a>
 </li>
-<li>set_csv_file_name()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a530c347d65ac74a1cf871e385ec18cc4">maingo::MAiNGO</a>
-</li>
 <li>set_epsilon()
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a5999eaab9bb4b9c7dba95ed6553da048">maingo::MAiNGOmodelEpsCon</a>
 </li>
 <li>set_holds_incumbent()
 : <a class="el" href="classbab_base_1_1_bab_node.html#a70530169b115d733df41aaafd449b23e">babBase::BabNode</a>
 </li>
+<li>set_iterations_csv_file_name()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#abe4f3a7b42c05c07e7962be17de02ed3">maingo::MAiNGO</a>
+</li>
 <li>set_json_file_name()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a755f6652395b3bad73976a26fa4243f9">maingo::MAiNGO</a>
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a3caca275897742b038011e6fd00b2bdc">maingo::MAiNGO</a>
 </li>
 <li>set_log_file_name()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ae99518c0b699295565d25c76b0187c58">maingo::MAiNGO</a>
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a450f5ac09e6afa9e34dc86b59359ae20">maingo::MAiNGO</a>
 </li>
 <li>set_lower_bound()
 : <a class="el" href="classbab_base_1_1_bab_node.html#a04b7b97d9b302cf99808e0301272d740">babBase::BabNode</a>
@@ -129,7 +129,7 @@ $(document).ready(function(){initNavTree('functions_s.html','');});
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a1fe4e8690548362eb1ec74fb052a424e">maingo::MAiNGO</a>
 </li>
 <li>set_name()
-: <a class="el" href="structmaingo_1_1model_function.html#ae27a8eb161619cea1e29a6df0d38c3d7">maingo::modelFunction</a>
+: <a class="el" href="structmaingo_1_1_model_function.html#a77f51cfc74b6f5dc0b1a8919b01f3333">maingo::ModelFunction</a>
 </li>
 <li>set_new_incumbent_point()
 : <a class="el" href="classbab_base_1_1_brancher.html#a657a3dc42d1a34b8a04e9e9d9c699ff6">babBase::Brancher</a>
@@ -148,11 +148,11 @@ $(document).ready(function(){initNavTree('functions_s.html','');});
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#aef1305b0d90fe52fdd99b6545cf77755">maingo::MAiNGOmodelEpsCon</a>
 </li>
 <li>set_option()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a383bc41aef21457041b6a79d0a376bed">maingo::MAiNGO</a>
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ae2bc7507ee0341d7b0a8ac06702ca964">maingo::MAiNGO</a>
 </li>
 <li>set_output_stream()
-: <a class="el" href="classmaingo_1_1_logger.html#ab4c18700b160cbe53b4e59069e7fcedd">maingo::Logger</a>
-, <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a66b60c8b60e9525e96e4d2dbb6398f88">maingo::MAiNGO</a>
+: <a class="el" href="classmaingo_1_1_logger.html#ae5cb965f581d2940eea1730a5e7a1f06">maingo::Logger</a>
+, <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a1a4ba608b818d6a2e303b836505e0234">maingo::MAiNGO</a>
 </li>
 <li>set_pruning_score()
 : <a class="el" href="classbab_base_1_1_bab_node.html#a747d334dcf93c85f9e2bd234b875486a">babBase::BabNode</a>
@@ -160,20 +160,20 @@ $(document).ready(function(){initNavTree('functions_s.html','');});
 <li>set_pruning_score_threshold()
 : <a class="el" href="classbab_base_1_1_bab_tree.html#a49521ddbee9e1d7e2a2b494d2ad5c4f5">babBase::BabTree</a>
 </li>
-<li>set_res_file_name()
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ade7741b5e86018f3167c9f34622a2733">maingo::MAiNGO</a>
+<li>set_result_file_name()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a4dc94835e031b37290f96814486c2903">maingo::MAiNGO</a>
 </li>
 <li>set_single_objective()
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a20ba39ce81ad97f3c58e1fa78c0356af">maingo::MAiNGOmodelEpsCon</a>
 </li>
+<li>set_solution_and_statistics_csv_file_name()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0157c25ef59573826a916e301e836330">maingo::MAiNGO</a>
+</li>
 <li>set_upper_bound()
 : <a class="el" href="classbab_base_1_1_bab_node.html#a78cfcab15536723a4e2e0ee40c316167">babBase::BabNode</a>
 </li>
 <li>set_value()
-: <a class="el" href="structmaingo_1_1model_function.html#ac7ccbc9aabfa39f93e01e706f74f649e">maingo::modelFunction</a>
-</li>
-<li>Settings()
-: <a class="el" href="structmaingo_1_1_settings.html#ab7169a6eefce79566dd07db3b1e5e967">maingo::Settings</a>
+: <a class="el" href="structmaingo_1_1_model_function.html#a0af1f22b1bc87961451c52913567a4fd">maingo::ModelFunction</a>
 </li>
 <li>simplexPoints
 : <a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#a639462cbaec8e4a5ef66f37f718adc0c">maingo::lbp::DagObj</a>
@@ -185,13 +185,13 @@ $(document).ready(function(){initNavTree('functions_s.html','');});
 : <a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a060be08bd96d38d7b7f64823fb843cff">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a>
 </li>
 <li>size()
-: <a class="el" href="structmaingo_1_1model_function.html#a6625f2f7e468b0d5b1590284826e355a">maingo::modelFunction</a>
+: <a class="el" href="structmaingo_1_1_model_function.html#a8c2f2e692410848475b8c5caffcf5e51">maingo::ModelFunction</a>
 </li>
 <li>solutionStatus
 : <a class="el" href="structbab_base_1_1_bab_log.html#a310e923adf37c0c3d7de091b6b2e672b">babBase::BabLog</a>
 </li>
 <li>solve()
-: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a44ead97b56cfae660cbe695ef8dffb38">maingo::bab::BranchAndBound</a>
+: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#afbbe46b34b476fa5b54c5faa112581b6">maingo::bab::BranchAndBound</a>
 , <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a50062c75f198aab4cd975f34fdef1506">maingo::MAiNGO</a>
 , <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4ac108083fde6741e77d7c0b231bd610">maingo::ubp::UpperBoundingSolver</a>
 </li>
@@ -262,7 +262,7 @@ $(document).ready(function(){initNavTree('functions_s.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_t.html b/doc/html/functions_t.html
index 0632d10b5d488aa852ecb7ddfcdf1ba217462f86..10d1ad7e5bc89ff237021d3fb207c55ecfa7decc 100644
--- a/doc/html/functions_t.html
+++ b/doc/html/functions_t.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -119,7 +119,7 @@ $(document).ready(function(){initNavTree('functions_t.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_type.html b/doc/html/functions_type.html
index 3ecac5f3656002b0614432f64c13696f353a007c..4b02685b3493432f5643e7c6640cebff050866c2 100644
--- a/doc/html/functions_type.html
+++ b/doc/html/functions_type.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Typedefs</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -104,7 +104,7 @@ $(document).ready(function(){initNavTree('functions_type.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_u.html b/doc/html/functions_u.html
index 90a6ecbefebf2560a03a5767c63eec20eb0d12e6..0bf496d6e9d2de0f452c320809828c2fc196be57 100644
--- a/doc/html/functions_u.html
+++ b/doc/html/functions_u.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -123,19 +123,19 @@ $(document).ready(function(){initNavTree('functions_u.html','');});
 : <a class="el" href="structmaingo_1_1_settings.html#af98e35447c8568c1613daf7447a30307">maingo::Settings</a>
 </li>
 <li>UbpClp()
-: <a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html#acffeaea83adc9f0e61e3998fab15cf6f">maingo::ubp::UbpClp</a>
+: <a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a2ff59fcf2223f5851ec4fffa59299656">maingo::ubp::UbpClp</a>
 </li>
 <li>UbpCplex()
-: <a class="el" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a151f2ced79870ee59b168cdcaaf34bff">maingo::ubp::UbpCplex</a>
+: <a class="el" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#aa7a3ededf743a2cde154b5c267cf26d6">maingo::ubp::UbpCplex</a>
 </li>
 <li>UbpIpopt()
-: <a class="el" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#a3b4a6331fd9876205ae349bdc95d06a4">maingo::ubp::UbpIpopt</a>
+: <a class="el" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#acd84ac4a7669c214242419ee880426fa">maingo::ubp::UbpIpopt</a>
 </li>
 <li>UbpKnitro()
-: <a class="el" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#ac916b5455e5ae20c5d9dd9a4006d0482">maingo::ubp::UbpKnitro</a>
+: <a class="el" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a76b1d3d5ca75b9d7b12015482fae7aa5">maingo::ubp::UbpKnitro</a>
 </li>
 <li>UbpNLopt()
-: <a class="el" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a84e83af5033d99a79f1fd1d65f6b8b7f">maingo::ubp::UbpNLopt</a>
+: <a class="el" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#ae5c7ea9072ed95c5521916c756be3f0f">maingo::ubp::UbpNLopt</a>
 </li>
 <li>UbpQuadExpr()
 : <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#ab448dba7b8e6123194c9cf88ae2f2b65">maingo::ubp::UbpQuadExpr</a>
@@ -147,13 +147,10 @@ $(document).ready(function(){initNavTree('functions_u.html','');});
 : <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2f1320936ed40642c7cf4cf0fe31d14f">maingo::lbp::LowerBoundingSolver</a>
 </li>
 <li>upper
-: <a class="el" href="structbab_base_1_1_bounds.html#a275ca3ce07d64ce43824d7e673cfee6b">babBase::Bounds</a>
-</li>
-<li>upperBoundChanged
-: <a class="el" href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#a4ec809446af63cecb30c9359c89cdf40">babBase::OptimizationVariable::ChangedBounds</a>
+: <a class="el" href="structbab_base_1_1_bounds.html#a9f4758be8a66b8e7b034af1f04e19d1d">babBase::Bounds</a>
 </li>
 <li>UpperBoundingSolver()
-: <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1c0659fdddc86e0528771ce8dd977f7e">maingo::ubp::UpperBoundingSolver</a>
+: <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ad9c2c0ae5e137605da0f9588df694a52">maingo::ubp::UpperBoundingSolver</a>
 </li>
 <li>USE_BAB
 : <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395a8c993825a2321788812ac88fa8666a34">maingo::ubp::UpperBoundingSolver</a>
@@ -161,12 +158,6 @@ $(document).ready(function(){initNavTree('functions_u.html','');});
 <li>USE_PRE
 : <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395aaf072b94cbf6e5d23d6b55bc2846a4e6">maingo::ubp::UpperBoundingSolver</a>
 </li>
-<li>userLowerBound
-: <a class="el" href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#aba91eb7f14a3c3da0e12a8e77e0d98d2">babBase::OptimizationVariable::ChangedBounds</a>
-</li>
-<li>userUpperBound
-: <a class="el" href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#a29e404e5263dc06f9e24e5719a53dea8">babBase::OptimizationVariable::ChangedBounds</a>
-</li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -175,7 +166,7 @@ $(document).ready(function(){initNavTree('functions_u.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_v.html b/doc/html/functions_v.html
index 3ee1eb8f696175493d025c72db12da2755b1c2fa..499159d6a0bae7eeb5c0013904e441379be76110 100644
--- a/doc/html/functions_v.html
+++ b/doc/html/functions_v.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -93,7 +93,7 @@ $(document).ready(function(){initNavTree('functions_v.html','');});
 : <a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#a09fb67cc9c686600e7aa47f2780dfca5">maingo::lbp::DagObj</a>
 </li>
 <li>value
-: <a class="el" href="structmaingo_1_1model_function.html#ad32e16eebdef8b4e555417cc514c43c0">maingo::modelFunction</a>
+: <a class="el" href="structmaingo_1_1_model_function.html#a3468e730a934be8be5bf5ee2f84aacc7">maingo::ModelFunction</a>
 , <a class="el" href="structmaingo_1_1_output_variable.html#acd79e28304c45ee43806093b857489f2">maingo::OutputVariable</a>
 </li>
 <li>vapor_pressure()
@@ -123,7 +123,7 @@ $(document).ready(function(){initNavTree('functions_v.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_vars.html b/doc/html/functions_vars.html
index 60de99f62d358d009e39d2defd7209896b439f33..6f437e4af06f1b3791c581012962674c3a71d421 100644
--- a/doc/html/functions_vars.html
+++ b/doc/html/functions_vars.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Variables</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -88,7 +88,7 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
 <div class="contents">
 &#160;
 
-<h3><a id="index__5F"></a>- _ -</h3><ul>
+<h3><a id="index__"></a>- _ -</h3><ul>
 <li>_absPruningTol
 : <a class="el" href="classbab_base_1_1_bab_tree.html#a90f1c73b6149b861acbded97b7221b35">babBase::BabTree</a>
 </li>
@@ -101,8 +101,11 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
 <li>_bestLbdFathomed
 : <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a8855b78bf4580af1d40f463eb88f9883">maingo::bab::BranchAndBound</a>
 </li>
+<li>_bounds
+: <a class="el" href="classbab_base_1_1_optimization_variable.html#acd60b14930c0261628aae974e42fe954">babBase::OptimizationVariable</a>
+</li>
 <li>_brancher
-: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a88d35fc68351774dadb831c38ffd93ee">maingo::bab::BranchAndBound</a>
+: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ae1454635b53b98cc4e395fd3ed7faca0">maingo::bab::BranchAndBound</a>
 </li>
 <li>_branchingPriority
 : <a class="el" href="classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b">babBase::OptimizationVariable</a>
@@ -115,20 +118,23 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
 : <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aaa92d78b7ce6a1b2939131063bd6f68a">maingo::lbp::LowerBoundingSolver</a>
 </li>
 <li>_constantConstraints
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a6094a619e5202a347ad3b755a0f13fe7">maingo::MAiNGO</a>
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#abb011b283ec6da5387c24804ba59ff6d">maingo::MAiNGO</a>
 </li>
 <li>_constantConstraintsFeasible
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#af917f2f3529a7c92bb0b972607c1e8df">maingo::MAiNGO</a>
 </li>
 <li>_constantOutputs
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a9393fdd939148611496b665d537ca6cb">maingo::MAiNGO</a>
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#aded61d763cefceab6bf099cf9d891cff">maingo::MAiNGO</a>
 </li>
 <li>_constraintProperties
-: <a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#a83cea7e83eb4744af421af42ab4c5cdb">maingo::lbp::DagObj</a>
-, <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1b23a7c1621517ac4506bd043d43950e">maingo::lbp::LowerBoundingSolver</a>
-, <a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#aa7b6d4e92ccd5f357728d82baec6cf59">maingo::ubp::IpoptProblem</a>
-, <a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a0bd778c8b72652bafe429d874cba73af">maingo::ubp::KnitroProblem</a>
-, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aae0c39f4b14cfb8a3c70a57b49f15e67">maingo::ubp::UpperBoundingSolver</a>
+: <a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#af2ba1ac965bfc48025172b978cbee2c6">maingo::lbp::DagObj</a>
+, <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a701c19e247fa6e9791313252084b770a">maingo::lbp::LowerBoundingSolver</a>
+, <a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a1e56ab6219a4daa52c5cbbcd6548a603">maingo::ubp::IpoptProblem</a>
+, <a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html#adfd54311b1a62a9cb423071ce1c436eb">maingo::ubp::KnitroProblem</a>
+, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a633d6c072f7388ade44ccebf3fa3c935">maingo::ubp::UpperBoundingSolver</a>
+</li>
+<li>_csvSolutionStatisticsName
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a689902b992cca417907471e82b9526b1">maingo::MAiNGO</a>
 </li>
 <li>_DAG
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a54d978f1329af4acf801108591eea1f5">maingo::MAiNGO</a>
@@ -198,12 +204,18 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
 <li>_epsilon
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#aee5a75bf580e8f53812e4698e9876b89">maingo::MAiNGOmodelEpsCon</a>
 </li>
+<li>_errorMessage
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#ac3cd87bc11baff35170096a9a4fd8007">maingo::MAiNGOException</a>
+</li>
 <li>_eta
 : <a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a77dabe29a0aaf2ff45e1f966eef1c585">maingo::lbp::LbpClp</a>
 </li>
 <li>_etaCoeff
 : <a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a0108d59ae1bc4fc86d91c414b4f33b36">maingo::lbp::LbpClp</a>
 </li>
+<li>_feasibilityProblem
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a8b2bcd5e079464178341f24169e45bbc">maingo::MAiNGO</a>
+</li>
 <li>_feasible
 : <a class="el" href="classbab_base_1_1_optimization_variable.html#a7f00570cb2e44f165e2aa3028d215bc3">babBase::OptimizationVariable</a>
 </li>
@@ -232,7 +244,7 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
 : <a class="el" href="classbab_base_1_1_bab_node.html#a7d45d49a15377c4f03bf4c670ebb0f6b">babBase::BabNode</a>
 </li>
 <li>_incumbent
-: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#ac3e65fd10f0294c31f8428330e517f85">maingo::bab::BranchAndBound</a>
+: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a2685cdd222deff1b30e3b83c7b4bb259">maingo::bab::BranchAndBound</a>
 , <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6a6c925badc9b14fb61232aceb859b9c">maingo::lbp::LowerBoundingSolver</a>
 </li>
 <li>_incumbentNodeId
@@ -245,7 +257,7 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a49594efef0db3f36efcf342acf7c7525">maingo::MAiNGO</a>
 </li>
 <li>_initialPoint
-: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#acc2f5918ff76d313d9f0d9eae3c749cd">maingo::bab::BranchAndBound</a>
+: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a1f509aa5a3de69ff00e8d2c31b654d48">maingo::bab::BranchAndBound</a>
 , <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a6624f898a20299ccfa4a8fa2f8f7dd28">maingo::MAiNGO</a>
 </li>
 <li>_initialPointFeasible
@@ -279,6 +291,9 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
 <li>_iterationsgap
 : <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a4d1d7552bc0294281b7453a757a5b1c4">maingo::bab::BranchAndBound</a>
 </li>
+<li>_jsonFileName
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0dffde2ace38c3fad7a6cfb38f0f374c">maingo::MAiNGO</a>
+</li>
 <li>_Knitro
 : <a class="el" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#ae54f2f80561a3f03efbdb107b03d93eb">maingo::ubp::UbpKnitro</a>
 </li>
@@ -295,19 +310,16 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
 : <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#adaeb5fb5c51be07833bf51f921ce2e65">maingo::bab::BranchAndBound</a>
 </li>
 <li>_LBS
-: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a16bbea3c96042145acc5df3830cd72b4">maingo::bab::BranchAndBound</a>
+: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a4a63abd1f85d04b411bd3f46c95c994b">maingo::bab::BranchAndBound</a>
 </li>
 <li>_linesprinted
 : <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a46473e89580e44ef3576e9040e469478">maingo::bab::BranchAndBound</a>
 </li>
 <li>_logger
-: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aaf1e5ea028afe7d2700a6cc573d67674">maingo::bab::BranchAndBound</a>
-, <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ac82365b8f4f2d24466e60bbf01042142">maingo::lbp::LowerBoundingSolver</a>
-, <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a96f1a3a2a8c24cdca954e63fdc155e01">maingo::MAiNGO</a>
-, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab436cb85b75f92ef42ca46adb87b83c0">maingo::ubp::UpperBoundingSolver</a>
-</li>
-<li>_lowerBound
-: <a class="el" href="classbab_base_1_1_optimization_variable.html#aefe950aa38fa5908dbdc2b34477c2bb2">babBase::OptimizationVariable</a>
+: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a7bd1a5254c74b3adac3b74712d92257e">maingo::bab::BranchAndBound</a>
+, <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9ec401321cfa9eda2672c9a65b6ba11d">maingo::lbp::LowerBoundingSolver</a>
+, <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#aad666fe69213402bdba8b9972a5985b3">maingo::MAiNGO</a>
+, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab76a699684d09100c63ec4ddcaa10456">maingo::ubp::UpperBoundingSolver</a>
 </li>
 <li>_lowerBounds
 : <a class="el" href="classbab_base_1_1_bab_node.html#a7d1097fbd9ec6c1d7468eb8ca3532707">babBase::BabNode</a>
@@ -321,7 +333,7 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
 , <a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a377da5ab602aaf0ad0d53ea444dce938">maingo::ubp::UbpClp</a>
 </li>
 <li>_lowerVarBoundsOrig
-: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a0a241298a1b0f9b0707386e9143e0186">maingo::bab::BranchAndBound</a>
+: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a9836ba957bbfd2acace285065fe81710">maingo::bab::BranchAndBound</a>
 </li>
 <li>_LPstatus
 : <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7952199940d657eed365a660f4538527">maingo::lbp::LowerBoundingSolver</a>
@@ -330,10 +342,10 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a020f2b61ca2d2baabf16031f078c2ddd">maingo::MAiNGO</a>
 </li>
 <li>_maingoSettings
-: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#acca388f26f5e0c94b58643b566b8a235">maingo::bab::BranchAndBound</a>
-, <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2277a8ee8f3f41a9498c43add63835c4">maingo::lbp::LowerBoundingSolver</a>
-, <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#abdcc6fb032878028956050dcba5c9405">maingo::MAiNGO</a>
-, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1b4e1d2ce3d3413c1c5d509d13ec752e">maingo::ubp::UpperBoundingSolver</a>
+: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#abb34f49557e1d417e5a87a467cee2ec8">maingo::bab::BranchAndBound</a>
+, <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1b4b4c6e80d76f83bb5a2a7f7d2f165c">maingo::lbp::LowerBoundingSolver</a>
+, <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#acdbebd94e2fcccad46515741516799de">maingo::MAiNGO</a>
+, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4d7aaa4de8e2e6633b9064568961bc72">maingo::ubp::UpperBoundingSolver</a>
 </li>
 <li>_maingoStatus
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ace36a8a82262f885ae5f87be65d868db">maingo::MAiNGO</a>
@@ -380,7 +392,6 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
 </li>
 <li>_msg
 : <a class="el" href="classbab_base_1_1_branch_and_bound_base_exception.html#ad7fa9d844b7264c7251488ecc1e69482">babBase::BranchAndBoundBaseException</a>
-, <a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a9e405ac624e18ae108f3474e4c8284d4">maingo::MAiNGOException</a>
 </li>
 <li>_multipliers
 : <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ad1db6e887f8b891d267b0347f17fe8db">maingo::lbp::LowerBoundingSolver</a>
@@ -508,13 +519,13 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
 : <a class="el" href="classbab_base_1_1_bab_tree.html#a766066afd3863ebc1f9025d2e1200e20">babBase::BabTree</a>
 </li>
 <li>_nonconstantConstraints
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a92badf4c34413612706e7aeaefebe95a">maingo::MAiNGO</a>
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a8dacc1f270014ea3c70dee5451abae62">maingo::MAiNGO</a>
 </li>
 <li>_nonconstantConstraintsUBP
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a7bce17d744313c9b489b19179eb0b4f0">maingo::MAiNGO</a>
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0d1cde74073424f84d8b4692a8406101">maingo::MAiNGO</a>
 </li>
 <li>_nonconstantOutputs
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ace95ba4340090ffaafec40a30504ccb4">maingo::MAiNGO</a>
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ae1bb7b84481f6f827f61d84601fe9869">maingo::MAiNGO</a>
 </li>
 <li>_noutputVariables
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ae90a5539fd3c1790b49289c919948da7">maingo::MAiNGO</a>
@@ -582,11 +593,14 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
 <li>_objectiveValue
 : <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ab2c6d75aa915dd5e3296b0873d39acfd">maingo::lbp::LowerBoundingSolver</a>
 </li>
+<li>_onlyBoxConstraints
+: <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a44e1d78a441997c6fced40f8c91c8043">maingo::lbp::LowerBoundingSolver</a>
+</li>
 <li>_optimizationVariables
 : <a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a06238fa671eeb532dcfac051beeff95f">maingo::ubp::KnitroProblem</a>
 </li>
 <li>_originalConstraints
-: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0314c3c342e0483b85692344d79d8486">maingo::MAiNGO</a>
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a88c7a2689b32500ebf09bf37de06d47f">maingo::MAiNGO</a>
 </li>
 <li>_originalLowerBounds
 : <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2eaaa9feb9ad231209cb01a29a76b5e4">maingo::ubp::UpperBoundingSolver</a>
@@ -595,7 +609,7 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
 : <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a9c95129dc31203f436aec2d4e71e0dc2">maingo::ubp::UpperBoundingSolver</a>
 </li>
 <li>_originalVariables
-: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aa47a427d6c433a26a35b5882e54480e4">maingo::bab::BranchAndBound</a>
+: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a54fa45d1751c9a81b346bd7cd1f5969c">maingo::bab::BranchAndBound</a>
 , <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a39ef7296e50fb200934ff74a017e43bf">maingo::lbp::LowerBoundingSolver</a>
 , <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#adf764bba4c067716ca0d9948eca504a8">maingo::MAiNGO</a>
 , <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a05f3d0a48a4c425ac11035a76426a184">maingo::ubp::UpperBoundingSolver</a>
@@ -650,6 +664,9 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
 <li>_removedVariables
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#abb425f08ebe9b1d4a71d6b455cd656b9">maingo::MAiNGO</a>
 </li>
+<li>_resultFileName
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0a9de764a3521782c3f6e3dc68f01324">maingo::MAiNGO</a>
+</li>
 <li>_resultInterval
 : <a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html#ac7defcd5788a9a9d5e6808a153befe3c">maingo::lbp::LbpInterval</a>
 </li>
@@ -754,7 +771,7 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
 : <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a85091bc9965339278cc9c02b2baf354b">maingo::bab::BranchAndBound</a>
 </li>
 <li>_UBS
-: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#af1853b2ef51e8bddd0a9ab2404340037">maingo::bab::BranchAndBound</a>
+: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#aba6e92ef8af1e76b62a543e1334b4948">maingo::bab::BranchAndBound</a>
 </li>
 <li>_uniqueNames
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a4151ba2d1c6b6965001dbf7fc1a7c122">maingo::MAiNGO</a>
@@ -762,9 +779,6 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
 <li>_uniqueNamesOriginal
 : <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a805b901f0e2e25ee5910b2b0e6a7c99a">maingo::MAiNGO</a>
 </li>
-<li>_upperBound
-: <a class="el" href="classbab_base_1_1_optimization_variable.html#a31a22d0b8661eb373ce5dbd72aedc819">babBase::OptimizationVariable</a>
-</li>
 <li>_upperBounds
 : <a class="el" href="classbab_base_1_1_bab_node.html#ad98784ad49fb92d9dc13bfb4faf1561f">babBase::BabNode</a>
 </li>
@@ -777,11 +791,14 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
 , <a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a08203d67961695155e95c8941b75477a">maingo::ubp::UbpClp</a>
 </li>
 <li>_upperVarBoundsOrig
-: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a5bd0987c7dde438e8d52af87421d78c5">maingo::bab::BranchAndBound</a>
+: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a6087a84349286d46bfc4a6633f5c881b">maingo::bab::BranchAndBound</a>
 </li>
 <li>_userSetSettings
 : <a class="el" href="classmaingo_1_1_logger.html#ab9bc94904f592f8dad7532e140fe9394">maingo::Logger</a>
 </li>
+<li>_userSpecifiedBounds
+: <a class="el" href="classbab_base_1_1_optimization_variable.html#af0837b061723724dcb61543724f36d11">babBase::OptimizationVariable</a>
+</li>
 <li>_variables
 : <a class="el" href="classmaingo_1_1_ale_model.html#a8074ec7e8aa37574089920ad172ae964">maingo::AleModel</a>
 , <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a179c701e7f310080876879df45571aae">maingo::MAiNGO</a>
@@ -797,9 +814,6 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
 <li>_variableType
 : <a class="el" href="classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9">babBase::OptimizationVariable</a>
 </li>
-<li>_wallPassed
-: <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a2845411391c8498e7eece2e2e3ba073b">maingo::bab::BranchAndBound</a>
-</li>
 <li>_writeToLogEverySec
 : <a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html#a193f594912e00a2c4d8cacfd4efbdfd5">maingo::bab::BranchAndBound</a>
 </li>
@@ -820,7 +834,7 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_vars_a.html b/doc/html/functions_vars_a.html
index 05b7f3c71a224047208ce97f1deb66801aa41bfe..09c0e54297de1adcdd53b2e165a1bb8d3526224d 100644
--- a/doc/html/functions_vars_a.html
+++ b/doc/html/functions_vars_a.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Variables</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -106,7 +106,7 @@ $(document).ready(function(){initNavTree('functions_vars_a.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_vars_b.html b/doc/html/functions_vars_b.html
index 6de52f1b45f76f13db94aca3d461a368125fe479..fa0a582a71201bba8d320dd67c669963dc791cc7 100644
--- a/doc/html/functions_vars_b.html
+++ b/doc/html/functions_vars_b.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Variables</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -145,7 +145,7 @@ $(document).ready(function(){initNavTree('functions_vars_b.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_vars_c.html b/doc/html/functions_vars_c.html
index b673568d2fbc7d8f935a4cb70a9c15487246301b..a7e68f075890fd6fb51d2c90031288f2f9e79bea 100644
--- a/doc/html/functions_vars_c.html
+++ b/doc/html/functions_vars_c.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Variables</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -89,9 +89,6 @@ $(document).ready(function(){initNavTree('functions_vars_c.html','');});
 &#160;
 
 <h3><a id="index_c"></a>- c -</h3><ul>
-<li>changedBounds
-: <a class="el" href="classbab_base_1_1_optimization_variable.html#a66fdae5945a00647d5dce7ba4750ae89">babBase::OptimizationVariable</a>
-</li>
 <li>chosenLinPoints
 : <a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#abfef6333d33007bac6f1c1236fba3979">maingo::lbp::DagObj</a>
 </li>
@@ -104,9 +101,6 @@ $(document).ready(function(){initNavTree('functions_vars_c.html','');});
 <li>confirmTermination
 : <a class="el" href="structmaingo_1_1_settings.html#a2442c5741a3601880b2903b69d32bbb9">maingo::Settings</a>
 </li>
-<li>consistent
-: <a class="el" href="structbab_base_1_1_bounds.html#a4b1a985eba004ed91b8383d2dde6224e">babBase::Bounds</a>
-</li>
 <li>constant
 : <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">maingo::ubp::UbpQuadExpr</a>
 </li>
@@ -140,7 +134,6 @@ $(document).ready(function(){initNavTree('functions_vars_c.html','');});
 </li>
 <li>csvGeneralName
 : <a class="el" href="structbab_base_1_1_bab_log.html#a9b82e62a143f47a6fb85ec884fe1cf27">babBase::BabLog</a>
-, <a class="el" href="classmaingo_1_1_logger.html#a36f4bdb8cdcf58504dc06abd6d4e6725">maingo::Logger</a>
 </li>
 <li>csvIterationsName
 : <a class="el" href="structbab_base_1_1_bab_log.html#a5fe069f633ab86b5fb1df9cbfa89216a">babBase::BabLog</a>
@@ -160,7 +153,7 @@ $(document).ready(function(){initNavTree('functions_vars_c.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_vars_d.html b/doc/html/functions_vars_d.html
index daaee992123dc5d76089e07457228d0b1e44ea3e..d164b26c824dd7e7e936242d25985a3ad3899fa8 100644
--- a/doc/html/functions_vars_d.html
+++ b/doc/html/functions_vars_d.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Variables</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -143,7 +143,7 @@ $(document).ready(function(){initNavTree('functions_vars_d.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_vars_e.html b/doc/html/functions_vars_e.html
index 824f2e0b81c2d730e81cf81e50c2e1f7bb039908..7edc427ab0906031e7e1e63abe9559f22ef205b9 100644
--- a/doc/html/functions_vars_e.html
+++ b/doc/html/functions_vars_e.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Variables</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -100,10 +100,10 @@ $(document).ready(function(){initNavTree('functions_vars_e.html','');});
 </li>
 <li>eq
 : <a class="el" href="structmaingo_1_1_constraint_container.html#ad875878c83b9f5e2ab0ff68c7452a53e">maingo::ConstraintContainer</a>
-, <a class="el" href="structmaingo_1_1_evaluation_container.html#a9c91e67852946ccb7381351512875a06">maingo::EvaluationContainer</a>
+, <a class="el" href="structmaingo_1_1_evaluation_container.html#ad71555eb350bbd6deb14d47559a6fa6d">maingo::EvaluationContainer</a>
 </li>
 <li>eqRelaxationOnly
-: <a class="el" href="structmaingo_1_1_evaluation_container.html#afd4671f76d0f58502f7f8a36bc574642">maingo::EvaluationContainer</a>
+: <a class="el" href="structmaingo_1_1_evaluation_container.html#a564d618660f9675c33900127aa686f38">maingo::EvaluationContainer</a>
 </li>
 <li>eta
 : <a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#aeb417aefdc41100afb0e2909b89c48de">maingo::lbp::LbpCplex</a>
@@ -119,7 +119,7 @@ $(document).ready(function(){initNavTree('functions_vars_e.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_vars_f.html b/doc/html/functions_vars_f.html
index 17e9fef5f16347fca5af2a880cd462f8fd5e9f95..46f98322d5d759bfe9f54c976cd6da92621bfef1 100644
--- a/doc/html/functions_vars_f.html
+++ b/doc/html/functions_vars_f.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Variables</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -147,7 +147,7 @@ $(document).ready(function(){initNavTree('functions_vars_f.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_vars_h.html b/doc/html/functions_vars_h.html
index 0c672242223e4c3203b795ab200c45c6432e9bb3..1e53d19a1513719b3fe8e04322aca312dec3f982 100644
--- a/doc/html/functions_vars_h.html
+++ b/doc/html/functions_vars_h.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Variables</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -100,7 +100,7 @@ $(document).ready(function(){initNavTree('functions_vars_h.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_vars_i.html b/doc/html/functions_vars_i.html
index 742d7ce3ed30b207fd0920a93090c009c8b6c722..a622898a4cdd0cdab1de9f5794dab980a24642c4 100644
--- a/doc/html/functions_vars_i.html
+++ b/doc/html/functions_vars_i.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Variables</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -118,13 +118,13 @@ $(document).ready(function(){initNavTree('functions_vars_i.html','');});
 </li>
 <li>ineq
 : <a class="el" href="structmaingo_1_1_constraint_container.html#ac1b8182544f5f0fe5357d748b690dab2">maingo::ConstraintContainer</a>
-, <a class="el" href="structmaingo_1_1_evaluation_container.html#a6871b7430185e5c4152b941720b606f3">maingo::EvaluationContainer</a>
+, <a class="el" href="structmaingo_1_1_evaluation_container.html#af3256dbd0be5bea52c3a994da7082ea4">maingo::EvaluationContainer</a>
 </li>
 <li>ineqRelaxationOnly
-: <a class="el" href="structmaingo_1_1_evaluation_container.html#af754c93b79ce6fa668c17d2fd26c812b">maingo::EvaluationContainer</a>
+: <a class="el" href="structmaingo_1_1_evaluation_container.html#acf712256b2506b6388af16e648a04fae">maingo::EvaluationContainer</a>
 </li>
 <li>ineqSquash
-: <a class="el" href="structmaingo_1_1_evaluation_container.html#aa40bfc61f94bf6850d3ee53db7e2afeb">maingo::EvaluationContainer</a>
+: <a class="el" href="structmaingo_1_1_evaluation_container.html#af9572d873db6d0ebd0402cbc3539e8ee">maingo::EvaluationContainer</a>
 </li>
 <li>infinity
 : <a class="el" href="structmaingo_1_1_settings.html#a998dbf62d78386f5c7161b82ed37acbe">maingo::Settings</a>
@@ -155,7 +155,7 @@ $(document).ready(function(){initNavTree('functions_vars_i.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_vars_j.html b/doc/html/functions_vars_j.html
index 309e05a057d65cc93a43a746cf442507036bf529..82a959cb73ec42bc5069167cb09d3c405d1dfae1 100644
--- a/doc/html/functions_vars_j.html
+++ b/doc/html/functions_vars_j.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Variables</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -92,9 +92,6 @@ $(document).ready(function(){initNavTree('functions_vars_j.html','');});
 <li>jacProperties
 : <a class="el" href="structmaingo_1_1ubp_1_1_ubp_structure.html#af049943a023a5d094c469fb65aa9a3c5">maingo::ubp::UbpStructure</a>
 </li>
-<li>jsonFileName
-: <a class="el" href="classmaingo_1_1_logger.html#a55590e7a2d77ea9fd85512b17f02bffa">maingo::Logger</a>
-</li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -103,7 +100,7 @@ $(document).ready(function(){initNavTree('functions_vars_j.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_vars_l.html b/doc/html/functions_vars_l.html
index 881bb03f0b685d0c64b33f82f787b5fac01bf9a9..aa5576b26df5fe1600fe95ed59576a27325767ac 100644
--- a/doc/html/functions_vars_l.html
+++ b/doc/html/functions_vars_l.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Variables</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -148,13 +148,13 @@ $(document).ready(function(){initNavTree('functions_vars_l.html','');});
 , <a class="el" href="classmaingo_1_1_logger.html#a70f564ada7c6d7167bfc908096476996">maingo::Logger</a>
 </li>
 <li>logger
-: <a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a61dda650b1a25155e541c4607fb7b82c">maingo::ubp::DagObj</a>
+: <a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a6e462e78027d46af3239c0463b7c9249">maingo::ubp::DagObj</a>
 </li>
-<li>lower
-: <a class="el" href="structbab_base_1_1_bounds.html#a41752124aaf238c73255f1941c861ce8">babBase::Bounds</a>
+<li>loggingDestination
+: <a class="el" href="structmaingo_1_1_settings.html#ad665aeee888f2746d7892ffc66bd5340">maingo::Settings</a>
 </li>
-<li>lowerBoundChanged
-: <a class="el" href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#a4ecf97573227d863a88a44747125aeb0">babBase::OptimizationVariable::ChangedBounds</a>
+<li>lower
+: <a class="el" href="structbab_base_1_1_bounds.html#ac371c3147b5737af08e1c03daf413c05">babBase::Bounds</a>
 </li>
 <li>lpLowerBound
 : <a class="el" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html#a2ea74da7d73d5e4c01340cfe486b5597">maingo::lbp::LbpDualInfo</a>
@@ -167,7 +167,7 @@ $(document).ready(function(){initNavTree('functions_vars_l.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_vars_m.html b/doc/html/functions_vars_m.html
index 4b6e55392829f4ff34d41f30fb187fcdc6defacb..07a264c8a7282dac5eca05bb0789b016e9172d46 100644
--- a/doc/html/functions_vars_m.html
+++ b/doc/html/functions_vars_m.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Variables</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,7 +90,7 @@ $(document).ready(function(){initNavTree('functions_vars_m.html','');});
 
 <h3><a id="index_m"></a>- m -</h3><ul>
 <li>maingoSettings
-: <a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a4a939be99d5fff95ef5bd169d46fe205">maingo::ubp::DagObj</a>
+: <a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a8bebd0e09ae8e79b0826bb93cba34ffa">maingo::ubp::DagObj</a>
 </li>
 <li>maxTime
 : <a class="el" href="structmaingo_1_1_settings.html#a97970d98cd9d1d8972cc048d339b53dc">maingo::Settings</a>
@@ -114,7 +114,10 @@ $(document).ready(function(){initNavTree('functions_vars_m.html','');});
 : <a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#a41db90b4bf5aef1e6a1660ac36c63d5c">maingo::lbp::DagObj</a>
 </li>
 <li>mObjective
-: <a class="el" href="structmaingo_1_1_program.html#a91830e99c06a7bd5c40a95a4038bae7b">maingo::Program</a>
+: <a class="el" href="structmaingo_1_1_program.html#ac8bcb8f9940fb42b8818612b837a3cc3">maingo::Program</a>
+</li>
+<li>modelWritingLanguage
+: <a class="el" href="structmaingo_1_1_settings.html#a5d637f32b3496797a5a327fba9b2589a">maingo::Settings</a>
 </li>
 <li>monotonicity
 : <a class="el" href="structmaingo_1_1_constraint.html#a90ed0a8aa176f6311588abe5af0a2581">maingo::Constraint</a>
@@ -139,7 +142,7 @@ $(document).ready(function(){initNavTree('functions_vars_m.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_vars_n.html b/doc/html/functions_vars_n.html
index f443822135bbf5a01347c72bb2afc1025fb33a29..756da6d332e2eb23725569a40d30e81246a833f5 100644
--- a/doc/html/functions_vars_n.html
+++ b/doc/html/functions_vars_n.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Variables</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -91,7 +91,7 @@ $(document).ready(function(){initNavTree('functions_vars_n.html','');});
 <h3><a id="index_n"></a>- n -</h3><ul>
 <li>name
 : <a class="el" href="structmaingo_1_1_constraint.html#a1965d26e79a4537ff38947721b4761a3">maingo::Constraint</a>
-, <a class="el" href="structmaingo_1_1model_function.html#a602058ed28dc600017e666b82faf43b6">maingo::modelFunction</a>
+, <a class="el" href="structmaingo_1_1_model_function.html#acb85f5084123b7d4d42c2d0e03b3e7c6">maingo::ModelFunction</a>
 </li>
 <li>nnonZeroHessian
 : <a class="el" href="structmaingo_1_1ubp_1_1_ubp_structure.html#a68a011bb8bf1e4e94a413eec37035a27">maingo::ubp::UbpStructure</a>
@@ -134,7 +134,7 @@ $(document).ready(function(){initNavTree('functions_vars_n.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_vars_o.html b/doc/html/functions_vars_o.html
index 5f7d3bd1c64664fe7ef9f857979a56fe47119818..159c172ffce21bd84c06966c925fa3082460928e 100644
--- a/doc/html/functions_vars_o.html
+++ b/doc/html/functions_vars_o.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Variables</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,7 +90,7 @@ $(document).ready(function(){initNavTree('functions_vars_o.html','');});
 
 <h3><a id="index_o"></a>- o -</h3><ul>
 <li>objective
-: <a class="el" href="structmaingo_1_1_evaluation_container.html#af0c40f10ae5192b4bb6478138c6ad1a0">maingo::EvaluationContainer</a>
+: <a class="el" href="structmaingo_1_1_evaluation_container.html#ac13bde03d078f5c9402cce551a161024">maingo::EvaluationContainer</a>
 </li>
 <li>objRowFilled
 : <a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#aafb406768277c0b3935a707000b0e2a5">maingo::lbp::DagObj</a>
@@ -98,9 +98,6 @@ $(document).ready(function(){initNavTree('functions_vars_o.html','');});
 <li>output
 : <a class="el" href="structmaingo_1_1_evaluation_container.html#a86a57d19de362bd56b022103b14bd793">maingo::EvaluationContainer</a>
 </li>
-<li>outstreamVerbosity
-: <a class="el" href="structmaingo_1_1_settings.html#a63963398865197f332049e6a247bcb35">maingo::Settings</a>
-</li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -109,7 +106,7 @@ $(document).ready(function(){initNavTree('functions_vars_o.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_vars_p.html b/doc/html/functions_vars_p.html
index deeda2d0cfbc882e6b89fd3123c763daefadd636..a1270b135ab1528898263ad67f690676abfc1d47 100644
--- a/doc/html/functions_vars_p.html
+++ b/doc/html/functions_vars_p.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Variables</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -118,7 +118,7 @@ $(document).ready(function(){initNavTree('functions_vars_p.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_vars_r.html b/doc/html/functions_vars_r.html
index b3d73cf49ee886b332b3e9dc3e25803adf20c636..07e26e70cee39ac6323f578e4c484ab7cc74d0cc 100644
--- a/doc/html/functions_vars_r.html
+++ b/doc/html/functions_vars_r.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Variables</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -102,9 +102,6 @@ $(document).ready(function(){initNavTree('functions_vars_r.html','');});
 <li>relNodeTol
 : <a class="el" href="structmaingo_1_1_settings.html#a11905b6d9a1d4bcbe320d7fd6f3e4a71">maingo::Settings</a>
 </li>
-<li>resFileName
-: <a class="el" href="classmaingo_1_1_logger.html#a09a06a9baaf4765d8af2d9baea602962">maingo::Logger</a>
-</li>
 <li>resultAD
 : <a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#adf62f216e68f2545bff7ca8c2380de9d">maingo::ubp::DagObj</a>
 </li>
@@ -174,7 +171,7 @@ $(document).ready(function(){initNavTree('functions_vars_r.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_vars_s.html b/doc/html/functions_vars_s.html
index 60037a90619fa5d9168e5b5398e66d4c0ff8d95b..b263c6d0cd7e4bf9468958f897013649ece7484b 100644
--- a/doc/html/functions_vars_s.html
+++ b/doc/html/functions_vars_s.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Variables</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -144,7 +144,7 @@ $(document).ready(function(){initNavTree('functions_vars_s.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_vars_t.html b/doc/html/functions_vars_t.html
index 4f068999cab5cec5f90ea56a8733651ec144ec78..d3e779df922585df91d6b734f28e77eedf22a5ef 100644
--- a/doc/html/functions_vars_t.html
+++ b/doc/html/functions_vars_t.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Variables</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -112,7 +112,7 @@ $(document).ready(function(){initNavTree('functions_vars_t.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_vars_u.html b/doc/html/functions_vars_u.html
index 7180f3ee763a6f7e58c2f72c2c217c085caedd61..9a812c21234e9473f800aba8dcdb7b6e97585f78 100644
--- a/doc/html/functions_vars_u.html
+++ b/doc/html/functions_vars_u.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Variables</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -117,16 +117,7 @@ $(document).ready(function(){initNavTree('functions_vars_u.html','');});
 : <a class="el" href="structmaingo_1_1_settings.html#af98e35447c8568c1613daf7447a30307">maingo::Settings</a>
 </li>
 <li>upper
-: <a class="el" href="structbab_base_1_1_bounds.html#a275ca3ce07d64ce43824d7e673cfee6b">babBase::Bounds</a>
-</li>
-<li>upperBoundChanged
-: <a class="el" href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#a4ec809446af63cecb30c9359c89cdf40">babBase::OptimizationVariable::ChangedBounds</a>
-</li>
-<li>userLowerBound
-: <a class="el" href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#aba91eb7f14a3c3da0e12a8e77e0d98d2">babBase::OptimizationVariable::ChangedBounds</a>
-</li>
-<li>userUpperBound
-: <a class="el" href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#a29e404e5263dc06f9e24e5719a53dea8">babBase::OptimizationVariable::ChangedBounds</a>
+: <a class="el" href="structbab_base_1_1_bounds.html#a9f4758be8a66b8e7b034af1f04e19d1d">babBase::Bounds</a>
 </li>
 </ul>
 </div><!-- contents -->
@@ -136,7 +127,7 @@ $(document).ready(function(){initNavTree('functions_vars_u.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_vars_v.html b/doc/html/functions_vars_v.html
index 004e18da96bed65be768596588a55c52eb3ae72f..1a765bfe3131629deeed836b9a086859e8bca7b4 100644
--- a/doc/html/functions_vars_v.html
+++ b/doc/html/functions_vars_v.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Variables</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -93,7 +93,7 @@ $(document).ready(function(){initNavTree('functions_vars_v.html','');});
 : <a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#a09fb67cc9c686600e7aa47f2780dfca5">maingo::lbp::DagObj</a>
 </li>
 <li>value
-: <a class="el" href="structmaingo_1_1model_function.html#ad32e16eebdef8b4e555417cc514c43c0">maingo::modelFunction</a>
+: <a class="el" href="structmaingo_1_1_model_function.html#a3468e730a934be8be5bf5ee2f84aacc7">maingo::ModelFunction</a>
 , <a class="el" href="structmaingo_1_1_output_variable.html#acd79e28304c45ee43806093b857489f2">maingo::OutputVariable</a>
 </li>
 <li>vars
@@ -114,7 +114,7 @@ $(document).ready(function(){initNavTree('functions_vars_v.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_vars_w.html b/doc/html/functions_vars_w.html
index 9f81297186dcf1fc71b3f0203e9b5a437c07c55c..247aa04e37ff4029b70b487943882b3f11a49e4c 100644
--- a/doc/html/functions_vars_w.html
+++ b/doc/html/functions_vars_w.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members - Variables</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -98,18 +98,12 @@ $(document).ready(function(){initNavTree('functions_vars_w.html','');});
 <li>writeJson
 : <a class="el" href="structmaingo_1_1_settings.html#a891666257be2a508061697ea80a01ada">maingo::Settings</a>
 </li>
-<li>writeLog
-: <a class="el" href="structmaingo_1_1_settings.html#acec36c3b03a651632336594c40d5026a">maingo::Settings</a>
-</li>
-<li>writeResFile
-: <a class="el" href="structmaingo_1_1_settings.html#a6d6da9a089684ecd8eb3dc560e14c0ca">maingo::Settings</a>
+<li>writeResultFile
+: <a class="el" href="structmaingo_1_1_settings.html#a56d7d3b6246ae45af98b44102edbb28b">maingo::Settings</a>
 </li>
 <li>writeToLogSec
 : <a class="el" href="structmaingo_1_1_settings.html#aa0a8bf977559001dd0a4cda0d7908ebb">maingo::Settings</a>
 </li>
-<li>writeToOtherLanguage
-: <a class="el" href="structmaingo_1_1_settings.html#a440a841800111853d7366c1626242de6">maingo::Settings</a>
-</li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -118,7 +112,7 @@ $(document).ready(function(){initNavTree('functions_vars_w.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_w.html b/doc/html/functions_w.html
index a386b4ffa0bce604cf61c6614ae254f9f2f926ad..cf05cbe19628129db35042acf89a3d6182e2d3a1 100644
--- a/doc/html/functions_w.html
+++ b/doc/html/functions_w.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -94,13 +94,16 @@ $(document).ready(function(){initNavTree('functions_w.html','');});
 </li>
 <li>what()
 : <a class="el" href="classbab_base_1_1_branch_and_bound_base_exception.html#a91e5a78198bf8ef94f140a9ac5978d05">babBase::BranchAndBoundBaseException</a>
-, <a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a382a9c1299485b028ea4a82afe5c1952">maingo::MAiNGOException</a>
+, <a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html#a07682a0877265a921df4401bb1dbb3f6">maingo::MAiNGOException</a>
 </li>
 <li>write_all_iterations_to_csv()
-: <a class="el" href="classmaingo_1_1_logger.html#aa557a6ff14dbd38ab4b251c56caa0f37">maingo::Logger</a>
+: <a class="el" href="classmaingo_1_1_logger.html#a17570df4a0a318ddf4e186a4fc66f476">maingo::Logger</a>
 </li>
 <li>write_all_lines_to_log()
-: <a class="el" href="classmaingo_1_1_logger.html#a99d59c1e627c16bfa155803f42cf28e7">maingo::Logger</a>
+: <a class="el" href="classmaingo_1_1_logger.html#a3134c2ef11ad7c45c3c8467421966021">maingo::Logger</a>
+</li>
+<li>write_model_to_file_in_other_language()
+: <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a8acf1fc912457043365faabd54861d50">maingo::MAiNGO</a>
 </li>
 <li>writeCsv
 : <a class="el" href="structmaingo_1_1_settings.html#a6fb19c2296412e1143f77fd7b949e7e3">maingo::Settings</a>
@@ -108,18 +111,12 @@ $(document).ready(function(){initNavTree('functions_w.html','');});
 <li>writeJson
 : <a class="el" href="structmaingo_1_1_settings.html#a891666257be2a508061697ea80a01ada">maingo::Settings</a>
 </li>
-<li>writeLog
-: <a class="el" href="structmaingo_1_1_settings.html#acec36c3b03a651632336594c40d5026a">maingo::Settings</a>
-</li>
-<li>writeResFile
-: <a class="el" href="structmaingo_1_1_settings.html#a6d6da9a089684ecd8eb3dc560e14c0ca">maingo::Settings</a>
+<li>writeResultFile
+: <a class="el" href="structmaingo_1_1_settings.html#a56d7d3b6246ae45af98b44102edbb28b">maingo::Settings</a>
 </li>
 <li>writeToLogSec
 : <a class="el" href="structmaingo_1_1_settings.html#aa0a8bf977559001dd0a4cda0d7908ebb">maingo::Settings</a>
 </li>
-<li>writeToOtherLanguage
-: <a class="el" href="structmaingo_1_1_settings.html#a440a841800111853d7366c1626242de6">maingo::Settings</a>
-</li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -128,7 +125,7 @@ $(document).ready(function(){initNavTree('functions_w.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_x.html b/doc/html/functions_x.html
index 85b37732433f2e89b21dfa881b77eccbb3baf63e..b00684db6908407cf465bb841f126c84b286fbf0 100644
--- a/doc/html/functions_x.html
+++ b/doc/html/functions_x.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -106,7 +106,7 @@ $(document).ready(function(){initNavTree('functions_x.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/functions_z.html b/doc/html/functions_z.html
index 6d90dd53954e0f685c5157a37fb84c544a35c36c..3cbab5c315b463b2608e65da8afe05c76f0870ba 100644
--- a/doc/html/functions_z.html
+++ b/doc/html/functions_z.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -100,7 +100,7 @@ $(document).ready(function(){initNavTree('functions_z.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/get_time_8cpp.html b/doc/html/get_time_8cpp.html
index 076775c162581f565a8b233b458f52d6eb00d5e8..0093e15a306a29236199b15d774889eda56185aa 100644
--- a/doc/html/get_time_8cpp.html
+++ b/doc/html/get_time_8cpp.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/src/getTime.cpp File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/src/getTime.cpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -99,7 +99,7 @@ $(document).ready(function(){initNavTree('get_time_8cpp.html','');});
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="get_time_8cpp.html">getTime.cpp</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/get_time_8h.html b/doc/html/get_time_8h.html
index 8e55c4d750da6cb3c63dbfbbb2bdcc4d05d07906..f0bf1494e95187c472d85c76a4d7a3dbc37700fa 100644
--- a/doc/html/get_time_8h.html
+++ b/doc/html/get_time_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/getTime.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/getTime.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -119,7 +119,7 @@ Functions</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="get_time_8h.html">getTime.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/get_time_8h_source.html b/doc/html/get_time_8h_source.html
index d0481533fcc3beb4158fa31fb77d2543ec64ad88..365d6c47b8d0431d8b2a1f34ee42a47d0b47e870 100644
--- a/doc/html/get_time_8h_source.html
+++ b/doc/html/get_time_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/getTime.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/getTime.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,9 +90,9 @@ $(document).ready(function(){initNavTree('get_time_8h_source.html','');});
 <div class="title">getTime.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="get_time_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file getTime.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing declaration of functions for querying CPU and wall clock time.</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="keywordtype">double</span> <a class="code" href="namespacemaingo.html#aac4ba5374ae7ff2bdca5126fd30b7f55">get_cpu_time</a>();</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="keywordtype">double</span> <a class="code" href="namespacemaingo.html#a9b8e20d235728ad79d9d23746aadaf15">get_wall_time</a>();</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;}    <span class="comment">// namespace maingo</span></div><div class="ttc" id="namespacemaingo_html_aac4ba5374ae7ff2bdca5126fd30b7f55"><div class="ttname"><a href="namespacemaingo.html#aac4ba5374ae7ff2bdca5126fd30b7f55">maingo::get_cpu_time</a></div><div class="ttdeci">double get_cpu_time()</div><div class="ttdoc">Function for querying CPU time of the process.</div><div class="ttdef"><b>Definition:</b> getTime.cpp:42</div></div>
-<div class="ttc" id="namespacemaingo_html_a9b8e20d235728ad79d9d23746aadaf15"><div class="ttname"><a href="namespacemaingo.html#a9b8e20d235728ad79d9d23746aadaf15">maingo::get_wall_time</a></div><div class="ttdeci">double get_wall_time()</div><div class="ttdoc">Function for querying wall clock time of the process.</div><div class="ttdef"><b>Definition:</b> getTime.cpp:76</div></div>
-<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO</div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
+<a href="get_time_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="keywordtype">double</span> <a class="code" href="namespacemaingo.html#aac4ba5374ae7ff2bdca5126fd30b7f55">get_cpu_time</a>();</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="keywordtype">double</span> <a class="code" href="namespacemaingo.html#a9b8e20d235728ad79d9d23746aadaf15">get_wall_time</a>();</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;}    <span class="comment">// namespace maingo</span></div><div class="ttc" id="namespacemaingo_html_aac4ba5374ae7ff2bdca5126fd30b7f55"><div class="ttname"><a href="namespacemaingo.html#aac4ba5374ae7ff2bdca5126fd30b7f55">maingo::get_cpu_time</a></div><div class="ttdeci">double get_cpu_time()</div><div class="ttdoc">Function for querying CPU time of the process. </div><div class="ttdef"><b>Definition:</b> getTime.cpp:38</div></div>
+<div class="ttc" id="namespacemaingo_html_a9b8e20d235728ad79d9d23746aadaf15"><div class="ttname"><a href="namespacemaingo.html#a9b8e20d235728ad79d9d23746aadaf15">maingo::get_wall_time</a></div><div class="ttdeci">double get_wall_time()</div><div class="ttdoc">Function for querying wall clock time of the process. </div><div class="ttdef"><b>Definition:</b> getTime.cpp:72</div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -101,7 +101,7 @@ $(document).ready(function(){initNavTree('get_time_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="get_time_8h.html">getTime.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/globals.html b/doc/html/globals.html
index 133e4a24404dc4197964bb6a0104e40542b32e55..d89f4d1a9ada658497457c2a0be724d13e893efa 100644
--- a/doc/html/globals.html
+++ b/doc/html/globals.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: File Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -102,10 +102,10 @@ $(document).ready(function(){initNavTree('globals.html','');});
 : <a class="el" href="function_wrapper_8h.html#a29383bf7dba49ebb8215a2ae142bf950">functionWrapper.h</a>
 </li>
 <li>antoine_tsat()
-: <a class="el" href="function_wrapper_8h.html#a3eb8125b56fd6ae41720d1bc3ebe56d3">functionWrapper.h</a>
+: <a class="el" href="function_wrapper_8h.html#a23169e33bacd55bca6e0d043b84495ac">functionWrapper.h</a>
 </li>
 <li>aspen_hig()
-: <a class="el" href="function_wrapper_8h.html#a4b958aea1a60205b1399fd0686a36793">functionWrapper.h</a>
+: <a class="el" href="function_wrapper_8h.html#a9ed331d9b129728e9845de34796fc57c">functionWrapper.h</a>
 </li>
 </ul>
 
@@ -134,10 +134,10 @@ $(document).ready(function(){initNavTree('globals.html','');});
 : <a class="el" href="function_wrapper_8h.html#a9734f0bacf604d4cb1b8f75f285cec2b">functionWrapper.h</a>
 </li>
 <li>dippr107_hig()
-: <a class="el" href="function_wrapper_8h.html#a63c9aad65173515a01c3312c4b53005d">functionWrapper.h</a>
+: <a class="el" href="function_wrapper_8h.html#a9cf00a420deabe42b8124635e852af05">functionWrapper.h</a>
 </li>
 <li>dippr127_hig()
-: <a class="el" href="function_wrapper_8h.html#a93ac82fac115e82cc84115d08e26a9d7">functionWrapper.h</a>
+: <a class="el" href="function_wrapper_8h.html#a23279a80b1dddc9c6df1152f78c347ef">functionWrapper.h</a>
 </li>
 </ul>
 
@@ -165,10 +165,10 @@ $(document).ready(function(){initNavTree('globals.html','');});
 
 <h3><a id="index_i"></a>- i -</h3><ul>
 <li>I
-: <a class="el" href="interval_library_8h.html#a719e28aa7350b1ab0efe53725d78a54f">intervalLibrary.h</a>
+: <a class="el" href="interval_library_8h.html#a752577663acb2d105778a51e93452c1a">intervalLibrary.h</a>
 </li>
 <li>ik_cape_psat()
-: <a class="el" href="function_wrapper_8h.html#a60722162735fd25cb427d126ab74e9f3">functionWrapper.h</a>
+: <a class="el" href="function_wrapper_8h.html#aff78d3d42f157cad660af05d00bd0112">functionWrapper.h</a>
 </li>
 </ul>
 
@@ -219,13 +219,13 @@ $(document).ready(function(){initNavTree('globals.html','');});
 : <a class="el" href="function_wrapper_8h.html#af7f639d12a57ad25c80a3e4a0a15def6">functionWrapper.h</a>
 </li>
 <li>nrtl_g()
-: <a class="el" href="function_wrapper_8h.html#a8951a8260af6f4d7ebe65aae99e995fe">functionWrapper.h</a>
+: <a class="el" href="function_wrapper_8h.html#abee0b55ffe0c790ddd7d46cba79b19e8">functionWrapper.h</a>
 </li>
 <li>nrtl_gdtau()
 : <a class="el" href="function_wrapper_8h.html#a1f9e28e1b6ad5ff2d6f6e4c33d6aaf24">functionWrapper.h</a>
 </li>
 <li>nrtl_gtau()
-: <a class="el" href="function_wrapper_8h.html#aec8d022532775ee32b46fdf69bdda3f3">functionWrapper.h</a>
+: <a class="el" href="function_wrapper_8h.html#ac4bb81cca694afc27f59eb307ac66616">functionWrapper.h</a>
 </li>
 <li>nrtl_tau()
 : <a class="el" href="function_wrapper_8h.html#a8d1832b6e26bba0d76ead168b5260a77">functionWrapper.h</a>
@@ -233,6 +233,13 @@ $(document).ready(function(){initNavTree('globals.html','');});
 </ul>
 
 
+<h3><a id="index_p"></a>- p -</h3><ul>
+<li>PYBIND11_MODULE()
+: <a class="el" href="__pymaingo_8cpp.html#a75e1ee573073a440d528a799ccd1e331">_pymaingo.cpp</a>
+</li>
+</ul>
+
+
 <h3><a id="index_s"></a>- s -</h3><ul>
 <li>schroeder_ethanol_p()
 : <a class="el" href="function_wrapper_8h.html#a7b4403422eeebdd9b79d3a24b7d9f910">functionWrapper.h</a>
@@ -287,7 +294,7 @@ $(document).ready(function(){initNavTree('globals.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/globals_defs.html b/doc/html/globals_defs.html
index 40f9f7acfa7b0d0875dcf18803b4205ac6fcc69a..8151db0c0d839042186130fb94df5e8b6b74fc2c 100644
--- a/doc/html/globals_defs.html
+++ b/doc/html/globals_defs.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: File Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -119,7 +119,7 @@ $(document).ready(function(){initNavTree('globals_defs.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/globals_func.html b/doc/html/globals_func.html
index 55cf88a1945a1e6041d655d7cf7b01115ff56b34..b1f39f96e02a215bec8d333ff2fdb6d161ed7a11 100644
--- a/doc/html/globals_func.html
+++ b/doc/html/globals_func.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: File Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -102,10 +102,10 @@ $(document).ready(function(){initNavTree('globals_func.html','');});
 : <a class="el" href="function_wrapper_8h.html#a29383bf7dba49ebb8215a2ae142bf950">functionWrapper.h</a>
 </li>
 <li>antoine_tsat()
-: <a class="el" href="function_wrapper_8h.html#a3eb8125b56fd6ae41720d1bc3ebe56d3">functionWrapper.h</a>
+: <a class="el" href="function_wrapper_8h.html#a23169e33bacd55bca6e0d043b84495ac">functionWrapper.h</a>
 </li>
 <li>aspen_hig()
-: <a class="el" href="function_wrapper_8h.html#a4b958aea1a60205b1399fd0686a36793">functionWrapper.h</a>
+: <a class="el" href="function_wrapper_8h.html#a9ed331d9b129728e9845de34796fc57c">functionWrapper.h</a>
 </li>
 </ul>
 
@@ -134,10 +134,10 @@ $(document).ready(function(){initNavTree('globals_func.html','');});
 : <a class="el" href="function_wrapper_8h.html#a9734f0bacf604d4cb1b8f75f285cec2b">functionWrapper.h</a>
 </li>
 <li>dippr107_hig()
-: <a class="el" href="function_wrapper_8h.html#a63c9aad65173515a01c3312c4b53005d">functionWrapper.h</a>
+: <a class="el" href="function_wrapper_8h.html#a9cf00a420deabe42b8124635e852af05">functionWrapper.h</a>
 </li>
 <li>dippr127_hig()
-: <a class="el" href="function_wrapper_8h.html#a93ac82fac115e82cc84115d08e26a9d7">functionWrapper.h</a>
+: <a class="el" href="function_wrapper_8h.html#a23279a80b1dddc9c6df1152f78c347ef">functionWrapper.h</a>
 </li>
 </ul>
 
@@ -177,13 +177,13 @@ $(document).ready(function(){initNavTree('globals_func.html','');});
 : <a class="el" href="function_wrapper_8h.html#af7f639d12a57ad25c80a3e4a0a15def6">functionWrapper.h</a>
 </li>
 <li>nrtl_g()
-: <a class="el" href="function_wrapper_8h.html#a8951a8260af6f4d7ebe65aae99e995fe">functionWrapper.h</a>
+: <a class="el" href="function_wrapper_8h.html#abee0b55ffe0c790ddd7d46cba79b19e8">functionWrapper.h</a>
 </li>
 <li>nrtl_gdtau()
 : <a class="el" href="function_wrapper_8h.html#a1f9e28e1b6ad5ff2d6f6e4c33d6aaf24">functionWrapper.h</a>
 </li>
 <li>nrtl_gtau()
-: <a class="el" href="function_wrapper_8h.html#aec8d022532775ee32b46fdf69bdda3f3">functionWrapper.h</a>
+: <a class="el" href="function_wrapper_8h.html#ac4bb81cca694afc27f59eb307ac66616">functionWrapper.h</a>
 </li>
 <li>nrtl_tau()
 : <a class="el" href="function_wrapper_8h.html#a8d1832b6e26bba0d76ead168b5260a77">functionWrapper.h</a>
@@ -191,6 +191,13 @@ $(document).ready(function(){initNavTree('globals_func.html','');});
 </ul>
 
 
+<h3><a id="index_p"></a>- p -</h3><ul>
+<li>PYBIND11_MODULE()
+: <a class="el" href="__pymaingo_8cpp.html#a75e1ee573073a440d528a799ccd1e331">_pymaingo.cpp</a>
+</li>
+</ul>
+
+
 <h3><a id="index_s"></a>- s -</h3><ul>
 <li>schroeder_ethanol_p()
 : <a class="el" href="function_wrapper_8h.html#a7b4403422eeebdd9b79d3a24b7d9f910">functionWrapper.h</a>
@@ -235,7 +242,7 @@ $(document).ready(function(){initNavTree('globals_func.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/globals_type.html b/doc/html/globals_type.html
index db3a79765f74a6c5e76015319e4143e010d4f340..7c2875bfc2da93e59bc5a79244c39303c3f4666b 100644
--- a/doc/html/globals_type.html
+++ b/doc/html/globals_type.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: File Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -88,7 +88,7 @@ $(document).ready(function(){initNavTree('globals_type.html','');});
 <div class="contents">
 &#160;<ul>
 <li>I
-: <a class="el" href="interval_library_8h.html#a719e28aa7350b1ab0efe53725d78a54f">intervalLibrary.h</a>
+: <a class="el" href="interval_library_8h.html#a752577663acb2d105778a51e93452c1a">intervalLibrary.h</a>
 </li>
 <li>MC
 : <a class="el" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">intervalLibrary.h</a>
@@ -107,7 +107,7 @@ $(document).ready(function(){initNavTree('globals_type.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/hierarchy.html b/doc/html/hierarchy.html
index 4272b0582fa64b946fd97cda8c693ea0792449c3..7aaffac9b3af08a1dd81fa322b6c07f43522d8ac 100644
--- a/doc/html/hierarchy.html
+++ b/doc/html/hierarchy.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Class Hierarchy</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -100,50 +100,50 @@ $(document).ready(function(){initNavTree('hierarchy.html','');});
 <tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1bab_1_1_branch_and_bound.html" target="_self">maingo::bab::BranchAndBound</a></td><td class="desc">This class contains the main algorithm, including handling of pre-processing routines and managing the B&amp;B tree as well as the respective sub-solvers </td></tr>
 <tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classbab_base_1_1_brancher.html" target="_self">babBase::Brancher</a></td><td class="desc">This class contains the logic for branching on nodes in the B&amp;B-Tree and selecting nodes to be processed </td></tr>
 <tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structbab_base_1_1_branching_history_info.html" target="_self">babBase::BranchingHistoryInfo</a></td><td class="desc">Struct for collecting all information that must be saved about a node, so that after it is retrieved from the tree and processed, pseudocosts can be calculated </td></tr>
-<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structbab_base_1_1_optimization_variable_1_1_changed_bounds.html" target="_self">babBase::OptimizationVariable::ChangedBounds</a></td><td class="desc">Auxiliary struct for storing changed bounds of an optimization variable </td></tr>
-<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1_constraint.html" target="_self">maingo::Constraint</a></td><td class="desc">Struct for storing information about constraints </td></tr>
-<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1_constraint_container.html" target="_self">maingo::ConstraintContainer</a></td><td class="desc">Containter for constraint evaluation </td></tr>
-<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html" target="_self">maingo::lbp::DagObj</a></td><td class="desc">Struct for storing all needed Directed acyclic Graph objects for the upper bounding solver </td></tr>
-<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html" target="_self">maingo::ubp::DagObj</a></td><td class="desc">Struct for storing all needed Directed acyclic Graph objects for the upper bounding solver </td></tr>
-<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1_evaluation_container.html" target="_self">maingo::EvaluationContainer</a></td><td class="desc">Struct for storing the values returned by model evaluation at the given point "var" </td></tr>
-<tr id="row_14_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_14_" class="arrow" onclick="toggleFolder('14_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>exception</b></td><td class="desc"></td></tr>
-<tr id="row_14_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classbab_base_1_1_branch_and_bound_base_exception.html" target="_self">babBase::BranchAndBoundBaseException</a></td><td class="desc">This class defines the exceptions thrown by BranchAndBoundBase </td></tr>
-<tr id="row_14_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html" target="_self">maingo::MAiNGOException</a></td><td class="desc">This class defines the exceptions thrown by <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> </td></tr>
-<tr id="row_15_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_15_" class="arrow" onclick="toggleFolder('15_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>KTRProblem</b></td><td class="desc"></td></tr>
-<tr id="row_15_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html" target="_self">maingo::ubp::KnitroProblem</a></td><td class="desc">Class for representing problems to be solved by Knitro, providing an interface to the problem definition in problem.h </td></tr>
-<tr id="row_16_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html" target="_self">maingo::lbp::LbpDualInfo</a></td><td class="desc">Container for information from the LBP that is needed in DBBT and probing, used for communicating the results via bab </td></tr>
-<tr id="row_17_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_logger.html" target="_self">maingo::Logger</a></td><td class="desc">This class contains all logging and output information </td></tr>
-<tr id="row_18_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_18_" class="arrow" onclick="toggleFolder('18_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html" target="_self">maingo::lbp::LowerBoundingSolver</a></td><td class="desc">Wrapper for handling the lower bounding problems as well as optimization-based bounds tightening (OBBT) </td></tr>
-<tr id="row_18_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html" target="_self">maingo::lbp::LbpClp</a></td><td class="desc">Wrapper for handling the lower bounding problems by interfacing CLP </td></tr>
-<tr id="row_18_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html" target="_self">maingo::lbp::LbpCplex</a></td><td class="desc">Wrapper for handling the lower bounding problems by interfacing CPLEX </td></tr>
-<tr id="row_18_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html" target="_self">maingo::lbp::LbpInterval</a></td><td class="desc">Wrapper for handling the lower bounding problems by using interval arithmetics. We currently do a bit too much work, if the subgradient interval heuristic is not used, since we additionally compute the McCormick relaxations </td></tr>
-<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" target="_self">maingo::MAiNGO</a></td><td class="desc">This class is the <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> solver holding the B&amp;B tree, upper bounding solver, lower bounding solver and settings </td></tr>
-<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_maingo_evaluator.html" target="_self">maingo::MaingoEvaluator</a></td><td class="desc">Evaluates ALE expressions to Var </td></tr>
-<tr id="row_21_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_21_" class="arrow" onclick="toggleFolder('21_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html" target="_self">maingo::MAiNGOmodel</a></td><td class="desc">This class is the base class for models to be solved by <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> </td></tr>
-<tr id="row_21_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_ale_model.html" target="_self">maingo::AleModel</a></td><td class="desc">This class provides the interface for a program composed of ALE expressions </td></tr>
-<tr id="row_21_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html" target="_self">maingo::MAiNGOmodelEpsCon</a></td><td class="desc">This class is the base class for implementing bi-objective problems </td></tr>
-<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1model_function.html" target="_self">maingo::modelFunction</a></td><td class="desc">Struct for making work with the <a class="el" href="structmaingo_1_1_evaluation_container.html" title="Struct for storing the values returned by model evaluation at the given point &quot;var&quot;.">EvaluationContainer</a> easier for the user and also to ensure backward compatibility </td></tr>
-<tr id="row_23_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structbab_base_1_1_node_priority_comparator.html" target="_self">babBase::NodePriorityComparator</a></td><td class="desc">Functor for comparing node priorities </td></tr>
-<tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html" target="_self">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a></td><td class="desc">Specialization of the structure mc::Op for use of the type UbpQuadExpr as a template parameter in other MC++ types </td></tr>
-<tr id="row_25_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classbab_base_1_1_optimization_variable.html" target="_self">babBase::OptimizationVariable</a></td><td class="desc">Class for representing an optimization variable specified by the user </td></tr>
-<tr id="row_26_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1_output_variable.html" target="_self">maingo::OutputVariable</a></td><td class="desc">Struct for storing additional output variables </td></tr>
-<tr id="row_27_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classbab_base_1_1_out_var.html" target="_self">babBase::OutVar&lt; T &gt;</a></td><td class="desc">Helper class that can be used to enforce the caller to explicitly state that the variable he passed may be changed </td></tr>
-<tr id="row_28_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_28_" class="arrow" onclick="toggleFolder('28_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>parser</b></td><td class="desc"></td></tr>
-<tr id="row_28_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_program_parser.html" target="_self">maingo::ProgramParser</a></td><td class="desc">Parser specialization for parsing a <a class="el" href="structmaingo_1_1_program.html" title="Container Class for ALE expressions comprising an optimization problem.">maingo::Program</a> </td></tr>
-<tr id="row_29_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1_program.html" target="_self">maingo::Program</a></td><td class="desc">Container Class for ALE expressions comprising an optimization problem </td></tr>
-<tr id="row_30_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structbab_base_1_1_pruning_score_comparator.html" target="_self">babBase::PruningScoreComparator</a></td><td class="desc">Functor for comparing pruning scores </td></tr>
-<tr id="row_31_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1_settings.html" target="_self">maingo::Settings</a></td><td class="desc">Struct for storing settings for <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> </td></tr>
-<tr id="row_32_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_32_" class="arrow" onclick="toggleFolder('32_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>TNLP</b></td><td class="desc"></td></tr>
-<tr id="row_32_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html" target="_self">maingo::ubp::IpoptProblem</a></td><td class="desc">Class for representing problems to be solved by IpOpt, providing an interface to the problem definition in problem.h used by MC++ </td></tr>
-<tr id="row_33_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" target="_self">maingo::ubp::UbpQuadExpr</a></td><td class="desc">Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage </td></tr>
-<tr id="row_34_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1ubp_1_1_ubp_structure.html" target="_self">maingo::ubp::UbpStructure</a></td><td class="desc">Struct for storing structure information for the upper bounding solver </td></tr>
-<tr id="row_35_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_35_" class="arrow" onclick="toggleFolder('35_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html" target="_self">maingo::ubp::UpperBoundingSolver</a></td><td class="desc">Base class for wrappers for handling the upper bounding problems </td></tr>
-<tr id="row_35_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html" target="_self">maingo::ubp::UbpClp</a></td><td class="desc">Wrapper for handling the upper bounding problems by interfacing CLP </td></tr>
-<tr id="row_35_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1ubp_1_1_ubp_cplex.html" target="_self">maingo::ubp::UbpCplex</a></td><td class="desc">Wrapper for handling the upper bounding problems by interfacing CPLEX </td></tr>
-<tr id="row_35_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html" target="_self">maingo::ubp::UbpIpopt</a></td><td class="desc">Wrapper for handling the upper bounding problems by interfacing Ipopt </td></tr>
-<tr id="row_35_3_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1ubp_1_1_ubp_knitro.html" target="_self">maingo::ubp::UbpKnitro</a></td><td class="desc">Wrapper for handling the upper bounding problems by interfacing Knitro </td></tr>
-<tr id="row_35_4_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html" target="_self">maingo::ubp::UbpNLopt</a></td><td class="desc">Wrapper for handling the upper bounding problems by interfacing NLopt </td></tr>
-<tr id="row_36_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_variable_lister.html" target="_self">maingo::VariableLister</a></td><td class="desc">Serializes a given symbol and lists it into a vector </td></tr>
+<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1_constraint.html" target="_self">maingo::Constraint</a></td><td class="desc">Struct for storing information about constraints </td></tr>
+<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1_constraint_container.html" target="_self">maingo::ConstraintContainer</a></td><td class="desc">Containter for constraint evaluation </td></tr>
+<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html" target="_self">maingo::lbp::DagObj</a></td><td class="desc">Struct for storing all needed Directed acyclic Graph objects for the upper bounding solver </td></tr>
+<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html" target="_self">maingo::ubp::DagObj</a></td><td class="desc">Struct for storing all needed Directed acyclic Graph objects for the upper bounding solver </td></tr>
+<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1_evaluation_container.html" target="_self">maingo::EvaluationContainer</a></td><td class="desc">Struct for storing the values returned by model evaluation at the given point "var" </td></tr>
+<tr id="row_13_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_13_" class="arrow" onclick="toggleFolder('13_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>exception</b></td><td class="desc"></td></tr>
+<tr id="row_13_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classbab_base_1_1_branch_and_bound_base_exception.html" target="_self">babBase::BranchAndBoundBaseException</a></td><td class="desc">This class defines the exceptions thrown by BranchAndBoundBase </td></tr>
+<tr id="row_13_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_m_ai_n_g_o_exception.html" target="_self">maingo::MAiNGOException</a></td><td class="desc">This class defines the exceptions thrown by <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> </td></tr>
+<tr id="row_14_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_14_" class="arrow" onclick="toggleFolder('14_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>KTRProblem</b></td><td class="desc"></td></tr>
+<tr id="row_14_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1ubp_1_1_knitro_problem.html" target="_self">maingo::ubp::KnitroProblem</a></td><td class="desc">Class for representing problems to be solved by Knitro, providing an interface to the problem definition in problem.h </td></tr>
+<tr id="row_15_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html" target="_self">maingo::lbp::LbpDualInfo</a></td><td class="desc">Container for information from the LBP that is needed in DBBT and probing, used for communicating the results via bab </td></tr>
+<tr id="row_16_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_logger.html" target="_self">maingo::Logger</a></td><td class="desc">This class contains all logging and output information </td></tr>
+<tr id="row_17_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_17_" class="arrow" onclick="toggleFolder('17_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html" target="_self">maingo::lbp::LowerBoundingSolver</a></td><td class="desc">Wrapper for handling the lower bounding problems as well as optimization-based bounds tightening (OBBT) </td></tr>
+<tr id="row_17_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1lbp_1_1_lbp_clp.html" target="_self">maingo::lbp::LbpClp</a></td><td class="desc">Wrapper for handling the lower bounding problems by interfacing CLP </td></tr>
+<tr id="row_17_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1lbp_1_1_lbp_cplex.html" target="_self">maingo::lbp::LbpCplex</a></td><td class="desc">Wrapper for handling the lower bounding problems by interfacing CPLEX </td></tr>
+<tr id="row_17_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1lbp_1_1_lbp_interval.html" target="_self">maingo::lbp::LbpInterval</a></td><td class="desc">Wrapper for handling the lower bounding problems by using interval arithmetics. We currently do a bit too much work, if the subgradient interval heuristic is not used, since we additionally compute the McCormick relaxations </td></tr>
+<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" target="_self">maingo::MAiNGO</a></td><td class="desc">This class is the <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> solver holding the B&amp;B tree, upper bounding solver, lower bounding solver and settings </td></tr>
+<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_maingo_evaluator.html" target="_self">maingo::MaingoEvaluator</a></td><td class="desc">Evaluates ALE expressions to Var </td></tr>
+<tr id="row_20_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_20_" class="arrow" onclick="toggleFolder('20_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html" target="_self">maingo::MAiNGOmodel</a></td><td class="desc">This class is the base class for models to be solved by <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> </td></tr>
+<tr id="row_20_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_ale_model.html" target="_self">maingo::AleModel</a></td><td class="desc">This class provides the interface for a program composed of ALE expressions </td></tr>
+<tr id="row_20_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html" target="_self">maingo::MAiNGOmodelEpsCon</a></td><td class="desc">This class is the base class for implementing bi-objective problems </td></tr>
+<tr id="row_20_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_py_m_ai_n_g_omodel.html" target="_self">PyMAiNGOmodel</a></td><td class="desc"></td></tr>
+<tr id="row_21_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1_model_function.html" target="_self">maingo::ModelFunction</a></td><td class="desc">Struct for making work with the <a class="el" href="structmaingo_1_1_evaluation_container.html" title="Struct for storing the values returned by model evaluation at the given point &quot;var&quot;. ">EvaluationContainer</a> easier for the user and also to ensure backward compatibility </td></tr>
+<tr id="row_22_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structbab_base_1_1_node_priority_comparator.html" target="_self">babBase::NodePriorityComparator</a></td><td class="desc">Functor for comparing node priorities </td></tr>
+<tr id="row_23_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html" target="_self">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</a></td><td class="desc">Specialization of the structure mc::Op for use of the type UbpQuadExpr as a template parameter in other MC++ types </td></tr>
+<tr id="row_24_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classbab_base_1_1_optimization_variable.html" target="_self">babBase::OptimizationVariable</a></td><td class="desc">Class for representing an optimization variable specified by the user </td></tr>
+<tr id="row_25_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1_output_variable.html" target="_self">maingo::OutputVariable</a></td><td class="desc">Struct for storing additional output variables </td></tr>
+<tr id="row_26_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classbab_base_1_1_out_var.html" target="_self">babBase::OutVar&lt; T &gt;</a></td><td class="desc">Helper class that can be used to enforce the caller to explicitly state that the variable he passed may be changed </td></tr>
+<tr id="row_27_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_27_" class="arrow" onclick="toggleFolder('27_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>parser</b></td><td class="desc"></td></tr>
+<tr id="row_27_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_program_parser.html" target="_self">maingo::ProgramParser</a></td><td class="desc">Parser specialization for parsing a <a class="el" href="structmaingo_1_1_program.html" title="Container Class for ALE expressions comprising an optimization problem. ">maingo::Program</a> </td></tr>
+<tr id="row_28_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1_program.html" target="_self">maingo::Program</a></td><td class="desc">Container Class for ALE expressions comprising an optimization problem </td></tr>
+<tr id="row_29_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structbab_base_1_1_pruning_score_comparator.html" target="_self">babBase::PruningScoreComparator</a></td><td class="desc">Functor for comparing pruning scores </td></tr>
+<tr id="row_30_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1_settings.html" target="_self">maingo::Settings</a></td><td class="desc">Struct for storing settings for <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> </td></tr>
+<tr id="row_31_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_31_" class="arrow" onclick="toggleFolder('31_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>TNLP</b></td><td class="desc"></td></tr>
+<tr id="row_31_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1ubp_1_1_ipopt_problem.html" target="_self">maingo::ubp::IpoptProblem</a></td><td class="desc">Class for representing problems to be solved by IpOpt, providing an interface to the problem definition in problem.h used by MC++ </td></tr>
+<tr id="row_32_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" target="_self">maingo::ubp::UbpQuadExpr</a></td><td class="desc">Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage </td></tr>
+<tr id="row_33_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmaingo_1_1ubp_1_1_ubp_structure.html" target="_self">maingo::ubp::UbpStructure</a></td><td class="desc">Struct for storing structure information for the upper bounding solver </td></tr>
+<tr id="row_34_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_34_" class="arrow" onclick="toggleFolder('34_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html" target="_self">maingo::ubp::UpperBoundingSolver</a></td><td class="desc">Base class for wrappers for handling the upper bounding problems </td></tr>
+<tr id="row_34_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1ubp_1_1_ubp_clp.html" target="_self">maingo::ubp::UbpClp</a></td><td class="desc">Wrapper for handling the upper bounding problems by interfacing CLP </td></tr>
+<tr id="row_34_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1ubp_1_1_ubp_cplex.html" target="_self">maingo::ubp::UbpCplex</a></td><td class="desc">Wrapper for handling the upper bounding problems by interfacing CPLEX </td></tr>
+<tr id="row_34_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html" target="_self">maingo::ubp::UbpIpopt</a></td><td class="desc">Wrapper for handling the upper bounding problems by interfacing Ipopt </td></tr>
+<tr id="row_34_3_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1ubp_1_1_ubp_knitro.html" target="_self">maingo::ubp::UbpKnitro</a></td><td class="desc">Wrapper for handling the upper bounding problems by interfacing Knitro </td></tr>
+<tr id="row_34_4_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html" target="_self">maingo::ubp::UbpNLopt</a></td><td class="desc">Wrapper for handling the upper bounding problems by interfacing NLopt </td></tr>
+<tr id="row_35_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmaingo_1_1_variable_lister.html" target="_self">maingo::VariableLister</a></td><td class="desc">Serializes a given symbol and lists it into a vector </td></tr>
 </table>
 </div><!-- directory -->
 </div><!-- contents -->
@@ -153,7 +153,7 @@ $(document).ready(function(){initNavTree('hierarchy.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/hierarchy.js b/doc/html/hierarchy.js
index 5e8df5ce84d00b919d2a62085af8c08a45dba6f6..5b881ed6e1182ce9fd42a0f9693471793f0b6e9d 100644
--- a/doc/html/hierarchy.js
+++ b/doc/html/hierarchy.js
@@ -8,7 +8,6 @@ var hierarchy =
     [ "maingo::bab::BranchAndBound", "classmaingo_1_1bab_1_1_branch_and_bound.html", null ],
     [ "babBase::Brancher", "classbab_base_1_1_brancher.html", null ],
     [ "babBase::BranchingHistoryInfo", "structbab_base_1_1_branching_history_info.html", null ],
-    [ "babBase::OptimizationVariable::ChangedBounds", "structbab_base_1_1_optimization_variable_1_1_changed_bounds.html", null ],
     [ "maingo::Constraint", "structmaingo_1_1_constraint.html", null ],
     [ "maingo::ConstraintContainer", "structmaingo_1_1_constraint_container.html", null ],
     [ "maingo::lbp::DagObj", "structmaingo_1_1lbp_1_1_dag_obj.html", null ],
@@ -32,9 +31,10 @@ var hierarchy =
     [ "maingo::MaingoEvaluator", "classmaingo_1_1_maingo_evaluator.html", null ],
     [ "maingo::MAiNGOmodel", "classmaingo_1_1_m_ai_n_g_omodel.html", [
       [ "maingo::AleModel", "classmaingo_1_1_ale_model.html", null ],
-      [ "maingo::MAiNGOmodelEpsCon", "classmaingo_1_1_m_ai_n_g_omodel_eps_con.html", null ]
+      [ "maingo::MAiNGOmodelEpsCon", "classmaingo_1_1_m_ai_n_g_omodel_eps_con.html", null ],
+      [ "PyMAiNGOmodel", "class_py_m_ai_n_g_omodel.html", null ]
     ] ],
-    [ "maingo::modelFunction", "structmaingo_1_1model_function.html", null ],
+    [ "maingo::ModelFunction", "structmaingo_1_1_model_function.html", null ],
     [ "babBase::NodePriorityComparator", "structbab_base_1_1_node_priority_comparator.html", null ],
     [ "mc::Op< maingo::ubp::UbpQuadExpr >", "structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html", null ],
     [ "babBase::OptimizationVariable", "classbab_base_1_1_optimization_variable.html", null ],
diff --git a/doc/html/index.html b/doc/html/index.html
index c2860fef65932ce4a702010dd0fa0bbcda8f134a..1228242d0dc6b02f7b8112145e9f0b3faee68317 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: McCormick-based Algorithm for mixed-integer Nonlinear Global Optimization</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -85,26 +85,23 @@ $(document).ready(function(){initNavTree('index.html','');});
 </iframe>
 </div>
 
-<div class="PageDoc"><div class="header">
+<div class="header">
   <div class="headertitle">
 <div class="title">McCormick-based Algorithm for mixed-integer Nonlinear Global Optimization </div>  </div>
 </div><!--header-->
 <div class="contents">
 <div class="textblock"><dl class="section author"><dt>Authors</dt><dd>Dominik Bongartz, Jaromił Najman, Susanne Sass, Alexander Mitsos </dd></dl>
-<dl class="section date"><dt>Date</dt><dd>12.06.2020</dd></dl>
-<p>Thank you for using the beta version 0.3.0 of MAiNGO! If you have any issues, concerns, or comments, please communicate them using the Issues functionality at <a href="https://git.rwth-aachen.de/avt.svt/public/maingo.git">https://git.rwth-aachen.de/avt.svt/public/maingo.git</a> or send an e-mail to <a href="#" onclick="location.href='mai'+'lto:'+'MAi'+'NG'+'O@a'+'vt'+'.rw'+'th'+'-aa'+'ch'+'en.'+'de'; return false;">MAiNG<span style="display: none;">.nosp@m.</span>O@av<span style="display: none;">.nosp@m.</span>t.rwt<span style="display: none;">.nosp@m.</span>h-aa<span style="display: none;">.nosp@m.</span>chen.<span style="display: none;">.nosp@m.</span>de</a></p>
-<p><b>How to Cite MAiNGO?</b></p>
-<p>Please cite the latest <a href="http://permalink.avt.rwth-aachen.de/?id=729717">MAiNGO report</a>:<br />
- Bongartz, D., Najman, J., Sass, S. and Mitsos, A., MAiNGO - <b>M</b>cCormick-based <b>A</b>lgorithm for mixed-<b>i</b>nteger <b>N</b>onlinear <b>G</b>lobal <b>O</b>ptimization. Technical Report, Process Systems Engineering (AVT.SVT), RWTH Aachen University (2018).</p>
+<dl class="section date"><dt>Date</dt><dd>2017-2021</dd></dl>
+<p>Thank you for using the beta version of MAiNGO! If you have any issues, concerns, or comments, please communicate them using the <a href="https://git.rwth-aachen.de/avt.svt/public/maingo/-/issues">"Issues" functionality in GitLab</a> or send an e-mail to <a href="#" onclick="location.href='mai'+'lto:'+'MAi'+'NG'+'O@a'+'vt'+'.rw'+'th'+'-aa'+'ch'+'en.'+'de'; return false;">MAiNG<span style="display: none;">.nosp@m.</span>O@av<span style="display: none;">.nosp@m.</span>t.rwt<span style="display: none;">.nosp@m.</span>h-aa<span style="display: none;">.nosp@m.</span>chen.<span style="display: none;">.nosp@m.</span>de</a></p>
 <h1><a class="anchor" id="intro_sec"></a>
 Introduction</h1>
 <p>MAiNGO can solve problems of the following form, returning a solution that is delta-feasible and epsilon-optimal (where delta and epsilon are the respective tolerances specified by the user; cf., e.g., M. Locatelli &amp; F. Schoen (2013), Global Optimization: Theory, Algorithms, and Applications) or showing that no delta-feasible point exists:  <style>div.image img[src="NLP.PNG"]{width:6cm;align:left}</style>  </p><div class="image">
 <img src="NLP.png" alt="NLP.png"/>
 </div>
-<p>where the functions f, g and h can be computer codes implementing factorable functions (including multivariate outer functions as introduced by Tsoukalas &amp; Mitsos, J. Global Optim. 59 (2014) 633). For details on what you may or may not do within these functions, see Section <a class="el" href="writing_problem.html">Modeling in MAiNGO</a>. Note, however, that the relaxations and most bounding operations are not validated in the sense that round-off error is not accounted for. In this sense, the results cannot be fully guaranteed.</p>
+<p>where the functions f, g and h can be computer codes implementing factorable functions (including multivariate outer functions as introduced by <a href="https://link.springer.com/article/10.1007/s10898-014-0176-0">Tsoukalas &amp; Mitsos 2014</a>). For details on what you may or may not do within these functions, see Section <a class="el" href="writing_problem.html">Modeling in MAiNGO</a>. Note, however, that the relaxations and most bounding operations are not validated in the sense that round-off error is not accounted for. In this sense, the results cannot be fully guaranteed.</p>
 <h2><a class="anchor" id="examples"></a>
 Example Applications</h2>
-<p>MAiNGO works particularly well for problems which can be formulated in a reduced space manner (<a href="https://link.springer.com/article/10.1007/s10898-017-0547-4">Bongartz &amp; Mitsos 2017a</a>).</p>
+<p>MAiNGO works particularly well for problems which can be formulated in a reduced space manner (<a href="https://epubs.siam.org/doi/abs/10.1137/080717341">Mitsos et al. 2009</a>, <a href="https://link.springer.com/article/10.1007/s10898-017-0547-4">Bongartz &amp; Mitsos 2017a</a>).</p>
 <p>MAiNGO has been successfully applied to multiple flowsheet-optimization problems (<a href="https://link.springer.com/article/10.1007/s10898-017-0547-4">Bongartz &amp; Mitsos 2017a</a>, <a href="https://www.sciencedirect.com/science/article/pii/B9780444639653501070">Bongartz &amp; Mitsos 2017b</a>, <a href="https://aiche.onlinelibrary.wiley.com/doi/full/10.1002/aic.16507">Bongartz &amp; Mitsos 2019</a>).</p>
 <p> <style>div.image img[src="applications.png"]{width:20cm;align:left}</style>  </p><div class="image">
 <img src="applications.png" alt="applications.png" width="6cm"/>
@@ -112,14 +109,18 @@ Example Applications</h2>
 <p>MAiNGO holds specialized relaxations for functions found in the field of chemical engineering (<a href="https://www.sciencedirect.com/science/article/pii/B9780444634283502721">Najman &amp; Mitsos 2016</a>, <a href="https://www.sciencedirect.com/science/article/abs/pii/S0098135419309494">Najman et al. 2019</a>, <a href="https://link.springer.com/article/10.1007/s11081-020-09502-1">Bongartz et al. 2020</a>). All implemented special intrinsic functions can be found at <code>doc/implementedFunctions/Implemented_functions.pdf</code>.</p>
 <h2><a class="anchor" id="MeLOn_examples"></a>
 Example Applications with Machine-Learning models (MeLOn)</h2>
-<p>MAiNGO automatically includes the "MeLOn - Machine Learning models for Optimization" toolbox as a submodule (<a href="https://git.rwth-aachen.de/avt.svt/public/MeLOn">MeLOn Git</a>). MeLOn allows the easy integration of various machine-learning models into optimization problems. Our previous work has shown that the reduced-space formulation and McCormick relaxations used by MAiNGO are favorable for the optimization with machine-learning surrogate models embedded.</p>
-<p>MAiNGO and MeLOn have already been used for optimization problems with artificial neural networks embedded (<a href="https://link.springer.com/article/10.1007/s10957-018-1396-0">Schweidtmann &amp; Mitsos 2018</a>) and Gaussian processes embedded (<a href="https://arxiv.org/abs/2005.10902">Schweidtmann et al. 2020</a>). Machine-learning models have also been combined with mechanistic process models for various applications including membrane science (<a href="https://www.sciencedirect.com/science/article/pii/S0376738818324293">Rall et al. 2019</a>, <a href="https://doi.org/10.1016/j.memsci.2020.117860">Rall et al. 2020a</a>, <a href="https://doi.org/10.1016/j.memsci.2020.117860">Rall et al. 2020b</a>, ), enery process optimization (<a href="https://www.sciencedirect.com/science/article/abs/pii/S009813541830886X">Schweidtmann et al. 2019</a>, <a href="https://www.sciencedirect.com/science/article/pii/B9780128186343501570">Schweidtmann et al. 2019</a>, <a href="https://www.sciencedirect.com/science/article/pii/B9780128185971500680">Huster et al. 2019a</a>, <a href="https://link.springer.com/article/10.1007/s11081-019-09454-1">Huster et al. 2019b</a>), and nonlinear scheduling (<a href="https://doi.org/10.1016/j.compchemeng.2019.106598">Schäfer et al. 2020</a>).</p>
+<p>MAiNGO automatically includes the <a href="https://git.rwth-aachen.de/avt.svt/public/MeLOn">"MeLOn - Machine Learning models for Optimization"</a> toolbox as a submodule. MeLOn allows the easy integration of various machine-learning models into optimization problems. Our previous work has shown that the reduced-space formulation and McCormick relaxations used by MAiNGO are favorable for the optimization with machine-learning surrogate models embedded.</p>
+<p>MAiNGO and MeLOn have already been used for optimization problems with artificial neural networks embedded (<a href="https://link.springer.com/article/10.1007/s10957-018-1396-0">Schweidtmann &amp; Mitsos 2018</a>) and Gaussian processes embedded (<a href="https://arxiv.org/abs/2005.10902">Schweidtmann et al. 2020</a>). Machine-learning models have also been combined with mechanistic process models for various applications including membrane science (<a href="https://www.sciencedirect.com/science/article/pii/S0376738818324293">Rall et al. 2019</a>, <a href="https://doi.org/10.1016/j.memsci.2020.117860">Rall et al. 2020a</a>, <a href="https://doi.org/10.1016/j.memsci.2020.117860">Rall et al. 2020b</a>, ), energy process optimization (<a href="https://www.sciencedirect.com/science/article/abs/pii/S009813541830886X">Schweidtmann et al. 2019</a>, <a href="https://www.sciencedirect.com/science/article/pii/B9780128186343501570">Schweidtmann et al. 2019</a>, <a href="https://www.sciencedirect.com/science/article/pii/B9780128185971500680">Huster et al. 2019a</a>, <a href="https://link.springer.com/article/10.1007/s11081-019-09454-1">Huster et al. 2019b</a>), and nonlinear scheduling (<a href="https://doi.org/10.1016/j.compchemeng.2019.106598">Schäfer et al. 2020</a>).</p>
+<h2><a class="anchor" id="cite"></a>
+How to Cite MAiNGO</h2>
+<p>If you use MAiNGO, please cite the latest MAiNGO report:<br />
+ Bongartz, D., Najman, J., Sass, S. and Mitsos, A., MAiNGO - <b>M</b>cCormick-based <b>A</b>lgorithm for mixed-<b>i</b>nteger <b>N</b>onlinear <b>G</b>lobal <b>O</b>ptimization. Technical Report, Process Systems Engineering (AVT.SVT), RWTH Aachen University (2018). <a href="http://permalink.avt.rwth-aachen.de/?id=729717">http://permalink.avt.rwth-aachen.de/?id=729717</a>.</p>
 <h2><a class="anchor" id="TOC"></a>
 Table of Content</h2>
 <p>This manual is divided in the following sections:</p><ul>
-<li><a class="el" href="install.html">Installing and Executing MAiNGO</a></li>
+<li><a class="el" href="install.html">Obtaining, Building, and Executing MAiNGO</a></li>
 <li><a class="el" href="writing_problem.html">Modeling in MAiNGO</a></li>
-<li><a class="el" href="maingo_output.html">MAiNGO output</a></li>
+<li><a class="el" href="maingo_output.html">MAiNGO Output</a></li>
 <li><a class="el" href="algorithm.html">How does MAiNGO work?</a></li>
 <li><a class="el" href="parallel_version.html">MAiNGO - Parallel Version</a></li>
 <li><a class="el" href="special_uses.html">Special Uses of MAiNGO</a></li>
@@ -128,15 +129,14 @@ Table of Content</h2>
 <li><a class="el" href="faq.html">What can go wrong?</a></li>
 <li><a class="el" href="bib.html">Where can I read more?</a> </li>
 </ul>
-</div></div><!-- PageDoc -->
-</div><!-- contents -->
+</div></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/index.js b/doc/html/index.js
index 8040e47e78466632299ea5acc551bbc4f63b9658..97024f2cbc5edf8a989d0d6881d105afaa51cb3f 100644
--- a/doc/html/index.js
+++ b/doc/html/index.js
@@ -3,18 +3,19 @@ var index =
     [ "Introduction", "index.html#intro_sec", [
       [ "Example Applications", "index.html#examples", null ],
       [ "Example Applications with Machine-Learning models (MeLOn)", "index.html#MeLOn_examples", null ],
+      [ "How to Cite MAiNGO", "index.html#cite", null ],
       [ "Table of Content", "index.html#TOC", null ]
     ] ],
-    [ "Installing and Executing MAiNGO", "install.html", [
+    [ "Obtaining, Building, and Executing MAiNGO", "install.html", [
       [ "Obtaining MAiNGO", "install.html#get_maingo", [
         [ "Updating MAiNGO", "install.html#update_maingo", null ]
       ] ],
       [ "Required Software", "install.html#req_software", null ],
       [ "Generating and Compiling the Project", "install.html#cmake", [
         [ "Windows", "install.html#cmake_win", null ],
-        [ "Linux and Mac OS", "install.html#cmake_linux_os", null ],
-        [ "Executing MAiNGO", "install.html#executing_maingo", null ]
-      ] ]
+        [ "Linux and MacOS", "install.html#cmake_linux_os", null ]
+      ] ],
+      [ "Executing MAiNGO", "install.html#executing_maingo", null ]
     ] ],
     [ "Modeling in MAiNGO", "writing_problem.html", [
       [ "Modeling with ALE", "writing_problem.html#modeling_ALE", [
@@ -39,16 +40,19 @@ var index =
           [ "Set Expressions", "writing_problem.html#set_expressions", null ]
         ] ]
       ] ],
-      [ "Modeling via C++", "writing_problem.html#modeling_cpp", [
-        [ "Advanced Modeling", "writing_problem.html#advanced_modeling", null ]
+      [ "Modeling via C++ or Python", "writing_problem.html#modeling_cpp_python", [
+        [ "Modeling Tips and Tricks", "writing_problem.html#advanced_modeling", null ]
       ] ],
       [ "Parsing GAMS Files", "writing_problem.html#parsing_gams", null ]
     ] ],
-    [ "MAiNGO output", "maingo_output.html", [
-      [ "MAiNGO output", "maingo_output.html#Interpreting", null ],
-      [ "Output alternatives", "maingo_output.html#MAiNGO", null ]
+    [ "MAiNGO Output", "maingo_output.html", [
+      [ "Logging Output", "maingo_output.html#logging", null ],
+      [ "Results File", "maingo_output.html#results_file", null ],
+      [ "Alternative Output Files", "maingo_output.html#output_alternatives", null ]
     ] ],
     [ "How does MAiNGO work?", "algorithm.html", [
+      [ "Basic Structure", "algorithm.html#basic_structure", null ],
+      [ "Details of MINLP solution algorithm", "algorithm.html#algorithm_details", null ],
       [ "Lower Bounding Solvers", "algorithm.html#LBS", null ],
       [ "Upper Bounding Solvers", "algorithm.html#UBS", null ]
     ] ],
@@ -61,7 +65,6 @@ var index =
       [ "Using MAiNGO to write Files in other Modeling Languages:", "special_uses.html#maingo_write_files_to_other_language", null ]
     ] ],
     [ "Using MAiNGO in Other Software", "maingo_in_your_software.html", [
-      [ "Using MAiNGO as a Standalone Solver", "maingo_in_your_software.html#standalone", null ],
       [ "Embedding MAiNGO in your Application", "maingo_in_your_software.html#embedded", null ],
       [ "Extending MAiNGO", "maingo_in_your_software.html#extensions", null ]
     ] ],
@@ -69,11 +72,9 @@ var index =
     [ "What can go wrong?", "faq.html", [
       [ "After starting the MAiNGO executable nothing happens", "faq.html#faq1", null ],
       [ "MAiNGO reports a Problem to be infeasible although you expect it to be feasible", "faq.html#faq2", null ],
-      [ "MAiNGO reports a domain violation, e.g., division by 0", "faq.html#faq3", [
-        [ "MAiNGO terminates with a MC++ error saying something about alpha1 and alpha2", "faq.html#faq5", null ],
-        [ "MAiNGO finds feasible solutions early on, but the LBD takes forever to converge", "faq.html#faq6", null ],
-        [ "MAiNGO runs forever without finding a feasible point although LBD seems to be converged already", "faq.html#faq7", null ]
-      ] ]
+      [ "MAiNGO reports a domain violation, e.g., division by 0", "faq.html#faq3", null ],
+      [ "MAiNGO finds feasible solutions early on, but the LBD takes forever to converge", "faq.html#faq6", null ],
+      [ "MAiNGO runs forever without finding a feasible point although LBD seems to be converged already", "faq.html#faq7", null ]
     ] ],
     [ "Where can I read more?", "bib.html", [
       [ "Relaxations", "bib.html#readRelaxations", null ],
diff --git a/doc/html/install.html b/doc/html/install.html
index be12d38b06d61e307936dcd9d2b799ca9818a3f0..ed24d9250887ee0f6677c97d4e4f7f80751dc81c 100644
--- a/doc/html/install.html
+++ b/doc/html/install.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: Installing and Executing MAiNGO</title>
+<title>MAiNGO: Obtaining, Building, and Executing MAiNGO</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -85,93 +85,98 @@ $(document).ready(function(){initNavTree('install.html','');});
 </iframe>
 </div>
 
-<div class="PageDoc"><div class="header">
+<div class="header">
   <div class="headertitle">
-<div class="title">Installing and Executing MAiNGO </div>  </div>
+<div class="title">Obtaining, Building, and Executing MAiNGO </div>  </div>
 </div><!--header-->
 <div class="contents">
 <div class="textblock"><h1><a class="anchor" id="get_maingo"></a>
 Obtaining MAiNGO</h1>
-<p>In order to obtain MAiNGO, we strongly recommend using Git (Git Bash on Windows). It is possible to download MAiNGO as a .zip folder, but we strongly recommend to use Git and follow the given instructions (in particular because we use submodules for dependencies, which need to be downloaded separately when not using Git). First you need to clone the MAiNGO repository. This is done by </p><div class="fragment"><div class="line">git clone https://git.rwth-aachen.de/avt.svt/public/maingo.git &lt;directory&gt;</div></div><!-- fragment --><p> where &lt;directory&gt; is the name of the directory where you can find all MAiNGO files after cloning (default name is maingo). After the cloning is done, simply navigate to the directory. In the cloned MAiNGO directory execute </p><div class="fragment"><div class="line">git submodule init</div></div><!-- fragment --><p> If nothing happens, you are <b>not</b> in the cloned MAiNGO directory and have to navigate to there first. For Windows users, we recommend the usage of HTTPS protocols for Git and SSH protocols for Linux and Mac OS users to avoid multiple username and password inputs. If you want to switch from HTTPS to SSH, simply execute the shell script <code>./switchToSsh</code> or <code>./switchToHttps</code> for switchting from SSH to HTTPS and back <b>after</b> executing the <code>git submodule init</code> command. For more info on SSH keys, see the Git documentation on SSH authentication which can be found under <b>Help -&gt; SSH authentication</b> in your GitLab. If you are having HTTPS authentication problems on Windows, please make sure that your cedential manager has the correct settings. The Windows credential manager can be found at <b>Control Panel -&gt; User Accounts -&gt; Manage your credentials</b>.</p>
-<p>In order to proceed and update all submodules of MAiNGO, execute </p><div class="fragment"><div class="line">git submodule update -j 1</div></div><!-- fragment --><p> in the MAiNGO directory. You can determine whether the above worked properly by checking if each dependency folder in the <code>dep/</code> folder is non-empty. In the case that the above <b><em>DID</em> <em>NOT</b></em> work properly, execute the following in the MAiNGO directory </p><div class="fragment"><div class="line">git submodule foreach git checkout master</div><div class="line">git submodule foreach git pull</div></div><!-- fragment --><p> A note for user more familiar with Git: the <code>git submodule update</code> is exectued without the <code>&ndash;recursive</code> option. This avoids instantiating any indirect dependencies; in the repository design of MAiNGO, all dependencies (including indirect ones) are present in the <code>dep</code> folder. It is also executed using only one process <code>-j 1</code> to avoid input failures.</p>
+<p>To obtain MAiNGO, we strongly recommend using Git (Git Bash on Windows) and following the instructions below, in particular because we use submodules for dependencies. It is possible to download MAiNGO as a zipped folder, but when doing so all dependencies need to be downloaded separately.</p>
+<p>To obtain MAiNGO via Git, first clone the MAiNGO repository via </p><div class="fragment"><div class="line">git clone https://git.rwth-aachen.de/avt.svt/public/maingo.git &lt;directory&gt;</div></div><!-- fragment --><p> where &lt;directory&gt; is the target directory (default name is maingo).</p>
+<p>Next, navigate to this directory and initialize the submodules by executing </p><div class="fragment"><div class="line">git submodule init</div></div><!-- fragment --><p> If you want to switch between HTTPS (default) and SSH protocols for obtaining the submodules, simply execute the shell scripts (Linux/MacOS only) <code>./switchToSsh</code> or <code>./switchToHttps</code> <b>after</b> executing the <code>git submodule init</code> command. For more info on SSH keys, see the Git documentation on SSH authentication which can be found under <b>Help -&gt; SSH authentication</b> in your GitLab web interface. If you are having HTTPS authentication problems on Windows, make sure that your cedential manager has the correct settings. The Windows credential manager can be found at <b>Control Panel -&gt; User Accounts -&gt; Manage your credentials</b>.</p>
+<p>To actually download the submodules of MAiNGO, execute </p><div class="fragment"><div class="line">git submodule update -j 1</div></div><!-- fragment --><p> in the MAiNGO directory. You can determine whether the above worked properly by checking if each dependency folder in the <code>dep/</code> folder is non-empty. A note for user more familiar with Git: the <code>git submodule update</code> is executed without the <code>&ndash;recursive</code> option. This avoids instantiating any indirect dependencies; in the repository design of MAiNGO, all dependencies (including indirect ones) are present in the <code>dep</code> folder. It is also executed using only one process <code>-j 1</code> to avoid input failures.</p>
 <h2><a class="anchor" id="update_maingo"></a>
 Updating MAiNGO</h2>
-<p>If you want to update to the latest MAiNGO version, use the following git commands </p><div class="fragment"><div class="line">git pull</div><div class="line">git submodule update</div></div><!-- fragment --><p> If you changed any of the source files in MAiNGO or any dependency found in the <code>dep/</code> folder, you should restore the original state of MAiNGO by first saving a copy of the files you changed (or using <code>git stash</code>) and then executing </p><div class="fragment"><div class="line">git checkout .</div></div><!-- fragment --><p> in the MAiNGO repository and/or in any dependency repository you edited. Then, update the MAiNGO repository with the <code>pull</code> and <code>submodule update</code> commands. Finally, you can replace the files of interest by your saved copies (or retrieve them via <code>git stash pop</code>).</p>
+<p>If you want to update to the latest MAiNGO version, use the following git commands: </p><div class="fragment"><div class="line">git pull</div><div class="line">git submodule update -j 1</div></div><!-- fragment --><p> If you changed any of the source files in MAiNGO or any dependency found in the <code>dep/</code> folder, you should restore the original state of MAiNGO and the dependencies by running <code>git stash</code> in the corresponding repository. Then, update the MAiNGO repository with the <code>git pull</code> and <code>git submodule update</code> commands. Finally, you can retrieve your changes via <code>git stash pop</code>.</p>
 <h1><a class="anchor" id="req_software"></a>
 Required Software</h1>
-<p>Building MAiNGO requires the following non-standard programs that are not in the Git repository:</p><ul>
+<p>Building MAiNGO requires the following non-standard programs that are not provided when obtaining MAiNGO:</p><ul>
 <li>CMake 3.15 or later</li>
-<li>Visual Studio 2017 (Windows only)</li>
-<li>A Fortran Compiler (Linux and Mac OS)</li>
+<li>Visual Studio 2017 or 2019 (Windows), or some other C++ compiler that supports C++17 (Linux &amp; MacOS)</li>
+<li>A Fortran Compiler (Linux &amp; MacOS only; for Windows, we supply pre-compiled versions of all Fortran dependencies)</li>
 </ul>
-<p>CPLEX 12.8 and Knitro 11.1 are optional subsolvers that are not required for using MAiNGO, but it is strongly recommended to use CPLEX to achieve best computational results. CMake will automatically detect whether you have CPLEX/Knitro or not. If you installed CPLEX or Knitro in a non-default path, it may be neccessary to adapt the paths in the corresponding CMakeLists.txt files at <code>dep/knitro</code> and <code>dep/cplex</code>. A note on CPLEX versions: We experienced problems trying to include CPLEX 12.7 into MAiNGO, since there appears to be a bug in the API related to scaling of variables and equations when modifying a model causing failure of MAiNGO for many problems. CPLEX 12.5 mostly worked for us, but did give a couple of weird bugs where problems were not updated properly. When using CPLEX 12.5, you need to go back to Visual Studio 2010 as well (this may result in multiple changes in the CMakeLists.txt files).</p>
-<p>All other third-party software that MAiNGO depends on comes with the MAiNGO Git. Unless you feel the need to modify the folder structure or switch to other versions (in which case we would appreciate you contacting the MAiNGO team as well), there is nothing you need to do.</p>
+<p>CPLEX 12.8 or 12.9 and Knitro 11.0.1 are optional subsolvers that are also not provided with MAiNGO. They are not required for using MAiNGO, but they can improve computational performance. CMake will automatically detect whether you have CPLEX/Knitro installed on your system or not. If you installed CPLEX or Knitro in a non-default path, it may be neccessary to adapt the paths in the corresponding CMakeLists.txt files at <code>dep/knitro</code> and <code>dep/cplex</code>.</p>
+<p>All other third-party software that MAiNGO depends on comes with the MAiNGO git in the form of submodules. Unless you feel the need to modify the folder structure or switch to other versions (in which case we would appreciate you reporting your experience to us), there is nothing you need to do.</p>
 <h1><a class="anchor" id="cmake"></a>
 Generating and Compiling the Project</h1>
-<p>MAiNGO uses CMake for setting up the required Visual Studio project (for Windows) or Makefile (for Linux or Mac OS). There are a few options for this setup that can be changed via the following CMake variables (details for how to actually do this on Windows, Linux, or Mac OS follow below):</p>
+<p>MAiNGO uses CMake for setting up the required Visual Studio project (for Windows) or Makefile (for Linux or MacOS). There are a few options for this setup that can be changed via the following CMake variables (details for how to actually do this on Windows, Linux, or MacOS follow below):</p>
 <ul>
-<li>MAiNGO_build_parser (default: <code>true</code>): Whether to build an executable called <code>MAiNGO</code> (or <code>MAiNGO.exe</code> on Windows) containing the parser for reading problems in ALE syntax from .txt files; uses the main file <code>examples/mainAleParser.cpp</code>.</li>
-<li>MAiNGO_build_standalone (default: <code>false</code>): Whether to build an executable called <code>MAiNGOcpp</code> (or <code>MAiNGOcpp.exe</code> on Windows) for solving problems via the C++ API; uses the main file <code>examples/mainCppApi.cpp</code>.</li>
-<li>MAiNGO_use_filib (default: <code>true</code>): Whether to use FILIB++ for interval extensions, which is strongly recommended. If set to <code>false</code>, the non-validated intervals extensions from MC++ are used.</li>
-<li>MAiNGO_use_mpi (default: <code>false</code>): Whether to build the parallel version of MAiNGO. Requires an MPI library to be installed on your system.</li>
+<li><code>MAiNGO_build_parser</code> (default: <code>true</code>): Whether to build an executable called <code>MAiNGO</code> (or <code>MAiNGO.exe</code> on Windows) containing the parser for reading problems in <a class="el" href="writing_problem.html#modeling_ALE">ALE syntax</a> from .txt files. Uses the main file <code>examples/mainAleParser.cpp</code>.</li>
+<li><code>MAiNGO_build_python_interface</code> (default: <code>false</code>): Whether to build the Python bindings for the C++ API of MAiNGO. If set to <code>true</code>, this will create a Python package called <code>pymaingo</code> that allows <a class="el" href="writing_problem.html#modeling_cpp_python">using MAiNGO from Python</a>. Check the CMake output to make sure that the correct version of Python was found. You can influence the Python version using the CMake variables <code>PYBIND11_PYTHON_VERSION</code> or <code>PYTHON_EXECUTABLE</code> as described <a href="https://pybind11.readthedocs.io/en/stable/compiling.html#configuration-variables">here</a>.</li>
+<li><code>MAiNGO_build_standalone</code> (default: <code>false</code>): Whether to build an executable called <code>MAiNGOcpp</code> (or <code>MAiNGOcpp.exe</code> on Windows) for solving problems <a class="el" href="writing_problem.html#modeling_cpp_python">via the C++ API</a>. Uses the main file <code>examples/mainCppApi.cpp</code>.</li>
+<li><code>MAiNGO_build_test</code> (default: <code>false</code>): Whether to build the test cases for MAiNGO (and potentially pymaingo).</li>
+<li><code>MAiNGO_use_cplex</code> (default: <code>true</code>): Whether to use CPLEX if it is available on your system. Can be set to <code>false</code> to prevent the use of CPLEX even if it is installed, which can be useful if the compiled version is to be used on another machine that may not have CPLEX.</li>
+<li><code>MAiNGO_use_knitro</code> (default: <code>true</code>): Whether to use Knitro if it is available on your system. Can be set to <code>false</code> to prevent the use of Knitro even if it is installed, which can be useful if the compiled version is to be used on another machine that may not have Knitro.</li>
+<li><code>MAiNGO_use_melon</code> (default: <code>true</code>): Whether to use the MeLOn toolbox containing various machine learning models for use in the optimization problem.</li>
+<li><code>MAiNGO_use_mpi</code> (default: <code>false</code>): Whether to build the parallel version of MAiNGO. Requires an MPI library to be installed on your system.</li>
 </ul>
 <p>A note for users seeking to include MAiNGO in their own code: MAiNGO uses modern target-oriented cmake commands. The <code>CMakeLists.txt</code> in the root directory is the sole entry point both for building MAiNGO as a standalone solver or including it into your project. However, when including it into your code you will need to add all dependencies (i.e., all folders within the <code>dep</code> folder in the MAiNGO repository) in your own CMakeLists.txt using <code>add_subdirectory</code>. Please see also section <a class="el" href="maingo_in_your_software.html#embedded">Embedding MAiNGO in your Application</a>.</p>
 <h2><a class="anchor" id="cmake_win"></a>
 Windows</h2>
-<p>On Windows, only Microsoft Visual C++ 2017 is supported. We supply pre-compiled versions for all Fortran libraries, so no Fortran compiler (or runtime) should be needed. To generate the Visual Studio project and compile MAiNGO, you need to complete the following steps:</p>
+<p>On Windows, only Microsoft Visual Studio 2017 and 2019 are supported. We supply pre-compiled versions for all Fortran libraries, so no Fortran compiler (or runtime) should be needed. To generate the Visual Studio project and compile MAiNGO, you need to complete the following steps:</p>
 <ol type="1">
 <li>Start CMake and navigate or type the path to your MAiNGO directory (this is the one where the Readme.md is) and select your build directory.  <style>div.image img[src="CMakeHead.PNG"]{width:15cm;align:left}</style>  <div class="image">
 <img src="CMakeHead.PNG" alt="CMakeHead.PNG" width="15cm"/>
 </div>
 </li>
-<li>Use the <em>Configure</em> button to choose Visual Studio 15 2017 Win64 as generator (or Visual Studio 15 2017 as generator and x64 as optional platform for generator in the newer versions of CMake). Make sure that you use default native compilers. Press <em>Finish</em> and wait for the configuration to complete. If at the end you get a message saying <code>Configuring done</code>, everything worked fine.  <style>div.image img[src="CMakeGenerator.PNG"]{width:25cm;align:left}</style>  <div class="image">
+<li>Use the <em>Configure</em> button to choose Visual Studio 15 2017 Win64 as generator (or Visual Studio 15 2017 as generator and x64 as optional platform for generator in the newer versions of CMake; analogous for Visual Studio 16 2019). Make sure that you use default native compilers. Press <em>Finish</em> and wait for the configuration to complete. If at the end you get a message saying <code>Configuring done</code>, everything worked fine.  <style>div.image img[src="CMakeGenerator.PNG"]{width:25cm;align:left}</style>  <div class="image">
 <img src="CMakeGenerator.PNG" alt="CMakeGenerator.PNG" width="25cm"/>
 </div>
 </li>
-<li>If desired, you can now change the CMake variables explained above. We recommend changing only those CMake variables that are prefixed with <code>MAiNGO_</code>. To do so, remove or add a checkmark at the desired option.</li>
+<li>If desired, you can now change the values of the CMake variables explained above. We recommend changing only those CMake variables that are prefixed with <code>MAiNGO_</code>.</li>
 <li>Press the <em>Generate</em> button. You should get a message saying <code>Generating done</code>.</li>
-<li>Press the <em>Open</em> <em>Project</em> button (or open the <code>MAiNGO.sln</code> file (with Visual Studio 15 2017) that was created by CMake in the build directory you specified). Make sure to set the build type to <em>Release</em>, since this will result in MAiNGO being significantly faster.  <style>div.image img[src="VS_Release.PNG"]{width:6cm;align:left}</style>  <div class="image">
+<li>Press the <em>Open</em> <em>Project</em> button (or open the <code>MAiNGO.sln</code> file (with Visual Studio 2017 or 2019) that was created by CMake in the build directory you specified). Make sure to set the build type to <em>Release</em>, since this will result in MAiNGO being significantly faster.  <style>div.image img[src="VS_Release.PNG"]{width:6cm;align:left}</style>  <div class="image">
 <img src="VS_Release.PNG" alt="VS_Release.PNG" width="6cm"/>
 </div>
 </li>
-<li>Compile MAiNGO by clicking <code>Build-&gt;Build solution</code>. This will create executables called <code>MAiNGO.exe</code> and/or <code>MAiNGOcpp.exe</code> in the <code>Release</code> directory within your build directory, depending on which CMake variables you have enabled (cf. above). MAiNGO.exe is the version that expects text-based input via ALE, while MAiNGOcpp.exe is the version that uses the C++ API and has a problem (e.g., the example problem compiled into it).</li>
-<li><b>Do not execute MAiNGO directly from Visual Studio via the green play arrow</b>. The green play arrow executes MAiNGO in <code>DEBUG</code> mode, which is in general not desired. To properly execute MAiNGO, please refer to the section <a class="el" href="install.html#executing_maingo">Executing MAiNGO</a> found below. <br />
- If, however, you would like to debug MAiNGO, you need to set MAiNGO as the starting project first. This is done by right clicking on MAiNGO within your project explorer of Visual Studio and setting it to be the starting project. If you get an error message saying that <code>ALL_BUILD</code> cannot be used as starting project, you did not set MAiNGO as starting project.</li>
+<li>Compile MAiNGO by clicking <code>Build-&gt;Build solution</code>. This will create executables called <code>MAiNGO.exe</code> and/or <code>MAiNGOcpp.exe</code> as well as a <code>pymaingo</code> folder in the <code>Release</code> directory within your build directory, depending on which CMake variables you have enabled (cf. above). MAiNGO.exe is the version that expects text-based input via ALE, while MAiNGOcpp.exe is the version that uses the C++ API and has a problem (e.g., the example problem compiled into it).</li>
+<li>If you would like to debug MAiNGO, you need to set MAiNGO as the starting project first. This is done by right clicking on MAiNGO within your project explorer of Visual Studio and setting it to be the starting project. If you get an error message saying that <code>ALL_BUILD</code> cannot be used as starting project, you did not set MAiNGO as starting project.</li>
 </ol>
 <h2><a class="anchor" id="cmake_linux_os"></a>
-Linux and Mac OS</h2>
-<p>On Linux and Mac OS, the following compiler configurations have been tested:</p><ul>
+Linux and MacOS</h2>
+<p>On Linux and MacOS, the following compiler configurations have been tested:</p><ul>
 <li>gcc 9.2, and 10.1 (Linux and MacOS)</li>
-<li>Intel C++ and Fortran Compiler 16.0.8, 17.0.7, 18.0.3, and 19.1 (Linux) - only works if building without the parser (MAiNGO_build_parser=false, cf. below) and without the MeLOn toolbox (MAiNGO_build_melon=false) because of missing C++17 features in Intel compilers</li>
+<li>Intel C++ and Fortran Compiler 16.0.8, 17.0.7, 18.0.3, and 19.1 (Linux) - only works if building without the parser (<code>MAiNGO_build_parser=false</code>) and without the MeLOn toolbox (<code>MAiNGO_build_melon=false</code>) because of missing C++17 features in Intel compilers</li>
 <li>Clang 7.0, 8.0, 9.0 (Linux) and clang-1001.0.46.4 (MacOS) with gfortran - only works if not using CPLEX (CPLEX seems to be incompatible with Clang)</li>
 </ul>
-<p>On Linux, the Fortran parts are usually not an issue thanks to gcc/gfortran. On Mac OS, you may need to install gfortran separately. If you use gfortran and get a linker error when compiling the code stating that a library was not found for <code>-lgfortran</code>, execute </p><div class="fragment"><div class="line">export LIBRARY_PATH=&lt;pathToFolderContainingYourLibgfortran.a&gt;</div></div><!-- fragment --><p> This may, for example, be <code>/opt/local/lib/&lt;yourGccVersion&gt;</code>. You can try to locate libgfortran.a by calling <code>locate gfortran</code>.</p>
-<p>We recommend to create a build folder in the MAiNGO directory first and then navigate to it (you can create the build folder anywhere else on you machine). </p><div class="fragment"><div class="line">mkdir build</div><div class="line">cd build</div></div><!-- fragment --><p> Then simply execute cmake using the CMakeLists.txt from the MAiNGO directory by </p><div class="fragment"><div class="line">cmake ..</div></div><!-- fragment --><p> You can change the CMake variables explained above by adding <code>-D&lt;name_of_cmake_variable&gt;=&lt;value&gt;</code> after the <code>cmake</code> command. To compile the code execute </p><div class="fragment"><div class="line">make</div></div><!-- fragment --><p> You can add the option <code>-j n</code> to compile using n cores of your machine, e.g., execute <code>make -j 4</code> to compile using 4 cores.</p>
-<h2><a class="anchor" id="executing_maingo"></a>
-Executing MAiNGO</h2>
-<p>To execute MAiNGO, open a terminal window in the build folder where the MAiNGO executable is. On Windows this is in the <em>Release</em> or <em>Debug</em> folder (depending on what you have built). In order not to have to navigate to the build folder on Windows, you can, e.g., <b>Shift + Right click</b> on the appropriate folder and select <em>Command</em> <em>Prompt</em> or <em>Power</em> <em>Shell</em>. Depending on which version of MAiNGO you have selected via the CMake variables (cf. section <a class="el" href="install.html#cmake">Generating and Compiling the Project</a>), you can run MAiNGO as follows:</p>
-<p>If you have built the parser version of MAiNGO (i.e., with MAiNGO_build_parser=true), simply type<br />
+<p>On Linux, the Fortran parts are usually not an issue thanks to gcc/gfortran. On MacOS, you may need to install gfortran separately. If you use gfortran and get a linker error when compiling the code stating that a library was not found for <code>-lgfortran</code>, execute </p><div class="fragment"><div class="line">export LIBRARY_PATH=&lt;pathToFolderContainingYourLibgfortran.a&gt;</div></div><!-- fragment --><p> This may, for example, be <code>/opt/local/lib/&lt;yourGccVersion&gt;</code>. You can try to locate libgfortran.a by calling <code>locate gfortran</code>.</p>
+<p>We recommend to create a build folder in the MAiNGO directory first and then navigate to it. </p><div class="fragment"><div class="line">mkdir build</div><div class="line">cd build</div></div><!-- fragment --><p> Then simply execute cmake using the CMakeLists.txt from the MAiNGO directory by </p><div class="fragment"><div class="line">cmake ..</div></div><!-- fragment --><p> You can change the CMake variables explained above by adding <code>-D&lt;name_of_cmake_variable&gt;=&lt;value&gt;</code> after the <code>cmake</code> command. To compile the code execute </p><div class="fragment"><div class="line">make</div></div><!-- fragment --><p> You can add the option <code>-j n</code> to compile using n cores of your machine, e.g., execute <code>make -j 4</code> to compile using 4 cores.</p>
+<h1><a class="anchor" id="executing_maingo"></a>
+Executing MAiNGO</h1>
+<p>To execute MAiNGO, open a terminal window in the build folder where the MAiNGO executable is. On Windows this is in the <em>Release</em> or <em>Debug</em> folder (depending on what you have built). You can, e.g., <b>Shift + Right click</b> on the appropriate folder and select <em>Command</em> <em>Prompt</em> or <em>Power</em> <em>Shell</em>. Depending on which version of MAiNGO you have selected via the CMake variables (cf. section <a class="el" href="install.html#cmake">Generating and Compiling the Project</a>), you can run MAiNGO as follows:</p>
+<p>If you have built the parser version of MAiNGO (i.e., with <code>MAiNGO_build_parser=true</code>), simply type<br />
 </p><ul>
 <li>on Windows: <code> MAiNGO &lt;yourProblem&gt;</code><br />
 </li>
-<li>on Linux / Mac OS: <code>./MAiNGO &lt;yourProblem&gt;</code><br />
+<li>on Linux / MacOS: <code>./MAiNGO &lt;yourProblem&gt;</code><br />
 </li>
 </ul>
 <p>which starts MAiNGO for the problem defined in the <code>&lt;yourProblem&gt;</code> file, e.g., <code>MAiNGO C:/MAiNGO/examples/01_BasicExample/problem.txt</code>. If you get an error message stating that the problem file has not been found, please check the path to your problem file. For details on how to write your own problem file, pleases refer to section <a class="el" href="writing_problem.html#modeling_ALE">Modeling with ALE</a>. You can also execute MAiNGO with specific settings by calling</p><ul>
 <li>on Windows: <code> MAiNGO &lt;yourProblem&gt; &lt;yourSettings&gt;</code></li>
-<li>on Linux / Mac OS: <code>./MAiNGO &lt;yourProblem&gt; &lt;yourSettings&gt;</code></li>
+<li>on Linux / MacOS: <code>./MAiNGO &lt;yourProblem&gt; &lt;yourSettings&gt;</code></li>
 </ul>
 <p>where <code>&lt;yourSettings&gt;</code> describes a path to your settings file, e.g., <code>MAiNGO C:/MAiNGO/examples/01_BasicExample/problem.txt C:/MAiNGO/examples/MAiNGOSettings.txt</code>. You can find an exemplary MAiNGO settings file in <code>examples/MAiNGOSettings.txt</code>.</p>
-<p>If you have built the standalone version in which the model is specified via the C++ API (i.e., with MAiNGO_build_standalone=true), type <br />
+<p>If you have built the standalone version in which the model is specified via the C++ API (i.e., with <code>MAiNGO_build_standalone=true</code>), type <br />
 </p><ul>
 <li>on Windows: <code> MAiNGOcpp &lt;yourSettings&gt;</code><br />
 </li>
-<li>on Linux / Mac OS: <code>./MAiNGOcpp &lt;yourSettings&gt;</code><br />
+<li>on Linux / MacOS: <code>./MAiNGOcpp &lt;yourSettings&gt;</code><br />
 </li>
 </ul>
-<p>which starts MAiNGO for the problem defined in the header file included in <code>examples/mainCppApi.cpp</code> (by default, this is <code>examples/01_BasicExample/problem.h</code>. For details on how to write your own problem via the C++ API, please refer to secion <a class="el" href="writing_problem.html#modeling_cpp">Modeling via C++</a>. </p>
-</div></div><!-- PageDoc -->
-</div><!-- contents -->
+<p>which starts MAiNGO for the problem defined in the header file included in <code>examples/mainCppApi.cpp</code> (by default, this is <code>examples/01_BasicExample/problem.h</code>. For details on how to write your own problem via the C++ API, please refer to secion <a class="el" href="writing_problem.html#modeling_cpp_python">Modeling via C++ or Python</a>.</p>
+<p>If you are using the Python interface, MAiNGO is invoked by Python, see for example <code>examples/01_BasicExample/examplePythonInterface.py</code>. </p>
+</div></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
@@ -179,7 +184,7 @@ Executing MAiNGO</h2>
     <li class="navelem"><a class="el" href="index.html">McCormick-based Algorithm for mixed-integer Nonlinear Global Optimization</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/interval_library_8h.html b/doc/html/interval_library_8h.html
index 21cdee4cd509eca9e51e91a52758202c8b994aa5..104d06debdf3018524baaf788a8797e6fad7f618 100644
--- a/doc/html/interval_library_8h.html
+++ b/doc/html/interval_library_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/intervalLibrary.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/intervalLibrary.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -92,7 +92,7 @@ $(document).ready(function(){initNavTree('interval_library_8h.html','');});
 <div class="title">intervalLibrary.h File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="textblock"><code>#include &quot;interval.hpp&quot;</code><br />
+<div class="textblock"><code>#include &quot;mcfilib.hpp&quot;</code><br />
 <code>#include &quot;ffunc.hpp&quot;</code><br />
 <code>#include &quot;mccormick.hpp&quot;</code><br />
 <code>#include &quot;vmccormick.hpp&quot;</code><br />
@@ -101,30 +101,30 @@ $(document).ready(function(){initNavTree('interval_library_8h.html','');});
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
 Typedefs</h2></td></tr>
-<tr class="memitem:a719e28aa7350b1ab0efe53725d78a54f"><td class="memItemLeft" align="right" valign="top">typedef mc::Interval&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interval_library_8h.html#a719e28aa7350b1ab0efe53725d78a54f">I</a></td></tr>
-<tr class="memdesc:a719e28aa7350b1ab0efe53725d78a54f"><td class="mdescLeft">&#160;</td><td class="mdescRight">A type definition for an Interval variable using MC++ library.  <a href="#a719e28aa7350b1ab0efe53725d78a54f">More...</a><br /></td></tr>
-<tr class="separator:a719e28aa7350b1ab0efe53725d78a54f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a57d32400333d3f6211554cbc6b30c034"><td class="memItemLeft" align="right" valign="top">typedef mc::McCormick&lt; <a class="el" href="interval_library_8h.html#a719e28aa7350b1ab0efe53725d78a54f">I</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a></td></tr>
+<tr class="memitem:a752577663acb2d105778a51e93452c1a"><td class="memItemLeft" align="right" valign="top">typedef filib::interval&lt; double, filib::rounding_strategy::native_switched, filib::interval_mode::i_mode_extended &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interval_library_8h.html#a752577663acb2d105778a51e93452c1a">I</a></td></tr>
+<tr class="memdesc:a752577663acb2d105778a51e93452c1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">A type definition for an Interval variable using FILIB++ library which handles infinity properly and does not abort the program.  <a href="#a752577663acb2d105778a51e93452c1a">More...</a><br /></td></tr>
+<tr class="separator:a752577663acb2d105778a51e93452c1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a57d32400333d3f6211554cbc6b30c034"><td class="memItemLeft" align="right" valign="top">typedef mc::McCormick&lt; <a class="el" href="interval_library_8h.html#a752577663acb2d105778a51e93452c1a">I</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a></td></tr>
 <tr class="memdesc:a57d32400333d3f6211554cbc6b30c034"><td class="mdescLeft">&#160;</td><td class="mdescRight">A type definition for a McCormick variable.  <a href="#a57d32400333d3f6211554cbc6b30c034">More...</a><br /></td></tr>
 <tr class="separator:a57d32400333d3f6211554cbc6b30c034"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:addaf9e7d3c4319861d4942fc13f11964"><td class="memItemLeft" align="right" valign="top">typedef mc::vMcCormick&lt; <a class="el" href="interval_library_8h.html#a719e28aa7350b1ab0efe53725d78a54f">I</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a></td></tr>
+<tr class="memitem:addaf9e7d3c4319861d4942fc13f11964"><td class="memItemLeft" align="right" valign="top">typedef mc::vMcCormick&lt; <a class="el" href="interval_library_8h.html#a752577663acb2d105778a51e93452c1a">I</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a></td></tr>
 <tr class="memdesc:addaf9e7d3c4319861d4942fc13f11964"><td class="mdescLeft">&#160;</td><td class="mdescRight">A type definition for a vector McCormick variable.  <a href="#addaf9e7d3c4319861d4942fc13f11964">More...</a><br /></td></tr>
 <tr class="separator:addaf9e7d3c4319861d4942fc13f11964"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <h2 class="groupheader">Typedef Documentation</h2>
-<a id="a719e28aa7350b1ab0efe53725d78a54f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a719e28aa7350b1ab0efe53725d78a54f">&#9670;&nbsp;</a></span>I</h2>
+<a id="a752577663acb2d105778a51e93452c1a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a752577663acb2d105778a51e93452c1a">&#9670;&nbsp;</a></span>I</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">mc::INTERVAL <a class="el" href="interval_library_8h.html#a719e28aa7350b1ab0efe53725d78a54f">I</a></td>
+          <td class="memname">filib::interval&lt; double, filib::rounding_strategy::native_switched, filib::interval_mode::i_mode_extended &gt; <a class="el" href="interval_library_8h.html#a752577663acb2d105778a51e93452c1a">I</a></td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<p>A type definition for an Interval variable using MC++ library. </p>
+<p>A type definition for an Interval variable using FILIB++ library which handles infinity properly and does not abort the program. </p>
 
 </div>
 </div>
@@ -135,7 +135,7 @@ Typedefs</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">mc::McCormick&lt; <a class="el" href="interval_library_8h.html#a719e28aa7350b1ab0efe53725d78a54f">I</a> &gt; <a class="el" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a></td>
+          <td class="memname">mc::McCormick&lt; <a class="el" href="interval_library_8h.html#a752577663acb2d105778a51e93452c1a">I</a> &gt; <a class="el" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a></td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -151,7 +151,7 @@ Typedefs</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">mc::vMcCormick&lt; <a class="el" href="interval_library_8h.html#a719e28aa7350b1ab0efe53725d78a54f">I</a> &gt; <a class="el" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a></td>
+          <td class="memname">mc::vMcCormick&lt; <a class="el" href="interval_library_8h.html#a752577663acb2d105778a51e93452c1a">I</a> &gt; <a class="el" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a></td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -168,7 +168,7 @@ Typedefs</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="interval_library_8h.html">intervalLibrary.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/interval_library_8h.js b/doc/html/interval_library_8h.js
index 270759ec6fd8d22e74ceb2577ff1e97120196000..a7400ac875ea694167cf9888e201a751bf0bf2cb 100644
--- a/doc/html/interval_library_8h.js
+++ b/doc/html/interval_library_8h.js
@@ -1,6 +1,6 @@
 var interval_library_8h =
 [
-    [ "I", "interval_library_8h.html#a719e28aa7350b1ab0efe53725d78a54f", null ],
+    [ "I", "interval_library_8h.html#a752577663acb2d105778a51e93452c1a", null ],
     [ "MC", "interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034", null ],
     [ "vMC", "interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964", null ]
 ];
\ No newline at end of file
diff --git a/doc/html/interval_library_8h_source.html b/doc/html/interval_library_8h_source.html
index bc01f032872197b0376c70e035f9f2c4e8ce7966..8d09fc2c9d0af5e4dd5c6350fa4339d13c2a174b 100644
--- a/doc/html/interval_library_8h_source.html
+++ b/doc/html/interval_library_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/intervalLibrary.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/intervalLibrary.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,9 +90,9 @@ $(document).ready(function(){initNavTree('interval_library_8h_source.html','');}
 <div class="title">intervalLibrary.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="interval_library_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file intervalLibrary.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File defining the interval library to be used and defines the resulting McCormick types.</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment">// The interval library to be used is now set via CMake:</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment">// - If the CMake option MAiNGO_use_filib is enabled, the pre-processor variable USE_FILIB will be set automatically and filib++ will be used.</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment">// - Otherwise, the more basic interval library within MC++ will be used.</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#ifdef USE_FILIB</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &quot;mcfilib.hpp&quot;</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="keyword">typedef</span> filib::interval&lt;double, filib::rounding_strategy::native_switched, filib::interval_mode::i_mode_extended&gt; <a class="code" href="interval_library_8h.html#a719e28aa7350b1ab0efe53725d78a54f">I</a>;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#undef FILIB_TERMINATE    // Define this variable if you use filib::interval&lt;double&gt; instead of the above type</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &quot;interval.hpp&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="interval_library_8h.html#a719e28aa7350b1ab0efe53725d78a54f">   44</a></span>&#160;<span class="keyword">typedef</span> mc::Interval <a class="code" href="interval_library_8h.html#a719e28aa7350b1ab0efe53725d78a54f">I</a>;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor">#include &quot;ffunc.hpp&quot;</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">#include &quot;mccormick.hpp&quot;</span></div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor">#include &quot;vmccormick.hpp&quot;</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">   57</a></span>&#160;<span class="keyword">typedef</span> mc::McCormick&lt;I&gt; <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a>;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">   64</a></span>&#160;<span class="keyword">typedef</span> mc::vMcCormick&lt;I&gt; <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a>;</div><div class="ttc" id="interval_library_8h_html_addaf9e7d3c4319861d4942fc13f11964"><div class="ttname"><a href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a></div><div class="ttdeci">mc::vMcCormick&lt; I &gt; vMC</div><div class="ttdoc">A type definition for a vector McCormick variable.</div><div class="ttdef"><b>Definition:</b> intervalLibrary.h:64</div></div>
-<div class="ttc" id="interval_library_8h_html_a719e28aa7350b1ab0efe53725d78a54f"><div class="ttname"><a href="interval_library_8h.html#a719e28aa7350b1ab0efe53725d78a54f">I</a></div><div class="ttdeci">mc::Interval I</div><div class="ttdoc">A type definition for an Interval variable using MC++ library.</div><div class="ttdef"><b>Definition:</b> intervalLibrary.h:44</div></div>
-<div class="ttc" id="interval_library_8h_html_a57d32400333d3f6211554cbc6b30c034"><div class="ttname"><a href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a></div><div class="ttdeci">mc::McCormick&lt; I &gt; MC</div><div class="ttdoc">A type definition for a McCormick variable.</div><div class="ttdef"><b>Definition:</b> intervalLibrary.h:57</div></div>
+<a href="interval_library_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &quot;mcfilib.hpp&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="interval_library_8h.html#a752577663acb2d105778a51e93452c1a">   22</a></span>&#160;<span class="keyword">typedef</span> filib::interval&lt;double, filib::rounding_strategy::native_switched, filib::interval_mode::i_mode_extended&gt; <a class="code" href="interval_library_8h.html#a752577663acb2d105778a51e93452c1a">I</a>;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &quot;ffunc.hpp&quot;</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &quot;mccormick.hpp&quot;</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &quot;vmccormick.hpp&quot;</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">   34</a></span>&#160;<span class="keyword">typedef</span> mc::McCormick&lt;I&gt; <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a>;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">   41</a></span>&#160;<span class="keyword">typedef</span> mc::vMcCormick&lt;I&gt; <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a>;</div><div class="ttc" id="interval_library_8h_html_addaf9e7d3c4319861d4942fc13f11964"><div class="ttname"><a href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a></div><div class="ttdeci">mc::vMcCormick&lt; I &gt; vMC</div><div class="ttdoc">A type definition for a vector McCormick variable. </div><div class="ttdef"><b>Definition:</b> intervalLibrary.h:41</div></div>
+<div class="ttc" id="interval_library_8h_html_a57d32400333d3f6211554cbc6b30c034"><div class="ttname"><a href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a></div><div class="ttdeci">mc::McCormick&lt; I &gt; MC</div><div class="ttdoc">A type definition for a McCormick variable. </div><div class="ttdef"><b>Definition:</b> intervalLibrary.h:34</div></div>
+<div class="ttc" id="interval_library_8h_html_a752577663acb2d105778a51e93452c1a"><div class="ttname"><a href="interval_library_8h.html#a752577663acb2d105778a51e93452c1a">I</a></div><div class="ttdeci">filib::interval&lt; double, filib::rounding_strategy::native_switched, filib::interval_mode::i_mode_extended &gt; I</div><div class="ttdoc">A type definition for an Interval variable using FILIB++ library which handles infinity properly and ...</div><div class="ttdef"><b>Definition:</b> intervalLibrary.h:22</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -101,7 +101,7 @@ $(document).ready(function(){initNavTree('interval_library_8h_source.html','');}
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="interval_library_8h.html">intervalLibrary.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/ipopt_problem_8cpp.html b/doc/html/ipopt_problem_8cpp.html
index 769a75fe3fea5a8c64fb4ec64fd0aa2ff2b5391e..2d68e534b528b6aae9396d03cfa405ead8cb2057 100644
--- a/doc/html/ipopt_problem_8cpp.html
+++ b/doc/html/ipopt_problem_8cpp.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/src/ipoptProblem.cpp File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/src/ipoptProblem.cpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -91,7 +91,7 @@ $(document).ready(function(){initNavTree('ipopt_problem_8cpp.html','');});
 </div><!--header-->
 <div class="contents">
 <div class="textblock"><code>#include &quot;<a class="el" href="ipopt_problem_8h_source.html">ipoptProblem.h</a>&quot;</code><br />
-<code>#include &quot;<a class="el" href="exceptions_8h_source.html">exceptions.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_m_ai_n_g_o_exception_8h_source.html">MAiNGOException.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="ubp_evaluators_8h_source.html">ubpEvaluators.h</a>&quot;</code><br />
 <code>#include &lt;cassert&gt;</code><br />
 </div></div><!-- contents -->
@@ -102,7 +102,7 @@ $(document).ready(function(){initNavTree('ipopt_problem_8cpp.html','');});
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="ipopt_problem_8cpp.html">ipoptProblem.cpp</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/ipopt_problem_8h.html b/doc/html/ipopt_problem_8h.html
index feaf0822f128dbee336eb2b2993a93b4f804a7e2..41fe7c2d55c742e9e6592c15b2bccbc9f5b7c112 100644
--- a/doc/html/ipopt_problem_8h.html
+++ b/doc/html/ipopt_problem_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/ipoptProblem.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/ipoptProblem.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -144,7 +144,7 @@ Macros</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="ipopt_problem_8h.html">ipoptProblem.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/ipopt_problem_8h_source.html b/doc/html/ipopt_problem_8h_source.html
index 012802c56a8790153a700409641ce9dd6dc17879..e6d2e1013ddb49ceb25fcf340aab4c7d97995184 100644
--- a/doc/html/ipopt_problem_8h_source.html
+++ b/doc/html/ipopt_problem_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/ipoptProblem.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/ipoptProblem.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,36 +90,36 @@ $(document).ready(function(){initNavTree('ipopt_problem_8h_source.html','');});
 <div class="title">ipoptProblem.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="ipopt_problem_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file ipoptProblem.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing declaration of problem class used by Ipopt.</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *        Based on ample file by Carl Laird, Andreas Waechter     IBM    2005-08-09</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ubp_structure_8h.html">ubpStructure.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment">// Needed according to Ipopt Dll readme:</span></div><div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="ipopt_problem_8h.html#ae8322fb214ef7a74414e3d7f0465e6d9">   22</a></span>&#160;<span class="preprocessor">#define HAVE_CONFIG_H</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;IpTNLP.hpp&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="keyword">namespace </span>ubp {</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="keyword">struct </span>DagObj;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ipopt_problem.html">   47</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html">IpoptProblem</a>: <span class="keyword">public</span> Ipopt::TNLP {</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#aff434ac6d45f748ead8315abcc825bed">IpoptProblem</a>();</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#aff434ac6d45f748ead8315abcc825bed">IpoptProblem</a>(<span class="keywordtype">unsigned</span> nvarIn, <span class="keywordtype">unsigned</span> neqIn, <span class="keywordtype">unsigned</span> nineqIn, <span class="keywordtype">unsigned</span> nineqSquashIn, <a class="code" href="structmaingo_1_1ubp_1_1_ubp_structure.html">UbpStructure</a>* structureIn,</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;                 std::vector&lt;Constraint&gt;* constraintPropertiesIn, std::shared_ptr&lt;DagObj&gt; dagObj);</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a83ab40c3ed93a2ec0d23a3e62d3eb92f">~IpoptProblem</a>();</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a0350b0b316d335dc27f4f5d1350771be">get_nlp_info</a>(Ipopt::Index&amp; n, Ipopt::Index&amp; m, Ipopt::Index&amp; nnz_jac_g,</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;                              Ipopt::Index&amp; nnz_h_lag, IndexStyleEnum&amp; Index_style);</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#af731836f6f8a2bde2029be27b2c3e94f">get_bounds_info</a>(Ipopt::Index n, Ipopt::Number* x_l, Ipopt::Number* x_u,</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                                 Ipopt::Index m, Ipopt::Number* g_l, Ipopt::Number* g_u);</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a02f91f4b0962c2c77ab5f2c91891a806">get_starting_point</a>(Ipopt::Index n, <span class="keywordtype">bool</span> init_x, Ipopt::Number* x,</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;                                    <span class="keywordtype">bool</span> init_z, Ipopt::Number* z_L, Ipopt::Number* z_U,</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;                                    Ipopt::Index m, <span class="keywordtype">bool</span> init_lambda,</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;                                    Ipopt::Number* lambda);</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#af5c9129a86a3d83676f34feabd29a3ed">eval_f</a>(Ipopt::Index n, <span class="keyword">const</span> Ipopt::Number* x, <span class="keywordtype">bool</span> new_x, Ipopt::Number&amp; obj_value);</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a724a9a70c286024101d8bcbe0ee1f054">eval_grad_f</a>(Ipopt::Index n, <span class="keyword">const</span> Ipopt::Number* x, <span class="keywordtype">bool</span> new_x, Ipopt::Number* grad_f);</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a81ea5f97f58cd2e1b062fddec55c7232">eval_g</a>(Ipopt::Index n, <span class="keyword">const</span> Ipopt::Number* x, <span class="keywordtype">bool</span> new_x, Ipopt::Index m, Ipopt::Number* g);</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#ac97f040e982cca72af0203b014638f4a">eval_jac_g</a>(Ipopt::Index n, <span class="keyword">const</span> Ipopt::Number* x, <span class="keywordtype">bool</span> new_x,</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;                            Ipopt::Index m, Ipopt::Index nele_jac, Ipopt::Index* iRow, Ipopt::Index* jCol,</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;                            Ipopt::Number* values);</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#af839069f9d7a1d29e7a0298fdd4cc8c1">eval_h</a>(Ipopt::Index n, <span class="keyword">const</span> Ipopt::Number* x, <span class="keywordtype">bool</span> new_x,</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;                        Ipopt::Number obj_factor, Ipopt::Index m, <span class="keyword">const</span> Ipopt::Number* lambda,</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;                        <span class="keywordtype">bool</span> new_lambda, Ipopt::Index nele_hess, Ipopt::Index* iRow,</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;                        Ipopt::Index* jCol, Ipopt::Number* values);</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#af8e6509b0ef356458420dafd00bc2b5a">finalize_solution</a>(Ipopt::SolverReturn status,</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;                                   Ipopt::Index n, <span class="keyword">const</span> Ipopt::Number* x, <span class="keyword">const</span> Ipopt::Number* z_L, <span class="keyword">const</span> Ipopt::Number* z_U,</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;                                   Ipopt::Index m, <span class="keyword">const</span> Ipopt::Number* g, <span class="keyword">const</span> Ipopt::Number* lambda,</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;                                   Ipopt::Number obj_value,</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;                                   <span class="keyword">const</span> Ipopt::IpoptData* ip_data,</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;                                   Ipopt::IpoptCalculatedQuantities* ip_cq);</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a317864cfc5afc13826914711cacabea2">get_solution</a>(std::vector&lt;double&gt;&amp; sol_x);</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#ad44bb659518b5e9d4a0362a477d46164">set_bounds_and_starting_point</a>(<span class="keyword">const</span> std::vector&lt;double&gt;&amp; xL, <span class="keyword">const</span> std::vector&lt;double&gt;&amp; xU, <span class="keyword">const</span> std::vector&lt;double&gt;&amp; xStart);</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#ab5457949d2dc3765ac984f4debd9b7e3">  220</a></span>&#160;    std::shared_ptr&lt;DagObj&gt; <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#ab5457949d2dc3765ac984f4debd9b7e3">_DAGobj</a>; </div><div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#aae86a416ec70ff4d59e93a166de048ec">  226</a></span>&#160;    Ipopt::Index <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#aae86a416ec70ff4d59e93a166de048ec">_nvar</a>;                             </div><div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#ad9ffa23e5b922eb6c42c4cfefaeb6269">  227</a></span>&#160;    Ipopt::Index <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#ad9ffa23e5b922eb6c42c4cfefaeb6269">_nineq</a>;                            </div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#afe39f50811f9ff5a229e70c89de328f4">  228</a></span>&#160;    Ipopt::Index <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#afe39f50811f9ff5a229e70c89de328f4">_nineqSquash</a>;                      </div><div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a988a8b7d3f4f7f89c2ac09323af39111">  229</a></span>&#160;    Ipopt::Index <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a988a8b7d3f4f7f89c2ac09323af39111">_neq</a>;                              </div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#afb2e8af34a1ecdbd9fbcabf01cdba05a">  230</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_structure.html">UbpStructure</a>* <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#afb2e8af34a1ecdbd9fbcabf01cdba05a">_structure</a>;                       </div><div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#aa7b6d4e92ccd5f357728d82baec6cf59">  231</a></span>&#160;    std::vector&lt;Constraint&gt;* <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#aa7b6d4e92ccd5f357728d82baec6cf59">_constraintProperties</a>; </div><div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a16905e9bb3e4cfbb79c91c93c3ebe13c">  232</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a16905e9bb3e4cfbb79c91c93c3ebe13c">_solution_f</a>;                             </div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a05145891e0b75e9163d3f1bb4ae81f42">  233</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a05145891e0b75e9163d3f1bb4ae81f42">_xL</a>;                        </div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a8a8a87c013f83837c9ea5c7e4f755d1a">  234</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a8a8a87c013f83837c9ea5c7e4f755d1a">_xU</a>;                        </div><div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#afba1afdcac5ee3d6f2a05ff9911c017e">  235</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#afba1afdcac5ee3d6f2a05ff9911c017e">_xStart</a>;                    </div><div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a6b8a2a2d1ad6bff475c13b0fde428ff3">  236</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a6b8a2a2d1ad6bff475c13b0fde428ff3">_solutionX</a>;                 </div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    <span class="comment">// Copy constructors made private</span></div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#aff434ac6d45f748ead8315abcc825bed">IpoptProblem</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html">IpoptProblem</a>&amp;);            </div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html">IpoptProblem</a>&amp; <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a0ab5a8e212575c185980cb7c6eed2ceb">operator=</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html">IpoptProblem</a>&amp;); </div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;};</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;}    <span class="comment">// end namespace ubp</span></div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_a81ea5f97f58cd2e1b062fddec55c7232"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a81ea5f97f58cd2e1b062fddec55c7232">maingo::ubp::IpoptProblem::eval_g</a></div><div class="ttdeci">virtual bool eval_g(Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Index m, Ipopt::Number *g)</div><div class="ttdoc">Function called by Ipopt to evaluate the constraints.</div><div class="ttdef"><b>Definition:</b> ipoptProblem.cpp:149</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_a05145891e0b75e9163d3f1bb4ae81f42"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a05145891e0b75e9163d3f1bb4ae81f42">maingo::ubp::IpoptProblem::_xL</a></div><div class="ttdeci">std::vector&lt; double &gt; _xL</div><div class="ttdef"><b>Definition:</b> ipoptProblem.h:233</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_af5c9129a86a3d83676f34feabd29a3ed"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#af5c9129a86a3d83676f34feabd29a3ed">maingo::ubp::IpoptProblem::eval_f</a></div><div class="ttdeci">virtual bool eval_f(Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Number &amp;obj_value)</div><div class="ttdoc">Function called by Ipopt to evaluate the objective function.</div><div class="ttdef"><b>Definition:</b> ipoptProblem.cpp:129</div></div>
+<a href="ipopt_problem_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ubp_structure_8h.html">ubpStructure.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment">// Needed according to Ipopt Dll readme:</span></div><div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="ipopt_problem_8h.html#ae8322fb214ef7a74414e3d7f0465e6d9">   17</a></span>&#160;<span class="preprocessor">#define HAVE_CONFIG_H</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;IpTNLP.hpp&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="keyword">namespace </span>ubp {</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="keyword">struct </span>DagObj;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ipopt_problem.html">   42</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html">IpoptProblem</a>: <span class="keyword">public</span> Ipopt::TNLP {</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#aff434ac6d45f748ead8315abcc825bed">IpoptProblem</a>();</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#aff434ac6d45f748ead8315abcc825bed">IpoptProblem</a>(<span class="keywordtype">unsigned</span> nvarIn, <span class="keywordtype">unsigned</span> neqIn, <span class="keywordtype">unsigned</span> nineqIn, <span class="keywordtype">unsigned</span> nineqSquashIn, <a class="code" href="structmaingo_1_1ubp_1_1_ubp_structure.html">UbpStructure</a>* structureIn,</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                 std::shared_ptr&lt;std::vector&lt;Constraint&gt;&gt; constraintPropertiesIn, std::shared_ptr&lt;DagObj&gt; dagObj);</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a83ab40c3ed93a2ec0d23a3e62d3eb92f">~IpoptProblem</a>();</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a0350b0b316d335dc27f4f5d1350771be">get_nlp_info</a>(Ipopt::Index&amp; n, Ipopt::Index&amp; m, Ipopt::Index&amp; nnz_jac_g,</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;                              Ipopt::Index&amp; nnz_h_lag, IndexStyleEnum&amp; Index_style);</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#af731836f6f8a2bde2029be27b2c3e94f">get_bounds_info</a>(Ipopt::Index n, Ipopt::Number* x_l, Ipopt::Number* x_u,</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;                                 Ipopt::Index m, Ipopt::Number* g_l, Ipopt::Number* g_u);</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a02f91f4b0962c2c77ab5f2c91891a806">get_starting_point</a>(Ipopt::Index n, <span class="keywordtype">bool</span> init_x, Ipopt::Number* x,</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;                                    <span class="keywordtype">bool</span> init_z, Ipopt::Number* z_L, Ipopt::Number* z_U,</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;                                    Ipopt::Index m, <span class="keywordtype">bool</span> init_lambda,</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;                                    Ipopt::Number* lambda);</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#af5c9129a86a3d83676f34feabd29a3ed">eval_f</a>(Ipopt::Index n, <span class="keyword">const</span> Ipopt::Number* x, <span class="keywordtype">bool</span> new_x, Ipopt::Number&amp; obj_value);</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a724a9a70c286024101d8bcbe0ee1f054">eval_grad_f</a>(Ipopt::Index n, <span class="keyword">const</span> Ipopt::Number* x, <span class="keywordtype">bool</span> new_x, Ipopt::Number* grad_f);</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a81ea5f97f58cd2e1b062fddec55c7232">eval_g</a>(Ipopt::Index n, <span class="keyword">const</span> Ipopt::Number* x, <span class="keywordtype">bool</span> new_x, Ipopt::Index m, Ipopt::Number* g);</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#ac97f040e982cca72af0203b014638f4a">eval_jac_g</a>(Ipopt::Index n, <span class="keyword">const</span> Ipopt::Number* x, <span class="keywordtype">bool</span> new_x,</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;                            Ipopt::Index m, Ipopt::Index nele_jac, Ipopt::Index* iRow, Ipopt::Index* jCol,</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;                            Ipopt::Number* values);</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#af839069f9d7a1d29e7a0298fdd4cc8c1">eval_h</a>(Ipopt::Index n, <span class="keyword">const</span> Ipopt::Number* x, <span class="keywordtype">bool</span> new_x,</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;                        Ipopt::Number obj_factor, Ipopt::Index m, <span class="keyword">const</span> Ipopt::Number* lambda,</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;                        <span class="keywordtype">bool</span> new_lambda, Ipopt::Index nele_hess, Ipopt::Index* iRow,</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;                        Ipopt::Index* jCol, Ipopt::Number* values);</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#af8e6509b0ef356458420dafd00bc2b5a">finalize_solution</a>(Ipopt::SolverReturn status,</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;                                   Ipopt::Index n, <span class="keyword">const</span> Ipopt::Number* x, <span class="keyword">const</span> Ipopt::Number* z_L, <span class="keyword">const</span> Ipopt::Number* z_U,</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;                                   Ipopt::Index m, <span class="keyword">const</span> Ipopt::Number* g, <span class="keyword">const</span> Ipopt::Number* lambda,</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;                                   Ipopt::Number obj_value,</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;                                   <span class="keyword">const</span> Ipopt::IpoptData* ip_data,</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;                                   Ipopt::IpoptCalculatedQuantities* ip_cq);</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a317864cfc5afc13826914711cacabea2">get_solution</a>(std::vector&lt;double&gt;&amp; sol_x);</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#ad44bb659518b5e9d4a0362a477d46164">set_bounds_and_starting_point</a>(<span class="keyword">const</span> std::vector&lt;double&gt;&amp; xL, <span class="keyword">const</span> std::vector&lt;double&gt;&amp; xU, <span class="keyword">const</span> std::vector&lt;double&gt;&amp; xStart);</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#ab5457949d2dc3765ac984f4debd9b7e3">  215</a></span>&#160;    std::shared_ptr&lt;DagObj&gt; <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#ab5457949d2dc3765ac984f4debd9b7e3">_DAGobj</a>; </div><div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#aae86a416ec70ff4d59e93a166de048ec">  221</a></span>&#160;    Ipopt::Index <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#aae86a416ec70ff4d59e93a166de048ec">_nvar</a>;                                             </div><div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#ad9ffa23e5b922eb6c42c4cfefaeb6269">  222</a></span>&#160;    Ipopt::Index <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#ad9ffa23e5b922eb6c42c4cfefaeb6269">_nineq</a>;                                            </div><div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#afe39f50811f9ff5a229e70c89de328f4">  223</a></span>&#160;    Ipopt::Index <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#afe39f50811f9ff5a229e70c89de328f4">_nineqSquash</a>;                                      </div><div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a988a8b7d3f4f7f89c2ac09323af39111">  224</a></span>&#160;    Ipopt::Index <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a988a8b7d3f4f7f89c2ac09323af39111">_neq</a>;                                              </div><div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#afb2e8af34a1ecdbd9fbcabf01cdba05a">  225</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_structure.html">UbpStructure</a>* <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#afb2e8af34a1ecdbd9fbcabf01cdba05a">_structure</a>;                                       </div><div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a1e56ab6219a4daa52c5cbbcd6548a603">  226</a></span>&#160;    std::shared_ptr&lt;std::vector&lt;Constraint&gt;&gt; <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a1e56ab6219a4daa52c5cbbcd6548a603">_constraintProperties</a>; </div><div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a16905e9bb3e4cfbb79c91c93c3ebe13c">  227</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a16905e9bb3e4cfbb79c91c93c3ebe13c">_solution_f</a>;                                             </div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a05145891e0b75e9163d3f1bb4ae81f42">  228</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a05145891e0b75e9163d3f1bb4ae81f42">_xL</a>;                                        </div><div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a8a8a87c013f83837c9ea5c7e4f755d1a">  229</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a8a8a87c013f83837c9ea5c7e4f755d1a">_xU</a>;                                        </div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#afba1afdcac5ee3d6f2a05ff9911c017e">  230</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#afba1afdcac5ee3d6f2a05ff9911c017e">_xStart</a>;                                    </div><div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a6b8a2a2d1ad6bff475c13b0fde428ff3">  231</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a6b8a2a2d1ad6bff475c13b0fde428ff3">_solutionX</a>;                                 </div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;    <span class="comment">// Copy constructors made private</span></div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#aff434ac6d45f748ead8315abcc825bed">IpoptProblem</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html">IpoptProblem</a>&amp;);            </div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html">IpoptProblem</a>&amp; <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a0ab5a8e212575c185980cb7c6eed2ceb">operator=</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1ubp_1_1_ipopt_problem.html">IpoptProblem</a>&amp;); </div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;};</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;}    <span class="comment">// end namespace ubp</span></div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_a81ea5f97f58cd2e1b062fddec55c7232"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a81ea5f97f58cd2e1b062fddec55c7232">maingo::ubp::IpoptProblem::eval_g</a></div><div class="ttdeci">virtual bool eval_g(Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Index m, Ipopt::Number *g)</div><div class="ttdoc">Function called by Ipopt to evaluate the constraints. </div><div class="ttdef"><b>Definition:</b> ipoptProblem.cpp:145</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_a05145891e0b75e9163d3f1bb4ae81f42"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a05145891e0b75e9163d3f1bb4ae81f42">maingo::ubp::IpoptProblem::_xL</a></div><div class="ttdeci">std::vector&lt; double &gt; _xL</div><div class="ttdef"><b>Definition:</b> ipoptProblem.h:228</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_af5c9129a86a3d83676f34feabd29a3ed"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#af5c9129a86a3d83676f34feabd29a3ed">maingo::ubp::IpoptProblem::eval_f</a></div><div class="ttdeci">virtual bool eval_f(Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Number &amp;obj_value)</div><div class="ttdoc">Function called by Ipopt to evaluate the objective function. </div><div class="ttdef"><b>Definition:</b> ipoptProblem.cpp:125</div></div>
 <div class="ttc" id="ubp_structure_8h_html"><div class="ttname"><a href="ubp_structure_8h.html">ubpStructure.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_a83ab40c3ed93a2ec0d23a3e62d3eb92f"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a83ab40c3ed93a2ec0d23a3e62d3eb92f">maingo::ubp::IpoptProblem::~IpoptProblem</a></div><div class="ttdeci">virtual ~IpoptProblem()</div><div class="ttdoc">Destructor.</div><div class="ttdef"><b>Definition:</b> ipoptProblem.cpp:40</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_a724a9a70c286024101d8bcbe0ee1f054"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a724a9a70c286024101d8bcbe0ee1f054">maingo::ubp::IpoptProblem::eval_grad_f</a></div><div class="ttdeci">virtual bool eval_grad_f(Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Number *grad_f)</div><div class="ttdoc">Function called by Ipopt to evaluate the gradient of the objective function.</div><div class="ttdef"><b>Definition:</b> ipoptProblem.cpp:139</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_a0350b0b316d335dc27f4f5d1350771be"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a0350b0b316d335dc27f4f5d1350771be">maingo::ubp::IpoptProblem::get_nlp_info</a></div><div class="ttdeci">virtual bool get_nlp_info(Ipopt::Index &amp;n, Ipopt::Index &amp;m, Ipopt::Index &amp;nnz_jac_g, Ipopt::Index &amp;nnz_h_lag, IndexStyleEnum &amp;Index_style)</div><div class="ttdoc">Function called by Ipopt to get basic information on the problem.</div><div class="ttdef"><b>Definition:</b> ipoptProblem.cpp:48</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_ab5457949d2dc3765ac984f4debd9b7e3"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#ab5457949d2dc3765ac984f4debd9b7e3">maingo::ubp::IpoptProblem::_DAGobj</a></div><div class="ttdeci">std::shared_ptr&lt; DagObj &gt; _DAGobj</div><div class="ttdef"><b>Definition:</b> ipoptProblem.h:220</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_aff434ac6d45f748ead8315abcc825bed"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#aff434ac6d45f748ead8315abcc825bed">maingo::ubp::IpoptProblem::IpoptProblem</a></div><div class="ttdeci">IpoptProblem()</div><div class="ttdoc">Standard constructor.</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_a1e56ab6219a4daa52c5cbbcd6548a603"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a1e56ab6219a4daa52c5cbbcd6548a603">maingo::ubp::IpoptProblem::_constraintProperties</a></div><div class="ttdeci">std::shared_ptr&lt; std::vector&lt; Constraint &gt; &gt; _constraintProperties</div><div class="ttdef"><b>Definition:</b> ipoptProblem.h:226</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_a83ab40c3ed93a2ec0d23a3e62d3eb92f"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a83ab40c3ed93a2ec0d23a3e62d3eb92f">maingo::ubp::IpoptProblem::~IpoptProblem</a></div><div class="ttdeci">virtual ~IpoptProblem()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> ipoptProblem.cpp:36</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_a724a9a70c286024101d8bcbe0ee1f054"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a724a9a70c286024101d8bcbe0ee1f054">maingo::ubp::IpoptProblem::eval_grad_f</a></div><div class="ttdeci">virtual bool eval_grad_f(Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Number *grad_f)</div><div class="ttdoc">Function called by Ipopt to evaluate the gradient of the objective function. </div><div class="ttdef"><b>Definition:</b> ipoptProblem.cpp:135</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_a0350b0b316d335dc27f4f5d1350771be"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a0350b0b316d335dc27f4f5d1350771be">maingo::ubp::IpoptProblem::get_nlp_info</a></div><div class="ttdeci">virtual bool get_nlp_info(Ipopt::Index &amp;n, Ipopt::Index &amp;m, Ipopt::Index &amp;nnz_jac_g, Ipopt::Index &amp;nnz_h_lag, IndexStyleEnum &amp;Index_style)</div><div class="ttdoc">Function called by Ipopt to get basic information on the problem. </div><div class="ttdef"><b>Definition:</b> ipoptProblem.cpp:44</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_ab5457949d2dc3765ac984f4debd9b7e3"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#ab5457949d2dc3765ac984f4debd9b7e3">maingo::ubp::IpoptProblem::_DAGobj</a></div><div class="ttdeci">std::shared_ptr&lt; DagObj &gt; _DAGobj</div><div class="ttdef"><b>Definition:</b> ipoptProblem.h:215</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_aff434ac6d45f748ead8315abcc825bed"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#aff434ac6d45f748ead8315abcc825bed">maingo::ubp::IpoptProblem::IpoptProblem</a></div><div class="ttdeci">IpoptProblem()</div><div class="ttdoc">Standard constructor. </div></div>
 <div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_a0ab5a8e212575c185980cb7c6eed2ceb"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a0ab5a8e212575c185980cb7c6eed2ceb">maingo::ubp::IpoptProblem::operator=</a></div><div class="ttdeci">IpoptProblem &amp; operator=(const IpoptProblem &amp;)</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_afe39f50811f9ff5a229e70c89de328f4"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#afe39f50811f9ff5a229e70c89de328f4">maingo::ubp::IpoptProblem::_nineqSquash</a></div><div class="ttdeci">Ipopt::Index _nineqSquash</div><div class="ttdef"><b>Definition:</b> ipoptProblem.h:228</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_a317864cfc5afc13826914711cacabea2"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a317864cfc5afc13826914711cacabea2">maingo::ubp::IpoptProblem::get_solution</a></div><div class="ttdeci">double get_solution(std::vector&lt; double &gt; &amp;sol_x)</div><div class="ttdoc">Function called from the upper bounding wrapper to query the solution.</div><div class="ttdef"><b>Definition:</b> ipoptProblem.cpp:253</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_aae86a416ec70ff4d59e93a166de048ec"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#aae86a416ec70ff4d59e93a166de048ec">maingo::ubp::IpoptProblem::_nvar</a></div><div class="ttdeci">Ipopt::Index _nvar</div><div class="ttdef"><b>Definition:</b> ipoptProblem.h:226</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_afb2e8af34a1ecdbd9fbcabf01cdba05a"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#afb2e8af34a1ecdbd9fbcabf01cdba05a">maingo::ubp::IpoptProblem::_structure</a></div><div class="ttdeci">UbpStructure * _structure</div><div class="ttdef"><b>Definition:</b> ipoptProblem.h:230</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_afba1afdcac5ee3d6f2a05ff9911c017e"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#afba1afdcac5ee3d6f2a05ff9911c017e">maingo::ubp::IpoptProblem::_xStart</a></div><div class="ttdeci">std::vector&lt; double &gt; _xStart</div><div class="ttdef"><b>Definition:</b> ipoptProblem.h:235</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_af839069f9d7a1d29e7a0298fdd4cc8c1"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#af839069f9d7a1d29e7a0298fdd4cc8c1">maingo::ubp::IpoptProblem::eval_h</a></div><div class="ttdeci">virtual bool eval_h(Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Number obj_factor, Ipopt::Index m, const Ipopt::Number *lambda, bool new_lambda, Ipopt::Index nele_hess, Ipopt::Index *iRow, Ipopt::Index *jCol, Ipopt::Number *values)</div><div class="ttdoc">Function called by Ipopt to evaluate the Hessian - not implemented, just throws an exception!</div><div class="ttdef"><b>Definition:</b> ipoptProblem.cpp:193</div></div>
-<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO</div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_af731836f6f8a2bde2029be27b2c3e94f"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#af731836f6f8a2bde2029be27b2c3e94f">maingo::ubp::IpoptProblem::get_bounds_info</a></div><div class="ttdeci">virtual bool get_bounds_info(Ipopt::Index n, Ipopt::Number *x_l, Ipopt::Number *x_u, Ipopt::Index m, Ipopt::Number *g_l, Ipopt::Number *g_u)</div><div class="ttdoc">Function called by Ipopt to get information on variables bounds.</div><div class="ttdef"><b>Definition:</b> ipoptProblem.cpp:73</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_a16905e9bb3e4cfbb79c91c93c3ebe13c"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a16905e9bb3e4cfbb79c91c93c3ebe13c">maingo::ubp::IpoptProblem::_solution_f</a></div><div class="ttdeci">double _solution_f</div><div class="ttdef"><b>Definition:</b> ipoptProblem.h:232</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_a8a8a87c013f83837c9ea5c7e4f755d1a"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a8a8a87c013f83837c9ea5c7e4f755d1a">maingo::ubp::IpoptProblem::_xU</a></div><div class="ttdeci">std::vector&lt; double &gt; _xU</div><div class="ttdef"><b>Definition:</b> ipoptProblem.h:234</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_ad44bb659518b5e9d4a0362a477d46164"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#ad44bb659518b5e9d4a0362a477d46164">maingo::ubp::IpoptProblem::set_bounds_and_starting_point</a></div><div class="ttdeci">void set_bounds_and_starting_point(const std::vector&lt; double &gt; &amp;xL, const std::vector&lt; double &gt; &amp;xU, const std::vector&lt; double &gt; &amp;xStart)</div><div class="ttdoc">Function called from the upper bounding wrapper to specify the variable bounds and starting point.</div><div class="ttdef"><b>Definition:</b> ipoptProblem.cpp:269</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_ac97f040e982cca72af0203b014638f4a"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#ac97f040e982cca72af0203b014638f4a">maingo::ubp::IpoptProblem::eval_jac_g</a></div><div class="ttdeci">virtual bool eval_jac_g(Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Index m, Ipopt::Index nele_jac, Ipopt::Index *iRow, Ipopt::Index *jCol, Ipopt::Number *values)</div><div class="ttdoc">Function called by Ipopt to evaluate the constraints.</div><div class="ttdef"><b>Definition:</b> ipoptProblem.cpp:159</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_ad9ffa23e5b922eb6c42c4cfefaeb6269"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#ad9ffa23e5b922eb6c42c4cfefaeb6269">maingo::ubp::IpoptProblem::_nineq</a></div><div class="ttdeci">Ipopt::Index _nineq</div><div class="ttdef"><b>Definition:</b> ipoptProblem.h:227</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_a02f91f4b0962c2c77ab5f2c91891a806"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a02f91f4b0962c2c77ab5f2c91891a806">maingo::ubp::IpoptProblem::get_starting_point</a></div><div class="ttdeci">virtual bool get_starting_point(Ipopt::Index n, bool init_x, Ipopt::Number *x, bool init_z, Ipopt::Number *z_L, Ipopt::Number *z_U, Ipopt::Index m, bool init_lambda, Ipopt::Number *lambda)</div><div class="ttdoc">Function called by Ipopt to query the starting point for local search.</div><div class="ttdef"><b>Definition:</b> ipoptProblem.cpp:107</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html">maingo::ubp::IpoptProblem</a></div><div class="ttdoc">Class for representing problems to be solved by IpOpt, providing an interface to the problem definiti...</div><div class="ttdef"><b>Definition:</b> ipoptProblem.h:47</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_structure_html"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_structure.html">maingo::ubp::UbpStructure</a></div><div class="ttdoc">Struct for storing structure information for the upper bounding solver.</div><div class="ttdef"><b>Definition:</b> ubpStructure.h:35</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_af8e6509b0ef356458420dafd00bc2b5a"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#af8e6509b0ef356458420dafd00bc2b5a">maingo::ubp::IpoptProblem::finalize_solution</a></div><div class="ttdeci">virtual void finalize_solution(Ipopt::SolverReturn status, Ipopt::Index n, const Ipopt::Number *x, const Ipopt::Number *z_L, const Ipopt::Number *z_U, Ipopt::Index m, const Ipopt::Number *g, const Ipopt::Number *lambda, Ipopt::Number obj_value, const Ipopt::IpoptData *ip_data, Ipopt::IpoptCalculatedQuantities *ip_cq)</div><div class="ttdoc">Function called by Ipopt to communicate the result of the local search.</div><div class="ttdef"><b>Definition:</b> ipoptProblem.cpp:234</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_aa7b6d4e92ccd5f357728d82baec6cf59"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#aa7b6d4e92ccd5f357728d82baec6cf59">maingo::ubp::IpoptProblem::_constraintProperties</a></div><div class="ttdeci">std::vector&lt; Constraint &gt; * _constraintProperties</div><div class="ttdef"><b>Definition:</b> ipoptProblem.h:231</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_a988a8b7d3f4f7f89c2ac09323af39111"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a988a8b7d3f4f7f89c2ac09323af39111">maingo::ubp::IpoptProblem::_neq</a></div><div class="ttdeci">Ipopt::Index _neq</div><div class="ttdef"><b>Definition:</b> ipoptProblem.h:229</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_a6b8a2a2d1ad6bff475c13b0fde428ff3"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a6b8a2a2d1ad6bff475c13b0fde428ff3">maingo::ubp::IpoptProblem::_solutionX</a></div><div class="ttdeci">std::vector&lt; double &gt; _solutionX</div><div class="ttdef"><b>Definition:</b> ipoptProblem.h:236</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_afe39f50811f9ff5a229e70c89de328f4"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#afe39f50811f9ff5a229e70c89de328f4">maingo::ubp::IpoptProblem::_nineqSquash</a></div><div class="ttdeci">Ipopt::Index _nineqSquash</div><div class="ttdef"><b>Definition:</b> ipoptProblem.h:223</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_a317864cfc5afc13826914711cacabea2"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a317864cfc5afc13826914711cacabea2">maingo::ubp::IpoptProblem::get_solution</a></div><div class="ttdeci">double get_solution(std::vector&lt; double &gt; &amp;sol_x)</div><div class="ttdoc">Function called from the upper bounding wrapper to query the solution. </div><div class="ttdef"><b>Definition:</b> ipoptProblem.cpp:249</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_aae86a416ec70ff4d59e93a166de048ec"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#aae86a416ec70ff4d59e93a166de048ec">maingo::ubp::IpoptProblem::_nvar</a></div><div class="ttdeci">Ipopt::Index _nvar</div><div class="ttdef"><b>Definition:</b> ipoptProblem.h:221</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_afb2e8af34a1ecdbd9fbcabf01cdba05a"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#afb2e8af34a1ecdbd9fbcabf01cdba05a">maingo::ubp::IpoptProblem::_structure</a></div><div class="ttdeci">UbpStructure * _structure</div><div class="ttdef"><b>Definition:</b> ipoptProblem.h:225</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_afba1afdcac5ee3d6f2a05ff9911c017e"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#afba1afdcac5ee3d6f2a05ff9911c017e">maingo::ubp::IpoptProblem::_xStart</a></div><div class="ttdeci">std::vector&lt; double &gt; _xStart</div><div class="ttdef"><b>Definition:</b> ipoptProblem.h:230</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_af839069f9d7a1d29e7a0298fdd4cc8c1"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#af839069f9d7a1d29e7a0298fdd4cc8c1">maingo::ubp::IpoptProblem::eval_h</a></div><div class="ttdeci">virtual bool eval_h(Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Number obj_factor, Ipopt::Index m, const Ipopt::Number *lambda, bool new_lambda, Ipopt::Index nele_hess, Ipopt::Index *iRow, Ipopt::Index *jCol, Ipopt::Number *values)</div><div class="ttdoc">Function called by Ipopt to evaluate the Hessian - not implemented, just throws an exception! ...</div><div class="ttdef"><b>Definition:</b> ipoptProblem.cpp:189</div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_af731836f6f8a2bde2029be27b2c3e94f"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#af731836f6f8a2bde2029be27b2c3e94f">maingo::ubp::IpoptProblem::get_bounds_info</a></div><div class="ttdeci">virtual bool get_bounds_info(Ipopt::Index n, Ipopt::Number *x_l, Ipopt::Number *x_u, Ipopt::Index m, Ipopt::Number *g_l, Ipopt::Number *g_u)</div><div class="ttdoc">Function called by Ipopt to get information on variables bounds. </div><div class="ttdef"><b>Definition:</b> ipoptProblem.cpp:69</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_a16905e9bb3e4cfbb79c91c93c3ebe13c"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a16905e9bb3e4cfbb79c91c93c3ebe13c">maingo::ubp::IpoptProblem::_solution_f</a></div><div class="ttdeci">double _solution_f</div><div class="ttdef"><b>Definition:</b> ipoptProblem.h:227</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_a8a8a87c013f83837c9ea5c7e4f755d1a"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a8a8a87c013f83837c9ea5c7e4f755d1a">maingo::ubp::IpoptProblem::_xU</a></div><div class="ttdeci">std::vector&lt; double &gt; _xU</div><div class="ttdef"><b>Definition:</b> ipoptProblem.h:229</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_ad44bb659518b5e9d4a0362a477d46164"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#ad44bb659518b5e9d4a0362a477d46164">maingo::ubp::IpoptProblem::set_bounds_and_starting_point</a></div><div class="ttdeci">void set_bounds_and_starting_point(const std::vector&lt; double &gt; &amp;xL, const std::vector&lt; double &gt; &amp;xU, const std::vector&lt; double &gt; &amp;xStart)</div><div class="ttdoc">Function called from the upper bounding wrapper to specify the variable bounds and starting point...</div><div class="ttdef"><b>Definition:</b> ipoptProblem.cpp:259</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_ac97f040e982cca72af0203b014638f4a"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#ac97f040e982cca72af0203b014638f4a">maingo::ubp::IpoptProblem::eval_jac_g</a></div><div class="ttdeci">virtual bool eval_jac_g(Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Index m, Ipopt::Index nele_jac, Ipopt::Index *iRow, Ipopt::Index *jCol, Ipopt::Number *values)</div><div class="ttdoc">Function called by Ipopt to evaluate the constraints. </div><div class="ttdef"><b>Definition:</b> ipoptProblem.cpp:155</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_ad9ffa23e5b922eb6c42c4cfefaeb6269"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#ad9ffa23e5b922eb6c42c4cfefaeb6269">maingo::ubp::IpoptProblem::_nineq</a></div><div class="ttdeci">Ipopt::Index _nineq</div><div class="ttdef"><b>Definition:</b> ipoptProblem.h:222</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_a02f91f4b0962c2c77ab5f2c91891a806"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a02f91f4b0962c2c77ab5f2c91891a806">maingo::ubp::IpoptProblem::get_starting_point</a></div><div class="ttdeci">virtual bool get_starting_point(Ipopt::Index n, bool init_x, Ipopt::Number *x, bool init_z, Ipopt::Number *z_L, Ipopt::Number *z_U, Ipopt::Index m, bool init_lambda, Ipopt::Number *lambda)</div><div class="ttdoc">Function called by Ipopt to query the starting point for local search. </div><div class="ttdef"><b>Definition:</b> ipoptProblem.cpp:103</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html">maingo::ubp::IpoptProblem</a></div><div class="ttdoc">Class for representing problems to be solved by IpOpt, providing an interface to the problem definiti...</div><div class="ttdef"><b>Definition:</b> ipoptProblem.h:42</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_structure_html"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_structure.html">maingo::ubp::UbpStructure</a></div><div class="ttdoc">Struct for storing structure information for the upper bounding solver. </div><div class="ttdef"><b>Definition:</b> ubpStructure.h:30</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_af8e6509b0ef356458420dafd00bc2b5a"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#af8e6509b0ef356458420dafd00bc2b5a">maingo::ubp::IpoptProblem::finalize_solution</a></div><div class="ttdeci">virtual void finalize_solution(Ipopt::SolverReturn status, Ipopt::Index n, const Ipopt::Number *x, const Ipopt::Number *z_L, const Ipopt::Number *z_U, Ipopt::Index m, const Ipopt::Number *g, const Ipopt::Number *lambda, Ipopt::Number obj_value, const Ipopt::IpoptData *ip_data, Ipopt::IpoptCalculatedQuantities *ip_cq)</div><div class="ttdoc">Function called by Ipopt to communicate the result of the local search. </div><div class="ttdef"><b>Definition:</b> ipoptProblem.cpp:230</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_a988a8b7d3f4f7f89c2ac09323af39111"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a988a8b7d3f4f7f89c2ac09323af39111">maingo::ubp::IpoptProblem::_neq</a></div><div class="ttdeci">Ipopt::Index _neq</div><div class="ttdef"><b>Definition:</b> ipoptProblem.h:224</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ipopt_problem_html_a6b8a2a2d1ad6bff475c13b0fde428ff3"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ipopt_problem.html#a6b8a2a2d1ad6bff475c13b0fde428ff3">maingo::ubp::IpoptProblem::_solutionX</a></div><div class="ttdeci">std::vector&lt; double &gt; _solutionX</div><div class="ttdef"><b>Definition:</b> ipoptProblem.h:231</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -128,7 +128,7 @@ $(document).ready(function(){initNavTree('ipopt_problem_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="ipopt_problem_8h.html">ipoptProblem.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/jquery.js b/doc/html/jquery.js
index 1ee895ca3201fb9627f704a0bb8ad45fe9408412..2771c749a4f4e12b7d824f08fc514d6fd1f52605 100644
--- a/doc/html/jquery.js
+++ b/doc/html/jquery.js
@@ -1,5 +1,33 @@
+/*
+ @licstart  The following is the entire license notice for the
+ JavaScript code in this file.
+
+ Copyright (C) 1997-2017 by Dimitri van Heesch
+
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+
+ The above copyright notice and this permission notice shall be included
+ in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ @licend  The above is the entire license notice
+ for the JavaScript code in this file
+ */
 /*!
- * jQuery JavaScript Library v1.7.2
+ * jQuery JavaScript Library v1.7.1
  * http://jquery.com/
  *
  * Copyright 2011, John Resig
@@ -11,16 +39,16 @@
  * Copyright 2011, The Dojo Foundation
  * Released under the MIT, BSD, and GPL Licenses.
  *
- * Date: Wed Mar 21 12:46:34 2012 -0700
+ * Date: Mon Nov 21 21:11:03 2011 -0500
  */
-(function(bd,L){var av=bd.document,bu=bd.navigator,bm=bd.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bd.jQuery,bH=bd.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.2",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b4<b3;b4++){if((b9=arguments[b4])!=null){for(b2 in b9){b0=b5[b2];b1=b9[b2];if(b5===b1){continue}if(b8&&b1&&(bF.isPlainObject(b1)||(b6=bF.isArray(b1)))){if(b6){b6=false;b7=b0&&bF.isArray(b0)?b0:[]}else{b7=b0&&bF.isPlainObject(b0)?b0:{}}b5[b2]=bF.extend(b8,b7,b1)}else{if(b1!==L){b5[b2]=b1}}}}}return b5};bF.extend({noConflict:function(b0){if(bd.$===bF){bd.$=bH}if(b0&&bd.jQuery===bF){bd.jQuery=bU}return bF},isReady:false,readyWait:1,holdReady:function(b0){if(b0){bF.readyWait++}else{bF.ready(true)}},ready:function(b0){if((b0===true&&!--bF.readyWait)||(b0!==true&&!bF.isReady)){if(!av.body){return setTimeout(bF.ready,1)}bF.isReady=true;if(b0!==true&&--bF.readyWait>0){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bd.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bd.attachEvent("onload",bF.ready);var b0=false;try{b0=bd.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0!=null&&b0==b0.window},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bd.JSON&&bd.JSON.parse){return bd.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){if(typeof b2!=="string"||!b2){return null}var b0,b1;try{if(bd.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bd.execScript||function(b1){bd["eval"].call(bd,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b4<b5;){if(b6.apply(b3[b4++],b2)===false){break}}}}else{if(b0){for(b1 in b3){if(b6.call(b3[b1],b1,b3[b1])===false){break}}}else{for(;b4<b5;){if(b6.call(b3[b4],b4,b3[b4++])===false){break}}}}return b3},trim:bO?function(b0){return b0==null?"":bO.call(b0)}:function(b0){return b0==null?"":b0.toString().replace(bI,"").replace(bE,"")},makeArray:function(b3,b1){var b0=b1||[];if(b3!=null){var b2=bF.type(b3);if(b3.length==null||b2==="string"||b2==="function"||b2==="regexp"||bF.isWindow(b3)){bz.call(b0,b3)}else{bF.merge(b0,b3)}}return b0},inArray:function(b2,b3,b1){var b0;if(b3){if(bv){return bv.call(b3,b2,b1)}b0=b3.length;b1=b1?b1<0?Math.max(0,b0+b1):b1:0;for(;b1<b0;b1++){if(b1 in b3&&b3[b1]===b2){return b1}}}return -1},merge:function(b4,b2){var b3=b4.length,b1=0;if(typeof b2.length==="number"){for(var b0=b2.length;b1<b0;b1++){b4[b3++]=b2[b1]}}else{while(b2[b1]!==L){b4[b3++]=b2[b1++]}}b4.length=b3;return b4},grep:function(b1,b6,b0){var b2=[],b5;b0=!!b0;for(var b3=0,b4=b1.length;b3<b4;b3++){b5=!!b6(b1[b3],b3);if(b0!==b5){b2.push(b1[b3])}}return b2},map:function(b0,b7,b8){var b5,b6,b4=[],b2=0,b1=b0.length,b3=b0 instanceof bF||b1!==L&&typeof b1==="number"&&((b1>0&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b2<b1;b2++){b5=b7(b0[b2],b2,b8);if(b5!=null){b4[b4.length]=b5}}}else{for(b6 in b0){b5=b7(b0[b6],b6,b8);if(b5!=null){b4[b4.length]=b5}}}return b4.concat.apply([],b4)},guid:1,proxy:function(b4,b3){if(typeof b3==="string"){var b2=b4[b3];b3=b4;b4=b2}if(!bF.isFunction(b4)){return L}var b0=bK.call(arguments,2),b1=function(){return b4.apply(b3,b0.concat(bK.call(arguments)))};b1.guid=b4.guid=b4.guid||b1.guid||bF.guid++;return b1},access:function(b0,b6,b9,b7,b4,ca,b8){var b2,b5=b9==null,b3=0,b1=b0.length;if(b9&&typeof b9==="object"){for(b3 in b9){bF.access(b0,b6,b3,b9[b3],1,ca,b7)}b4=1}else{if(b7!==L){b2=b8===L&&bF.isFunction(b7);if(b5){if(b2){b2=b6;b6=function(cc,cb,cd){return b2.call(bF(cc),cd)}}else{b6.call(b0,b7);b6=null}}if(b6){for(;b3<b1;b3++){b6(b0[b3],b9,b2?b7.call(b0[b3],b3,b6(b0[b3],b9)):b7,b8)}}b4=1}}return b4?b0:b5?b6.call(b0):b1?b6(b0[0],b9):ca},now:function(){return(new Date()).getTime()},uaMatch:function(b1){b1=b1.toLowerCase();var b0=by.exec(b1)||bR.exec(b1)||bQ.exec(b1)||b1.indexOf("compatible")<0&&bS.exec(b1)||[];return{browser:b0[1]||"",version:b0[2]||"0"}},sub:function(){function b0(b3,b4){return new b0.fn.init(b3,b4)}bF.extend(true,b0,this);b0.superclass=this;b0.fn=b0.prototype=this();b0.fn.constructor=b0;b0.sub=this.sub;b0.fn.init=function b2(b3,b4){if(b4&&b4 instanceof bF&&!(b4 instanceof b0)){b4=b0(b4)}return bF.fn.init.call(this,b3,b4,b1)};b0.fn.init.prototype=b0.fn;var b1=b0(av);return b0},browser:{}});bF.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(b1,b0){bx["[object "+b0+"]"]=b0.toLowerCase()});bV=bF.uaMatch(bX);if(bV.browser){bF.browser[bV.browser]=true;bF.browser.version=bV.version}if(bF.browser.webkit){bF.browser.safari=true}if(bM.test("\xA0")){bI=/^[\s\xA0]+/;bE=/[\s\xA0]+$/}bD=bF(av);if(av.addEventListener){e=function(){av.removeEventListener("DOMContentLoaded",e,false);bF.ready()}}else{if(av.attachEvent){e=function(){if(av.readyState==="complete"){av.detachEvent("onreadystatechange",e);bF.ready()}}}}function bw(){if(bF.isReady){return}try{av.documentElement.doScroll("left")}catch(b0){setTimeout(bw,1);return}bF.ready()}return bF})();var a3={};function X(e){var bv=a3[e]={},bw,bx;e=e.split(/\s+/);for(bw=0,bx=e.length;bw<bx;bw++){bv[e[bw]]=true}return bv}b.Callbacks=function(bx){bx=bx?(a3[bx]||X(bx)):{};var bC=[],bD=[],by,e,bz,bw,bA,bB,bF=function(bG){var bH,bK,bJ,bI,bL;for(bH=0,bK=bG.length;bH<bK;bH++){bJ=bG[bH];bI=b.type(bJ);if(bI==="array"){bF(bJ)}else{if(bI==="function"){if(!bx.unique||!bE.has(bJ)){bC.push(bJ)}}}}},bv=function(bH,bG){bG=bG||[];by=!bx.memory||[bH,bG];e=true;bz=true;bB=bw||0;bw=0;bA=bC.length;for(;bC&&bB<bA;bB++){if(bC[bB].apply(bH,bG)===false&&bx.stopOnFalse){by=true;break}}bz=false;if(bC){if(!bx.once){if(bD&&bD.length){by=bD.shift();bE.fireWith(by[0],by[1])}}else{if(by===true){bE.disable()}else{bC=[]}}}},bE={add:function(){if(bC){var bG=bC.length;bF(arguments);if(bz){bA=bC.length}else{if(by&&by!==true){bw=bG;bv(by[0],by[1])}}}return this},remove:function(){if(bC){var bG=arguments,bI=0,bJ=bG.length;for(;bI<bJ;bI++){for(var bH=0;bH<bC.length;bH++){if(bG[bI]===bC[bH]){if(bz){if(bH<=bA){bA--;if(bH<=bB){bB--}}}bC.splice(bH--,1);if(bx.unique){break}}}}}return this},has:function(bH){if(bC){var bG=0,bI=bC.length;for(;bG<bI;bG++){if(bH===bC[bG]){return true}}}return false},empty:function(){bC=[];return this},disable:function(){bC=bD=by=L;return this},disabled:function(){return !bC},lock:function(){bD=L;if(!by||by===true){bE.disable()}return this},locked:function(){return !bD},fireWith:function(bH,bG){if(bD){if(bz){if(!bx.once){bD.push([bH,bG])}}else{if(!(bx.once&&by)){bv(bH,bG)}}}return this},fire:function(){bE.fireWith(this,arguments);return this},fired:function(){return !!e}};return bE};var aK=[].slice;b.extend({Deferred:function(by){var bx=b.Callbacks("once memory"),bw=b.Callbacks("once memory"),bv=b.Callbacks("memory"),e="pending",bA={resolve:bx,reject:bw,notify:bv},bC={done:bx.add,fail:bw.add,progress:bv.add,state:function(){return e},isResolved:bx.fired,isRejected:bw.fired,then:function(bE,bD,bF){bB.done(bE).fail(bD).progress(bF);return this},always:function(){bB.done.apply(bB,arguments).fail.apply(bB,arguments);return this},pipe:function(bF,bE,bD){return b.Deferred(function(bG){b.each({done:[bF,"resolve"],fail:[bE,"reject"],progress:[bD,"notify"]},function(bI,bL){var bH=bL[0],bK=bL[1],bJ;if(b.isFunction(bH)){bB[bI](function(){bJ=bH.apply(this,arguments);if(bJ&&b.isFunction(bJ.promise)){bJ.promise().then(bG.resolve,bG.reject,bG.notify)}else{bG[bK+"With"](this===bB?bG:this,[bJ])}})}else{bB[bI](bG[bK])}})}).promise()},promise:function(bE){if(bE==null){bE=bC}else{for(var bD in bC){bE[bD]=bC[bD]}}return bE}},bB=bC.promise({}),bz;for(bz in bA){bB[bz]=bA[bz].fire;bB[bz+"With"]=bA[bz].fireWith}bB.done(function(){e="resolved"},bw.disable,bv.lock).fail(function(){e="rejected"},bx.disable,bv.lock);if(by){by.call(bB,bB)}return bB},when:function(bA){var bx=aK.call(arguments,0),bv=0,e=bx.length,bB=new Array(e),bw=e,by=e,bC=e<=1&&bA&&b.isFunction(bA.promise)?bA:b.Deferred(),bE=bC.promise();function bD(bF){return function(bG){bx[bF]=arguments.length>1?aK.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aK.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv<e;bv++){if(bx[bv]&&bx[bv].promise&&b.isFunction(bx[bv].promise)){bx[bv].promise().then(bD(bv),bC.reject,bz(bv))}else{--bw}}if(!bw){bC.resolveWith(bC,bx)}}else{if(bC!==bA){bC.resolveWith(bC,e?[bA]:[])}}return bE}});b.support=(function(){var bI,bH,bE,bF,bx,bD,bC,bz,bJ,bA,by,bw,bv=av.createElement("div"),bG=av.documentElement;bv.setAttribute("className","t");bv.innerHTML="   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";bH=bv.getElementsByTagName("*");bE=bv.getElementsByTagName("a")[0];if(!bH||!bH.length||!bE){return{}}bF=av.createElement("select");bx=bF.appendChild(av.createElement("option"));bD=bv.getElementsByTagName("input")[0];bI={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bE.getAttribute("style")),hrefNormalized:(bE.getAttribute("href")==="/a"),opacity:/^0.55/.test(bE.style.opacity),cssFloat:!!bE.style.cssFloat,checkOn:(bD.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav></:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true,pixelMargin:true};b.boxModel=bI.boxModel=(av.compatMode==="CSS1Compat");bD.checked=true;bI.noCloneChecked=bD.cloneNode(true).checked;bF.disabled=true;bI.optDisabled=!bx.disabled;try{delete bv.test}catch(bB){bI.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bI.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bD=av.createElement("input");bD.value="t";bD.setAttribute("type","radio");bI.radioValue=bD.value==="t";bD.setAttribute("checked","checked");bD.setAttribute("name","t");bv.appendChild(bD);bC=av.createDocumentFragment();bC.appendChild(bv.lastChild);bI.checkClone=bC.cloneNode(true).cloneNode(true).lastChild.checked;bI.appendChecked=bD.checked;bC.removeChild(bD);bC.appendChild(bv);if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bA="on"+by;bw=(bA in bv);if(!bw){bv.setAttribute(bA,"return;");bw=(typeof bv[bA]==="function")}bI[by+"Bubbles"]=bw}}bC.removeChild(bv);bC=bF=bx=bv=bD=null;b(function(){var bM,bV,bW,bU,bO,bP,bR,bL,bK,bQ,bN,e,bT,bS=av.getElementsByTagName("body")[0];if(!bS){return}bL=1;bT="padding:0;margin:0;border:";bN="position:absolute;top:0;left:0;width:1px;height:1px;";e=bT+"0;visibility:hidden;";bK="style='"+bN+bT+"5px solid #000;";bQ="<div "+bK+"display:block;'><div style='"+bT+"0;display:block;overflow:hidden;'></div></div><table "+bK+"' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";bM=av.createElement("div");bM.style.cssText=e+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bS.insertBefore(bM,bS.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="<table><tr><td style='"+bT+"0;display:none'></td><td>t</td></tr></table>";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bI.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);if(bd.getComputedStyle){bv.innerHTML="";bR=av.createElement("div");bR.style.width="0";bR.style.marginRight="0";bv.style.width="2px";bv.appendChild(bR);bI.reliableMarginRight=(parseInt((bd.getComputedStyle(bR,null)||{marginRight:0}).marginRight,10)||0)===0}if(typeof bv.style.zoom!=="undefined"){bv.innerHTML="";bv.style.width=bv.style.padding="1px";bv.style.border=0;bv.style.overflow="hidden";bv.style.display="inline";bv.style.zoom=1;bI.inlineBlockNeedsLayout=(bv.offsetWidth===3);bv.style.display="block";bv.style.overflow="visible";bv.innerHTML="<div style='width:5px;'></div>";bI.shrinkWrapBlocks=(bv.offsetWidth!==3)}bv.style.cssText=bN+e;bv.innerHTML=bQ;bV=bv.firstChild;bW=bV.firstChild;bO=bV.nextSibling.firstChild.firstChild;bP={doesNotAddBorder:(bW.offsetTop!==5),doesAddBorderForTableAndCells:(bO.offsetTop===5)};bW.style.position="fixed";bW.style.top="20px";bP.fixedPosition=(bW.offsetTop===20||bW.offsetTop===15);bW.style.position=bW.style.top="";bV.style.overflow="hidden";bV.style.position="relative";bP.subtractsBorderForOverflowNotVisible=(bW.offsetTop===-5);bP.doesNotIncludeMarginInBodyOffset=(bS.offsetTop!==bL);if(bd.getComputedStyle){bv.style.marginTop="1%";bI.pixelMargin=(bd.getComputedStyle(bv,null)||{marginTop:0}).marginTop!=="1%"}if(typeof bM.style.zoom!=="undefined"){bM.style.zoom=1}bS.removeChild(bM);bR=bv=bM=null;b.extend(bI,bP)});return bI})();var aT=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA<bz;bA++){delete bB[bv[bA]]}if(!(by?S:b.isEmptyObject)(bB)){return}}}if(!by){delete e[bw].data;if(!S(e[bw])){return}}if(b.support.deleteExpando||!e.setInterval){delete e[bw]}else{e[bw]=null}if(bD){if(b.support.deleteExpando){delete bx[bC]}else{if(bx.removeAttribute){bx.removeAttribute(bC)}else{bx[bC]=null}}}},_data:function(bv,e,bw){return b.data(bv,e,bw,true)},acceptData:function(bv){if(bv.nodeName){var e=b.noData[bv.nodeName.toLowerCase()];if(e){return !(e===true||bv.getAttribute("classid")!==e)}}return true}});b.fn.extend({data:function(bD,bC){var by,bv,bB,e,bx,bw=this[0],bA=0,bz=null;if(bD===L){if(this.length){bz=b.data(bw);if(bw.nodeType===1&&!b._data(bw,"parsedAttrs")){bB=bw.attributes;for(bx=bB.length;bA<bx;bA++){e=bB[bA].name;if(e.indexOf("data-")===0){e=b.camelCase(e.substring(5));a6(bw,e,bz[e])}}b._data(bw,"parsedAttrs",true)}}return bz}if(typeof bD==="object"){return this.each(function(){b.data(this,bD)})}by=bD.split(".",2);by[1]=by[1]?"."+by[1]:"";bv=by[1]+"!";return b.access(this,function(bE){if(bE===L){bz=this.triggerHandler("getData"+bv,[by[0]]);if(bz===L&&bw){bz=b.data(bw,bD);bz=a6(bw,bD,bz)}return bz===L&&by[1]?this.data(by[0]):bz}by[1]=bE;this.each(function(){var bF=b(this);bF.triggerHandler("setData"+bv,by);b.data(this,bD,bE);bF.triggerHandler("changeData"+bv,by)})},null,bC,arguments.length>1,null,false)},removeData:function(e){return this.each(function(){b.removeData(this,e)})}});function a6(bx,bw,by){if(by===L&&bx.nodeType===1){var bv="data-"+bw.replace(aA,"-$1").toLowerCase();by=bx.getAttribute(bv);if(typeof by==="string"){try{by=by==="true"?true:by==="false"?false:by==="null"?null:b.isNumeric(by)?+by:aT.test(by)?b.parseJSON(by):by}catch(bz){}b.data(bx,bw,by)}else{by=L}}return by}function S(bv){for(var e in bv){if(e==="data"&&b.isEmptyObject(bv[e])){continue}if(e!=="toJSON"){return false}}return true}function bj(by,bx,bA){var bw=bx+"defer",bv=bx+"queue",e=bx+"mark",bz=b._data(by,bw);if(bz&&(bA==="queue"||!b._data(by,bv))&&(bA==="mark"||!b._data(by,e))){setTimeout(function(){if(!b._data(by,bv)&&!b._data(by,e)){b.removeData(by,bw,true);bz.fire()}},0)}}b.extend({_mark:function(bv,e){if(bv){e=(e||"fx")+"mark";b._data(bv,e,(b._data(bv,e)||0)+1)}},_unmark:function(by,bx,bv){if(by!==true){bv=bx;bx=by;by=false}if(bx){bv=bv||"fx";var e=bv+"mark",bw=by?0:((b._data(bx,e)||1)-1);if(bw){b._data(bx,e,bw)}else{b.removeData(bx,e,true);bj(bx,bv,"mark")}}},queue:function(bv,e,bx){var bw;if(bv){e=(e||"fx")+"queue";bw=b._data(bv,e);if(bx){if(!bw||b.isArray(bx)){bw=b._data(bv,e,b.makeArray(bx))}else{bw.push(bx)}}return bw||[]}},dequeue:function(by,bx){bx=bx||"fx";var bv=b.queue(by,bx),bw=bv.shift(),e={};if(bw==="inprogress"){bw=bv.shift()}if(bw){if(bx==="fx"){bv.unshift("inprogress")}b._data(by,bx+".run",e);bw.call(by,function(){b.dequeue(by,bx)},e)}if(!bv.length){b.removeData(by,bx+"queue "+bx+".run",true);bj(by,bx,"queue")}}});b.fn.extend({queue:function(e,bv){var bw=2;if(typeof e!=="string"){bv=e;e="fx";bw--}if(arguments.length<bw){return b.queue(this[0],e)}return bv===L?this:this.each(function(){var bx=b.queue(this,e,bv);if(e==="fx"&&bx[0]!=="inprogress"){b.dequeue(this,e)}})},dequeue:function(e){return this.each(function(){b.dequeue(this,e)})},delay:function(bv,e){bv=b.fx?b.fx.speeds[bv]||bv:bv;e=e||"fx";return this.queue(e,function(bx,bw){var by=setTimeout(bx,bv);bw.stop=function(){clearTimeout(by)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(bD,bw){if(typeof bD!=="string"){bw=bD;bD=L}bD=bD||"fx";var e=b.Deferred(),bv=this,by=bv.length,bB=1,bz=bD+"defer",bA=bD+"queue",bC=bD+"mark",bx;function bE(){if(!(--bB)){e.resolveWith(bv,[bv])}}while(by--){if((bx=b.data(bv[by],bz,L,true)||(b.data(bv[by],bA,L,true)||b.data(bv[by],bC,L,true))&&b.data(bv[by],bz,b.Callbacks("once memory"),true))){bB++;bx.add(bE)}}bE();return e.promise(bw)}});var aQ=/[\n\t\r]/g,ag=/\s+/,aV=/\r/g,g=/^(?:button|input)$/i,C=/^(?:button|input|object|select|textarea)$/i,l=/^a(?:rea)?$/i,ao=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,E=b.support.getSetAttribute,bf,aZ,aG;b.fn.extend({attr:function(e,bv){return b.access(this,b.attr,e,bv,arguments.length>1)},removeAttr:function(e){return this.each(function(){b.removeAttr(this,e)})},prop:function(e,bv){return b.access(this,b.prop,e,bv,arguments.length>1)},removeProp:function(e){e=b.propFix[e]||e;return this.each(function(){try{this[e]=L;delete this[e]}catch(bv){}})},addClass:function(by){var bA,bw,bv,bx,bz,bB,e;if(b.isFunction(by)){return this.each(function(bC){b(this).addClass(by.call(this,bC,this.className))})}if(by&&typeof by==="string"){bA=by.split(ag);for(bw=0,bv=this.length;bw<bv;bw++){bx=this[bw];if(bx.nodeType===1){if(!bx.className&&bA.length===1){bx.className=by}else{bz=" "+bx.className+" ";for(bB=0,e=bA.length;bB<e;bB++){if(!~bz.indexOf(" "+bA[bB]+" ")){bz+=bA[bB]+" "}}bx.className=b.trim(bz)}}}}return this},removeClass:function(bz){var bA,bw,bv,by,bx,bB,e;if(b.isFunction(bz)){return this.each(function(bC){b(this).removeClass(bz.call(this,bC,this.className))})}if((bz&&typeof bz==="string")||bz===L){bA=(bz||"").split(ag);for(bw=0,bv=this.length;bw<bv;bw++){by=this[bw];if(by.nodeType===1&&by.className){if(bz){bx=(" "+by.className+" ").replace(aQ," ");for(bB=0,e=bA.length;bB<e;bB++){bx=bx.replace(" "+bA[bB]+" "," ")}by.className=b.trim(bx)}else{by.className=""}}}}return this},toggleClass:function(bx,bv){var bw=typeof bx,e=typeof bv==="boolean";if(b.isFunction(bx)){return this.each(function(by){b(this).toggleClass(bx.call(this,by,this.className,bv),bv)})}return this.each(function(){if(bw==="string"){var bA,bz=0,by=b(this),bB=bv,bC=bx.split(ag);while((bA=bC[bz++])){bB=e?bB:!by.hasClass(bA);by[bB?"addClass":"removeClass"](bA)}}else{if(bw==="undefined"||bw==="boolean"){if(this.className){b._data(this,"__className__",this.className)}this.className=this.className||bx===false?"":b._data(this,"__className__")||""}}})},hasClass:function(e){var bx=" "+e+" ",bw=0,bv=this.length;for(;bw<bv;bw++){if(this[bw].nodeType===1&&(" "+this[bw].className+" ").replace(aQ," ").indexOf(bx)>-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.type]||b.valHooks[bw.nodeName.toLowerCase()];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aV,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.type]||b.valHooks[this.nodeName.toLowerCase()];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv<bz;bv++){bx=bC[bv];if(bx.selected&&(b.support.optDisabled?!bx.disabled:bx.getAttribute("disabled")===null)&&(!bx.parentNode.disabled||!b.nodeName(bx.parentNode,"optgroup"))){bA=b(bx).val();if(bw){return bA}bB.push(bA)}}if(bw&&!bB.length&&bC.length){return b(bC[by]).val()}return bB},set:function(bv,bw){var e=b.makeArray(bw);b(bv).find("option").each(function(){this.selected=b.inArray(b(this).val(),e)>=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aZ:bf)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(by,bA){var bz,bB,bw,e,bv,bx=0;if(bA&&by.nodeType===1){bB=bA.toLowerCase().split(ag);e=bB.length;for(;bx<e;bx++){bw=bB[bx];if(bw){bz=b.propFix[bw]||bw;bv=ao.test(bw);if(!bv){b.attr(by,bw,"")}by.removeAttribute(E?bw:bz);if(bv&&bz in by){by[bz]=false}}}}},attrHooks:{type:{set:function(e,bv){if(g.test(e.nodeName)&&e.parentNode){b.error("type property can't be changed")}else{if(!b.support.radioValue&&bv==="radio"&&b.nodeName(e,"input")){var bw=e.value;e.setAttribute("type",bv);if(bw){e.value=bw}return bv}}}},value:{get:function(bv,e){if(bf&&b.nodeName(bv,"button")){return bf.get(bv,e)}return e in bv?bv.value:null},set:function(bv,bw,e){if(bf&&b.nodeName(bv,"button")){return bf.set(bv,bw,e)}bv.value=bw}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(bz,bx,bA){var bw,e,by,bv=bz.nodeType;if(!bz||bv===3||bv===8||bv===2){return}by=bv!==1||!b.isXMLDoc(bz);if(by){bx=b.propFix[bx]||bx;e=b.propHooks[bx]}if(bA!==L){if(e&&"set" in e&&(bw=e.set(bz,bA,bx))!==L){return bw}else{return(bz[bx]=bA)}}else{if(e&&"get" in e&&(bw=e.get(bz,bx))!==null){return bw}else{return bz[bx]}}},propHooks:{tabIndex:{get:function(bv){var e=bv.getAttributeNode("tabindex");return e&&e.specified?parseInt(e.value,10):C.test(bv.nodeName)||l.test(bv.nodeName)&&bv.href?0:L}}}});b.attrHooks.tabindex=b.propHooks.tabIndex;aZ={get:function(bv,e){var bx,bw=b.prop(bv,e);return bw===true||typeof bw!=="boolean"&&(bx=bv.getAttributeNode(e))&&bx.nodeValue!==false?e.toLowerCase():L},set:function(bv,bx,e){var bw;if(bx===false){b.removeAttr(bv,e)}else{bw=b.propFix[e]||e;if(bw in bv){bv[bw]=true}bv.setAttribute(e,e.toLowerCase())}return e}};if(!E){aG={name:true,id:true,coords:true};bf=b.valHooks.button={get:function(bw,bv){var e;e=bw.getAttributeNode(bv);return e&&(aG[bv]?e.nodeValue!=="":e.specified)?e.nodeValue:L},set:function(bw,bx,bv){var e=bw.getAttributeNode(bv);if(!e){e=av.createAttribute(bv);bw.setAttributeNode(e)}return(e.nodeValue=bx+"")}};b.attrHooks.tabindex.set=bf.set;b.each(["width","height"],function(bv,e){b.attrHooks[e]=b.extend(b.attrHooks[e],{set:function(bw,bx){if(bx===""){bw.setAttribute(e,"auto");return bx}}})});b.attrHooks.contenteditable={get:bf.get,set:function(bv,bw,e){if(bw===""){bw="false"}bf.set(bv,bw,e)}}}if(!b.support.hrefNormalized){b.each(["href","src","width","height"],function(bv,e){b.attrHooks[e]=b.extend(b.attrHooks[e],{get:function(bx){var bw=bx.getAttribute(e,2);return bw===null?L:bw}})})}if(!b.support.style){b.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||L},set:function(e,bv){return(e.style.cssText=""+bv)}}}if(!b.support.optSelected){b.propHooks.selected=b.extend(b.propHooks.selected,{get:function(bv){var e=bv.parentNode;if(e){e.selectedIndex;if(e.parentNode){e.parentNode.selectedIndex}}return null}})}if(!b.support.enctype){b.propFix.enctype="encoding"}if(!b.support.checkOn){b.each(["radio","checkbox"],function(){b.valHooks[this]={get:function(e){return e.getAttribute("value")===null?"on":e.value}}})}b.each(["radio","checkbox"],function(){b.valHooks[this]=b.extend(b.valHooks[this],{set:function(e,bv){if(b.isArray(bv)){return(e.checked=b.inArray(b(e).val(),bv)>=0)}}})});var be=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/(?:^|\s)hover(\.\S+)?\b/,aP=/^key/,bg=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler;by=bv.selector}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI<bC.length;bI++){bH=n.exec(bC[bI])||[];bF=bH[1];e=(bH[2]||"").split(".").sort();bE=b.event.special[bF]||{};bF=(by?bE.delegateType:bE.bindType)||bF;bE=b.event.special[bF]||{};bG=b.extend({type:bF,origType:bH[1],data:bA,handler:bJ,guid:bJ.guid,selector:by,quick:by&&Y(by),namespace:e.join(".")},bv);bw=bK[bF];if(!bw){bw=bK[bF]=[];bw.delegateCount=0;if(!bE.setup||bE.setup.call(bx,bA,e,bB)===false){if(bx.addEventListener){bx.addEventListener(bF,bB,false)}else{if(bx.attachEvent){bx.attachEvent("on"+bF,bB)}}}}if(bE.add){bE.add.call(bx,bG);if(!bG.handler.guid){bG.handler.guid=bJ.guid}}if(by){bw.splice(bw.delegateCount++,0,bG)}else{bw.push(bG)}b.event.global[bF]=true}bx=null},global:{},remove:function(bJ,bE,bv,bH,bB){var bI=b.hasData(bJ)&&b._data(bJ),bF,bx,bz,bL,bC,bA,bG,bw,by,bK,bD,e;if(!bI||!(bw=bI.events)){return}bE=b.trim(bt(bE||"")).split(" ");for(bF=0;bF<bE.length;bF++){bx=n.exec(bE[bF])||[];bz=bL=bx[1];bC=bx[2];if(!bz){for(bz in bw){b.event.remove(bJ,bz+bE[bF],bv,bH,true)}continue}by=b.event.special[bz]||{};bz=(bH?by.delegateType:by.bindType)||bz;bD=bw[bz]||[];bA=bD.length;bC=bC?new RegExp("(^|\\.)"+bC.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(bG=0;bG<bD.length;bG++){e=bD[bG];if((bB||bL===e.origType)&&(!bv||bv.guid===e.guid)&&(!bC||bC.test(e.namespace))&&(!bH||bH===e.selector||bH==="**"&&e.selector)){bD.splice(bG--,1);if(e.selector){bD.delegateCount--}if(by.remove){by.remove.call(bJ,e)}}}if(bD.length===0&&bA!==bD.length){if(!by.teardown||by.teardown.call(bJ,bC)===false){b.removeEvent(bJ,bz,bI.handle)}delete bw[bz]}}if(b.isEmptyObject(bw)){bK=bI.handle;if(bK){bK.elem=null}b.removeData(bJ,["events","handle"],true)}},customEvent:{getData:true,setData:true,changeData:true},trigger:function(bv,bD,bA,bJ){if(bA&&(bA.nodeType===3||bA.nodeType===8)){return}var bG=bv.type||bv,bx=[],e,bw,bC,bH,bz,by,bF,bE,bB,bI;if(T.test(bG+b.event.triggered)){return}if(bG.indexOf("!")>=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bd,bI])}}for(bC=0;bC<bB.length&&!bv.isPropagationStopped();bC++){bH=bB[bC][0];bv.type=bB[bC][1];bE=(b._data(bH,"events")||{})[bv.type]&&b._data(bH,"handle");if(bE){bE.apply(bH,bD)}bE=by&&bH[by];if(bE&&b.acceptData(bH)&&bE.apply(bH,bD)===false){bv.preventDefault()}}bv.type=bG;if(!bJ&&!bv.isDefaultPrevented()){if((!bF._default||bF._default.apply(bA.ownerDocument,bD)===false)&&!(bG==="click"&&b.nodeName(bA,"a"))&&b.acceptData(bA)){if(by&&bA[bG]&&((bG!=="focus"&&bG!=="blur")||bv.target.offsetWidth!==0)&&!b.isWindow(bA)){bz=bA[by];if(bz){bA[by]=null}b.event.triggered=bG;bA[bG]();b.event.triggered=L;if(bz){bA[by]=bz}}}}return bv.result},dispatch:function(bH){bH=b.event.fix(bH||bd.event);var bD=((b._data(this,"events")||{})[bH.type]||[]),bC=bD.delegateCount,bx=[].slice.call(arguments,0),bE=!bH.exclusive&&!bH.namespace,bz=b.event.special[bH.type]||{},bv=[],bJ,bG,by,bA,bK,bI,bB,bw,e,bF,bL;bx[0]=bH;bH.delegateTarget=this;if(bz.preDispatch&&bz.preDispatch.call(this,bH)===false){return}if(bC&&!(bH.button&&bH.type==="click")){bA=b(this);bA.context=this.ownerDocument||this;for(by=bH.target;by!=this;by=by.parentNode||this){if(by.disabled!==true){bI={};bw=[];bA[0]=by;for(bJ=0;bJ<bC;bJ++){e=bD[bJ];bF=e.selector;if(bI[bF]===L){bI[bF]=(e.quick?j(by,e.quick):bA.is(bF))}if(bI[bF]){bw.push(e)}}if(bw.length){bv.push({elem:by,matches:bw})}}}}if(bD.length>bC){bv.push({elem:this,matches:bD.slice(bC)})}for(bJ=0;bJ<bv.length&&!bH.isPropagationStopped();bJ++){bB=bv[bJ];bH.currentTarget=bB.elem;for(bG=0;bG<bB.matches.length&&!bH.isImmediatePropagationStopped();bG++){e=bB.matches[bG];if(bE||(!bH.namespace&&!e.namespace)||bH.namespace_re&&bH.namespace_re.test(e.namespace)){bH.data=e.data;bH.handleObj=e;bK=((b.event.special[e.origType]||{}).handle||e.handler).apply(bB.elem,bx);if(bK!==L){bH.result=bK;if(bK===false){bH.preventDefault();bH.stopPropagation()}}}}}if(bz.postDispatch){bz.postDispatch.call(this,bH)}return bH.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(bv,e){if(bv.which==null){bv.which=e.charCode!=null?e.charCode:e.keyCode}return bv}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(bx,bw){var by,bz,e,bv=bw.button,bA=bw.fromElement;if(bx.pageX==null&&bw.clientX!=null){by=bx.target.ownerDocument||av;bz=by.documentElement;e=by.body;bx.pageX=bw.clientX+(bz&&bz.scrollLeft||e&&e.scrollLeft||0)-(bz&&bz.clientLeft||e&&e.clientLeft||0);bx.pageY=bw.clientY+(bz&&bz.scrollTop||e&&e.scrollTop||0)-(bz&&bz.clientTop||e&&e.clientTop||0)}if(!bx.relatedTarget&&bA){bx.relatedTarget=bA===bx.target?bw.toElement:bA}if(!bx.which&&bv!==L){bx.which=(bv&1?1:(bv&2?3:(bv&4?2:0)))}return bx}},fix:function(bw){if(bw[b.expando]){return bw}var bv,bz,e=bw,bx=b.event.fixHooks[bw.type]||{},by=bx.props?this.props.concat(bx.props):this.props;bw=b.Event(e);for(bv=by.length;bv;){bz=by[--bv];bw[bz]=e[bz]}if(!bw.target){bw.target=e.srcElement||av}if(bw.target.nodeType===3){bw.target=bw.target.parentNode}if(bw.metaKey===L){bw.metaKey=bw.ctrlKey}return bx.filter?bx.filter(bw,e):bw},special:{ready:{setup:b.bindReady},load:{noBubble:true},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(bw,bv,e){if(b.isWindow(this)){this.onbeforeunload=e}},teardown:function(bv,e){if(this.onbeforeunload===e){this.onbeforeunload=null}}}},simulate:function(bw,by,bx,bv){var bz=b.extend(new b.Event(),bx,{type:bw,isSimulated:true,originalEvent:{}});if(bv){b.event.trigger(bz,null,by)}else{b.event.dispatch.call(by,bz)}if(bz.isDefaultPrevented()){bx.preventDefault()}}};b.event.handle=b.event.dispatch;b.removeEvent=av.removeEventListener?function(bv,e,bw){if(bv.removeEventListener){bv.removeEventListener(e,bw,false)}}:function(bv,e,bw){if(bv.detachEvent){bv.detachEvent("on"+e,bw)}};b.Event=function(bv,e){if(!(this instanceof b.Event)){return new b.Event(bv,e)}if(bv&&bv.type){this.originalEvent=bv;this.type=bv.type;this.isDefaultPrevented=(bv.defaultPrevented||bv.returnValue===false||bv.getPreventDefault&&bv.getPreventDefault())?i:bl}else{this.type=bv}if(e){b.extend(this,e)}this.timeStamp=bv&&bv.timeStamp||b.now();this[b.expando]=true};function bl(){return false}function i(){return true}b.Event.prototype={preventDefault:function(){this.isDefaultPrevented=i;var bv=this.originalEvent;if(!bv){return}if(bv.preventDefault){bv.preventDefault()}else{bv.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=i;var bv=this.originalEvent;if(!bv){return}if(bv.stopPropagation){bv.stopPropagation()}bv.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=i;this.stopPropagation()},isDefaultPrevented:bl,isPropagationStopped:bl,isImmediatePropagationStopped:bl};b.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(bv,e){b.event.special[bv]={delegateType:e,bindType:e,handle:function(bz){var bB=this,bA=bz.relatedTarget,by=bz.handleObj,bw=by.selector,bx;if(!bA||(bA!==bB&&!b.contains(bB,bA))){bz.type=by.origType;bx=by.handler.apply(this,arguments);bz.type=e}return bx}}});if(!b.support.submitBubbles){b.event.special.submit={setup:function(){if(b.nodeName(this,"form")){return false}b.event.add(this,"click._submit keypress._submit",function(bx){var bw=bx.target,bv=b.nodeName(bw,"input")||b.nodeName(bw,"button")?bw.form:L;if(bv&&!bv._submit_attached){b.event.add(bv,"submit._submit",function(e){e._submit_bubble=true});bv._submit_attached=true}})},postDispatch:function(e){if(e._submit_bubble){delete e._submit_bubble;if(this.parentNode&&!e.isTrigger){b.event.simulate("submit",this.parentNode,e,true)}}},teardown:function(){if(b.nodeName(this,"form")){return false}b.event.remove(this,"._submit")}}}if(!b.support.changeBubbles){b.event.special.change={setup:function(){if(be.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio"){b.event.add(this,"propertychange._change",function(e){if(e.originalEvent.propertyName==="checked"){this._just_changed=true}});b.event.add(this,"click._change",function(e){if(this._just_changed&&!e.isTrigger){this._just_changed=false;b.event.simulate("change",this,e,true)}})}return false}b.event.add(this,"beforeactivate._change",function(bw){var bv=bw.target;if(be.test(bv.nodeName)&&!bv._change_attached){b.event.add(bv,"change._change",function(e){if(this.parentNode&&!e.isSimulated&&!e.isTrigger){b.event.simulate("change",this.parentNode,e,true)}});bv._change_attached=true}})},handle:function(bv){var e=bv.target;if(this!==e||bv.isSimulated||bv.isTrigger||(e.type!=="radio"&&e.type!=="checkbox")){return bv.handleObj.handler.apply(this,arguments)}},teardown:function(){b.event.remove(this,"._change");return be.test(this.nodeName)}}}if(!b.support.focusinBubbles){b.each({focus:"focusin",blur:"focusout"},function(bx,e){var bv=0,bw=function(by){b.event.simulate(e,by.target,b.event.fix(by),true)};b.event.special[e]={setup:function(){if(bv++===0){av.addEventListener(bx,bw,true)}},teardown:function(){if(--bv===0){av.removeEventListener(bx,bw,true)}}}})}b.fn.extend({on:function(bw,e,bz,by,bv){var bA,bx;if(typeof bw==="object"){if(typeof e!=="string"){bz=bz||e;e=L}for(bx in bw){this.on(bx,e,bz,bw[bx],bv)}return this}if(bz==null&&by==null){by=e;bz=e=L}else{if(by==null){if(typeof e==="string"){by=bz;bz=L}else{by=bz;bz=e;e=L}}}if(by===false){by=bl}else{if(!by){return this}}if(bv===1){bA=by;by=function(bB){b().off(bB);return bA.apply(this,arguments)};by.guid=bA.guid||(bA.guid=b.guid++)}return this.each(function(){b.event.add(this,bw,by,bz,e)})},one:function(bv,e,bx,bw){return this.on(bv,e,bx,bw,1)},off:function(bw,e,by){if(bw&&bw.preventDefault&&bw.handleObj){var bv=bw.handleObj;b(bw.delegateTarget).off(bv.namespace?bv.origType+"."+bv.namespace:bv.origType,bv.selector,bv.handler);return this}if(typeof bw==="object"){for(var bx in bw){this.off(bx,e,bw[bx])}return this}if(e===false||typeof e==="function"){by=e;e=L}if(by===false){by=bl}return this.each(function(){b.event.remove(this,bw,by,e)})},bind:function(e,bw,bv){return this.on(e,null,bw,bv)},unbind:function(e,bv){return this.off(e,null,bv)},live:function(e,bw,bv){b(this.context).on(e,this.selector,bw,bv);return this},die:function(e,bv){b(this.context).off(e,this.selector||"**",bv);return this},delegate:function(e,bv,bx,bw){return this.on(bv,e,bx,bw)},undelegate:function(e,bv,bw){return arguments.length==1?this.off(e,"**"):this.off(bv,e,bw)},trigger:function(e,bv){return this.each(function(){b.event.trigger(e,bv,this)})},triggerHandler:function(e,bv){if(this[0]){return b.event.trigger(e,bv,this[0],true)}},toggle:function(bx){var bv=arguments,e=bx.guid||b.guid++,bw=0,by=function(bz){var bA=(b._data(this,"lastToggle"+bx.guid)||0)%bw;b._data(this,"lastToggle"+bx.guid,bA+1);bz.preventDefault();return bv[bA].apply(this,arguments)||false};by.guid=e;while(bw<bv.length){bv[bw++].guid=e}return this.click(by)},hover:function(e,bv){return this.mouseenter(e).mouseleave(bv||e)}});b.each(("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu").split(" "),function(bv,e){b.fn[e]=function(bx,bw){if(bw==null){bw=bx;bx=null}return arguments.length>0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aP.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bg.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}});
+(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b4<b3;b4++){if((b9=arguments[b4])!=null){for(b2 in b9){b0=b5[b2];b1=b9[b2];if(b5===b1){continue}if(b8&&b1&&(bF.isPlainObject(b1)||(b6=bF.isArray(b1)))){if(b6){b6=false;b7=b0&&bF.isArray(b0)?b0:[]}else{b7=b0&&bF.isPlainObject(b0)?b0:{}}b5[b2]=bF.extend(b8,b7,b1)}else{if(b1!==L){b5[b2]=b1}}}}}return b5};bF.extend({noConflict:function(b0){if(bb.$===bF){bb.$=bH}if(b0&&bb.jQuery===bF){bb.jQuery=bU}return bF},isReady:false,readyWait:1,holdReady:function(b0){if(b0){bF.readyWait++}else{bF.ready(true)}},ready:function(b0){if((b0===true&&!--bF.readyWait)||(b0!==true&&!bF.isReady)){if(!av.body){return setTimeout(bF.ready,1)}bF.isReady=true;if(b0!==true&&--bF.readyWait>0){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b4<b5;){if(b6.apply(b3[b4++],b2)===false){break}}}}else{if(b0){for(b1 in b3){if(b6.call(b3[b1],b1,b3[b1])===false){break}}}else{for(;b4<b5;){if(b6.call(b3[b4],b4,b3[b4++])===false){break}}}}return b3},trim:bO?function(b0){return b0==null?"":bO.call(b0)}:function(b0){return b0==null?"":b0.toString().replace(bI,"").replace(bE,"")},makeArray:function(b3,b1){var b0=b1||[];if(b3!=null){var b2=bF.type(b3);if(b3.length==null||b2==="string"||b2==="function"||b2==="regexp"||bF.isWindow(b3)){bz.call(b0,b3)}else{bF.merge(b0,b3)}}return b0},inArray:function(b2,b3,b1){var b0;if(b3){if(bv){return bv.call(b3,b2,b1)}b0=b3.length;b1=b1?b1<0?Math.max(0,b0+b1):b1:0;for(;b1<b0;b1++){if(b1 in b3&&b3[b1]===b2){return b1}}}return -1},merge:function(b4,b2){var b3=b4.length,b1=0;if(typeof b2.length==="number"){for(var b0=b2.length;b1<b0;b1++){b4[b3++]=b2[b1]}}else{while(b2[b1]!==L){b4[b3++]=b2[b1++]}}b4.length=b3;return b4},grep:function(b1,b6,b0){var b2=[],b5;b0=!!b0;for(var b3=0,b4=b1.length;b3<b4;b3++){b5=!!b6(b1[b3],b3);if(b0!==b5){b2.push(b1[b3])}}return b2},map:function(b0,b7,b8){var b5,b6,b4=[],b2=0,b1=b0.length,b3=b0 instanceof bF||b1!==L&&typeof b1==="number"&&((b1>0&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b2<b1;b2++){b5=b7(b0[b2],b2,b8);if(b5!=null){b4[b4.length]=b5}}}else{for(b6 in b0){b5=b7(b0[b6],b6,b8);if(b5!=null){b4[b4.length]=b5}}}return b4.concat.apply([],b4)},guid:1,proxy:function(b4,b3){if(typeof b3==="string"){var b2=b4[b3];b3=b4;b4=b2}if(!bF.isFunction(b4)){return L}var b0=bK.call(arguments,2),b1=function(){return b4.apply(b3,b0.concat(bK.call(arguments)))};b1.guid=b4.guid=b4.guid||b1.guid||bF.guid++;return b1},access:function(b0,b8,b6,b2,b5,b7){var b1=b0.length;if(typeof b8==="object"){for(var b3 in b8){bF.access(b0,b3,b8[b3],b2,b5,b6)}return b0}if(b6!==L){b2=!b7&&b2&&bF.isFunction(b6);for(var b4=0;b4<b1;b4++){b5(b0[b4],b8,b2?b6.call(b0[b4],b4,b5(b0[b4],b8)):b6,b7)}return b0}return b1?b5(b0[0],b8):L},now:function(){return(new Date()).getTime()},uaMatch:function(b1){b1=b1.toLowerCase();var b0=by.exec(b1)||bR.exec(b1)||bQ.exec(b1)||b1.indexOf("compatible")<0&&bS.exec(b1)||[];return{browser:b0[1]||"",version:b0[2]||"0"}},sub:function(){function b0(b3,b4){return new b0.fn.init(b3,b4)}bF.extend(true,b0,this);b0.superclass=this;b0.fn=b0.prototype=this();b0.fn.constructor=b0;b0.sub=this.sub;b0.fn.init=function b2(b3,b4){if(b4&&b4 instanceof bF&&!(b4 instanceof b0)){b4=b0(b4)}return bF.fn.init.call(this,b3,b4,b1)};b0.fn.init.prototype=b0.fn;var b1=b0(av);return b0},browser:{}});bF.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(b1,b0){bx["[object "+b0+"]"]=b0.toLowerCase()});bV=bF.uaMatch(bX);if(bV.browser){bF.browser[bV.browser]=true;bF.browser.version=bV.version}if(bF.browser.webkit){bF.browser.safari=true}if(bM.test("\xA0")){bI=/^[\s\xA0]+/;bE=/[\s\xA0]+$/}bD=bF(av);if(av.addEventListener){e=function(){av.removeEventListener("DOMContentLoaded",e,false);bF.ready()}}else{if(av.attachEvent){e=function(){if(av.readyState==="complete"){av.detachEvent("onreadystatechange",e);bF.ready()}}}}function bw(){if(bF.isReady){return}try{av.documentElement.doScroll("left")}catch(b0){setTimeout(bw,1);return}bF.ready()}return bF})();var a2={};function X(e){var bv=a2[e]={},bw,bx;e=e.split(/\s+/);for(bw=0,bx=e.length;bw<bx;bw++){bv[e[bw]]=true}return bv}b.Callbacks=function(bw){bw=bw?(a2[bw]||X(bw)):{};var bB=[],bC=[],bx,by,bv,bz,bA,bE=function(bF){var bG,bJ,bI,bH,bK;for(bG=0,bJ=bF.length;bG<bJ;bG++){bI=bF[bG];bH=b.type(bI);if(bH==="array"){bE(bI)}else{if(bH==="function"){if(!bw.unique||!bD.has(bI)){bB.push(bI)}}}}},e=function(bG,bF){bF=bF||[];bx=!bw.memory||[bG,bF];by=true;bA=bv||0;bv=0;bz=bB.length;for(;bB&&bA<bz;bA++){if(bB[bA].apply(bG,bF)===false&&bw.stopOnFalse){bx=true;break}}by=false;if(bB){if(!bw.once){if(bC&&bC.length){bx=bC.shift();bD.fireWith(bx[0],bx[1])}}else{if(bx===true){bD.disable()}else{bB=[]}}}},bD={add:function(){if(bB){var bF=bB.length;bE(arguments);if(by){bz=bB.length}else{if(bx&&bx!==true){bv=bF;e(bx[0],bx[1])}}}return this},remove:function(){if(bB){var bF=arguments,bH=0,bI=bF.length;for(;bH<bI;bH++){for(var bG=0;bG<bB.length;bG++){if(bF[bH]===bB[bG]){if(by){if(bG<=bz){bz--;if(bG<=bA){bA--}}}bB.splice(bG--,1);if(bw.unique){break}}}}}return this},has:function(bG){if(bB){var bF=0,bH=bB.length;for(;bF<bH;bF++){if(bG===bB[bF]){return true}}}return false},empty:function(){bB=[];return this},disable:function(){bB=bC=bx=L;return this},disabled:function(){return !bB},lock:function(){bC=L;if(!bx||bx===true){bD.disable()}return this},locked:function(){return !bC},fireWith:function(bG,bF){if(bC){if(by){if(!bw.once){bC.push([bG,bF])}}else{if(!(bw.once&&bx)){e(bG,bF)}}}return this},fire:function(){bD.fireWith(this,arguments);return this},fired:function(){return !!bx}};return bD};var aJ=[].slice;b.extend({Deferred:function(by){var bx=b.Callbacks("once memory"),bw=b.Callbacks("once memory"),bv=b.Callbacks("memory"),e="pending",bA={resolve:bx,reject:bw,notify:bv},bC={done:bx.add,fail:bw.add,progress:bv.add,state:function(){return e},isResolved:bx.fired,isRejected:bw.fired,then:function(bE,bD,bF){bB.done(bE).fail(bD).progress(bF);return this},always:function(){bB.done.apply(bB,arguments).fail.apply(bB,arguments);return this},pipe:function(bF,bE,bD){return b.Deferred(function(bG){b.each({done:[bF,"resolve"],fail:[bE,"reject"],progress:[bD,"notify"]},function(bI,bL){var bH=bL[0],bK=bL[1],bJ;if(b.isFunction(bH)){bB[bI](function(){bJ=bH.apply(this,arguments);if(bJ&&b.isFunction(bJ.promise)){bJ.promise().then(bG.resolve,bG.reject,bG.notify)}else{bG[bK+"With"](this===bB?bG:this,[bJ])}})}else{bB[bI](bG[bK])}})}).promise()},promise:function(bE){if(bE==null){bE=bC}else{for(var bD in bC){bE[bD]=bC[bD]}}return bE}},bB=bC.promise({}),bz;for(bz in bA){bB[bz]=bA[bz].fire;bB[bz+"With"]=bA[bz].fireWith}bB.done(function(){e="resolved"},bw.disable,bv.lock).fail(function(){e="rejected"},bx.disable,bv.lock);if(by){by.call(bB,bB)}return bB},when:function(bA){var bx=aJ.call(arguments,0),bv=0,e=bx.length,bB=new Array(e),bw=e,by=e,bC=e<=1&&bA&&b.isFunction(bA.promise)?bA:b.Deferred(),bE=bC.promise();function bD(bF){return function(bG){bx[bF]=arguments.length>1?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv<e;bv++){if(bx[bv]&&bx[bv].promise&&b.isFunction(bx[bv].promise)){bx[bv].promise().then(bD(bv),bC.reject,bz(bv))}else{--bw}}if(!bw){bC.resolveWith(bC,bx)}}else{if(bC!==bA){bC.resolveWith(bC,e?[bA]:[])}}return bE}});b.support=(function(){var bJ,bI,bF,bG,bx,bE,bA,bD,bz,bK,bB,by,bw,bv=av.createElement("div"),bH=av.documentElement;bv.setAttribute("className","t");bv.innerHTML="   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav></:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="<div "+e+"><div></div></div><table "+e+" cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="<div style='width:4px;'></div>";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA<bz;bA++){delete bB[bv[bA]]}if(!(by?S:b.isEmptyObject)(bB)){return}}}if(!by){delete e[bw].data;if(!S(e[bw])){return}}if(b.support.deleteExpando||!e.setInterval){delete e[bw]}else{e[bw]=null}if(bD){if(b.support.deleteExpando){delete bx[bC]}else{if(bx.removeAttribute){bx.removeAttribute(bC)}else{bx[bC]=null}}}},_data:function(bv,e,bw){return b.data(bv,e,bw,true)},acceptData:function(bv){if(bv.nodeName){var e=b.noData[bv.nodeName.toLowerCase()];if(e){return !(e===true||bv.getAttribute("classid")!==e)}}return true}});b.fn.extend({data:function(by,bA){var bB,e,bw,bz=null;if(typeof by==="undefined"){if(this.length){bz=b.data(this[0]);if(this[0].nodeType===1&&!b._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var bx=0,bv=e.length;bx<bv;bx++){bw=e[bx].name;if(bw.indexOf("data-")===0){bw=b.camelCase(bw.substring(5));a5(this[0],bw,bz[bw])}}b._data(this[0],"parsedAttrs",true)}}return bz}else{if(typeof by==="object"){return this.each(function(){b.data(this,by)})}}bB=by.split(".");bB[1]=bB[1]?"."+bB[1]:"";if(bA===L){bz=this.triggerHandler("getData"+bB[1]+"!",[bB[0]]);if(bz===L&&this.length){bz=b.data(this[0],by);bz=a5(this[0],by,bz)}return bz===L&&bB[1]?this.data(bB[0]):bz}else{return this.each(function(){var bC=b(this),bD=[bB[0],bA];bC.triggerHandler("setData"+bB[1]+"!",bD);b.data(this,by,bA);bC.triggerHandler("changeData"+bB[1]+"!",bD)})}},removeData:function(e){return this.each(function(){b.removeData(this,e)})}});function a5(bx,bw,by){if(by===L&&bx.nodeType===1){var bv="data-"+bw.replace(aA,"-$1").toLowerCase();by=bx.getAttribute(bv);if(typeof by==="string"){try{by=by==="true"?true:by==="false"?false:by==="null"?null:b.isNumeric(by)?parseFloat(by):aS.test(by)?b.parseJSON(by):by}catch(bz){}b.data(bx,bw,by)}else{by=L}}return by}function S(bv){for(var e in bv){if(e==="data"&&b.isEmptyObject(bv[e])){continue}if(e!=="toJSON"){return false}}return true}function bi(by,bx,bA){var bw=bx+"defer",bv=bx+"queue",e=bx+"mark",bz=b._data(by,bw);if(bz&&(bA==="queue"||!b._data(by,bv))&&(bA==="mark"||!b._data(by,e))){setTimeout(function(){if(!b._data(by,bv)&&!b._data(by,e)){b.removeData(by,bw,true);bz.fire()}},0)}}b.extend({_mark:function(bv,e){if(bv){e=(e||"fx")+"mark";b._data(bv,e,(b._data(bv,e)||0)+1)}},_unmark:function(by,bx,bv){if(by!==true){bv=bx;bx=by;by=false}if(bx){bv=bv||"fx";var e=bv+"mark",bw=by?0:((b._data(bx,e)||1)-1);if(bw){b._data(bx,e,bw)}else{b.removeData(bx,e,true);bi(bx,bv,"mark")}}},queue:function(bv,e,bx){var bw;if(bv){e=(e||"fx")+"queue";bw=b._data(bv,e);if(bx){if(!bw||b.isArray(bx)){bw=b._data(bv,e,b.makeArray(bx))}else{bw.push(bx)}}return bw||[]}},dequeue:function(by,bx){bx=bx||"fx";var bv=b.queue(by,bx),bw=bv.shift(),e={};if(bw==="inprogress"){bw=bv.shift()}if(bw){if(bx==="fx"){bv.unshift("inprogress")}b._data(by,bx+".run",e);bw.call(by,function(){b.dequeue(by,bx)},e)}if(!bv.length){b.removeData(by,bx+"queue "+bx+".run",true);bi(by,bx,"queue")}}});b.fn.extend({queue:function(e,bv){if(typeof e!=="string"){bv=e;e="fx"}if(bv===L){return b.queue(this[0],e)}return this.each(function(){var bw=b.queue(this,e,bv);if(e==="fx"&&bw[0]!=="inprogress"){b.dequeue(this,e)}})},dequeue:function(e){return this.each(function(){b.dequeue(this,e)})},delay:function(bv,e){bv=b.fx?b.fx.speeds[bv]||bv:bv;e=e||"fx";return this.queue(e,function(bx,bw){var by=setTimeout(bx,bv);bw.stop=function(){clearTimeout(by)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(bD,bw){if(typeof bD!=="string"){bw=bD;bD=L}bD=bD||"fx";var e=b.Deferred(),bv=this,by=bv.length,bB=1,bz=bD+"defer",bA=bD+"queue",bC=bD+"mark",bx;function bE(){if(!(--bB)){e.resolveWith(bv,[bv])}}while(by--){if((bx=b.data(bv[by],bz,L,true)||(b.data(bv[by],bA,L,true)||b.data(bv[by],bC,L,true))&&b.data(bv[by],bz,b.Callbacks("once memory"),true))){bB++;bx.add(bE)}}bE();return e.promise()}});var aP=/[\n\t\r]/g,af=/\s+/,aU=/\r/g,g=/^(?:button|input)$/i,D=/^(?:button|input|object|select|textarea)$/i,l=/^a(?:rea)?$/i,ao=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,F=b.support.getSetAttribute,be,aY,aF;b.fn.extend({attr:function(e,bv){return b.access(this,e,bv,true,b.attr)},removeAttr:function(e){return this.each(function(){b.removeAttr(this,e)})},prop:function(e,bv){return b.access(this,e,bv,true,b.prop)},removeProp:function(e){e=b.propFix[e]||e;return this.each(function(){try{this[e]=L;delete this[e]}catch(bv){}})},addClass:function(by){var bA,bw,bv,bx,bz,bB,e;if(b.isFunction(by)){return this.each(function(bC){b(this).addClass(by.call(this,bC,this.className))})}if(by&&typeof by==="string"){bA=by.split(af);for(bw=0,bv=this.length;bw<bv;bw++){bx=this[bw];if(bx.nodeType===1){if(!bx.className&&bA.length===1){bx.className=by}else{bz=" "+bx.className+" ";for(bB=0,e=bA.length;bB<e;bB++){if(!~bz.indexOf(" "+bA[bB]+" ")){bz+=bA[bB]+" "}}bx.className=b.trim(bz)}}}}return this},removeClass:function(bz){var bA,bw,bv,by,bx,bB,e;if(b.isFunction(bz)){return this.each(function(bC){b(this).removeClass(bz.call(this,bC,this.className))})}if((bz&&typeof bz==="string")||bz===L){bA=(bz||"").split(af);for(bw=0,bv=this.length;bw<bv;bw++){by=this[bw];if(by.nodeType===1&&by.className){if(bz){bx=(" "+by.className+" ").replace(aP," ");for(bB=0,e=bA.length;bB<e;bB++){bx=bx.replace(" "+bA[bB]+" "," ")}by.className=b.trim(bx)}else{by.className=""}}}}return this},toggleClass:function(bx,bv){var bw=typeof bx,e=typeof bv==="boolean";if(b.isFunction(bx)){return this.each(function(by){b(this).toggleClass(bx.call(this,by,this.className,bv),bv)})}return this.each(function(){if(bw==="string"){var bA,bz=0,by=b(this),bB=bv,bC=bx.split(af);while((bA=bC[bz++])){bB=e?bB:!by.hasClass(bA);by[bB?"addClass":"removeClass"](bA)}}else{if(bw==="undefined"||bw==="boolean"){if(this.className){b._data(this,"__className__",this.className)}this.className=this.className||bx===false?"":b._data(this,"__className__")||""}}})},hasClass:function(e){var bx=" "+e+" ",bw=0,bv=this.length;for(;bw<bv;bw++){if(this[bw].nodeType===1&&(" "+this[bw].className+" ").replace(aP," ").indexOf(bx)>-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv<bz;bv++){bx=bC[bv];if(bx.selected&&(b.support.optDisabled?!bx.disabled:bx.getAttribute("disabled")===null)&&(!bx.parentNode.disabled||!b.nodeName(bx.parentNode,"optgroup"))){bA=b(bx).val();if(bw){return bA}bB.push(bA)}}if(bw&&!bB.length&&bC.length){return b(bC[by]).val()}return bB},set:function(bv,bw){var e=b.makeArray(bw);b(bv).find("option").each(function(){this.selected=b.inArray(b(this).val(),e)>=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw<e;bw++){bv=bA[bw];if(bv){by=b.propFix[bv]||bv;b.attr(bx,bv,"");bx.removeAttribute(F?bv:by);if(ao.test(bv)&&by in bx){bx[by]=false}}}}},attrHooks:{type:{set:function(e,bv){if(g.test(e.nodeName)&&e.parentNode){b.error("type property can't be changed")}else{if(!b.support.radioValue&&bv==="radio"&&b.nodeName(e,"input")){var bw=e.value;e.setAttribute("type",bv);if(bw){e.value=bw}return bv}}}},value:{get:function(bv,e){if(be&&b.nodeName(bv,"button")){return be.get(bv,e)}return e in bv?bv.value:null},set:function(bv,bw,e){if(be&&b.nodeName(bv,"button")){return be.set(bv,bw,e)}bv.value=bw}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(bz,bx,bA){var bw,e,by,bv=bz.nodeType;if(!bz||bv===3||bv===8||bv===2){return}by=bv!==1||!b.isXMLDoc(bz);if(by){bx=b.propFix[bx]||bx;e=b.propHooks[bx]}if(bA!==L){if(e&&"set" in e&&(bw=e.set(bz,bA,bx))!==L){return bw}else{return(bz[bx]=bA)}}else{if(e&&"get" in e&&(bw=e.get(bz,bx))!==null){return bw}else{return bz[bx]}}},propHooks:{tabIndex:{get:function(bv){var e=bv.getAttributeNode("tabindex");return e&&e.specified?parseInt(e.value,10):D.test(bv.nodeName)||l.test(bv.nodeName)&&bv.href?0:L}}}});b.attrHooks.tabindex=b.propHooks.tabIndex;aY={get:function(bv,e){var bx,bw=b.prop(bv,e);return bw===true||typeof bw!=="boolean"&&(bx=bv.getAttributeNode(e))&&bx.nodeValue!==false?e.toLowerCase():L},set:function(bv,bx,e){var bw;if(bx===false){b.removeAttr(bv,e)}else{bw=b.propFix[e]||e;if(bw in bv){bv[bw]=true}bv.setAttribute(e,e.toLowerCase())}return e}};if(!F){aF={name:true,id:true};be=b.valHooks.button={get:function(bw,bv){var e;e=bw.getAttributeNode(bv);return e&&(aF[bv]?e.nodeValue!=="":e.specified)?e.nodeValue:L},set:function(bw,bx,bv){var e=bw.getAttributeNode(bv);if(!e){e=av.createAttribute(bv);bw.setAttributeNode(e)}return(e.nodeValue=bx+"")}};b.attrHooks.tabindex.set=be.set;b.each(["width","height"],function(bv,e){b.attrHooks[e]=b.extend(b.attrHooks[e],{set:function(bw,bx){if(bx===""){bw.setAttribute(e,"auto");return bx}}})});b.attrHooks.contenteditable={get:be.get,set:function(bv,bw,e){if(bw===""){bw="false"}be.set(bv,bw,e)}}}if(!b.support.hrefNormalized){b.each(["href","src","width","height"],function(bv,e){b.attrHooks[e]=b.extend(b.attrHooks[e],{get:function(bx){var bw=bx.getAttribute(e,2);return bw===null?L:bw}})})}if(!b.support.style){b.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||L},set:function(e,bv){return(e.style.cssText=""+bv)}}}if(!b.support.optSelected){b.propHooks.selected=b.extend(b.propHooks.selected,{get:function(bv){var e=bv.parentNode;if(e){e.selectedIndex;if(e.parentNode){e.parentNode.selectedIndex}}return null}})}if(!b.support.enctype){b.propFix.enctype="encoding"}if(!b.support.checkOn){b.each(["radio","checkbox"],function(){b.valHooks[this]={get:function(e){return e.getAttribute("value")===null?"on":e.value}}})}b.each(["radio","checkbox"],function(){b.valHooks[this]=b.extend(b.valHooks[this],{set:function(e,bv){if(b.isArray(bv)){return(e.checked=b.inArray(b(e).val(),bv)>=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI<bC.length;bI++){bH=n.exec(bC[bI])||[];bF=bH[1];e=(bH[2]||"").split(".").sort();bE=b.event.special[bF]||{};bF=(by?bE.delegateType:bE.bindType)||bF;bE=b.event.special[bF]||{};bG=b.extend({type:bF,origType:bH[1],data:bA,handler:bJ,guid:bJ.guid,selector:by,quick:Y(by),namespace:e.join(".")},bv);bw=bK[bF];if(!bw){bw=bK[bF]=[];bw.delegateCount=0;if(!bE.setup||bE.setup.call(bx,bA,e,bB)===false){if(bx.addEventListener){bx.addEventListener(bF,bB,false)}else{if(bx.attachEvent){bx.attachEvent("on"+bF,bB)}}}}if(bE.add){bE.add.call(bx,bG);if(!bG.handler.guid){bG.handler.guid=bJ.guid}}if(by){bw.splice(bw.delegateCount++,0,bG)}else{bw.push(bG)}b.event.global[bF]=true}bx=null},global:{},remove:function(bJ,bE,bv,bH,bB){var bI=b.hasData(bJ)&&b._data(bJ),bF,bx,bz,bL,bC,bA,bG,bw,by,bK,bD,e;if(!bI||!(bw=bI.events)){return}bE=b.trim(bt(bE||"")).split(" ");for(bF=0;bF<bE.length;bF++){bx=n.exec(bE[bF])||[];bz=bL=bx[1];bC=bx[2];if(!bz){for(bz in bw){b.event.remove(bJ,bz+bE[bF],bv,bH,true)}continue}by=b.event.special[bz]||{};bz=(bH?by.delegateType:by.bindType)||bz;bD=bw[bz]||[];bA=bD.length;bC=bC?new RegExp("(^|\\.)"+bC.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(bG=0;bG<bD.length;bG++){e=bD[bG];if((bB||bL===e.origType)&&(!bv||bv.guid===e.guid)&&(!bC||bC.test(e.namespace))&&(!bH||bH===e.selector||bH==="**"&&e.selector)){bD.splice(bG--,1);if(e.selector){bD.delegateCount--}if(by.remove){by.remove.call(bJ,e)}}}if(bD.length===0&&bA!==bD.length){if(!by.teardown||by.teardown.call(bJ,bC)===false){b.removeEvent(bJ,bz,bI.handle)}delete bw[bz]}}if(b.isEmptyObject(bw)){bK=bI.handle;if(bK){bK.elem=null}b.removeData(bJ,["events","handle"],true)}},customEvent:{getData:true,setData:true,changeData:true},trigger:function(bv,bD,bA,bJ){if(bA&&(bA.nodeType===3||bA.nodeType===8)){return}var bG=bv.type||bv,bx=[],e,bw,bC,bH,bz,by,bF,bE,bB,bI;if(T.test(bG+b.event.triggered)){return}if(bG.indexOf("!")>=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bC<bB.length&&!bv.isPropagationStopped();bC++){bH=bB[bC][0];bv.type=bB[bC][1];bE=(b._data(bH,"events")||{})[bv.type]&&b._data(bH,"handle");if(bE){bE.apply(bH,bD)}bE=by&&bH[by];if(bE&&b.acceptData(bH)&&bE.apply(bH,bD)===false){bv.preventDefault()}}bv.type=bG;if(!bJ&&!bv.isDefaultPrevented()){if((!bF._default||bF._default.apply(bA.ownerDocument,bD)===false)&&!(bG==="click"&&b.nodeName(bA,"a"))&&b.acceptData(bA)){if(by&&bA[bG]&&((bG!=="focus"&&bG!=="blur")||bv.target.offsetWidth!==0)&&!b.isWindow(bA)){bz=bA[by];if(bz){bA[by]=null}b.event.triggered=bG;bA[bG]();b.event.triggered=L;if(bz){bA[by]=bz}}}}return bv.result},dispatch:function(e){e=b.event.fix(e||bb.event);var bz=((b._data(this,"events")||{})[e.type]||[]),bA=bz.delegateCount,bG=[].slice.call(arguments,0),by=!e.exclusive&&!e.namespace,bH=[],bC,bB,bK,bx,bF,bE,bv,bD,bI,bw,bJ;bG[0]=e;e.delegateTarget=this;if(bA&&!e.target.disabled&&!(e.button&&e.type==="click")){bx=b(this);bx.context=this.ownerDocument||this;for(bK=e.target;bK!=this;bK=bK.parentNode||this){bE={};bD=[];bx[0]=bK;for(bC=0;bC<bA;bC++){bI=bz[bC];bw=bI.selector;if(bE[bw]===L){bE[bw]=(bI.quick?j(bK,bI.quick):bx.is(bw))}if(bE[bw]){bD.push(bI)}}if(bD.length){bH.push({elem:bK,matches:bD})}}}if(bz.length>bA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC<bH.length&&!e.isPropagationStopped();bC++){bv=bH[bC];e.currentTarget=bv.elem;for(bB=0;bB<bv.matches.length&&!e.isImmediatePropagationStopped();bB++){bI=bv.matches[bB];if(by||(!e.namespace&&!bI.namespace)||e.namespace_re&&e.namespace_re.test(bI.namespace)){e.data=bI.data;e.handleObj=bI;bF=((b.event.special[bI.origType]||{}).handle||bI.handler).apply(bv.elem,bG);if(bF!==L){e.result=bF;if(bF===false){e.preventDefault();e.stopPropagation()}}}}}return e.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(bv,e){if(bv.which==null){bv.which=e.charCode!=null?e.charCode:e.keyCode}return bv}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(bx,bw){var by,bz,e,bv=bw.button,bA=bw.fromElement;if(bx.pageX==null&&bw.clientX!=null){by=bx.target.ownerDocument||av;bz=by.documentElement;e=by.body;bx.pageX=bw.clientX+(bz&&bz.scrollLeft||e&&e.scrollLeft||0)-(bz&&bz.clientLeft||e&&e.clientLeft||0);bx.pageY=bw.clientY+(bz&&bz.scrollTop||e&&e.scrollTop||0)-(bz&&bz.clientTop||e&&e.clientTop||0)}if(!bx.relatedTarget&&bA){bx.relatedTarget=bA===bx.target?bw.toElement:bA}if(!bx.which&&bv!==L){bx.which=(bv&1?1:(bv&2?3:(bv&4?2:0)))}return bx}},fix:function(bw){if(bw[b.expando]){return bw}var bv,bz,e=bw,bx=b.event.fixHooks[bw.type]||{},by=bx.props?this.props.concat(bx.props):this.props;bw=b.Event(e);for(bv=by.length;bv;){bz=by[--bv];bw[bz]=e[bz]}if(!bw.target){bw.target=e.srcElement||av}if(bw.target.nodeType===3){bw.target=bw.target.parentNode}if(bw.metaKey===L){bw.metaKey=bw.ctrlKey}return bx.filter?bx.filter(bw,e):bw},special:{ready:{setup:b.bindReady},load:{noBubble:true},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(bw,bv,e){if(b.isWindow(this)){this.onbeforeunload=e}},teardown:function(bv,e){if(this.onbeforeunload===e){this.onbeforeunload=null}}}},simulate:function(bw,by,bx,bv){var bz=b.extend(new b.Event(),bx,{type:bw,isSimulated:true,originalEvent:{}});if(bv){b.event.trigger(bz,null,by)}else{b.event.dispatch.call(by,bz)}if(bz.isDefaultPrevented()){bx.preventDefault()}}};b.event.handle=b.event.dispatch;b.removeEvent=av.removeEventListener?function(bv,e,bw){if(bv.removeEventListener){bv.removeEventListener(e,bw,false)}}:function(bv,e,bw){if(bv.detachEvent){bv.detachEvent("on"+e,bw)}};b.Event=function(bv,e){if(!(this instanceof b.Event)){return new b.Event(bv,e)}if(bv&&bv.type){this.originalEvent=bv;this.type=bv.type;this.isDefaultPrevented=(bv.defaultPrevented||bv.returnValue===false||bv.getPreventDefault&&bv.getPreventDefault())?i:bk}else{this.type=bv}if(e){b.extend(this,e)}this.timeStamp=bv&&bv.timeStamp||b.now();this[b.expando]=true};function bk(){return false}function i(){return true}b.Event.prototype={preventDefault:function(){this.isDefaultPrevented=i;var bv=this.originalEvent;if(!bv){return}if(bv.preventDefault){bv.preventDefault()}else{bv.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=i;var bv=this.originalEvent;if(!bv){return}if(bv.stopPropagation){bv.stopPropagation()}bv.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=i;this.stopPropagation()},isDefaultPrevented:bk,isPropagationStopped:bk,isImmediatePropagationStopped:bk};b.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(bv,e){b.event.special[bv]={delegateType:e,bindType:e,handle:function(bz){var bB=this,bA=bz.relatedTarget,by=bz.handleObj,bw=by.selector,bx;if(!bA||(bA!==bB&&!b.contains(bB,bA))){bz.type=by.origType;bx=by.handler.apply(this,arguments);bz.type=e}return bx}}});if(!b.support.submitBubbles){b.event.special.submit={setup:function(){if(b.nodeName(this,"form")){return false}b.event.add(this,"click._submit keypress._submit",function(bx){var bw=bx.target,bv=b.nodeName(bw,"input")||b.nodeName(bw,"button")?bw.form:L;if(bv&&!bv._submit_attached){b.event.add(bv,"submit._submit",function(e){if(this.parentNode&&!e.isTrigger){b.event.simulate("submit",this.parentNode,e,true)}});bv._submit_attached=true}})},teardown:function(){if(b.nodeName(this,"form")){return false}b.event.remove(this,"._submit")}}}if(!b.support.changeBubbles){b.event.special.change={setup:function(){if(bd.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio"){b.event.add(this,"propertychange._change",function(e){if(e.originalEvent.propertyName==="checked"){this._just_changed=true}});b.event.add(this,"click._change",function(e){if(this._just_changed&&!e.isTrigger){this._just_changed=false;b.event.simulate("change",this,e,true)}})}return false}b.event.add(this,"beforeactivate._change",function(bw){var bv=bw.target;if(bd.test(bv.nodeName)&&!bv._change_attached){b.event.add(bv,"change._change",function(e){if(this.parentNode&&!e.isSimulated&&!e.isTrigger){b.event.simulate("change",this.parentNode,e,true)}});bv._change_attached=true}})},handle:function(bv){var e=bv.target;if(this!==e||bv.isSimulated||bv.isTrigger||(e.type!=="radio"&&e.type!=="checkbox")){return bv.handleObj.handler.apply(this,arguments)}},teardown:function(){b.event.remove(this,"._change");return bd.test(this.nodeName)}}}if(!b.support.focusinBubbles){b.each({focus:"focusin",blur:"focusout"},function(bx,e){var bv=0,bw=function(by){b.event.simulate(e,by.target,b.event.fix(by),true)};b.event.special[e]={setup:function(){if(bv++===0){av.addEventListener(bx,bw,true)}},teardown:function(){if(--bv===0){av.removeEventListener(bx,bw,true)}}}})}b.fn.extend({on:function(bw,e,bz,by,bv){var bA,bx;if(typeof bw==="object"){if(typeof e!=="string"){bz=e;e=L}for(bx in bw){this.on(bx,e,bz,bw[bx],bv)}return this}if(bz==null&&by==null){by=e;bz=e=L}else{if(by==null){if(typeof e==="string"){by=bz;bz=L}else{by=bz;bz=e;e=L}}}if(by===false){by=bk}else{if(!by){return this}}if(bv===1){bA=by;by=function(bB){b().off(bB);return bA.apply(this,arguments)};by.guid=bA.guid||(bA.guid=b.guid++)}return this.each(function(){b.event.add(this,bw,by,bz,e)})},one:function(bv,e,bx,bw){return this.on.call(this,bv,e,bx,bw,1)},off:function(bw,e,by){if(bw&&bw.preventDefault&&bw.handleObj){var bv=bw.handleObj;b(bw.delegateTarget).off(bv.namespace?bv.type+"."+bv.namespace:bv.type,bv.selector,bv.handler);return this}if(typeof bw==="object"){for(var bx in bw){this.off(bx,e,bw[bx])}return this}if(e===false||typeof e==="function"){by=e;e=L}if(by===false){by=bk}return this.each(function(){b.event.remove(this,bw,by,e)})},bind:function(e,bw,bv){return this.on(e,null,bw,bv)},unbind:function(e,bv){return this.off(e,null,bv)},live:function(e,bw,bv){b(this.context).on(e,this.selector,bw,bv);return this},die:function(e,bv){b(this.context).off(e,this.selector||"**",bv);return this},delegate:function(e,bv,bx,bw){return this.on(bv,e,bx,bw)},undelegate:function(e,bv,bw){return arguments.length==1?this.off(e,"**"):this.off(bv,e,bw)},trigger:function(e,bv){return this.each(function(){b.event.trigger(e,bv,this)})},triggerHandler:function(e,bv){if(this[0]){return b.event.trigger(e,bv,this[0],true)}},toggle:function(bx){var bv=arguments,e=bx.guid||b.guid++,bw=0,by=function(bz){var bA=(b._data(this,"lastToggle"+bx.guid)||0)%bw;b._data(this,"lastToggle"+bx.guid,bA+1);bz.preventDefault();return bv[bA].apply(this,arguments)||false};by.guid=e;while(bw<bv.length){bv[bw++].guid=e}return this.click(by)},hover:function(e,bv){return this.mouseenter(e).mouseleave(bv||e)}});b.each(("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu").split(" "),function(bv,e){b.fn[e]=function(bx,bw){if(bw==null){bw=bx;bx=null}return arguments.length>0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}});
 /*!
  * Sizzle CSS Selector Engine
  *  Copyright 2011, The Dojo Foundation
  *  Released under the MIT, BSD, and GPL Licenses.
  *  More information: http://sizzlejs.com/
  */
-(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e<bR.length;e++){if(bR[e]===bR[e-1]){bR.splice(e--,1)}}}}return bR};by.matches=function(e,bR){return by(e,null,null,bR)};by.matchesSelector=function(e,bR){return by(bR,null,null,[e]).length>0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS<bU;bS++){bV=bE.order[bS];if((bT=bE.leftMatch[bV].exec(bX))){bR=bT[1];bT.splice(1,1);if(bR.substr(bR.length-1)!=="\\"){bT[1]=(bT[1]||"").replace(bK,"");bW=bE.find[bV](bT,e,bY);if(bW!=null){bX=bX.replace(bE.match[bV],"");break}}}}if(!bW){bW=typeof e.getElementsByTagName!=="undefined"?e.getElementsByTagName("*"):[]}return{set:bW,expr:bX}};by.filter=function(b1,b0,b4,bU){var bW,e,bZ,b6,b3,bR,bT,bV,b2,bS=b1,b5=[],bY=b0,bX=b0&&b0[0]&&by.isXML(b0[0]);while(b1&&b0.length){for(bZ in bE.filter){if((bW=bE.leftMatch[bZ].exec(b1))!=null&&bW[2]){bR=bE.filter[bZ];bT=bW[1];e=false;bW.splice(1,1);if(bT.substr(bT.length-1)==="\\"){continue}if(bY===b5){b5=[]}if(bE.preFilter[bZ]){bW=bE.preFilter[bZ](bW,bY,b4,b5,bU,bX);if(!bW){e=b6=true}else{if(bW===true){continue}}}if(bW){for(bV=0;(b3=bY[bV])!=null;bV++){if(b3){b6=bR(b3,bW,bV,bY);b2=bU^b6;if(b4&&b6!=null){if(b2){e=true}else{bY[bV]=false}}else{if(b2){b5.push(b3);e=true}}}}}if(b6!==L){if(!b4){bY=b5}b1=b1.replace(bE.match[bZ],"");if(!e){return[]}break}}}if(b1===bS){if(e==null){by.error(b1)}else{break}}bS=b1}return bY};by.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)};var bw=by.getText=function(bU){var bS,bT,e=bU.nodeType,bR="";if(e){if(e===1||e===9||e===11){if(typeof bU.textContent==="string"){return bU.textContent}else{if(typeof bU.innerText==="string"){return bU.innerText.replace(bO,"")}else{for(bU=bU.firstChild;bU;bU=bU.nextSibling){bR+=bw(bU)}}}}else{if(e===3||e===4){return bU.nodeValue}}}else{for(bS=0;(bT=bU[bS]);bS++){if(bT.nodeType!==8){bR+=bw(bT)}}}return bR};var bE=by.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(e){return e.getAttribute("href")},type:function(e){return e.getAttribute("type")}},relative:{"+":function(bW,bR){var bT=typeof bR==="string",bV=bT&&!bQ.test(bR),bX=bT&&!bV;if(bV){bR=bR.toLowerCase()}for(var bS=0,e=bW.length,bU;bS<e;bS++){if((bU=bW[bS])){while((bU=bU.previousSibling)&&bU.nodeType!==1){}bW[bS]=bX||bU&&bU.nodeName.toLowerCase()===bR?bU||false:bU===bR}}if(bX){by.filter(bR,bW,true)}},">":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS<e;bS++){bV=bW[bS];if(bV){var bT=bV.parentNode;bW[bS]=bT.nodeName.toLowerCase()===bR?bT:false}}}else{for(;bS<e;bS++){bV=bW[bS];if(bV){bW[bS]=bU?bV.parentNode:bV.parentNode===bR}}if(bU){by.filter(bR,bW,true)}}},"":function(bT,bR,bV){var bU,bS=bI++,e=bN;if(typeof bR==="string"&&!bQ.test(bR)){bR=bR.toLowerCase();bU=bR;e=bv}e("parentNode",bR,bS,bT,bU,bV)},"~":function(bT,bR,bV){var bU,bS=bI++,e=bN;if(typeof bR==="string"&&!bQ.test(bR)){bR=bR.toLowerCase();bU=bR;e=bv}e("previousSibling",bR,bS,bT,bU,bV)}},find:{ID:function(bR,bS,bT){if(typeof bS.getElementById!=="undefined"&&!bT){var e=bS.getElementById(bR[1]);return e&&e.parentNode?[e]:[]}},NAME:function(bS,bV){if(typeof bV.getElementsByName!=="undefined"){var bR=[],bU=bV.getElementsByName(bS[1]);for(var bT=0,e=bU.length;bT<e;bT++){if(bU[bT].getAttribute("name")===bS[1]){bR.push(bU[bT])}}return bR.length===0?null:bR}},TAG:function(e,bR){if(typeof bR.getElementsByTagName!=="undefined"){return bR.getElementsByTagName(e[1])}}},preFilter:{CLASS:function(bT,bR,bS,e,bW,bX){bT=" "+bT[1].replace(bK,"")+" ";if(bX){return bT}for(var bU=0,bV;(bV=bR[bU])!=null;bU++){if(bV){if(bW^(bV.className&&(" "+bV.className+" ").replace(/[\t\n\r]/g," ").indexOf(bT)>=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1},lt:function(bS,bR,e){return bR<e[3]-0},gt:function(bS,bR,e){return bR>e[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV<bU;bV++){if(bT[bV]===bS){return false}}return true}else{by.error(e)}}}},CHILD:function(bS,bU){var bT,b0,bW,bZ,e,bV,bY,bX=bU[1],bR=bS;switch(bX){case"only":case"first":while((bR=bR.previousSibling)){if(bR.nodeType===1){return false}}if(bX==="first"){return true}bR=bS;case"last":while((bR=bR.nextSibling)){if(bR.nodeType===1){return false}}return true;case"nth":bT=bU[2];b0=bU[3];if(bT===1&&b0===0){return true}bW=bU[0];bZ=bS.parentNode;if(bZ&&(bZ[bC]!==bW||!bS.nodeIndex)){bV=0;for(bR=bZ.firstChild;bR;bR=bR.nextSibling){if(bR.nodeType===1){bR.nodeIndex=++bV}}bZ[bC]=bW}bY=bS.nodeIndex-b0;if(bT===0){return bY===0}else{return(bY%bT===0&&bY/bT>=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}bE.match.globalPOS=bD;var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS<e;bS++){bR.push(bU[bS])}}else{for(;bU[bS];bS++){bR.push(bU[bS])}}}return bR}}var bJ,bG;if(av.documentElement.compareDocumentPosition){bJ=function(bR,e){if(bR===e){bB=true;return 0}if(!bR.compareDocumentPosition||!e.compareDocumentPosition){return bR.compareDocumentPosition?-1:1}return bR.compareDocumentPosition(e)&4?-1:1}}else{bJ=function(bY,bX){if(bY===bX){bB=true;return 0}else{if(bY.sourceIndex&&bX.sourceIndex){return bY.sourceIndex-bX.sourceIndex}}var bV,bR,bS=[],e=[],bU=bY.parentNode,bW=bX.parentNode,bZ=bU;if(bU===bW){return bG(bY,bX)}else{if(!bU){return -1}else{if(!bW){return 1}}}while(bZ){bS.unshift(bZ);bZ=bZ.parentNode}bZ=bW;while(bZ){e.unshift(bZ);bZ=bZ.parentNode}bV=bS.length;bR=e.length;for(var bT=0;bT<bV&&bT<bR;bT++){if(bS[bT]!==e[bT]){return bG(bS[bT],e[bT])}}return bT===bV?bG(bY,e[bT],-1):bG(bS[bT],bX,1)};bG=function(bR,e,bS){if(bR===e){return bS}var bT=bR.nextSibling;while(bT){if(bT===e){return -1}bT=bT.nextSibling}return 1}}(function(){var bR=av.createElement("div"),bS="script"+(new Date()).getTime(),e=av.documentElement;bR.innerHTML="<a name='"+bS+"'/>";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="<a href='#'></a>";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="<p class='TEST'></p>";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="<div class='test e'></div><div class='test'></div>";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT<bS;bT++){var e=bZ[bT];if(e){var bU=false;e=e[bR];while(e){if(e[bC]===bV){bU=bZ[e.sizset];break}if(e.nodeType===1&&!bY){e[bC]=bV;e.sizset=bT}if(e.nodeName.toLowerCase()===bW){bU=e;break}e=e[bR]}bZ[bT]=bU}}}function bN(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT<bS;bT++){var e=bZ[bT];if(e){var bU=false;e=e[bR];while(e){if(e[bC]===bV){bU=bZ[e.sizset];break}if(e.nodeType===1){if(!bY){e[bC]=bV;e.sizset=bT}if(typeof bW!=="string"){if(e===bW){bU=true;break}}else{if(by.filter(bW,[e]).length>0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT<bR;bT++){by(bS,bY[bT],bX,bW)}return by.filter(bU,bX)};by.attr=b.attr;by.selectors.attrMap={};b.find=by;b.expr=by.selectors;b.expr[":"]=b.expr.filters;b.unique=by.uniqueSort;b.text=by.getText;b.isXMLDoc=by.isXML;b.contains=by.contains})();var ab=/Until$/,aq=/^(?:parents|prevUntil|prevAll)/,bb=/,/,bp=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,H=b.expr.match.globalPOS,ay={children:true,contents:true,next:true,prev:true};b.fn.extend({find:function(e){var bw=this,by,bv;if(typeof e!=="string"){return b(e).filter(function(){for(by=0,bv=bw.length;by<bv;by++){if(b.contains(bw[by],this)){return true}}})}var bx=this.pushStack("","find",e),bA,bB,bz;for(by=0,bv=this.length;by<bv;by++){bA=bx.length;b.find(e,this[by],bx);if(by>0){for(bB=bA;bB<bx.length;bB++){for(bz=0;bz<bA;bz++){if(bx[bz]===bx[bB]){bx.splice(bB--,1);break}}}}}return bx},has:function(bv){var e=b(bv);return this.filter(function(){for(var bx=0,bw=e.length;bx<bw;bx++){if(b.contains(this,e[bx])){return true}}})},not:function(e){return this.pushStack(aH(this,e,false),"not",e)},filter:function(e){return this.pushStack(aH(this,e,true),"filter",e)},is:function(e){return !!e&&(typeof e==="string"?H.test(e)?b(e,this.context).index(this[0])>=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw<by.length;bw++){if(b(bz).is(by[bw])){bv.push({selector:by[bw],elem:bz,level:bB})}}bz=bz.parentNode;bB++}return bv}var bA=H.test(by)||typeof by!=="string"?b(by,bx||this.context):0;for(bw=0,e=this.length;bw<e;bw++){bz=this[bw];while(bz){if(bA?bA.index(bz)>-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(B(bx[0])||B(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function B(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||bb.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aH(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aS.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aS="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ah=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,v=/<tbody/i,W=/<|&#?\w+;/,ae=/<(?:script|style)/i,O=/<(?:script|object|embed|option|style)/i,ai=new RegExp("<(?:"+aS+")[\\s/>]","i"),o=/checked\s*(?:[^=]|=\s*.checked.)/i,bn=/\/(java|ecma)script/i,aO=/^\s*<!(?:\[CDATA\[|\-\-)/,ax={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},ac=a(av);ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div<div>","</div>"]}b.fn.extend({text:function(e){return b.access(this,function(bv){return bv===L?b.text(this):this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(bv))},null,e,arguments.length)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(e){return b.access(this,function(by){var bx=this[0]||{},bw=0,bv=this.length;if(by===L){return bx.nodeType===1?bx.innerHTML.replace(ah,""):null}if(typeof by==="string"&&!ae.test(by)&&(b.support.leadingWhitespace||!ar.test(by))&&!ax[(d.exec(by)||["",""])[1].toLowerCase()]){by=by.replace(R,"<$1></$2>");try{for(;bw<bv;bw++){bx=this[bw]||{};if(bx.nodeType===1){b.cleanData(bx.getElementsByTagName("*"));bx.innerHTML=by}}bx=0}catch(bz){}}if(bx){this.empty().append(by)}},null,e,arguments.length)},replaceWith:function(e){if(this[0]&&this[0].parentNode){if(b.isFunction(e)){return this.each(function(bx){var bw=b(this),bv=bw.html();bw.replaceWith(e.call(this,bx,bv))})}if(typeof e!=="string"){e=b(e).detach()}return this.each(function(){var bw=this.nextSibling,bv=this.parentNode;b(this).remove();if(bw){b(bw).before(e)}else{b(bv).append(e)}})}else{return this.length?this.pushStack(b(b.isFunction(e)?e():e),"replaceWith",e):this}},detach:function(e){return this.remove(e,true)},domManip:function(bB,bF,bE){var bx,by,bA,bD,bC=bB[0],bv=[];if(!b.support.checkClone&&arguments.length===3&&typeof bC==="string"&&o.test(bC)){return this.each(function(){b(this).domManip(bB,bF,bE,true)})}if(b.isFunction(bC)){return this.each(function(bH){var bG=b(this);bB[0]=bC.call(this,bH,bF?bG.html():L);bG.domManip(bB,bF,bE)})}if(this[0]){bD=bC&&bC.parentNode;if(b.support.parentNode&&bD&&bD.nodeType===11&&bD.childNodes.length===this.length){bx={fragment:bD}}else{bx=b.buildFragment(bB,this,bv)}bA=bx.fragment;if(bA.childNodes.length===1){by=bA=bA.firstChild}else{by=bA.firstChild}if(by){bF=bF&&b.nodeName(by,"tr");for(var bw=0,e=this.length,bz=e-1;bw<e;bw++){bE.call(bF?bc(this[bw],by):this[bw],bx.cacheable||(e>1&&bw<bz)?b.clone(bA,true,true):bA)}}if(bv.length){b.each(bv,function(bG,bH){if(bH.src){b.ajax({type:"GET",global:false,url:bH.src,async:false,dataType:"script"})}else{b.globalEval((bH.text||bH.textContent||bH.innerHTML||"").replace(aO,"/*$0*/"))}if(bH.parentNode){bH.parentNode.removeChild(bH)}})}}return this}});function bc(e,bv){return b.nodeName(e,"table")?(e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody"))):e}function s(bB,bv){if(bv.nodeType!==1||!b.hasData(bB)){return}var by,bx,e,bA=b._data(bB),bz=b._data(bv,bA),bw=bA.events;if(bw){delete bz.handle;bz.events={};for(by in bw){for(bx=0,e=bw[by].length;bx<e;bx++){b.event.add(bv,by,bw[by][bx])}}}if(bz.data){bz.data=b.extend({},bz.data)}}function aj(bv,e){var bw;if(e.nodeType!==1){return}if(e.clearAttributes){e.clearAttributes()}if(e.mergeAttributes){e.mergeAttributes(bv)}bw=e.nodeName.toLowerCase();if(bw==="object"){e.outerHTML=bv.outerHTML}else{if(bw==="input"&&(bv.type==="checkbox"||bv.type==="radio")){if(bv.checked){e.defaultChecked=e.checked=bv.checked}if(e.value!==bv.value){e.value=bv.value}}else{if(bw==="option"){e.selected=bv.defaultSelected}else{if(bw==="input"||bw==="textarea"){e.defaultValue=bv.defaultValue}else{if(bw==="script"&&e.text!==bv.text){e.text=bv.text}}}}}e.removeAttribute(b.expando);e.removeAttribute("_submit_attached");e.removeAttribute("_change_attached")}b.buildFragment=function(bz,bx,bv){var by,e,bw,bA,bB=bz[0];if(bx&&bx[0]){bA=bx[0].ownerDocument||bx[0]}if(!bA.createDocumentFragment){bA=av}if(bz.length===1&&typeof bB==="string"&&bB.length<512&&bA===av&&bB.charAt(0)==="<"&&!O.test(bB)&&(b.support.checkClone||!o.test(bB))&&(b.support.html5Clone||!ai.test(bB))){e=true;bw=b.fragments[bB];if(bw&&bw!==1){by=bw}}if(!by){by=bA.createDocumentFragment();b.clean(bz,bA,by,bv)}if(e){b.fragments[bB]=bw?by:1}return{fragment:by,cacheable:e}};b.fragments={};b.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,bv){b.fn[e]=function(bw){var bz=[],bC=b(bw),bB=this.length===1&&this[0].parentNode;if(bB&&bB.nodeType===11&&bB.childNodes.length===1&&bC.length===1){bC[bv](this[0]);return this}else{for(var bA=0,bx=bC.length;bA<bx;bA++){var by=(bA>0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bh(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function D(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function am(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||b.isXMLDoc(by)||!ai.test("<"+by.nodeName+">")?by.cloneNode(true):am(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){aj(by,bz);e=bh(by);bv=bh(bz);for(bx=0;e[bx];++bx){if(bv[bx]){aj(e[bx],bv[bx])}}}if(bA){s(by,bz);if(bw){e=bh(by);bv=bh(bz);for(bx=0;e[bx];++bx){s(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bI,bw,bv,bx){var bA,bH,bD,bJ=[];bw=bw||av;if(typeof bw.createElement==="undefined"){bw=bw.ownerDocument||bw[0]&&bw[0].ownerDocument||av}for(var bE=0,bG;(bG=bI[bE])!=null;bE++){if(typeof bG==="number"){bG+=""}if(!bG){continue}if(typeof bG==="string"){if(!W.test(bG)){bG=bw.createTextNode(bG)}else{bG=bG.replace(R,"<$1></$2>");var bN=(d.exec(bG)||["",""])[1].toLowerCase(),bz=ax[bN]||ax._default,bK=bz[0],bB=bw.createElement("div"),bL=ac.childNodes,bM;if(bw===av){ac.appendChild(bB)}else{a(bw).appendChild(bB)}bB.innerHTML=bz[1]+bG+bz[2];while(bK--){bB=bB.lastChild}if(!b.support.tbody){var by=v.test(bG),e=bN==="table"&&!by?bB.firstChild&&bB.firstChild.childNodes:bz[1]==="<table>"&&!by?bB.childNodes:[];for(bD=e.length-1;bD>=0;--bD){if(b.nodeName(e[bD],"tbody")&&!e[bD].childNodes.length){e[bD].parentNode.removeChild(e[bD])}}}if(!b.support.leadingWhitespace&&ar.test(bG)){bB.insertBefore(bw.createTextNode(ar.exec(bG)[0]),bB.firstChild)}bG=bB.childNodes;if(bB){bB.parentNode.removeChild(bB);if(bL.length>0){bM=bL[bL.length-1];if(bM&&bM.parentNode){bM.parentNode.removeChild(bM)}}}}}var bF;if(!b.support.appendChecked){if(bG[0]&&typeof(bF=bG.length)==="number"){for(bD=0;bD<bF;bD++){D(bG[bD])}}else{D(bG)}}if(bG.nodeType){bJ.push(bG)}else{bJ=b.merge(bJ,bG)}}if(bv){bA=function(bO){return !bO.type||bn.test(bO.type)};for(bE=0;bJ[bE];bE++){bH=bJ[bE];if(bx&&b.nodeName(bH,"script")&&(!bH.type||bn.test(bH.type))){bx.push(bH.parentNode?bH.parentNode.removeChild(bH):bH)}else{if(bH.nodeType===1){var bC=b.grep(bH.getElementsByTagName("script"),bA);bJ.splice.apply(bJ,[bE+1,0].concat(bC))}bv.appendChild(bH)}}}return bJ},cleanData:function(bv){var by,bw,e=b.cache,bB=b.event.special,bA=b.support.deleteExpando;for(var bz=0,bx;(bx=bv[bz])!=null;bz++){if(bx.nodeName&&b.noData[bx.nodeName.toLowerCase()]){continue}bw=bx[b.expando];if(bw){by=e[bw];if(by&&by.events){for(var bC in by.events){if(bB[bC]){b.event.remove(bx,bC)}else{b.removeEvent(bx,bC,by.handle)}}if(by.handle){by.handle.elem=null}}if(bA){delete bx[b.expando]}else{if(bx.removeAttribute){bx.removeAttribute(b.expando)}}delete e[bw]}}}});var al=/alpha\([^)]*\)/i,au=/opacity=([^)]*)/,y=/([A-Z]|^ms)/g,bo=/^[\-+]?(?:\d*\.)?\d+$/i,a1=/^-?(?:\d*\.)?\d+(?!px)[^\d\s]+$/i,I=/^([\-+])=([\-+.\de]+)/,aE=/^margin/,a9={position:"absolute",visibility:"hidden",display:"block"},G=["Top","Right","Bottom","Left"],Z,aJ,aY;b.fn.css=function(e,bv){return b.access(this,function(bx,bw,by){return by!==L?b.style(bx,bw,by):b.css(bx,bw)},e,bv,arguments.length>1)};b.extend({cssHooks:{opacity:{get:function(bw,bv){if(bv){var e=Z(bw,"opacity");return e===""?"1":e}else{return bw.style.opacity}}}},cssNumber:{fillOpacity:true,fontWeight:true,lineHeight:true,opacity:true,orphans:true,widows:true,zIndex:true,zoom:true},cssProps:{"float":b.support.cssFloat?"cssFloat":"styleFloat"},style:function(bx,bw,bD,by){if(!bx||bx.nodeType===3||bx.nodeType===8||!bx.style){return}var bB,bC,bz=b.camelCase(bw),bv=bx.style,bE=b.cssHooks[bz];bw=b.cssProps[bz]||bz;if(bD!==L){bC=typeof bD;if(bC==="string"&&(bB=I.exec(bD))){bD=(+(bB[1]+1)*+bB[2])+parseFloat(b.css(bx,bw));bC="number"}if(bD==null||bC==="number"&&isNaN(bD)){return}if(bC==="number"&&!b.cssNumber[bz]){bD+="px"}if(!bE||!("set" in bE)||(bD=bE.set(bx,bD))!==L){try{bv[bw]=bD}catch(bA){}}}else{if(bE&&"get" in bE&&(bB=bE.get(bx,false,by))!==L){return bB}return bv[bw]}},css:function(by,bx,bv){var bw,e;bx=b.camelCase(bx);e=b.cssHooks[bx];bx=b.cssProps[bx]||bx;if(bx==="cssFloat"){bx="float"}if(e&&"get" in e&&(bw=e.get(by,true,bv))!==L){return bw}else{if(Z){return Z(by,bx)}}},swap:function(by,bx,bz){var e={},bw,bv;for(bv in bx){e[bv]=by.style[bv];by.style[bv]=bx[bv]}bw=bz.call(by);for(bv in bx){by.style[bv]=e[bv]}return bw}});b.curCSS=b.css;if(av.defaultView&&av.defaultView.getComputedStyle){aJ=function(bA,bw){var bv,bz,e,by,bx=bA.style;bw=bw.replace(y,"-$1").toLowerCase();if((bz=bA.ownerDocument.defaultView)&&(e=bz.getComputedStyle(bA,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(bA.ownerDocument.documentElement,bA)){bv=b.style(bA,bw)}}if(!b.support.pixelMargin&&e&&aE.test(bw)&&a1.test(bv)){by=bx.width;bx.width=bv;bv=e.width;bx.width=by}return bv}}if(av.documentElement.currentStyle){aY=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv==null&&bx&&(by=bx[bw])){bv=by}if(a1.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":bv;bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aJ||aY;function af(by,bw,bv){var bz=bw==="width"?by.offsetWidth:by.offsetHeight,bx=bw==="width"?1:0,e=4;if(bz>0){if(bv!=="border"){for(;bx<e;bx+=2){if(!bv){bz-=parseFloat(b.css(by,"padding"+G[bx]))||0}if(bv==="margin"){bz+=parseFloat(b.css(by,bv+G[bx]))||0}else{bz-=parseFloat(b.css(by,"border"+G[bx]+"Width"))||0}}}return bz+"px"}bz=Z(by,bw);if(bz<0||bz==null){bz=by.style[bw]}if(a1.test(bz)){return bz}bz=parseFloat(bz)||0;if(bv){for(;bx<e;bx+=2){bz+=parseFloat(b.css(by,"padding"+G[bx]))||0;if(bv!=="padding"){bz+=parseFloat(b.css(by,"border"+G[bx]+"Width"))||0}if(bv==="margin"){bz+=parseFloat(b.css(by,bv+G[bx]))||0}}}return bz+"px"}b.each(["height","width"],function(bv,e){b.cssHooks[e]={get:function(by,bx,bw){if(bx){if(by.offsetWidth!==0){return af(by,e,bw)}else{return b.swap(by,a9,function(){return af(by,e,bw)})}}},set:function(bw,bx){return bo.test(bx)?bx+"px":bx}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(al,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=al.test(bw)?bw.replace(al,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bv,e){return b.swap(bv,{display:"inline-block"},function(){if(e){return Z(bv,"margin-right")}else{return bv.style.marginRight}})}}}});if(b.expr&&b.expr.filters){b.expr.filters.hidden=function(bw){var bv=bw.offsetWidth,e=bw.offsetHeight;return(bv===0&&e===0)||(!b.support.reliableHiddenOffsets&&((bw.style&&bw.style.display)||b.css(bw,"display"))==="none")};b.expr.filters.visible=function(e){return !b.expr.filters.hidden(e)}}b.each({margin:"",padding:"",border:"Width"},function(e,bv){b.cssHooks[e+bv]={expand:function(by){var bx,bz=typeof by==="string"?by.split(" "):[by],bw={};for(bx=0;bx<4;bx++){bw[e+G[bx]+bv]=bz[bx]||bz[bx-2]||bz[0]}return bw}}});var k=/%20/g,ap=/\[\]$/,bs=/\r?\n/g,bq=/#.*$/,aD=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,a0=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,aN=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,aR=/^(?:GET|HEAD)$/,c=/^\/\//,M=/\?/,a7=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,p=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,z=b.fn.load,aa={},q={},aF,r,aW=["*/"]+["*"];try{aF=bm.href}catch(aw){aF=av.createElement("a");aF.href="";aF=aF.href}r=K.exec(aF.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw<bz;bw++){bv=bx[bw];bC=/^\+/.test(bv);if(bC){bv=bv.substr(1)||"*"}bB=e[bv]=e[bv]||[];bB[bC?"unshift":"push"](bA)}}}}function aX(bv,bE,bz,bD,bB,bx){bB=bB||bE.dataTypes[0];bx=bx||{};bx[bB]=true;var bA=bv[bB],bw=0,e=bA?bA.length:0,by=(bv===aa),bC;for(;bw<e&&(by||!bC);bw++){bC=bA[bw](bE,bz,bD);if(typeof bC==="string"){if(!by||bx[bC]){bC=L}else{bE.dataTypes.unshift(bC);bC=aX(bv,bE,bz,bD,bC,bx)}}}if((by||!bC)&&!bx["*"]){bC=aX(bv,bE,bz,bD,"*",bx)}return bC}function an(bw,bx){var bv,e,by=b.ajaxSettings.flatOptions||{};for(bv in bx){if(bx[bv]!==L){(by[bv]?bw:(e||(e={})))[bv]=bx[bv]}}if(e){b.extend(true,bw,e)}}b.fn.extend({load:function(bw,bz,bA){if(typeof bw!=="string"&&z){return z.apply(this,arguments)}else{if(!this.length){return this}}var by=bw.indexOf(" ");if(by>=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("<div>").append(bD.replace(a7,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||p.test(this.nodeName)||a0.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){an(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}an(bv,e);return bv},ajaxSettings:{url:aF,isLocal:aN.test(r[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aW},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bd.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(q),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bk(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=F(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,r[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=r[1]||bI[2]!=r[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(r[3]||(r[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aX(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aR.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aW+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aX(q,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){u(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function u(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{u(bw+"["+(typeof bz==="object"?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&b.type(by)==="object"){for(var e in by){u(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bk(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function F(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA<bw;bA++){if(bA===1){for(bE in bH.converters){if(typeof bE==="string"){bG[bE.toLowerCase()]=bH.converters[bE]}}}bx=bC;bC=bD[bA];if(bC==="*"){bC=bx}else{if(bx!=="*"&&bx!==bC){by=bx+" "+bC;bF=bG[by]||bG["* "+bC];if(!bF){e=L;for(bv in bG){bB=bv.split(" ");if(bB[0]===bx||bB[0]==="*"){e=bG[bB[1]+" "+bC];if(e){bv=bG[bv];if(bv===true){bF=e}else{if(e===true){bF=bv}}break}}}}if(!(bF||e)){b.error("No conversion from "+by.replace(" "," to "))}if(bF!==true){bz=bF?bF(bz):e(bv(bz))}}}}return bz}var aC=b.now(),t=/(\=)\?(&|$)|\?\?/i;b.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return b.expando+"_"+(aC++)}});b.ajaxPrefilter("json jsonp",function(bD,bA,bC){var bx=(typeof bD.data==="string")&&/^application\/x\-www\-form\-urlencoded/.test(bD.contentType);if(bD.dataTypes[0]==="jsonp"||bD.jsonp!==false&&(t.test(bD.url)||bx&&t.test(bD.data))){var bB,bw=bD.jsonpCallback=b.isFunction(bD.jsonpCallback)?bD.jsonpCallback():bD.jsonpCallback,bz=bd[bw],e=bD.url,by=bD.data,bv="$1"+bw+"$2";if(bD.jsonp!==false){e=e.replace(t,bv);if(bD.url===e){if(bx){by=by.replace(t,bv)}if(bD.data===by){e+=(/\?/.test(e)?"&":"?")+bD.jsonp+"="+bw}}}bD.url=e;bD.data=by;bd[bw]=function(bE){bB=[bE]};bC.always(function(){bd[bw]=bz;if(bB&&b.isFunction(bz)){bd[bw](bB[0])}});bD.converters["script json"]=function(){if(!bB){b.error(bw+" was not called")}return bB[0]};bD.dataTypes[0]="json";return"script"}});b.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){b.globalEval(e);return e}}});b.ajaxPrefilter("script",function(e){if(e.cache===L){e.cache=false}if(e.crossDomain){e.type="GET";e.global=false}});b.ajaxTransport("script",function(bw){if(bw.crossDomain){var e,bv=av.head||av.getElementsByTagName("head")[0]||av.documentElement;return{send:function(bx,by){e=av.createElement("script");e.async="async";if(bw.scriptCharset){e.charset=bw.scriptCharset}e.src=bw.url;e.onload=e.onreadystatechange=function(bA,bz){if(bz||!e.readyState||/loaded|complete/.test(e.readyState)){e.onload=e.onreadystatechange=null;if(bv&&e.parentNode){bv.removeChild(e)}e=L;if(!bz){by(200,"success")}}};bv.insertBefore(e,bv.firstChild)},abort:function(){if(e){e.onload(0,1)}}}}});var A=bd.ActiveXObject?function(){for(var e in N){N[e](0,1)}}:false,x=0,N;function aM(){try{return new bd.XMLHttpRequest()}catch(bv){}}function ak(){try{return new bd.ActiveXObject("Microsoft.XMLHTTP")}catch(bv){}}b.ajaxSettings.xhr=bd.ActiveXObject?function(){return !this.isLocal&&aM()||ak()}:aM;(function(e){b.extend(b.support,{ajax:!!e,cors:!!e&&("withCredentials" in e)})})(b.ajaxSettings.xhr());if(b.support.ajax){b.ajaxTransport(function(e){if(!e.crossDomain||b.support.cors){var bv;return{send:function(bB,bw){var bA=e.xhr(),bz,by;if(e.username){bA.open(e.type,e.url,e.async,e.username,e.password)}else{bA.open(e.type,e.url,e.async)}if(e.xhrFields){for(by in e.xhrFields){bA[by]=e.xhrFields[by]}}if(e.mimeType&&bA.overrideMimeType){bA.overrideMimeType(e.mimeType)}if(!e.crossDomain&&!bB["X-Requested-With"]){bB["X-Requested-With"]="XMLHttpRequest"}try{for(by in bB){bA.setRequestHeader(by,bB[by])}}catch(bx){}bA.send((e.hasContent&&e.data)||null);bv=function(bK,bE){var bF,bD,bC,bI,bH;try{if(bv&&(bE||bA.readyState===4)){bv=L;if(bz){bA.onreadystatechange=b.noop;if(A){delete N[bz]}}if(bE){if(bA.readyState!==4){bA.abort()}}else{bF=bA.status;bC=bA.getAllResponseHeaders();bI={};bH=bA.responseXML;if(bH&&bH.documentElement){bI.xml=bH}try{bI.text=bA.responseText}catch(bK){}try{bD=bA.statusText}catch(bJ){bD=""}if(!bF&&e.isLocal&&!e.crossDomain){bF=bI.text?200:404}else{if(bF===1223){bF=204}}}}}catch(bG){if(!bE){bw(-1,bG)}}if(bI){bw(bF,bD,bI,bC)}};if(!e.async||bA.readyState===4){bv()}else{bz=++x;if(A){if(!N){N={};b(bd).unload(A)}N[bz]=bv}bA.onreadystatechange=bv}},abort:function(){if(bv){bv(0,1)}}}}})}var Q={},ba,m,aB=/^(?:toggle|show|hide)$/,aU=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,a4,aI=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],a5;b.fn.extend({show:function(bx,bA,bz){var bw,by;if(bx||bx===0){return this.animate(a2("show",3),bx,bA,bz)}else{for(var bv=0,e=this.length;bv<e;bv++){bw=this[bv];if(bw.style){by=bw.style.display;if(!b._data(bw,"olddisplay")&&by==="none"){by=bw.style.display=""}if((by===""&&b.css(bw,"display")==="none")||!b.contains(bw.ownerDocument.documentElement,bw)){b._data(bw,"olddisplay",w(bw.nodeName))}}}for(bv=0;bv<e;bv++){bw=this[bv];if(bw.style){by=bw.style.display;if(by===""||by==="none"){bw.style.display=b._data(bw,"olddisplay")||""}}}return this}},hide:function(bx,bA,bz){if(bx||bx===0){return this.animate(a2("hide",3),bx,bA,bz)}else{var bw,by,bv=0,e=this.length;for(;bv<e;bv++){bw=this[bv];if(bw.style){by=b.css(bw,"display");if(by!=="none"&&!b._data(bw,"olddisplay")){b._data(bw,"olddisplay",by)}}}for(bv=0;bv<e;bv++){if(this[bv].style){this[bv].style.display="none"}}return this}},_toggle:b.fn.toggle,toggle:function(bw,bv,bx){var e=typeof bw==="boolean";if(b.isFunction(bw)&&b.isFunction(bv)){this._toggle.apply(this,arguments)}else{if(bw==null||e){this.each(function(){var by=e?bw:b(this).is(":hidden");b(this)[by?"show":"hide"]()})}else{this.animate(a2("toggle",3),bw,bv,bx)}}return this},fadeTo:function(e,bx,bw,bv){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:bx},e,bw,bv)},animate:function(bz,bw,by,bx){var e=b.speed(bw,by,bx);if(b.isEmptyObject(bz)){return this.each(e.complete,[false])}bz=b.extend({},bz);function bv(){if(e.queue===false){b._mark(this)}var bE=b.extend({},e),bL=this.nodeType===1,bJ=bL&&b(this).is(":hidden"),bB,bG,bD,bK,bN,bF,bI,bC,bH,bM,bA;bE.animatedProperties={};for(bD in bz){bB=b.camelCase(bD);if(bD!==bB){bz[bB]=bz[bD];delete bz[bD]}if((bN=b.cssHooks[bB])&&"expand" in bN){bF=bN.expand(bz[bB]);delete bz[bB];for(bD in bF){if(!(bD in bz)){bz[bD]=bF[bD]}}}}for(bB in bz){bG=bz[bB];if(b.isArray(bG)){bE.animatedProperties[bB]=bG[1];bG=bz[bB]=bG[0]}else{bE.animatedProperties[bB]=bE.specialEasing&&bE.specialEasing[bB]||bE.easing||"swing"}if(bG==="hide"&&bJ||bG==="show"&&!bJ){return bE.complete.call(this)}if(bL&&(bB==="height"||bB==="width")){bE.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(b.css(this,"display")==="inline"&&b.css(this,"float")==="none"){if(!b.support.inlineBlockNeedsLayout||w(this.nodeName)==="inline"){this.style.display="inline-block"}else{this.style.zoom=1}}}}if(bE.overflow!=null){this.style.overflow="hidden"}for(bD in bz){bK=new b.fx(this,bE,bD);bG=bz[bD];if(aB.test(bG)){bA=b._data(this,"toggle"+bD)||(bG==="toggle"?bJ?"show":"hide":0);if(bA){b._data(this,"toggle"+bD,bA==="show"?"hide":"show");bK[bA]()}else{bK[bG]()}}else{bI=aU.exec(bG);bC=bK.cur();if(bI){bH=parseFloat(bI[2]);bM=bI[3]||(b.cssNumber[bD]?"":"px");if(bM!=="px"){b.style(this,bD,(bH||1)+bM);bC=((bH||1)/bK.cur())*bC;b.style(this,bD,bC+bM)}if(bI[1]){bH=((bI[1]==="-="?-1:1)*bH)+bC}bK.custom(bC,bH,bM)}else{bK.custom(bC,bG,"")}}}return true}return e.queue===false?this.each(bv):this.queue(e.queue,bv)},stop:function(bw,bv,e){if(typeof bw!=="string"){e=bv;bv=bw;bw=L}if(bv&&bw!==false){this.queue(bw||"fx",[])}return this.each(function(){var bx,by=false,bA=b.timers,bz=b._data(this);if(!e){b._unmark(true,this)}function bB(bE,bF,bD){var bC=bF[bD];b.removeData(bE,bD,true);bC.stop(e)}if(bw==null){for(bx in bz){if(bz[bx]&&bz[bx].stop&&bx.indexOf(".run")===bx.length-4){bB(this,bz,bx)}}}else{if(bz[bx=bw+".run"]&&bz[bx].stop){bB(this,bz,bx)}}for(bx=bA.length;bx--;){if(bA[bx].elem===this&&(bw==null||bA[bx].queue===bw)){if(e){bA[bx](true)}else{bA[bx].saveState()}by=true;bA.splice(bx,1)}}if(!(e&&by)){b.dequeue(this,bw)}})}});function bi(){setTimeout(at,0);return(a5=b.now())}function at(){a5=L}function a2(bv,e){var bw={};b.each(aI.concat.apply([],aI.slice(0,e)),function(){bw[this]=bv});return bw}b.each({slideDown:a2("show",1),slideUp:a2("hide",1),slideToggle:a2("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,bv){b.fn[e]=function(bw,by,bx){return this.animate(bv,bw,by,bx)}});b.extend({speed:function(bw,bx,bv){var e=bw&&typeof bw==="object"?b.extend({},bw):{complete:bv||!bv&&bx||b.isFunction(bw)&&bw,duration:bw,easing:bv&&bx||bx&&!b.isFunction(bx)&&bx};e.duration=b.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in b.fx.speeds?b.fx.speeds[e.duration]:b.fx.speeds._default;if(e.queue==null||e.queue===true){e.queue="fx"}e.old=e.complete;e.complete=function(by){if(b.isFunction(e.old)){e.old.call(this)}if(e.queue){b.dequeue(this,e.queue)}else{if(by!==false){b._unmark(this)}}};return e},easing:{linear:function(e){return e},swing:function(e){return(-Math.cos(e*Math.PI)/2)+0.5}},timers:[],fx:function(bv,e,bw){this.options=e;this.elem=bv;this.prop=bw;e.orig=e.orig||{}}});b.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(b.fx.step[this.prop]||b.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var e,bv=b.css(this.elem,this.prop);return isNaN(e=parseFloat(bv))?!bv||bv==="auto"?0:bv:e},custom:function(bz,by,bx){var e=this,bw=b.fx;this.startTime=a5||bi();this.end=by;this.now=this.start=bz;this.pos=this.state=0;this.unit=bx||this.unit||(b.cssNumber[this.prop]?"":"px");function bv(bA){return e.step(bA)}bv.queue=this.options.queue;bv.elem=this.elem;bv.saveState=function(){if(b._data(e.elem,"fxshow"+e.prop)===L){if(e.options.hide){b._data(e.elem,"fxshow"+e.prop,e.start)}else{if(e.options.show){b._data(e.elem,"fxshow"+e.prop,e.end)}}}};if(bv()&&b.timers.push(bv)&&!a4){a4=setInterval(bw.tick,bw.interval)}},show:function(){var e=b._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=e||b.style(this.elem,this.prop);this.options.show=true;if(e!==L){this.custom(this.cur(),e)}else{this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur())}b(this.elem).show()},hide:function(){this.options.orig[this.prop]=b._data(this.elem,"fxshow"+this.prop)||b.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(by){var bA,bB,bv,bx=a5||bi(),e=true,bz=this.elem,bw=this.options;if(by||bx>=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e<bv.length;e++){bw=bv[e];if(!bw()&&bv[e]===bw){bv.splice(e--,1)}}if(!bv.length){b.fx.stop()}},interval:13,stop:function(){clearInterval(a4);a4=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(e){b.style(e.elem,"opacity",e.now)},_default:function(e){if(e.elem.style&&e.elem.style[e.prop]!=null){e.elem.style[e.prop]=e.now+e.unit}else{e.elem[e.prop]=e.now}}}});b.each(aI.concat.apply([],aI),function(e,bv){if(bv.indexOf("margin")){b.fx.step[bv]=function(bw){b.style(bw.elem,bv,Math.max(0,bw.now)+bw.unit)}}});if(b.expr&&b.expr.filters){b.expr.filters.animated=function(e){return b.grep(b.timers,function(bv){return e===bv.elem}).length}}function w(bx){if(!Q[bx]){var e=av.body,bv=b("<"+bx+">").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!ba){ba=av.createElement("iframe");ba.frameBorder=ba.width=ba.height=0}e.appendChild(ba);if(!m||!ba.createElement){m=(ba.contentWindow||ba.contentDocument).document;m.write((b.support.boxModel?"<!doctype html>":"")+"<html><body>");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(ba)}Q[bx]=bw}return Q[bx]}var a8,V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){a8=function(by,bH,bw,bB){try{bB=by.getBoundingClientRect()}catch(bF){}if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aL(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{a8=function(bz,bE,bx){var bC,bw=bz.offsetParent,bv=bz,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.fn.offset=function(e){if(arguments.length){return e===L?this:this.each(function(bx){b.offset.setOffset(this,e,bx)})}var bv=this[0],bw=bv&&bv.ownerDocument;if(!bw){return null}if(bv===bw.body){return b.offset.bodyOffset(bv)}return a8(bv,bw,bw.documentElement)};b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(bw,bv){var e=/Y/.test(bv);b.fn[bw]=function(bx){return b.access(this,function(by,bB,bA){var bz=aL(by);if(bA===L){return bz?(bv in bz)?bz[bv]:b.support.boxModel&&bz.document.documentElement[bB]||bz.document.body[bB]:by[bB]}if(bz){bz.scrollTo(!e?bA:b(bz).scrollLeft(),e?bA:b(bz).scrollTop())}else{by[bB]=bA}},bw,bx,arguments.length,null)}});function aL(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each({Height:"height",Width:"width"},function(bw,bx){var bv="client"+bw,e="scroll"+bw,by="offset"+bw;b.fn["inner"+bw]=function(){var bz=this[0];return bz?bz.style?parseFloat(b.css(bz,bx,"padding")):this[bx]():null};b.fn["outer"+bw]=function(bA){var bz=this[0];return bz?bz.style?parseFloat(b.css(bz,bx,bA?"margin":"border")):this[bx]():null};b.fn[bx]=function(bz){return b.access(this,function(bC,bB,bD){var bF,bE,bG,bA;if(b.isWindow(bC)){bF=bC.document;bE=bF.documentElement[bv];return b.support.boxModel&&bE||bF.body&&bF.body[bv]||bE}if(bC.nodeType===9){bF=bC.documentElement;if(bF[bv]>=bF[e]){return bF[bv]}return Math.max(bC.body[e],bF[e],bC.body[by],bF[by])}if(bD===L){bG=b.css(bC,bB);bA=parseFloat(bG);return b.isNumeric(bA)?bA:bG}b(bC).css(bB,bD)},bx,bz,arguments.length,null)}});bd.jQuery=bd.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b})}})(window);/*!
+(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e<bR.length;e++){if(bR[e]===bR[e-1]){bR.splice(e--,1)}}}}return bR};by.matches=function(e,bR){return by(e,null,null,bR)};by.matchesSelector=function(e,bR){return by(bR,null,null,[e]).length>0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS<bU;bS++){bV=bE.order[bS];if((bT=bE.leftMatch[bV].exec(bX))){bR=bT[1];bT.splice(1,1);if(bR.substr(bR.length-1)!=="\\"){bT[1]=(bT[1]||"").replace(bK,"");bW=bE.find[bV](bT,e,bY);if(bW!=null){bX=bX.replace(bE.match[bV],"");break}}}}if(!bW){bW=typeof e.getElementsByTagName!=="undefined"?e.getElementsByTagName("*"):[]}return{set:bW,expr:bX}};by.filter=function(b1,b0,b4,bU){var bW,e,bZ,b6,b3,bR,bT,bV,b2,bS=b1,b5=[],bY=b0,bX=b0&&b0[0]&&by.isXML(b0[0]);while(b1&&b0.length){for(bZ in bE.filter){if((bW=bE.leftMatch[bZ].exec(b1))!=null&&bW[2]){bR=bE.filter[bZ];bT=bW[1];e=false;bW.splice(1,1);if(bT.substr(bT.length-1)==="\\"){continue}if(bY===b5){b5=[]}if(bE.preFilter[bZ]){bW=bE.preFilter[bZ](bW,bY,b4,b5,bU,bX);if(!bW){e=b6=true}else{if(bW===true){continue}}}if(bW){for(bV=0;(b3=bY[bV])!=null;bV++){if(b3){b6=bR(b3,bW,bV,bY);b2=bU^b6;if(b4&&b6!=null){if(b2){e=true}else{bY[bV]=false}}else{if(b2){b5.push(b3);e=true}}}}}if(b6!==L){if(!b4){bY=b5}b1=b1.replace(bE.match[bZ],"");if(!e){return[]}break}}}if(b1===bS){if(e==null){by.error(b1)}else{break}}bS=b1}return bY};by.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)};var bw=by.getText=function(bU){var bS,bT,e=bU.nodeType,bR="";if(e){if(e===1||e===9){if(typeof bU.textContent==="string"){return bU.textContent}else{if(typeof bU.innerText==="string"){return bU.innerText.replace(bO,"")}else{for(bU=bU.firstChild;bU;bU=bU.nextSibling){bR+=bw(bU)}}}}else{if(e===3||e===4){return bU.nodeValue}}}else{for(bS=0;(bT=bU[bS]);bS++){if(bT.nodeType!==8){bR+=bw(bT)}}}return bR};var bE=by.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(e){return e.getAttribute("href")},type:function(e){return e.getAttribute("type")}},relative:{"+":function(bW,bR){var bT=typeof bR==="string",bV=bT&&!bQ.test(bR),bX=bT&&!bV;if(bV){bR=bR.toLowerCase()}for(var bS=0,e=bW.length,bU;bS<e;bS++){if((bU=bW[bS])){while((bU=bU.previousSibling)&&bU.nodeType!==1){}bW[bS]=bX||bU&&bU.nodeName.toLowerCase()===bR?bU||false:bU===bR}}if(bX){by.filter(bR,bW,true)}},">":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS<e;bS++){bV=bW[bS];if(bV){var bT=bV.parentNode;bW[bS]=bT.nodeName.toLowerCase()===bR?bT:false}}}else{for(;bS<e;bS++){bV=bW[bS];if(bV){bW[bS]=bU?bV.parentNode:bV.parentNode===bR}}if(bU){by.filter(bR,bW,true)}}},"":function(bT,bR,bV){var bU,bS=bI++,e=bN;if(typeof bR==="string"&&!bQ.test(bR)){bR=bR.toLowerCase();bU=bR;e=bv}e("parentNode",bR,bS,bT,bU,bV)},"~":function(bT,bR,bV){var bU,bS=bI++,e=bN;if(typeof bR==="string"&&!bQ.test(bR)){bR=bR.toLowerCase();bU=bR;e=bv}e("previousSibling",bR,bS,bT,bU,bV)}},find:{ID:function(bR,bS,bT){if(typeof bS.getElementById!=="undefined"&&!bT){var e=bS.getElementById(bR[1]);return e&&e.parentNode?[e]:[]}},NAME:function(bS,bV){if(typeof bV.getElementsByName!=="undefined"){var bR=[],bU=bV.getElementsByName(bS[1]);for(var bT=0,e=bU.length;bT<e;bT++){if(bU[bT].getAttribute("name")===bS[1]){bR.push(bU[bT])}}return bR.length===0?null:bR}},TAG:function(e,bR){if(typeof bR.getElementsByTagName!=="undefined"){return bR.getElementsByTagName(e[1])}}},preFilter:{CLASS:function(bT,bR,bS,e,bW,bX){bT=" "+bT[1].replace(bK,"")+" ";if(bX){return bT}for(var bU=0,bV;(bV=bR[bU])!=null;bU++){if(bV){if(bW^(bV.className&&(" "+bV.className+" ").replace(/[\t\n\r]/g," ").indexOf(bT)>=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1},lt:function(bS,bR,e){return bR<e[3]-0},gt:function(bS,bR,e){return bR>e[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV<bU;bV++){if(bT[bV]===bS){return false}}return true}else{by.error(e)}}}},CHILD:function(bS,bU){var bT,b0,bW,bZ,e,bV,bY,bX=bU[1],bR=bS;switch(bX){case"only":case"first":while((bR=bR.previousSibling)){if(bR.nodeType===1){return false}}if(bX==="first"){return true}bR=bS;case"last":while((bR=bR.nextSibling)){if(bR.nodeType===1){return false}}return true;case"nth":bT=bU[2];b0=bU[3];if(bT===1&&b0===0){return true}bW=bU[0];bZ=bS.parentNode;if(bZ&&(bZ[bC]!==bW||!bS.nodeIndex)){bV=0;for(bR=bZ.firstChild;bR;bR=bR.nextSibling){if(bR.nodeType===1){bR.nodeIndex=++bV}}bZ[bC]=bW}bY=bS.nodeIndex-b0;if(bT===0){return bY===0}else{return(bY%bT===0&&bY/bT>=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS<e;bS++){bR.push(bU[bS])}}else{for(;bU[bS];bS++){bR.push(bU[bS])}}}return bR}}var bJ,bG;if(av.documentElement.compareDocumentPosition){bJ=function(bR,e){if(bR===e){bB=true;return 0}if(!bR.compareDocumentPosition||!e.compareDocumentPosition){return bR.compareDocumentPosition?-1:1}return bR.compareDocumentPosition(e)&4?-1:1}}else{bJ=function(bY,bX){if(bY===bX){bB=true;return 0}else{if(bY.sourceIndex&&bX.sourceIndex){return bY.sourceIndex-bX.sourceIndex}}var bV,bR,bS=[],e=[],bU=bY.parentNode,bW=bX.parentNode,bZ=bU;if(bU===bW){return bG(bY,bX)}else{if(!bU){return -1}else{if(!bW){return 1}}}while(bZ){bS.unshift(bZ);bZ=bZ.parentNode}bZ=bW;while(bZ){e.unshift(bZ);bZ=bZ.parentNode}bV=bS.length;bR=e.length;for(var bT=0;bT<bV&&bT<bR;bT++){if(bS[bT]!==e[bT]){return bG(bS[bT],e[bT])}}return bT===bV?bG(bY,e[bT],-1):bG(bS[bT],bX,1)};bG=function(bR,e,bS){if(bR===e){return bS}var bT=bR.nextSibling;while(bT){if(bT===e){return -1}bT=bT.nextSibling}return 1}}(function(){var bR=av.createElement("div"),bS="script"+(new Date()).getTime(),e=av.documentElement;bR.innerHTML="<a name='"+bS+"'/>";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="<a href='#'></a>";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="<p class='TEST'></p>";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="<div class='test e'></div><div class='test'></div>";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT<bS;bT++){var e=bZ[bT];if(e){var bU=false;e=e[bR];while(e){if(e[bC]===bV){bU=bZ[e.sizset];break}if(e.nodeType===1&&!bY){e[bC]=bV;e.sizset=bT}if(e.nodeName.toLowerCase()===bW){bU=e;break}e=e[bR]}bZ[bT]=bU}}}function bN(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT<bS;bT++){var e=bZ[bT];if(e){var bU=false;e=e[bR];while(e){if(e[bC]===bV){bU=bZ[e.sizset];break}if(e.nodeType===1){if(!bY){e[bC]=bV;e.sizset=bT}if(typeof bW!=="string"){if(e===bW){bU=true;break}}else{if(by.filter(bW,[e]).length>0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT<bR;bT++){by(bS,bY[bT],bX,bW)}return by.filter(bU,bX)};by.attr=b.attr;by.selectors.attrMap={};b.find=by;b.expr=by.selectors;b.expr[":"]=b.expr.filters;b.unique=by.uniqueSort;b.text=by.getText;b.isXMLDoc=by.isXML;b.contains=by.contains})();var ab=/Until$/,aq=/^(?:parents|prevUntil|prevAll)/,a9=/,/,bp=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,H=b.expr.match.POS,ay={children:true,contents:true,next:true,prev:true};b.fn.extend({find:function(e){var bw=this,by,bv;if(typeof e!=="string"){return b(e).filter(function(){for(by=0,bv=bw.length;by<bv;by++){if(b.contains(bw[by],this)){return true}}})}var bx=this.pushStack("","find",e),bA,bB,bz;for(by=0,bv=this.length;by<bv;by++){bA=bx.length;b.find(e,this[by],bx);if(by>0){for(bB=bA;bB<bx.length;bB++){for(bz=0;bz<bA;bz++){if(bx[bz]===bx[bB]){bx.splice(bB--,1);break}}}}}return bx},has:function(bv){var e=b(bv);return this.filter(function(){for(var bx=0,bw=e.length;bx<bw;bx++){if(b.contains(this,e[bx])){return true}}})},not:function(e){return this.pushStack(aG(this,e,false),"not",e)},filter:function(e){return this.pushStack(aG(this,e,true),"filter",e)},is:function(e){return !!e&&(typeof e==="string"?H.test(e)?b(e,this.context).index(this[0])>=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw<by.length;bw++){if(b(bz).is(by[bw])){bv.push({selector:by[bw],elem:bz,level:bB})}}bz=bz.parentNode;bB++}return bv}var bA=H.test(by)||typeof by!=="string"?b(by,bx||this.context):0;for(bw=0,e=this.length;bw<e;bw++){bz=this[bw];while(bz){if(bA?bA.index(bz)>-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/<tbody/i,W=/<|&#?\w+;/,ae=/<(?:script|style)/i,O=/<(?:script|object|embed|option|style)/i,ah=new RegExp("<(?:"+aR+")","i"),o=/checked\s*(?:[^=]|=\s*.checked.)/i,bm=/\/(java|ecma)script/i,aN=/^\s*<!(?:\[CDATA\[|\-\-)/,ax={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},ac=a(av);ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div<div>","</div>"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1></$2>");try{for(var bw=0,bv=this.length;bw<bv;bw++){if(this[bw].nodeType===1){b.cleanData(this[bw].getElementsByTagName("*"));this[bw].innerHTML=bx}}}catch(by){this.empty().append(bx)}}else{if(b.isFunction(bx)){this.each(function(bz){var e=b(this);e.html(bx.call(this,bz,e.html()))})}else{this.empty().append(bx)}}}return this},replaceWith:function(e){if(this[0]&&this[0].parentNode){if(b.isFunction(e)){return this.each(function(bx){var bw=b(this),bv=bw.html();bw.replaceWith(e.call(this,bx,bv))})}if(typeof e!=="string"){e=b(e).detach()}return this.each(function(){var bw=this.nextSibling,bv=this.parentNode;b(this).remove();if(bw){b(bw).before(e)}else{b(bv).append(e)}})}else{return this.length?this.pushStack(b(b.isFunction(e)?e():e),"replaceWith",e):this}},detach:function(e){return this.remove(e,true)},domManip:function(bB,bF,bE){var bx,by,bA,bD,bC=bB[0],bv=[];if(!b.support.checkClone&&arguments.length===3&&typeof bC==="string"&&o.test(bC)){return this.each(function(){b(this).domManip(bB,bF,bE,true)})}if(b.isFunction(bC)){return this.each(function(bH){var bG=b(this);bB[0]=bC.call(this,bH,bF?bG.html():L);bG.domManip(bB,bF,bE)})}if(this[0]){bD=bC&&bC.parentNode;if(b.support.parentNode&&bD&&bD.nodeType===11&&bD.childNodes.length===this.length){bx={fragment:bD}}else{bx=b.buildFragment(bB,this,bv)}bA=bx.fragment;if(bA.childNodes.length===1){by=bA=bA.firstChild}else{by=bA.firstChild}if(by){bF=bF&&b.nodeName(by,"tr");for(var bw=0,e=this.length,bz=e-1;bw<e;bw++){bE.call(bF?ba(this[bw],by):this[bw],bx.cacheable||(e>1&&bw<bz)?b.clone(bA,true,true):bA)}}if(bv.length){b.each(bv,bo)}}return this}});function ba(e,bv){return b.nodeName(e,"table")?(e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody"))):e}function t(bB,bv){if(bv.nodeType!==1||!b.hasData(bB)){return}var by,bx,e,bA=b._data(bB),bz=b._data(bv,bA),bw=bA.events;if(bw){delete bz.handle;bz.events={};for(by in bw){for(bx=0,e=bw[by].length;bx<e;bx++){b.event.add(bv,by+(bw[by][bx].namespace?".":"")+bw[by][bx].namespace,bw[by][bx],bw[by][bx].data)}}}if(bz.data){bz.data=b.extend({},bz.data)}}function ai(bv,e){var bw;if(e.nodeType!==1){return}if(e.clearAttributes){e.clearAttributes()}if(e.mergeAttributes){e.mergeAttributes(bv)}bw=e.nodeName.toLowerCase();if(bw==="object"){e.outerHTML=bv.outerHTML}else{if(bw==="input"&&(bv.type==="checkbox"||bv.type==="radio")){if(bv.checked){e.defaultChecked=e.checked=bv.checked}if(e.value!==bv.value){e.value=bv.value}}else{if(bw==="option"){e.selected=bv.defaultSelected}else{if(bw==="input"||bw==="textarea"){e.defaultValue=bv.defaultValue}}}}e.removeAttribute(b.expando)}b.buildFragment=function(bz,bx,bv){var by,e,bw,bA,bB=bz[0];if(bx&&bx[0]){bA=bx[0].ownerDocument||bx[0]}if(!bA.createDocumentFragment){bA=av}if(bz.length===1&&typeof bB==="string"&&bB.length<512&&bA===av&&bB.charAt(0)==="<"&&!O.test(bB)&&(b.support.checkClone||!o.test(bB))&&(b.support.html5Clone||!ah.test(bB))){e=true;bw=b.fragments[bB];if(bw&&bw!==1){by=bw}}if(!by){by=bA.createDocumentFragment();b.clean(bz,bA,by,bv)}if(e){b.fragments[bB]=bw?by:1}return{fragment:by,cacheable:e}};b.fragments={};b.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,bv){b.fn[e]=function(bw){var bz=[],bC=b(bw),bB=this.length===1&&this[0].parentNode;if(bB&&bB.nodeType===11&&bB.childNodes.length===1&&bC.length===1){bC[bv](this[0]);return this}else{for(var bA=0,bx=bC.length;bA<bx;bA++){var by=(bA>0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1></$2>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]==="<table>"&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB<bG;bB++){E(bz[bB])}}else{E(bz)}}if(bz.nodeType){bI.push(bz)}else{bI=b.merge(bI,bz)}}if(bH){bF=function(bL){return !bL.type||bm.test(bL.type)};for(bE=0;bI[bE];bE++){if(bA&&b.nodeName(bI[bE],"script")&&(!bI[bE].type||bI[bE].type.toLowerCase()==="text/javascript")){bA.push(bI[bE].parentNode?bI[bE].parentNode.removeChild(bI[bE]):bI[bE])}else{if(bI[bE].nodeType===1){var bJ=b.grep(bI[bE].getElementsByTagName("script"),bF);bI.splice.apply(bI,[bE+1,0].concat(bJ))}bH.appendChild(bI[bE])}}}return bI},cleanData:function(bv){var by,bw,e=b.cache,bB=b.event.special,bA=b.support.deleteExpando;for(var bz=0,bx;(bx=bv[bz])!=null;bz++){if(bx.nodeName&&b.noData[bx.nodeName.toLowerCase()]){continue}bw=bx[b.expando];if(bw){by=e[bw];if(by&&by.events){for(var bC in by.events){if(bB[bC]){b.event.remove(bx,bC)}else{b.removeEvent(bx,bC,by.handle)}}if(by.handle){by.handle.elem=null}}if(bA){delete bx[b.expando]}else{if(bx.removeAttribute){bx.removeAttribute(b.expando)}}delete e[bw]}}}});function bo(e,bv){if(bv.src){b.ajax({url:bv.src,async:false,dataType:"script"})}else{b.globalEval((bv.text||bv.textContent||bv.innerHTML||"").replace(aN,"/*$0*/"))}if(bv.parentNode){bv.parentNode.removeChild(bv)}}var ak=/alpha\([^)]*\)/i,au=/opacity=([^)]*)/,z=/([A-Z]|^ms)/g,bc=/^-?\d+(?:px)?$/i,bn=/^-?\d/,I=/^([\-+])=([\-+.\de]+)/,a7={position:"absolute",visibility:"hidden",display:"block"},an=["Left","Right"],a1=["Top","Bottom"],Z,aI,aX;b.fn.css=function(e,bv){if(arguments.length===2&&bv===L){return this}return b.access(this,e,bv,true,function(bx,bw,by){return by!==L?b.style(bx,bw,by):b.css(bx,bw)})};b.extend({cssHooks:{opacity:{get:function(bw,bv){if(bv){var e=Z(bw,"opacity","opacity");return e===""?"1":e}else{return bw.style.opacity}}}},cssNumber:{fillOpacity:true,fontWeight:true,lineHeight:true,opacity:true,orphans:true,widows:true,zIndex:true,zoom:true},cssProps:{"float":b.support.cssFloat?"cssFloat":"styleFloat"},style:function(bx,bw,bD,by){if(!bx||bx.nodeType===3||bx.nodeType===8||!bx.style){return}var bB,bC,bz=b.camelCase(bw),bv=bx.style,bE=b.cssHooks[bz];bw=b.cssProps[bz]||bz;if(bD!==L){bC=typeof bD;if(bC==="string"&&(bB=I.exec(bD))){bD=(+(bB[1]+1)*+bB[2])+parseFloat(b.css(bx,bw));bC="number"}if(bD==null||bC==="number"&&isNaN(bD)){return}if(bC==="number"&&!b.cssNumber[bz]){bD+="px"}if(!bE||!("set" in bE)||(bD=bE.set(bx,bD))!==L){try{bv[bw]=bD}catch(bA){}}}else{if(bE&&"get" in bE&&(bB=bE.get(bx,false,by))!==L){return bB}return bv[bw]}},css:function(by,bx,bv){var bw,e;bx=b.camelCase(bx);e=b.cssHooks[bx];bx=b.cssProps[bx]||bx;if(bx==="cssFloat"){bx="float"}if(e&&"get" in e&&(bw=e.get(by,true,bv))!==L){return bw}else{if(Z){return Z(by,bx)}}},swap:function(bx,bw,by){var e={};for(var bv in bw){e[bv]=bx.style[bv];bx.style[bv]=bw[bv]}by.call(bx);for(bv in bw){bx.style[bv]=e[bv]}}});b.curCSS=b.css;b.each(["height","width"],function(bv,e){b.cssHooks[e]={get:function(by,bx,bw){var bz;if(bx){if(by.offsetWidth!==0){return p(by,e,bw)}else{b.swap(by,a7,function(){bz=p(by,e,bw)})}return bz}},set:function(bw,bx){if(bc.test(bx)){bx=parseFloat(bx);if(bx>=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length;if(bA>0){if(bv!=="border"){for(;bx<e;bx++){if(!bv){bA-=parseFloat(b.css(by,"padding"+bz[bx]))||0}if(bv==="margin"){bA+=parseFloat(b.css(by,bv+bz[bx]))||0}else{bA-=parseFloat(b.css(by,"border"+bz[bx]+"Width"))||0}}}return bA+"px"}bA=Z(by,bw,bw);if(bA<0||bA==null){bA=by.style[bw]||0}bA=parseFloat(bA)||0;if(bv){for(;bx<e;bx++){bA+=parseFloat(b.css(by,"padding"+bz[bx]))||0;if(bv!=="padding"){bA+=parseFloat(b.css(by,"border"+bz[bx]+"Width"))||0}if(bv==="margin"){bA+=parseFloat(b.css(by,bv+bz[bx]))||0}}}return bA+"px"}if(b.expr&&b.expr.filters){b.expr.filters.hidden=function(bw){var bv=bw.offsetWidth,e=bw.offsetHeight;return(bv===0&&e===0)||(!b.support.reliableHiddenOffsets&&((bw.style&&bw.style.display)||b.css(bw,"display"))==="none")};b.expr.filters.visible=function(e){return !b.expr.filters.hidden(e)}}var k=/%20/g,ap=/\[\]$/,bs=/\r?\n/g,bq=/#.*$/,aD=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,aZ=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,aM=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,aQ=/^(?:GET|HEAD)$/,c=/^\/\//,M=/\?/,a6=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw<bz;bw++){bv=bx[bw];bC=/^\+/.test(bv);if(bC){bv=bv.substr(1)||"*"}bB=e[bv]=e[bv]||[];bB[bC?"unshift":"push"](bA)}}}}function aW(bv,bE,bz,bD,bB,bx){bB=bB||bE.dataTypes[0];bx=bx||{};bx[bB]=true;var bA=bv[bB],bw=0,e=bA?bA.length:0,by=(bv===aa),bC;for(;bw<e&&(by||!bC);bw++){bC=bA[bw](bE,bz,bD);if(typeof bC==="string"){if(!by||bx[bC]){bC=L}else{bE.dataTypes.unshift(bC);bC=aW(bv,bE,bz,bD,bC,bx)}}}if((by||!bC)&&!bx["*"]){bC=aW(bv,bE,bz,bD,"*",bx)}return bC}function am(bw,bx){var bv,e,by=b.ajaxSettings.flatOptions||{};for(bv in bx){if(bx[bv]!==L){(by[bv]?bw:(e||(e={})))[bv]=bx[bv]}}if(e){b.extend(true,bw,e)}}b.fn.extend({load:function(bw,bz,bA){if(typeof bw!=="string"&&A){return A.apply(this,arguments)}else{if(!this.length){return this}}var by=bw.indexOf(" ");if(by>=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("<div>").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA<bw;bA++){if(bA===1){for(bE in bH.converters){if(typeof bE==="string"){bG[bE.toLowerCase()]=bH.converters[bE]}}}bx=bC;bC=bD[bA];if(bC==="*"){bC=bx}else{if(bx!=="*"&&bx!==bC){by=bx+" "+bC;bF=bG[by]||bG["* "+bC];if(!bF){e=L;for(bv in bG){bB=bv.split(" ");if(bB[0]===bx||bB[0]==="*"){e=bG[bB[1]+" "+bC];if(e){bv=bG[bv];if(bv===true){bF=e}else{if(e===true){bF=bv}}break}}}}if(!(bF||e)){b.error("No conversion from "+by.replace(" "," to "))}if(bF!==true){bz=bF?bF(bz):e(bv(bz))}}}}return bz}var aC=b.now(),u=/(\=)\?(&|$)|\?\?/i;b.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return b.expando+"_"+(aC++)}});b.ajaxPrefilter("json jsonp",function(bD,bA,bC){var bx=bD.contentType==="application/x-www-form-urlencoded"&&(typeof bD.data==="string");if(bD.dataTypes[0]==="jsonp"||bD.jsonp!==false&&(u.test(bD.url)||bx&&u.test(bD.data))){var bB,bw=bD.jsonpCallback=b.isFunction(bD.jsonpCallback)?bD.jsonpCallback():bD.jsonpCallback,bz=bb[bw],e=bD.url,by=bD.data,bv="$1"+bw+"$2";if(bD.jsonp!==false){e=e.replace(u,bv);if(bD.url===e){if(bx){by=by.replace(u,bv)}if(bD.data===by){e+=(/\?/.test(e)?"&":"?")+bD.jsonp+"="+bw}}}bD.url=e;bD.data=by;bb[bw]=function(bE){bB=[bE]};bC.always(function(){bb[bw]=bz;if(bB&&b.isFunction(bz)){bb[bw](bB[0])}});bD.converters["script json"]=function(){if(!bB){b.error(bw+" was not called")}return bB[0]};bD.dataTypes[0]="json";return"script"}});b.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){b.globalEval(e);return e}}});b.ajaxPrefilter("script",function(e){if(e.cache===L){e.cache=false}if(e.crossDomain){e.type="GET";e.global=false}});b.ajaxTransport("script",function(bw){if(bw.crossDomain){var e,bv=av.head||av.getElementsByTagName("head")[0]||av.documentElement;return{send:function(bx,by){e=av.createElement("script");e.async="async";if(bw.scriptCharset){e.charset=bw.scriptCharset}e.src=bw.url;e.onload=e.onreadystatechange=function(bA,bz){if(bz||!e.readyState||/loaded|complete/.test(e.readyState)){e.onload=e.onreadystatechange=null;if(bv&&e.parentNode){bv.removeChild(e)}e=L;if(!bz){by(200,"success")}}};bv.insertBefore(e,bv.firstChild)},abort:function(){if(e){e.onload(0,1)}}}}});var B=bb.ActiveXObject?function(){for(var e in N){N[e](0,1)}}:false,y=0,N;function aL(){try{return new bb.XMLHttpRequest()}catch(bv){}}function aj(){try{return new bb.ActiveXObject("Microsoft.XMLHTTP")}catch(bv){}}b.ajaxSettings.xhr=bb.ActiveXObject?function(){return !this.isLocal&&aL()||aj()}:aL;(function(e){b.extend(b.support,{ajax:!!e,cors:!!e&&("withCredentials" in e)})})(b.ajaxSettings.xhr());if(b.support.ajax){b.ajaxTransport(function(e){if(!e.crossDomain||b.support.cors){var bv;return{send:function(bB,bw){var bA=e.xhr(),bz,by;if(e.username){bA.open(e.type,e.url,e.async,e.username,e.password)}else{bA.open(e.type,e.url,e.async)}if(e.xhrFields){for(by in e.xhrFields){bA[by]=e.xhrFields[by]}}if(e.mimeType&&bA.overrideMimeType){bA.overrideMimeType(e.mimeType)}if(!e.crossDomain&&!bB["X-Requested-With"]){bB["X-Requested-With"]="XMLHttpRequest"}try{for(by in bB){bA.setRequestHeader(by,bB[by])}}catch(bx){}bA.send((e.hasContent&&e.data)||null);bv=function(bK,bE){var bF,bD,bC,bI,bH;try{if(bv&&(bE||bA.readyState===4)){bv=L;if(bz){bA.onreadystatechange=b.noop;if(B){delete N[bz]}}if(bE){if(bA.readyState!==4){bA.abort()}}else{bF=bA.status;bC=bA.getAllResponseHeaders();bI={};bH=bA.responseXML;if(bH&&bH.documentElement){bI.xml=bH}bI.text=bA.responseText;try{bD=bA.statusText}catch(bJ){bD=""}if(!bF&&e.isLocal&&!e.crossDomain){bF=bI.text?200:404}else{if(bF===1223){bF=204}}}}}catch(bG){if(!bE){bw(-1,bG)}}if(bI){bw(bF,bD,bI,bC)}};if(!e.async||bA.readyState===4){bv()}else{bz=++y;if(B){if(!N){N={};b(bb).unload(B)}N[bz]=bv}bA.onreadystatechange=bv}},abort:function(){if(bv){bv(0,1)}}}}})}var Q={},a8,m,aB=/^(?:toggle|show|hide)$/,aT=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,a3,aH=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],a4;b.fn.extend({show:function(bx,bA,bz){var bw,by;if(bx||bx===0){return this.animate(a0("show",3),bx,bA,bz)}else{for(var bv=0,e=this.length;bv<e;bv++){bw=this[bv];if(bw.style){by=bw.style.display;if(!b._data(bw,"olddisplay")&&by==="none"){by=bw.style.display=""}if(by===""&&b.css(bw,"display")==="none"){b._data(bw,"olddisplay",x(bw.nodeName))}}}for(bv=0;bv<e;bv++){bw=this[bv];if(bw.style){by=bw.style.display;if(by===""||by==="none"){bw.style.display=b._data(bw,"olddisplay")||""}}}return this}},hide:function(bx,bA,bz){if(bx||bx===0){return this.animate(a0("hide",3),bx,bA,bz)}else{var bw,by,bv=0,e=this.length;for(;bv<e;bv++){bw=this[bv];if(bw.style){by=b.css(bw,"display");if(by!=="none"&&!b._data(bw,"olddisplay")){b._data(bw,"olddisplay",by)}}}for(bv=0;bv<e;bv++){if(this[bv].style){this[bv].style.display="none"}}return this}},_toggle:b.fn.toggle,toggle:function(bw,bv,bx){var e=typeof bw==="boolean";if(b.isFunction(bw)&&b.isFunction(bv)){this._toggle.apply(this,arguments)}else{if(bw==null||e){this.each(function(){var by=e?bw:b(this).is(":hidden");b(this)[by?"show":"hide"]()})}else{this.animate(a0("toggle",3),bw,bv,bx)}}return this},fadeTo:function(e,bx,bw,bv){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:bx},e,bw,bv)},animate:function(bz,bw,by,bx){var e=b.speed(bw,by,bx);if(b.isEmptyObject(bz)){return this.each(e.complete,[false])}bz=b.extend({},bz);function bv(){if(e.queue===false){b._mark(this)}var bE=b.extend({},e),bK=this.nodeType===1,bI=bK&&b(this).is(":hidden"),bB,bF,bD,bJ,bH,bC,bG,bL,bA;bE.animatedProperties={};for(bD in bz){bB=b.camelCase(bD);if(bD!==bB){bz[bB]=bz[bD];delete bz[bD]}bF=bz[bB];if(b.isArray(bF)){bE.animatedProperties[bB]=bF[1];bF=bz[bB]=bF[0]}else{bE.animatedProperties[bB]=bE.specialEasing&&bE.specialEasing[bB]||bE.easing||"swing"}if(bF==="hide"&&bI||bF==="show"&&!bI){return bE.complete.call(this)}if(bK&&(bB==="height"||bB==="width")){bE.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(b.css(this,"display")==="inline"&&b.css(this,"float")==="none"){if(!b.support.inlineBlockNeedsLayout||x(this.nodeName)==="inline"){this.style.display="inline-block"}else{this.style.zoom=1}}}}if(bE.overflow!=null){this.style.overflow="hidden"}for(bD in bz){bJ=new b.fx(this,bE,bD);bF=bz[bD];if(aB.test(bF)){bA=b._data(this,"toggle"+bD)||(bF==="toggle"?bI?"show":"hide":0);if(bA){b._data(this,"toggle"+bD,bA==="show"?"hide":"show");bJ[bA]()}else{bJ[bF]()}}else{bH=aT.exec(bF);bC=bJ.cur();if(bH){bG=parseFloat(bH[2]);bL=bH[3]||(b.cssNumber[bD]?"":"px");if(bL!=="px"){b.style(this,bD,(bG||1)+bL);bC=((bG||1)/bJ.cur())*bC;b.style(this,bD,bC+bL)}if(bH[1]){bG=((bH[1]==="-="?-1:1)*bG)+bC}bJ.custom(bC,bG,bL)}else{bJ.custom(bC,bF,"")}}}return true}return e.queue===false?this.each(bv):this.queue(e.queue,bv)},stop:function(bw,bv,e){if(typeof bw!=="string"){e=bv;bv=bw;bw=L}if(bv&&bw!==false){this.queue(bw||"fx",[])}return this.each(function(){var bx,by=false,bA=b.timers,bz=b._data(this);if(!e){b._unmark(true,this)}function bB(bE,bF,bD){var bC=bF[bD];b.removeData(bE,bD,true);bC.stop(e)}if(bw==null){for(bx in bz){if(bz[bx]&&bz[bx].stop&&bx.indexOf(".run")===bx.length-4){bB(this,bz,bx)}}}else{if(bz[bx=bw+".run"]&&bz[bx].stop){bB(this,bz,bx)}}for(bx=bA.length;bx--;){if(bA[bx].elem===this&&(bw==null||bA[bx].queue===bw)){if(e){bA[bx](true)}else{bA[bx].saveState()}by=true;bA.splice(bx,1)}}if(!(e&&by)){b.dequeue(this,bw)}})}});function bh(){setTimeout(at,0);return(a4=b.now())}function at(){a4=L}function a0(bv,e){var bw={};b.each(aH.concat.apply([],aH.slice(0,e)),function(){bw[this]=bv});return bw}b.each({slideDown:a0("show",1),slideUp:a0("hide",1),slideToggle:a0("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,bv){b.fn[e]=function(bw,by,bx){return this.animate(bv,bw,by,bx)}});b.extend({speed:function(bw,bx,bv){var e=bw&&typeof bw==="object"?b.extend({},bw):{complete:bv||!bv&&bx||b.isFunction(bw)&&bw,duration:bw,easing:bv&&bx||bx&&!b.isFunction(bx)&&bx};e.duration=b.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in b.fx.speeds?b.fx.speeds[e.duration]:b.fx.speeds._default;if(e.queue==null||e.queue===true){e.queue="fx"}e.old=e.complete;e.complete=function(by){if(b.isFunction(e.old)){e.old.call(this)}if(e.queue){b.dequeue(this,e.queue)}else{if(by!==false){b._unmark(this)}}};return e},easing:{linear:function(bw,bx,e,bv){return e+bv*bw},swing:function(bw,bx,e,bv){return((-Math.cos(bw*Math.PI)/2)+0.5)*bv+e}},timers:[],fx:function(bv,e,bw){this.options=e;this.elem=bv;this.prop=bw;e.orig=e.orig||{}}});b.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(b.fx.step[this.prop]||b.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var e,bv=b.css(this.elem,this.prop);return isNaN(e=parseFloat(bv))?!bv||bv==="auto"?0:bv:e},custom:function(bz,by,bx){var e=this,bw=b.fx;this.startTime=a4||bh();this.end=by;this.now=this.start=bz;this.pos=this.state=0;this.unit=bx||this.unit||(b.cssNumber[this.prop]?"":"px");function bv(bA){return e.step(bA)}bv.queue=this.options.queue;bv.elem=this.elem;bv.saveState=function(){if(e.options.hide&&b._data(e.elem,"fxshow"+e.prop)===L){b._data(e.elem,"fxshow"+e.prop,e.start)}};if(bv()&&b.timers.push(bv)&&!a3){a3=setInterval(bw.tick,bw.interval)}},show:function(){var e=b._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=e||b.style(this.elem,this.prop);this.options.show=true;if(e!==L){this.custom(this.cur(),e)}else{this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur())}b(this.elem).show()},hide:function(){this.options.orig[this.prop]=b._data(this.elem,"fxshow"+this.prop)||b.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(by){var bA,bB,bv,bx=a4||bh(),e=true,bz=this.elem,bw=this.options;if(by||bx>=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e<bv.length;e++){bw=bv[e];if(!bw()&&bv[e]===bw){bv.splice(e--,1)}}if(!bv.length){b.fx.stop()}},interval:13,stop:function(){clearInterval(a3);a3=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(e){b.style(e.elem,"opacity",e.now)},_default:function(e){if(e.elem.style&&e.elem.style[e.prop]!=null){e.elem.style[e.prop]=e.now+e.unit}else{e.elem[e.prop]=e.now}}}});b.each(["width","height"],function(e,bv){b.fx.step[bv]=function(bw){b.style(bw.elem,bv,Math.max(0,bw.now)+bw.unit)}});if(b.expr&&b.expr.filters){b.expr.filters.animated=function(e){return b.grep(b.timers,function(bv){return e===bv.elem}).length}}function x(bx){if(!Q[bx]){var e=av.body,bv=b("<"+bx+">").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b})}})(window);/*!
  * jQuery UI 1.8.18
  *
  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
@@ -53,7 +81,7 @@
 (function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g<l.length;g++){var j=c.trim(l[g]),e="ui-resizable-"+j;var h=c('<div class="ui-resizable-handle '+e+'"></div>');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(h<e.maxWidth){e.maxWidth=h}if(k<e.maxHeight){e.maxHeight=k}}this._vBoundaries=e},_updateCache:function(e){var f=this.options;this.offset=this.helper.offset();if(a(e.left)){this.position.left=e.left}if(a(e.top)){this.position.top=e.top}if(a(e.height)){this.size.height=e.height}if(a(e.width)){this.size.width=e.width}},_updateRatio:function(h,g){var i=this.options,j=this.position,f=this.size,e=this.axis;if(a(h.height)){h.width=(h.height*this.aspectRatio)}else{if(a(h.width)){h.height=(h.width/this.aspectRatio)}}if(e=="sw"){h.left=j.left+(f.width-h.width);h.top=null}if(e=="nw"){h.top=j.top+(f.height-h.height);h.left=j.left+(f.width-h.width)}return h},_respectSize:function(l,g){var j=this.helper,i=this._vBoundaries,r=this._aspectRatio||g.shiftKey,q=this.axis,t=a(l.width)&&i.maxWidth&&(i.maxWidth<l.width),m=a(l.height)&&i.maxHeight&&(i.maxHeight<l.height),h=a(l.width)&&i.minWidth&&(i.minWidth>l.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f<this._proportionallyResizeElements.length;f++){var h=this._proportionallyResizeElements[f];if(!this.borderDif){var e=[h.css("borderTopWidth"),h.css("borderRightWidth"),h.css("borderBottomWidth"),h.css("borderLeftWidth")],j=[h.css("paddingTop"),h.css("paddingRight"),h.css("paddingBottom"),h.css("paddingLeft")];this.borderDif=c.map(e,function(l,n){var m=parseInt(l,10)||0,o=parseInt(j[n],10)||0;return m+o})}if(c.browser.msie&&!(!(c(g).is(":hidden")||c(g).parents(":hidden").length))){continue}h.css({height:(g.height()-this.borderDif[0]-this.borderDif[2])||0,width:(g.width()-this.borderDif[1]-this.borderDif[3])||0})}},_renderProxy:function(){var f=this.element,i=this.options;this.elementOffset=f.offset();if(this._helper){this.helper=this.helper||c('<div style="overflow:hidden;"></div>');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*!
  * jQuery hashchange event - v1.3 - 7/21/2010
  * http://benalman.com/projects/jquery-hashchange-plugin/
- * 
+ *
  * Copyright (c) 2010 "Cowboy" Ben Alman
  * Dual licensed under the MIT and GPL licenses.
  * http://benalman.com/about/license/
@@ -84,4 +112,4 @@
  *
  * Licensed MIT
  */
-(function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a)}else{if(typeof module==="object"&&typeof module.exports==="object"){module.exports=a(require("jquery"))}else{a(jQuery)}}}(function(a){var b=[],e=!!window.createPopup,f=false,d="ontouchstart" in window,h=false,g=window.requestAnimationFrame||function(l){return setTimeout(l,1000/60)},c=window.cancelAnimationFrame||function(l){clearTimeout(l)};function k(m){var n=".smartmenus_mouse";if(!h&&!m){var o=true,l=null;a(document).bind(i([["mousemove",function(s){var t={x:s.pageX,y:s.pageY,timeStamp:new Date().getTime()};if(l){var q=Math.abs(l.x-t.x),p=Math.abs(l.y-t.y);if((q>0||p>0)&&q<=2&&p<=2&&t.timeStamp-l.timeStamp<=300){f=true;if(o){var r=a(s.target).closest("a");if(r.is("a")){a.each(b,function(){if(a.contains(this.$root[0],r[0])){this.itemEnter({currentTarget:r[0]});return false}})}o=false}}}l=t}],[d?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut",function(p){if(j(p.originalEvent)){f=false}}]],n));h=true}else{if(h&&m){a(document).unbind(n);h=false}}}function j(l){return !/^(4|mouse)$/.test(l.pointerType)}function i(l,n){if(!n){n=""}var m={};a.each(l,function(o,p){m[p[0].split(" ").join(n+" ")+n]=p[1]});return m}a.SmartMenus=function(m,l){this.$root=a(m);this.opts=l;this.rootId="";this.accessIdPrefix="";this.$subArrow=null;this.activatedItems=[];this.visibleSubMenus=[];this.showTimeout=0;this.hideTimeout=0;this.scrollTimeout=0;this.clickActivated=false;this.focusActivated=false;this.zIndexInc=0;this.idInc=0;this.$firstLink=null;this.$firstSub=null;this.disabled=false;this.$disableOverlay=null;this.$touchScrollingSub=null;this.cssTransforms3d="perspective" in m.style||"webkitPerspective" in m.style;this.wasCollapsible=false;this.init()};a.extend(a.SmartMenus,{hideAll:function(){a.each(b,function(){this.menuHideAll()})},destroy:function(){while(b.length){b[0].destroy()}k(true)},prototype:{init:function(n){var l=this;if(!n){b.push(this);this.rootId=(new Date().getTime()+Math.random()+"").replace(/\D/g,"");this.accessIdPrefix="sm-"+this.rootId+"-";if(this.$root.hasClass("sm-rtl")){this.opts.rightToLeftSubMenus=true}var r=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).bind(i([["mouseover focusin",a.proxy(this.rootOver,this)],["mouseout focusout",a.proxy(this.rootOut,this)],["keydown",a.proxy(this.rootKeyDown,this)]],r)).delegate("a",i([["mouseenter",a.proxy(this.itemEnter,this)],["mouseleave",a.proxy(this.itemLeave,this)],["mousedown",a.proxy(this.itemDown,this)],["focus",a.proxy(this.itemFocus,this)],["blur",a.proxy(this.itemBlur,this)],["click",a.proxy(this.itemClick,this)]],r));r+=this.rootId;if(this.opts.hideOnClick){a(document).bind(i([["touchstart",a.proxy(this.docTouchStart,this)],["touchmove",a.proxy(this.docTouchMove,this)],["touchend",a.proxy(this.docTouchEnd,this)],["click",a.proxy(this.docClick,this)]],r))}a(window).bind(i([["resize orientationchange",a.proxy(this.winResize,this)]],r));if(this.opts.subIndicators){this.$subArrow=a("<span/>").addClass("sub-arrow");if(this.opts.subIndicatorsText){this.$subArrow.html(this.opts.subIndicatorsText)}}k()}this.$firstSub=this.$root.find("ul").each(function(){l.menuInit(a(this))}).eq(0);this.$firstLink=this.$root.find("a").eq(0);if(this.opts.markCurrentItem){var p=/(index|default)\.[^#\?\/]*/i,m=/#.*/,q=window.location.href.replace(p,""),o=q.replace(m,"");this.$root.find("a").each(function(){var s=this.href.replace(p,""),t=a(this);if(s==q||s==o){t.addClass("current");if(l.opts.markCurrentTree){t.parentsUntil("[data-smartmenus-id]","ul").each(function(){a(this).dataSM("parent-a").addClass("current")})}}})}this.wasCollapsible=this.isCollapsible()},destroy:function(m){if(!m){var n=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").unbind(n).undelegate(n);n+=this.rootId;a(document).unbind(n);a(window).unbind(n);if(this.opts.subIndicators){this.$subArrow=null}}this.menuHideAll();var l=this;this.$root.find("ul").each(function(){var o=a(this);if(o.dataSM("scroll-arrows")){o.dataSM("scroll-arrows").remove()}if(o.dataSM("shown-before")){if(l.opts.subMenusMinWidth||l.opts.subMenusMaxWidth){o.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap")}if(o.dataSM("scroll-arrows")){o.dataSM("scroll-arrows").remove()}o.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})}if((o.attr("id")||"").indexOf(l.accessIdPrefix)==0){o.removeAttr("id")}}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("ie-shim").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded");this.$root.find("a.has-submenu").each(function(){var o=a(this);if(o.attr("id").indexOf(l.accessIdPrefix)==0){o.removeAttr("id")}}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub");if(this.opts.subIndicators){this.$root.find("span.sub-arrow").remove()}if(this.opts.markCurrentItem){this.$root.find("a.current").removeClass("current")}if(!m){this.$root=null;this.$firstLink=null;this.$firstSub=null;if(this.$disableOverlay){this.$disableOverlay.remove();this.$disableOverlay=null}b.splice(a.inArray(this,b),1)}},disable:function(l){if(!this.disabled){this.menuHideAll();if(!l&&!this.opts.isPopup&&this.$root.is(":visible")){var m=this.$root.offset();this.$disableOverlay=a('<div class="sm-jquery-disable-overlay"/>').css({position:"absolute",top:m.top,left:m.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(true),opacity:0}).appendTo(document.body)}this.disabled=true}},docClick:function(l){if(this.$touchScrollingSub){this.$touchScrollingSub=null;return}if(this.visibleSubMenus.length&&!a.contains(this.$root[0],l.target)||a(l.target).is("a")){this.menuHideAll()}},docTouchEnd:function(m){if(!this.lastTouch){return}if(this.visibleSubMenus.length&&(this.lastTouch.x2===undefined||this.lastTouch.x1==this.lastTouch.x2)&&(this.lastTouch.y2===undefined||this.lastTouch.y1==this.lastTouch.y2)&&(!this.lastTouch.target||!a.contains(this.$root[0],this.lastTouch.target))){if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}var l=this;this.hideTimeout=setTimeout(function(){l.menuHideAll()},350)}this.lastTouch=null},docTouchMove:function(m){if(!this.lastTouch){return}var l=m.originalEvent.touches[0];this.lastTouch.x2=l.pageX;this.lastTouch.y2=l.pageY},docTouchStart:function(m){var l=m.originalEvent.touches[0];this.lastTouch={x1:l.pageX,y1:l.pageY,target:l.target}},enable:function(){if(this.disabled){if(this.$disableOverlay){this.$disableOverlay.remove();this.$disableOverlay=null}this.disabled=false}},getClosestMenu:function(m){var l=a(m).closest("ul");while(l.dataSM("in-mega")){l=l.parent().closest("ul")}return l[0]||null},getHeight:function(l){return this.getOffset(l,true)},getOffset:function(n,l){var m;if(n.css("display")=="none"){m={position:n[0].style.position,visibility:n[0].style.visibility};n.css({position:"absolute",visibility:"hidden"}).show()}var o=n[0].getBoundingClientRect&&n[0].getBoundingClientRect(),p=o&&(l?o.height||o.bottom-o.top:o.width||o.right-o.left);if(!p&&p!==0){p=l?n[0].offsetHeight:n[0].offsetWidth}if(m){n.hide().css(m)}return p},getStartZIndex:function(l){var m=parseInt(this[l?"$root":"$firstSub"].css("z-index"));if(!l&&isNaN(m)){m=parseInt(this.$root.css("z-index"))}return !isNaN(m)?m:1},getTouchPoint:function(l){return l.touches&&l.touches[0]||l.changedTouches&&l.changedTouches[0]||l},getViewport:function(l){var m=l?"Height":"Width",o=document.documentElement["client"+m],n=window["inner"+m];if(n){o=Math.min(o,n)}return o},getViewportHeight:function(){return this.getViewport(true)},getViewportWidth:function(){return this.getViewport()},getWidth:function(l){return this.getOffset(l)},handleEvents:function(){return !this.disabled&&this.isCSSOn()},handleItemEvents:function(l){return this.handleEvents()&&!this.isLinkInMegaMenu(l)},isCollapsible:function(){return this.$firstSub.css("position")=="static"},isCSSOn:function(){return this.$firstLink.css("display")=="block"},isFixed:function(){var l=this.$root.css("position")=="fixed";if(!l){this.$root.parentsUntil("body").each(function(){if(a(this).css("position")=="fixed"){l=true;return false}})}return l},isLinkInMegaMenu:function(l){return a(this.getClosestMenu(l[0])).hasClass("mega-menu")},isTouchMode:function(){return !f||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(p,l){var n=p.closest("ul"),q=n.dataSM("level");if(q>1&&(!this.activatedItems[q-2]||this.activatedItems[q-2][0]!=n.dataSM("parent-a")[0])){var m=this;a(n.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(n).each(function(){m.itemActivate(a(this).dataSM("parent-a"))})}if(!this.isCollapsible()||l){this.menuHideSubMenus(!this.activatedItems[q-1]||this.activatedItems[q-1][0]!=p[0]?q-1:q)}this.activatedItems[q-1]=p;if(this.$root.triggerHandler("activate.smapi",p[0])===false){return}var o=p.dataSM("sub");if(o&&(this.isTouchMode()||(!this.opts.showOnClick||this.clickActivated))){this.menuShow(o)}},itemBlur:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}this.$root.triggerHandler("blur.smapi",l[0])},itemClick:function(o){var n=a(o.currentTarget);if(!this.handleItemEvents(n)){return}if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==n.closest("ul")[0]){this.$touchScrollingSub=null;o.stopPropagation();return false}if(this.$root.triggerHandler("click.smapi",n[0])===false){return false}var p=a(o.target).is("span.sub-arrow"),m=n.dataSM("sub"),l=m?m.dataSM("level")==2:false;if(m&&!m.is(":visible")){if(this.opts.showOnClick&&l){this.clickActivated=true}this.itemActivate(n);if(m.is(":visible")){this.focusActivated=true;return false}}else{if(this.isCollapsible()&&p){this.itemActivate(n);this.menuHide(m);return false}}if(this.opts.showOnClick&&l||n.hasClass("disabled")||this.$root.triggerHandler("select.smapi",n[0])===false){return false}},itemDown:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}l.dataSM("mousedown",true)},itemEnter:function(n){var m=a(n.currentTarget);if(!this.handleItemEvents(m)){return}if(!this.isTouchMode()){if(this.showTimeout){clearTimeout(this.showTimeout);this.showTimeout=0}var l=this;this.showTimeout=setTimeout(function(){l.itemActivate(m)},this.opts.showOnClick&&m.closest("ul").dataSM("level")==1?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",m[0])},itemFocus:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}if(this.focusActivated&&(!this.isTouchMode()||!l.dataSM("mousedown"))&&(!this.activatedItems.length||this.activatedItems[this.activatedItems.length-1][0]!=l[0])){this.itemActivate(l,true)}this.$root.triggerHandler("focus.smapi",l[0])},itemLeave:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}if(!this.isTouchMode()){l[0].blur();if(this.showTimeout){clearTimeout(this.showTimeout);this.showTimeout=0}}l.removeDataSM("mousedown");this.$root.triggerHandler("mouseleave.smapi",l[0])},menuHide:function(m){if(this.$root.triggerHandler("beforehide.smapi",m[0])===false){return}m.stop(true,true);if(m.css("display")!="none"){var l=function(){m.css("z-index","")};if(this.isCollapsible()){if(this.opts.collapsibleHideFunction){this.opts.collapsibleHideFunction.call(this,m,l)}else{m.hide(this.opts.collapsibleHideDuration,l)}}else{if(this.opts.hideFunction){this.opts.hideFunction.call(this,m,l)}else{m.hide(this.opts.hideDuration,l)}}if(m.dataSM("ie-shim")){m.dataSM("ie-shim").remove().css({"-webkit-transform":"",transform:""})}if(m.dataSM("scroll")){this.menuScrollStop(m);m.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).unbind(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()}m.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false");m.attr({"aria-expanded":"false","aria-hidden":"true"});var n=m.dataSM("level");this.activatedItems.splice(n-1,1);this.visibleSubMenus.splice(a.inArray(m,this.visibleSubMenus),1);this.$root.triggerHandler("hide.smapi",m[0])}},menuHideAll:function(){if(this.showTimeout){clearTimeout(this.showTimeout);this.showTimeout=0}var m=this.opts.isPopup?1:0;for(var l=this.visibleSubMenus.length-1;l>=m;l--){this.menuHide(this.visibleSubMenus[l])}if(this.opts.isPopup){this.$root.stop(true,true);if(this.$root.is(":visible")){if(this.opts.hideFunction){this.opts.hideFunction.call(this,this.$root)}else{this.$root.hide(this.opts.hideDuration)}if(this.$root.dataSM("ie-shim")){this.$root.dataSM("ie-shim").remove()}}}this.activatedItems=[];this.visibleSubMenus=[];this.clickActivated=false;this.focusActivated=false;this.zIndexInc=0;this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(n){for(var l=this.activatedItems.length-1;l>=n;l--){var m=this.activatedItems[l].dataSM("sub");if(m){this.menuHide(m)}}},menuIframeShim:function(l){if(e&&this.opts.overlapControlsInIE&&!l.dataSM("ie-shim")){l.dataSM("ie-shim",a("<iframe/>").attr({src:"javascript:0",tabindex:-9}).css({position:"absolute",top:"auto",left:"0",opacity:0,border:"0"}))}},menuInit:function(l){if(!l.dataSM("in-mega")){if(l.hasClass("mega-menu")){l.find("ul").dataSM("in-mega",true)}var q=2,m=l[0];while((m=m.parentNode.parentNode)!=this.$root[0]){q++}var n=l.prevAll("a").eq(-1);if(!n.length){n=l.prevAll().find("a").eq(-1)}n.addClass("has-submenu").dataSM("sub",l);l.dataSM("parent-a",n).dataSM("level",q).parent().dataSM("sub",l);var o=n.attr("id")||this.accessIdPrefix+(++this.idInc),p=l.attr("id")||this.accessIdPrefix+(++this.idInc);n.attr({id:o,"aria-haspopup":"true","aria-controls":p,"aria-expanded":"false"});l.attr({id:p,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"});if(this.opts.subIndicators){n[this.opts.subIndicatorsPos](this.$subArrow.clone())}}},menuPosition:function(K){var r=K.dataSM("parent-a"),D=r.closest("li"),E=D.parent(),l=K.dataSM("level"),t=this.getWidth(K),J=this.getHeight(K),u=r.offset(),o=u.left,m=u.top,q=this.getWidth(r),F=this.getHeight(r),H=a(window),v=H.scrollLeft(),s=H.scrollTop(),z=this.getViewportWidth(),L=this.getViewportHeight(),w=E.parent().is("[data-sm-horizontal-sub]")||l==2&&!E.hasClass("sm-vertical"),B=this.opts.rightToLeftSubMenus&&!D.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&D.is("[data-sm-reverse]"),p=l==2?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,n=l==2?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY,C,A;if(w){C=B?q-t-p:p;A=this.opts.bottomToTopSubMenus?-J-n:F+n}else{C=B?p-t:q-p;A=this.opts.bottomToTopSubMenus?F-n-J:n}if(this.opts.keepInViewport){var N=o+C,M=m+A;if(B&&N<v){C=w?v-N+C:q-p}else{if(!B&&N+t>v+z){C=w?v+z-t-N+C:p-t}}if(!w){if(J<L&&M+J>s+L){A+=s+L-J-M}else{if(J>=L||M<s){A+=s-M}}}if(w&&(M+J>s+L+0.49||M<s)||!w&&J>L+0.49){var G=this;if(!K.dataSM("scroll-arrows")){K.dataSM("scroll-arrows",a([a('<span class="scroll-up"><span class="scroll-up-arrow"></span></span>')[0],a('<span class="scroll-down"><span class="scroll-down-arrow"></span></span>')[0]]).bind({mouseenter:function(){K.dataSM("scroll").up=a(this).hasClass("scroll-up");G.menuScroll(K)},mouseleave:function(x){G.menuScrollStop(K);G.menuScrollOut(K,x)},"mousewheel DOMMouseScroll":function(x){x.preventDefault()}}).insertAfter(K))}var I=".smartmenus_scroll";K.dataSM("scroll",{y:this.cssTransforms3d?0:A-F,step:1,itemH:F,subH:J,arrowDownH:this.getHeight(K.dataSM("scroll-arrows").eq(1))}).bind(i([["mouseover",function(x){G.menuScrollOver(K,x)}],["mouseout",function(x){G.menuScrollOut(K,x)}],["mousewheel DOMMouseScroll",function(x){G.menuScrollMousewheel(K,x)}]],I)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:C+(parseInt(K.css("border-left-width"))||0),width:t-(parseInt(K.css("border-left-width"))||0)-(parseInt(K.css("border-right-width"))||0),zIndex:K.css("z-index")}).eq(w&&this.opts.bottomToTopSubMenus?0:1).show();if(this.isFixed()){K.css({"touch-action":"none","-ms-touch-action":"none"}).bind(i([[d?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp",function(x){G.menuScrollTouch(K,x)}]],I))}}}K.css({top:"auto",left:"0",marginLeft:C,marginTop:A-F});this.menuIframeShim(K);if(K.dataSM("ie-shim")){K.dataSM("ie-shim").css({zIndex:K.css("z-index"),width:t,height:J,marginLeft:C,marginTop:A-F})}},menuScroll:function(r,m,n){var p=r.dataSM("scroll"),q=r.dataSM("scroll-arrows"),o=p.up?p.upEnd:p.downEnd,s;if(!m&&p.momentum){p.momentum*=0.92;s=p.momentum;if(s<0.5){this.menuScrollStop(r);return}}else{s=n||(m||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(p.step))}var l=r.dataSM("level");if(this.activatedItems[l-1]&&this.activatedItems[l-1].dataSM("sub")&&this.activatedItems[l-1].dataSM("sub").is(":visible")){this.menuHideSubMenus(l-1)}p.y=p.up&&o<=p.y||!p.up&&o>=p.y?p.y:(Math.abs(o-p.y)>s?p.y+(p.up?s:-s):o);r.add(r.dataSM("ie-shim")).css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+p.y+"px, 0)",transform:"translate3d(0, "+p.y+"px, 0)"}:{marginTop:p.y});if(f&&(p.up&&p.y>p.downEnd||!p.up&&p.y<p.upEnd)){q.eq(p.up?1:0).show()}if(p.y==o){if(f){q.eq(p.up?0:1).hide()}this.menuScrollStop(r)}else{if(!m){if(this.opts.scrollAccelerate&&p.step<this.opts.scrollStep){p.step+=0.2}var t=this;this.scrollTimeout=g(function(){t.menuScroll(r)})}}},menuScrollMousewheel:function(m,n){if(this.getClosestMenu(n.target)==m[0]){n=n.originalEvent;var l=(n.wheelDelta||-n.detail)>0;if(m.dataSM("scroll-arrows").eq(l?0:1).is(":visible")){m.dataSM("scroll").up=l;this.menuScroll(m,true)}}n.preventDefault()},menuScrollOut:function(l,m){if(f){if(!/^scroll-(up|down)/.test((m.relatedTarget||"").className)&&(l[0]!=m.relatedTarget&&!a.contains(l[0],m.relatedTarget)||this.getClosestMenu(m.relatedTarget)!=l[0])){l.dataSM("scroll-arrows").css("visibility","hidden")}}},menuScrollOver:function(n,o){if(f){if(!/^scroll-(up|down)/.test(o.target.className)&&this.getClosestMenu(o.target)==n[0]){this.menuScrollRefreshData(n);var m=n.dataSM("scroll"),l=a(window).scrollTop()-n.dataSM("parent-a").offset().top-m.itemH;n.dataSM("scroll-arrows").eq(0).css("margin-top",l).end().eq(1).css("margin-top",l+this.getViewportHeight()-m.arrowDownH).end().css("visibility","visible")}}},menuScrollRefreshData:function(n){var m=n.dataSM("scroll"),l=a(window).scrollTop()-n.dataSM("parent-a").offset().top-m.itemH;if(this.cssTransforms3d){l=-(parseFloat(n.css("margin-top"))-l)}a.extend(m,{upEnd:l,downEnd:l+this.getViewportHeight()-m.subH})},menuScrollStop:function(l){if(this.scrollTimeout){c(this.scrollTimeout);this.scrollTimeout=0;l.dataSM("scroll").step=1;return true}},menuScrollTouch:function(p,q){q=q.originalEvent;if(j(q)){var m=this.getTouchPoint(q);if(this.getClosestMenu(m.target)==p[0]){var o=p.dataSM("scroll");if(/(start|down)$/i.test(q.type)){if(this.menuScrollStop(p)){q.preventDefault();this.$touchScrollingSub=p}else{this.$touchScrollingSub=null}this.menuScrollRefreshData(p);a.extend(o,{touchStartY:m.pageY,touchStartTime:q.timeStamp})}else{if(/move$/i.test(q.type)){var n=o.touchY!==undefined?o.touchY:o.touchStartY;if(n!==undefined&&n!=m.pageY){this.$touchScrollingSub=p;var l=n<m.pageY;if(o.up!==undefined&&o.up!=l){a.extend(o,{touchStartY:m.pageY,touchStartTime:q.timeStamp})}a.extend(o,{up:l,touchY:m.pageY});this.menuScroll(p,true,Math.abs(m.pageY-n))}q.preventDefault()}else{if(o.touchY!==undefined){if(o.momentum=Math.pow(Math.abs(m.pageY-o.touchStartY)/(q.timeStamp-o.touchStartTime),2)*15){this.menuScrollStop(p);this.menuScroll(p);q.preventDefault()}delete o.touchY}}}}}},menuShow:function(n){if(!n.dataSM("beforefirstshowfired")){n.dataSM("beforefirstshowfired",true);if(this.$root.triggerHandler("beforefirstshow.smapi",n[0])===false){return}}if(this.$root.triggerHandler("beforeshow.smapi",n[0])===false){return}n.dataSM("shown-before",true).stop(true,true);if(!n.is(":visible")){var m=n.dataSM("parent-a");if(this.opts.keepHighlighted||this.isCollapsible()){m.addClass("highlighted")}if(this.isCollapsible()){n.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""})}else{n.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1);if(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth){n.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap");if(this.opts.subMenusMinWidth){n.css("min-width",this.opts.subMenusMinWidth)}if(this.opts.subMenusMaxWidth){var o=this.getWidth(n);n.css("max-width",this.opts.subMenusMaxWidth);if(o>this.getWidth(n)){n.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}}}this.menuPosition(n);if(n.dataSM("ie-shim")){n.dataSM("ie-shim").insertBefore(n)}}var l=function(){n.css("overflow","")};if(this.isCollapsible()){if(this.opts.collapsibleShowFunction){this.opts.collapsibleShowFunction.call(this,n,l)}else{n.show(this.opts.collapsibleShowDuration,l)}}else{if(this.opts.showFunction){this.opts.showFunction.call(this,n,l)}else{n.show(this.opts.showDuration,l)}}m.attr("aria-expanded","true");n.attr({"aria-expanded":"true","aria-hidden":"false"});this.visibleSubMenus.push(n);this.$root.triggerHandler("show.smapi",n[0])}},popupHide:function(l){if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}var m=this;this.hideTimeout=setTimeout(function(){m.menuHideAll()},l?1:this.opts.hideTimeout)},popupShow:function(o,n){if(!this.opts.isPopup){alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.');return}if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}this.$root.dataSM("shown-before",true).stop(true,true);if(!this.$root.is(":visible")){this.$root.css({left:o,top:n});this.menuIframeShim(this.$root);if(this.$root.dataSM("ie-shim")){this.$root.dataSM("ie-shim").css({zIndex:this.$root.css("z-index"),width:this.getWidth(this.$root),height:this.getHeight(this.$root),left:o,top:n}).insertBefore(this.$root)}var m=this,l=function(){m.$root.css("overflow","")};if(this.opts.showFunction){this.opts.showFunction.call(this,this.$root,l)}else{this.$root.show(this.opts.showDuration,l)}this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(true);this.init(true)},rootKeyDown:function(o){if(!this.handleEvents()){return}switch(o.keyCode){case 27:var m=this.activatedItems[0];if(m){this.menuHideAll();m[0].focus();var n=m.dataSM("sub");if(n){this.menuHide(n)}}break;case 32:var l=a(o.target);if(l.is("a")&&this.handleItemEvents(l)){var n=l.dataSM("sub");if(n&&!n.is(":visible")){this.itemClick({currentTarget:o.target});o.preventDefault()}}break}},rootOut:function(m){if(!this.handleEvents()||this.isTouchMode()||m.target==this.$root[0]){return}if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}if(!this.opts.showOnClick||!this.opts.hideOnClick){var l=this;this.hideTimeout=setTimeout(function(){l.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(l){if(!this.handleEvents()||this.isTouchMode()||l.target==this.$root[0]){return}if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}},winResize:function(m){if(!this.handleEvents()){if(this.$disableOverlay){var n=this.$root.offset();this.$disableOverlay.css({top:n.top,left:n.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}return}if(!("onorientationchange" in window)||m.type=="orientationchange"){var l=this.isCollapsible();if(!(this.wasCollapsible&&l)){if(this.activatedItems.length){this.activatedItems[this.activatedItems.length-1][0].blur()}this.menuHideAll()}this.wasCollapsible=l}}}});a.fn.dataSM=function(l,m){if(m){return this.data(l+"_smartmenus",m)}return this.data(l+"_smartmenus")};a.fn.removeDataSM=function(l){return this.removeData(l+"_smartmenus")};a.fn.smartmenus=function(m){if(typeof m=="string"){var l=arguments,o=m;Array.prototype.shift.call(l);return this.each(function(){var p=a(this).data("smartmenus");if(p&&p[o]){p[o].apply(p,l)}})}var n=a.extend({},a.fn.smartmenus.defaults,m);return this.each(function(){new a.SmartMenus(this,n)})};a.fn.smartmenus.defaults={isPopup:false,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:true,subIndicatorsPos:"prepend",subIndicatorsText:"+",scrollStep:30,scrollAccelerate:true,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(m,l){m.fadeOut(200,l)},collapsibleShowDuration:0,collapsibleShowFunction:function(m,l){m.slideDown(200,l)},collapsibleHideDuration:0,collapsibleHideFunction:function(m,l){m.slideUp(200,l)},showOnClick:false,hideOnClick:true,noMouseOver:false,keepInViewport:true,keepHighlighted:true,markCurrentItem:false,markCurrentTree:true,rightToLeftSubMenus:false,bottomToTopSubMenus:false,overlapControlsInIE:true};return a}));
\ No newline at end of file
+(function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a)}else{if(typeof module==="object"&&typeof module.exports==="object"){module.exports=a(require("jquery"))}else{a(jQuery)}}}(function(a){var b=[],e=!!window.createPopup,f=false,d="ontouchstart" in window,h=false,g=window.requestAnimationFrame||function(l){return setTimeout(l,1000/60)},c=window.cancelAnimationFrame||function(l){clearTimeout(l)};function k(m){var n=".smartmenus_mouse";if(!h&&!m){var o=true,l=null;a(document).bind(i([["mousemove",function(s){var t={x:s.pageX,y:s.pageY,timeStamp:new Date().getTime()};if(l){var q=Math.abs(l.x-t.x),p=Math.abs(l.y-t.y);if((q>0||p>0)&&q<=2&&p<=2&&t.timeStamp-l.timeStamp<=300){f=true;if(o){var r=a(s.target).closest("a");if(r.is("a")){a.each(b,function(){if(a.contains(this.$root[0],r[0])){this.itemEnter({currentTarget:r[0]});return false}})}o=false}}}l=t}],[d?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut",function(p){if(j(p.originalEvent)){f=false}}]],n));h=true}else{if(h&&m){a(document).unbind(n);h=false}}}function j(l){return !/^(4|mouse)$/.test(l.pointerType)}function i(l,n){if(!n){n=""}var m={};a.each(l,function(o,p){m[p[0].split(" ").join(n+" ")+n]=p[1]});return m}a.SmartMenus=function(m,l){this.$root=a(m);this.opts=l;this.rootId="";this.accessIdPrefix="";this.$subArrow=null;this.activatedItems=[];this.visibleSubMenus=[];this.showTimeout=0;this.hideTimeout=0;this.scrollTimeout=0;this.clickActivated=false;this.focusActivated=false;this.zIndexInc=0;this.idInc=0;this.$firstLink=null;this.$firstSub=null;this.disabled=false;this.$disableOverlay=null;this.$touchScrollingSub=null;this.cssTransforms3d="perspective" in m.style||"webkitPerspective" in m.style;this.wasCollapsible=false;this.init()};a.extend(a.SmartMenus,{hideAll:function(){a.each(b,function(){this.menuHideAll()})},destroy:function(){while(b.length){b[0].destroy()}k(true)},prototype:{init:function(n){var l=this;if(!n){b.push(this);this.rootId=(new Date().getTime()+Math.random()+"").replace(/\D/g,"");this.accessIdPrefix="sm-"+this.rootId+"-";if(this.$root.hasClass("sm-rtl")){this.opts.rightToLeftSubMenus=true}var r=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).bind(i([["mouseover focusin",a.proxy(this.rootOver,this)],["mouseout focusout",a.proxy(this.rootOut,this)],["keydown",a.proxy(this.rootKeyDown,this)]],r)).delegate("a",i([["mouseenter",a.proxy(this.itemEnter,this)],["mouseleave",a.proxy(this.itemLeave,this)],["mousedown",a.proxy(this.itemDown,this)],["focus",a.proxy(this.itemFocus,this)],["blur",a.proxy(this.itemBlur,this)],["click",a.proxy(this.itemClick,this)]],r));r+=this.rootId;if(this.opts.hideOnClick){a(document).bind(i([["touchstart",a.proxy(this.docTouchStart,this)],["touchmove",a.proxy(this.docTouchMove,this)],["touchend",a.proxy(this.docTouchEnd,this)],["click",a.proxy(this.docClick,this)]],r))}a(window).bind(i([["resize orientationchange",a.proxy(this.winResize,this)]],r));if(this.opts.subIndicators){this.$subArrow=a("<span/>").addClass("sub-arrow");if(this.opts.subIndicatorsText){this.$subArrow.html(this.opts.subIndicatorsText)}}k()}this.$firstSub=this.$root.find("ul").each(function(){l.menuInit(a(this))}).eq(0);this.$firstLink=this.$root.find("a").eq(0);if(this.opts.markCurrentItem){var p=/(index|default)\.[^#\?\/]*/i,m=/#.*/,q=window.location.href.replace(p,""),o=q.replace(m,"");this.$root.find("a").each(function(){var s=this.href.replace(p,""),t=a(this);if(s==q||s==o){t.addClass("current");if(l.opts.markCurrentTree){t.parentsUntil("[data-smartmenus-id]","ul").each(function(){a(this).dataSM("parent-a").addClass("current")})}}})}this.wasCollapsible=this.isCollapsible()},destroy:function(m){if(!m){var n=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").unbind(n).undelegate(n);n+=this.rootId;a(document).unbind(n);a(window).unbind(n);if(this.opts.subIndicators){this.$subArrow=null}}this.menuHideAll();var l=this;this.$root.find("ul").each(function(){var o=a(this);if(o.dataSM("scroll-arrows")){o.dataSM("scroll-arrows").remove()}if(o.dataSM("shown-before")){if(l.opts.subMenusMinWidth||l.opts.subMenusMaxWidth){o.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap")}if(o.dataSM("scroll-arrows")){o.dataSM("scroll-arrows").remove()}o.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})}if((o.attr("id")||"").indexOf(l.accessIdPrefix)==0){o.removeAttr("id")}}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("ie-shim").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded");this.$root.find("a.has-submenu").each(function(){var o=a(this);if(o.attr("id").indexOf(l.accessIdPrefix)==0){o.removeAttr("id")}}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub");if(this.opts.subIndicators){this.$root.find("span.sub-arrow").remove()}if(this.opts.markCurrentItem){this.$root.find("a.current").removeClass("current")}if(!m){this.$root=null;this.$firstLink=null;this.$firstSub=null;if(this.$disableOverlay){this.$disableOverlay.remove();this.$disableOverlay=null}b.splice(a.inArray(this,b),1)}},disable:function(l){if(!this.disabled){this.menuHideAll();if(!l&&!this.opts.isPopup&&this.$root.is(":visible")){var m=this.$root.offset();this.$disableOverlay=a('<div class="sm-jquery-disable-overlay"/>').css({position:"absolute",top:m.top,left:m.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(true),opacity:0}).appendTo(document.body)}this.disabled=true}},docClick:function(l){if(this.$touchScrollingSub){this.$touchScrollingSub=null;return}if(this.visibleSubMenus.length&&!a.contains(this.$root[0],l.target)||a(l.target).is("a")){this.menuHideAll()}},docTouchEnd:function(m){if(!this.lastTouch){return}if(this.visibleSubMenus.length&&(this.lastTouch.x2===undefined||this.lastTouch.x1==this.lastTouch.x2)&&(this.lastTouch.y2===undefined||this.lastTouch.y1==this.lastTouch.y2)&&(!this.lastTouch.target||!a.contains(this.$root[0],this.lastTouch.target))){if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}var l=this;this.hideTimeout=setTimeout(function(){l.menuHideAll()},350)}this.lastTouch=null},docTouchMove:function(m){if(!this.lastTouch){return}var l=m.originalEvent.touches[0];this.lastTouch.x2=l.pageX;this.lastTouch.y2=l.pageY},docTouchStart:function(m){var l=m.originalEvent.touches[0];this.lastTouch={x1:l.pageX,y1:l.pageY,target:l.target}},enable:function(){if(this.disabled){if(this.$disableOverlay){this.$disableOverlay.remove();this.$disableOverlay=null}this.disabled=false}},getClosestMenu:function(m){var l=a(m).closest("ul");while(l.dataSM("in-mega")){l=l.parent().closest("ul")}return l[0]||null},getHeight:function(l){return this.getOffset(l,true)},getOffset:function(n,l){var m;if(n.css("display")=="none"){m={position:n[0].style.position,visibility:n[0].style.visibility};n.css({position:"absolute",visibility:"hidden"}).show()}var o=n[0].getBoundingClientRect&&n[0].getBoundingClientRect(),p=o&&(l?o.height||o.bottom-o.top:o.width||o.right-o.left);if(!p&&p!==0){p=l?n[0].offsetHeight:n[0].offsetWidth}if(m){n.hide().css(m)}return p},getStartZIndex:function(l){var m=parseInt(this[l?"$root":"$firstSub"].css("z-index"));if(!l&&isNaN(m)){m=parseInt(this.$root.css("z-index"))}return !isNaN(m)?m:1},getTouchPoint:function(l){return l.touches&&l.touches[0]||l.changedTouches&&l.changedTouches[0]||l},getViewport:function(l){var m=l?"Height":"Width",o=document.documentElement["client"+m],n=window["inner"+m];if(n){o=Math.min(o,n)}return o},getViewportHeight:function(){return this.getViewport(true)},getViewportWidth:function(){return this.getViewport()},getWidth:function(l){return this.getOffset(l)},handleEvents:function(){return !this.disabled&&this.isCSSOn()},handleItemEvents:function(l){return this.handleEvents()&&!this.isLinkInMegaMenu(l)},isCollapsible:function(){return this.$firstSub.css("position")=="static"},isCSSOn:function(){return this.$firstLink.css("display")=="block"},isFixed:function(){var l=this.$root.css("position")=="fixed";if(!l){this.$root.parentsUntil("body").each(function(){if(a(this).css("position")=="fixed"){l=true;return false}})}return l},isLinkInMegaMenu:function(l){return a(this.getClosestMenu(l[0])).hasClass("mega-menu")},isTouchMode:function(){return !f||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(p,l){var n=p.closest("ul"),q=n.dataSM("level");if(q>1&&(!this.activatedItems[q-2]||this.activatedItems[q-2][0]!=n.dataSM("parent-a")[0])){var m=this;a(n.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(n).each(function(){m.itemActivate(a(this).dataSM("parent-a"))})}if(!this.isCollapsible()||l){this.menuHideSubMenus(!this.activatedItems[q-1]||this.activatedItems[q-1][0]!=p[0]?q-1:q)}this.activatedItems[q-1]=p;if(this.$root.triggerHandler("activate.smapi",p[0])===false){return}var o=p.dataSM("sub");if(o&&(this.isTouchMode()||(!this.opts.showOnClick||this.clickActivated))){this.menuShow(o)}},itemBlur:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}this.$root.triggerHandler("blur.smapi",l[0])},itemClick:function(o){var n=a(o.currentTarget);if(!this.handleItemEvents(n)){return}if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==n.closest("ul")[0]){this.$touchScrollingSub=null;o.stopPropagation();return false}if(this.$root.triggerHandler("click.smapi",n[0])===false){return false}var p=a(o.target).is("span.sub-arrow"),m=n.dataSM("sub"),l=m?m.dataSM("level")==2:false;if(m&&!m.is(":visible")){if(this.opts.showOnClick&&l){this.clickActivated=true}this.itemActivate(n);if(m.is(":visible")){this.focusActivated=true;return false}}else{if(this.isCollapsible()&&p){this.itemActivate(n);this.menuHide(m);return false}}if(this.opts.showOnClick&&l||n.hasClass("disabled")||this.$root.triggerHandler("select.smapi",n[0])===false){return false}},itemDown:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}l.dataSM("mousedown",true)},itemEnter:function(n){var m=a(n.currentTarget);if(!this.handleItemEvents(m)){return}if(!this.isTouchMode()){if(this.showTimeout){clearTimeout(this.showTimeout);this.showTimeout=0}var l=this;this.showTimeout=setTimeout(function(){l.itemActivate(m)},this.opts.showOnClick&&m.closest("ul").dataSM("level")==1?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",m[0])},itemFocus:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}if(this.focusActivated&&(!this.isTouchMode()||!l.dataSM("mousedown"))&&(!this.activatedItems.length||this.activatedItems[this.activatedItems.length-1][0]!=l[0])){this.itemActivate(l,true)}this.$root.triggerHandler("focus.smapi",l[0])},itemLeave:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}if(!this.isTouchMode()){l[0].blur();if(this.showTimeout){clearTimeout(this.showTimeout);this.showTimeout=0}}l.removeDataSM("mousedown");this.$root.triggerHandler("mouseleave.smapi",l[0])},menuHide:function(m){if(this.$root.triggerHandler("beforehide.smapi",m[0])===false){return}m.stop(true,true);if(m.css("display")!="none"){var l=function(){m.css("z-index","")};if(this.isCollapsible()){if(this.opts.collapsibleHideFunction){this.opts.collapsibleHideFunction.call(this,m,l)}else{m.hide(this.opts.collapsibleHideDuration,l)}}else{if(this.opts.hideFunction){this.opts.hideFunction.call(this,m,l)}else{m.hide(this.opts.hideDuration,l)}}if(m.dataSM("ie-shim")){m.dataSM("ie-shim").remove().css({"-webkit-transform":"",transform:""})}if(m.dataSM("scroll")){this.menuScrollStop(m);m.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).unbind(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()}m.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false");m.attr({"aria-expanded":"false","aria-hidden":"true"});var n=m.dataSM("level");this.activatedItems.splice(n-1,1);this.visibleSubMenus.splice(a.inArray(m,this.visibleSubMenus),1);this.$root.triggerHandler("hide.smapi",m[0])}},menuHideAll:function(){if(this.showTimeout){clearTimeout(this.showTimeout);this.showTimeout=0}var m=this.opts.isPopup?1:0;for(var l=this.visibleSubMenus.length-1;l>=m;l--){this.menuHide(this.visibleSubMenus[l])}if(this.opts.isPopup){this.$root.stop(true,true);if(this.$root.is(":visible")){if(this.opts.hideFunction){this.opts.hideFunction.call(this,this.$root)}else{this.$root.hide(this.opts.hideDuration)}if(this.$root.dataSM("ie-shim")){this.$root.dataSM("ie-shim").remove()}}}this.activatedItems=[];this.visibleSubMenus=[];this.clickActivated=false;this.focusActivated=false;this.zIndexInc=0;this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(n){for(var l=this.activatedItems.length-1;l>=n;l--){var m=this.activatedItems[l].dataSM("sub");if(m){this.menuHide(m)}}},menuIframeShim:function(l){if(e&&this.opts.overlapControlsInIE&&!l.dataSM("ie-shim")){l.dataSM("ie-shim",a("<iframe/>").attr({src:"javascript:0",tabindex:-9}).css({position:"absolute",top:"auto",left:"0",opacity:0,border:"0"}))}},menuInit:function(l){if(!l.dataSM("in-mega")){if(l.hasClass("mega-menu")){l.find("ul").dataSM("in-mega",true)}var q=2,m=l[0];while((m=m.parentNode.parentNode)!=this.$root[0]){q++}var n=l.prevAll("a").eq(-1);if(!n.length){n=l.prevAll().find("a").eq(-1)}n.addClass("has-submenu").dataSM("sub",l);l.dataSM("parent-a",n).dataSM("level",q).parent().dataSM("sub",l);var o=n.attr("id")||this.accessIdPrefix+(++this.idInc),p=l.attr("id")||this.accessIdPrefix+(++this.idInc);n.attr({id:o,"aria-haspopup":"true","aria-controls":p,"aria-expanded":"false"});l.attr({id:p,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"});if(this.opts.subIndicators){n[this.opts.subIndicatorsPos](this.$subArrow.clone())}}},menuPosition:function(K){var r=K.dataSM("parent-a"),D=r.closest("li"),E=D.parent(),l=K.dataSM("level"),t=this.getWidth(K),J=this.getHeight(K),u=r.offset(),o=u.left,m=u.top,q=this.getWidth(r),F=this.getHeight(r),H=a(window),v=H.scrollLeft(),s=H.scrollTop(),z=this.getViewportWidth(),L=this.getViewportHeight(),w=E.parent().is("[data-sm-horizontal-sub]")||l==2&&!E.hasClass("sm-vertical"),B=this.opts.rightToLeftSubMenus&&!D.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&D.is("[data-sm-reverse]"),p=l==2?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,n=l==2?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY,C,A;if(w){C=B?q-t-p:p;A=this.opts.bottomToTopSubMenus?-J-n:F+n}else{C=B?p-t:q-p;A=this.opts.bottomToTopSubMenus?F-n-J:n}if(this.opts.keepInViewport){var N=o+C,M=m+A;if(B&&N<v){C=w?v-N+C:q-p}else{if(!B&&N+t>v+z){C=w?v+z-t-N+C:p-t}}if(!w){if(J<L&&M+J>s+L){A+=s+L-J-M}else{if(J>=L||M<s){A+=s-M}}}if(w&&(M+J>s+L+0.49||M<s)||!w&&J>L+0.49){var G=this;if(!K.dataSM("scroll-arrows")){K.dataSM("scroll-arrows",a([a('<span class="scroll-up"><span class="scroll-up-arrow"></span></span>')[0],a('<span class="scroll-down"><span class="scroll-down-arrow"></span></span>')[0]]).bind({mouseenter:function(){K.dataSM("scroll").up=a(this).hasClass("scroll-up");G.menuScroll(K)},mouseleave:function(x){G.menuScrollStop(K);G.menuScrollOut(K,x)},"mousewheel DOMMouseScroll":function(x){x.preventDefault()}}).insertAfter(K))}var I=".smartmenus_scroll";K.dataSM("scroll",{y:this.cssTransforms3d?0:A-F,step:1,itemH:F,subH:J,arrowDownH:this.getHeight(K.dataSM("scroll-arrows").eq(1))}).bind(i([["mouseover",function(x){G.menuScrollOver(K,x)}],["mouseout",function(x){G.menuScrollOut(K,x)}],["mousewheel DOMMouseScroll",function(x){G.menuScrollMousewheel(K,x)}]],I)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:C+(parseInt(K.css("border-left-width"))||0),width:t-(parseInt(K.css("border-left-width"))||0)-(parseInt(K.css("border-right-width"))||0),zIndex:K.css("z-index")}).eq(w&&this.opts.bottomToTopSubMenus?0:1).show();if(this.isFixed()){K.css({"touch-action":"none","-ms-touch-action":"none"}).bind(i([[d?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp",function(x){G.menuScrollTouch(K,x)}]],I))}}}K.css({top:"auto",left:"0",marginLeft:C,marginTop:A-F});this.menuIframeShim(K);if(K.dataSM("ie-shim")){K.dataSM("ie-shim").css({zIndex:K.css("z-index"),width:t,height:J,marginLeft:C,marginTop:A-F})}},menuScroll:function(r,m,n){var p=r.dataSM("scroll"),q=r.dataSM("scroll-arrows"),o=p.up?p.upEnd:p.downEnd,s;if(!m&&p.momentum){p.momentum*=0.92;s=p.momentum;if(s<0.5){this.menuScrollStop(r);return}}else{s=n||(m||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(p.step))}var l=r.dataSM("level");if(this.activatedItems[l-1]&&this.activatedItems[l-1].dataSM("sub")&&this.activatedItems[l-1].dataSM("sub").is(":visible")){this.menuHideSubMenus(l-1)}p.y=p.up&&o<=p.y||!p.up&&o>=p.y?p.y:(Math.abs(o-p.y)>s?p.y+(p.up?s:-s):o);r.add(r.dataSM("ie-shim")).css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+p.y+"px, 0)",transform:"translate3d(0, "+p.y+"px, 0)"}:{marginTop:p.y});if(f&&(p.up&&p.y>p.downEnd||!p.up&&p.y<p.upEnd)){q.eq(p.up?1:0).show()}if(p.y==o){if(f){q.eq(p.up?0:1).hide()}this.menuScrollStop(r)}else{if(!m){if(this.opts.scrollAccelerate&&p.step<this.opts.scrollStep){p.step+=0.2}var t=this;this.scrollTimeout=g(function(){t.menuScroll(r)})}}},menuScrollMousewheel:function(m,n){if(this.getClosestMenu(n.target)==m[0]){n=n.originalEvent;var l=(n.wheelDelta||-n.detail)>0;if(m.dataSM("scroll-arrows").eq(l?0:1).is(":visible")){m.dataSM("scroll").up=l;this.menuScroll(m,true)}}n.preventDefault()},menuScrollOut:function(l,m){if(f){if(!/^scroll-(up|down)/.test((m.relatedTarget||"").className)&&(l[0]!=m.relatedTarget&&!a.contains(l[0],m.relatedTarget)||this.getClosestMenu(m.relatedTarget)!=l[0])){l.dataSM("scroll-arrows").css("visibility","hidden")}}},menuScrollOver:function(n,o){if(f){if(!/^scroll-(up|down)/.test(o.target.className)&&this.getClosestMenu(o.target)==n[0]){this.menuScrollRefreshData(n);var m=n.dataSM("scroll"),l=a(window).scrollTop()-n.dataSM("parent-a").offset().top-m.itemH;n.dataSM("scroll-arrows").eq(0).css("margin-top",l).end().eq(1).css("margin-top",l+this.getViewportHeight()-m.arrowDownH).end().css("visibility","visible")}}},menuScrollRefreshData:function(n){var m=n.dataSM("scroll"),l=a(window).scrollTop()-n.dataSM("parent-a").offset().top-m.itemH;if(this.cssTransforms3d){l=-(parseFloat(n.css("margin-top"))-l)}a.extend(m,{upEnd:l,downEnd:l+this.getViewportHeight()-m.subH})},menuScrollStop:function(l){if(this.scrollTimeout){c(this.scrollTimeout);this.scrollTimeout=0;l.dataSM("scroll").step=1;return true}},menuScrollTouch:function(p,q){q=q.originalEvent;if(j(q)){var m=this.getTouchPoint(q);if(this.getClosestMenu(m.target)==p[0]){var o=p.dataSM("scroll");if(/(start|down)$/i.test(q.type)){if(this.menuScrollStop(p)){q.preventDefault();this.$touchScrollingSub=p}else{this.$touchScrollingSub=null}this.menuScrollRefreshData(p);a.extend(o,{touchStartY:m.pageY,touchStartTime:q.timeStamp})}else{if(/move$/i.test(q.type)){var n=o.touchY!==undefined?o.touchY:o.touchStartY;if(n!==undefined&&n!=m.pageY){this.$touchScrollingSub=p;var l=n<m.pageY;if(o.up!==undefined&&o.up!=l){a.extend(o,{touchStartY:m.pageY,touchStartTime:q.timeStamp})}a.extend(o,{up:l,touchY:m.pageY});this.menuScroll(p,true,Math.abs(m.pageY-n))}q.preventDefault()}else{if(o.touchY!==undefined){if(o.momentum=Math.pow(Math.abs(m.pageY-o.touchStartY)/(q.timeStamp-o.touchStartTime),2)*15){this.menuScrollStop(p);this.menuScroll(p);q.preventDefault()}delete o.touchY}}}}}},menuShow:function(n){if(!n.dataSM("beforefirstshowfired")){n.dataSM("beforefirstshowfired",true);if(this.$root.triggerHandler("beforefirstshow.smapi",n[0])===false){return}}if(this.$root.triggerHandler("beforeshow.smapi",n[0])===false){return}n.dataSM("shown-before",true).stop(true,true);if(!n.is(":visible")){var m=n.dataSM("parent-a");if(this.opts.keepHighlighted||this.isCollapsible()){m.addClass("highlighted")}if(this.isCollapsible()){n.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""})}else{n.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1);if(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth){n.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap");if(this.opts.subMenusMinWidth){n.css("min-width",this.opts.subMenusMinWidth)}if(this.opts.subMenusMaxWidth){var o=this.getWidth(n);n.css("max-width",this.opts.subMenusMaxWidth);if(o>this.getWidth(n)){n.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}}}this.menuPosition(n);if(n.dataSM("ie-shim")){n.dataSM("ie-shim").insertBefore(n)}}var l=function(){n.css("overflow","")};if(this.isCollapsible()){if(this.opts.collapsibleShowFunction){this.opts.collapsibleShowFunction.call(this,n,l)}else{n.show(this.opts.collapsibleShowDuration,l)}}else{if(this.opts.showFunction){this.opts.showFunction.call(this,n,l)}else{n.show(this.opts.showDuration,l)}}m.attr("aria-expanded","true");n.attr({"aria-expanded":"true","aria-hidden":"false"});this.visibleSubMenus.push(n);this.$root.triggerHandler("show.smapi",n[0])}},popupHide:function(l){if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}var m=this;this.hideTimeout=setTimeout(function(){m.menuHideAll()},l?1:this.opts.hideTimeout)},popupShow:function(o,n){if(!this.opts.isPopup){alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.');return}if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}this.$root.dataSM("shown-before",true).stop(true,true);if(!this.$root.is(":visible")){this.$root.css({left:o,top:n});this.menuIframeShim(this.$root);if(this.$root.dataSM("ie-shim")){this.$root.dataSM("ie-shim").css({zIndex:this.$root.css("z-index"),width:this.getWidth(this.$root),height:this.getHeight(this.$root),left:o,top:n}).insertBefore(this.$root)}var m=this,l=function(){m.$root.css("overflow","")};if(this.opts.showFunction){this.opts.showFunction.call(this,this.$root,l)}else{this.$root.show(this.opts.showDuration,l)}this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(true);this.init(true)},rootKeyDown:function(o){if(!this.handleEvents()){return}switch(o.keyCode){case 27:var m=this.activatedItems[0];if(m){this.menuHideAll();m[0].focus();var n=m.dataSM("sub");if(n){this.menuHide(n)}}break;case 32:var l=a(o.target);if(l.is("a")&&this.handleItemEvents(l)){var n=l.dataSM("sub");if(n&&!n.is(":visible")){this.itemClick({currentTarget:o.target});o.preventDefault()}}break}},rootOut:function(m){if(!this.handleEvents()||this.isTouchMode()||m.target==this.$root[0]){return}if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}if(!this.opts.showOnClick||!this.opts.hideOnClick){var l=this;this.hideTimeout=setTimeout(function(){l.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(l){if(!this.handleEvents()||this.isTouchMode()||l.target==this.$root[0]){return}if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}},winResize:function(m){if(!this.handleEvents()){if(this.$disableOverlay){var n=this.$root.offset();this.$disableOverlay.css({top:n.top,left:n.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}return}if(!("onorientationchange" in window)||m.type=="orientationchange"){var l=this.isCollapsible();if(!(this.wasCollapsible&&l)){if(this.activatedItems.length){this.activatedItems[this.activatedItems.length-1][0].blur()}this.menuHideAll()}this.wasCollapsible=l}}}});a.fn.dataSM=function(l,m){if(m){return this.data(l+"_smartmenus",m)}return this.data(l+"_smartmenus")};a.fn.removeDataSM=function(l){return this.removeData(l+"_smartmenus")};a.fn.smartmenus=function(m){if(typeof m=="string"){var l=arguments,o=m;Array.prototype.shift.call(l);return this.each(function(){var p=a(this).data("smartmenus");if(p&&p[o]){p[o].apply(p,l)}})}var n=a.extend({},a.fn.smartmenus.defaults,m);return this.each(function(){new a.SmartMenus(this,n)})};a.fn.smartmenus.defaults={isPopup:false,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:true,subIndicatorsPos:"prepend",subIndicatorsText:"+",scrollStep:30,scrollAccelerate:true,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(m,l){m.fadeOut(200,l)},collapsibleShowDuration:0,collapsibleShowFunction:function(m,l){m.slideDown(200,l)},collapsibleHideDuration:0,collapsibleHideFunction:function(m,l){m.slideUp(200,l)},showOnClick:false,hideOnClick:true,noMouseOver:false,keepInViewport:true,keepHighlighted:true,markCurrentItem:false,markCurrentTree:true,rightToLeftSubMenus:false,bottomToTopSubMenus:false,overlapControlsInIE:true};return a}));
diff --git a/doc/html/knitro_problem_8cpp.html b/doc/html/knitro_problem_8cpp.html
index 8d9bc255a579387a0a256f845072f1b559698e7a..cf55fc08d54cf34879b80ff63b08901d383d8674 100644
--- a/doc/html/knitro_problem_8cpp.html
+++ b/doc/html/knitro_problem_8cpp.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/src/knitroProblem.cpp File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/src/knitroProblem.cpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -98,7 +98,7 @@ $(document).ready(function(){initNavTree('knitro_problem_8cpp.html','');});
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="knitro_problem_8cpp.html">knitroProblem.cpp</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/knitro_problem_8h.html b/doc/html/knitro_problem_8h.html
index e7bf2a9438c00bbc85ca1ce3aa70913aa7357b5c..0dafa6b6760fc10fdcfc62acfd0d75d12a5ebcc9 100644
--- a/doc/html/knitro_problem_8h.html
+++ b/doc/html/knitro_problem_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/knitroProblem.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/knitroProblem.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -126,7 +126,7 @@ Namespaces</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="knitro_problem_8h.html">knitroProblem.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/knitro_problem_8h_source.html b/doc/html/knitro_problem_8h_source.html
index b1cb4bcf92b674f27112a596310c41e58707ff6a..90a575b067ea13ec8fcd850c1cf8274410f541cc 100644
--- a/doc/html/knitro_problem_8h_source.html
+++ b/doc/html/knitro_problem_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/knitroProblem.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/knitroProblem.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,27 +90,27 @@ $(document).ready(function(){initNavTree('knitro_problem_8h_source.html','');});
 <div class="title">knitroProblem.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="knitro_problem_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file knitroProblem.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing declaration of problem class used by Knitro.</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ubp_structure_8h.html">ubpStructure.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_opt_var_8h.html">babOptVar.h</a>&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &quot;KTRException.h&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;KTRProblem.h&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &quot;KTRSolver.h&quot;</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="keyword">namespace </span>ubp {</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="keyword">struct </span>DagObj;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_knitro_problem.html">   47</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html">KnitroProblem</a>: <span class="keyword">public</span> knitro::KTRProblem {</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a01412351da813879180374f925289e14">KnitroProblem</a>(<span class="keywordtype">unsigned</span> nvarIn, <span class="keywordtype">unsigned</span> neqIn, <span class="keywordtype">unsigned</span> nineqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqSquashIn, <span class="keyword">const</span> std::vector&lt;babBase::OptimizationVariable&gt;&amp; variables,</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                  <a class="code" href="structmaingo_1_1ubp_1_1_ubp_structure.html">UbpStructure</a>* structureIn, std::vector&lt;Constraint&gt;* constraintPropertiesIn, std::shared_ptr&lt;DagObj&gt; dagObj);</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a5aafe97d4cd0294ca5998f7973a79bfe">~KnitroProblem</a>();</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html#ab7df62ea5f3792b87f831adcc6a5de22">evaluateFC</a>(<span class="keyword">const</span> <span class="keywordtype">double</span>* <span class="keyword">const</span> x, <span class="keywordtype">double</span>* <span class="keyword">const</span> c, <span class="keywordtype">double</span>* <span class="keyword">const</span> objGrad, <span class="keywordtype">double</span>* <span class="keyword">const</span> jac);</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    <span class="keywordtype">int</span> <a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a136eaa7eaac67cd3155bde2e779237d3">evaluateGA</a>(<span class="keyword">const</span> <span class="keywordtype">double</span>* <span class="keyword">const</span> x, <span class="keywordtype">double</span>* <span class="keyword">const</span> objGrad, <span class="keywordtype">double</span>* <span class="keyword">const</span> jac);</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    <span class="keywordtype">int</span> <a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a8cd4079344ccbac5828fbd998d333f8f">evaluateHess</a>(<span class="keyword">const</span> <span class="keywordtype">double</span>* <span class="keyword">const</span> x, <span class="keywordtype">double</span> objScaler, <span class="keyword">const</span> <span class="keywordtype">double</span>* <span class="keyword">const</span> lambda, <span class="keywordtype">double</span>* <span class="keyword">const</span> hess);</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a484febbf4f1c5393efc46c2207d8f3ad">_setObjectiveProperties</a>();</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a64c0490d313ba65bb3bf740b1c59043c">_setVariableProperties</a>();</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html#ac55dfe4d8eea4c9c4ebd79a12e9bb06d">_setConstraintProperties</a>();</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a4816dc9edd532a51645e689f803a616a">_setDerivativeProperties</a>();</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a21659b0aa98498b69f507007ed93c5f9">  124</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a21659b0aa98498b69f507007ed93c5f9">_nvar</a>;                                                    </div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_knitro_problem.html#adb4e43c94df78c14a7b46a9d7e52a9f3">  125</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html#adb4e43c94df78c14a7b46a9d7e52a9f3">_nineq</a>;                                                   </div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_knitro_problem.html#ab4c0c56943e432eaeda5eb2984a8d4ee">  126</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html#ab4c0c56943e432eaeda5eb2984a8d4ee">_nineqSquash</a>;                                             </div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a4192883914d02b7e76205e7693f25411">  127</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a4192883914d02b7e76205e7693f25411">_neq</a>;                                                     </div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a77d82898e6cb1ade896eb72f709f121e">  128</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_structure.html">UbpStructure</a>* <a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a77d82898e6cb1ade896eb72f709f121e">_structure</a>;                                          </div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a0bd778c8b72652bafe429d874cba73af">  129</a></span>&#160;    std::vector&lt;Constraint&gt;* <a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a0bd778c8b72652bafe429d874cba73af">_constraintProperties</a>;                    </div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a06238fa671eeb532dcfac051beeff95f">  130</a></span>&#160;    std::vector&lt;babBase::OptimizationVariable&gt; <a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a06238fa671eeb532dcfac051beeff95f">_optimizationVariables</a>; </div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    std::shared_ptr&lt;DagObj&gt; _DAGobj;                                   </div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;</div><div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html_ab7df62ea5f3792b87f831adcc6a5de22"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html#ab7df62ea5f3792b87f831adcc6a5de22">maingo::ubp::KnitroProblem::evaluateFC</a></div><div class="ttdeci">double evaluateFC(const double *const x, double *const c, double *const objGrad, double *const jac)</div><div class="ttdoc">Function called by Knitro to get values of the objective and constraints at a point x.</div></div>
+<a href="knitro_problem_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ubp_structure_8h.html">ubpStructure.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_opt_var_8h.html">babOptVar.h</a>&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;KTRException.h&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;KTRProblem.h&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;KTRSolver.h&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="keyword">namespace </span>ubp {</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="keyword">struct </span>DagObj;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_knitro_problem.html">   43</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html">KnitroProblem</a>: <span class="keyword">public</span> knitro::KTRProblem {</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html#af6bc2325caaf7ab6e70eb032669208e7">KnitroProblem</a>(<span class="keywordtype">unsigned</span> nvarIn, <span class="keywordtype">unsigned</span> neqIn, <span class="keywordtype">unsigned</span> nineqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqSquashIn, <span class="keyword">const</span> std::vector&lt;babBase::OptimizationVariable&gt;&amp; variables,</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                  <a class="code" href="structmaingo_1_1ubp_1_1_ubp_structure.html">UbpStructure</a>* structureIn, std::shared_ptr&lt;std::vector&lt;Constraint&gt;&gt; constraintPropertiesIn, std::shared_ptr&lt;DagObj&gt; dagObj);</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a5aafe97d4cd0294ca5998f7973a79bfe">~KnitroProblem</a>();</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html#ab7df62ea5f3792b87f831adcc6a5de22">evaluateFC</a>(<span class="keyword">const</span> <span class="keywordtype">double</span>* <span class="keyword">const</span> x, <span class="keywordtype">double</span>* <span class="keyword">const</span> c, <span class="keywordtype">double</span>* <span class="keyword">const</span> objGrad, <span class="keywordtype">double</span>* <span class="keyword">const</span> jac);</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <span class="keywordtype">int</span> <a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a136eaa7eaac67cd3155bde2e779237d3">evaluateGA</a>(<span class="keyword">const</span> <span class="keywordtype">double</span>* <span class="keyword">const</span> x, <span class="keywordtype">double</span>* <span class="keyword">const</span> objGrad, <span class="keywordtype">double</span>* <span class="keyword">const</span> jac);</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    <span class="keywordtype">int</span> <a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a8cd4079344ccbac5828fbd998d333f8f">evaluateHess</a>(<span class="keyword">const</span> <span class="keywordtype">double</span>* <span class="keyword">const</span> x, <span class="keywordtype">double</span> objScaler, <span class="keyword">const</span> <span class="keywordtype">double</span>* <span class="keyword">const</span> lambda, <span class="keywordtype">double</span>* <span class="keyword">const</span> hess);</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a484febbf4f1c5393efc46c2207d8f3ad">_setObjectiveProperties</a>();</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a64c0490d313ba65bb3bf740b1c59043c">_setVariableProperties</a>();</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html#ac55dfe4d8eea4c9c4ebd79a12e9bb06d">_setConstraintProperties</a>();</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a4816dc9edd532a51645e689f803a616a">_setDerivativeProperties</a>();</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a21659b0aa98498b69f507007ed93c5f9">  120</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a21659b0aa98498b69f507007ed93c5f9">_nvar</a>;                                                    </div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_knitro_problem.html#adb4e43c94df78c14a7b46a9d7e52a9f3">  121</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html#adb4e43c94df78c14a7b46a9d7e52a9f3">_nineq</a>;                                                   </div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_knitro_problem.html#ab4c0c56943e432eaeda5eb2984a8d4ee">  122</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html#ab4c0c56943e432eaeda5eb2984a8d4ee">_nineqSquash</a>;                                             </div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a4192883914d02b7e76205e7693f25411">  123</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a4192883914d02b7e76205e7693f25411">_neq</a>;                                                     </div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a77d82898e6cb1ade896eb72f709f121e">  124</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_structure.html">UbpStructure</a>* <a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a77d82898e6cb1ade896eb72f709f121e">_structure</a>;                                          </div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_knitro_problem.html#adfd54311b1a62a9cb423071ce1c436eb">  125</a></span>&#160;    std::shared_ptr&lt;std::vector&lt;Constraint&gt;&gt; <a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html#adfd54311b1a62a9cb423071ce1c436eb">_constraintProperties</a>;    </div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a06238fa671eeb532dcfac051beeff95f">  126</a></span>&#160;    std::vector&lt;babBase::OptimizationVariable&gt; <a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html#a06238fa671eeb532dcfac051beeff95f">_optimizationVariables</a>; </div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    std::shared_ptr&lt;DagObj&gt; _DAGobj;                                   </div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;</div><div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html_ab7df62ea5f3792b87f831adcc6a5de22"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html#ab7df62ea5f3792b87f831adcc6a5de22">maingo::ubp::KnitroProblem::evaluateFC</a></div><div class="ttdeci">double evaluateFC(const double *const x, double *const c, double *const objGrad, double *const jac)</div><div class="ttdoc">Function called by Knitro to get values of the objective and constraints at a point x...</div></div>
 <div class="ttc" id="ubp_structure_8h_html"><div class="ttname"><a href="ubp_structure_8h.html">ubpStructure.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html_a136eaa7eaac67cd3155bde2e779237d3"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html#a136eaa7eaac67cd3155bde2e779237d3">maingo::ubp::KnitroProblem::evaluateGA</a></div><div class="ttdeci">int evaluateGA(const double *const x, double *const objGrad, double *const jac)</div><div class="ttdoc">Function called by Knitro to get derivatives of the objective and constraints at point x.</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html_a06238fa671eeb532dcfac051beeff95f"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html#a06238fa671eeb532dcfac051beeff95f">maingo::ubp::KnitroProblem::_optimizationVariables</a></div><div class="ttdeci">std::vector&lt; babBase::OptimizationVariable &gt; _optimizationVariables</div><div class="ttdef"><b>Definition:</b> knitroProblem.h:130</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html">maingo::ubp::KnitroProblem</a></div><div class="ttdoc">Class for representing problems to be solved by Knitro, providing an interface to the problem definit...</div><div class="ttdef"><b>Definition:</b> knitroProblem.h:47</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html_a21659b0aa98498b69f507007ed93c5f9"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html#a21659b0aa98498b69f507007ed93c5f9">maingo::ubp::KnitroProblem::_nvar</a></div><div class="ttdeci">unsigned _nvar</div><div class="ttdef"><b>Definition:</b> knitroProblem.h:124</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html_a0bd778c8b72652bafe429d874cba73af"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html#a0bd778c8b72652bafe429d874cba73af">maingo::ubp::KnitroProblem::_constraintProperties</a></div><div class="ttdeci">std::vector&lt; Constraint &gt; * _constraintProperties</div><div class="ttdef"><b>Definition:</b> knitroProblem.h:129</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html_a77d82898e6cb1ade896eb72f709f121e"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html#a77d82898e6cb1ade896eb72f709f121e">maingo::ubp::KnitroProblem::_structure</a></div><div class="ttdeci">UbpStructure * _structure</div><div class="ttdef"><b>Definition:</b> knitroProblem.h:128</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html_a484febbf4f1c5393efc46c2207d8f3ad"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html#a484febbf4f1c5393efc46c2207d8f3ad">maingo::ubp::KnitroProblem::_setObjectiveProperties</a></div><div class="ttdeci">void _setObjectiveProperties()</div><div class="ttdoc">Set properties of objective function, i.e., type (linear, quadratic, general)</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html_a4816dc9edd532a51645e689f803a616a"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html#a4816dc9edd532a51645e689f803a616a">maingo::ubp::KnitroProblem::_setDerivativeProperties</a></div><div class="ttdeci">void _setDerivativeProperties()</div><div class="ttdoc">Set properties of derivatives, i.e., correct indices for non zeros in Jacobian.</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html_a01412351da813879180374f925289e14"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html#a01412351da813879180374f925289e14">maingo::ubp::KnitroProblem::KnitroProblem</a></div><div class="ttdeci">KnitroProblem(unsigned nvarIn, unsigned neqIn, unsigned nineqIn, const unsigned nineqSquashIn, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, UbpStructure *structureIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, std::shared_ptr&lt; DagObj &gt; dagObj)</div><div class="ttdoc">Constructor actually used in ubp.cpp. Initializes the corresponding members.</div></div>
-<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO</div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html_ac55dfe4d8eea4c9c4ebd79a12e9bb06d"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html#ac55dfe4d8eea4c9c4ebd79a12e9bb06d">maingo::ubp::KnitroProblem::_setConstraintProperties</a></div><div class="ttdeci">void _setConstraintProperties()</div><div class="ttdoc">Set properties of constraints, i.e., bounds and type (linear, quadratic, general)</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html_a64c0490d313ba65bb3bf740b1c59043c"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html#a64c0490d313ba65bb3bf740b1c59043c">maingo::ubp::KnitroProblem::_setVariableProperties</a></div><div class="ttdeci">void _setVariableProperties()</div><div class="ttdoc">Set properties of variables, i.e., type (continuous, binary, integer)</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html_a4192883914d02b7e76205e7693f25411"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html#a4192883914d02b7e76205e7693f25411">maingo::ubp::KnitroProblem::_neq</a></div><div class="ttdeci">unsigned _neq</div><div class="ttdef"><b>Definition:</b> knitroProblem.h:127</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html_a5aafe97d4cd0294ca5998f7973a79bfe"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html#a5aafe97d4cd0294ca5998f7973a79bfe">maingo::ubp::KnitroProblem::~KnitroProblem</a></div><div class="ttdeci">virtual ~KnitroProblem()</div><div class="ttdoc">Destructor.</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_structure_html"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_structure.html">maingo::ubp::UbpStructure</a></div><div class="ttdoc">Struct for storing structure information for the upper bounding solver.</div><div class="ttdef"><b>Definition:</b> ubpStructure.h:35</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html_ab4c0c56943e432eaeda5eb2984a8d4ee"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html#ab4c0c56943e432eaeda5eb2984a8d4ee">maingo::ubp::KnitroProblem::_nineqSquash</a></div><div class="ttdeci">unsigned _nineqSquash</div><div class="ttdef"><b>Definition:</b> knitroProblem.h:126</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html_a136eaa7eaac67cd3155bde2e779237d3"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html#a136eaa7eaac67cd3155bde2e779237d3">maingo::ubp::KnitroProblem::evaluateGA</a></div><div class="ttdeci">int evaluateGA(const double *const x, double *const objGrad, double *const jac)</div><div class="ttdoc">Function called by Knitro to get derivatives of the objective and constraints at point x...</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html_a06238fa671eeb532dcfac051beeff95f"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html#a06238fa671eeb532dcfac051beeff95f">maingo::ubp::KnitroProblem::_optimizationVariables</a></div><div class="ttdeci">std::vector&lt; babBase::OptimizationVariable &gt; _optimizationVariables</div><div class="ttdef"><b>Definition:</b> knitroProblem.h:126</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html_af6bc2325caaf7ab6e70eb032669208e7"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html#af6bc2325caaf7ab6e70eb032669208e7">maingo::ubp::KnitroProblem::KnitroProblem</a></div><div class="ttdeci">KnitroProblem(unsigned nvarIn, unsigned neqIn, unsigned nineqIn, const unsigned nineqSquashIn, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, UbpStructure *structureIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, std::shared_ptr&lt; DagObj &gt; dagObj)</div><div class="ttdoc">Constructor actually used in ubp.cpp. Initializes the corresponding members. </div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html">maingo::ubp::KnitroProblem</a></div><div class="ttdoc">Class for representing problems to be solved by Knitro, providing an interface to the problem definit...</div><div class="ttdef"><b>Definition:</b> knitroProblem.h:43</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html_a21659b0aa98498b69f507007ed93c5f9"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html#a21659b0aa98498b69f507007ed93c5f9">maingo::ubp::KnitroProblem::_nvar</a></div><div class="ttdeci">unsigned _nvar</div><div class="ttdef"><b>Definition:</b> knitroProblem.h:120</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html_a77d82898e6cb1ade896eb72f709f121e"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html#a77d82898e6cb1ade896eb72f709f121e">maingo::ubp::KnitroProblem::_structure</a></div><div class="ttdeci">UbpStructure * _structure</div><div class="ttdef"><b>Definition:</b> knitroProblem.h:124</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html_a484febbf4f1c5393efc46c2207d8f3ad"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html#a484febbf4f1c5393efc46c2207d8f3ad">maingo::ubp::KnitroProblem::_setObjectiveProperties</a></div><div class="ttdeci">void _setObjectiveProperties()</div><div class="ttdoc">Set properties of objective function, i.e., type (linear, quadratic, general) </div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html_a4816dc9edd532a51645e689f803a616a"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html#a4816dc9edd532a51645e689f803a616a">maingo::ubp::KnitroProblem::_setDerivativeProperties</a></div><div class="ttdeci">void _setDerivativeProperties()</div><div class="ttdoc">Set properties of derivatives, i.e., correct indices for non zeros in Jacobian. </div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html_ac55dfe4d8eea4c9c4ebd79a12e9bb06d"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html#ac55dfe4d8eea4c9c4ebd79a12e9bb06d">maingo::ubp::KnitroProblem::_setConstraintProperties</a></div><div class="ttdeci">void _setConstraintProperties()</div><div class="ttdoc">Set properties of constraints, i.e., bounds and type (linear, quadratic, general) ...</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html_a64c0490d313ba65bb3bf740b1c59043c"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html#a64c0490d313ba65bb3bf740b1c59043c">maingo::ubp::KnitroProblem::_setVariableProperties</a></div><div class="ttdeci">void _setVariableProperties()</div><div class="ttdoc">Set properties of variables, i.e., type (continuous, binary, integer) </div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html_a4192883914d02b7e76205e7693f25411"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html#a4192883914d02b7e76205e7693f25411">maingo::ubp::KnitroProblem::_neq</a></div><div class="ttdeci">unsigned _neq</div><div class="ttdef"><b>Definition:</b> knitroProblem.h:123</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html_a5aafe97d4cd0294ca5998f7973a79bfe"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html#a5aafe97d4cd0294ca5998f7973a79bfe">maingo::ubp::KnitroProblem::~KnitroProblem</a></div><div class="ttdeci">virtual ~KnitroProblem()</div><div class="ttdoc">Destructor. </div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_structure_html"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_structure.html">maingo::ubp::UbpStructure</a></div><div class="ttdoc">Struct for storing structure information for the upper bounding solver. </div><div class="ttdef"><b>Definition:</b> ubpStructure.h:30</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html_ab4c0c56943e432eaeda5eb2984a8d4ee"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html#ab4c0c56943e432eaeda5eb2984a8d4ee">maingo::ubp::KnitroProblem::_nineqSquash</a></div><div class="ttdeci">unsigned _nineqSquash</div><div class="ttdef"><b>Definition:</b> knitroProblem.h:122</div></div>
 <div class="ttc" id="bab_opt_var_8h_html"><div class="ttname"><a href="bab_opt_var_8h.html">babOptVar.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html_adb4e43c94df78c14a7b46a9d7e52a9f3"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html#adb4e43c94df78c14a7b46a9d7e52a9f3">maingo::ubp::KnitroProblem::_nineq</a></div><div class="ttdeci">unsigned _nineq</div><div class="ttdef"><b>Definition:</b> knitroProblem.h:125</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html_a8cd4079344ccbac5828fbd998d333f8f"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html#a8cd4079344ccbac5828fbd998d333f8f">maingo::ubp::KnitroProblem::evaluateHess</a></div><div class="ttdeci">int evaluateHess(const double *const x, double objScaler, const double *const lambda, double *const hess)</div><div class="ttdoc">Function called by Knitro to get the hessian of the lagrangian at point x.</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html_adb4e43c94df78c14a7b46a9d7e52a9f3"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html#adb4e43c94df78c14a7b46a9d7e52a9f3">maingo::ubp::KnitroProblem::_nineq</a></div><div class="ttdeci">unsigned _nineq</div><div class="ttdef"><b>Definition:</b> knitroProblem.h:121</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html_a8cd4079344ccbac5828fbd998d333f8f"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html#a8cd4079344ccbac5828fbd998d333f8f">maingo::ubp::KnitroProblem::evaluateHess</a></div><div class="ttdeci">int evaluateHess(const double *const x, double objScaler, const double *const lambda, double *const hess)</div><div class="ttdoc">Function called by Knitro to get the hessian of the lagrangian at point x. </div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html_adfd54311b1a62a9cb423071ce1c436eb"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html#adfd54311b1a62a9cb423071ce1c436eb">maingo::ubp::KnitroProblem::_constraintProperties</a></div><div class="ttdeci">std::shared_ptr&lt; std::vector&lt; Constraint &gt; &gt; _constraintProperties</div><div class="ttdef"><b>Definition:</b> knitroProblem.h:125</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -119,7 +119,7 @@ $(document).ready(function(){initNavTree('knitro_problem_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="knitro_problem_8h.html">knitroProblem.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/lbp_8cpp.html b/doc/html/lbp_8cpp.html
index a91349ecdae28780ea1248b764cdea1848849185..75b60ef1120016dc1f2c2e09f458850892719e1c 100644
--- a/doc/html/lbp_8cpp.html
+++ b/doc/html/lbp_8cpp.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/src/lbp.cpp File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/src/lbp.cpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -91,7 +91,7 @@ $(document).ready(function(){initNavTree('lbp_8cpp.html','');});
 </div><!--header-->
 <div class="contents">
 <div class="textblock"><code>#include &quot;<a class="el" href="lbp_8h_source.html">lbp.h</a>&quot;</code><br />
-<code>#include &quot;<a class="el" href="exceptions_8h_source.html">exceptions.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_m_ai_n_g_o_exception_8h_source.html">MAiNGOException.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="lbp_dag_obj_8h_source.html">lbpDagObj.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="utilities_8h_source.html">utilities.h</a>&quot;</code><br />
 <code>#include &lt;fstream&gt;</code><br />
@@ -104,7 +104,7 @@ $(document).ready(function(){initNavTree('lbp_8cpp.html','');});
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="lbp_8cpp.html">lbp.cpp</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/lbp_8h.html b/doc/html/lbp_8h.html
index c96ce791141a84b40c6ba2f1237c24a368aa0ea1..13a7995488c193bee40ebebc1844af5c603735e5 100644
--- a/doc/html/lbp_8h.html
+++ b/doc/html/lbp_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/lbp.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/lbp.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -89,6 +89,7 @@ $(document).ready(function(){initNavTree('lbp_8h.html','');});
   <div class="summary">
 <a href="#nested-classes">Classes</a> &#124;
 <a href="#namespaces">Namespaces</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
 <a href="#func-members">Functions</a>  </div>
   <div class="headertitle">
 <div class="title">lbp.h File Reference</div>  </div>
@@ -128,11 +129,19 @@ Namespaces</h2></td></tr>
 <tr class="memdesc:namespacemaingo_1_1lbp"><td class="mdescLeft">&#160;</td><td class="mdescRight">namespace holding all essentials of the lower bounding solver <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:ad19f1469072a948e0678836725b1d3e8"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8">maingo::lbp::OBBT</a> { <a class="el" href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8a739b073ddf68d60146dfb7b8f3b24c0c">maingo::lbp::OBBT_FEAS</a> = 0, 
+<a class="el" href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8a207bbc0e97b4a6f7598b447f8b8c8b89">maingo::lbp::OBBT_FEASOPT</a>
+ }</td></tr>
+<tr class="memdesc:ad19f1469072a948e0678836725b1d3e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enum for communicating whether Optimization-Based Bound Tightening should consider only feasibility or also optimality.  <a href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8">More...</a><br /></td></tr>
+<tr class="separator:ad19f1469072a948e0678836725b1d3e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
 Functions</h2></td></tr>
-<tr class="memitem:af2ff1a689d340482f4575c0507b4fa56"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">LowerBoundingSolver</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1lbp.html#af2ff1a689d340482f4575c0507b4fa56">maingo::lbp::make_lbp_solver</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, <a class="el" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="el" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn, std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *constraintPropertiesIn)</td></tr>
-<tr class="memdesc:af2ff1a689d340482f4575c0507b4fa56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Factory function for initializing different lower bounding solver wrappers.  <a href="namespacemaingo_1_1lbp.html#af2ff1a689d340482f4575c0507b4fa56">More...</a><br /></td></tr>
-<tr class="separator:af2ff1a689d340482f4575c0507b4fa56"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa50d84ff66f4ea911a333eb047a8b6ea"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">LowerBoundingSolver</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1lbp.html#aa50d84ff66f4ea911a333eb047a8b6ea">maingo::lbp::make_lbp_solver</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt; settingsIn, std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt; constraintPropertiesIn)</td></tr>
+<tr class="memdesc:aa50d84ff66f4ea911a333eb047a8b6ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Factory function for initializing different lower bounding solver wrappers.  <a href="namespacemaingo_1_1lbp.html#aa50d84ff66f4ea911a333eb047a8b6ea">More...</a><br /></td></tr>
+<tr class="separator:aa50d84ff66f4ea911a333eb047a8b6ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -142,7 +151,7 @@ Functions</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="lbp_8h.html">lbp.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/lbp_8h.js b/doc/html/lbp_8h.js
index 0c0c991c5adec47dfe3ce9a4cd2fedf3d575233a..df9d18b13dff7ac3eb619f896f00946a46a4effd 100644
--- a/doc/html/lbp_8h.js
+++ b/doc/html/lbp_8h.js
@@ -2,5 +2,9 @@ var lbp_8h =
 [
     [ "LbpDualInfo", "structmaingo_1_1lbp_1_1_lbp_dual_info.html", "structmaingo_1_1lbp_1_1_lbp_dual_info" ],
     [ "LowerBoundingSolver", "classmaingo_1_1lbp_1_1_lower_bounding_solver.html", "classmaingo_1_1lbp_1_1_lower_bounding_solver" ],
-    [ "make_lbp_solver", "lbp_8h.html#af2ff1a689d340482f4575c0507b4fa56", null ]
+    [ "OBBT", "lbp_8h.html#ad19f1469072a948e0678836725b1d3e8", [
+      [ "OBBT_FEAS", "lbp_8h.html#ad19f1469072a948e0678836725b1d3e8a739b073ddf68d60146dfb7b8f3b24c0c", null ],
+      [ "OBBT_FEASOPT", "lbp_8h.html#ad19f1469072a948e0678836725b1d3e8a207bbc0e97b4a6f7598b447f8b8c8b89", null ]
+    ] ],
+    [ "make_lbp_solver", "lbp_8h.html#aa50d84ff66f4ea911a333eb047a8b6ea", null ]
 ];
\ No newline at end of file
diff --git a/doc/html/lbp_8h_source.html b/doc/html/lbp_8h_source.html
index d39cf892d7f3c4bf375bfb57b6e0842201fb4e72..1723aabf5ca2bc2e62f2316d28e2c6518ff86615 100644
--- a/doc/html/lbp_8h_source.html
+++ b/doc/html/lbp_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/lbp.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/lbp.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,130 +90,131 @@ $(document).ready(function(){initNavTree('lbp_8h_source.html','');});
 <div class="title">lbp.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="lbp_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file lbp.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing declaration of LowerBoundingSolver class used for</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *        constructing and solving the lower bounding problems and OBBT.</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_m_ai_n_g_odebug_8h.html">MAiNGOdebug.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="constraint_8h.html">constraint.h</a>&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="interval_library_8h.html">intervalLibrary.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="lbp_dag_obj_8h.html">lbpDagObj.h</a>&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="logger_8h.html">logger.h</a>&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="return_codes_8h.html">returnCodes.h</a>&quot;</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="settings_8h.html">settings.h</a>&quot;</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_node_8h.html">babNode.h</a>&quot;</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_utils_8h.html">babUtils.h</a>&quot;</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &lt;list&gt;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keyword">namespace </span>lbp {</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html">   47</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html">LbpDualInfo</a> {</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html#a178540b0c26d82cddddf59854d59bfbd">   48</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html#a178540b0c26d82cddddf59854d59bfbd">multipliers</a>; </div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html#a2ea74da7d73d5e4c01340cfe486b5597">   49</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html#a2ea74da7d73d5e4c01340cfe486b5597">lpLowerBound</a>;             </div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;};</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">   60</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">LowerBoundingSolver</a> {</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a31416f2224eea283c3ae280ed3beb497">LowerBoundingSolver</a>(mc::FFGraph &amp;DAG, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGvars, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGfunctions,</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;                        <span class="keyword">const</span> std::vector&lt;babBase::OptimizationVariable&gt; &amp;variables, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqIn,</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;                        <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqRelaxationOnlyIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqRelaxationOnlyIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqSquashIn,</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;                        <a class="code" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="code" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn, std::vector&lt;Constraint&gt; *constraintPropertiesIn);</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae45e85f9c8bc19bba1510e89b0698a97">   86</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae45e85f9c8bc19bba1510e89b0698a97">~LowerBoundingSolver</a>(){};</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1bd1db09ee19b087b11a761d41dc195d">solve_LBP</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode, <span class="keywordtype">double</span> &amp;lowerBound, std::vector&lt;double&gt; &amp;solutionPoint, <a class="code" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html">LbpDualInfo</a> &amp;dualInfo);</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <a class="code" href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fc">TIGHTENING_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a51baac566450ca4b94cd715b57c38752">solve_OBBT</a>(<a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode, <span class="keyword">const</span> <span class="keywordtype">double</span> currentUBD, <span class="keyword">const</span> <a class="code" href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8">OBBT</a> reductionType);</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fc">TIGHTENING_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1f0229a0978bf619d22afe5a5c5f3e3a">do_constraint_propagation</a>(<a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode, <span class="keyword">const</span> <span class="keywordtype">double</span> currentUBD, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> pass = 3);</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    <a class="code" href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fc">TIGHTENING_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9617d81f28d3a1ba3270d3a73ee81e85">do_dbbt_and_probing</a>(<a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lbpSolutionPoint, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html">LbpDualInfo</a> &amp;dualInfo, <span class="keyword">const</span> <span class="keywordtype">double</span> currentUBD);</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2f1320936ed40642c7cf4cf0fe31d14f">update_incumbent_LBP</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;incumbentBAB);</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1c3d3c5fd2144af3a5e99fb1c74ef772">activate_more_scaling</a>();</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a75d8c7d165cc917a455243f528ea23df">preprocessor_check_options</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;rootNode);</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;  <span class="keyword">protected</span>:</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824e">LINEARIZATION_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a018fd682b724900df5060adfd73a953b">_update_LP</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode);</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4124918b8c196646da6489c6d19a5cb9">_set_variable_bounds</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds);</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a464be8ca82b76704c0ecf60d7f9d2aad">_update_LP_obj</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;                                <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iObj);</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6a57781338bfbdf0b99f3ec474ff3feb">_update_LP_ineq</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;                                 <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneq);</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1aec7459f261f58b6e476fd7eae99581">_update_LP_eq</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxationCv, <span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxationCc, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;                               <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iEq);</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a793016f5e661fbfaf1488f1a6889f3c8">_update_LP_ineqRelaxationOnly</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;                                               <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneqRelaxationOnly);</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a59a4631f9fbe8e1a568fd2a36fac31e2">_update_LP_eqRelaxationOnly</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxationCv, <span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxationCc, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;                                             <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iEqRelaxationOnly);</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aff0358f2e7b23dcabb961d27b71e6642">_update_LP_ineq_squash</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;                                        <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneqSquash);</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8f63bc9db34d63c361e2a5e8943fe6c6">_update_whole_LP_at_linpoint</a>(<span class="keyword">const</span> std::vector&lt;MC&gt; &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;                                      <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin);</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a464be8ca82b76704c0ecf60d7f9d2aad">_update_LP_obj</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;                                <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iObj);</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6a57781338bfbdf0b99f3ec474ff3feb">_update_LP_ineq</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;                                 <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneq);</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1aec7459f261f58b6e476fd7eae99581">_update_LP_eq</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationCvVMC, <span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationCcVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;                               <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iEq);</div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a793016f5e661fbfaf1488f1a6889f3c8">_update_LP_ineqRelaxationOnly</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;                                               <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneqRelaxationOnly);</div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a59a4631f9fbe8e1a568fd2a36fac31e2">_update_LP_eqRelaxationOnly</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationCvVMC, <span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationCcVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;                                             <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iEqRelaxationOnly);</div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;</div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;</div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aff0358f2e7b23dcabb961d27b71e6642">_update_LP_ineq_squash</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;                                        <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneqSquash);</div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;</div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a346ce6af484360fa0d789f02a460ca33">_update_whole_LP_at_vector_linpoints</a>(<span class="keyword">const</span> std::vector&lt;vMC&gt; &amp;resultRelaxationVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoints, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;                                              <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds);</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;</div><div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a77e97f9255980d5edaadd9da571b078f">_equilibrate_and_relax</a>(std::vector&lt;double&gt; &amp;coefficients, <span class="keywordtype">double</span> &amp;rhs, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds);</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;</div><div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aaa7dbb4ba6ef927a0889233378725089">_solve_LP</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode);</div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;</div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90">LP_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4fd9a52441b77eff552c9034ae0fb76d">_get_LP_status</a>();</div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;</div><div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af4e0c02718f150532912a15c213e608d">_get_solution_point</a>(std::vector&lt;double&gt; &amp;solution, <span class="keywordtype">double</span> &amp;etaVal);</div><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;</div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6343f649f960195fc3783b5c0da3a59e">_get_objective_value</a>();</div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;</div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#abd9daa889433074171373fe2e59df217">_get_objective_value_solver</a>();</div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;</div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ac3fddd3adb6e1db739d3377fb1bf3f1f">_get_multipliers</a>(std::vector&lt;double&gt; &amp;multipliers);</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;</div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a3fcb771d5ccdac5d7ee197f6b412044b">_deactivate_objective_function_for_OBBT</a>();</div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;</div><div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a90f45a10a7a5a3a299d63ece51116c58">_modify_LP_for_feasopt_OBBT</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> &amp;currentUBD, std::list&lt;unsigned&gt; &amp;toTreatMax, std::list&lt;unsigned&gt; &amp;toTreatMin);</div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;</div><div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae59a4d355107b80b3e1a6efbc6488b66">_set_optimization_sense_of_variable</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> &amp;iVar, <span class="keyword">const</span> <span class="keywordtype">int</span> &amp;optimizationSense);</div><div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;</div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9ee38ffd8ce3d627bfd70c195f9be58d">_restore_LP_coefficients_after_OBBT</a>();</div><div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;</div><div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8cd8dd30cb32a2fdf90930acf1a98f69">_fix_variable</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> &amp;iVar, <span class="keyword">const</span> <span class="keywordtype">bool</span> fixToLowerBound);</div><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;</div><div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2237722d9bd7702a7eeb0b2620110bca">_check_if_LP_really_infeasible</a>();</div><div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;</div><div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7636a8adae2a2382719873d8ee561f17">_linearize_functions_at_linpoint</a>(std::vector&lt;MC&gt; &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds,</div><div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;                                          mc::FFSubgraph &amp;subgraph, std::vector&lt;mc::FFVar&gt; &amp;functions);</div><div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;</div><div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4fe2354f3e4bbee160964b089710838e">_linearize_functions_at_preset_vector_linpoint</a>(std::vector&lt;vMC&gt; &amp;resultRelaxationVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoints,</div><div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;                                                        <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds,</div><div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;                                                        mc::FFSubgraph &amp;subgraph, std::vector&lt;mc::FFVar&gt; &amp;functions);</div><div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;</div><div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;</div><div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824e">LINEARIZATION_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a88c29043b78956e34cc95ab46eaac9d1">_linearize_model_at_midpoint</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds);</div><div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;</div><div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824e">LINEARIZATION_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a96d0133b5deda10067177dee19fd4f6f">_linearize_model_at_incumbent</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keyword">const</span> <span class="keywordtype">bool</span> holdsIncumbent);</div><div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;</div><div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824e">LINEARIZATION_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4ce48185a33ab3815913f44b823352bb">_linearization_points_Kelley</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode);</div><div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;</div><div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824e">LINEARIZATION_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a0a621db38ecc738283282bbd03a3aacf">_linearization_points_Simplex</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds);</div><div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;</div><div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824e">LINEARIZATION_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2409b4c91942a365cceb10fd7c9dab17">_linearization_points_random</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds);</div><div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;</div><div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824e">LINEARIZATION_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8eb858ee10db606fd5f37c7a9359a943">_linearization_points_Kelley_Simplex</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode);</div><div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;</div><div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a44512a8b2e88dee8c859b382c7777beb">_update_LP_nonlinear_linear</a>(<span class="keyword">const</span> std::vector&lt;vMC&gt; &amp;resultRelaxationVMCNonlinear, <span class="keyword">const</span> std::vector&lt;MC&gt; &amp;resultRelaxationLinear, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint,</div><div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;                                     <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;scaledPoints, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds);</div><div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;</div><div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aa0074d7d40a6c7d983ed738cfb501a5e">_update_LP_nonlinear</a>(<span class="keyword">const</span> std::vector&lt;MC&gt; &amp;resultRelaxationNonlinear, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint,</div><div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;                              <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> iLin);</div><div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;</div><div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af8be99dda0a3968034aed1c5a0d9fba4">_reset_LP</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds);</div><div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;</div><div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4dd432d487c2099767f0d6de64711bb9">_compute_and_rotate_simplex</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> dim, <span class="keyword">const</span> <span class="keywordtype">double</span> angleIn, <span class="keyword">const</span> <span class="keywordtype">double</span> sphereRadius, std::vector&lt;std::vector&lt;double&gt;&gt; &amp;simplexPoints);</div><div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;</div><div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a13d16bea111e56762479856995fe8435">_choose_good_lin_points</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">bool</span> firstTime = <span class="keyword">true</span>);</div><div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;</div><div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aafadf6738f60cca6831074ae54f0647d">_fallback_to_intervals</a>(<span class="keywordtype">double</span> &amp;newLBD);</div><div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;</div><div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9f37648a18e394088679dc92701dd76f">_turn_off_specific_options</a>();</div><div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;</div><div class="line"><a name="l00610"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a456cbe28fac6fbf3508b09b04d1ea846">  610</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a456cbe28fac6fbf3508b09b04d1ea846">_truncate_value</a>(<span class="keywordtype">double</span> &amp;value, <span class="keyword">const</span> <span class="keywordtype">double</span> tolerance) { value = std::trunc(value * (tolerance)) / (tolerance); }</div><div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;</div><div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;<span class="preprocessor">#ifdef LP__OPTIMALITY_CHECK</span></div><div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;</div><div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a805403d014eefe22b8312c4c1b80a877">_check_infeasibility</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode);</div><div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;</div><div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2fa3ad57113343a493feac9a5f4c2667">_check_feasibility</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;solution);</div><div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;</div><div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a761787f1ad3ef2c3c7b8d4e5986e0a47">_check_optimality</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode, <span class="keyword">const</span> <span class="keywordtype">double</span> newLBD, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;solution,</div><div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;                                                <span class="keyword">const</span> <span class="keywordtype">double</span> etaVal, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;multipliers);</div><div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;</div><div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ad73a525d4fbef8238e26dd95890f2b2b">_print_LP</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds);</div><div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;</div><div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;</div><div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;<span class="preprocessor">#ifdef LP__WRITE_CHECK_FILES</span></div><div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;</div><div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> _write_LP_to_file(std::string &amp;fileName);</div><div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;</div><div class="line"><a name="l00665"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a3b4dccb1190a30d49e1e9272120ba707">  665</a></span>&#160;    std::vector&lt;std::vector&lt;std::vector&lt;double&gt;&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a3b4dccb1190a30d49e1e9272120ba707">_matrixObj</a>;                </div><div class="line"><a name="l00666"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a0fd4e70eacba63d56736ebf9602434cc">  666</a></span>&#160;    std::vector&lt;std::vector&lt;std::vector&lt;double&gt;&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a0fd4e70eacba63d56736ebf9602434cc">_matrixIneq</a>;               </div><div class="line"><a name="l00667"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8ef7d876bfe5e621b0d9dce7e00f4e8f">  667</a></span>&#160;    std::vector&lt;std::vector&lt;std::vector&lt;double&gt;&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8ef7d876bfe5e621b0d9dce7e00f4e8f">_matrixEq1</a>;                </div><div class="line"><a name="l00668"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a75e8efba11ed031032d7e75513f10ba1">  668</a></span>&#160;    std::vector&lt;std::vector&lt;std::vector&lt;double&gt;&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a75e8efba11ed031032d7e75513f10ba1">_matrixEq2</a>;                </div><div class="line"><a name="l00669"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a02b3a186b2fc576f9b5ea705df32a260">  669</a></span>&#160;    std::vector&lt;std::vector&lt;std::vector&lt;double&gt;&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a02b3a186b2fc576f9b5ea705df32a260">_matrixIneqRelaxationOnly</a>; </div><div class="line"><a name="l00670"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a05546b786f27f965b411bf39944e2d61">  670</a></span>&#160;    std::vector&lt;std::vector&lt;std::vector&lt;double&gt;&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a05546b786f27f965b411bf39944e2d61">_matrixEqRelaxationOnly1</a>;  </div><div class="line"><a name="l00671"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a70c32308c7d93c64af5edce4ce6412b7">  671</a></span>&#160;    std::vector&lt;std::vector&lt;std::vector&lt;double&gt;&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a70c32308c7d93c64af5edce4ce6412b7">_matrixEqRelaxationOnly2</a>;  </div><div class="line"><a name="l00672"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6fa683114a6f2d99b9963b991d089e89">  672</a></span>&#160;    std::vector&lt;std::vector&lt;std::vector&lt;double&gt;&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6fa683114a6f2d99b9963b991d089e89">_matrixIneqSquash</a>;         </div><div class="line"><a name="l00673"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a443c3bf5e7640f49f8fa7b5503ac9371">  673</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a443c3bf5e7640f49f8fa7b5503ac9371">_rhsObj</a>;                                </div><div class="line"><a name="l00674"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#abc5d2f11849c00d60b5c181e3fc1ecc5">  674</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#abc5d2f11849c00d60b5c181e3fc1ecc5">_rhsIneq</a>;                               </div><div class="line"><a name="l00675"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7d227b1709674b820d8bc7c0466aaa13">  675</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7d227b1709674b820d8bc7c0466aaa13">_rhsEq1</a>;                                </div><div class="line"><a name="l00676"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a56a7df7c8fc8858597b8cdb8985949cd">  676</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a56a7df7c8fc8858597b8cdb8985949cd">_rhsEq2</a>;                                </div><div class="line"><a name="l00677"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a687c42fa025369080f4fa0745a5a2256">  677</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a687c42fa025369080f4fa0745a5a2256">_rhsIneqRelaxationOnly</a>;                 </div><div class="line"><a name="l00678"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a53ec1c841361380f907fe4bc059096f3">  678</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a53ec1c841361380f907fe4bc059096f3">_rhsEqRelaxationOnly1</a>;                  </div><div class="line"><a name="l00679"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae4517e4a83ca2c5e58a22d5725aea439">  679</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae4517e4a83ca2c5e58a22d5725aea439">_rhsEqRelaxationOnly2</a>;                  </div><div class="line"><a name="l00680"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af5a66b5283474172bf128f2b2c3a4ba7">  680</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af5a66b5283474172bf128f2b2c3a4ba7">_rhsIneqSquash</a>;                         </div><div class="line"><a name="l00683"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6a6c925badc9b14fb61232aceb859b9c">  683</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6a6c925badc9b14fb61232aceb859b9c">_incumbent</a>;                            </div><div class="line"><a name="l00684"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a67b22b446040aa9148dbbd411ad928bb">  684</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a67b22b446040aa9148dbbd411ad928bb">_objectiveScalingFactors</a>; </div><div class="line"><a name="l00690"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a807d99cf52ff7bcfa7948e03b585ea54">  690</a></span>&#160;    std::shared_ptr&lt;DagObj&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a807d99cf52ff7bcfa7948e03b585ea54">_DAGobj</a>;                </div><div class="line"><a name="l00691"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2277a8ee8f3f41a9498c43add63835c4">  691</a></span>&#160;    <a class="code" href="structmaingo_1_1_settings.html">Settings</a> *<a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2277a8ee8f3f41a9498c43add63835c4">_maingoSettings</a>;                      </div><div class="line"><a name="l00692"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ac82365b8f4f2d24466e60bbf01042142">  692</a></span>&#160;    <a class="code" href="classmaingo_1_1_logger.html">Logger</a> *<a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ac82365b8f4f2d24466e60bbf01042142">_logger</a>;                                </div><div class="line"><a name="l00693"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1b23a7c1621517ac4506bd043d43950e">  693</a></span>&#160;    std::vector&lt;Constraint&gt; *<a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1b23a7c1621517ac4506bd043d43950e">_constraintProperties</a>; </div><div class="line"><a name="l00700"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8fc065971f7753722d93201222f91063">  700</a></span>&#160;    std::vector&lt;unsigned&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8fc065971f7753722d93201222f91063">_nLinObj</a>;                                </div><div class="line"><a name="l00701"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a3bb190287b40d8ff446184a0ace005bf">  701</a></span>&#160;    std::vector&lt;unsigned&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a3bb190287b40d8ff446184a0ace005bf">_nLinIneq</a>;                               </div><div class="line"><a name="l00702"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ace0bc5168f34d29839df34ff9b8bf511">  702</a></span>&#160;    std::vector&lt;unsigned&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ace0bc5168f34d29839df34ff9b8bf511">_nLinEq</a>;                                 </div><div class="line"><a name="l00703"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ac6734ae698e1c511059e6c0004f77c7b">  703</a></span>&#160;    std::vector&lt;unsigned&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ac6734ae698e1c511059e6c0004f77c7b">_nLinIneqRelaxationOnly</a>;                 </div><div class="line"><a name="l00704"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a63aa6a0843524f8f1ffefa5763cc3c80">  704</a></span>&#160;    std::vector&lt;unsigned&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a63aa6a0843524f8f1ffefa5763cc3c80">_nLinEqRelaxationOnly</a>;                   </div><div class="line"><a name="l00705"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a06f93c5936fb209eca44cd5485363488">  705</a></span>&#160;    std::vector&lt;unsigned&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a06f93c5936fb209eca44cd5485363488">_nLinIneqSquash</a>;                         </div><div class="line"><a name="l00706"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a994248a0caff4424b631b4ad06e05294">  706</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a994248a0caff4424b631b4ad06e05294">_maxnParticipatingVariables</a>;                          </div><div class="line"><a name="l00707"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a5e059ef32469739da674be2946048dd0">  707</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a5e059ef32469739da674be2946048dd0">_nvar</a>;                                          </div><div class="line"><a name="l00708"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a99567ba1637a154ffdaea2a7f532a39c">  708</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a99567ba1637a154ffdaea2a7f532a39c">_nineq</a>;                                         </div><div class="line"><a name="l00709"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6ee4019ccdd8ec662f69586121be16b0">  709</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6ee4019ccdd8ec662f69586121be16b0">_neq</a>;                                           </div><div class="line"><a name="l00710"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#acc43848f17dfd2e2941e21e3bd308737">  710</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#acc43848f17dfd2e2941e21e3bd308737">_nineqRelaxationOnly</a>;                           </div><div class="line"><a name="l00711"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a637f881b8ce5464725a611fde5ae5bc2">  711</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a637f881b8ce5464725a611fde5ae5bc2">_neqRelaxationOnly</a>;                             </div><div class="line"><a name="l00712"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af339d8b557668fa7f961faf44c4cbf6b">  712</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af339d8b557668fa7f961faf44c4cbf6b">_nineqSquash</a>;                                   </div><div class="line"><a name="l00713"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a39ef7296e50fb200934ff74a017e43bf">  713</a></span>&#160;    std::vector&lt;babBase::OptimizationVariable&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a39ef7296e50fb200934ff74a017e43bf">_originalVariables</a>; </div><div class="line"><a name="l00714"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ab2c6d75aa915dd5e3296b0873d39acfd">  714</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ab2c6d75aa915dd5e3296b0873d39acfd">_objectiveValue</a>;                                        </div><div class="line"><a name="l00715"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae9f3f49ebc4c635d2c38abbf42c9f256">  715</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae9f3f49ebc4c635d2c38abbf42c9f256">_solutionPoint</a>;                            </div><div class="line"><a name="l00716"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ad1db6e887f8b891d267b0347f17fe8db">  716</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ad1db6e887f8b891d267b0347f17fe8db">_multipliers</a>;                              </div><div class="line"><a name="l00717"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af0baca6c1bd4847c2c3ab98e3c6c4adb">  717</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af0baca6c1bd4847c2c3ab98e3c6c4adb">_lowerVarBounds</a>;                           </div><div class="line"><a name="l00718"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae8e6470d9c422e32457e7dd7e7a8cc50">  718</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae8e6470d9c422e32457e7dd7e7a8cc50">_upperVarBounds</a>;                           </div><div class="line"><a name="l00719"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7952199940d657eed365a660f4538527">  719</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90">LP_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7952199940d657eed365a660f4538527">_LPstatus</a>;                                          </div><div class="line"><a name="l00720"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aaa92d78b7ce6a1b2939131063bd6f68a">  720</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aaa92d78b7ce6a1b2939131063bd6f68a">_computationTol</a>;                                        </div><div class="line"><a name="l00721"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1994bc43cf051908c35889bb08d3cb02">  721</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1994bc43cf051908c35889bb08d3cb02">_differentNumberOfLins</a> = <span class="keyword">false</span>;                           </div><div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a124cee8eb569d80dbe8c162e412906d8">_solve_probing_LBP</a>(<a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode, <a class="code" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html">LbpDualInfo</a> &amp;dualInfo,</div><div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160;                                         <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> iVar, <span class="keyword">const</span> <span class="keywordtype">bool</span> fixToLowerBound);</div><div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;</div><div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a0fa8b386f6bd8a3803e1c8fbfbde6e64">_set_number_of_linpoints</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> LBP_linPoints);</div><div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;</div><div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160;</div><div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;    <span class="comment">// Prevent use of default copy constructor and copy assignment operator by declaring them private:</span></div><div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;    <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a31416f2224eea283c3ae280ed3beb497">LowerBoundingSolver</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">LowerBoundingSolver</a> &amp;);            </div><div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160;    <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">LowerBoundingSolver</a> &amp;<a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7a7062b87f2074558f67c7cbbe397b58">operator=</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">LowerBoundingSolver</a> &amp;); </div><div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;};</div><div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160;</div><div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;std::shared_ptr&lt;LowerBoundingSolver&gt; <a class="code" href="namespacemaingo_1_1lbp.html#af2ff1a689d340482f4575c0507b4fa56">make_lbp_solver</a>(mc::FFGraph &amp;DAG, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGvars, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGfunctions,</div><div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;                                                     <span class="keyword">const</span> std::vector&lt;babBase::OptimizationVariable&gt; &amp;variables, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqIn,</div><div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;                                                     <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqRelaxationOnlyIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqRelaxationOnlyIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqSquashIn,</div><div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160;                                                     <a class="code" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="code" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn, std::vector&lt;Constraint&gt; *constraintPropertiesIn);</div><div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160;</div><div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;</div><div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;}    <span class="comment">// end namespace lbp</span></div><div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;</div><div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160;</div><div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></div><div class="ttdoc">Wrapper for handling the lower bounding problems as well as optimization-based bounds tightening (OBB...</div><div class="ttdef"><b>Definition:</b> lbp.h:60</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a9f37648a18e394088679dc92701dd76f"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9f37648a18e394088679dc92701dd76f">maingo::lbp::LowerBoundingSolver::_turn_off_specific_options</a></div><div class="ttdeci">virtual void _turn_off_specific_options()</div><div class="ttdoc">Virtual function for checking if a specific option has to be turned off for a given lower bounding so...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:2103</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a3bb190287b40d8ff446184a0ace005bf"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a3bb190287b40d8ff446184a0ace005bf">maingo::lbp::LowerBoundingSolver::_nLinIneq</a></div><div class="ttdeci">std::vector&lt; unsigned &gt; _nLinIneq</div><div class="ttdef"><b>Definition:</b> lbp.h:701</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_ae4517e4a83ca2c5e58a22d5725aea439"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae4517e4a83ca2c5e58a22d5725aea439">maingo::lbp::LowerBoundingSolver::_rhsEqRelaxationOnly2</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; _rhsEqRelaxationOnly2</div><div class="ttdef"><b>Definition:</b> lbp.h:679</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a6a57781338bfbdf0b99f3ec474ff3feb"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6a57781338bfbdf0b99f3ec474ff3feb">maingo::lbp::LowerBoundingSolver::_update_LP_ineq</a></div><div class="ttdeci">virtual void _update_LP_ineq(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneq)</div><div class="ttdoc">Virtual auxiliary function for updating LP inequalities, i.e., processing the linearization of the in...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1581</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_ac82365b8f4f2d24466e60bbf01042142"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ac82365b8f4f2d24466e60bbf01042142">maingo::lbp::LowerBoundingSolver::_logger</a></div><div class="ttdeci">Logger * _logger</div><div class="ttdef"><b>Definition:</b> lbp.h:692</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a1b23a7c1621517ac4506bd043d43950e"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1b23a7c1621517ac4506bd043d43950e">maingo::lbp::LowerBoundingSolver::_constraintProperties</a></div><div class="ttdeci">std::vector&lt; Constraint &gt; * _constraintProperties</div><div class="ttdef"><b>Definition:</b> lbp.h:693</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a2f1320936ed40642c7cf4cf0fe31d14f"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2f1320936ed40642c7cf4cf0fe31d14f">maingo::lbp::LowerBoundingSolver::update_incumbent_LBP</a></div><div class="ttdeci">void update_incumbent_LBP(const std::vector&lt; double &gt; &amp;incumbentBAB)</div><div class="ttdoc">Function called by the B&amp;B solver to update the incumbent and the ID of the node currently holding it...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1289</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a39ef7296e50fb200934ff74a017e43bf"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a39ef7296e50fb200934ff74a017e43bf">maingo::lbp::LowerBoundingSolver::_originalVariables</a></div><div class="ttdeci">std::vector&lt; babBase::OptimizationVariable &gt; _originalVariables</div><div class="ttdef"><b>Definition:</b> lbp.h:713</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a88c29043b78956e34cc95ab46eaac9d1"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a88c29043b78956e34cc95ab46eaac9d1">maingo::lbp::LowerBoundingSolver::_linearize_model_at_midpoint</a></div><div class="ttdeci">LINEARIZATION_RETCODE _linearize_model_at_midpoint(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</div><div class="ttdoc">This function linearizes each function of the model at the middle point of the underlying box.</div><div class="ttdef"><b>Definition:</b> lbpLinearizationStrats.cpp:31</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a13d16bea111e56762479856995fe8435"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a13d16bea111e56762479856995fe8435">maingo::lbp::LowerBoundingSolver::_choose_good_lin_points</a></div><div class="ttdeci">void _choose_good_lin_points(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, bool firstTime=true)</div><div class="ttdoc">Heuristical determination of good linearization points. This function is in testing phasing and is no...</div><div class="ttdef"><b>Definition:</b> lbpLinearizationStrats.cpp:695</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a761787f1ad3ef2c3c7b8d4e5986e0a47"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a761787f1ad3ef2c3c7b8d4e5986e0a47">maingo::lbp::LowerBoundingSolver::_check_optimality</a></div><div class="ttdeci">virtual SUBSOLVER_RETCODE _check_optimality(const babBase::BabNode &amp;currentNode, const double newLBD, const std::vector&lt; double &gt; &amp;solution, const double etaVal, const std::vector&lt; double &gt; &amp;multipliers)</div><div class="ttdoc">Virtual function for checking if the solution point returned by the LP solver is really optimal.</div></div>
-<div class="ttc" id="namespacemaingo_1_1lbp_html_ad19f1469072a948e0678836725b1d3e8"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8">maingo::lbp::OBBT</a></div><div class="ttdeci">OBBT</div><div class="ttdoc">Enum for communicating whether Optimization-Based Bound Tightening should consider only feasibility o...</div><div class="ttdef"><b>Definition:</b> settings.h:89</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a63aa6a0843524f8f1ffefa5763cc3c80"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a63aa6a0843524f8f1ffefa5763cc3c80">maingo::lbp::LowerBoundingSolver::_nLinEqRelaxationOnly</a></div><div class="ttdeci">std::vector&lt; unsigned &gt; _nLinEqRelaxationOnly</div><div class="ttdef"><b>Definition:</b> lbp.h:704</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a90f45a10a7a5a3a299d63ece51116c58"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a90f45a10a7a5a3a299d63ece51116c58">maingo::lbp::LowerBoundingSolver::_modify_LP_for_feasopt_OBBT</a></div><div class="ttdeci">virtual void _modify_LP_for_feasopt_OBBT(const double &amp;currentUBD, std::list&lt; unsigned &gt; &amp;toTreatMax, std::list&lt; unsigned &gt; &amp;toTreatMin)</div><div class="ttdoc">Virtual function modifying the LP for feasibility-optimality OBBT.</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1977</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_aaa7dbb4ba6ef927a0889233378725089"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aaa7dbb4ba6ef927a0889233378725089">maingo::lbp::LowerBoundingSolver::_solve_LP</a></div><div class="ttdeci">virtual void _solve_LP(const babBase::BabNode &amp;currentNode)</div><div class="ttdoc">Virtual function for solving the currently constructed linear program. This function also internally ...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1846</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a53ec1c841361380f907fe4bc059096f3"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a53ec1c841361380f907fe4bc059096f3">maingo::lbp::LowerBoundingSolver::_rhsEqRelaxationOnly1</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; _rhsEqRelaxationOnly1</div><div class="ttdef"><b>Definition:</b> lbp.h:678</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a5e059ef32469739da674be2946048dd0"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a5e059ef32469739da674be2946048dd0">maingo::lbp::LowerBoundingSolver::_nvar</a></div><div class="ttdeci">const unsigned _nvar</div><div class="ttdef"><b>Definition:</b> lbp.h:707</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a0fa8b386f6bd8a3803e1c8fbfbde6e64"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a0fa8b386f6bd8a3803e1c8fbfbde6e64">maingo::lbp::LowerBoundingSolver::_set_number_of_linpoints</a></div><div class="ttdeci">void _set_number_of_linpoints(const unsigned int LBP_linPoints)</div><div class="ttdoc">Function for setting the correct number of linearization points depending on the LBP_linpoints settin...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:233</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html"><div class="ttname"><a href="classbab_base_1_1_bab_node.html">babBase::BabNode</a></div><div class="ttdoc">Class representing a node in the Branch-and-Bound tree.</div><div class="ttdef"><b>Definition:</b> babNode.h:35</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a06f93c5936fb209eca44cd5485363488"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a06f93c5936fb209eca44cd5485363488">maingo::lbp::LowerBoundingSolver::_nLinIneqSquash</a></div><div class="ttdeci">std::vector&lt; unsigned &gt; _nLinIneqSquash</div><div class="ttdef"><b>Definition:</b> lbp.h:705</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a464be8ca82b76704c0ecf60d7f9d2aad"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a464be8ca82b76704c0ecf60d7f9d2aad">maingo::lbp::LowerBoundingSolver::_update_LP_obj</a></div><div class="ttdeci">virtual void _update_LP_obj(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iObj)</div><div class="ttdoc">Virtual auxiliary function for updating LP objective, i.e., processing the linearization of the objec...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1565</div></div>
+<a href="lbp_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_m_ai_n_g_odebug_8h.html">MAiNGOdebug.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="constraint_8h.html">constraint.h</a>&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="interval_library_8h.html">intervalLibrary.h</a>&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="lbp_dag_obj_8h.html">lbpDagObj.h</a>&quot;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="logger_8h.html">logger.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="return_codes_8h.html">returnCodes.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="settings_8h.html">settings.h</a>&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_node_8h.html">babNode.h</a>&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_utils_8h.html">babUtils.h</a>&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;list&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="keyword">namespace </span>lbp {</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8">   41</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8">OBBT</a> {</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8a739b073ddf68d60146dfb7b8f3b24c0c">   42</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8a739b073ddf68d60146dfb7b8f3b24c0c">OBBT_FEAS</a> = 0, </div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8a207bbc0e97b4a6f7598b447f8b8c8b89">   43</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8a207bbc0e97b4a6f7598b447f8b8c8b89">OBBT_FEASOPT</a>   </div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;};</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html">   52</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html">LbpDualInfo</a> {</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html#a178540b0c26d82cddddf59854d59bfbd">   53</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html#a178540b0c26d82cddddf59854d59bfbd">multipliers</a>; </div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html#a2ea74da7d73d5e4c01340cfe486b5597">   54</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html#a2ea74da7d73d5e4c01340cfe486b5597">lpLowerBound</a>;             </div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;};</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">   65</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">LowerBoundingSolver</a> {</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9680e92120bb8a0693095f965421d7d7">LowerBoundingSolver</a>(mc::FFGraph &amp;DAG, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGvars, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGfunctions,</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;                        <span class="keyword">const</span> std::vector&lt;babBase::OptimizationVariable&gt; &amp;variables, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqIn,</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;                        <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqRelaxationOnlyIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqRelaxationOnlyIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqSquashIn,</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;                        std::shared_ptr&lt;Settings&gt; settingsIn, std::shared_ptr&lt;Logger&gt; loggerIn, std::shared_ptr&lt;std::vector&lt;Constraint&gt;&gt; constraintPropertiesIn);</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae45e85f9c8bc19bba1510e89b0698a97">   91</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae45e85f9c8bc19bba1510e89b0698a97">~LowerBoundingSolver</a>(){};</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1bd1db09ee19b087b11a761d41dc195d">solve_LBP</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode, <span class="keywordtype">double</span> &amp;lowerBound, std::vector&lt;double&gt; &amp;solutionPoint, <a class="code" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html">LbpDualInfo</a> &amp;dualInfo);</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    <a class="code" href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fc">TIGHTENING_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a51baac566450ca4b94cd715b57c38752">solve_OBBT</a>(<a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode, <span class="keyword">const</span> <span class="keywordtype">double</span> currentUBD, <span class="keyword">const</span> <a class="code" href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8">OBBT</a> reductionType);</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fc">TIGHTENING_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1f0229a0978bf619d22afe5a5c5f3e3a">do_constraint_propagation</a>(<a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode, <span class="keyword">const</span> <span class="keywordtype">double</span> currentUBD, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> pass = 3);</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    <a class="code" href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fc">TIGHTENING_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9617d81f28d3a1ba3270d3a73ee81e85">do_dbbt_and_probing</a>(<a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lbpSolutionPoint, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html">LbpDualInfo</a> &amp;dualInfo, <span class="keyword">const</span> <span class="keywordtype">double</span> currentUBD);</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2f1320936ed40642c7cf4cf0fe31d14f">update_incumbent_LBP</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;incumbentBAB);</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1c3d3c5fd2144af3a5e99fb1c74ef772">activate_more_scaling</a>();</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a75d8c7d165cc917a455243f528ea23df">preprocessor_check_options</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;rootNode);</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;  <span class="keyword">protected</span>:</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824e">LINEARIZATION_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a018fd682b724900df5060adfd73a953b">_update_LP</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode);</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4124918b8c196646da6489c6d19a5cb9">_set_variable_bounds</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds);</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a464be8ca82b76704c0ecf60d7f9d2aad">_update_LP_obj</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;                                <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iObj);</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6a57781338bfbdf0b99f3ec474ff3feb">_update_LP_ineq</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;                                 <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneq);</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1aec7459f261f58b6e476fd7eae99581">_update_LP_eq</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxationCv, <span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxationCc, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;                               <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iEq);</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a793016f5e661fbfaf1488f1a6889f3c8">_update_LP_ineqRelaxationOnly</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;                                               <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneqRelaxationOnly);</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a59a4631f9fbe8e1a568fd2a36fac31e2">_update_LP_eqRelaxationOnly</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxationCv, <span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxationCc, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;                                             <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iEqRelaxationOnly);</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aff0358f2e7b23dcabb961d27b71e6642">_update_LP_ineq_squash</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;                                        <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneqSquash);</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8f63bc9db34d63c361e2a5e8943fe6c6">_update_whole_LP_at_linpoint</a>(<span class="keyword">const</span> std::vector&lt;MC&gt; &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;                                      <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin);</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a464be8ca82b76704c0ecf60d7f9d2aad">_update_LP_obj</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;                                <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iObj);</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6a57781338bfbdf0b99f3ec474ff3feb">_update_LP_ineq</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;                                 <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneq);</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1aec7459f261f58b6e476fd7eae99581">_update_LP_eq</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationCvVMC, <span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationCcVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;                               <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iEq);</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a793016f5e661fbfaf1488f1a6889f3c8">_update_LP_ineqRelaxationOnly</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;                                               <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneqRelaxationOnly);</div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;</div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a59a4631f9fbe8e1a568fd2a36fac31e2">_update_LP_eqRelaxationOnly</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationCvVMC, <span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationCcVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;                                             <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iEqRelaxationOnly);</div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;</div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aff0358f2e7b23dcabb961d27b71e6642">_update_LP_ineq_squash</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;                                        <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneqSquash);</div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;</div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a346ce6af484360fa0d789f02a460ca33">_update_whole_LP_at_vector_linpoints</a>(<span class="keyword">const</span> std::vector&lt;vMC&gt; &amp;resultRelaxationVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoints, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;                                              <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds);</div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;</div><div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a77e97f9255980d5edaadd9da571b078f">_equilibrate_and_relax</a>(std::vector&lt;double&gt; &amp;coefficients, <span class="keywordtype">double</span> &amp;rhs, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds);</div><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;</div><div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aaa7dbb4ba6ef927a0889233378725089">_solve_LP</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode);</div><div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;</div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90">LP_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4fd9a52441b77eff552c9034ae0fb76d">_get_LP_status</a>();</div><div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;</div><div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af4e0c02718f150532912a15c213e608d">_get_solution_point</a>(std::vector&lt;double&gt; &amp;solution, <span class="keywordtype">double</span> &amp;etaVal);</div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;</div><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6343f649f960195fc3783b5c0da3a59e">_get_objective_value</a>();</div><div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;</div><div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#abd9daa889433074171373fe2e59df217">_get_objective_value_solver</a>();</div><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;</div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ac3fddd3adb6e1db739d3377fb1bf3f1f">_get_multipliers</a>(std::vector&lt;double&gt; &amp;multipliers);</div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;</div><div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a3fcb771d5ccdac5d7ee197f6b412044b">_deactivate_objective_function_for_OBBT</a>();</div><div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;</div><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a90f45a10a7a5a3a299d63ece51116c58">_modify_LP_for_feasopt_OBBT</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> &amp;currentUBD, std::list&lt;unsigned&gt; &amp;toTreatMax, std::list&lt;unsigned&gt; &amp;toTreatMin);</div><div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;</div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae59a4d355107b80b3e1a6efbc6488b66">_set_optimization_sense_of_variable</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> &amp;iVar, <span class="keyword">const</span> <span class="keywordtype">int</span> &amp;optimizationSense);</div><div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;</div><div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9ee38ffd8ce3d627bfd70c195f9be58d">_restore_LP_coefficients_after_OBBT</a>();</div><div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;</div><div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8cd8dd30cb32a2fdf90930acf1a98f69">_fix_variable</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> &amp;iVar, <span class="keyword">const</span> <span class="keywordtype">bool</span> fixToLowerBound);</div><div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;</div><div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2237722d9bd7702a7eeb0b2620110bca">_check_if_LP_really_infeasible</a>();</div><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;</div><div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7636a8adae2a2382719873d8ee561f17">_linearize_functions_at_linpoint</a>(std::vector&lt;MC&gt; &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds,</div><div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;                                          mc::FFSubgraph &amp;subgraph, std::vector&lt;mc::FFVar&gt; &amp;functions);</div><div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;</div><div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4fe2354f3e4bbee160964b089710838e">_linearize_functions_at_preset_vector_linpoint</a>(std::vector&lt;vMC&gt; &amp;resultRelaxationVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoints,</div><div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;                                                        <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds,</div><div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;                                                        mc::FFSubgraph &amp;subgraph, std::vector&lt;mc::FFVar&gt; &amp;functions);</div><div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;</div><div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;</div><div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824e">LINEARIZATION_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a88c29043b78956e34cc95ab46eaac9d1">_linearize_model_at_midpoint</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds);</div><div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;</div><div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824e">LINEARIZATION_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a96d0133b5deda10067177dee19fd4f6f">_linearize_model_at_incumbent</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keyword">const</span> <span class="keywordtype">bool</span> holdsIncumbent);</div><div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;</div><div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824e">LINEARIZATION_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4ce48185a33ab3815913f44b823352bb">_linearization_points_Kelley</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode);</div><div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;</div><div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824e">LINEARIZATION_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a0a621db38ecc738283282bbd03a3aacf">_linearization_points_Simplex</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds);</div><div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;</div><div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824e">LINEARIZATION_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2409b4c91942a365cceb10fd7c9dab17">_linearization_points_random</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds);</div><div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;</div><div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824e">LINEARIZATION_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8eb858ee10db606fd5f37c7a9359a943">_linearization_points_Kelley_Simplex</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode);</div><div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;</div><div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a44512a8b2e88dee8c859b382c7777beb">_update_LP_nonlinear_linear</a>(<span class="keyword">const</span> std::vector&lt;vMC&gt; &amp;resultRelaxationVMCNonlinear, <span class="keyword">const</span> std::vector&lt;MC&gt; &amp;resultRelaxationLinear, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint,</div><div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;                                     <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;scaledPoints, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds);</div><div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;</div><div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aa0074d7d40a6c7d983ed738cfb501a5e">_update_LP_nonlinear</a>(<span class="keyword">const</span> std::vector&lt;MC&gt; &amp;resultRelaxationNonlinear, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint,</div><div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;                              <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> iLin);</div><div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;</div><div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af8be99dda0a3968034aed1c5a0d9fba4">_reset_LP</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds);</div><div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;</div><div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4dd432d487c2099767f0d6de64711bb9">_compute_and_rotate_simplex</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> dim, <span class="keyword">const</span> <span class="keywordtype">double</span> angleIn, <span class="keyword">const</span> <span class="keywordtype">double</span> sphereRadius, std::vector&lt;std::vector&lt;double&gt;&gt; &amp;simplexPoints);</div><div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;</div><div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a13d16bea111e56762479856995fe8435">_choose_good_lin_points</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">bool</span> firstTime = <span class="keyword">true</span>);</div><div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;</div><div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aafadf6738f60cca6831074ae54f0647d">_fallback_to_intervals</a>(<span class="keywordtype">double</span> &amp;newLBD);</div><div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;</div><div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9f37648a18e394088679dc92701dd76f">_turn_off_specific_options</a>();</div><div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;</div><div class="line"><a name="l00615"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a456cbe28fac6fbf3508b09b04d1ea846">  615</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a456cbe28fac6fbf3508b09b04d1ea846">_truncate_value</a>(<span class="keywordtype">double</span> &amp;value, <span class="keyword">const</span> <span class="keywordtype">double</span> tolerance) { value = std::trunc(value * (tolerance)) / (tolerance); }</div><div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;</div><div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;<span class="preprocessor">#ifdef LP__OPTIMALITY_CHECK</span></div><div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;</div><div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a805403d014eefe22b8312c4c1b80a877">_check_infeasibility</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode);</div><div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;</div><div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2fa3ad57113343a493feac9a5f4c2667">_check_feasibility</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;solution);</div><div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;</div><div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a761787f1ad3ef2c3c7b8d4e5986e0a47">_check_optimality</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode, <span class="keyword">const</span> <span class="keywordtype">double</span> newLBD, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;solution,</div><div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;                                                <span class="keyword">const</span> <span class="keywordtype">double</span> etaVal, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;multipliers);</div><div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;</div><div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ad73a525d4fbef8238e26dd95890f2b2b">_print_LP</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds);</div><div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;</div><div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;</div><div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;<span class="preprocessor">#ifdef LP__WRITE_CHECK_FILES</span></div><div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;</div><div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> _write_LP_to_file(std::string &amp;fileName);</div><div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;</div><div class="line"><a name="l00670"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a3b4dccb1190a30d49e1e9272120ba707">  670</a></span>&#160;    std::vector&lt;std::vector&lt;std::vector&lt;double&gt;&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a3b4dccb1190a30d49e1e9272120ba707">_matrixObj</a>;                </div><div class="line"><a name="l00671"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a0fd4e70eacba63d56736ebf9602434cc">  671</a></span>&#160;    std::vector&lt;std::vector&lt;std::vector&lt;double&gt;&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a0fd4e70eacba63d56736ebf9602434cc">_matrixIneq</a>;               </div><div class="line"><a name="l00672"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8ef7d876bfe5e621b0d9dce7e00f4e8f">  672</a></span>&#160;    std::vector&lt;std::vector&lt;std::vector&lt;double&gt;&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8ef7d876bfe5e621b0d9dce7e00f4e8f">_matrixEq1</a>;                </div><div class="line"><a name="l00673"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a75e8efba11ed031032d7e75513f10ba1">  673</a></span>&#160;    std::vector&lt;std::vector&lt;std::vector&lt;double&gt;&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a75e8efba11ed031032d7e75513f10ba1">_matrixEq2</a>;                </div><div class="line"><a name="l00674"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a02b3a186b2fc576f9b5ea705df32a260">  674</a></span>&#160;    std::vector&lt;std::vector&lt;std::vector&lt;double&gt;&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a02b3a186b2fc576f9b5ea705df32a260">_matrixIneqRelaxationOnly</a>; </div><div class="line"><a name="l00675"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a05546b786f27f965b411bf39944e2d61">  675</a></span>&#160;    std::vector&lt;std::vector&lt;std::vector&lt;double&gt;&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a05546b786f27f965b411bf39944e2d61">_matrixEqRelaxationOnly1</a>;  </div><div class="line"><a name="l00676"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a70c32308c7d93c64af5edce4ce6412b7">  676</a></span>&#160;    std::vector&lt;std::vector&lt;std::vector&lt;double&gt;&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a70c32308c7d93c64af5edce4ce6412b7">_matrixEqRelaxationOnly2</a>;  </div><div class="line"><a name="l00677"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6fa683114a6f2d99b9963b991d089e89">  677</a></span>&#160;    std::vector&lt;std::vector&lt;std::vector&lt;double&gt;&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6fa683114a6f2d99b9963b991d089e89">_matrixIneqSquash</a>;         </div><div class="line"><a name="l00678"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a443c3bf5e7640f49f8fa7b5503ac9371">  678</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a443c3bf5e7640f49f8fa7b5503ac9371">_rhsObj</a>;                                </div><div class="line"><a name="l00679"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#abc5d2f11849c00d60b5c181e3fc1ecc5">  679</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#abc5d2f11849c00d60b5c181e3fc1ecc5">_rhsIneq</a>;                               </div><div class="line"><a name="l00680"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7d227b1709674b820d8bc7c0466aaa13">  680</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7d227b1709674b820d8bc7c0466aaa13">_rhsEq1</a>;                                </div><div class="line"><a name="l00681"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a56a7df7c8fc8858597b8cdb8985949cd">  681</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a56a7df7c8fc8858597b8cdb8985949cd">_rhsEq2</a>;                                </div><div class="line"><a name="l00682"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a687c42fa025369080f4fa0745a5a2256">  682</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a687c42fa025369080f4fa0745a5a2256">_rhsIneqRelaxationOnly</a>;                 </div><div class="line"><a name="l00683"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a53ec1c841361380f907fe4bc059096f3">  683</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a53ec1c841361380f907fe4bc059096f3">_rhsEqRelaxationOnly1</a>;                  </div><div class="line"><a name="l00684"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae4517e4a83ca2c5e58a22d5725aea439">  684</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae4517e4a83ca2c5e58a22d5725aea439">_rhsEqRelaxationOnly2</a>;                  </div><div class="line"><a name="l00685"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af5a66b5283474172bf128f2b2c3a4ba7">  685</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af5a66b5283474172bf128f2b2c3a4ba7">_rhsIneqSquash</a>;                         </div><div class="line"><a name="l00688"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6a6c925badc9b14fb61232aceb859b9c">  688</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6a6c925badc9b14fb61232aceb859b9c">_incumbent</a>;                            </div><div class="line"><a name="l00689"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a67b22b446040aa9148dbbd411ad928bb">  689</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a67b22b446040aa9148dbbd411ad928bb">_objectiveScalingFactors</a>; </div><div class="line"><a name="l00695"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a807d99cf52ff7bcfa7948e03b585ea54">  695</a></span>&#160;    std::shared_ptr&lt;DagObj&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a807d99cf52ff7bcfa7948e03b585ea54">_DAGobj</a>;                                </div><div class="line"><a name="l00696"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1b4b4c6e80d76f83bb5a2a7f7d2f165c">  696</a></span>&#160;    std::shared_ptr&lt;Settings&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1b4b4c6e80d76f83bb5a2a7f7d2f165c">_maingoSettings</a>;                      </div><div class="line"><a name="l00697"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9ec401321cfa9eda2672c9a65b6ba11d">  697</a></span>&#160;    std::shared_ptr&lt;Logger&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9ec401321cfa9eda2672c9a65b6ba11d">_logger</a>;                                </div><div class="line"><a name="l00698"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a701c19e247fa6e9791313252084b770a">  698</a></span>&#160;    std::shared_ptr&lt;std::vector&lt;Constraint&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a701c19e247fa6e9791313252084b770a">_constraintProperties</a>; </div><div class="line"><a name="l00705"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8fc065971f7753722d93201222f91063">  705</a></span>&#160;    std::vector&lt;unsigned&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8fc065971f7753722d93201222f91063">_nLinObj</a>;                                </div><div class="line"><a name="l00706"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a3bb190287b40d8ff446184a0ace005bf">  706</a></span>&#160;    std::vector&lt;unsigned&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a3bb190287b40d8ff446184a0ace005bf">_nLinIneq</a>;                               </div><div class="line"><a name="l00707"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ace0bc5168f34d29839df34ff9b8bf511">  707</a></span>&#160;    std::vector&lt;unsigned&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ace0bc5168f34d29839df34ff9b8bf511">_nLinEq</a>;                                 </div><div class="line"><a name="l00708"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ac6734ae698e1c511059e6c0004f77c7b">  708</a></span>&#160;    std::vector&lt;unsigned&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ac6734ae698e1c511059e6c0004f77c7b">_nLinIneqRelaxationOnly</a>;                 </div><div class="line"><a name="l00709"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a63aa6a0843524f8f1ffefa5763cc3c80">  709</a></span>&#160;    std::vector&lt;unsigned&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a63aa6a0843524f8f1ffefa5763cc3c80">_nLinEqRelaxationOnly</a>;                   </div><div class="line"><a name="l00710"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a06f93c5936fb209eca44cd5485363488">  710</a></span>&#160;    std::vector&lt;unsigned&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a06f93c5936fb209eca44cd5485363488">_nLinIneqSquash</a>;                         </div><div class="line"><a name="l00711"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a994248a0caff4424b631b4ad06e05294">  711</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a994248a0caff4424b631b4ad06e05294">_maxnParticipatingVariables</a>;                          </div><div class="line"><a name="l00712"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a5e059ef32469739da674be2946048dd0">  712</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a5e059ef32469739da674be2946048dd0">_nvar</a>;                                          </div><div class="line"><a name="l00713"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a99567ba1637a154ffdaea2a7f532a39c">  713</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a99567ba1637a154ffdaea2a7f532a39c">_nineq</a>;                                         </div><div class="line"><a name="l00714"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6ee4019ccdd8ec662f69586121be16b0">  714</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6ee4019ccdd8ec662f69586121be16b0">_neq</a>;                                           </div><div class="line"><a name="l00715"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#acc43848f17dfd2e2941e21e3bd308737">  715</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#acc43848f17dfd2e2941e21e3bd308737">_nineqRelaxationOnly</a>;                           </div><div class="line"><a name="l00716"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a637f881b8ce5464725a611fde5ae5bc2">  716</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a637f881b8ce5464725a611fde5ae5bc2">_neqRelaxationOnly</a>;                             </div><div class="line"><a name="l00717"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af339d8b557668fa7f961faf44c4cbf6b">  717</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af339d8b557668fa7f961faf44c4cbf6b">_nineqSquash</a>;                                   </div><div class="line"><a name="l00718"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a44e1d78a441997c6fced40f8c91c8043">  718</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a44e1d78a441997c6fced40f8c91c8043">_onlyBoxConstraints</a>;                                      </div><div class="line"><a name="l00719"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a39ef7296e50fb200934ff74a017e43bf">  719</a></span>&#160;    std::vector&lt;babBase::OptimizationVariable&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a39ef7296e50fb200934ff74a017e43bf">_originalVariables</a>; </div><div class="line"><a name="l00720"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ab2c6d75aa915dd5e3296b0873d39acfd">  720</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ab2c6d75aa915dd5e3296b0873d39acfd">_objectiveValue</a>;                                        </div><div class="line"><a name="l00721"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae9f3f49ebc4c635d2c38abbf42c9f256">  721</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae9f3f49ebc4c635d2c38abbf42c9f256">_solutionPoint</a>;                            </div><div class="line"><a name="l00722"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ad1db6e887f8b891d267b0347f17fe8db">  722</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ad1db6e887f8b891d267b0347f17fe8db">_multipliers</a>;                              </div><div class="line"><a name="l00723"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af0baca6c1bd4847c2c3ab98e3c6c4adb">  723</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af0baca6c1bd4847c2c3ab98e3c6c4adb">_lowerVarBounds</a>;                           </div><div class="line"><a name="l00724"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae8e6470d9c422e32457e7dd7e7a8cc50">  724</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae8e6470d9c422e32457e7dd7e7a8cc50">_upperVarBounds</a>;                           </div><div class="line"><a name="l00725"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7952199940d657eed365a660f4538527">  725</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90">LP_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7952199940d657eed365a660f4538527">_LPstatus</a>;                                          </div><div class="line"><a name="l00726"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aaa92d78b7ce6a1b2939131063bd6f68a">  726</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aaa92d78b7ce6a1b2939131063bd6f68a">_computationTol</a>;                                        </div><div class="line"><a name="l00727"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1994bc43cf051908c35889bb08d3cb02">  727</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1994bc43cf051908c35889bb08d3cb02">_differentNumberOfLins</a> = <span class="keyword">false</span>;                           </div><div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a124cee8eb569d80dbe8c162e412906d8">_solve_probing_LBP</a>(<a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode, <a class="code" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html">LbpDualInfo</a> &amp;dualInfo,</div><div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160;                                         <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> iVar, <span class="keyword">const</span> <span class="keywordtype">bool</span> fixToLowerBound);</div><div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;</div><div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a0fa8b386f6bd8a3803e1c8fbfbde6e64">_set_number_of_linpoints</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> LBP_linPoints);</div><div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160;</div><div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;</div><div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;    <span class="comment">// Prevent use of default copy constructor and copy assignment operator by declaring them private:</span></div><div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;    <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9680e92120bb8a0693095f965421d7d7">LowerBoundingSolver</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">LowerBoundingSolver</a> &amp;);            </div><div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;    <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">LowerBoundingSolver</a> &amp;<a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7a7062b87f2074558f67c7cbbe397b58">operator=</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">LowerBoundingSolver</a> &amp;); </div><div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;};</div><div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;</div><div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;std::shared_ptr&lt;LowerBoundingSolver&gt; <a class="code" href="namespacemaingo_1_1lbp.html#aa50d84ff66f4ea911a333eb047a8b6ea">make_lbp_solver</a>(mc::FFGraph &amp;DAG, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGvars, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGfunctions,</div><div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;                                                     <span class="keyword">const</span> std::vector&lt;babBase::OptimizationVariable&gt; &amp;variables, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqIn,</div><div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160;                                                     <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqRelaxationOnlyIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqRelaxationOnlyIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqSquashIn,</div><div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;                                                     std::shared_ptr&lt;Settings&gt; settingsIn, std::shared_ptr&lt;Logger&gt; loggerIn, std::shared_ptr&lt;std::vector&lt;Constraint&gt;&gt; constraintPropertiesIn);</div><div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160;</div><div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;</div><div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;}    <span class="comment">// end namespace lbp</span></div><div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160;</div><div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160;</div><div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></div><div class="ttdoc">Wrapper for handling the lower bounding problems as well as optimization-based bounds tightening (OBB...</div><div class="ttdef"><b>Definition:</b> lbp.h:65</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a9f37648a18e394088679dc92701dd76f"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9f37648a18e394088679dc92701dd76f">maingo::lbp::LowerBoundingSolver::_turn_off_specific_options</a></div><div class="ttdeci">virtual void _turn_off_specific_options()</div><div class="ttdoc">Virtual function for checking if a specific option has to be turned off for a given lower bounding so...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:2078</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a3bb190287b40d8ff446184a0ace005bf"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a3bb190287b40d8ff446184a0ace005bf">maingo::lbp::LowerBoundingSolver::_nLinIneq</a></div><div class="ttdeci">std::vector&lt; unsigned &gt; _nLinIneq</div><div class="ttdef"><b>Definition:</b> lbp.h:706</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_ae4517e4a83ca2c5e58a22d5725aea439"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae4517e4a83ca2c5e58a22d5725aea439">maingo::lbp::LowerBoundingSolver::_rhsEqRelaxationOnly2</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; _rhsEqRelaxationOnly2</div><div class="ttdef"><b>Definition:</b> lbp.h:684</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a6a57781338bfbdf0b99f3ec474ff3feb"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6a57781338bfbdf0b99f3ec474ff3feb">maingo::lbp::LowerBoundingSolver::_update_LP_ineq</a></div><div class="ttdeci">virtual void _update_LP_ineq(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneq)</div><div class="ttdoc">Virtual auxiliary function for updating LP inequalities, i.e., processing the linearization of the in...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1575</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a2f1320936ed40642c7cf4cf0fe31d14f"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2f1320936ed40642c7cf4cf0fe31d14f">maingo::lbp::LowerBoundingSolver::update_incumbent_LBP</a></div><div class="ttdeci">void update_incumbent_LBP(const std::vector&lt; double &gt; &amp;incumbentBAB)</div><div class="ttdoc">Function called by the B&amp;B solver to update the incumbent and the ID of the node currently holding it...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1283</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a39ef7296e50fb200934ff74a017e43bf"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a39ef7296e50fb200934ff74a017e43bf">maingo::lbp::LowerBoundingSolver::_originalVariables</a></div><div class="ttdeci">std::vector&lt; babBase::OptimizationVariable &gt; _originalVariables</div><div class="ttdef"><b>Definition:</b> lbp.h:719</div></div>
+<div class="ttc" id="namespacemaingo_1_1lbp_html_ad19f1469072a948e0678836725b1d3e8a739b073ddf68d60146dfb7b8f3b24c0c"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8a739b073ddf68d60146dfb7b8f3b24c0c">maingo::lbp::OBBT_FEAS</a></div><div class="ttdef"><b>Definition:</b> lbp.h:42</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a88c29043b78956e34cc95ab46eaac9d1"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a88c29043b78956e34cc95ab46eaac9d1">maingo::lbp::LowerBoundingSolver::_linearize_model_at_midpoint</a></div><div class="ttdeci">LINEARIZATION_RETCODE _linearize_model_at_midpoint(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</div><div class="ttdoc">This function linearizes each function of the model at the middle point of the underlying box...</div><div class="ttdef"><b>Definition:</b> lbpLinearizationStrats.cpp:25</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a13d16bea111e56762479856995fe8435"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a13d16bea111e56762479856995fe8435">maingo::lbp::LowerBoundingSolver::_choose_good_lin_points</a></div><div class="ttdeci">void _choose_good_lin_points(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, bool firstTime=true)</div><div class="ttdoc">Heuristical determination of good linearization points. This function is in testing phasing and is no...</div><div class="ttdef"><b>Definition:</b> lbpLinearizationStrats.cpp:651</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a761787f1ad3ef2c3c7b8d4e5986e0a47"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a761787f1ad3ef2c3c7b8d4e5986e0a47">maingo::lbp::LowerBoundingSolver::_check_optimality</a></div><div class="ttdeci">virtual SUBSOLVER_RETCODE _check_optimality(const babBase::BabNode &amp;currentNode, const double newLBD, const std::vector&lt; double &gt; &amp;solution, const double etaVal, const std::vector&lt; double &gt; &amp;multipliers)</div><div class="ttdoc">Virtual function for checking if the solution point returned by the LP solver is really optimal...</div></div>
+<div class="ttc" id="namespacemaingo_1_1lbp_html_ad19f1469072a948e0678836725b1d3e8"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8">maingo::lbp::OBBT</a></div><div class="ttdeci">OBBT</div><div class="ttdoc">Enum for communicating whether Optimization-Based Bound Tightening should consider only feasibility o...</div><div class="ttdef"><b>Definition:</b> lbp.h:41</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a63aa6a0843524f8f1ffefa5763cc3c80"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a63aa6a0843524f8f1ffefa5763cc3c80">maingo::lbp::LowerBoundingSolver::_nLinEqRelaxationOnly</a></div><div class="ttdeci">std::vector&lt; unsigned &gt; _nLinEqRelaxationOnly</div><div class="ttdef"><b>Definition:</b> lbp.h:709</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a44e1d78a441997c6fced40f8c91c8043"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a44e1d78a441997c6fced40f8c91c8043">maingo::lbp::LowerBoundingSolver::_onlyBoxConstraints</a></div><div class="ttdeci">bool _onlyBoxConstraints</div><div class="ttdef"><b>Definition:</b> lbp.h:718</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a90f45a10a7a5a3a299d63ece51116c58"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a90f45a10a7a5a3a299d63ece51116c58">maingo::lbp::LowerBoundingSolver::_modify_LP_for_feasopt_OBBT</a></div><div class="ttdeci">virtual void _modify_LP_for_feasopt_OBBT(const double &amp;currentUBD, std::list&lt; unsigned &gt; &amp;toTreatMax, std::list&lt; unsigned &gt; &amp;toTreatMin)</div><div class="ttdoc">Virtual function modifying the LP for feasibility-optimality OBBT. </div><div class="ttdef"><b>Definition:</b> lbp.cpp:1971</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_aaa7dbb4ba6ef927a0889233378725089"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aaa7dbb4ba6ef927a0889233378725089">maingo::lbp::LowerBoundingSolver::_solve_LP</a></div><div class="ttdeci">virtual void _solve_LP(const babBase::BabNode &amp;currentNode)</div><div class="ttdoc">Virtual function for solving the currently constructed linear program. This function also internally ...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1840</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a53ec1c841361380f907fe4bc059096f3"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a53ec1c841361380f907fe4bc059096f3">maingo::lbp::LowerBoundingSolver::_rhsEqRelaxationOnly1</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; _rhsEqRelaxationOnly1</div><div class="ttdef"><b>Definition:</b> lbp.h:683</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a5e059ef32469739da674be2946048dd0"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a5e059ef32469739da674be2946048dd0">maingo::lbp::LowerBoundingSolver::_nvar</a></div><div class="ttdeci">const unsigned _nvar</div><div class="ttdef"><b>Definition:</b> lbp.h:712</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a0fa8b386f6bd8a3803e1c8fbfbde6e64"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a0fa8b386f6bd8a3803e1c8fbfbde6e64">maingo::lbp::LowerBoundingSolver::_set_number_of_linpoints</a></div><div class="ttdeci">void _set_number_of_linpoints(const unsigned int LBP_linPoints)</div><div class="ttdoc">Function for setting the correct number of linearization points depending on the LBP_linpoints settin...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:228</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html"><div class="ttname"><a href="classbab_base_1_1_bab_node.html">babBase::BabNode</a></div><div class="ttdoc">Class representing a node in the Branch-and-Bound tree. </div><div class="ttdef"><b>Definition:</b> babNode.h:35</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a06f93c5936fb209eca44cd5485363488"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a06f93c5936fb209eca44cd5485363488">maingo::lbp::LowerBoundingSolver::_nLinIneqSquash</a></div><div class="ttdeci">std::vector&lt; unsigned &gt; _nLinIneqSquash</div><div class="ttdef"><b>Definition:</b> lbp.h:710</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a464be8ca82b76704c0ecf60d7f9d2aad"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a464be8ca82b76704c0ecf60d7f9d2aad">maingo::lbp::LowerBoundingSolver::_update_LP_obj</a></div><div class="ttdeci">virtual void _update_LP_obj(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iObj)</div><div class="ttdoc">Virtual auxiliary function for updating LP objective, i.e., processing the linearization of the objec...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1559</div></div>
 <div class="ttc" id="bab_node_8h_html"><div class="ttname"><a href="bab_node_8h.html">babNode.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_aaa92d78b7ce6a1b2939131063bd6f68a"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aaa92d78b7ce6a1b2939131063bd6f68a">maingo::lbp::LowerBoundingSolver::_computationTol</a></div><div class="ttdeci">double _computationTol</div><div class="ttdef"><b>Definition:</b> lbp.h:720</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a637f881b8ce5464725a611fde5ae5bc2"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a637f881b8ce5464725a611fde5ae5bc2">maingo::lbp::LowerBoundingSolver::_neqRelaxationOnly</a></div><div class="ttdeci">const unsigned _neqRelaxationOnly</div><div class="ttdef"><b>Definition:</b> lbp.h:711</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html"><div class="ttname"><a href="structmaingo_1_1_settings.html">maingo::Settings</a></div><div class="ttdoc">Struct for storing settings for MAiNGO.</div><div class="ttdef"><b>Definition:</b> settings.h:143</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_ab2c6d75aa915dd5e3296b0873d39acfd"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ab2c6d75aa915dd5e3296b0873d39acfd">maingo::lbp::LowerBoundingSolver::_objectiveValue</a></div><div class="ttdeci">double _objectiveValue</div><div class="ttdef"><b>Definition:</b> lbp.h:714</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a4ce48185a33ab3815913f44b823352bb"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4ce48185a33ab3815913f44b823352bb">maingo::lbp::LowerBoundingSolver::_linearization_points_Kelley</a></div><div class="ttdeci">LINEARIZATION_RETCODE _linearization_points_Kelley(const babBase::BabNode &amp;currentNode)</div><div class="ttdoc">This function adds linearizations to LP with the use of an adapted version of Kelley's algorithm....</div><div class="ttdef"><b>Definition:</b> lbpLinearizationStrats.cpp:199</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_abd9daa889433074171373fe2e59df217"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#abd9daa889433074171373fe2e59df217">maingo::lbp::LowerBoundingSolver::_get_objective_value_solver</a></div><div class="ttdeci">virtual double _get_objective_value_solver()</div><div class="ttdoc">Virtual function returning the objective value of the lastly solved LP for a specific solver.</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1941</div></div>
-<div class="ttc" id="interval_library_8h_html_addaf9e7d3c4319861d4942fc13f11964"><div class="ttname"><a href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a></div><div class="ttdeci">mc::vMcCormick&lt; I &gt; vMC</div><div class="ttdoc">A type definition for a vector McCormick variable.</div><div class="ttdef"><b>Definition:</b> intervalLibrary.h:64</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a3b4dccb1190a30d49e1e9272120ba707"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a3b4dccb1190a30d49e1e9272120ba707">maingo::lbp::LowerBoundingSolver::_matrixObj</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; std::vector&lt; double &gt; &gt; &gt; _matrixObj</div><div class="ttdef"><b>Definition:</b> lbp.h:665</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a77e97f9255980d5edaadd9da571b078f"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a77e97f9255980d5edaadd9da571b078f">maingo::lbp::LowerBoundingSolver::_equilibrate_and_relax</a></div><div class="ttdeci">double _equilibrate_and_relax(std::vector&lt; double &gt; &amp;coefficients, double &amp;rhs, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</div><div class="ttdoc">Function for equilibrating a line in an LP.</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1531</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a4fd9a52441b77eff552c9034ae0fb76d"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4fd9a52441b77eff552c9034ae0fb76d">maingo::lbp::LowerBoundingSolver::_get_LP_status</a></div><div class="ttdeci">virtual LP_RETCODE _get_LP_status()</div><div class="ttdoc">Virtual function returning the current status of the last solved linear program.</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1912</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a3fcb771d5ccdac5d7ee197f6b412044b"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a3fcb771d5ccdac5d7ee197f6b412044b">maingo::lbp::LowerBoundingSolver::_deactivate_objective_function_for_OBBT</a></div><div class="ttdeci">virtual void _deactivate_objective_function_for_OBBT()</div><div class="ttdoc">Virtual function deactivating all objective rows in the LP for feasibility OBBT.</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1968</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_ae59a4d355107b80b3e1a6efbc6488b66"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae59a4d355107b80b3e1a6efbc6488b66">maingo::lbp::LowerBoundingSolver::_set_optimization_sense_of_variable</a></div><div class="ttdeci">virtual void _set_optimization_sense_of_variable(const unsigned &amp;iVar, const int &amp;optimizationSense)</div><div class="ttdoc">Virtual function for setting the optimization sense of variable iVar in OBBT.</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1986</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a75d8c7d165cc917a455243f528ea23df"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a75d8c7d165cc917a455243f528ea23df">maingo::lbp::LowerBoundingSolver::preprocessor_check_options</a></div><div class="ttdeci">void preprocessor_check_options(const babBase::BabNode &amp;rootNode)</div><div class="ttdoc">Function called by the B&amp;B in preprocessing in order to check the need for specific options,...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:2020</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_ace0bc5168f34d29839df34ff9b8bf511"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ace0bc5168f34d29839df34ff9b8bf511">maingo::lbp::LowerBoundingSolver::_nLinEq</a></div><div class="ttdeci">std::vector&lt; unsigned &gt; _nLinEq</div><div class="ttdef"><b>Definition:</b> lbp.h:702</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_lbp_dual_info_html_a2ea74da7d73d5e4c01340cfe486b5597"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_lbp_dual_info.html#a2ea74da7d73d5e4c01340cfe486b5597">maingo::lbp::LbpDualInfo::lpLowerBound</a></div><div class="ttdeci">double lpLowerBound</div><div class="ttdef"><b>Definition:</b> lbp.h:49</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_aaa92d78b7ce6a1b2939131063bd6f68a"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aaa92d78b7ce6a1b2939131063bd6f68a">maingo::lbp::LowerBoundingSolver::_computationTol</a></div><div class="ttdeci">double _computationTol</div><div class="ttdef"><b>Definition:</b> lbp.h:726</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a637f881b8ce5464725a611fde5ae5bc2"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a637f881b8ce5464725a611fde5ae5bc2">maingo::lbp::LowerBoundingSolver::_neqRelaxationOnly</a></div><div class="ttdeci">const unsigned _neqRelaxationOnly</div><div class="ttdef"><b>Definition:</b> lbp.h:716</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_ab2c6d75aa915dd5e3296b0873d39acfd"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ab2c6d75aa915dd5e3296b0873d39acfd">maingo::lbp::LowerBoundingSolver::_objectiveValue</a></div><div class="ttdeci">double _objectiveValue</div><div class="ttdef"><b>Definition:</b> lbp.h:720</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a4ce48185a33ab3815913f44b823352bb"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4ce48185a33ab3815913f44b823352bb">maingo::lbp::LowerBoundingSolver::_linearization_points_Kelley</a></div><div class="ttdeci">LINEARIZATION_RETCODE _linearization_points_Kelley(const babBase::BabNode &amp;currentNode)</div><div class="ttdoc">This function adds linearizations to LP with the use of an adapted version of Kelley&amp;#39;s algorithm...</div><div class="ttdef"><b>Definition:</b> lbpLinearizationStrats.cpp:155</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_abd9daa889433074171373fe2e59df217"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#abd9daa889433074171373fe2e59df217">maingo::lbp::LowerBoundingSolver::_get_objective_value_solver</a></div><div class="ttdeci">virtual double _get_objective_value_solver()</div><div class="ttdoc">Virtual function returning the objective value of the lastly solved LP for a specific solver...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1935</div></div>
+<div class="ttc" id="interval_library_8h_html_addaf9e7d3c4319861d4942fc13f11964"><div class="ttname"><a href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a></div><div class="ttdeci">mc::vMcCormick&lt; I &gt; vMC</div><div class="ttdoc">A type definition for a vector McCormick variable. </div><div class="ttdef"><b>Definition:</b> intervalLibrary.h:41</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a3b4dccb1190a30d49e1e9272120ba707"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a3b4dccb1190a30d49e1e9272120ba707">maingo::lbp::LowerBoundingSolver::_matrixObj</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; std::vector&lt; double &gt; &gt; &gt; _matrixObj</div><div class="ttdef"><b>Definition:</b> lbp.h:670</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a77e97f9255980d5edaadd9da571b078f"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a77e97f9255980d5edaadd9da571b078f">maingo::lbp::LowerBoundingSolver::_equilibrate_and_relax</a></div><div class="ttdeci">double _equilibrate_and_relax(std::vector&lt; double &gt; &amp;coefficients, double &amp;rhs, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</div><div class="ttdoc">Function for equilibrating a line in an LP. </div><div class="ttdef"><b>Definition:</b> lbp.cpp:1525</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a4fd9a52441b77eff552c9034ae0fb76d"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4fd9a52441b77eff552c9034ae0fb76d">maingo::lbp::LowerBoundingSolver::_get_LP_status</a></div><div class="ttdeci">virtual LP_RETCODE _get_LP_status()</div><div class="ttdoc">Virtual function returning the current status of the last solved linear program. </div><div class="ttdef"><b>Definition:</b> lbp.cpp:1906</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a9680e92120bb8a0693095f965421d7d7"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9680e92120bb8a0693095f965421d7d7">maingo::lbp::LowerBoundingSolver::LowerBoundingSolver</a></div><div class="ttdeci">LowerBoundingSolver(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn)</div><div class="ttdoc">Constructor, stores information on the problem and constructs an own copy of the directed acyclic gra...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:26</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a3fcb771d5ccdac5d7ee197f6b412044b"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a3fcb771d5ccdac5d7ee197f6b412044b">maingo::lbp::LowerBoundingSolver::_deactivate_objective_function_for_OBBT</a></div><div class="ttdeci">virtual void _deactivate_objective_function_for_OBBT()</div><div class="ttdoc">Virtual function deactivating all objective rows in the LP for feasibility OBBT. </div><div class="ttdef"><b>Definition:</b> lbp.cpp:1962</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_ae59a4d355107b80b3e1a6efbc6488b66"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae59a4d355107b80b3e1a6efbc6488b66">maingo::lbp::LowerBoundingSolver::_set_optimization_sense_of_variable</a></div><div class="ttdeci">virtual void _set_optimization_sense_of_variable(const unsigned &amp;iVar, const int &amp;optimizationSense)</div><div class="ttdoc">Virtual function for setting the optimization sense of variable iVar in OBBT. </div><div class="ttdef"><b>Definition:</b> lbp.cpp:1980</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a75d8c7d165cc917a455243f528ea23df"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a75d8c7d165cc917a455243f528ea23df">maingo::lbp::LowerBoundingSolver::preprocessor_check_options</a></div><div class="ttdeci">void preprocessor_check_options(const babBase::BabNode &amp;rootNode)</div><div class="ttdoc">Function called by the B&amp;B in preprocessing in order to check the need for specific options...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:2014</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_ace0bc5168f34d29839df34ff9b8bf511"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ace0bc5168f34d29839df34ff9b8bf511">maingo::lbp::LowerBoundingSolver::_nLinEq</a></div><div class="ttdeci">std::vector&lt; unsigned &gt; _nLinEq</div><div class="ttdef"><b>Definition:</b> lbp.h:707</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_lbp_dual_info_html_a2ea74da7d73d5e4c01340cfe486b5597"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_lbp_dual_info.html#a2ea74da7d73d5e4c01340cfe486b5597">maingo::lbp::LbpDualInfo::lpLowerBound</a></div><div class="ttdeci">double lpLowerBound</div><div class="ttdef"><b>Definition:</b> lbp.h:54</div></div>
 <div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a7a7062b87f2074558f67c7cbbe397b58"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7a7062b87f2074558f67c7cbbe397b58">maingo::lbp::LowerBoundingSolver::operator=</a></div><div class="ttdeci">LowerBoundingSolver &amp; operator=(const LowerBoundingSolver &amp;)</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a56a7df7c8fc8858597b8cdb8985949cd"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a56a7df7c8fc8858597b8cdb8985949cd">maingo::lbp::LowerBoundingSolver::_rhsEq2</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; _rhsEq2</div><div class="ttdef"><b>Definition:</b> lbp.h:676</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a018fd682b724900df5060adfd73a953b"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a018fd682b724900df5060adfd73a953b">maingo::lbp::LowerBoundingSolver::_update_LP</a></div><div class="ttdeci">virtual LINEARIZATION_RETCODE _update_LP(const babBase::BabNode &amp;currentNode)</div><div class="ttdoc">Calls the proper function for computing linearization points and modifying the coefficients of the LP...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1457</div></div>
-<div class="ttc" id="namespacemaingo_1_1lbp_html_a1f86fef63c4930e5c519b2ca288d824e"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824e">maingo::lbp::LINEARIZATION_RETCODE</a></div><div class="ttdeci">LINEARIZATION_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the different linearization techniques.</div><div class="ttdef"><b>Definition:</b> returnCodes.h:63</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a8fc065971f7753722d93201222f91063"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8fc065971f7753722d93201222f91063">maingo::lbp::LowerBoundingSolver::_nLinObj</a></div><div class="ttdeci">std::vector&lt; unsigned &gt; _nLinObj</div><div class="ttdef"><b>Definition:</b> lbp.h:700</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a6a6c925badc9b14fb61232aceb859b9c"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6a6c925badc9b14fb61232aceb859b9c">maingo::lbp::LowerBoundingSolver::_incumbent</a></div><div class="ttdeci">std::vector&lt; double &gt; _incumbent</div><div class="ttdef"><b>Definition:</b> lbp.h:683</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html"><div class="ttname"><a href="classmaingo_1_1_logger.html">maingo::Logger</a></div><div class="ttdoc">This class contains all logging and output information.</div><div class="ttdef"><b>Definition:</b> logger.h:101</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a70c32308c7d93c64af5edce4ce6412b7"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a70c32308c7d93c64af5edce4ce6412b7">maingo::lbp::LowerBoundingSolver::_matrixEqRelaxationOnly2</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; std::vector&lt; double &gt; &gt; &gt; _matrixEqRelaxationOnly2</div><div class="ttdef"><b>Definition:</b> lbp.h:671</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a9617d81f28d3a1ba3270d3a73ee81e85"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9617d81f28d3a1ba3270d3a73ee81e85">maingo::lbp::LowerBoundingSolver::do_dbbt_and_probing</a></div><div class="ttdeci">TIGHTENING_RETCODE do_dbbt_and_probing(babBase::BabNode &amp;currentNode, const std::vector&lt; double &gt; &amp;lbpSolutionPoint, const LbpDualInfo &amp;dualInfo, const double currentUBD)</div><div class="ttdoc">Function called by B&amp;B solver for DBBT and probing (for each variable depending on where the LBD solu...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1151</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a7d227b1709674b820d8bc7c0466aaa13"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7d227b1709674b820d8bc7c0466aaa13">maingo::lbp::LowerBoundingSolver::_rhsEq1</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; _rhsEq1</div><div class="ttdef"><b>Definition:</b> lbp.h:675</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_ac3fddd3adb6e1db739d3377fb1bf3f1f"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ac3fddd3adb6e1db739d3377fb1bf3f1f">maingo::lbp::LowerBoundingSolver::_get_multipliers</a></div><div class="ttdeci">virtual void _get_multipliers(std::vector&lt; double &gt; &amp;multipliers)</div><div class="ttdoc">Virtual function for setting the multipliers of the lastly solved LP.</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1950</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a56a7df7c8fc8858597b8cdb8985949cd"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a56a7df7c8fc8858597b8cdb8985949cd">maingo::lbp::LowerBoundingSolver::_rhsEq2</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; _rhsEq2</div><div class="ttdef"><b>Definition:</b> lbp.h:681</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a018fd682b724900df5060adfd73a953b"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a018fd682b724900df5060adfd73a953b">maingo::lbp::LowerBoundingSolver::_update_LP</a></div><div class="ttdeci">virtual LINEARIZATION_RETCODE _update_LP(const babBase::BabNode &amp;currentNode)</div><div class="ttdoc">Calls the proper function for computing linearization points and modifying the coefficients of the LP...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1451</div></div>
+<div class="ttc" id="namespacemaingo_1_1lbp_html_a1f86fef63c4930e5c519b2ca288d824e"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824e">maingo::lbp::LINEARIZATION_RETCODE</a></div><div class="ttdeci">LINEARIZATION_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the different linearization techniques. </div><div class="ttdef"><b>Definition:</b> returnCodes.h:59</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a8fc065971f7753722d93201222f91063"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8fc065971f7753722d93201222f91063">maingo::lbp::LowerBoundingSolver::_nLinObj</a></div><div class="ttdeci">std::vector&lt; unsigned &gt; _nLinObj</div><div class="ttdef"><b>Definition:</b> lbp.h:705</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a6a6c925badc9b14fb61232aceb859b9c"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6a6c925badc9b14fb61232aceb859b9c">maingo::lbp::LowerBoundingSolver::_incumbent</a></div><div class="ttdeci">std::vector&lt; double &gt; _incumbent</div><div class="ttdef"><b>Definition:</b> lbp.h:688</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a70c32308c7d93c64af5edce4ce6412b7"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a70c32308c7d93c64af5edce4ce6412b7">maingo::lbp::LowerBoundingSolver::_matrixEqRelaxationOnly2</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; std::vector&lt; double &gt; &gt; &gt; _matrixEqRelaxationOnly2</div><div class="ttdef"><b>Definition:</b> lbp.h:676</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a9617d81f28d3a1ba3270d3a73ee81e85"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9617d81f28d3a1ba3270d3a73ee81e85">maingo::lbp::LowerBoundingSolver::do_dbbt_and_probing</a></div><div class="ttdeci">TIGHTENING_RETCODE do_dbbt_and_probing(babBase::BabNode &amp;currentNode, const std::vector&lt; double &gt; &amp;lbpSolutionPoint, const LbpDualInfo &amp;dualInfo, const double currentUBD)</div><div class="ttdoc">Function called by B&amp;B solver for DBBT and probing (for each variable depending on where the LBD solu...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1153</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a7d227b1709674b820d8bc7c0466aaa13"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7d227b1709674b820d8bc7c0466aaa13">maingo::lbp::LowerBoundingSolver::_rhsEq1</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; _rhsEq1</div><div class="ttdef"><b>Definition:</b> lbp.h:680</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_ac3fddd3adb6e1db739d3377fb1bf3f1f"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ac3fddd3adb6e1db739d3377fb1bf3f1f">maingo::lbp::LowerBoundingSolver::_get_multipliers</a></div><div class="ttdeci">virtual void _get_multipliers(std::vector&lt; double &gt; &amp;multipliers)</div><div class="ttdoc">Virtual function for setting the multipliers of the lastly solved LP. </div><div class="ttdef"><b>Definition:</b> lbp.cpp:1944</div></div>
 <div class="ttc" id="interval_library_8h_html"><div class="ttname"><a href="interval_library_8h.html">intervalLibrary.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a0a621db38ecc738283282bbd03a3aacf"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a0a621db38ecc738283282bbd03a3aacf">maingo::lbp::LowerBoundingSolver::_linearization_points_Simplex</a></div><div class="ttdeci">LINEARIZATION_RETCODE _linearization_points_Simplex(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</div><div class="ttdoc">This function linearizes each function of the model at (_nvar+2)/2 points (except for the linear ones...</div><div class="ttdef"><b>Definition:</b> lbpLinearizationStrats.cpp:403</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a124cee8eb569d80dbe8c162e412906d8"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a124cee8eb569d80dbe8c162e412906d8">maingo::lbp::LowerBoundingSolver::_solve_probing_LBP</a></div><div class="ttdeci">SUBSOLVER_RETCODE _solve_probing_LBP(babBase::BabNode &amp;currentNode, LbpDualInfo &amp;dualInfo, const unsigned int iVar, const bool fixToLowerBound)</div><div class="ttdoc">Function called by do_dbbt_and_probing for solving the lower bounding problem for probing on the curr...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1308</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a793016f5e661fbfaf1488f1a6889f3c8"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a793016f5e661fbfaf1488f1a6889f3c8">maingo::lbp::LowerBoundingSolver::_update_LP_ineqRelaxationOnly</a></div><div class="ttdeci">virtual void _update_LP_ineqRelaxationOnly(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneqRelaxationOnly)</div><div class="ttdoc">Virtual auxiliary function for updating LP relaxation only inequalities, i.e., processing the lineari...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1613</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a59a4631f9fbe8e1a568fd2a36fac31e2"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a59a4631f9fbe8e1a568fd2a36fac31e2">maingo::lbp::LowerBoundingSolver::_update_LP_eqRelaxationOnly</a></div><div class="ttdeci">virtual void _update_LP_eqRelaxationOnly(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEqRelaxationOnly)</div><div class="ttdoc">Virtual auxiliary function for updating LP relaxation only equalities, i.e., processing the lineariza...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1629</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a0a621db38ecc738283282bbd03a3aacf"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a0a621db38ecc738283282bbd03a3aacf">maingo::lbp::LowerBoundingSolver::_linearization_points_Simplex</a></div><div class="ttdeci">LINEARIZATION_RETCODE _linearization_points_Simplex(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</div><div class="ttdoc">This function linearizes each function of the model at (_nvar+2)/2 points (except for the linear ones...</div><div class="ttdef"><b>Definition:</b> lbpLinearizationStrats.cpp:359</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a124cee8eb569d80dbe8c162e412906d8"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a124cee8eb569d80dbe8c162e412906d8">maingo::lbp::LowerBoundingSolver::_solve_probing_LBP</a></div><div class="ttdeci">SUBSOLVER_RETCODE _solve_probing_LBP(babBase::BabNode &amp;currentNode, LbpDualInfo &amp;dualInfo, const unsigned int iVar, const bool fixToLowerBound)</div><div class="ttdoc">Function called by do_dbbt_and_probing for solving the lower bounding problem for probing on the curr...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1302</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a793016f5e661fbfaf1488f1a6889f3c8"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a793016f5e661fbfaf1488f1a6889f3c8">maingo::lbp::LowerBoundingSolver::_update_LP_ineqRelaxationOnly</a></div><div class="ttdeci">virtual void _update_LP_ineqRelaxationOnly(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneqRelaxationOnly)</div><div class="ttdoc">Virtual auxiliary function for updating LP relaxation only inequalities, i.e., processing the lineari...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1607</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a59a4631f9fbe8e1a568fd2a36fac31e2"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a59a4631f9fbe8e1a568fd2a36fac31e2">maingo::lbp::LowerBoundingSolver::_update_LP_eqRelaxationOnly</a></div><div class="ttdeci">virtual void _update_LP_eqRelaxationOnly(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEqRelaxationOnly)</div><div class="ttdoc">Virtual auxiliary function for updating LP relaxation only equalities, i.e., processing the lineariza...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1623</div></div>
 <div class="ttc" id="return_codes_8h_html"><div class="ttname"><a href="return_codes_8h.html">returnCodes.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a7636a8adae2a2382719873d8ee561f17"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7636a8adae2a2382719873d8ee561f17">maingo::lbp::LowerBoundingSolver::_linearize_functions_at_linpoint</a></div><div class="ttdeci">void _linearize_functions_at_linpoint(std::vector&lt; MC &gt; &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, mc::FFSubgraph &amp;subgraph, std::vector&lt; mc::FFVar &gt; &amp;functions)</div><div class="ttdoc">Auxiliary function for calling the proper function to linearize functions at chosen linearization poi...</div><div class="ttdef"><b>Definition:</b> lbpLinearizationStrats.cpp:69</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a9ee38ffd8ce3d627bfd70c195f9be58d"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9ee38ffd8ce3d627bfd70c195f9be58d">maingo::lbp::LowerBoundingSolver::_restore_LP_coefficients_after_OBBT</a></div><div class="ttdeci">virtual void _restore_LP_coefficients_after_OBBT()</div><div class="ttdoc">Virtual function for restoring proper coefficients and options in the LP after OBBT.</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1959</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a8eb858ee10db606fd5f37c7a9359a943"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8eb858ee10db606fd5f37c7a9359a943">maingo::lbp::LowerBoundingSolver::_linearization_points_Kelley_Simplex</a></div><div class="ttdeci">LINEARIZATION_RETCODE _linearization_points_Kelley_Simplex(const babBase::BabNode &amp;currentNode)</div><div class="ttdoc">This function adds linearizations to LP with the use of an adapted version of Kelley's algorithm....</div><div class="ttdef"><b>Definition:</b> lbpLinearizationStrats.cpp:477</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_af339d8b557668fa7f961faf44c4cbf6b"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af339d8b557668fa7f961faf44c4cbf6b">maingo::lbp::LowerBoundingSolver::_nineqSquash</a></div><div class="ttdeci">const unsigned _nineqSquash</div><div class="ttdef"><b>Definition:</b> lbp.h:712</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a2409b4c91942a365cceb10fd7c9dab17"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2409b4c91942a365cceb10fd7c9dab17">maingo::lbp::LowerBoundingSolver::_linearization_points_random</a></div><div class="ttdeci">LINEARIZATION_RETCODE _linearization_points_random(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</div><div class="ttdoc">This function linearizes each function of the model at (_nvar+2)/2 random points (except for the line...</div><div class="ttdef"><b>Definition:</b> lbpLinearizationStrats.cpp:438</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a807d99cf52ff7bcfa7948e03b585ea54"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a807d99cf52ff7bcfa7948e03b585ea54">maingo::lbp::LowerBoundingSolver::_DAGobj</a></div><div class="ttdeci">std::shared_ptr&lt; DagObj &gt; _DAGobj</div><div class="ttdef"><b>Definition:</b> lbp.h:690</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a4fe2354f3e4bbee160964b089710838e"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4fe2354f3e4bbee160964b089710838e">maingo::lbp::LowerBoundingSolver::_linearize_functions_at_preset_vector_linpoint</a></div><div class="ttdeci">void _linearize_functions_at_preset_vector_linpoint(std::vector&lt; vMC &gt; &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoints, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, mc::FFSubgraph &amp;subgraph, std::vector&lt; mc::FFVar &gt; &amp;functions)</div><div class="ttdoc">Auxiliary function for calling the proper function to linearize functions at precomputed vector linea...</div><div class="ttdef"><b>Definition:</b> lbpLinearizationStrats.cpp:136</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_af0baca6c1bd4847c2c3ab98e3c6c4adb"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af0baca6c1bd4847c2c3ab98e3c6c4adb">maingo::lbp::LowerBoundingSolver::_lowerVarBounds</a></div><div class="ttdeci">std::vector&lt; double &gt; _lowerVarBounds</div><div class="ttdef"><b>Definition:</b> lbp.h:717</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_lbp_dual_info_html_a178540b0c26d82cddddf59854d59bfbd"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_lbp_dual_info.html#a178540b0c26d82cddddf59854d59bfbd">maingo::lbp::LbpDualInfo::multipliers</a></div><div class="ttdeci">std::vector&lt; double &gt; multipliers</div><div class="ttdef"><b>Definition:</b> lbp.h:48</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_ac6734ae698e1c511059e6c0004f77c7b"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ac6734ae698e1c511059e6c0004f77c7b">maingo::lbp::LowerBoundingSolver::_nLinIneqRelaxationOnly</a></div><div class="ttdeci">std::vector&lt; unsigned &gt; _nLinIneqRelaxationOnly</div><div class="ttdef"><b>Definition:</b> lbp.h:703</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a6343f649f960195fc3783b5c0da3a59e"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6343f649f960195fc3783b5c0da3a59e">maingo::lbp::LowerBoundingSolver::_get_objective_value</a></div><div class="ttdeci">double _get_objective_value()</div><div class="ttdoc">Virtual function returning the objective value of the lastly solved LP.</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1931</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_ae45e85f9c8bc19bba1510e89b0698a97"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae45e85f9c8bc19bba1510e89b0698a97">maingo::lbp::LowerBoundingSolver::~LowerBoundingSolver</a></div><div class="ttdeci">virtual ~LowerBoundingSolver()</div><div class="ttdoc">Virtual destructor, only needed to make sure the correct destructor of the derived classes is called.</div><div class="ttdef"><b>Definition:</b> lbp.h:86</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_af5a66b5283474172bf128f2b2c3a4ba7"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af5a66b5283474172bf128f2b2c3a4ba7">maingo::lbp::LowerBoundingSolver::_rhsIneqSquash</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; _rhsIneqSquash</div><div class="ttdef"><b>Definition:</b> lbp.h:680</div></div>
-<div class="ttc" id="namespacemaingo_html_aa02add9895dfda997b2d9036a49bf6fc"><div class="ttname"><a href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fc">maingo::TIGHTENING_RETCODE</a></div><div class="ttdeci">TIGHTENING_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by LowerBoundingSolvers when solving OBBT or constrai...</div><div class="ttdef"><b>Definition:</b> returnCodes.h:49</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a8cd8dd30cb32a2fdf90930acf1a98f69"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8cd8dd30cb32a2fdf90930acf1a98f69">maingo::lbp::LowerBoundingSolver::_fix_variable</a></div><div class="ttdeci">virtual void _fix_variable(const unsigned &amp;iVar, const bool fixToLowerBound)</div><div class="ttdoc">Virtual function for fixing a variable to one of its bounds.</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1995</div></div>
-<div class="ttc" id="namespacemaingo_html_ab7a1cb5c265f8d1c287d43fec7988020"><div class="ttname"><a href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">maingo::SUBSOLVER_RETCODE</a></div><div class="ttdeci">SUBSOLVER_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the different sub-solvers (UpperBoundingSolver,...</div><div class="ttdef"><b>Definition:</b> returnCodes.h:40</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a1aec7459f261f58b6e476fd7eae99581"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1aec7459f261f58b6e476fd7eae99581">maingo::lbp::LowerBoundingSolver::_update_LP_eq</a></div><div class="ttdeci">virtual void _update_LP_eq(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEq)</div><div class="ttdoc">Virtual auxiliary function for updating LP equalities, i.e., processing the linearization of the equa...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1597</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a1994bc43cf051908c35889bb08d3cb02"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1994bc43cf051908c35889bb08d3cb02">maingo::lbp::LowerBoundingSolver::_differentNumberOfLins</a></div><div class="ttdeci">bool _differentNumberOfLins</div><div class="ttdef"><b>Definition:</b> lbp.h:721</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a2277a8ee8f3f41a9498c43add63835c4"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2277a8ee8f3f41a9498c43add63835c4">maingo::lbp::LowerBoundingSolver::_maingoSettings</a></div><div class="ttdeci">Settings * _maingoSettings</div><div class="ttdef"><b>Definition:</b> lbp.h:691</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a7636a8adae2a2382719873d8ee561f17"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7636a8adae2a2382719873d8ee561f17">maingo::lbp::LowerBoundingSolver::_linearize_functions_at_linpoint</a></div><div class="ttdeci">void _linearize_functions_at_linpoint(std::vector&lt; MC &gt; &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, mc::FFSubgraph &amp;subgraph, std::vector&lt; mc::FFVar &gt; &amp;functions)</div><div class="ttdoc">Auxiliary function for calling the proper function to linearize functions at chosen linearization poi...</div><div class="ttdef"><b>Definition:</b> lbpLinearizationStrats.cpp:63</div></div>
+<div class="ttc" id="namespacemaingo_1_1lbp_html_aa50d84ff66f4ea911a333eb047a8b6ea"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#aa50d84ff66f4ea911a333eb047a8b6ea">maingo::lbp::make_lbp_solver</a></div><div class="ttdeci">std::shared_ptr&lt; LowerBoundingSolver &gt; make_lbp_solver(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn)</div><div class="ttdoc">Factory function for initializing different lower bounding solver wrappers. </div><div class="ttdef"><b>Definition:</b> lbpFactory.cpp:30</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a9ee38ffd8ce3d627bfd70c195f9be58d"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9ee38ffd8ce3d627bfd70c195f9be58d">maingo::lbp::LowerBoundingSolver::_restore_LP_coefficients_after_OBBT</a></div><div class="ttdeci">virtual void _restore_LP_coefficients_after_OBBT()</div><div class="ttdoc">Virtual function for restoring proper coefficients and options in the LP after OBBT. </div><div class="ttdef"><b>Definition:</b> lbp.cpp:1953</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a8eb858ee10db606fd5f37c7a9359a943"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8eb858ee10db606fd5f37c7a9359a943">maingo::lbp::LowerBoundingSolver::_linearization_points_Kelley_Simplex</a></div><div class="ttdeci">LINEARIZATION_RETCODE _linearization_points_Kelley_Simplex(const babBase::BabNode &amp;currentNode)</div><div class="ttdoc">This function adds linearizations to LP with the use of an adapted version of Kelley&amp;#39;s algorithm...</div><div class="ttdef"><b>Definition:</b> lbpLinearizationStrats.cpp:433</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_af339d8b557668fa7f961faf44c4cbf6b"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af339d8b557668fa7f961faf44c4cbf6b">maingo::lbp::LowerBoundingSolver::_nineqSquash</a></div><div class="ttdeci">const unsigned _nineqSquash</div><div class="ttdef"><b>Definition:</b> lbp.h:717</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a2409b4c91942a365cceb10fd7c9dab17"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2409b4c91942a365cceb10fd7c9dab17">maingo::lbp::LowerBoundingSolver::_linearization_points_random</a></div><div class="ttdeci">LINEARIZATION_RETCODE _linearization_points_random(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</div><div class="ttdoc">This function linearizes each function of the model at (_nvar+2)/2 random points (except for the line...</div><div class="ttdef"><b>Definition:</b> lbpLinearizationStrats.cpp:394</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a807d99cf52ff7bcfa7948e03b585ea54"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a807d99cf52ff7bcfa7948e03b585ea54">maingo::lbp::LowerBoundingSolver::_DAGobj</a></div><div class="ttdeci">std::shared_ptr&lt; DagObj &gt; _DAGobj</div><div class="ttdef"><b>Definition:</b> lbp.h:695</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a4fe2354f3e4bbee160964b089710838e"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4fe2354f3e4bbee160964b089710838e">maingo::lbp::LowerBoundingSolver::_linearize_functions_at_preset_vector_linpoint</a></div><div class="ttdeci">void _linearize_functions_at_preset_vector_linpoint(std::vector&lt; vMC &gt; &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoints, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, mc::FFSubgraph &amp;subgraph, std::vector&lt; mc::FFVar &gt; &amp;functions)</div><div class="ttdoc">Auxiliary function for calling the proper function to linearize functions at precomputed vector linea...</div><div class="ttdef"><b>Definition:</b> lbpLinearizationStrats.cpp:111</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a9ec401321cfa9eda2672c9a65b6ba11d"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9ec401321cfa9eda2672c9a65b6ba11d">maingo::lbp::LowerBoundingSolver::_logger</a></div><div class="ttdeci">std::shared_ptr&lt; Logger &gt; _logger</div><div class="ttdef"><b>Definition:</b> lbp.h:697</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_af0baca6c1bd4847c2c3ab98e3c6c4adb"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af0baca6c1bd4847c2c3ab98e3c6c4adb">maingo::lbp::LowerBoundingSolver::_lowerVarBounds</a></div><div class="ttdeci">std::vector&lt; double &gt; _lowerVarBounds</div><div class="ttdef"><b>Definition:</b> lbp.h:723</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_lbp_dual_info_html_a178540b0c26d82cddddf59854d59bfbd"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_lbp_dual_info.html#a178540b0c26d82cddddf59854d59bfbd">maingo::lbp::LbpDualInfo::multipliers</a></div><div class="ttdeci">std::vector&lt; double &gt; multipliers</div><div class="ttdef"><b>Definition:</b> lbp.h:53</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_ac6734ae698e1c511059e6c0004f77c7b"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ac6734ae698e1c511059e6c0004f77c7b">maingo::lbp::LowerBoundingSolver::_nLinIneqRelaxationOnly</a></div><div class="ttdeci">std::vector&lt; unsigned &gt; _nLinIneqRelaxationOnly</div><div class="ttdef"><b>Definition:</b> lbp.h:708</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a6343f649f960195fc3783b5c0da3a59e"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6343f649f960195fc3783b5c0da3a59e">maingo::lbp::LowerBoundingSolver::_get_objective_value</a></div><div class="ttdeci">double _get_objective_value()</div><div class="ttdoc">Virtual function returning the objective value of the lastly solved LP. </div><div class="ttdef"><b>Definition:</b> lbp.cpp:1925</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_ae45e85f9c8bc19bba1510e89b0698a97"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae45e85f9c8bc19bba1510e89b0698a97">maingo::lbp::LowerBoundingSolver::~LowerBoundingSolver</a></div><div class="ttdeci">virtual ~LowerBoundingSolver()</div><div class="ttdoc">Virtual destructor, only needed to make sure the correct destructor of the derived classes is called...</div><div class="ttdef"><b>Definition:</b> lbp.h:91</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_af5a66b5283474172bf128f2b2c3a4ba7"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af5a66b5283474172bf128f2b2c3a4ba7">maingo::lbp::LowerBoundingSolver::_rhsIneqSquash</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; _rhsIneqSquash</div><div class="ttdef"><b>Definition:</b> lbp.h:685</div></div>
+<div class="ttc" id="namespacemaingo_html_aa02add9895dfda997b2d9036a49bf6fc"><div class="ttname"><a href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fc">maingo::TIGHTENING_RETCODE</a></div><div class="ttdeci">TIGHTENING_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by LowerBoundingSolvers when solving OBBT or constrai...</div><div class="ttdef"><b>Definition:</b> returnCodes.h:45</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a8cd8dd30cb32a2fdf90930acf1a98f69"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8cd8dd30cb32a2fdf90930acf1a98f69">maingo::lbp::LowerBoundingSolver::_fix_variable</a></div><div class="ttdeci">virtual void _fix_variable(const unsigned &amp;iVar, const bool fixToLowerBound)</div><div class="ttdoc">Virtual function for fixing a variable to one of its bounds. </div><div class="ttdef"><b>Definition:</b> lbp.cpp:1989</div></div>
+<div class="ttc" id="namespacemaingo_html_ab7a1cb5c265f8d1c287d43fec7988020"><div class="ttname"><a href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">maingo::SUBSOLVER_RETCODE</a></div><div class="ttdeci">SUBSOLVER_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the different sub-solvers (UpperBoundingSolver, LowerBoundingSolver). </div><div class="ttdef"><b>Definition:</b> returnCodes.h:36</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a1aec7459f261f58b6e476fd7eae99581"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1aec7459f261f58b6e476fd7eae99581">maingo::lbp::LowerBoundingSolver::_update_LP_eq</a></div><div class="ttdeci">virtual void _update_LP_eq(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEq)</div><div class="ttdoc">Virtual auxiliary function for updating LP equalities, i.e., processing the linearization of the equa...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1591</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a1994bc43cf051908c35889bb08d3cb02"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1994bc43cf051908c35889bb08d3cb02">maingo::lbp::LowerBoundingSolver::_differentNumberOfLins</a></div><div class="ttdeci">bool _differentNumberOfLins</div><div class="ttdef"><b>Definition:</b> lbp.h:727</div></div>
 <div class="ttc" id="constraint_8h_html"><div class="ttname"><a href="constraint_8h.html">constraint.h</a></div></div>
-<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO</div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a994248a0caff4424b631b4ad06e05294"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a994248a0caff4424b631b4ad06e05294">maingo::lbp::LowerBoundingSolver::_maxnParticipatingVariables</a></div><div class="ttdeci">unsigned _maxnParticipatingVariables</div><div class="ttdef"><b>Definition:</b> lbp.h:706</div></div>
-<div class="ttc" id="interval_library_8h_html_a57d32400333d3f6211554cbc6b30c034"><div class="ttname"><a href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a></div><div class="ttdeci">mc::McCormick&lt; I &gt; MC</div><div class="ttdoc">A type definition for a McCormick variable.</div><div class="ttdef"><b>Definition:</b> intervalLibrary.h:57</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a0fd4e70eacba63d56736ebf9602434cc"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a0fd4e70eacba63d56736ebf9602434cc">maingo::lbp::LowerBoundingSolver::_matrixIneq</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; std::vector&lt; double &gt; &gt; &gt; _matrixIneq</div><div class="ttdef"><b>Definition:</b> lbp.h:666</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a805403d014eefe22b8312c4c1b80a877"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a805403d014eefe22b8312c4c1b80a877">maingo::lbp::LowerBoundingSolver::_check_infeasibility</a></div><div class="ttdeci">virtual SUBSOLVER_RETCODE _check_infeasibility(const babBase::BabNode &amp;currentNode)</div><div class="ttdoc">Virtual function for checking if the solution point returned by the LP solver is really infeasible.</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_aff0358f2e7b23dcabb961d27b71e6642"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aff0358f2e7b23dcabb961d27b71e6642">maingo::lbp::LowerBoundingSolver::_update_LP_ineq_squash</a></div><div class="ttdeci">virtual void _update_LP_ineq_squash(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneqSquash)</div><div class="ttdoc">Virtual auxiliary function for updating LP squash inequalities, i.e., processing the linearization of...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1645</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a6ee4019ccdd8ec662f69586121be16b0"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6ee4019ccdd8ec662f69586121be16b0">maingo::lbp::LowerBoundingSolver::_neq</a></div><div class="ttdeci">const unsigned _neq</div><div class="ttdef"><b>Definition:</b> lbp.h:709</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a8ef7d876bfe5e621b0d9dce7e00f4e8f"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8ef7d876bfe5e621b0d9dce7e00f4e8f">maingo::lbp::LowerBoundingSolver::_matrixEq1</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; std::vector&lt; double &gt; &gt; &gt; _matrixEq1</div><div class="ttdef"><b>Definition:</b> lbp.h:667</div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a994248a0caff4424b631b4ad06e05294"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a994248a0caff4424b631b4ad06e05294">maingo::lbp::LowerBoundingSolver::_maxnParticipatingVariables</a></div><div class="ttdeci">unsigned _maxnParticipatingVariables</div><div class="ttdef"><b>Definition:</b> lbp.h:711</div></div>
+<div class="ttc" id="interval_library_8h_html_a57d32400333d3f6211554cbc6b30c034"><div class="ttname"><a href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a></div><div class="ttdeci">mc::McCormick&lt; I &gt; MC</div><div class="ttdoc">A type definition for a McCormick variable. </div><div class="ttdef"><b>Definition:</b> intervalLibrary.h:34</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a0fd4e70eacba63d56736ebf9602434cc"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a0fd4e70eacba63d56736ebf9602434cc">maingo::lbp::LowerBoundingSolver::_matrixIneq</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; std::vector&lt; double &gt; &gt; &gt; _matrixIneq</div><div class="ttdef"><b>Definition:</b> lbp.h:671</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a805403d014eefe22b8312c4c1b80a877"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a805403d014eefe22b8312c4c1b80a877">maingo::lbp::LowerBoundingSolver::_check_infeasibility</a></div><div class="ttdeci">virtual SUBSOLVER_RETCODE _check_infeasibility(const babBase::BabNode &amp;currentNode)</div><div class="ttdoc">Virtual function for checking if the solution point returned by the LP solver is really infeasible...</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_aff0358f2e7b23dcabb961d27b71e6642"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aff0358f2e7b23dcabb961d27b71e6642">maingo::lbp::LowerBoundingSolver::_update_LP_ineq_squash</a></div><div class="ttdeci">virtual void _update_LP_ineq_squash(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneqSquash)</div><div class="ttdoc">Virtual auxiliary function for updating LP squash inequalities, i.e., processing the linearization of...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1639</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a6ee4019ccdd8ec662f69586121be16b0"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6ee4019ccdd8ec662f69586121be16b0">maingo::lbp::LowerBoundingSolver::_neq</a></div><div class="ttdeci">const unsigned _neq</div><div class="ttdef"><b>Definition:</b> lbp.h:714</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a8ef7d876bfe5e621b0d9dce7e00f4e8f"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8ef7d876bfe5e621b0d9dce7e00f4e8f">maingo::lbp::LowerBoundingSolver::_matrixEq1</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; std::vector&lt; double &gt; &gt; &gt; _matrixEq1</div><div class="ttdef"><b>Definition:</b> lbp.h:672</div></div>
 <div class="ttc" id="bab_utils_8h_html"><div class="ttname"><a href="bab_utils_8h.html">babUtils.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a346ce6af484360fa0d789f02a460ca33"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a346ce6af484360fa0d789f02a460ca33">maingo::lbp::LowerBoundingSolver::_update_whole_LP_at_vector_linpoints</a></div><div class="ttdeci">void _update_whole_LP_at_vector_linpoints(const std::vector&lt; vMC &gt; &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoints, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</div><div class="ttdoc">Virtual auxiliary function for updating whole LP at once.</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1808</div></div>
-<div class="ttc" id="namespacemaingo_1_1lbp_html_af2ff1a689d340482f4575c0507b4fa56"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#af2ff1a689d340482f4575c0507b4fa56">maingo::lbp::make_lbp_solver</a></div><div class="ttdeci">std::shared_ptr&lt; LowerBoundingSolver &gt; make_lbp_solver(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn)</div><div class="ttdoc">Factory function for initializing different lower bounding solver wrappers.</div><div class="ttdef"><b>Definition:</b> lbpFactory.cpp:34</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_ad73a525d4fbef8238e26dd95890f2b2b"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ad73a525d4fbef8238e26dd95890f2b2b">maingo::lbp::LowerBoundingSolver::_print_LP</a></div><div class="ttdeci">void _print_LP(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</div><div class="ttdoc">Function for printing the current LP stored in _MatrixA, _MatrixA_eqs, _rhsB, _rhsB_eqs.</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_abc5d2f11849c00d60b5c181e3fc1ecc5"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#abc5d2f11849c00d60b5c181e3fc1ecc5">maingo::lbp::LowerBoundingSolver::_rhsIneq</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; _rhsIneq</div><div class="ttdef"><b>Definition:</b> lbp.h:674</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a1f0229a0978bf619d22afe5a5c5f3e3a"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1f0229a0978bf619d22afe5a5c5f3e3a">maingo::lbp::LowerBoundingSolver::do_constraint_propagation</a></div><div class="ttdeci">virtual TIGHTENING_RETCODE do_constraint_propagation(babBase::BabNode &amp;currentNode, const double currentUBD, const unsigned pass=3)</div><div class="ttdoc">Function called by B&amp;B solver for constraint propagation. This function is virtual as it may be overw...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:990</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a6fa683114a6f2d99b9963b991d089e89"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6fa683114a6f2d99b9963b991d089e89">maingo::lbp::LowerBoundingSolver::_matrixIneqSquash</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; std::vector&lt; double &gt; &gt; &gt; _matrixIneqSquash</div><div class="ttdef"><b>Definition:</b> lbp.h:672</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a75e8efba11ed031032d7e75513f10ba1"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a75e8efba11ed031032d7e75513f10ba1">maingo::lbp::LowerBoundingSolver::_matrixEq2</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; std::vector&lt; double &gt; &gt; &gt; _matrixEq2</div><div class="ttdef"><b>Definition:</b> lbp.h:668</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_ad1db6e887f8b891d267b0347f17fe8db"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ad1db6e887f8b891d267b0347f17fe8db">maingo::lbp::LowerBoundingSolver::_multipliers</a></div><div class="ttdeci">std::vector&lt; double &gt; _multipliers</div><div class="ttdef"><b>Definition:</b> lbp.h:716</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a346ce6af484360fa0d789f02a460ca33"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a346ce6af484360fa0d789f02a460ca33">maingo::lbp::LowerBoundingSolver::_update_whole_LP_at_vector_linpoints</a></div><div class="ttdeci">void _update_whole_LP_at_vector_linpoints(const std::vector&lt; vMC &gt; &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoints, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</div><div class="ttdoc">Virtual auxiliary function for updating whole LP at once. </div><div class="ttdef"><b>Definition:</b> lbp.cpp:1802</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_ad73a525d4fbef8238e26dd95890f2b2b"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ad73a525d4fbef8238e26dd95890f2b2b">maingo::lbp::LowerBoundingSolver::_print_LP</a></div><div class="ttdeci">void _print_LP(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</div><div class="ttdoc">Function for printing the current LP stored in _MatrixA, _MatrixA_eqs, _rhsB, _rhsB_eqs. </div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_abc5d2f11849c00d60b5c181e3fc1ecc5"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#abc5d2f11849c00d60b5c181e3fc1ecc5">maingo::lbp::LowerBoundingSolver::_rhsIneq</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; _rhsIneq</div><div class="ttdef"><b>Definition:</b> lbp.h:679</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a1f0229a0978bf619d22afe5a5c5f3e3a"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1f0229a0978bf619d22afe5a5c5f3e3a">maingo::lbp::LowerBoundingSolver::do_constraint_propagation</a></div><div class="ttdeci">virtual TIGHTENING_RETCODE do_constraint_propagation(babBase::BabNode &amp;currentNode, const double currentUBD, const unsigned pass=3)</div><div class="ttdoc">Function called by B&amp;B solver for constraint propagation. This function is virtual as it may be overw...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:987</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a6fa683114a6f2d99b9963b991d089e89"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6fa683114a6f2d99b9963b991d089e89">maingo::lbp::LowerBoundingSolver::_matrixIneqSquash</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; std::vector&lt; double &gt; &gt; &gt; _matrixIneqSquash</div><div class="ttdef"><b>Definition:</b> lbp.h:677</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a1b4b4c6e80d76f83bb5a2a7f7d2f165c"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1b4b4c6e80d76f83bb5a2a7f7d2f165c">maingo::lbp::LowerBoundingSolver::_maingoSettings</a></div><div class="ttdeci">std::shared_ptr&lt; Settings &gt; _maingoSettings</div><div class="ttdef"><b>Definition:</b> lbp.h:696</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a75e8efba11ed031032d7e75513f10ba1"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a75e8efba11ed031032d7e75513f10ba1">maingo::lbp::LowerBoundingSolver::_matrixEq2</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; std::vector&lt; double &gt; &gt; &gt; _matrixEq2</div><div class="ttdef"><b>Definition:</b> lbp.h:673</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_ad1db6e887f8b891d267b0347f17fe8db"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ad1db6e887f8b891d267b0347f17fe8db">maingo::lbp::LowerBoundingSolver::_multipliers</a></div><div class="ttdeci">std::vector&lt; double &gt; _multipliers</div><div class="ttdef"><b>Definition:</b> lbp.h:722</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a701c19e247fa6e9791313252084b770a"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a701c19e247fa6e9791313252084b770a">maingo::lbp::LowerBoundingSolver::_constraintProperties</a></div><div class="ttdeci">std::shared_ptr&lt; std::vector&lt; Constraint &gt; &gt; _constraintProperties</div><div class="ttdef"><b>Definition:</b> lbp.h:698</div></div>
 <div class="ttc" id="settings_8h_html"><div class="ttname"><a href="settings_8h.html">settings.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a1bd1db09ee19b087b11a761d41dc195d"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1bd1db09ee19b087b11a761d41dc195d">maingo::lbp::LowerBoundingSolver::solve_LBP</a></div><div class="ttdeci">SUBSOLVER_RETCODE solve_LBP(const babBase::BabNode &amp;currentNode, double &amp;lowerBound, std::vector&lt; double &gt; &amp;solutionPoint, LbpDualInfo &amp;dualInfo)</div><div class="ttdoc">Function called by B&amp;B solver for solving the lower bounding problem on the current node.</div><div class="ttdef"><b>Definition:</b> lbp.cpp:392</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a67b22b446040aa9148dbbd411ad928bb"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a67b22b446040aa9148dbbd411ad928bb">maingo::lbp::LowerBoundingSolver::_objectiveScalingFactors</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; _objectiveScalingFactors</div><div class="ttdef"><b>Definition:</b> lbp.h:684</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a51baac566450ca4b94cd715b57c38752"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a51baac566450ca4b94cd715b57c38752">maingo::lbp::LowerBoundingSolver::solve_OBBT</a></div><div class="ttdeci">TIGHTENING_RETCODE solve_OBBT(babBase::BabNode &amp;currentNode, const double currentUBD, const OBBT reductionType)</div><div class="ttdoc">Function called by B&amp;B solver for optimality-based range reduction (cf., e.g., Gleixner et al....</div><div class="ttdef"><b>Definition:</b> lbp.cpp:552</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_ae9f3f49ebc4c635d2c38abbf42c9f256"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae9f3f49ebc4c635d2c38abbf42c9f256">maingo::lbp::LowerBoundingSolver::_solutionPoint</a></div><div class="ttdeci">std::vector&lt; double &gt; _solutionPoint</div><div class="ttdef"><b>Definition:</b> lbp.h:715</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_aafadf6738f60cca6831074ae54f0647d"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aafadf6738f60cca6831074ae54f0647d">maingo::lbp::LowerBoundingSolver::_fallback_to_intervals</a></div><div class="ttdeci">virtual SUBSOLVER_RETCODE _fallback_to_intervals(double &amp;newLBD)</div><div class="ttdoc">Virtual function for checking if a given node is feasible with the use of interval arithmetics....</div><div class="ttdef"><b>Definition:</b> lbp.cpp:2129</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a1bd1db09ee19b087b11a761d41dc195d"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1bd1db09ee19b087b11a761d41dc195d">maingo::lbp::LowerBoundingSolver::solve_LBP</a></div><div class="ttdeci">SUBSOLVER_RETCODE solve_LBP(const babBase::BabNode &amp;currentNode, double &amp;lowerBound, std::vector&lt; double &gt; &amp;solutionPoint, LbpDualInfo &amp;dualInfo)</div><div class="ttdoc">Function called by B&amp;B solver for solving the lower bounding problem on the current node...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:386</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a67b22b446040aa9148dbbd411ad928bb"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a67b22b446040aa9148dbbd411ad928bb">maingo::lbp::LowerBoundingSolver::_objectiveScalingFactors</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; _objectiveScalingFactors</div><div class="ttdef"><b>Definition:</b> lbp.h:689</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a51baac566450ca4b94cd715b57c38752"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a51baac566450ca4b94cd715b57c38752">maingo::lbp::LowerBoundingSolver::solve_OBBT</a></div><div class="ttdeci">TIGHTENING_RETCODE solve_OBBT(babBase::BabNode &amp;currentNode, const double currentUBD, const OBBT reductionType)</div><div class="ttdoc">Function called by B&amp;B solver for optimality-based range reduction (cf., e.g., Gleixner et al...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:546</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_ae9f3f49ebc4c635d2c38abbf42c9f256"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae9f3f49ebc4c635d2c38abbf42c9f256">maingo::lbp::LowerBoundingSolver::_solutionPoint</a></div><div class="ttdeci">std::vector&lt; double &gt; _solutionPoint</div><div class="ttdef"><b>Definition:</b> lbp.h:721</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_aafadf6738f60cca6831074ae54f0647d"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aafadf6738f60cca6831074ae54f0647d">maingo::lbp::LowerBoundingSolver::_fallback_to_intervals</a></div><div class="ttdeci">virtual SUBSOLVER_RETCODE _fallback_to_intervals(double &amp;newLBD)</div><div class="ttdoc">Virtual function for checking if a given node is feasible with the use of interval arithmetics...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:2104</div></div>
 <div class="ttc" id="logger_8h_html"><div class="ttname"><a href="logger_8h.html">logger.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a8f63bc9db34d63c361e2a5e8943fe6c6"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8f63bc9db34d63c361e2a5e8943fe6c6">maingo::lbp::LowerBoundingSolver::_update_whole_LP_at_linpoint</a></div><div class="ttdeci">void _update_whole_LP_at_linpoint(const std::vector&lt; MC &gt; &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin)</div><div class="ttdoc">Virtual auxiliary function for updating whole LP at once.</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1661</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a2237722d9bd7702a7eeb0b2620110bca"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2237722d9bd7702a7eeb0b2620110bca">maingo::lbp::LowerBoundingSolver::_check_if_LP_really_infeasible</a></div><div class="ttdeci">virtual bool _check_if_LP_really_infeasible()</div><div class="ttdoc">Virtual function for checking if the current linear program is really infeasible by,...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:2009</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a456cbe28fac6fbf3508b09b04d1ea846"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a456cbe28fac6fbf3508b09b04d1ea846">maingo::lbp::LowerBoundingSolver::_truncate_value</a></div><div class="ttdeci">void _truncate_value(double &amp;value, const double tolerance)</div><div class="ttdoc">Function used for truncation of value digits which are not guaranteed to be correct.</div><div class="ttdef"><b>Definition:</b> lbp.h:610</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a8f63bc9db34d63c361e2a5e8943fe6c6"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8f63bc9db34d63c361e2a5e8943fe6c6">maingo::lbp::LowerBoundingSolver::_update_whole_LP_at_linpoint</a></div><div class="ttdeci">void _update_whole_LP_at_linpoint(const std::vector&lt; MC &gt; &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin)</div><div class="ttdoc">Virtual auxiliary function for updating whole LP at once. </div><div class="ttdef"><b>Definition:</b> lbp.cpp:1655</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a2237722d9bd7702a7eeb0b2620110bca"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2237722d9bd7702a7eeb0b2620110bca">maingo::lbp::LowerBoundingSolver::_check_if_LP_really_infeasible</a></div><div class="ttdeci">virtual bool _check_if_LP_really_infeasible()</div><div class="ttdoc">Virtual function for checking if the current linear program is really infeasible by, e.g., resolving it with different algorithms. </div><div class="ttdef"><b>Definition:</b> lbp.cpp:2003</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a456cbe28fac6fbf3508b09b04d1ea846"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a456cbe28fac6fbf3508b09b04d1ea846">maingo::lbp::LowerBoundingSolver::_truncate_value</a></div><div class="ttdeci">void _truncate_value(double &amp;value, const double tolerance)</div><div class="ttdoc">Function used for truncation of value digits which are not guaranteed to be correct. </div><div class="ttdef"><b>Definition:</b> lbp.h:615</div></div>
 <div class="ttc" id="lbp_dag_obj_8h_html"><div class="ttname"><a href="lbp_dag_obj_8h.html">lbpDagObj.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_af8be99dda0a3968034aed1c5a0d9fba4"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af8be99dda0a3968034aed1c5a0d9fba4">maingo::lbp::LowerBoundingSolver::_reset_LP</a></div><div class="ttdeci">void _reset_LP(const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</div><div class="ttdoc">The function resets the LP, meaning it sets all rhs to 1e19 and coefficients to 0....</div><div class="ttdef"><b>Definition:</b> lbpLinearizationStrats.cpp:273</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a05546b786f27f965b411bf39944e2d61"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a05546b786f27f965b411bf39944e2d61">maingo::lbp::LowerBoundingSolver::_matrixEqRelaxationOnly1</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; std::vector&lt; double &gt; &gt; &gt; _matrixEqRelaxationOnly1</div><div class="ttdef"><b>Definition:</b> lbp.h:670</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a99567ba1637a154ffdaea2a7f532a39c"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a99567ba1637a154ffdaea2a7f532a39c">maingo::lbp::LowerBoundingSolver::_nineq</a></div><div class="ttdeci">const unsigned _nineq</div><div class="ttdef"><b>Definition:</b> lbp.h:708</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a4124918b8c196646da6489c6d19a5cb9"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4124918b8c196646da6489c6d19a5cb9">maingo::lbp::LowerBoundingSolver::_set_variable_bounds</a></div><div class="ttdeci">virtual void _set_variable_bounds(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</div><div class="ttdoc">Virtual function for setting the bounds of variables.</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1519</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a02b3a186b2fc576f9b5ea705df32a260"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a02b3a186b2fc576f9b5ea705df32a260">maingo::lbp::LowerBoundingSolver::_matrixIneqRelaxationOnly</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; std::vector&lt; double &gt; &gt; &gt; _matrixIneqRelaxationOnly</div><div class="ttdef"><b>Definition:</b> lbp.h:669</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_ae8e6470d9c422e32457e7dd7e7a8cc50"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae8e6470d9c422e32457e7dd7e7a8cc50">maingo::lbp::LowerBoundingSolver::_upperVarBounds</a></div><div class="ttdeci">std::vector&lt; double &gt; _upperVarBounds</div><div class="ttdef"><b>Definition:</b> lbp.h:718</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a31416f2224eea283c3ae280ed3beb497"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a31416f2224eea283c3ae280ed3beb497">maingo::lbp::LowerBoundingSolver::LowerBoundingSolver</a></div><div class="ttdeci">LowerBoundingSolver(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn)</div><div class="ttdoc">Constructor, stores information on the problem and constructs an own copy of the directed acyclic gra...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:34</div></div>
-<div class="ttc" id="namespacemaingo_1_1lbp_html_a4e2b70fda6e64add2c6ad1a9c4a42c90"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90">maingo::lbp::LP_RETCODE</a></div><div class="ttdeci">LP_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned when a linear program is solved.</div><div class="ttdef"><b>Definition:</b> returnCodes.h:73</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a4dd432d487c2099767f0d6de64711bb9"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4dd432d487c2099767f0d6de64711bb9">maingo::lbp::LowerBoundingSolver::_compute_and_rotate_simplex</a></div><div class="ttdeci">void _compute_and_rotate_simplex(const unsigned int dim, const double angleIn, const double sphereRadius, std::vector&lt; std::vector&lt; double &gt;&gt; &amp;simplexPoints)</div><div class="ttdoc">Function for the computation of simplex points lying on a sphere with radius sphereRadius rotated by ...</div><div class="ttdef"><b>Definition:</b> lbpLinearizationStrats.cpp:321</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a96d0133b5deda10067177dee19fd4f6f"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a96d0133b5deda10067177dee19fd4f6f">maingo::lbp::LowerBoundingSolver::_linearize_model_at_incumbent</a></div><div class="ttdeci">LINEARIZATION_RETCODE _linearize_model_at_incumbent(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, const bool holdsIncumbent)</div><div class="ttdoc">This function linearizes each function of the model at the incumbent if it is contained in the curren...</div><div class="ttdef"><b>Definition:</b> lbpLinearizationStrats.cpp:50</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_aa0074d7d40a6c7d983ed738cfb501a5e"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aa0074d7d40a6c7d983ed738cfb501a5e">maingo::lbp::LowerBoundingSolver::_update_LP_nonlinear</a></div><div class="ttdeci">void _update_LP_nonlinear(const std::vector&lt; MC &gt; &amp;resultRelaxationNonlinear, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, const unsigned iLin)</div><div class="ttdoc">This function properly builds the LP using previously determined nonlinear functions.</div><div class="ttdef"><b>Definition:</b> lbpLinearizationStrats.cpp:642</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a1c3d3c5fd2144af3a5e99fb1c74ef772"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1c3d3c5fd2144af3a5e99fb1c74ef772">maingo::lbp::LowerBoundingSolver::activate_more_scaling</a></div><div class="ttdeci">virtual void activate_more_scaling()</div><div class="ttdoc">Function called by the B&amp;B solver to heuristically activate more scaling in the LBS.</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1298</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a443c3bf5e7640f49f8fa7b5503ac9371"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a443c3bf5e7640f49f8fa7b5503ac9371">maingo::lbp::LowerBoundingSolver::_rhsObj</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; _rhsObj</div><div class="ttdef"><b>Definition:</b> lbp.h:673</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_af8be99dda0a3968034aed1c5a0d9fba4"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af8be99dda0a3968034aed1c5a0d9fba4">maingo::lbp::LowerBoundingSolver::_reset_LP</a></div><div class="ttdeci">void _reset_LP(const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</div><div class="ttdoc">The function resets the LP, meaning it sets all rhs to 1e19 and coefficients to 0. Eta coefficients are -1. </div><div class="ttdef"><b>Definition:</b> lbpLinearizationStrats.cpp:229</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a05546b786f27f965b411bf39944e2d61"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a05546b786f27f965b411bf39944e2d61">maingo::lbp::LowerBoundingSolver::_matrixEqRelaxationOnly1</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; std::vector&lt; double &gt; &gt; &gt; _matrixEqRelaxationOnly1</div><div class="ttdef"><b>Definition:</b> lbp.h:675</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a99567ba1637a154ffdaea2a7f532a39c"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a99567ba1637a154ffdaea2a7f532a39c">maingo::lbp::LowerBoundingSolver::_nineq</a></div><div class="ttdeci">const unsigned _nineq</div><div class="ttdef"><b>Definition:</b> lbp.h:713</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a4124918b8c196646da6489c6d19a5cb9"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4124918b8c196646da6489c6d19a5cb9">maingo::lbp::LowerBoundingSolver::_set_variable_bounds</a></div><div class="ttdeci">virtual void _set_variable_bounds(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</div><div class="ttdoc">Virtual function for setting the bounds of variables. </div><div class="ttdef"><b>Definition:</b> lbp.cpp:1513</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a02b3a186b2fc576f9b5ea705df32a260"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a02b3a186b2fc576f9b5ea705df32a260">maingo::lbp::LowerBoundingSolver::_matrixIneqRelaxationOnly</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; std::vector&lt; double &gt; &gt; &gt; _matrixIneqRelaxationOnly</div><div class="ttdef"><b>Definition:</b> lbp.h:674</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_ae8e6470d9c422e32457e7dd7e7a8cc50"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae8e6470d9c422e32457e7dd7e7a8cc50">maingo::lbp::LowerBoundingSolver::_upperVarBounds</a></div><div class="ttdeci">std::vector&lt; double &gt; _upperVarBounds</div><div class="ttdef"><b>Definition:</b> lbp.h:724</div></div>
+<div class="ttc" id="namespacemaingo_1_1lbp_html_a4e2b70fda6e64add2c6ad1a9c4a42c90"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90">maingo::lbp::LP_RETCODE</a></div><div class="ttdeci">LP_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned when a linear program is solved. </div><div class="ttdef"><b>Definition:</b> returnCodes.h:69</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a4dd432d487c2099767f0d6de64711bb9"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4dd432d487c2099767f0d6de64711bb9">maingo::lbp::LowerBoundingSolver::_compute_and_rotate_simplex</a></div><div class="ttdeci">void _compute_and_rotate_simplex(const unsigned int dim, const double angleIn, const double sphereRadius, std::vector&lt; std::vector&lt; double &gt;&gt; &amp;simplexPoints)</div><div class="ttdoc">Function for the computation of simplex points lying on a sphere with radius sphereRadius rotated by ...</div><div class="ttdef"><b>Definition:</b> lbpLinearizationStrats.cpp:277</div></div>
+<div class="ttc" id="namespacemaingo_1_1lbp_html_ad19f1469072a948e0678836725b1d3e8a207bbc0e97b4a6f7598b447f8b8c8b89"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8a207bbc0e97b4a6f7598b447f8b8c8b89">maingo::lbp::OBBT_FEASOPT</a></div><div class="ttdef"><b>Definition:</b> lbp.h:43</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a96d0133b5deda10067177dee19fd4f6f"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a96d0133b5deda10067177dee19fd4f6f">maingo::lbp::LowerBoundingSolver::_linearize_model_at_incumbent</a></div><div class="ttdeci">LINEARIZATION_RETCODE _linearize_model_at_incumbent(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, const bool holdsIncumbent)</div><div class="ttdoc">This function linearizes each function of the model at the incumbent if it is contained in the curren...</div><div class="ttdef"><b>Definition:</b> lbpLinearizationStrats.cpp:44</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_aa0074d7d40a6c7d983ed738cfb501a5e"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aa0074d7d40a6c7d983ed738cfb501a5e">maingo::lbp::LowerBoundingSolver::_update_LP_nonlinear</a></div><div class="ttdeci">void _update_LP_nonlinear(const std::vector&lt; MC &gt; &amp;resultRelaxationNonlinear, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, const unsigned iLin)</div><div class="ttdoc">This function properly builds the LP using previously determined nonlinear functions. </div><div class="ttdef"><b>Definition:</b> lbpLinearizationStrats.cpp:598</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a1c3d3c5fd2144af3a5e99fb1c74ef772"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1c3d3c5fd2144af3a5e99fb1c74ef772">maingo::lbp::LowerBoundingSolver::activate_more_scaling</a></div><div class="ttdeci">virtual void activate_more_scaling()</div><div class="ttdoc">Function called by the B&amp;B solver to heuristically activate more scaling in the LBS. </div><div class="ttdef"><b>Definition:</b> lbp.cpp:1292</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a443c3bf5e7640f49f8fa7b5503ac9371"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a443c3bf5e7640f49f8fa7b5503ac9371">maingo::lbp::LowerBoundingSolver::_rhsObj</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; _rhsObj</div><div class="ttdef"><b>Definition:</b> lbp.h:678</div></div>
 <div class="ttc" id="_m_ai_n_g_odebug_8h_html"><div class="ttname"><a href="_m_ai_n_g_odebug_8h.html">MAiNGOdebug.h</a></div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_lbp_dual_info_html"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_lbp_dual_info.html">maingo::lbp::LbpDualInfo</a></div><div class="ttdoc">Container for information from the LBP that is needed in DBBT and probing, used for communicating the...</div><div class="ttdef"><b>Definition:</b> lbp.h:47</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_af4e0c02718f150532912a15c213e608d"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af4e0c02718f150532912a15c213e608d">maingo::lbp::LowerBoundingSolver::_get_solution_point</a></div><div class="ttdeci">virtual void _get_solution_point(std::vector&lt; double &gt; &amp;solution, double &amp;etaVal)</div><div class="ttdoc">Virtual function for setting the solution to the solution point of the lastly solved LP.</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1921</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a2fa3ad57113343a493feac9a5f4c2667"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2fa3ad57113343a493feac9a5f4c2667">maingo::lbp::LowerBoundingSolver::_check_feasibility</a></div><div class="ttdeci">virtual SUBSOLVER_RETCODE _check_feasibility(const std::vector&lt; double &gt; &amp;solution)</div><div class="ttdoc">Virtual function for checking if the solution point returned by the LP solver is really feasible.</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a7952199940d657eed365a660f4538527"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7952199940d657eed365a660f4538527">maingo::lbp::LowerBoundingSolver::_LPstatus</a></div><div class="ttdeci">LP_RETCODE _LPstatus</div><div class="ttdef"><b>Definition:</b> lbp.h:719</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a687c42fa025369080f4fa0745a5a2256"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a687c42fa025369080f4fa0745a5a2256">maingo::lbp::LowerBoundingSolver::_rhsIneqRelaxationOnly</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; _rhsIneqRelaxationOnly</div><div class="ttdef"><b>Definition:</b> lbp.h:677</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a44512a8b2e88dee8c859b382c7777beb"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a44512a8b2e88dee8c859b382c7777beb">maingo::lbp::LowerBoundingSolver::_update_LP_nonlinear_linear</a></div><div class="ttdeci">void _update_LP_nonlinear_linear(const std::vector&lt; vMC &gt; &amp;resultRelaxationVMCNonlinear, const std::vector&lt; MC &gt; &amp;resultRelaxationLinear, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;scaledPoints, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</div><div class="ttdoc">This function properly builds the LP using previously determined nonlinear and linear functions.</div><div class="ttdef"><b>Definition:</b> lbpLinearizationStrats.cpp:562</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_acc43848f17dfd2e2941e21e3bd308737"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#acc43848f17dfd2e2941e21e3bd308737">maingo::lbp::LowerBoundingSolver::_nineqRelaxationOnly</a></div><div class="ttdeci">const unsigned _nineqRelaxationOnly</div><div class="ttdef"><b>Definition:</b> lbp.h:710</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_lbp_dual_info_html"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_lbp_dual_info.html">maingo::lbp::LbpDualInfo</a></div><div class="ttdoc">Container for information from the LBP that is needed in DBBT and probing, used for communicating the...</div><div class="ttdef"><b>Definition:</b> lbp.h:52</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_af4e0c02718f150532912a15c213e608d"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af4e0c02718f150532912a15c213e608d">maingo::lbp::LowerBoundingSolver::_get_solution_point</a></div><div class="ttdeci">virtual void _get_solution_point(std::vector&lt; double &gt; &amp;solution, double &amp;etaVal)</div><div class="ttdoc">Virtual function for setting the solution to the solution point of the lastly solved LP...</div><div class="ttdef"><b>Definition:</b> lbp.cpp:1915</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a2fa3ad57113343a493feac9a5f4c2667"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2fa3ad57113343a493feac9a5f4c2667">maingo::lbp::LowerBoundingSolver::_check_feasibility</a></div><div class="ttdeci">virtual SUBSOLVER_RETCODE _check_feasibility(const std::vector&lt; double &gt; &amp;solution)</div><div class="ttdoc">Virtual function for checking if the solution point returned by the LP solver is really feasible...</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a7952199940d657eed365a660f4538527"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7952199940d657eed365a660f4538527">maingo::lbp::LowerBoundingSolver::_LPstatus</a></div><div class="ttdeci">LP_RETCODE _LPstatus</div><div class="ttdef"><b>Definition:</b> lbp.h:725</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a687c42fa025369080f4fa0745a5a2256"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a687c42fa025369080f4fa0745a5a2256">maingo::lbp::LowerBoundingSolver::_rhsIneqRelaxationOnly</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; _rhsIneqRelaxationOnly</div><div class="ttdef"><b>Definition:</b> lbp.h:682</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_a44512a8b2e88dee8c859b382c7777beb"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a44512a8b2e88dee8c859b382c7777beb">maingo::lbp::LowerBoundingSolver::_update_LP_nonlinear_linear</a></div><div class="ttdeci">void _update_LP_nonlinear_linear(const std::vector&lt; vMC &gt; &amp;resultRelaxationVMCNonlinear, const std::vector&lt; MC &gt; &amp;resultRelaxationLinear, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;scaledPoints, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</div><div class="ttdoc">This function properly builds the LP using previously determined nonlinear and linear functions...</div><div class="ttdef"><b>Definition:</b> lbpLinearizationStrats.cpp:518</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html_acc43848f17dfd2e2941e21e3bd308737"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html#acc43848f17dfd2e2941e21e3bd308737">maingo::lbp::LowerBoundingSolver::_nineqRelaxationOnly</a></div><div class="ttdeci">const unsigned _nineqRelaxationOnly</div><div class="ttdef"><b>Definition:</b> lbp.h:715</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -222,7 +223,7 @@ $(document).ready(function(){initNavTree('lbp_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="lbp_8h.html">lbp.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/lbp_clp_8cpp.html b/doc/html/lbp_clp_8cpp.html
index 07057beaa77c581dc9cde4a156a058f2730b7986..2fc5763a175b47b2c6f0ba5d4ee14723989154bc 100644
--- a/doc/html/lbp_clp_8cpp.html
+++ b/doc/html/lbp_clp_8cpp.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/src/lbpClp.cpp File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/src/lbpClp.cpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -91,7 +91,7 @@ $(document).ready(function(){initNavTree('lbp_clp_8cpp.html','');});
 </div><!--header-->
 <div class="contents">
 <div class="textblock"><code>#include &quot;<a class="el" href="lbp_clp_8h_source.html">lbpClp.h</a>&quot;</code><br />
-<code>#include &quot;<a class="el" href="exceptions_8h_source.html">exceptions.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_m_ai_n_g_o_exception_8h_source.html">MAiNGOException.h</a>&quot;</code><br />
 <code>#include &lt;algorithm&gt;</code><br />
 <code>#include &lt;limits&gt;</code><br />
 </div></div><!-- contents -->
@@ -102,7 +102,7 @@ $(document).ready(function(){initNavTree('lbp_clp_8cpp.html','');});
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="lbp_clp_8cpp.html">lbpClp.cpp</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/lbp_clp_8h.html b/doc/html/lbp_clp_8h.html
index 30be46d2200a0a9865c42af4829b9d06996a05f7..5903339911d7f07fb968754cc95eae01b3481606 100644
--- a/doc/html/lbp_clp_8h.html
+++ b/doc/html/lbp_clp_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/lbpClp.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/lbpClp.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -123,7 +123,7 @@ Namespaces</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="lbp_clp_8h.html">lbpClp.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/lbp_clp_8h_source.html b/doc/html/lbp_clp_8h_source.html
index cfb1f092c911eb6d329e4aa8ba57717216bfefe2..ed5394a619bd4666decbdb6e938b315bc0a5c6b6 100644
--- a/doc/html/lbp_clp_8h_source.html
+++ b/doc/html/lbp_clp_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/lbpClp.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/lbpClp.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,61 +90,59 @@ $(document).ready(function(){initNavTree('lbp_clp_8h_source.html','');});
 <div class="title">lbpClp.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="lbp_clp_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file lbpClp.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing declaration of lbpClp class used for solving the</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *        lower bounding problems.</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="lbp_8h.html">lbp.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;ClpFactorization.hpp&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &quot;ClpNetworkMatrix.hpp&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;ClpSimplex.hpp&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="keyword">namespace </span>lbp {</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html">   39</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html">LbpClp</a>: <span class="keyword">public</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">LowerBoundingSolver</a> {</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab7e8f8e062116c53497ed6884529a2a3">LbpClp</a>(mc::FFGraph &amp;DAG, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGvars, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGfunctions,</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;           <span class="keyword">const</span> std::vector&lt;babBase::OptimizationVariable&gt; &amp;variables, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqIn,</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;           <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqRelaxationOnlyIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqRelaxationOnlyIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqSquashIn,</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;           <a class="code" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="code" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn, std::vector&lt;Constraint&gt; *constraintPropertiesIn);</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab8577790c0bc0371e97f63040a576171">~LbpClp</a>();</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a514fd19d84444ee472f075f6056d1a05">activate_more_scaling</a>();</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;  <span class="keyword">protected</span>:</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab26772712b05679592cd25f1245d90b9">_set_variable_bounds</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds);</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#adf6172de124b973b6f1ce730119f222c">_update_LP_obj</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                        <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iObj);</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#af9cf257a4e806ecbb182bfa037cad8a4">_update_LP_ineq</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;                         <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneq);</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a52de428ac88f082ffc3cfe4c9ec0ca84">_update_LP_eq</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxationCv, <span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxationCc, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;                       <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iEq);</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a9d4da7fbb2fc96bbcba558f5126bac60">_update_LP_ineqRelaxationOnly</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;                                       <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneqRelaxationOnly);</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a09930dee52d992c1aeab1e8a6f32ef59">_update_LP_eqRelaxationOnly</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxationCv, <span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxationCc, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;                                     <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iEqRelaxationOnly);</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a8b153369bff742d44e37bd7133168877">_update_LP_ineq_squash</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;                                <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneqSquash);</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#adf6172de124b973b6f1ce730119f222c">_update_LP_obj</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;                        <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iObj);</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#af9cf257a4e806ecbb182bfa037cad8a4">_update_LP_ineq</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;                         <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneq);</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a52de428ac88f082ffc3cfe4c9ec0ca84">_update_LP_eq</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationCvVMC, <span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationCcVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;                       <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iEq);</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a9d4da7fbb2fc96bbcba558f5126bac60">_update_LP_ineqRelaxationOnly</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;                                       <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneqRelaxationOnly);</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a09930dee52d992c1aeab1e8a6f32ef59">_update_LP_eqRelaxationOnly</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationCvVMC, <span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationCcVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;                                     <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iEqRelaxationOnly);</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a8b153369bff742d44e37bd7133168877">_update_LP_ineq_squash</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;                                <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneqSquash);</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a3423814b107c872de9f6c7b877546d78">_solve_LP</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode);</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90">LP_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a3e27387ed8c32d6a7a82477c19e99f29">_get_LP_status</a>();</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a43e3cd8415b88cbdc4352948f2677cd5">_get_solution_point</a>(std::vector&lt;double&gt; &amp;solution, <span class="keywordtype">double</span> &amp;etaVal);</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#af9c4aa5ee358ed1bbee6203b2ea21e0c">_get_objective_value_solver</a>();</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#af53e6dc42f11d7c5f5ac55e91414762e">_get_multipliers</a>(std::vector&lt;double&gt; &amp;multipliers);</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab77a56c003c64a99988d6b560c3104bf">_deactivate_objective_function_for_OBBT</a>();</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#adaab91b912d6dd7b148b22b8d5db2584">_modify_LP_for_feasopt_OBBT</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> &amp;currentUBD, std::list&lt;unsigned&gt; &amp;toTreatMax, std::list&lt;unsigned&gt; &amp;toTreatMin);</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a1f1dce9b46444d50651cb9f6c6216f51">_set_optimization_sense_of_variable</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> &amp;iVar, <span class="keyword">const</span> <span class="keywordtype">int</span> &amp;optimizationSense);</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab8b1ff5aae11dd1ae23b260be58a39f2">_fix_variable</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> &amp;iVar, <span class="keyword">const</span> <span class="keywordtype">bool</span> fixToLowerBound);</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#aa0964fe28a1d7c5b3095821749792a7b">_restore_LP_coefficients_after_OBBT</a>();</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#aa4482d8e03130757248872892e2fcb2b">_check_if_LP_really_infeasible</a>();</div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ada95cd9dabecd558b31f2bdc4c26e8e4">  318</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ada95cd9dabecd558b31f2bdc4c26e8e4">_turn_off_specific_options</a>(){};</div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;<span class="preprocessor">#ifdef LP__OPTIMALITY_CHECK</span></div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;</div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#aa66812cce01044ba578222dcfb4ed68a">_check_infeasibility</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode);</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;</div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ad1ca347dd4c44d58cbc0acef37b20ac2">_check_feasibility</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;solution);</div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#af820f00e82a69189bbff37a027f366df">_check_optimality</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode, <span class="keyword">const</span> <span class="keywordtype">double</span> newLBD, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;solution, <span class="keyword">const</span> <span class="keywordtype">double</span> etaVal, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;multipliers);</div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;</div><div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;<span class="preprocessor">#ifdef LP__WRITE_CHECK_FILES</span></div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;</div><div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> _write_LP_to_file(std::string &amp;fileName);</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;</div><div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a584ba5226cae8fee0db0cb043a4f08a3">_terminate_Clp</a>();</div><div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;</div><div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a4ba899146b3421853e50e87560e4cc05">_initialize_matrix</a>();</div><div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;</div><div class="line"><a name="l00376"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#aa2b757fbec54c610ba3d9fe8ba35b67e">  376</a></span>&#160;    ClpSimplex <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#aa2b757fbec54c610ba3d9fe8ba35b67e">_clp</a>;          </div><div class="line"><a name="l00377"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ad98f31f435d1a770ea2df783c84b40c2">  377</a></span>&#160;    CoinPackedMatrix <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ad98f31f435d1a770ea2df783c84b40c2">_matrix</a>; </div><div class="line"><a name="l00379"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a3b4645cd726644e873958a5a5da0bac3">  379</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a3b4645cd726644e873958a5a5da0bac3">_numrows</a>;    </div><div class="line"><a name="l00380"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a67f0379991611936c0028236b5f0ad62">  380</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a67f0379991611936c0028236b5f0ad62">_numcolumns</a>; </div><div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a474d16acc565bd8d8e3f4422ca1408df">  382</a></span>&#160;    <span class="keywordtype">double</span> *<a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a474d16acc565bd8d8e3f4422ca1408df">_objective</a>;      </div><div class="line"><a name="l00383"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab38029cc0d0963194ac6ca8c4e7c6632">  383</a></span>&#160;    <span class="keywordtype">double</span> *<a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab38029cc0d0963194ac6ca8c4e7c6632">_lowerRowBounds</a>; </div><div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a92aff88ba6eff7858852ad88c7545f80">  384</a></span>&#160;    <span class="keywordtype">double</span> *<a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a92aff88ba6eff7858852ad88c7545f80">_upperRowBounds</a>; </div><div class="line"><a name="l00386"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a77dabe29a0aaf2ff45e1f966eef1c585">  386</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a77dabe29a0aaf2ff45e1f966eef1c585">_eta</a>;      </div><div class="line"><a name="l00387"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a0108d59ae1bc4fc86d91c414b4f33b36">  387</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a0108d59ae1bc4fc86d91c414b4f33b36">_etaCoeff</a>; </div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;<span class="preprocessor">#ifdef LP__OPTIMALITY_CHECK</span></div><div class="line"><a name="l00390"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab49912af5fed8f32b703cb246b402272">  390</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab49912af5fed8f32b703cb246b402272">_dualValsObj</a>;                </div><div class="line"><a name="l00391"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a37343fae677c52ba9442967f486a9d47">  391</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a37343fae677c52ba9442967f486a9d47">_dualValsIneq</a>;               </div><div class="line"><a name="l00392"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a2adc46c9adf155ea8785a8d2484032c3">  392</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a2adc46c9adf155ea8785a8d2484032c3">_dualValsEq1</a>;                </div><div class="line"><a name="l00393"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a9a8c2e7f43258a6e900fd5222260e7ae">  393</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a9a8c2e7f43258a6e900fd5222260e7ae">_dualValsEq2</a>;                </div><div class="line"><a name="l00394"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a7a9854a095ccaf7c8e14820a7a349f66">  394</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a7a9854a095ccaf7c8e14820a7a349f66">_dualValsIneqRelaxationOnly</a>; </div><div class="line"><a name="l00395"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ae956a7e6decd45e83cc85e741df2064a">  395</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ae956a7e6decd45e83cc85e741df2064a">_dualValsEqRelaxationOnly1</a>;  </div><div class="line"><a name="l00396"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#aeb1c3f941c0fbbf8d905ca4e3476d658">  396</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#aeb1c3f941c0fbbf8d905ca4e3476d658">_dualValsEqRelaxationOnly2</a>;  </div><div class="line"><a name="l00397"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a6b2afd1c10a6f2c1519575802f0236d9">  397</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a6b2afd1c10a6f2c1519575802f0236d9">_dualValsIneqSquash</a>;         </div><div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;</div><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;};</div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;}    <span class="comment">// end of namespace lbp</span></div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;</div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;</div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;}    <span class="comment">// end of namespace maingo</span></div><div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_ab7e8f8e062116c53497ed6884529a2a3"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab7e8f8e062116c53497ed6884529a2a3">maingo::lbp::LbpClp::LbpClp</a></div><div class="ttdeci">LbpClp(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn)</div><div class="ttdoc">Constructor, stores information on the problem and initializes the CLP problem and solver instances.</div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:29</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></div><div class="ttdoc">Wrapper for handling the lower bounding problems as well as optimization-based bounds tightening (OBB...</div><div class="ttdef"><b>Definition:</b> lbp.h:60</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_aa2b757fbec54c610ba3d9fe8ba35b67e"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#aa2b757fbec54c610ba3d9fe8ba35b67e">maingo::lbp::LbpClp::_clp</a></div><div class="ttdeci">ClpSimplex _clp</div><div class="ttdef"><b>Definition:</b> lbpClp.h:376</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_af9c4aa5ee358ed1bbee6203b2ea21e0c"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#af9c4aa5ee358ed1bbee6203b2ea21e0c">maingo::lbp::LbpClp::_get_objective_value_solver</a></div><div class="ttdeci">double _get_objective_value_solver()</div><div class="ttdoc">Function returning the objective value of the lastly solved LP.</div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:956</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a2adc46c9adf155ea8785a8d2484032c3"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a2adc46c9adf155ea8785a8d2484032c3">maingo::lbp::LbpClp::_dualValsEq1</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; _dualValsEq1</div><div class="ttdef"><b>Definition:</b> lbpClp.h:392</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html"><div class="ttname"><a href="classbab_base_1_1_bab_node.html">babBase::BabNode</a></div><div class="ttdoc">Class representing a node in the Branch-and-Bound tree.</div><div class="ttdef"><b>Definition:</b> babNode.h:35</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a37343fae677c52ba9442967f486a9d47"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a37343fae677c52ba9442967f486a9d47">maingo::lbp::LbpClp::_dualValsIneq</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; _dualValsIneq</div><div class="ttdef"><b>Definition:</b> lbpClp.h:391</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_ab77a56c003c64a99988d6b560c3104bf"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab77a56c003c64a99988d6b560c3104bf">maingo::lbp::LbpClp::_deactivate_objective_function_for_OBBT</a></div><div class="ttdeci">void _deactivate_objective_function_for_OBBT()</div><div class="ttdoc">Function deactivating all objective rows in the LP for feasibility OBBT.</div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:985</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a9d4da7fbb2fc96bbcba558f5126bac60"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a9d4da7fbb2fc96bbcba558f5126bac60">maingo::lbp::LbpClp::_update_LP_ineqRelaxationOnly</a></div><div class="ttdeci">void _update_LP_ineqRelaxationOnly(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneqRelaxationOnly)</div><div class="ttdoc">Auxiliary function for updating LP relaxation only inequalities, i.e., processing the linearization o...</div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:359</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_ad98f31f435d1a770ea2df783c84b40c2"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#ad98f31f435d1a770ea2df783c84b40c2">maingo::lbp::LbpClp::_matrix</a></div><div class="ttdeci">CoinPackedMatrix _matrix</div><div class="ttdef"><b>Definition:</b> lbpClp.h:377</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html"><div class="ttname"><a href="structmaingo_1_1_settings.html">maingo::Settings</a></div><div class="ttdoc">Struct for storing settings for MAiNGO.</div><div class="ttdef"><b>Definition:</b> settings.h:143</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a1f1dce9b46444d50651cb9f6c6216f51"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a1f1dce9b46444d50651cb9f6c6216f51">maingo::lbp::LbpClp::_set_optimization_sense_of_variable</a></div><div class="ttdeci">void _set_optimization_sense_of_variable(const unsigned &amp;iVar, const int &amp;optimizationSense)</div><div class="ttdoc">Function for setting the optimization sense of variable iVar in OBBT.</div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:1040</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a6b2afd1c10a6f2c1519575802f0236d9"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a6b2afd1c10a6f2c1519575802f0236d9">maingo::lbp::LbpClp::_dualValsIneqSquash</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; _dualValsIneqSquash</div><div class="ttdef"><b>Definition:</b> lbpClp.h:397</div></div>
-<div class="ttc" id="interval_library_8h_html_addaf9e7d3c4319861d4942fc13f11964"><div class="ttname"><a href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a></div><div class="ttdeci">mc::vMcCormick&lt; I &gt; vMC</div><div class="ttdoc">A type definition for a vector McCormick variable.</div><div class="ttdef"><b>Definition:</b> intervalLibrary.h:64</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_aa0964fe28a1d7c5b3095821749792a7b"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#aa0964fe28a1d7c5b3095821749792a7b">maingo::lbp::LbpClp::_restore_LP_coefficients_after_OBBT</a></div><div class="ttdeci">void _restore_LP_coefficients_after_OBBT()</div><div class="ttdoc">Function for restoring proper coefficients and options in the LP after OBBT.</div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:1062</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_ab49912af5fed8f32b703cb246b402272"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab49912af5fed8f32b703cb246b402272">maingo::lbp::LbpClp::_dualValsObj</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; _dualValsObj</div><div class="ttdef"><b>Definition:</b> lbpClp.h:390</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a514fd19d84444ee472f075f6056d1a05"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a514fd19d84444ee472f075f6056d1a05">maingo::lbp::LbpClp::activate_more_scaling</a></div><div class="ttdeci">void activate_more_scaling()</div><div class="ttdoc">Function called by the B&amp;B solver to heuristically activate more scaling in the LBS.</div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:200</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a09930dee52d992c1aeab1e8a6f32ef59"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a09930dee52d992c1aeab1e8a6f32ef59">maingo::lbp::LbpClp::_update_LP_eqRelaxationOnly</a></div><div class="ttdeci">void _update_LP_eqRelaxationOnly(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEqRelaxationOnly)</div><div class="ttdoc">Auxiliary function for updating LP relaxation only equalities, i.e., processing the linearization of ...</div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:396</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a9a8c2e7f43258a6e900fd5222260e7ae"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a9a8c2e7f43258a6e900fd5222260e7ae">maingo::lbp::LbpClp::_dualValsEq2</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; _dualValsEq2</div><div class="ttdef"><b>Definition:</b> lbpClp.h:393</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_aeb1c3f941c0fbbf8d905ca4e3476d658"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#aeb1c3f941c0fbbf8d905ca4e3476d658">maingo::lbp::LbpClp::_dualValsEqRelaxationOnly2</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; _dualValsEqRelaxationOnly2</div><div class="ttdef"><b>Definition:</b> lbpClp.h:396</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_adaab91b912d6dd7b148b22b8d5db2584"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#adaab91b912d6dd7b148b22b8d5db2584">maingo::lbp::LbpClp::_modify_LP_for_feasopt_OBBT</a></div><div class="ttdeci">void _modify_LP_for_feasopt_OBBT(const double &amp;currentUBD, std::list&lt; unsigned &gt; &amp;toTreatMax, std::list&lt; unsigned &gt; &amp;toTreatMin)</div><div class="ttdoc">Function modifying the LP for feasibility-optimality OBBT.</div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:1004</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html"><div class="ttname"><a href="classmaingo_1_1_logger.html">maingo::Logger</a></div><div class="ttdoc">This class contains all logging and output information.</div><div class="ttdef"><b>Definition:</b> logger.h:101</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a77dabe29a0aaf2ff45e1f966eef1c585"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a77dabe29a0aaf2ff45e1f966eef1c585">maingo::lbp::LbpClp::_eta</a></div><div class="ttdeci">double _eta</div><div class="ttdef"><b>Definition:</b> lbpClp.h:386</div></div>
+<a href="lbp_clp_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="lbp_8h.html">lbp.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &quot;ClpFactorization.hpp&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &quot;ClpNetworkMatrix.hpp&quot;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;ClpSimplex.hpp&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="keyword">namespace </span>lbp {</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html">   34</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html">LbpClp</a>: <span class="keyword">public</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">LowerBoundingSolver</a> {</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a9e39ab1a9b491aa0d71efbaf3467c19d">LbpClp</a>(mc::FFGraph &amp;DAG, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGvars, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGfunctions,</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;           <span class="keyword">const</span> std::vector&lt;babBase::OptimizationVariable&gt; &amp;variables, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqIn,</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;           <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqRelaxationOnlyIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqRelaxationOnlyIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqSquashIn,</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;           std::shared_ptr&lt;Settings&gt; settingsIn, std::shared_ptr&lt;Logger&gt; loggerIn, std::shared_ptr&lt;std::vector&lt;Constraint&gt;&gt; constraintPropertiesIn);</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab8577790c0bc0371e97f63040a576171">~LbpClp</a>();</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a514fd19d84444ee472f075f6056d1a05">activate_more_scaling</a>();</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;  <span class="keyword">protected</span>:</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab26772712b05679592cd25f1245d90b9">_set_variable_bounds</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds);</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#adf6172de124b973b6f1ce730119f222c">_update_LP_obj</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;                        <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iObj);</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#af9cf257a4e806ecbb182bfa037cad8a4">_update_LP_ineq</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;                         <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneq);</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a52de428ac88f082ffc3cfe4c9ec0ca84">_update_LP_eq</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxationCv, <span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxationCc, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;                       <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iEq);</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a9d4da7fbb2fc96bbcba558f5126bac60">_update_LP_ineqRelaxationOnly</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;                                       <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneqRelaxationOnly);</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a09930dee52d992c1aeab1e8a6f32ef59">_update_LP_eqRelaxationOnly</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxationCv, <span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxationCc, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;                                     <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iEqRelaxationOnly);</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a8b153369bff742d44e37bd7133168877">_update_LP_ineq_squash</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;                                <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneqSquash);</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#adf6172de124b973b6f1ce730119f222c">_update_LP_obj</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;                        <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iObj);</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#af9cf257a4e806ecbb182bfa037cad8a4">_update_LP_ineq</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;                         <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneq);</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a52de428ac88f082ffc3cfe4c9ec0ca84">_update_LP_eq</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationCvVMC, <span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationCcVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;                       <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iEq);</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a9d4da7fbb2fc96bbcba558f5126bac60">_update_LP_ineqRelaxationOnly</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;                                       <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneqRelaxationOnly);</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a09930dee52d992c1aeab1e8a6f32ef59">_update_LP_eqRelaxationOnly</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationCvVMC, <span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationCcVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;                                     <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iEqRelaxationOnly);</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a8b153369bff742d44e37bd7133168877">_update_LP_ineq_squash</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;                                <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneqSquash);</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a3423814b107c872de9f6c7b877546d78">_solve_LP</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode);</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90">LP_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a3e27387ed8c32d6a7a82477c19e99f29">_get_LP_status</a>();</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a43e3cd8415b88cbdc4352948f2677cd5">_get_solution_point</a>(std::vector&lt;double&gt; &amp;solution, <span class="keywordtype">double</span> &amp;etaVal);</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#af9c4aa5ee358ed1bbee6203b2ea21e0c">_get_objective_value_solver</a>();</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#af53e6dc42f11d7c5f5ac55e91414762e">_get_multipliers</a>(std::vector&lt;double&gt; &amp;multipliers);</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab77a56c003c64a99988d6b560c3104bf">_deactivate_objective_function_for_OBBT</a>();</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#adaab91b912d6dd7b148b22b8d5db2584">_modify_LP_for_feasopt_OBBT</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> &amp;currentUBD, std::list&lt;unsigned&gt; &amp;toTreatMax, std::list&lt;unsigned&gt; &amp;toTreatMin);</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a1f1dce9b46444d50651cb9f6c6216f51">_set_optimization_sense_of_variable</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> &amp;iVar, <span class="keyword">const</span> <span class="keywordtype">int</span> &amp;optimizationSense);</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;</div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab8b1ff5aae11dd1ae23b260be58a39f2">_fix_variable</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> &amp;iVar, <span class="keyword">const</span> <span class="keywordtype">bool</span> fixToLowerBound);</div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#aa0964fe28a1d7c5b3095821749792a7b">_restore_LP_coefficients_after_OBBT</a>();</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;</div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#aa4482d8e03130757248872892e2fcb2b">_check_if_LP_really_infeasible</a>();</div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;</div><div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ada95cd9dabecd558b31f2bdc4c26e8e4">  313</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ada95cd9dabecd558b31f2bdc4c26e8e4">_turn_off_specific_options</a>(){};</div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;<span class="preprocessor">#ifdef LP__OPTIMALITY_CHECK</span></div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;</div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#aa66812cce01044ba578222dcfb4ed68a">_check_infeasibility</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode);</div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;</div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ad1ca347dd4c44d58cbc0acef37b20ac2">_check_feasibility</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;solution);</div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;</div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#af820f00e82a69189bbff37a027f366df">_check_optimality</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode, <span class="keyword">const</span> <span class="keywordtype">double</span> newLBD, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;solution, <span class="keyword">const</span> <span class="keywordtype">double</span> etaVal, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;multipliers);</div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;</div><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;</div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;<span class="preprocessor">#ifdef LP__WRITE_CHECK_FILES</span></div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;</div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> _write_LP_to_file(std::string &amp;fileName);</div><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;</div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a584ba5226cae8fee0db0cb043a4f08a3">_terminate_Clp</a>();</div><div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;</div><div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a4ba899146b3421853e50e87560e4cc05">_initialize_matrix</a>();</div><div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;</div><div class="line"><a name="l00371"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#aa2b757fbec54c610ba3d9fe8ba35b67e">  371</a></span>&#160;    ClpSimplex <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#aa2b757fbec54c610ba3d9fe8ba35b67e">_clp</a>;          </div><div class="line"><a name="l00372"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ad98f31f435d1a770ea2df783c84b40c2">  372</a></span>&#160;    CoinPackedMatrix <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ad98f31f435d1a770ea2df783c84b40c2">_matrix</a>; </div><div class="line"><a name="l00374"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a3b4645cd726644e873958a5a5da0bac3">  374</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a3b4645cd726644e873958a5a5da0bac3">_numrows</a>;    </div><div class="line"><a name="l00375"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a67f0379991611936c0028236b5f0ad62">  375</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a67f0379991611936c0028236b5f0ad62">_numcolumns</a>; </div><div class="line"><a name="l00377"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a474d16acc565bd8d8e3f4422ca1408df">  377</a></span>&#160;    <span class="keywordtype">double</span> *<a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a474d16acc565bd8d8e3f4422ca1408df">_objective</a>;      </div><div class="line"><a name="l00378"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab38029cc0d0963194ac6ca8c4e7c6632">  378</a></span>&#160;    <span class="keywordtype">double</span> *<a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab38029cc0d0963194ac6ca8c4e7c6632">_lowerRowBounds</a>; </div><div class="line"><a name="l00379"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a92aff88ba6eff7858852ad88c7545f80">  379</a></span>&#160;    <span class="keywordtype">double</span> *<a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a92aff88ba6eff7858852ad88c7545f80">_upperRowBounds</a>; </div><div class="line"><a name="l00381"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a77dabe29a0aaf2ff45e1f966eef1c585">  381</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a77dabe29a0aaf2ff45e1f966eef1c585">_eta</a>;      </div><div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a0108d59ae1bc4fc86d91c414b4f33b36">  382</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a0108d59ae1bc4fc86d91c414b4f33b36">_etaCoeff</a>; </div><div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;<span class="preprocessor">#ifdef LP__OPTIMALITY_CHECK</span></div><div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab49912af5fed8f32b703cb246b402272">  385</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab49912af5fed8f32b703cb246b402272">_dualValsObj</a>;                </div><div class="line"><a name="l00386"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a37343fae677c52ba9442967f486a9d47">  386</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a37343fae677c52ba9442967f486a9d47">_dualValsIneq</a>;               </div><div class="line"><a name="l00387"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a2adc46c9adf155ea8785a8d2484032c3">  387</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a2adc46c9adf155ea8785a8d2484032c3">_dualValsEq1</a>;                </div><div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a9a8c2e7f43258a6e900fd5222260e7ae">  388</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a9a8c2e7f43258a6e900fd5222260e7ae">_dualValsEq2</a>;                </div><div class="line"><a name="l00389"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a7a9854a095ccaf7c8e14820a7a349f66">  389</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a7a9854a095ccaf7c8e14820a7a349f66">_dualValsIneqRelaxationOnly</a>; </div><div class="line"><a name="l00390"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ae956a7e6decd45e83cc85e741df2064a">  390</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#ae956a7e6decd45e83cc85e741df2064a">_dualValsEqRelaxationOnly1</a>;  </div><div class="line"><a name="l00391"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#aeb1c3f941c0fbbf8d905ca4e3476d658">  391</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#aeb1c3f941c0fbbf8d905ca4e3476d658">_dualValsEqRelaxationOnly2</a>;  </div><div class="line"><a name="l00392"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a6b2afd1c10a6f2c1519575802f0236d9">  392</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_clp.html#a6b2afd1c10a6f2c1519575802f0236d9">_dualValsIneqSquash</a>;         </div><div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;</div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;};</div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;</div><div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;</div><div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;}    <span class="comment">// end of namespace lbp</span></div><div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;</div><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;</div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;}    <span class="comment">// end of namespace maingo</span></div><div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></div><div class="ttdoc">Wrapper for handling the lower bounding problems as well as optimization-based bounds tightening (OBB...</div><div class="ttdef"><b>Definition:</b> lbp.h:65</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_aa2b757fbec54c610ba3d9fe8ba35b67e"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#aa2b757fbec54c610ba3d9fe8ba35b67e">maingo::lbp::LbpClp::_clp</a></div><div class="ttdeci">ClpSimplex _clp</div><div class="ttdef"><b>Definition:</b> lbpClp.h:371</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_af9c4aa5ee358ed1bbee6203b2ea21e0c"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#af9c4aa5ee358ed1bbee6203b2ea21e0c">maingo::lbp::LbpClp::_get_objective_value_solver</a></div><div class="ttdeci">double _get_objective_value_solver()</div><div class="ttdoc">Function returning the objective value of the lastly solved LP. </div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:952</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a2adc46c9adf155ea8785a8d2484032c3"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a2adc46c9adf155ea8785a8d2484032c3">maingo::lbp::LbpClp::_dualValsEq1</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; _dualValsEq1</div><div class="ttdef"><b>Definition:</b> lbpClp.h:387</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html"><div class="ttname"><a href="classbab_base_1_1_bab_node.html">babBase::BabNode</a></div><div class="ttdoc">Class representing a node in the Branch-and-Bound tree. </div><div class="ttdef"><b>Definition:</b> babNode.h:35</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a37343fae677c52ba9442967f486a9d47"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a37343fae677c52ba9442967f486a9d47">maingo::lbp::LbpClp::_dualValsIneq</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; _dualValsIneq</div><div class="ttdef"><b>Definition:</b> lbpClp.h:386</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_ab77a56c003c64a99988d6b560c3104bf"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab77a56c003c64a99988d6b560c3104bf">maingo::lbp::LbpClp::_deactivate_objective_function_for_OBBT</a></div><div class="ttdeci">void _deactivate_objective_function_for_OBBT()</div><div class="ttdoc">Function deactivating all objective rows in the LP for feasibility OBBT. </div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:981</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a9d4da7fbb2fc96bbcba558f5126bac60"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a9d4da7fbb2fc96bbcba558f5126bac60">maingo::lbp::LbpClp::_update_LP_ineqRelaxationOnly</a></div><div class="ttdeci">void _update_LP_ineqRelaxationOnly(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneqRelaxationOnly)</div><div class="ttdoc">Auxiliary function for updating LP relaxation only inequalities, i.e., processing the linearization o...</div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:355</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_ad98f31f435d1a770ea2df783c84b40c2"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#ad98f31f435d1a770ea2df783c84b40c2">maingo::lbp::LbpClp::_matrix</a></div><div class="ttdeci">CoinPackedMatrix _matrix</div><div class="ttdef"><b>Definition:</b> lbpClp.h:372</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a1f1dce9b46444d50651cb9f6c6216f51"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a1f1dce9b46444d50651cb9f6c6216f51">maingo::lbp::LbpClp::_set_optimization_sense_of_variable</a></div><div class="ttdeci">void _set_optimization_sense_of_variable(const unsigned &amp;iVar, const int &amp;optimizationSense)</div><div class="ttdoc">Function for setting the optimization sense of variable iVar in OBBT. </div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:1036</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a6b2afd1c10a6f2c1519575802f0236d9"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a6b2afd1c10a6f2c1519575802f0236d9">maingo::lbp::LbpClp::_dualValsIneqSquash</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; _dualValsIneqSquash</div><div class="ttdef"><b>Definition:</b> lbpClp.h:392</div></div>
+<div class="ttc" id="interval_library_8h_html_addaf9e7d3c4319861d4942fc13f11964"><div class="ttname"><a href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a></div><div class="ttdeci">mc::vMcCormick&lt; I &gt; vMC</div><div class="ttdoc">A type definition for a vector McCormick variable. </div><div class="ttdef"><b>Definition:</b> intervalLibrary.h:41</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_aa0964fe28a1d7c5b3095821749792a7b"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#aa0964fe28a1d7c5b3095821749792a7b">maingo::lbp::LbpClp::_restore_LP_coefficients_after_OBBT</a></div><div class="ttdeci">void _restore_LP_coefficients_after_OBBT()</div><div class="ttdoc">Function for restoring proper coefficients and options in the LP after OBBT. </div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:1058</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_ab49912af5fed8f32b703cb246b402272"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab49912af5fed8f32b703cb246b402272">maingo::lbp::LbpClp::_dualValsObj</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; _dualValsObj</div><div class="ttdef"><b>Definition:</b> lbpClp.h:385</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a514fd19d84444ee472f075f6056d1a05"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a514fd19d84444ee472f075f6056d1a05">maingo::lbp::LbpClp::activate_more_scaling</a></div><div class="ttdeci">void activate_more_scaling()</div><div class="ttdoc">Function called by the B&amp;B solver to heuristically activate more scaling in the LBS. </div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:196</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a09930dee52d992c1aeab1e8a6f32ef59"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a09930dee52d992c1aeab1e8a6f32ef59">maingo::lbp::LbpClp::_update_LP_eqRelaxationOnly</a></div><div class="ttdeci">void _update_LP_eqRelaxationOnly(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEqRelaxationOnly)</div><div class="ttdoc">Auxiliary function for updating LP relaxation only equalities, i.e., processing the linearization of ...</div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:392</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a9a8c2e7f43258a6e900fd5222260e7ae"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a9a8c2e7f43258a6e900fd5222260e7ae">maingo::lbp::LbpClp::_dualValsEq2</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; _dualValsEq2</div><div class="ttdef"><b>Definition:</b> lbpClp.h:388</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_aeb1c3f941c0fbbf8d905ca4e3476d658"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#aeb1c3f941c0fbbf8d905ca4e3476d658">maingo::lbp::LbpClp::_dualValsEqRelaxationOnly2</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; _dualValsEqRelaxationOnly2</div><div class="ttdef"><b>Definition:</b> lbpClp.h:391</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_adaab91b912d6dd7b148b22b8d5db2584"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#adaab91b912d6dd7b148b22b8d5db2584">maingo::lbp::LbpClp::_modify_LP_for_feasopt_OBBT</a></div><div class="ttdeci">void _modify_LP_for_feasopt_OBBT(const double &amp;currentUBD, std::list&lt; unsigned &gt; &amp;toTreatMax, std::list&lt; unsigned &gt; &amp;toTreatMin)</div><div class="ttdoc">Function modifying the LP for feasibility-optimality OBBT. </div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:1000</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a77dabe29a0aaf2ff45e1f966eef1c585"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a77dabe29a0aaf2ff45e1f966eef1c585">maingo::lbp::LbpClp::_eta</a></div><div class="ttdeci">double _eta</div><div class="ttdef"><b>Definition:</b> lbpClp.h:381</div></div>
 <div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_af820f00e82a69189bbff37a027f366df"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#af820f00e82a69189bbff37a027f366df">maingo::lbp::LbpClp::_check_optimality</a></div><div class="ttdeci">SUBSOLVER_RETCODE _check_optimality(const babBase::BabNode &amp;currentNode, const double newLBD, const std::vector&lt; double &gt; &amp;solution, const double etaVal, const std::vector&lt; double &gt; &amp;multipliers)</div><div class="ttdoc">Function for checking if the solution point returned by CLP solver is really optimal using strong dua...</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a43e3cd8415b88cbdc4352948f2677cd5"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a43e3cd8415b88cbdc4352948f2677cd5">maingo::lbp::LbpClp::_get_solution_point</a></div><div class="ttdeci">void _get_solution_point(std::vector&lt; double &gt; &amp;solution, double &amp;etaVal)</div><div class="ttdoc">Function for setting the solution to the solution point of the lastly solved LP.</div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:933</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a4ba899146b3421853e50e87560e4cc05"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a4ba899146b3421853e50e87560e4cc05">maingo::lbp::LbpClp::_initialize_matrix</a></div><div class="ttdeci">void _initialize_matrix()</div><div class="ttdoc">Function for initializing the CLP-internal matrix.</div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:138</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a52de428ac88f082ffc3cfe4c9ec0ca84"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a52de428ac88f082ffc3cfe4c9ec0ca84">maingo::lbp::LbpClp::_update_LP_eq</a></div><div class="ttdeci">void _update_LP_eq(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEq)</div><div class="ttdoc">Auxiliary function for updating LP equalities, i.e., processing the linearization of the equality.</div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:299</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a474d16acc565bd8d8e3f4422ca1408df"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a474d16acc565bd8d8e3f4422ca1408df">maingo::lbp::LbpClp::_objective</a></div><div class="ttdeci">double * _objective</div><div class="ttdef"><b>Definition:</b> lbpClp.h:382</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a584ba5226cae8fee0db0cb043a4f08a3"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a584ba5226cae8fee0db0cb043a4f08a3">maingo::lbp::LbpClp::_terminate_Clp</a></div><div class="ttdeci">void _terminate_Clp()</div><div class="ttdoc">Function for taking care of memory management by terminating CLP (either called from destructor or wh...</div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:1654</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_af9cf257a4e806ecbb182bfa037cad8a4"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#af9cf257a4e806ecbb182bfa037cad8a4">maingo::lbp::LbpClp::_update_LP_ineq</a></div><div class="ttdeci">void _update_LP_ineq(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneq)</div><div class="ttdoc">Auxiliary function for updating LP inequalities, i.e., processing the linearization of the inequality...</div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:262</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a8b153369bff742d44e37bd7133168877"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a8b153369bff742d44e37bd7133168877">maingo::lbp::LbpClp::_update_LP_ineq_squash</a></div><div class="ttdeci">void _update_LP_ineq_squash(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneqSquash)</div><div class="ttdoc">Auxiliary function for updating LP squash inequalities, i.e., processing the linearization of the squ...</div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:460</div></div>
-<div class="ttc" id="namespacemaingo_html_ab7a1cb5c265f8d1c287d43fec7988020"><div class="ttname"><a href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">maingo::SUBSOLVER_RETCODE</a></div><div class="ttdeci">SUBSOLVER_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the different sub-solvers (UpperBoundingSolver,...</div><div class="ttdef"><b>Definition:</b> returnCodes.h:40</div></div>
-<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO</div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
-<div class="ttc" id="interval_library_8h_html_a57d32400333d3f6211554cbc6b30c034"><div class="ttname"><a href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a></div><div class="ttdeci">mc::McCormick&lt; I &gt; MC</div><div class="ttdoc">A type definition for a McCormick variable.</div><div class="ttdef"><b>Definition:</b> intervalLibrary.h:57</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a3b4645cd726644e873958a5a5da0bac3"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a3b4645cd726644e873958a5a5da0bac3">maingo::lbp::LbpClp::_numrows</a></div><div class="ttdeci">unsigned _numrows</div><div class="ttdef"><b>Definition:</b> lbpClp.h:379</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_adf6172de124b973b6f1ce730119f222c"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#adf6172de124b973b6f1ce730119f222c">maingo::lbp::LbpClp::_update_LP_obj</a></div><div class="ttdeci">void _update_LP_obj(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iObj)</div><div class="ttdoc">Auxiliary function for updating LP objective, i.e., processing the linearization of the objective fun...</div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:224</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_aa66812cce01044ba578222dcfb4ed68a"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#aa66812cce01044ba578222dcfb4ed68a">maingo::lbp::LbpClp::_check_infeasibility</a></div><div class="ttdeci">SUBSOLVER_RETCODE _check_infeasibility(const babBase::BabNode &amp;currentNode)</div><div class="ttdoc">Function for checking if the solution point returned CLP is really infeasible using Farkas' Lemma.</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_ab26772712b05679592cd25f1245d90b9"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab26772712b05679592cd25f1245d90b9">maingo::lbp::LbpClp::_set_variable_bounds</a></div><div class="ttdeci">void _set_variable_bounds(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</div><div class="ttdoc">Function for setting the bounds of variables.</div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:211</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a3423814b107c872de9f6c7b877546d78"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a3423814b107c872de9f6c7b877546d78">maingo::lbp::LbpClp::_solve_LP</a></div><div class="ttdeci">void _solve_LP(const babBase::BabNode &amp;currentNode)</div><div class="ttdoc">Function for solving the currently constructed linear program.</div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:794</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a92aff88ba6eff7858852ad88c7545f80"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a92aff88ba6eff7858852ad88c7545f80">maingo::lbp::LbpClp::_upperRowBounds</a></div><div class="ttdeci">double * _upperRowBounds</div><div class="ttdef"><b>Definition:</b> lbpClp.h:384</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_ad1ca347dd4c44d58cbc0acef37b20ac2"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#ad1ca347dd4c44d58cbc0acef37b20ac2">maingo::lbp::LbpClp::_check_feasibility</a></div><div class="ttdeci">SUBSOLVER_RETCODE _check_feasibility(const std::vector&lt; double &gt; &amp;solution)</div><div class="ttdoc">Function for checking if the solution point returned by CLP solver is really feasible.</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a67f0379991611936c0028236b5f0ad62"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a67f0379991611936c0028236b5f0ad62">maingo::lbp::LbpClp::_numcolumns</a></div><div class="ttdeci">unsigned _numcolumns</div><div class="ttdef"><b>Definition:</b> lbpClp.h:380</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a7a9854a095ccaf7c8e14820a7a349f66"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a7a9854a095ccaf7c8e14820a7a349f66">maingo::lbp::LbpClp::_dualValsIneqRelaxationOnly</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; _dualValsIneqRelaxationOnly</div><div class="ttdef"><b>Definition:</b> lbpClp.h:394</div></div>
-<div class="ttc" id="namespacemaingo_1_1lbp_html_a4e2b70fda6e64add2c6ad1a9c4a42c90"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90">maingo::lbp::LP_RETCODE</a></div><div class="ttdeci">LP_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned when a linear program is solved.</div><div class="ttdef"><b>Definition:</b> returnCodes.h:73</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a0108d59ae1bc4fc86d91c414b4f33b36"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a0108d59ae1bc4fc86d91c414b4f33b36">maingo::lbp::LbpClp::_etaCoeff</a></div><div class="ttdeci">double _etaCoeff</div><div class="ttdef"><b>Definition:</b> lbpClp.h:387</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_ab38029cc0d0963194ac6ca8c4e7c6632"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab38029cc0d0963194ac6ca8c4e7c6632">maingo::lbp::LbpClp::_lowerRowBounds</a></div><div class="ttdeci">double * _lowerRowBounds</div><div class="ttdef"><b>Definition:</b> lbpClp.h:383</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_af53e6dc42f11d7c5f5ac55e91414762e"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#af53e6dc42f11d7c5f5ac55e91414762e">maingo::lbp::LbpClp::_get_multipliers</a></div><div class="ttdeci">void _get_multipliers(std::vector&lt; double &gt; &amp;multipliers)</div><div class="ttdoc">Function for setting the multipliers of the lastly solved LP.</div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:965</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></div><div class="ttdoc">Wrapper for handling the lower bounding problems by interfacing CLP.</div><div class="ttdef"><b>Definition:</b> lbpClp.h:39</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_ab8577790c0bc0371e97f63040a576171"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab8577790c0bc0371e97f63040a576171">maingo::lbp::LbpClp::~LbpClp</a></div><div class="ttdeci">~LbpClp()</div><div class="ttdoc">Destructor.</div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:128</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a43e3cd8415b88cbdc4352948f2677cd5"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a43e3cd8415b88cbdc4352948f2677cd5">maingo::lbp::LbpClp::_get_solution_point</a></div><div class="ttdeci">void _get_solution_point(std::vector&lt; double &gt; &amp;solution, double &amp;etaVal)</div><div class="ttdoc">Function for setting the solution to the solution point of the lastly solved LP. </div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:929</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a4ba899146b3421853e50e87560e4cc05"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a4ba899146b3421853e50e87560e4cc05">maingo::lbp::LbpClp::_initialize_matrix</a></div><div class="ttdeci">void _initialize_matrix()</div><div class="ttdoc">Function for initializing the CLP-internal matrix. </div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:134</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a52de428ac88f082ffc3cfe4c9ec0ca84"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a52de428ac88f082ffc3cfe4c9ec0ca84">maingo::lbp::LbpClp::_update_LP_eq</a></div><div class="ttdeci">void _update_LP_eq(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEq)</div><div class="ttdoc">Auxiliary function for updating LP equalities, i.e., processing the linearization of the equality...</div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:295</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a474d16acc565bd8d8e3f4422ca1408df"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a474d16acc565bd8d8e3f4422ca1408df">maingo::lbp::LbpClp::_objective</a></div><div class="ttdeci">double * _objective</div><div class="ttdef"><b>Definition:</b> lbpClp.h:377</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a584ba5226cae8fee0db0cb043a4f08a3"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a584ba5226cae8fee0db0cb043a4f08a3">maingo::lbp::LbpClp::_terminate_Clp</a></div><div class="ttdeci">void _terminate_Clp()</div><div class="ttdoc">Function for taking care of memory management by terminating CLP (either called from destructor or wh...</div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:1648</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_af9cf257a4e806ecbb182bfa037cad8a4"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#af9cf257a4e806ecbb182bfa037cad8a4">maingo::lbp::LbpClp::_update_LP_ineq</a></div><div class="ttdeci">void _update_LP_ineq(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneq)</div><div class="ttdoc">Auxiliary function for updating LP inequalities, i.e., processing the linearization of the inequality...</div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:258</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a8b153369bff742d44e37bd7133168877"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a8b153369bff742d44e37bd7133168877">maingo::lbp::LbpClp::_update_LP_ineq_squash</a></div><div class="ttdeci">void _update_LP_ineq_squash(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneqSquash)</div><div class="ttdoc">Auxiliary function for updating LP squash inequalities, i.e., processing the linearization of the squ...</div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:456</div></div>
+<div class="ttc" id="namespacemaingo_html_ab7a1cb5c265f8d1c287d43fec7988020"><div class="ttname"><a href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">maingo::SUBSOLVER_RETCODE</a></div><div class="ttdeci">SUBSOLVER_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the different sub-solvers (UpperBoundingSolver, LowerBoundingSolver). </div><div class="ttdef"><b>Definition:</b> returnCodes.h:36</div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
+<div class="ttc" id="interval_library_8h_html_a57d32400333d3f6211554cbc6b30c034"><div class="ttname"><a href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a></div><div class="ttdeci">mc::McCormick&lt; I &gt; MC</div><div class="ttdoc">A type definition for a McCormick variable. </div><div class="ttdef"><b>Definition:</b> intervalLibrary.h:34</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a3b4645cd726644e873958a5a5da0bac3"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a3b4645cd726644e873958a5a5da0bac3">maingo::lbp::LbpClp::_numrows</a></div><div class="ttdeci">unsigned _numrows</div><div class="ttdef"><b>Definition:</b> lbpClp.h:374</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_adf6172de124b973b6f1ce730119f222c"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#adf6172de124b973b6f1ce730119f222c">maingo::lbp::LbpClp::_update_LP_obj</a></div><div class="ttdeci">void _update_LP_obj(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iObj)</div><div class="ttdoc">Auxiliary function for updating LP objective, i.e., processing the linearization of the objective fun...</div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:220</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_aa66812cce01044ba578222dcfb4ed68a"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#aa66812cce01044ba578222dcfb4ed68a">maingo::lbp::LbpClp::_check_infeasibility</a></div><div class="ttdeci">SUBSOLVER_RETCODE _check_infeasibility(const babBase::BabNode &amp;currentNode)</div><div class="ttdoc">Function for checking if the solution point returned CLP is really infeasible using Farkas&amp;#39; Lemma...</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_ab26772712b05679592cd25f1245d90b9"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab26772712b05679592cd25f1245d90b9">maingo::lbp::LbpClp::_set_variable_bounds</a></div><div class="ttdeci">void _set_variable_bounds(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</div><div class="ttdoc">Function for setting the bounds of variables. </div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:207</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a3423814b107c872de9f6c7b877546d78"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a3423814b107c872de9f6c7b877546d78">maingo::lbp::LbpClp::_solve_LP</a></div><div class="ttdeci">void _solve_LP(const babBase::BabNode &amp;currentNode)</div><div class="ttdoc">Function for solving the currently constructed linear program. </div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:790</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a92aff88ba6eff7858852ad88c7545f80"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a92aff88ba6eff7858852ad88c7545f80">maingo::lbp::LbpClp::_upperRowBounds</a></div><div class="ttdeci">double * _upperRowBounds</div><div class="ttdef"><b>Definition:</b> lbpClp.h:379</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_ad1ca347dd4c44d58cbc0acef37b20ac2"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#ad1ca347dd4c44d58cbc0acef37b20ac2">maingo::lbp::LbpClp::_check_feasibility</a></div><div class="ttdeci">SUBSOLVER_RETCODE _check_feasibility(const std::vector&lt; double &gt; &amp;solution)</div><div class="ttdoc">Function for checking if the solution point returned by CLP solver is really feasible. </div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a67f0379991611936c0028236b5f0ad62"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a67f0379991611936c0028236b5f0ad62">maingo::lbp::LbpClp::_numcolumns</a></div><div class="ttdeci">unsigned _numcolumns</div><div class="ttdef"><b>Definition:</b> lbpClp.h:375</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a7a9854a095ccaf7c8e14820a7a349f66"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a7a9854a095ccaf7c8e14820a7a349f66">maingo::lbp::LbpClp::_dualValsIneqRelaxationOnly</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; _dualValsIneqRelaxationOnly</div><div class="ttdef"><b>Definition:</b> lbpClp.h:389</div></div>
+<div class="ttc" id="namespacemaingo_1_1lbp_html_a4e2b70fda6e64add2c6ad1a9c4a42c90"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90">maingo::lbp::LP_RETCODE</a></div><div class="ttdeci">LP_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned when a linear program is solved. </div><div class="ttdef"><b>Definition:</b> returnCodes.h:69</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a9e39ab1a9b491aa0d71efbaf3467c19d"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a9e39ab1a9b491aa0d71efbaf3467c19d">maingo::lbp::LbpClp::LbpClp</a></div><div class="ttdeci">LbpClp(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn)</div><div class="ttdoc">Constructor, stores information on the problem and initializes the CLP problem and solver instances...</div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:25</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a0108d59ae1bc4fc86d91c414b4f33b36"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a0108d59ae1bc4fc86d91c414b4f33b36">maingo::lbp::LbpClp::_etaCoeff</a></div><div class="ttdeci">double _etaCoeff</div><div class="ttdef"><b>Definition:</b> lbpClp.h:382</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_ab38029cc0d0963194ac6ca8c4e7c6632"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab38029cc0d0963194ac6ca8c4e7c6632">maingo::lbp::LbpClp::_lowerRowBounds</a></div><div class="ttdeci">double * _lowerRowBounds</div><div class="ttdef"><b>Definition:</b> lbpClp.h:378</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_af53e6dc42f11d7c5f5ac55e91414762e"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#af53e6dc42f11d7c5f5ac55e91414762e">maingo::lbp::LbpClp::_get_multipliers</a></div><div class="ttdeci">void _get_multipliers(std::vector&lt; double &gt; &amp;multipliers)</div><div class="ttdoc">Function for setting the multipliers of the lastly solved LP. </div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:961</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html">maingo::lbp::LbpClp</a></div><div class="ttdoc">Wrapper for handling the lower bounding problems by interfacing CLP. </div><div class="ttdef"><b>Definition:</b> lbpClp.h:34</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_ab8577790c0bc0371e97f63040a576171"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab8577790c0bc0371e97f63040a576171">maingo::lbp::LbpClp::~LbpClp</a></div><div class="ttdeci">~LbpClp()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:124</div></div>
 <div class="ttc" id="lbp_8h_html"><div class="ttname"><a href="lbp_8h.html">lbp.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_aa4482d8e03130757248872892e2fcb2b"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#aa4482d8e03130757248872892e2fcb2b">maingo::lbp::LbpClp::_check_if_LP_really_infeasible</a></div><div class="ttdeci">bool _check_if_LP_really_infeasible()</div><div class="ttdoc">Function for checking if the current linear program is really infeasible by, e.g.,...</div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:1080</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_ab8b1ff5aae11dd1ae23b260be58a39f2"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab8b1ff5aae11dd1ae23b260be58a39f2">maingo::lbp::LbpClp::_fix_variable</a></div><div class="ttdeci">void _fix_variable(const unsigned &amp;iVar, const bool fixToLowerBound)</div><div class="ttdoc">Function for fixing a variable to one of its bounds.</div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:1049</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_ada95cd9dabecd558b31f2bdc4c26e8e4"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#ada95cd9dabecd558b31f2bdc4c26e8e4">maingo::lbp::LbpClp::_turn_off_specific_options</a></div><div class="ttdeci">void _turn_off_specific_options()</div><div class="ttdoc">Function for checking if a specific option has to be turned off for a given lower bounding solver....</div><div class="ttdef"><b>Definition:</b> lbpClp.h:318</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a3e27387ed8c32d6a7a82477c19e99f29"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a3e27387ed8c32d6a7a82477c19e99f29">maingo::lbp::LbpClp::_get_LP_status</a></div><div class="ttdeci">LP_RETCODE _get_LP_status()</div><div class="ttdoc">Function returning the current status of the lastly solved linear program.</div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:914</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_ae956a7e6decd45e83cc85e741df2064a"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#ae956a7e6decd45e83cc85e741df2064a">maingo::lbp::LbpClp::_dualValsEqRelaxationOnly1</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; _dualValsEqRelaxationOnly1</div><div class="ttdef"><b>Definition:</b> lbpClp.h:395</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_aa4482d8e03130757248872892e2fcb2b"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#aa4482d8e03130757248872892e2fcb2b">maingo::lbp::LbpClp::_check_if_LP_really_infeasible</a></div><div class="ttdeci">bool _check_if_LP_really_infeasible()</div><div class="ttdoc">Function for checking if the current linear program is really infeasible by, e.g., resolving it with different algorithms. </div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:1076</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_ab8b1ff5aae11dd1ae23b260be58a39f2"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#ab8b1ff5aae11dd1ae23b260be58a39f2">maingo::lbp::LbpClp::_fix_variable</a></div><div class="ttdeci">void _fix_variable(const unsigned &amp;iVar, const bool fixToLowerBound)</div><div class="ttdoc">Function for fixing a variable to one of its bounds. </div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:1045</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_ada95cd9dabecd558b31f2bdc4c26e8e4"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#ada95cd9dabecd558b31f2bdc4c26e8e4">maingo::lbp::LbpClp::_turn_off_specific_options</a></div><div class="ttdeci">void _turn_off_specific_options()</div><div class="ttdoc">Function for checking if a specific option has to be turned off for a given lower bounding solver...</div><div class="ttdef"><b>Definition:</b> lbpClp.h:313</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_a3e27387ed8c32d6a7a82477c19e99f29"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#a3e27387ed8c32d6a7a82477c19e99f29">maingo::lbp::LbpClp::_get_LP_status</a></div><div class="ttdeci">LP_RETCODE _get_LP_status()</div><div class="ttdoc">Function returning the current status of the lastly solved linear program. </div><div class="ttdef"><b>Definition:</b> lbpClp.cpp:910</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_clp_html_ae956a7e6decd45e83cc85e741df2064a"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_clp.html#ae956a7e6decd45e83cc85e741df2064a">maingo::lbp::LbpClp::_dualValsEqRelaxationOnly1</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; _dualValsEqRelaxationOnly1</div><div class="ttdef"><b>Definition:</b> lbpClp.h:390</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -153,7 +151,7 @@ $(document).ready(function(){initNavTree('lbp_clp_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="lbp_clp_8h.html">lbpClp.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/lbp_cplex_8cpp.html b/doc/html/lbp_cplex_8cpp.html
index 0e42480269c8ba5077d3525ec38203a30105f8b6..a72b3fdf01e237796ff97794292192f063d76320 100644
--- a/doc/html/lbp_cplex_8cpp.html
+++ b/doc/html/lbp_cplex_8cpp.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/src/lbpCplex.cpp File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/src/lbpCplex.cpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -98,7 +98,7 @@ $(document).ready(function(){initNavTree('lbp_cplex_8cpp.html','');});
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="lbp_cplex_8cpp.html">lbpCplex.cpp</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/lbp_cplex_8h.html b/doc/html/lbp_cplex_8h.html
index 4161c1738529a82aed08534dbf6ee092cdf3c632..80cb1d03387f270141d2132030686a499e9455b7 100644
--- a/doc/html/lbp_cplex_8h.html
+++ b/doc/html/lbp_cplex_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/lbpCplex.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/lbpCplex.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -121,7 +121,7 @@ Namespaces</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="lbp_cplex_8h.html">lbpCplex.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/lbp_cplex_8h_source.html b/doc/html/lbp_cplex_8h_source.html
index 98943a70b83249d1c3a60309c2c78a0770cd1ffc..317674395eb23dab92374818b659616090b4cd67 100644
--- a/doc/html/lbp_cplex_8h_source.html
+++ b/doc/html/lbp_cplex_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/lbpCplex.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/lbpCplex.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,68 +90,66 @@ $(document).ready(function(){initNavTree('lbp_cplex_8h_source.html','');});
 <div class="title">lbpCplex.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="lbp_cplex_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file lbpCplex.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing declaration of LbpCplex class used for solving the</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *        lower bounding problems.</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="lbp_8h.html">lbp.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;ilcplex/ilocplex.h&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="keyword">namespace </span>lbp {</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">   37</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">LbpCplex</a>: <span class="keyword">public</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">LowerBoundingSolver</a> {</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ae9d2adeabbd07038fd8a27192548ebef">LbpCplex</a>(mc::FFGraph &amp;DAG, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGvars, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGfunctions,</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;             <span class="keyword">const</span> std::vector&lt;babBase::OptimizationVariable&gt; &amp;variables, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqIn,</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;             <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqRelaxationOnlyIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqRelaxationOnlyIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqSquashIn,</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;             <a class="code" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="code" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn, std::vector&lt;Constraint&gt; *constraintPropertiesIn);</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#acea05d7f9625a5dc671c43611a15cf4b">~LbpCplex</a>();</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab551861cdafea80ba3f9dbffa07475a0">activate_more_scaling</a>();</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;  <span class="keyword">protected</span>:</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a8607c42324581cb796ce36f5d0750917">_set_variable_bounds</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds);</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a54a04809e29838e9e2d787f1e8200a8d">_update_LP_obj</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                        <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iObj);</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a19f7e270bfcdca9bce0c55aa0608dfd4">_update_LP_ineq</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;                         <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneq);</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab05713911aef1c8aac1d4da8f8d1faac">_update_LP_eq</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxationCv, <span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxationCc, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;                       <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iEq);</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a7551c7b0a8d63b589a3e5e64153add73">_update_LP_ineqRelaxationOnly</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;                                       <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneqRelaxationOnly);</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a84205c27db34dc362f0ac7302d2cecbc">_update_LP_eqRelaxationOnly</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxationCv, <span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxationCc, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;                                     <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iEqRelaxationOnly);</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a323d0e6ce0aec6d2f0a498e9a53e3e68">_update_LP_ineq_squash</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;                                <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneqSquash);</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a54a04809e29838e9e2d787f1e8200a8d">_update_LP_obj</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;                        <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iObj);</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a19f7e270bfcdca9bce0c55aa0608dfd4">_update_LP_ineq</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;                         <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneq);</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab05713911aef1c8aac1d4da8f8d1faac">_update_LP_eq</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationCvVMC, <span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationCcVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;                       <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iEq);</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a7551c7b0a8d63b589a3e5e64153add73">_update_LP_ineqRelaxationOnly</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;                                       <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneqRelaxationOnly);</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a84205c27db34dc362f0ac7302d2cecbc">_update_LP_eqRelaxationOnly</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationCvVMC, <span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationCcVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;                                     <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iEqRelaxationOnly);</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a323d0e6ce0aec6d2f0a498e9a53e3e68">_update_LP_ineq_squash</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;                                <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneqSquash);</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a1dec750f6f585a7ec3887d8786747104">_solve_LP</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode);</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90">LP_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a5fc72422c29fbfba6710f9f2e244b28c">_get_LP_status</a>();</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab1306509036c3a0063f66bbcf8e8333e">_get_solution_point</a>(std::vector&lt;double&gt; &amp;solution, <span class="keywordtype">double</span> &amp;etaVal);</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a4e3ab5943005e5287d047361b8b32985">_get_objective_value_solver</a>();</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a8e70de9d87020368dab0536c183d1fbb">_get_multipliers</a>(std::vector&lt;double&gt; &amp;multipliers);</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a52d7567c17415e93e1f7ca11e779b7df">_deactivate_objective_function_for_OBBT</a>();</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ac0b43bc512e9bb34cc5253de53bbb80b">_modify_LP_for_feasopt_OBBT</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> &amp;currentUBD, std::list&lt;unsigned&gt; &amp;toTreatMax, std::list&lt;unsigned&gt; &amp;toTreatMin);</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a83502d4b1d4e3f0487daefb1b241ce4a">_set_optimization_sense_of_variable</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> &amp;iVar, <span class="keyword">const</span> <span class="keywordtype">int</span> &amp;optimizationSense);</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a6f17d0771ce88fdaecfe4399759afc36">_fix_variable</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> &amp;iVar, <span class="keyword">const</span> <span class="keywordtype">bool</span> fixToLowerBound);</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;</div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#aa9d3a01d31337a11c0e74e9883597d99">_restore_LP_coefficients_after_OBBT</a>();</div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;</div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a325f7fbdb9704f99fc46b5e26d84558f">_check_if_LP_really_infeasible</a>();</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;</div><div class="line"><a name="l00316"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a792aea9d68cf82b893b5ed1ca0d439b5">  316</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a792aea9d68cf82b893b5ed1ca0d439b5">_turn_off_specific_options</a>(){};</div><div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;<span class="preprocessor">#ifdef LP__OPTIMALITY_CHECK</span></div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;</div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a198a548602ac6a18bd5bc453ec305200">_check_infeasibility</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode);</div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;</div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#aa4b86f37a78b5f8ce2ac3abdbd6e3a74">_check_feasibility</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;solution);</div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;</div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ae3bf7a1bba331fef4de0c2793a311229">_check_optimality</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode, <span class="keyword">const</span> <span class="keywordtype">double</span> newLBD, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;solution, <span class="keyword">const</span> <span class="keywordtype">double</span> etaVal, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;multipliers);</div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;<span class="preprocessor">#ifdef LP__WRITE_CHECK_FILES</span></div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;</div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> _write_LP_to_file(std::string &amp;fileName);</div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a08adc9be917d4a13774634695cf59065">_terminate_cplex</a>();</div><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;</div><div class="line"><a name="l00368"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a2df1db1980c5364b07ff8d58fc217034">  368</a></span>&#160;    IloEnv <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a2df1db1980c5364b07ff8d58fc217034">cplxEnv</a>;                                   </div><div class="line"><a name="l00369"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a951643df3f751b62c79f476a0ea3c608">  369</a></span>&#160;    IloModel <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a951643df3f751b62c79f476a0ea3c608">cplxModel</a>;                               </div><div class="line"><a name="l00370"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ac88cac7557fd9ba8a903ce0f8bec2aa1">  370</a></span>&#160;    IloObjective <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ac88cac7557fd9ba8a903ce0f8bec2aa1">cplxObjective</a>;                       </div><div class="line"><a name="l00371"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab051569370a1f5574a9e4b2049d7f91c">  371</a></span>&#160;    IloNumVarArray <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab051569370a1f5574a9e4b2049d7f91c">cplxVars</a>;                          </div><div class="line"><a name="l00372"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#aeb417aefdc41100afb0e2909b89c48de">  372</a></span>&#160;    IloNumVar <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#aeb417aefdc41100afb0e2909b89c48de">eta</a>;                                    </div><div class="line"><a name="l00373"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a25db11157597f82460caa11b4eaef535">  373</a></span>&#160;    std::vector&lt;IloRangeArray&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a25db11157597f82460caa11b4eaef535">linObj</a>;                </div><div class="line"><a name="l00374"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a6c4e8f3f96aac77b3237f85cc7d6797b">  374</a></span>&#160;    std::vector&lt;IloRangeArray&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a6c4e8f3f96aac77b3237f85cc7d6797b">linIneq</a>;               </div><div class="line"><a name="l00375"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a82570231ff560ede1f10507014071ddb">  375</a></span>&#160;    std::vector&lt;IloRangeArray&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a82570231ff560ede1f10507014071ddb">linEq1</a>;                </div><div class="line"><a name="l00376"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a652e421291526e503dd2883418759396">  376</a></span>&#160;    std::vector&lt;IloRangeArray&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a652e421291526e503dd2883418759396">linEq2</a>;                </div><div class="line"><a name="l00377"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a7f36e0416328d26653e05b70b8c54e80">  377</a></span>&#160;    std::vector&lt;IloRangeArray&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a7f36e0416328d26653e05b70b8c54e80">linIneqRelaxationOnly</a>; </div><div class="line"><a name="l00378"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#abf000bb326887d3f342c963bea965ff1">  378</a></span>&#160;    std::vector&lt;IloRangeArray&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#abf000bb326887d3f342c963bea965ff1">linEqRelaxationOnly1</a>;  </div><div class="line"><a name="l00379"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a528413321d2e8655b7716fe93cc3e520">  379</a></span>&#160;    std::vector&lt;IloRangeArray&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a528413321d2e8655b7716fe93cc3e520">linEqRelaxationOnly2</a>;  </div><div class="line"><a name="l00380"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a6d3ad23f21da9a7e0c6b714b90f3d024">  380</a></span>&#160;    std::vector&lt;IloRangeArray&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a6d3ad23f21da9a7e0c6b714b90f3d024">linIneqSquash</a>;         </div><div class="line"><a name="l00381"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a7dda609edcb60a37ba2cb3841a660ebd">  381</a></span>&#160;    IloCplex <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a7dda609edcb60a37ba2cb3841a660ebd">cplex</a>;                                   </div><div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a597ef61cfc52812826709ac4cbd03e69">  382</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a597ef61cfc52812826709ac4cbd03e69">etaCoeff</a>;                                  </div><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;<span class="preprocessor">#ifdef LP__OPTIMALITY_CHECK</span></div><div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#af4552b8d7392bf83f24ffd77be3ac2c9">  384</a></span>&#160;    IloRangeArray <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#af4552b8d7392bf83f24ffd77be3ac2c9">farkasCons</a>;                            </div><div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#aa34760a024d749e14cd39c81060e99a5">  385</a></span>&#160;    IloNumArray <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#aa34760a024d749e14cd39c81060e99a5">farkasVals</a>;                              </div><div class="line"><a name="l00386"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a4888f571a5c013fbd790fafda5720aa8">  386</a></span>&#160;    std::vector&lt;IloNumArray&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a4888f571a5c013fbd790fafda5720aa8">dualValsObj</a>;                </div><div class="line"><a name="l00387"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a5cc102e4bdde27460e7c616800eace16">  387</a></span>&#160;    std::vector&lt;IloNumArray&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a5cc102e4bdde27460e7c616800eace16">dualValsIneq</a>;               </div><div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a85bd7308a8f4542bad51fb32dc8a86e6">  388</a></span>&#160;    std::vector&lt;IloNumArray&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a85bd7308a8f4542bad51fb32dc8a86e6">dualValsEq1</a>;                </div><div class="line"><a name="l00389"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab0dc9e53cabaf5897e2950d6b9d1b93b">  389</a></span>&#160;    std::vector&lt;IloNumArray&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab0dc9e53cabaf5897e2950d6b9d1b93b">dualValsEq2</a>;                </div><div class="line"><a name="l00390"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ae2d5d4c819acd3ba32022492370f32a4">  390</a></span>&#160;    std::vector&lt;IloNumArray&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ae2d5d4c819acd3ba32022492370f32a4">dualValsIneqRelaxationOnly</a>; </div><div class="line"><a name="l00391"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#acc180d01e0c9452c5a58435b3bace97a">  391</a></span>&#160;    std::vector&lt;IloNumArray&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#acc180d01e0c9452c5a58435b3bace97a">dualValsEqRelaxationOnly1</a>;  </div><div class="line"><a name="l00392"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a3bad1daefb975b53d7e2ba2211bd8fb7">  392</a></span>&#160;    std::vector&lt;IloNumArray&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a3bad1daefb975b53d7e2ba2211bd8fb7">dualValsEqRelaxationOnly2</a>;  </div><div class="line"><a name="l00393"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a4f60e9240871fc4785447932e2f5f7f4">  393</a></span>&#160;    std::vector&lt;IloNumArray&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a4f60e9240871fc4785447932e2f5f7f4">dualValsIneqSquash</a>;         </div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;</div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;};</div><div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;</div><div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;</div><div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;}    <span class="comment">// end of namespace lbp</span></div><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;</div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;}    <span class="comment">// end of namespace maingo</span></div><div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></div><div class="ttdoc">Wrapper for handling the lower bounding problems as well as optimization-based bounds tightening (OBB...</div><div class="ttdef"><b>Definition:</b> lbp.h:60</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a7f36e0416328d26653e05b70b8c54e80"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a7f36e0416328d26653e05b70b8c54e80">maingo::lbp::LbpCplex::linIneqRelaxationOnly</a></div><div class="ttdeci">std::vector&lt; IloRangeArray &gt; linIneqRelaxationOnly</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:377</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a4e3ab5943005e5287d047361b8b32985"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a4e3ab5943005e5287d047361b8b32985">maingo::lbp::LbpCplex::_get_objective_value_solver</a></div><div class="ttdeci">double _get_objective_value_solver()</div><div class="ttdoc">Function returning the objective value of the lastly solved LP.</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a792aea9d68cf82b893b5ed1ca0d439b5"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a792aea9d68cf82b893b5ed1ca0d439b5">maingo::lbp::LbpCplex::_turn_off_specific_options</a></div><div class="ttdeci">void _turn_off_specific_options()</div><div class="ttdoc">Function for checking if a specific option has to be turned off for a given lower bounding solver....</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:316</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_ab551861cdafea80ba3f9dbffa07475a0"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab551861cdafea80ba3f9dbffa07475a0">maingo::lbp::LbpCplex::activate_more_scaling</a></div><div class="ttdeci">void activate_more_scaling()</div><div class="ttdoc">Function called by the B&amp;B solver to heuristically activate more scaling in the LBS.</div></div>
+<a href="lbp_cplex_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="lbp_8h.html">lbp.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &lt;ilcplex/ilocplex.h&gt;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="keyword">namespace </span>lbp {</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">   32</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html">LbpCplex</a>: <span class="keyword">public</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">LowerBoundingSolver</a> {</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ac3a9c29513f616834eb0cd0cddf08b0c">LbpCplex</a>(mc::FFGraph &amp;DAG, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGvars, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGfunctions,</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;             <span class="keyword">const</span> std::vector&lt;babBase::OptimizationVariable&gt; &amp;variables, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqIn,</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;             <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqRelaxationOnlyIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqRelaxationOnlyIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqSquashIn,</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;             std::shared_ptr&lt;Settings&gt; settingsIn, std::shared_ptr&lt;Logger&gt; loggerIn, std::shared_ptr&lt;std::vector&lt;Constraint&gt;&gt; constraintPropertiesIn);</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#acea05d7f9625a5dc671c43611a15cf4b">~LbpCplex</a>();</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab551861cdafea80ba3f9dbffa07475a0">activate_more_scaling</a>();</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;  <span class="keyword">protected</span>:</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a8607c42324581cb796ce36f5d0750917">_set_variable_bounds</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds);</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a54a04809e29838e9e2d787f1e8200a8d">_update_LP_obj</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;                        <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iObj);</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a19f7e270bfcdca9bce0c55aa0608dfd4">_update_LP_ineq</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;                         <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneq);</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab05713911aef1c8aac1d4da8f8d1faac">_update_LP_eq</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxationCv, <span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxationCc, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;                       <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iEq);</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a7551c7b0a8d63b589a3e5e64153add73">_update_LP_ineqRelaxationOnly</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;                                       <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneqRelaxationOnly);</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a84205c27db34dc362f0ac7302d2cecbc">_update_LP_eqRelaxationOnly</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxationCv, <span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxationCc, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;                                     <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iEqRelaxationOnly);</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a323d0e6ce0aec6d2f0a498e9a53e3e68">_update_LP_ineq_squash</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;                                <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneqSquash);</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a54a04809e29838e9e2d787f1e8200a8d">_update_LP_obj</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;                        <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iObj);</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a19f7e270bfcdca9bce0c55aa0608dfd4">_update_LP_ineq</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;                         <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneq);</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab05713911aef1c8aac1d4da8f8d1faac">_update_LP_eq</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationCvVMC, <span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationCcVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;                       <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iEq);</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a7551c7b0a8d63b589a3e5e64153add73">_update_LP_ineqRelaxationOnly</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;                                       <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneqRelaxationOnly);</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a84205c27db34dc362f0ac7302d2cecbc">_update_LP_eqRelaxationOnly</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationCvVMC, <span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationCcVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;                                     <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iEqRelaxationOnly);</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a323d0e6ce0aec6d2f0a498e9a53e3e68">_update_LP_ineq_squash</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a> &amp;resultRelaxationVMC, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;                                <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneqSquash);</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a1dec750f6f585a7ec3887d8786747104">_solve_LP</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode);</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90">LP_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a5fc72422c29fbfba6710f9f2e244b28c">_get_LP_status</a>();</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab1306509036c3a0063f66bbcf8e8333e">_get_solution_point</a>(std::vector&lt;double&gt; &amp;solution, <span class="keywordtype">double</span> &amp;etaVal);</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a4e3ab5943005e5287d047361b8b32985">_get_objective_value_solver</a>();</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a8e70de9d87020368dab0536c183d1fbb">_get_multipliers</a>(std::vector&lt;double&gt; &amp;multipliers);</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a52d7567c17415e93e1f7ca11e779b7df">_deactivate_objective_function_for_OBBT</a>();</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ac0b43bc512e9bb34cc5253de53bbb80b">_modify_LP_for_feasopt_OBBT</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> &amp;currentUBD, std::list&lt;unsigned&gt; &amp;toTreatMax, std::list&lt;unsigned&gt; &amp;toTreatMin);</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a83502d4b1d4e3f0487daefb1b241ce4a">_set_optimization_sense_of_variable</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> &amp;iVar, <span class="keyword">const</span> <span class="keywordtype">int</span> &amp;optimizationSense);</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a6f17d0771ce88fdaecfe4399759afc36">_fix_variable</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> &amp;iVar, <span class="keyword">const</span> <span class="keywordtype">bool</span> fixToLowerBound);</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#aa9d3a01d31337a11c0e74e9883597d99">_restore_LP_coefficients_after_OBBT</a>();</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a325f7fbdb9704f99fc46b5e26d84558f">_check_if_LP_really_infeasible</a>();</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;</div><div class="line"><a name="l00311"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a792aea9d68cf82b893b5ed1ca0d439b5">  311</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a792aea9d68cf82b893b5ed1ca0d439b5">_turn_off_specific_options</a>(){};</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;<span class="preprocessor">#ifdef LP__OPTIMALITY_CHECK</span></div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a198a548602ac6a18bd5bc453ec305200">_check_infeasibility</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode);</div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#aa4b86f37a78b5f8ce2ac3abdbd6e3a74">_check_feasibility</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;solution);</div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ae3bf7a1bba331fef4de0c2793a311229">_check_optimality</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode, <span class="keyword">const</span> <span class="keywordtype">double</span> newLBD, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;solution, <span class="keyword">const</span> <span class="keywordtype">double</span> etaVal, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;multipliers);</div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;</div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;</div><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;<span class="preprocessor">#ifdef LP__WRITE_CHECK_FILES</span></div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;</div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> _write_LP_to_file(std::string &amp;fileName);</div><div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;</div><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a08adc9be917d4a13774634695cf59065">_terminate_cplex</a>();</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;</div><div class="line"><a name="l00363"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a2df1db1980c5364b07ff8d58fc217034">  363</a></span>&#160;    IloEnv <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a2df1db1980c5364b07ff8d58fc217034">cplxEnv</a>;                                   </div><div class="line"><a name="l00364"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a951643df3f751b62c79f476a0ea3c608">  364</a></span>&#160;    IloModel <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a951643df3f751b62c79f476a0ea3c608">cplxModel</a>;                               </div><div class="line"><a name="l00365"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ac88cac7557fd9ba8a903ce0f8bec2aa1">  365</a></span>&#160;    IloObjective <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ac88cac7557fd9ba8a903ce0f8bec2aa1">cplxObjective</a>;                       </div><div class="line"><a name="l00366"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab051569370a1f5574a9e4b2049d7f91c">  366</a></span>&#160;    IloNumVarArray <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab051569370a1f5574a9e4b2049d7f91c">cplxVars</a>;                          </div><div class="line"><a name="l00367"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#aeb417aefdc41100afb0e2909b89c48de">  367</a></span>&#160;    IloNumVar <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#aeb417aefdc41100afb0e2909b89c48de">eta</a>;                                    </div><div class="line"><a name="l00368"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a25db11157597f82460caa11b4eaef535">  368</a></span>&#160;    std::vector&lt;IloRangeArray&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a25db11157597f82460caa11b4eaef535">linObj</a>;                </div><div class="line"><a name="l00369"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a6c4e8f3f96aac77b3237f85cc7d6797b">  369</a></span>&#160;    std::vector&lt;IloRangeArray&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a6c4e8f3f96aac77b3237f85cc7d6797b">linIneq</a>;               </div><div class="line"><a name="l00370"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a82570231ff560ede1f10507014071ddb">  370</a></span>&#160;    std::vector&lt;IloRangeArray&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a82570231ff560ede1f10507014071ddb">linEq1</a>;                </div><div class="line"><a name="l00371"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a652e421291526e503dd2883418759396">  371</a></span>&#160;    std::vector&lt;IloRangeArray&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a652e421291526e503dd2883418759396">linEq2</a>;                </div><div class="line"><a name="l00372"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a7f36e0416328d26653e05b70b8c54e80">  372</a></span>&#160;    std::vector&lt;IloRangeArray&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a7f36e0416328d26653e05b70b8c54e80">linIneqRelaxationOnly</a>; </div><div class="line"><a name="l00373"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#abf000bb326887d3f342c963bea965ff1">  373</a></span>&#160;    std::vector&lt;IloRangeArray&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#abf000bb326887d3f342c963bea965ff1">linEqRelaxationOnly1</a>;  </div><div class="line"><a name="l00374"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a528413321d2e8655b7716fe93cc3e520">  374</a></span>&#160;    std::vector&lt;IloRangeArray&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a528413321d2e8655b7716fe93cc3e520">linEqRelaxationOnly2</a>;  </div><div class="line"><a name="l00375"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a6d3ad23f21da9a7e0c6b714b90f3d024">  375</a></span>&#160;    std::vector&lt;IloRangeArray&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a6d3ad23f21da9a7e0c6b714b90f3d024">linIneqSquash</a>;         </div><div class="line"><a name="l00376"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a7dda609edcb60a37ba2cb3841a660ebd">  376</a></span>&#160;    IloCplex <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a7dda609edcb60a37ba2cb3841a660ebd">cplex</a>;                                   </div><div class="line"><a name="l00377"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a597ef61cfc52812826709ac4cbd03e69">  377</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a597ef61cfc52812826709ac4cbd03e69">etaCoeff</a>;                                  </div><div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;<span class="preprocessor">#ifdef LP__OPTIMALITY_CHECK</span></div><div class="line"><a name="l00379"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#af4552b8d7392bf83f24ffd77be3ac2c9">  379</a></span>&#160;    IloRangeArray <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#af4552b8d7392bf83f24ffd77be3ac2c9">farkasCons</a>;                            </div><div class="line"><a name="l00380"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#aa34760a024d749e14cd39c81060e99a5">  380</a></span>&#160;    IloNumArray <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#aa34760a024d749e14cd39c81060e99a5">farkasVals</a>;                              </div><div class="line"><a name="l00381"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a4888f571a5c013fbd790fafda5720aa8">  381</a></span>&#160;    std::vector&lt;IloNumArray&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a4888f571a5c013fbd790fafda5720aa8">dualValsObj</a>;                </div><div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a5cc102e4bdde27460e7c616800eace16">  382</a></span>&#160;    std::vector&lt;IloNumArray&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a5cc102e4bdde27460e7c616800eace16">dualValsIneq</a>;               </div><div class="line"><a name="l00383"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a85bd7308a8f4542bad51fb32dc8a86e6">  383</a></span>&#160;    std::vector&lt;IloNumArray&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a85bd7308a8f4542bad51fb32dc8a86e6">dualValsEq1</a>;                </div><div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab0dc9e53cabaf5897e2950d6b9d1b93b">  384</a></span>&#160;    std::vector&lt;IloNumArray&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab0dc9e53cabaf5897e2950d6b9d1b93b">dualValsEq2</a>;                </div><div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ae2d5d4c819acd3ba32022492370f32a4">  385</a></span>&#160;    std::vector&lt;IloNumArray&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ae2d5d4c819acd3ba32022492370f32a4">dualValsIneqRelaxationOnly</a>; </div><div class="line"><a name="l00386"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#acc180d01e0c9452c5a58435b3bace97a">  386</a></span>&#160;    std::vector&lt;IloNumArray&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#acc180d01e0c9452c5a58435b3bace97a">dualValsEqRelaxationOnly1</a>;  </div><div class="line"><a name="l00387"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a3bad1daefb975b53d7e2ba2211bd8fb7">  387</a></span>&#160;    std::vector&lt;IloNumArray&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a3bad1daefb975b53d7e2ba2211bd8fb7">dualValsEqRelaxationOnly2</a>;  </div><div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a4f60e9240871fc4785447932e2f5f7f4">  388</a></span>&#160;    std::vector&lt;IloNumArray&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a4f60e9240871fc4785447932e2f5f7f4">dualValsIneqSquash</a>;         </div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;</div><div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;};</div><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;</div><div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;</div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;}    <span class="comment">// end of namespace lbp</span></div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;</div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;</div><div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;}    <span class="comment">// end of namespace maingo</span></div><div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></div><div class="ttdoc">Wrapper for handling the lower bounding problems as well as optimization-based bounds tightening (OBB...</div><div class="ttdef"><b>Definition:</b> lbp.h:65</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a7f36e0416328d26653e05b70b8c54e80"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a7f36e0416328d26653e05b70b8c54e80">maingo::lbp::LbpCplex::linIneqRelaxationOnly</a></div><div class="ttdeci">std::vector&lt; IloRangeArray &gt; linIneqRelaxationOnly</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:372</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a4e3ab5943005e5287d047361b8b32985"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a4e3ab5943005e5287d047361b8b32985">maingo::lbp::LbpCplex::_get_objective_value_solver</a></div><div class="ttdeci">double _get_objective_value_solver()</div><div class="ttdoc">Function returning the objective value of the lastly solved LP. </div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a792aea9d68cf82b893b5ed1ca0d439b5"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a792aea9d68cf82b893b5ed1ca0d439b5">maingo::lbp::LbpCplex::_turn_off_specific_options</a></div><div class="ttdeci">void _turn_off_specific_options()</div><div class="ttdoc">Function for checking if a specific option has to be turned off for a given lower bounding solver...</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:311</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_ab551861cdafea80ba3f9dbffa07475a0"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab551861cdafea80ba3f9dbffa07475a0">maingo::lbp::LbpCplex::activate_more_scaling</a></div><div class="ttdeci">void activate_more_scaling()</div><div class="ttdoc">Function called by the B&amp;B solver to heuristically activate more scaling in the LBS. </div></div>
 <div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a7551c7b0a8d63b589a3e5e64153add73"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a7551c7b0a8d63b589a3e5e64153add73">maingo::lbp::LbpCplex::_update_LP_ineqRelaxationOnly</a></div><div class="ttdeci">void _update_LP_ineqRelaxationOnly(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneqRelaxationOnly)</div><div class="ttdoc">Auxiliary function for updating LP relaxation only inequalities, i.e., processing the linearization o...</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a1dec750f6f585a7ec3887d8786747104"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a1dec750f6f585a7ec3887d8786747104">maingo::lbp::LbpCplex::_solve_LP</a></div><div class="ttdeci">void _solve_LP(const babBase::BabNode &amp;currentNode)</div><div class="ttdoc">Function for solving the currently constructed linear program.</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a8607c42324581cb796ce36f5d0750917"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a8607c42324581cb796ce36f5d0750917">maingo::lbp::LbpCplex::_set_variable_bounds</a></div><div class="ttdeci">void _set_variable_bounds(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</div><div class="ttdoc">Function for setting the bounds of variables.</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a6c4e8f3f96aac77b3237f85cc7d6797b"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a6c4e8f3f96aac77b3237f85cc7d6797b">maingo::lbp::LbpCplex::linIneq</a></div><div class="ttdeci">std::vector&lt; IloRangeArray &gt; linIneq</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:374</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_ac88cac7557fd9ba8a903ce0f8bec2aa1"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ac88cac7557fd9ba8a903ce0f8bec2aa1">maingo::lbp::LbpCplex::cplxObjective</a></div><div class="ttdeci">IloObjective cplxObjective</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:370</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html"><div class="ttname"><a href="classbab_base_1_1_bab_node.html">babBase::BabNode</a></div><div class="ttdoc">Class representing a node in the Branch-and-Bound tree.</div><div class="ttdef"><b>Definition:</b> babNode.h:35</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a1dec750f6f585a7ec3887d8786747104"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a1dec750f6f585a7ec3887d8786747104">maingo::lbp::LbpCplex::_solve_LP</a></div><div class="ttdeci">void _solve_LP(const babBase::BabNode &amp;currentNode)</div><div class="ttdoc">Function for solving the currently constructed linear program. </div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a8607c42324581cb796ce36f5d0750917"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a8607c42324581cb796ce36f5d0750917">maingo::lbp::LbpCplex::_set_variable_bounds</a></div><div class="ttdeci">void _set_variable_bounds(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</div><div class="ttdoc">Function for setting the bounds of variables. </div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a6c4e8f3f96aac77b3237f85cc7d6797b"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a6c4e8f3f96aac77b3237f85cc7d6797b">maingo::lbp::LbpCplex::linIneq</a></div><div class="ttdeci">std::vector&lt; IloRangeArray &gt; linIneq</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:369</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_ac88cac7557fd9ba8a903ce0f8bec2aa1"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ac88cac7557fd9ba8a903ce0f8bec2aa1">maingo::lbp::LbpCplex::cplxObjective</a></div><div class="ttdeci">IloObjective cplxObjective</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:365</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html"><div class="ttname"><a href="classbab_base_1_1_bab_node.html">babBase::BabNode</a></div><div class="ttdoc">Class representing a node in the Branch-and-Bound tree. </div><div class="ttdef"><b>Definition:</b> babNode.h:35</div></div>
 <div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_ae3bf7a1bba331fef4de0c2793a311229"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ae3bf7a1bba331fef4de0c2793a311229">maingo::lbp::LbpCplex::_check_optimality</a></div><div class="ttdeci">SUBSOLVER_RETCODE _check_optimality(const babBase::BabNode &amp;currentNode, const double newLBD, const std::vector&lt; double &gt; &amp;solution, const double etaVal, const std::vector&lt; double &gt; &amp;multipliers)</div><div class="ttdoc">Function for checking if the solution point returned by CPLEX solver is really optimal using strong d...</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_ae2d5d4c819acd3ba32022492370f32a4"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ae2d5d4c819acd3ba32022492370f32a4">maingo::lbp::LbpCplex::dualValsIneqRelaxationOnly</a></div><div class="ttdeci">std::vector&lt; IloNumArray &gt; dualValsIneqRelaxationOnly</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:390</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html"><div class="ttname"><a href="structmaingo_1_1_settings.html">maingo::Settings</a></div><div class="ttdoc">Struct for storing settings for MAiNGO.</div><div class="ttdef"><b>Definition:</b> settings.h:143</div></div>
-<div class="ttc" id="interval_library_8h_html_addaf9e7d3c4319861d4942fc13f11964"><div class="ttname"><a href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a></div><div class="ttdeci">mc::vMcCormick&lt; I &gt; vMC</div><div class="ttdoc">A type definition for a vector McCormick variable.</div><div class="ttdef"><b>Definition:</b> intervalLibrary.h:64</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a4f60e9240871fc4785447932e2f5f7f4"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a4f60e9240871fc4785447932e2f5f7f4">maingo::lbp::LbpCplex::dualValsIneqSquash</a></div><div class="ttdeci">std::vector&lt; IloNumArray &gt; dualValsIneqSquash</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:393</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_ab1306509036c3a0063f66bbcf8e8333e"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab1306509036c3a0063f66bbcf8e8333e">maingo::lbp::LbpCplex::_get_solution_point</a></div><div class="ttdeci">void _get_solution_point(std::vector&lt; double &gt; &amp;solution, double &amp;etaVal)</div><div class="ttdoc">Function for setting the solution to the solution point of the lastly solved LP.</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a7dda609edcb60a37ba2cb3841a660ebd"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a7dda609edcb60a37ba2cb3841a660ebd">maingo::lbp::LbpCplex::cplex</a></div><div class="ttdeci">IloCplex cplex</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:381</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_acc180d01e0c9452c5a58435b3bace97a"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#acc180d01e0c9452c5a58435b3bace97a">maingo::lbp::LbpCplex::dualValsEqRelaxationOnly1</a></div><div class="ttdeci">std::vector&lt; IloNumArray &gt; dualValsEqRelaxationOnly1</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:391</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_ab0dc9e53cabaf5897e2950d6b9d1b93b"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab0dc9e53cabaf5897e2950d6b9d1b93b">maingo::lbp::LbpCplex::dualValsEq2</a></div><div class="ttdeci">std::vector&lt; IloNumArray &gt; dualValsEq2</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:389</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a2df1db1980c5364b07ff8d58fc217034"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a2df1db1980c5364b07ff8d58fc217034">maingo::lbp::LbpCplex::cplxEnv</a></div><div class="ttdeci">IloEnv cplxEnv</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:368</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_aa9d3a01d31337a11c0e74e9883597d99"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#aa9d3a01d31337a11c0e74e9883597d99">maingo::lbp::LbpCplex::_restore_LP_coefficients_after_OBBT</a></div><div class="ttdeci">void _restore_LP_coefficients_after_OBBT()</div><div class="ttdoc">Function for restoring proper coefficients and options in the LP after OBBT.</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_ae2d5d4c819acd3ba32022492370f32a4"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ae2d5d4c819acd3ba32022492370f32a4">maingo::lbp::LbpCplex::dualValsIneqRelaxationOnly</a></div><div class="ttdeci">std::vector&lt; IloNumArray &gt; dualValsIneqRelaxationOnly</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:385</div></div>
+<div class="ttc" id="interval_library_8h_html_addaf9e7d3c4319861d4942fc13f11964"><div class="ttname"><a href="interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964">vMC</a></div><div class="ttdeci">mc::vMcCormick&lt; I &gt; vMC</div><div class="ttdoc">A type definition for a vector McCormick variable. </div><div class="ttdef"><b>Definition:</b> intervalLibrary.h:41</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a4f60e9240871fc4785447932e2f5f7f4"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a4f60e9240871fc4785447932e2f5f7f4">maingo::lbp::LbpCplex::dualValsIneqSquash</a></div><div class="ttdeci">std::vector&lt; IloNumArray &gt; dualValsIneqSquash</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:388</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_ab1306509036c3a0063f66bbcf8e8333e"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab1306509036c3a0063f66bbcf8e8333e">maingo::lbp::LbpCplex::_get_solution_point</a></div><div class="ttdeci">void _get_solution_point(std::vector&lt; double &gt; &amp;solution, double &amp;etaVal)</div><div class="ttdoc">Function for setting the solution to the solution point of the lastly solved LP. </div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a7dda609edcb60a37ba2cb3841a660ebd"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a7dda609edcb60a37ba2cb3841a660ebd">maingo::lbp::LbpCplex::cplex</a></div><div class="ttdeci">IloCplex cplex</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:376</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_acc180d01e0c9452c5a58435b3bace97a"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#acc180d01e0c9452c5a58435b3bace97a">maingo::lbp::LbpCplex::dualValsEqRelaxationOnly1</a></div><div class="ttdeci">std::vector&lt; IloNumArray &gt; dualValsEqRelaxationOnly1</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:386</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_ab0dc9e53cabaf5897e2950d6b9d1b93b"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab0dc9e53cabaf5897e2950d6b9d1b93b">maingo::lbp::LbpCplex::dualValsEq2</a></div><div class="ttdeci">std::vector&lt; IloNumArray &gt; dualValsEq2</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:384</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a2df1db1980c5364b07ff8d58fc217034"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a2df1db1980c5364b07ff8d58fc217034">maingo::lbp::LbpCplex::cplxEnv</a></div><div class="ttdeci">IloEnv cplxEnv</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:363</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_aa9d3a01d31337a11c0e74e9883597d99"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#aa9d3a01d31337a11c0e74e9883597d99">maingo::lbp::LbpCplex::_restore_LP_coefficients_after_OBBT</a></div><div class="ttdeci">void _restore_LP_coefficients_after_OBBT()</div><div class="ttdoc">Function for restoring proper coefficients and options in the LP after OBBT. </div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_ac3a9c29513f616834eb0cd0cddf08b0c"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ac3a9c29513f616834eb0cd0cddf08b0c">maingo::lbp::LbpCplex::LbpCplex</a></div><div class="ttdeci">LbpCplex(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn)</div><div class="ttdoc">Constructor, stores information on the problem and initializes the CPLEX problem and solver instances...</div></div>
 <div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a54a04809e29838e9e2d787f1e8200a8d"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a54a04809e29838e9e2d787f1e8200a8d">maingo::lbp::LbpCplex::_update_LP_obj</a></div><div class="ttdeci">void _update_LP_obj(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iObj)</div><div class="ttdoc">Auxiliary function for updating LP objective, i.e., processing the linearization of the objective fun...</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html"><div class="ttname"><a href="classmaingo_1_1_logger.html">maingo::Logger</a></div><div class="ttdoc">This class contains all logging and output information.</div><div class="ttdef"><b>Definition:</b> logger.h:101</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_aa4b86f37a78b5f8ce2ac3abdbd6e3a74"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#aa4b86f37a78b5f8ce2ac3abdbd6e3a74">maingo::lbp::LbpCplex::_check_feasibility</a></div><div class="ttdeci">SUBSOLVER_RETCODE _check_feasibility(const std::vector&lt; double &gt; &amp;solution)</div><div class="ttdoc">Function for checking if the solution point returned by CPLEX solver is really feasible.</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a5cc102e4bdde27460e7c616800eace16"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a5cc102e4bdde27460e7c616800eace16">maingo::lbp::LbpCplex::dualValsIneq</a></div><div class="ttdeci">std::vector&lt; IloNumArray &gt; dualValsIneq</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:387</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a52d7567c17415e93e1f7ca11e779b7df"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a52d7567c17415e93e1f7ca11e779b7df">maingo::lbp::LbpCplex::_deactivate_objective_function_for_OBBT</a></div><div class="ttdeci">void _deactivate_objective_function_for_OBBT()</div><div class="ttdoc">Function deactivating all objective rows in the LP for feasibility OBBT.</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a951643df3f751b62c79f476a0ea3c608"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a951643df3f751b62c79f476a0ea3c608">maingo::lbp::LbpCplex::cplxModel</a></div><div class="ttdeci">IloModel cplxModel</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:369</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_acea05d7f9625a5dc671c43611a15cf4b"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#acea05d7f9625a5dc671c43611a15cf4b">maingo::lbp::LbpCplex::~LbpCplex</a></div><div class="ttdeci">~LbpCplex()</div><div class="ttdoc">Destructor.</div></div>
-<div class="ttc" id="namespacemaingo_html_ab7a1cb5c265f8d1c287d43fec7988020"><div class="ttname"><a href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">maingo::SUBSOLVER_RETCODE</a></div><div class="ttdeci">SUBSOLVER_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the different sub-solvers (UpperBoundingSolver,...</div><div class="ttdef"><b>Definition:</b> returnCodes.h:40</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a6f17d0771ce88fdaecfe4399759afc36"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a6f17d0771ce88fdaecfe4399759afc36">maingo::lbp::LbpCplex::_fix_variable</a></div><div class="ttdeci">void _fix_variable(const unsigned &amp;iVar, const bool fixToLowerBound)</div><div class="ttdoc">Virtual function for fixing a variable to one of its bounds.</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a198a548602ac6a18bd5bc453ec305200"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a198a548602ac6a18bd5bc453ec305200">maingo::lbp::LbpCplex::_check_infeasibility</a></div><div class="ttdeci">SUBSOLVER_RETCODE _check_infeasibility(const babBase::BabNode &amp;currentNode)</div><div class="ttdoc">Function for checking if the solution point returned CPLEX is really infeasible using Farkas' Lemma.</div></div>
-<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO</div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
-<div class="ttc" id="interval_library_8h_html_a57d32400333d3f6211554cbc6b30c034"><div class="ttname"><a href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a></div><div class="ttdeci">mc::McCormick&lt; I &gt; MC</div><div class="ttdoc">A type definition for a McCormick variable.</div><div class="ttdef"><b>Definition:</b> intervalLibrary.h:57</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_aa34760a024d749e14cd39c81060e99a5"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#aa34760a024d749e14cd39c81060e99a5">maingo::lbp::LbpCplex::farkasVals</a></div><div class="ttdeci">IloNumArray farkasVals</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:385</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_aa4b86f37a78b5f8ce2ac3abdbd6e3a74"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#aa4b86f37a78b5f8ce2ac3abdbd6e3a74">maingo::lbp::LbpCplex::_check_feasibility</a></div><div class="ttdeci">SUBSOLVER_RETCODE _check_feasibility(const std::vector&lt; double &gt; &amp;solution)</div><div class="ttdoc">Function for checking if the solution point returned by CPLEX solver is really feasible. </div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a5cc102e4bdde27460e7c616800eace16"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a5cc102e4bdde27460e7c616800eace16">maingo::lbp::LbpCplex::dualValsIneq</a></div><div class="ttdeci">std::vector&lt; IloNumArray &gt; dualValsIneq</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:382</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a52d7567c17415e93e1f7ca11e779b7df"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a52d7567c17415e93e1f7ca11e779b7df">maingo::lbp::LbpCplex::_deactivate_objective_function_for_OBBT</a></div><div class="ttdeci">void _deactivate_objective_function_for_OBBT()</div><div class="ttdoc">Function deactivating all objective rows in the LP for feasibility OBBT. </div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a951643df3f751b62c79f476a0ea3c608"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a951643df3f751b62c79f476a0ea3c608">maingo::lbp::LbpCplex::cplxModel</a></div><div class="ttdeci">IloModel cplxModel</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:364</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_acea05d7f9625a5dc671c43611a15cf4b"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#acea05d7f9625a5dc671c43611a15cf4b">maingo::lbp::LbpCplex::~LbpCplex</a></div><div class="ttdeci">~LbpCplex()</div><div class="ttdoc">Destructor. </div></div>
+<div class="ttc" id="namespacemaingo_html_ab7a1cb5c265f8d1c287d43fec7988020"><div class="ttname"><a href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">maingo::SUBSOLVER_RETCODE</a></div><div class="ttdeci">SUBSOLVER_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the different sub-solvers (UpperBoundingSolver, LowerBoundingSolver). </div><div class="ttdef"><b>Definition:</b> returnCodes.h:36</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a6f17d0771ce88fdaecfe4399759afc36"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a6f17d0771ce88fdaecfe4399759afc36">maingo::lbp::LbpCplex::_fix_variable</a></div><div class="ttdeci">void _fix_variable(const unsigned &amp;iVar, const bool fixToLowerBound)</div><div class="ttdoc">Virtual function for fixing a variable to one of its bounds. </div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a198a548602ac6a18bd5bc453ec305200"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a198a548602ac6a18bd5bc453ec305200">maingo::lbp::LbpCplex::_check_infeasibility</a></div><div class="ttdeci">SUBSOLVER_RETCODE _check_infeasibility(const babBase::BabNode &amp;currentNode)</div><div class="ttdoc">Function for checking if the solution point returned CPLEX is really infeasible using Farkas&amp;#39; Lemma...</div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
+<div class="ttc" id="interval_library_8h_html_a57d32400333d3f6211554cbc6b30c034"><div class="ttname"><a href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a></div><div class="ttdeci">mc::McCormick&lt; I &gt; MC</div><div class="ttdoc">A type definition for a McCormick variable. </div><div class="ttdef"><b>Definition:</b> intervalLibrary.h:34</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_aa34760a024d749e14cd39c81060e99a5"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#aa34760a024d749e14cd39c81060e99a5">maingo::lbp::LbpCplex::farkasVals</a></div><div class="ttdeci">IloNumArray farkasVals</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:380</div></div>
 <div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_ab05713911aef1c8aac1d4da8f8d1faac"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab05713911aef1c8aac1d4da8f8d1faac">maingo::lbp::LbpCplex::_update_LP_eq</a></div><div class="ttdeci">void _update_LP_eq(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEq)</div><div class="ttdoc">Auxiliary function for updating LP equalities, i.e., processing the linearization of the equality ( C...</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_af4552b8d7392bf83f24ffd77be3ac2c9"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#af4552b8d7392bf83f24ffd77be3ac2c9">maingo::lbp::LbpCplex::farkasCons</a></div><div class="ttdeci">IloRangeArray farkasCons</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:384</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a528413321d2e8655b7716fe93cc3e520"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a528413321d2e8655b7716fe93cc3e520">maingo::lbp::LbpCplex::linEqRelaxationOnly2</a></div><div class="ttdeci">std::vector&lt; IloRangeArray &gt; linEqRelaxationOnly2</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:379</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></div><div class="ttdoc">Wrapper for handling the lower bounding problems by interfacing CPLEX.</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:37</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a3bad1daefb975b53d7e2ba2211bd8fb7"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a3bad1daefb975b53d7e2ba2211bd8fb7">maingo::lbp::LbpCplex::dualValsEqRelaxationOnly2</a></div><div class="ttdeci">std::vector&lt; IloNumArray &gt; dualValsEqRelaxationOnly2</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:392</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a5fc72422c29fbfba6710f9f2e244b28c"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a5fc72422c29fbfba6710f9f2e244b28c">maingo::lbp::LbpCplex::_get_LP_status</a></div><div class="ttdeci">LP_RETCODE _get_LP_status()</div><div class="ttdoc">Function returning the current status of the lastly solved linear program.</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_ae9d2adeabbd07038fd8a27192548ebef"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ae9d2adeabbd07038fd8a27192548ebef">maingo::lbp::LbpCplex::LbpCplex</a></div><div class="ttdeci">LbpCplex(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn)</div><div class="ttdoc">Constructor, stores information on the problem and initializes the CPLEX problem and solver instances...</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a8e70de9d87020368dab0536c183d1fbb"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a8e70de9d87020368dab0536c183d1fbb">maingo::lbp::LbpCplex::_get_multipliers</a></div><div class="ttdeci">void _get_multipliers(std::vector&lt; double &gt; &amp;multipliers)</div><div class="ttdoc">Function for setting the multipliers of the lastly solved LP.</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a4888f571a5c013fbd790fafda5720aa8"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a4888f571a5c013fbd790fafda5720aa8">maingo::lbp::LbpCplex::dualValsObj</a></div><div class="ttdeci">std::vector&lt; IloNumArray &gt; dualValsObj</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:386</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_af4552b8d7392bf83f24ffd77be3ac2c9"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#af4552b8d7392bf83f24ffd77be3ac2c9">maingo::lbp::LbpCplex::farkasCons</a></div><div class="ttdeci">IloRangeArray farkasCons</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:379</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a528413321d2e8655b7716fe93cc3e520"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a528413321d2e8655b7716fe93cc3e520">maingo::lbp::LbpCplex::linEqRelaxationOnly2</a></div><div class="ttdeci">std::vector&lt; IloRangeArray &gt; linEqRelaxationOnly2</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:374</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html">maingo::lbp::LbpCplex</a></div><div class="ttdoc">Wrapper for handling the lower bounding problems by interfacing CPLEX. </div><div class="ttdef"><b>Definition:</b> lbpCplex.h:32</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a3bad1daefb975b53d7e2ba2211bd8fb7"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a3bad1daefb975b53d7e2ba2211bd8fb7">maingo::lbp::LbpCplex::dualValsEqRelaxationOnly2</a></div><div class="ttdeci">std::vector&lt; IloNumArray &gt; dualValsEqRelaxationOnly2</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:387</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a5fc72422c29fbfba6710f9f2e244b28c"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a5fc72422c29fbfba6710f9f2e244b28c">maingo::lbp::LbpCplex::_get_LP_status</a></div><div class="ttdeci">LP_RETCODE _get_LP_status()</div><div class="ttdoc">Function returning the current status of the lastly solved linear program. </div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a8e70de9d87020368dab0536c183d1fbb"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a8e70de9d87020368dab0536c183d1fbb">maingo::lbp::LbpCplex::_get_multipliers</a></div><div class="ttdeci">void _get_multipliers(std::vector&lt; double &gt; &amp;multipliers)</div><div class="ttdoc">Function for setting the multipliers of the lastly solved LP. </div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a4888f571a5c013fbd790fafda5720aa8"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a4888f571a5c013fbd790fafda5720aa8">maingo::lbp::LbpCplex::dualValsObj</a></div><div class="ttdeci">std::vector&lt; IloNumArray &gt; dualValsObj</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:381</div></div>
 <div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a84205c27db34dc362f0ac7302d2cecbc"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a84205c27db34dc362f0ac7302d2cecbc">maingo::lbp::LbpCplex::_update_LP_eqRelaxationOnly</a></div><div class="ttdeci">void _update_LP_eqRelaxationOnly(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEqRelaxationOnly)</div><div class="ttdoc">Auxiliary function for updating LP relaxation only equalities, i.e., processing the linearization of ...</div></div>
 <div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a19f7e270bfcdca9bce0c55aa0608dfd4"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a19f7e270bfcdca9bce0c55aa0608dfd4">maingo::lbp::LbpCplex::_update_LP_ineq</a></div><div class="ttdeci">void _update_LP_ineq(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneq)</div><div class="ttdoc">Auxiliary function for updating LP inequalities, i.e., processing the linearization of the inequality...</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_abf000bb326887d3f342c963bea965ff1"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#abf000bb326887d3f342c963bea965ff1">maingo::lbp::LbpCplex::linEqRelaxationOnly1</a></div><div class="ttdeci">std::vector&lt; IloRangeArray &gt; linEqRelaxationOnly1</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:378</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a25db11157597f82460caa11b4eaef535"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a25db11157597f82460caa11b4eaef535">maingo::lbp::LbpCplex::linObj</a></div><div class="ttdeci">std::vector&lt; IloRangeArray &gt; linObj</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:373</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_ac0b43bc512e9bb34cc5253de53bbb80b"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ac0b43bc512e9bb34cc5253de53bbb80b">maingo::lbp::LbpCplex::_modify_LP_for_feasopt_OBBT</a></div><div class="ttdeci">void _modify_LP_for_feasopt_OBBT(const double &amp;currentUBD, std::list&lt; unsigned &gt; &amp;toTreatMax, std::list&lt; unsigned &gt; &amp;toTreatMin)</div><div class="ttdoc">Function modifying the LP for feasibility-optimality OBBT.</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_abf000bb326887d3f342c963bea965ff1"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#abf000bb326887d3f342c963bea965ff1">maingo::lbp::LbpCplex::linEqRelaxationOnly1</a></div><div class="ttdeci">std::vector&lt; IloRangeArray &gt; linEqRelaxationOnly1</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:373</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a25db11157597f82460caa11b4eaef535"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a25db11157597f82460caa11b4eaef535">maingo::lbp::LbpCplex::linObj</a></div><div class="ttdeci">std::vector&lt; IloRangeArray &gt; linObj</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:368</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_ac0b43bc512e9bb34cc5253de53bbb80b"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ac0b43bc512e9bb34cc5253de53bbb80b">maingo::lbp::LbpCplex::_modify_LP_for_feasopt_OBBT</a></div><div class="ttdeci">void _modify_LP_for_feasopt_OBBT(const double &amp;currentUBD, std::list&lt; unsigned &gt; &amp;toTreatMax, std::list&lt; unsigned &gt; &amp;toTreatMin)</div><div class="ttdoc">Function modifying the LP for feasibility-optimality OBBT. </div></div>
 <div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a08adc9be917d4a13774634695cf59065"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a08adc9be917d4a13774634695cf59065">maingo::lbp::LbpCplex::_terminate_cplex</a></div><div class="ttdeci">void _terminate_cplex()</div><div class="ttdoc">Function for taking care of memory management by terminating Cplex (either called from destructor or ...</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a597ef61cfc52812826709ac4cbd03e69"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a597ef61cfc52812826709ac4cbd03e69">maingo::lbp::LbpCplex::etaCoeff</a></div><div class="ttdeci">double etaCoeff</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:382</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a85bd7308a8f4542bad51fb32dc8a86e6"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a85bd7308a8f4542bad51fb32dc8a86e6">maingo::lbp::LbpCplex::dualValsEq1</a></div><div class="ttdeci">std::vector&lt; IloNumArray &gt; dualValsEq1</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:388</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_aeb417aefdc41100afb0e2909b89c48de"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#aeb417aefdc41100afb0e2909b89c48de">maingo::lbp::LbpCplex::eta</a></div><div class="ttdeci">IloNumVar eta</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:372</div></div>
-<div class="ttc" id="namespacemaingo_1_1lbp_html_a4e2b70fda6e64add2c6ad1a9c4a42c90"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90">maingo::lbp::LP_RETCODE</a></div><div class="ttdeci">LP_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned when a linear program is solved.</div><div class="ttdef"><b>Definition:</b> returnCodes.h:73</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a325f7fbdb9704f99fc46b5e26d84558f"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a325f7fbdb9704f99fc46b5e26d84558f">maingo::lbp::LbpCplex::_check_if_LP_really_infeasible</a></div><div class="ttdeci">bool _check_if_LP_really_infeasible()</div><div class="ttdoc">Function for checking if the current linear program is really infeasible by, e.g.,...</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a597ef61cfc52812826709ac4cbd03e69"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a597ef61cfc52812826709ac4cbd03e69">maingo::lbp::LbpCplex::etaCoeff</a></div><div class="ttdeci">double etaCoeff</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:377</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a85bd7308a8f4542bad51fb32dc8a86e6"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a85bd7308a8f4542bad51fb32dc8a86e6">maingo::lbp::LbpCplex::dualValsEq1</a></div><div class="ttdeci">std::vector&lt; IloNumArray &gt; dualValsEq1</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:383</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_aeb417aefdc41100afb0e2909b89c48de"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#aeb417aefdc41100afb0e2909b89c48de">maingo::lbp::LbpCplex::eta</a></div><div class="ttdeci">IloNumVar eta</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:367</div></div>
+<div class="ttc" id="namespacemaingo_1_1lbp_html_a4e2b70fda6e64add2c6ad1a9c4a42c90"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90">maingo::lbp::LP_RETCODE</a></div><div class="ttdeci">LP_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned when a linear program is solved. </div><div class="ttdef"><b>Definition:</b> returnCodes.h:69</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a325f7fbdb9704f99fc46b5e26d84558f"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a325f7fbdb9704f99fc46b5e26d84558f">maingo::lbp::LbpCplex::_check_if_LP_really_infeasible</a></div><div class="ttdeci">bool _check_if_LP_really_infeasible()</div><div class="ttdoc">Function for checking if the current linear program is really infeasible by, e.g., resolving it with different algorithms. </div></div>
 <div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a323d0e6ce0aec6d2f0a498e9a53e3e68"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a323d0e6ce0aec6d2f0a498e9a53e3e68">maingo::lbp::LbpCplex::_update_LP_ineq_squash</a></div><div class="ttdeci">void _update_LP_ineq_squash(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneqSquash)</div><div class="ttdoc">Auxiliary function for updating LP squash inequalities, i.e., processing the linearization of the squ...</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a652e421291526e503dd2883418759396"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a652e421291526e503dd2883418759396">maingo::lbp::LbpCplex::linEq2</a></div><div class="ttdeci">std::vector&lt; IloRangeArray &gt; linEq2</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:376</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a652e421291526e503dd2883418759396"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a652e421291526e503dd2883418759396">maingo::lbp::LbpCplex::linEq2</a></div><div class="ttdeci">std::vector&lt; IloRangeArray &gt; linEq2</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:371</div></div>
 <div class="ttc" id="lbp_8h_html"><div class="ttname"><a href="lbp_8h.html">lbp.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a83502d4b1d4e3f0487daefb1b241ce4a"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a83502d4b1d4e3f0487daefb1b241ce4a">maingo::lbp::LbpCplex::_set_optimization_sense_of_variable</a></div><div class="ttdeci">void _set_optimization_sense_of_variable(const unsigned &amp;iVar, const int &amp;optimizationSense)</div><div class="ttdoc">Function for setting the optimization sense of variable iVar in OBBT.</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a82570231ff560ede1f10507014071ddb"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a82570231ff560ede1f10507014071ddb">maingo::lbp::LbpCplex::linEq1</a></div><div class="ttdeci">std::vector&lt; IloRangeArray &gt; linEq1</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:375</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_ab051569370a1f5574a9e4b2049d7f91c"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab051569370a1f5574a9e4b2049d7f91c">maingo::lbp::LbpCplex::cplxVars</a></div><div class="ttdeci">IloNumVarArray cplxVars</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:371</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a6d3ad23f21da9a7e0c6b714b90f3d024"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a6d3ad23f21da9a7e0c6b714b90f3d024">maingo::lbp::LbpCplex::linIneqSquash</a></div><div class="ttdeci">std::vector&lt; IloRangeArray &gt; linIneqSquash</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:380</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a83502d4b1d4e3f0487daefb1b241ce4a"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a83502d4b1d4e3f0487daefb1b241ce4a">maingo::lbp::LbpCplex::_set_optimization_sense_of_variable</a></div><div class="ttdeci">void _set_optimization_sense_of_variable(const unsigned &amp;iVar, const int &amp;optimizationSense)</div><div class="ttdoc">Function for setting the optimization sense of variable iVar in OBBT. </div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a82570231ff560ede1f10507014071ddb"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a82570231ff560ede1f10507014071ddb">maingo::lbp::LbpCplex::linEq1</a></div><div class="ttdeci">std::vector&lt; IloRangeArray &gt; linEq1</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:370</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_ab051569370a1f5574a9e4b2049d7f91c"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#ab051569370a1f5574a9e4b2049d7f91c">maingo::lbp::LbpCplex::cplxVars</a></div><div class="ttdeci">IloNumVarArray cplxVars</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:366</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_cplex_html_a6d3ad23f21da9a7e0c6b714b90f3d024"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_cplex.html#a6d3ad23f21da9a7e0c6b714b90f3d024">maingo::lbp::LbpCplex::linIneqSquash</a></div><div class="ttdeci">std::vector&lt; IloRangeArray &gt; linIneqSquash</div><div class="ttdef"><b>Definition:</b> lbpCplex.h:375</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -160,7 +158,7 @@ $(document).ready(function(){initNavTree('lbp_cplex_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="lbp_cplex_8h.html">lbpCplex.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/lbp_dag_obj_8cpp.html b/doc/html/lbp_dag_obj_8cpp.html
index edc49fdf76d8878adb0f1790f0970860bb985b3e..a3a37efc13ba667b3254233416596b40c5d742c1 100644
--- a/doc/html/lbp_dag_obj_8cpp.html
+++ b/doc/html/lbp_dag_obj_8cpp.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/src/lbpDagObj.cpp File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/src/lbpDagObj.cpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -111,7 +111,7 @@ Namespaces</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="lbp_dag_obj_8cpp.html">lbpDagObj.cpp</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/lbp_dag_obj_8h.html b/doc/html/lbp_dag_obj_8h.html
index 1ec071beeb7e05307b72a8e5704b06d64a416919..116d35667191dfa834e5cf0d50ca84426e591e28 100644
--- a/doc/html/lbp_dag_obj_8h.html
+++ b/doc/html/lbp_dag_obj_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/lbpDagObj.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/lbpDagObj.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -97,6 +97,7 @@ $(document).ready(function(){initNavTree('lbp_dag_obj_8h.html','');});
 <code>#include &quot;<a class="el" href="interval_library_8h_source.html">intervalLibrary.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="settings_8h_source.html">settings.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="bab_opt_var_8h_source.html">babOptVar.h</a>&quot;</code><br />
+<code>#include &lt;memory&gt;</code><br />
 <code>#include &lt;utility&gt;</code><br />
 <code>#include &lt;vector&gt;</code><br />
 </div>
@@ -125,7 +126,7 @@ Namespaces</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="lbp_dag_obj_8h.html">lbpDagObj.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/lbp_dag_obj_8h_source.html b/doc/html/lbp_dag_obj_8h_source.html
index 2f6c3f85ea1f925f569eecacd5442a6e1a4aed66..711c98d15bdf09ec0fb87b02a960e42b09ac6c05 100644
--- a/doc/html/lbp_dag_obj_8h_source.html
+++ b/doc/html/lbp_dag_obj_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/lbpDagObj.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/lbpDagObj.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,55 +90,54 @@ $(document).ready(function(){initNavTree('lbp_dag_obj_8h_source.html','');});
 <div class="title">lbpDagObj.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="lbp_dag_obj_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file lbpDagObj.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing declaration of lbp::DagObj struct which stores everything</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *        needed for DAG evaluation for lower bounding</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="constraint_8h.html">constraint.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="interval_library_8h.html">intervalLibrary.h</a>&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="settings_8h.html">settings.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_opt_var_8h.html">babOptVar.h</a>&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;utility&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="keyword">namespace </span>lbp {</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html">   43</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html">DagObj</a> {</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    <span class="comment">// Internal variables for the DAG</span></div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#ac3f57f81e20ba26fe667dc3b1d970e65">   45</a></span>&#160;    mc::FFGraph <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#ac3f57f81e20ba26fe667dc3b1d970e65">DAG</a>;                   </div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#af45a858d3e9f5c34aea23e182a56aa80">   46</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#af45a858d3e9f5c34aea23e182a56aa80">vars</a>;       </div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a22ccda7e73a926dcfe644c147c61986f">   47</a></span>&#160;    mc::FFSubgraph <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a22ccda7e73a926dcfe644c147c61986f">subgraph</a>;           </div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a0285f2c7a74ddd1f3f4157425e9bc984">   48</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a0285f2c7a74ddd1f3f4157425e9bc984">functions</a>;  </div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a487453464d397edc0fc8feef81512712">   49</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a487453464d397edc0fc8feef81512712">resultVars</a>; </div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a40cbce83536b68d607d6484c4b42a329">   50</a></span>&#160;    std::vector&lt;MC&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a40cbce83536b68d607d6484c4b42a329">resultRelaxation</a>;  </div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a41db90b4bf5aef1e6a1660ac36c63d5c">   51</a></span>&#160;    std::vector&lt;MC&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a41db90b4bf5aef1e6a1660ac36c63d5c">McPoint</a>;           </div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a4b66f6a2a3f9e82321e23c25c1ea5110">   52</a></span>&#160;    std::vector&lt;MC&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a4b66f6a2a3f9e82321e23c25c1ea5110">MCarray</a>;           </div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a1f775701cf6bd72a47813a9557d02b19">   53</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a1f775701cf6bd72a47813a9557d02b19">intervals_already_computed</a>;   </div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    <span class="comment">// Variables for interval constraint propagation</span></div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#ae58400f843a41b78fa38b70d22ccc5c0">   56</a></span>&#160;    std::vector&lt;I&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#ae58400f843a41b78fa38b70d22ccc5c0">intervalArray</a>;       </div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#adb5408c4f27e5267ba0086a2df4b29fa">   57</a></span>&#160;    std::vector&lt;I&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#adb5408c4f27e5267ba0086a2df4b29fa">constraintIntervals</a>; </div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#af5c84556b2dcec10b61dfaf09d8e57e3">   58</a></span>&#160;    std::vector&lt;I&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#af5c84556b2dcec10b61dfaf09d8e57e3">currentIntervals</a>;    </div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    <span class="comment">// Vectors holding operations of every function in the DAG (not all at once)</span></div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a1433832249455df519f816c2aef102c5">   61</a></span>&#160;    std::vector&lt;std::vector&lt;mc::FFVar&gt;&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a1433832249455df519f816c2aef102c5">functionsObj</a>;                </div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a8e5fe42eab7d26338e2f976630492a85">   62</a></span>&#160;    std::vector&lt;std::vector&lt;mc::FFVar&gt;&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a8e5fe42eab7d26338e2f976630492a85">functionsIneq</a>;               </div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a5292973594aca82930d13ed65fc306eb">   63</a></span>&#160;    std::vector&lt;std::vector&lt;mc::FFVar&gt;&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a5292973594aca82930d13ed65fc306eb">functionsEq</a>;                 </div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#af99b4b2e0addac9b1b0f2e1177ff2f41">   64</a></span>&#160;    std::vector&lt;std::vector&lt;mc::FFVar&gt;&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#af99b4b2e0addac9b1b0f2e1177ff2f41">functionsIneqRelaxationOnly</a>; </div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a220647ff8c33ac5368e862168c8c3b16">   65</a></span>&#160;    std::vector&lt;std::vector&lt;mc::FFVar&gt;&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a220647ff8c33ac5368e862168c8c3b16">functionsEqRelaxationOnly</a>;   </div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a98f1595cb060ac600ecde0437557f36f">   66</a></span>&#160;    std::vector&lt;std::vector&lt;mc::FFVar&gt;&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a98f1595cb060ac600ecde0437557f36f">functionsIneqSquash</a>;         </div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a9e63717cf7e7c34405d2c16c38cd5616">   67</a></span>&#160;    std::vector&lt;mc::FFSubgraph&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a9e63717cf7e7c34405d2c16c38cd5616">subgraphObj</a>;                         </div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#ad121236e147560747dd24e0daebb598f">   68</a></span>&#160;    std::vector&lt;mc::FFSubgraph&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#ad121236e147560747dd24e0daebb598f">subgraphIneq</a>;                        </div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#aee77c46e9bf0acb2013d02a3032d61be">   69</a></span>&#160;    std::vector&lt;mc::FFSubgraph&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#aee77c46e9bf0acb2013d02a3032d61be">subgraphEq</a>;                          </div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#aeef5b9c3ba6ff3d2c4a646c45ecd37cb">   70</a></span>&#160;    std::vector&lt;mc::FFSubgraph&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#aeef5b9c3ba6ff3d2c4a646c45ecd37cb">subgraphIneqRelaxationOnly</a>;          </div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a627de930f81b7f923008c966c40250ed">   71</a></span>&#160;    std::vector&lt;mc::FFSubgraph&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a627de930f81b7f923008c966c40250ed">subgraphEqRelaxationOnly</a>;            </div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a280f5eb29de9df45b62330fa54d69b59">   72</a></span>&#160;    std::vector&lt;mc::FFSubgraph&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a280f5eb29de9df45b62330fa54d69b59">subgraphIneqSquash</a>;                  </div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a035f243e17df5931b5c12a003cb09b0d">   74</a></span>&#160;    <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a035f243e17df5931b5c12a003cb09b0d">infinityMC</a>;                  </div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a09fb67cc9c686600e7aa47f2780dfca5">   75</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a09fb67cc9c686600e7aa47f2780dfca5">validIntervalLowerBound</a>; </div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a639462cbaec8e4a5ef66f37f718adc0c">   77</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a639462cbaec8e4a5ef66f37f718adc0c">simplexPoints</a>; </div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#aee1902712aacf900093a6bfe7c33e94c">   78</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#aee1902712aacf900093a6bfe7c33e94c">scaledPoints</a>;  </div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a5b1b4d6a673c6e3092264d6dceabdece">   79</a></span>&#160;    std::vector&lt;vMC&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a5b1b4d6a673c6e3092264d6dceabdece">vMcPoint</a>;                      </div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a1612e267cb6ae7781a857a48e5d23df2">   80</a></span>&#160;    std::vector&lt;vMC&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a1612e267cb6ae7781a857a48e5d23df2">vMCarray</a>;                      </div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a3b3f7ae538ae78f33a079e96546e4a3d">   81</a></span>&#160;    mc::FFSubgraph <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a3b3f7ae538ae78f33a079e96546e4a3d">subgraphNonlinear</a>;               </div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#ac4b6f8902932d13e117c978846ace56a">   82</a></span>&#160;    mc::FFSubgraph <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#ac4b6f8902932d13e117c978846ace56a">subgraphLinear</a>;                  </div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a90b99c016e5ad32a56b668d5922363e6">   83</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a90b99c016e5ad32a56b668d5922363e6">functionsNonlinear</a>;      </div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#aaf52d4f10c05f0fdf20794aa33fa9522">   84</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#aaf52d4f10c05f0fdf20794aa33fa9522">functionsLinear</a>;         </div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a33ed9808b2de0dc8ed883b7fbd03cca8">   85</a></span>&#160;    std::vector&lt;vMC&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a33ed9808b2de0dc8ed883b7fbd03cca8">resultRelaxationVMCNonlinear</a>;  </div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a4ab4fd71ab7c9629fd3357f3becf8aa6">   86</a></span>&#160;    std::vector&lt;MC&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a4ab4fd71ab7c9629fd3357f3becf8aa6">resultRelaxationNonlinear</a>;      </div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a951a092aecbd63f3a33fec5406368944">   87</a></span>&#160;    std::vector&lt;MC&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a951a092aecbd63f3a33fec5406368944">resultRelaxationLinear</a>;         </div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#abfef6333d33007bac6f1c1236fba3979">   88</a></span>&#160;    std::vector&lt;unsigned&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#abfef6333d33007bac6f1c1236fba3979">chosenLinPoints</a>;          </div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#aafb406768277c0b3935a707000b0e2a5">   89</a></span>&#160;    std::vector&lt;bool&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#aafb406768277c0b3935a707000b0e2a5">objRowFilled</a>;                 </div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a83cea7e83eb4744af421af42ab4c5cdb">   91</a></span>&#160;    std::vector&lt;Constraint&gt; *<a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a83cea7e83eb4744af421af42ab4c5cdb">_constraintProperties</a>; </div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#afb7fb4ac1246771689f6e244e4777b06">DagObj</a>(mc::FFGraph &amp;<a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#ac3f57f81e20ba26fe667dc3b1d970e65">DAG</a>, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGvars, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGfunctions,</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;           <span class="keyword">const</span> std::vector&lt;babBase::OptimizationVariable&gt; &amp;variables, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineq, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neq,</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;           <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqRelaxationOnly, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqRelaxationOnly, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqSquash,</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;           <a class="code" href="structmaingo_1_1_settings.html">Settings</a> *settings, std::vector&lt;Constraint&gt; *constraintPropertiesIn);</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#afdac6172a450f8b76c8323b9ee88905a">initialize_vMcCormick</a>();</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;};</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;}    <span class="comment">// end namespace lbp</span></div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a220647ff8c33ac5368e862168c8c3b16"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a220647ff8c33ac5368e862168c8c3b16">maingo::lbp::DagObj::functionsEqRelaxationOnly</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; mc::FFVar &gt; &gt; functionsEqRelaxationOnly</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:65</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a4b66f6a2a3f9e82321e23c25c1ea5110"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a4b66f6a2a3f9e82321e23c25c1ea5110">maingo::lbp::DagObj::MCarray</a></div><div class="ttdeci">std::vector&lt; MC &gt; MCarray</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:52</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a1433832249455df519f816c2aef102c5"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a1433832249455df519f816c2aef102c5">maingo::lbp::DagObj::functionsObj</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; mc::FFVar &gt; &gt; functionsObj</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:61</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_aee1902712aacf900093a6bfe7c33e94c"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#aee1902712aacf900093a6bfe7c33e94c">maingo::lbp::DagObj::scaledPoints</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; scaledPoints</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:78</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_adb5408c4f27e5267ba0086a2df4b29fa"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#adb5408c4f27e5267ba0086a2df4b29fa">maingo::lbp::DagObj::constraintIntervals</a></div><div class="ttdeci">std::vector&lt; I &gt; constraintIntervals</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:57</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a951a092aecbd63f3a33fec5406368944"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a951a092aecbd63f3a33fec5406368944">maingo::lbp::DagObj::resultRelaxationLinear</a></div><div class="ttdeci">std::vector&lt; MC &gt; resultRelaxationLinear</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:87</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a487453464d397edc0fc8feef81512712"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a487453464d397edc0fc8feef81512712">maingo::lbp::DagObj::resultVars</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; resultVars</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:49</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a33ed9808b2de0dc8ed883b7fbd03cca8"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a33ed9808b2de0dc8ed883b7fbd03cca8">maingo::lbp::DagObj::resultRelaxationVMCNonlinear</a></div><div class="ttdeci">std::vector&lt; vMC &gt; resultRelaxationVMCNonlinear</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:85</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a83cea7e83eb4744af421af42ab4c5cdb"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a83cea7e83eb4744af421af42ab4c5cdb">maingo::lbp::DagObj::_constraintProperties</a></div><div class="ttdeci">std::vector&lt; Constraint &gt; * _constraintProperties</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:91</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html"><div class="ttname"><a href="structmaingo_1_1_settings.html">maingo::Settings</a></div><div class="ttdoc">Struct for storing settings for MAiNGO.</div><div class="ttdef"><b>Definition:</b> settings.h:143</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a0285f2c7a74ddd1f3f4157425e9bc984"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a0285f2c7a74ddd1f3f4157425e9bc984">maingo::lbp::DagObj::functions</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; functions</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:48</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_ad121236e147560747dd24e0daebb598f"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#ad121236e147560747dd24e0daebb598f">maingo::lbp::DagObj::subgraphIneq</a></div><div class="ttdeci">std::vector&lt; mc::FFSubgraph &gt; subgraphIneq</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:68</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_afb7fb4ac1246771689f6e244e4777b06"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#afb7fb4ac1246771689f6e244e4777b06">maingo::lbp::DagObj::DagObj</a></div><div class="ttdeci">DagObj(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineq, const unsigned neq, const unsigned nineqRelaxationOnly, const unsigned neqRelaxationOnly, const unsigned nineqSquash, Settings *settings, std::vector&lt; Constraint &gt; *constraintPropertiesIn)</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> lbpDagObj.cpp:28</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a1f775701cf6bd72a47813a9557d02b19"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a1f775701cf6bd72a47813a9557d02b19">maingo::lbp::DagObj::intervals_already_computed</a></div><div class="ttdeci">bool intervals_already_computed</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:53</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_af99b4b2e0addac9b1b0f2e1177ff2f41"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#af99b4b2e0addac9b1b0f2e1177ff2f41">maingo::lbp::DagObj::functionsIneqRelaxationOnly</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; mc::FFVar &gt; &gt; functionsIneqRelaxationOnly</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:64</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a639462cbaec8e4a5ef66f37f718adc0c"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a639462cbaec8e4a5ef66f37f718adc0c">maingo::lbp::DagObj::simplexPoints</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; simplexPoints</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:77</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a90b99c016e5ad32a56b668d5922363e6"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a90b99c016e5ad32a56b668d5922363e6">maingo::lbp::DagObj::functionsNonlinear</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; functionsNonlinear</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:83</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_abfef6333d33007bac6f1c1236fba3979"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#abfef6333d33007bac6f1c1236fba3979">maingo::lbp::DagObj::chosenLinPoints</a></div><div class="ttdeci">std::vector&lt; unsigned &gt; chosenLinPoints</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:88</div></div>
+<a href="lbp_dag_obj_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="constraint_8h.html">constraint.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="interval_library_8h.html">intervalLibrary.h</a>&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="settings_8h.html">settings.h</a>&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_opt_var_8h.html">babOptVar.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;utility&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="keyword">namespace </span>lbp {</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html">   39</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html">DagObj</a> {</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    <span class="comment">// Internal variables for the DAG</span></div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#ac3f57f81e20ba26fe667dc3b1d970e65">   41</a></span>&#160;    mc::FFGraph <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#ac3f57f81e20ba26fe667dc3b1d970e65">DAG</a>;                   </div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#af45a858d3e9f5c34aea23e182a56aa80">   42</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#af45a858d3e9f5c34aea23e182a56aa80">vars</a>;       </div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a22ccda7e73a926dcfe644c147c61986f">   43</a></span>&#160;    mc::FFSubgraph <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a22ccda7e73a926dcfe644c147c61986f">subgraph</a>;           </div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a0285f2c7a74ddd1f3f4157425e9bc984">   44</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a0285f2c7a74ddd1f3f4157425e9bc984">functions</a>;  </div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a487453464d397edc0fc8feef81512712">   45</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a487453464d397edc0fc8feef81512712">resultVars</a>; </div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a40cbce83536b68d607d6484c4b42a329">   46</a></span>&#160;    std::vector&lt;MC&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a40cbce83536b68d607d6484c4b42a329">resultRelaxation</a>;  </div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a41db90b4bf5aef1e6a1660ac36c63d5c">   47</a></span>&#160;    std::vector&lt;MC&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a41db90b4bf5aef1e6a1660ac36c63d5c">McPoint</a>;           </div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a4b66f6a2a3f9e82321e23c25c1ea5110">   48</a></span>&#160;    std::vector&lt;MC&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a4b66f6a2a3f9e82321e23c25c1ea5110">MCarray</a>;           </div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a1f775701cf6bd72a47813a9557d02b19">   49</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a1f775701cf6bd72a47813a9557d02b19">intervals_already_computed</a>;   </div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    <span class="comment">// Variables for interval constraint propagation</span></div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#ae58400f843a41b78fa38b70d22ccc5c0">   52</a></span>&#160;    std::vector&lt;I&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#ae58400f843a41b78fa38b70d22ccc5c0">intervalArray</a>;       </div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#adb5408c4f27e5267ba0086a2df4b29fa">   53</a></span>&#160;    std::vector&lt;I&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#adb5408c4f27e5267ba0086a2df4b29fa">constraintIntervals</a>; </div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#af5c84556b2dcec10b61dfaf09d8e57e3">   54</a></span>&#160;    std::vector&lt;I&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#af5c84556b2dcec10b61dfaf09d8e57e3">currentIntervals</a>;    </div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <span class="comment">// Vectors holding operations of every function in the DAG (not all at once)</span></div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a1433832249455df519f816c2aef102c5">   57</a></span>&#160;    std::vector&lt;std::vector&lt;mc::FFVar&gt;&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a1433832249455df519f816c2aef102c5">functionsObj</a>;                </div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a8e5fe42eab7d26338e2f976630492a85">   58</a></span>&#160;    std::vector&lt;std::vector&lt;mc::FFVar&gt;&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a8e5fe42eab7d26338e2f976630492a85">functionsIneq</a>;               </div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a5292973594aca82930d13ed65fc306eb">   59</a></span>&#160;    std::vector&lt;std::vector&lt;mc::FFVar&gt;&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a5292973594aca82930d13ed65fc306eb">functionsEq</a>;                 </div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#af99b4b2e0addac9b1b0f2e1177ff2f41">   60</a></span>&#160;    std::vector&lt;std::vector&lt;mc::FFVar&gt;&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#af99b4b2e0addac9b1b0f2e1177ff2f41">functionsIneqRelaxationOnly</a>; </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a220647ff8c33ac5368e862168c8c3b16">   61</a></span>&#160;    std::vector&lt;std::vector&lt;mc::FFVar&gt;&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a220647ff8c33ac5368e862168c8c3b16">functionsEqRelaxationOnly</a>;   </div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a98f1595cb060ac600ecde0437557f36f">   62</a></span>&#160;    std::vector&lt;std::vector&lt;mc::FFVar&gt;&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a98f1595cb060ac600ecde0437557f36f">functionsIneqSquash</a>;         </div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a9e63717cf7e7c34405d2c16c38cd5616">   63</a></span>&#160;    std::vector&lt;mc::FFSubgraph&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a9e63717cf7e7c34405d2c16c38cd5616">subgraphObj</a>;                         </div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#ad121236e147560747dd24e0daebb598f">   64</a></span>&#160;    std::vector&lt;mc::FFSubgraph&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#ad121236e147560747dd24e0daebb598f">subgraphIneq</a>;                        </div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#aee77c46e9bf0acb2013d02a3032d61be">   65</a></span>&#160;    std::vector&lt;mc::FFSubgraph&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#aee77c46e9bf0acb2013d02a3032d61be">subgraphEq</a>;                          </div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#aeef5b9c3ba6ff3d2c4a646c45ecd37cb">   66</a></span>&#160;    std::vector&lt;mc::FFSubgraph&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#aeef5b9c3ba6ff3d2c4a646c45ecd37cb">subgraphIneqRelaxationOnly</a>;          </div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a627de930f81b7f923008c966c40250ed">   67</a></span>&#160;    std::vector&lt;mc::FFSubgraph&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a627de930f81b7f923008c966c40250ed">subgraphEqRelaxationOnly</a>;            </div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a280f5eb29de9df45b62330fa54d69b59">   68</a></span>&#160;    std::vector&lt;mc::FFSubgraph&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a280f5eb29de9df45b62330fa54d69b59">subgraphIneqSquash</a>;                  </div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a035f243e17df5931b5c12a003cb09b0d">   70</a></span>&#160;    <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a035f243e17df5931b5c12a003cb09b0d">infinityMC</a>;                  </div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a09fb67cc9c686600e7aa47f2780dfca5">   71</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a09fb67cc9c686600e7aa47f2780dfca5">validIntervalLowerBound</a>; </div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a639462cbaec8e4a5ef66f37f718adc0c">   73</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a639462cbaec8e4a5ef66f37f718adc0c">simplexPoints</a>; </div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#aee1902712aacf900093a6bfe7c33e94c">   74</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#aee1902712aacf900093a6bfe7c33e94c">scaledPoints</a>;  </div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a5b1b4d6a673c6e3092264d6dceabdece">   75</a></span>&#160;    std::vector&lt;vMC&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a5b1b4d6a673c6e3092264d6dceabdece">vMcPoint</a>;                      </div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a1612e267cb6ae7781a857a48e5d23df2">   76</a></span>&#160;    std::vector&lt;vMC&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a1612e267cb6ae7781a857a48e5d23df2">vMCarray</a>;                      </div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a3b3f7ae538ae78f33a079e96546e4a3d">   77</a></span>&#160;    mc::FFSubgraph <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a3b3f7ae538ae78f33a079e96546e4a3d">subgraphNonlinear</a>;               </div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#ac4b6f8902932d13e117c978846ace56a">   78</a></span>&#160;    mc::FFSubgraph <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#ac4b6f8902932d13e117c978846ace56a">subgraphLinear</a>;                  </div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a90b99c016e5ad32a56b668d5922363e6">   79</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a90b99c016e5ad32a56b668d5922363e6">functionsNonlinear</a>;      </div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#aaf52d4f10c05f0fdf20794aa33fa9522">   80</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#aaf52d4f10c05f0fdf20794aa33fa9522">functionsLinear</a>;         </div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a33ed9808b2de0dc8ed883b7fbd03cca8">   81</a></span>&#160;    std::vector&lt;vMC&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a33ed9808b2de0dc8ed883b7fbd03cca8">resultRelaxationVMCNonlinear</a>;  </div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a4ab4fd71ab7c9629fd3357f3becf8aa6">   82</a></span>&#160;    std::vector&lt;MC&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a4ab4fd71ab7c9629fd3357f3becf8aa6">resultRelaxationNonlinear</a>;      </div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#a951a092aecbd63f3a33fec5406368944">   83</a></span>&#160;    std::vector&lt;MC&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a951a092aecbd63f3a33fec5406368944">resultRelaxationLinear</a>;         </div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#abfef6333d33007bac6f1c1236fba3979">   84</a></span>&#160;    std::vector&lt;unsigned&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#abfef6333d33007bac6f1c1236fba3979">chosenLinPoints</a>;          </div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#aafb406768277c0b3935a707000b0e2a5">   85</a></span>&#160;    std::vector&lt;bool&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#aafb406768277c0b3935a707000b0e2a5">objRowFilled</a>;                 </div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="structmaingo_1_1lbp_1_1_dag_obj.html#af2ba1ac965bfc48025172b978cbee2c6">   87</a></span>&#160;    std::shared_ptr&lt;std::vector&lt;Constraint&gt;&gt; <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#af2ba1ac965bfc48025172b978cbee2c6">_constraintProperties</a>; </div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#a03d316c8bf417fbb010961bb31d7cdbc">DagObj</a>(mc::FFGraph &amp;<a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#ac3f57f81e20ba26fe667dc3b1d970e65">DAG</a>, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGvars, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGfunctions,</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;           <span class="keyword">const</span> std::vector&lt;babBase::OptimizationVariable&gt; &amp;variables, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineq, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neq,</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;           <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqRelaxationOnly, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqRelaxationOnly, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqSquash,</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;           std::shared_ptr&lt;Settings&gt; settings, std::shared_ptr&lt;std::vector&lt;Constraint&gt;&gt; constraintPropertiesIn);</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="structmaingo_1_1lbp_1_1_dag_obj.html#afdac6172a450f8b76c8323b9ee88905a">initialize_vMcCormick</a>();</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;};</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;}    <span class="comment">// end namespace lbp</span></div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a220647ff8c33ac5368e862168c8c3b16"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a220647ff8c33ac5368e862168c8c3b16">maingo::lbp::DagObj::functionsEqRelaxationOnly</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; mc::FFVar &gt; &gt; functionsEqRelaxationOnly</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:61</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a4b66f6a2a3f9e82321e23c25c1ea5110"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a4b66f6a2a3f9e82321e23c25c1ea5110">maingo::lbp::DagObj::MCarray</a></div><div class="ttdeci">std::vector&lt; MC &gt; MCarray</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:48</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a1433832249455df519f816c2aef102c5"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a1433832249455df519f816c2aef102c5">maingo::lbp::DagObj::functionsObj</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; mc::FFVar &gt; &gt; functionsObj</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:57</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_aee1902712aacf900093a6bfe7c33e94c"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#aee1902712aacf900093a6bfe7c33e94c">maingo::lbp::DagObj::scaledPoints</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; scaledPoints</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:74</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_adb5408c4f27e5267ba0086a2df4b29fa"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#adb5408c4f27e5267ba0086a2df4b29fa">maingo::lbp::DagObj::constraintIntervals</a></div><div class="ttdeci">std::vector&lt; I &gt; constraintIntervals</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:53</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a951a092aecbd63f3a33fec5406368944"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a951a092aecbd63f3a33fec5406368944">maingo::lbp::DagObj::resultRelaxationLinear</a></div><div class="ttdeci">std::vector&lt; MC &gt; resultRelaxationLinear</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:83</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a487453464d397edc0fc8feef81512712"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a487453464d397edc0fc8feef81512712">maingo::lbp::DagObj::resultVars</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; resultVars</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:45</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a33ed9808b2de0dc8ed883b7fbd03cca8"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a33ed9808b2de0dc8ed883b7fbd03cca8">maingo::lbp::DagObj::resultRelaxationVMCNonlinear</a></div><div class="ttdeci">std::vector&lt; vMC &gt; resultRelaxationVMCNonlinear</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:81</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a0285f2c7a74ddd1f3f4157425e9bc984"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a0285f2c7a74ddd1f3f4157425e9bc984">maingo::lbp::DagObj::functions</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; functions</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:44</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_ad121236e147560747dd24e0daebb598f"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#ad121236e147560747dd24e0daebb598f">maingo::lbp::DagObj::subgraphIneq</a></div><div class="ttdeci">std::vector&lt; mc::FFSubgraph &gt; subgraphIneq</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:64</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a1f775701cf6bd72a47813a9557d02b19"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a1f775701cf6bd72a47813a9557d02b19">maingo::lbp::DagObj::intervals_already_computed</a></div><div class="ttdeci">bool intervals_already_computed</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:49</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_af99b4b2e0addac9b1b0f2e1177ff2f41"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#af99b4b2e0addac9b1b0f2e1177ff2f41">maingo::lbp::DagObj::functionsIneqRelaxationOnly</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; mc::FFVar &gt; &gt; functionsIneqRelaxationOnly</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:60</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a639462cbaec8e4a5ef66f37f718adc0c"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a639462cbaec8e4a5ef66f37f718adc0c">maingo::lbp::DagObj::simplexPoints</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; simplexPoints</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:73</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a90b99c016e5ad32a56b668d5922363e6"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a90b99c016e5ad32a56b668d5922363e6">maingo::lbp::DagObj::functionsNonlinear</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; functionsNonlinear</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:79</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_abfef6333d33007bac6f1c1236fba3979"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#abfef6333d33007bac6f1c1236fba3979">maingo::lbp::DagObj::chosenLinPoints</a></div><div class="ttdeci">std::vector&lt; unsigned &gt; chosenLinPoints</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:84</div></div>
 <div class="ttc" id="interval_library_8h_html"><div class="ttname"><a href="interval_library_8h.html">intervalLibrary.h</a></div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_ac4b6f8902932d13e117c978846ace56a"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#ac4b6f8902932d13e117c978846ace56a">maingo::lbp::DagObj::subgraphLinear</a></div><div class="ttdeci">mc::FFSubgraph subgraphLinear</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:82</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_af5c84556b2dcec10b61dfaf09d8e57e3"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#af5c84556b2dcec10b61dfaf09d8e57e3">maingo::lbp::DagObj::currentIntervals</a></div><div class="ttdeci">std::vector&lt; I &gt; currentIntervals</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:58</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a280f5eb29de9df45b62330fa54d69b59"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a280f5eb29de9df45b62330fa54d69b59">maingo::lbp::DagObj::subgraphIneqSquash</a></div><div class="ttdeci">std::vector&lt; mc::FFSubgraph &gt; subgraphIneqSquash</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:72</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a627de930f81b7f923008c966c40250ed"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a627de930f81b7f923008c966c40250ed">maingo::lbp::DagObj::subgraphEqRelaxationOnly</a></div><div class="ttdeci">std::vector&lt; mc::FFSubgraph &gt; subgraphEqRelaxationOnly</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:71</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_ac3f57f81e20ba26fe667dc3b1d970e65"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#ac3f57f81e20ba26fe667dc3b1d970e65">maingo::lbp::DagObj::DAG</a></div><div class="ttdeci">mc::FFGraph DAG</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:45</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_aee77c46e9bf0acb2013d02a3032d61be"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#aee77c46e9bf0acb2013d02a3032d61be">maingo::lbp::DagObj::subgraphEq</a></div><div class="ttdeci">std::vector&lt; mc::FFSubgraph &gt; subgraphEq</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:69</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html">maingo::lbp::DagObj</a></div><div class="ttdoc">Struct for storing all needed Directed acyclic Graph objects for the upper bounding solver.</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:43</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a41db90b4bf5aef1e6a1660ac36c63d5c"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a41db90b4bf5aef1e6a1660ac36c63d5c">maingo::lbp::DagObj::McPoint</a></div><div class="ttdeci">std::vector&lt; MC &gt; McPoint</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:51</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a9e63717cf7e7c34405d2c16c38cd5616"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a9e63717cf7e7c34405d2c16c38cd5616">maingo::lbp::DagObj::subgraphObj</a></div><div class="ttdeci">std::vector&lt; mc::FFSubgraph &gt; subgraphObj</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:67</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_ac4b6f8902932d13e117c978846ace56a"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#ac4b6f8902932d13e117c978846ace56a">maingo::lbp::DagObj::subgraphLinear</a></div><div class="ttdeci">mc::FFSubgraph subgraphLinear</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:78</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_af5c84556b2dcec10b61dfaf09d8e57e3"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#af5c84556b2dcec10b61dfaf09d8e57e3">maingo::lbp::DagObj::currentIntervals</a></div><div class="ttdeci">std::vector&lt; I &gt; currentIntervals</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:54</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a280f5eb29de9df45b62330fa54d69b59"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a280f5eb29de9df45b62330fa54d69b59">maingo::lbp::DagObj::subgraphIneqSquash</a></div><div class="ttdeci">std::vector&lt; mc::FFSubgraph &gt; subgraphIneqSquash</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:68</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_af2ba1ac965bfc48025172b978cbee2c6"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#af2ba1ac965bfc48025172b978cbee2c6">maingo::lbp::DagObj::_constraintProperties</a></div><div class="ttdeci">std::shared_ptr&lt; std::vector&lt; Constraint &gt; &gt; _constraintProperties</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:87</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a627de930f81b7f923008c966c40250ed"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a627de930f81b7f923008c966c40250ed">maingo::lbp::DagObj::subgraphEqRelaxationOnly</a></div><div class="ttdeci">std::vector&lt; mc::FFSubgraph &gt; subgraphEqRelaxationOnly</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:67</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_ac3f57f81e20ba26fe667dc3b1d970e65"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#ac3f57f81e20ba26fe667dc3b1d970e65">maingo::lbp::DagObj::DAG</a></div><div class="ttdeci">mc::FFGraph DAG</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:41</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_aee77c46e9bf0acb2013d02a3032d61be"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#aee77c46e9bf0acb2013d02a3032d61be">maingo::lbp::DagObj::subgraphEq</a></div><div class="ttdeci">std::vector&lt; mc::FFSubgraph &gt; subgraphEq</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:65</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html">maingo::lbp::DagObj</a></div><div class="ttdoc">Struct for storing all needed Directed acyclic Graph objects for the upper bounding solver...</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:39</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a41db90b4bf5aef1e6a1660ac36c63d5c"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a41db90b4bf5aef1e6a1660ac36c63d5c">maingo::lbp::DagObj::McPoint</a></div><div class="ttdeci">std::vector&lt; MC &gt; McPoint</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:47</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a9e63717cf7e7c34405d2c16c38cd5616"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a9e63717cf7e7c34405d2c16c38cd5616">maingo::lbp::DagObj::subgraphObj</a></div><div class="ttdeci">std::vector&lt; mc::FFSubgraph &gt; subgraphObj</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:63</div></div>
 <div class="ttc" id="constraint_8h_html"><div class="ttname"><a href="constraint_8h.html">constraint.h</a></div></div>
-<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO</div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
-<div class="ttc" id="interval_library_8h_html_a57d32400333d3f6211554cbc6b30c034"><div class="ttname"><a href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a></div><div class="ttdeci">mc::McCormick&lt; I &gt; MC</div><div class="ttdoc">A type definition for a McCormick variable.</div><div class="ttdef"><b>Definition:</b> intervalLibrary.h:57</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_aafb406768277c0b3935a707000b0e2a5"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#aafb406768277c0b3935a707000b0e2a5">maingo::lbp::DagObj::objRowFilled</a></div><div class="ttdeci">std::vector&lt; bool &gt; objRowFilled</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:89</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a22ccda7e73a926dcfe644c147c61986f"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a22ccda7e73a926dcfe644c147c61986f">maingo::lbp::DagObj::subgraph</a></div><div class="ttdeci">mc::FFSubgraph subgraph</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:47</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a8e5fe42eab7d26338e2f976630492a85"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a8e5fe42eab7d26338e2f976630492a85">maingo::lbp::DagObj::functionsIneq</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; mc::FFVar &gt; &gt; functionsIneq</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:62</div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
+<div class="ttc" id="interval_library_8h_html_a57d32400333d3f6211554cbc6b30c034"><div class="ttname"><a href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a></div><div class="ttdeci">mc::McCormick&lt; I &gt; MC</div><div class="ttdoc">A type definition for a McCormick variable. </div><div class="ttdef"><b>Definition:</b> intervalLibrary.h:34</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_aafb406768277c0b3935a707000b0e2a5"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#aafb406768277c0b3935a707000b0e2a5">maingo::lbp::DagObj::objRowFilled</a></div><div class="ttdeci">std::vector&lt; bool &gt; objRowFilled</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:85</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a22ccda7e73a926dcfe644c147c61986f"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a22ccda7e73a926dcfe644c147c61986f">maingo::lbp::DagObj::subgraph</a></div><div class="ttdeci">mc::FFSubgraph subgraph</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:43</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a8e5fe42eab7d26338e2f976630492a85"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a8e5fe42eab7d26338e2f976630492a85">maingo::lbp::DagObj::functionsIneq</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; mc::FFVar &gt; &gt; functionsIneq</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:58</div></div>
 <div class="ttc" id="settings_8h_html"><div class="ttname"><a href="settings_8h.html">settings.h</a></div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a09fb67cc9c686600e7aa47f2780dfca5"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a09fb67cc9c686600e7aa47f2780dfca5">maingo::lbp::DagObj::validIntervalLowerBound</a></div><div class="ttdeci">double validIntervalLowerBound</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:75</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_af45a858d3e9f5c34aea23e182a56aa80"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#af45a858d3e9f5c34aea23e182a56aa80">maingo::lbp::DagObj::vars</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; vars</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:46</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_ae58400f843a41b78fa38b70d22ccc5c0"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#ae58400f843a41b78fa38b70d22ccc5c0">maingo::lbp::DagObj::intervalArray</a></div><div class="ttdeci">std::vector&lt; I &gt; intervalArray</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:56</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_aaf52d4f10c05f0fdf20794aa33fa9522"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#aaf52d4f10c05f0fdf20794aa33fa9522">maingo::lbp::DagObj::functionsLinear</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; functionsLinear</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:84</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a1612e267cb6ae7781a857a48e5d23df2"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a1612e267cb6ae7781a857a48e5d23df2">maingo::lbp::DagObj::vMCarray</a></div><div class="ttdeci">std::vector&lt; vMC &gt; vMCarray</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:80</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a98f1595cb060ac600ecde0437557f36f"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a98f1595cb060ac600ecde0437557f36f">maingo::lbp::DagObj::functionsIneqSquash</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; mc::FFVar &gt; &gt; functionsIneqSquash</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:66</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a4ab4fd71ab7c9629fd3357f3becf8aa6"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a4ab4fd71ab7c9629fd3357f3becf8aa6">maingo::lbp::DagObj::resultRelaxationNonlinear</a></div><div class="ttdeci">std::vector&lt; MC &gt; resultRelaxationNonlinear</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:86</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_aeef5b9c3ba6ff3d2c4a646c45ecd37cb"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#aeef5b9c3ba6ff3d2c4a646c45ecd37cb">maingo::lbp::DagObj::subgraphIneqRelaxationOnly</a></div><div class="ttdeci">std::vector&lt; mc::FFSubgraph &gt; subgraphIneqRelaxationOnly</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:70</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_afdac6172a450f8b76c8323b9ee88905a"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#afdac6172a450f8b76c8323b9ee88905a">maingo::lbp::DagObj::initialize_vMcCormick</a></div><div class="ttdeci">void initialize_vMcCormick()</div><div class="ttdoc">Function for additional stuff neeeded when using vector McCormick.</div><div class="ttdef"><b>Definition:</b> lbpDagObj.cpp:153</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a035f243e17df5931b5c12a003cb09b0d"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a035f243e17df5931b5c12a003cb09b0d">maingo::lbp::DagObj::infinityMC</a></div><div class="ttdeci">MC infinityMC</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:74</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a3b3f7ae538ae78f33a079e96546e4a3d"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a3b3f7ae538ae78f33a079e96546e4a3d">maingo::lbp::DagObj::subgraphNonlinear</a></div><div class="ttdeci">mc::FFSubgraph subgraphNonlinear</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:81</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a5b1b4d6a673c6e3092264d6dceabdece"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a5b1b4d6a673c6e3092264d6dceabdece">maingo::lbp::DagObj::vMcPoint</a></div><div class="ttdeci">std::vector&lt; vMC &gt; vMcPoint</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:79</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a5292973594aca82930d13ed65fc306eb"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a5292973594aca82930d13ed65fc306eb">maingo::lbp::DagObj::functionsEq</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; mc::FFVar &gt; &gt; functionsEq</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:63</div></div>
-<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a40cbce83536b68d607d6484c4b42a329"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a40cbce83536b68d607d6484c4b42a329">maingo::lbp::DagObj::resultRelaxation</a></div><div class="ttdeci">std::vector&lt; MC &gt; resultRelaxation</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:50</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a09fb67cc9c686600e7aa47f2780dfca5"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a09fb67cc9c686600e7aa47f2780dfca5">maingo::lbp::DagObj::validIntervalLowerBound</a></div><div class="ttdeci">double validIntervalLowerBound</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:71</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_af45a858d3e9f5c34aea23e182a56aa80"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#af45a858d3e9f5c34aea23e182a56aa80">maingo::lbp::DagObj::vars</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; vars</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:42</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_ae58400f843a41b78fa38b70d22ccc5c0"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#ae58400f843a41b78fa38b70d22ccc5c0">maingo::lbp::DagObj::intervalArray</a></div><div class="ttdeci">std::vector&lt; I &gt; intervalArray</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:52</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_aaf52d4f10c05f0fdf20794aa33fa9522"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#aaf52d4f10c05f0fdf20794aa33fa9522">maingo::lbp::DagObj::functionsLinear</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; functionsLinear</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:80</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a1612e267cb6ae7781a857a48e5d23df2"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a1612e267cb6ae7781a857a48e5d23df2">maingo::lbp::DagObj::vMCarray</a></div><div class="ttdeci">std::vector&lt; vMC &gt; vMCarray</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:76</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a98f1595cb060ac600ecde0437557f36f"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a98f1595cb060ac600ecde0437557f36f">maingo::lbp::DagObj::functionsIneqSquash</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; mc::FFVar &gt; &gt; functionsIneqSquash</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:62</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a4ab4fd71ab7c9629fd3357f3becf8aa6"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a4ab4fd71ab7c9629fd3357f3becf8aa6">maingo::lbp::DagObj::resultRelaxationNonlinear</a></div><div class="ttdeci">std::vector&lt; MC &gt; resultRelaxationNonlinear</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:82</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_aeef5b9c3ba6ff3d2c4a646c45ecd37cb"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#aeef5b9c3ba6ff3d2c4a646c45ecd37cb">maingo::lbp::DagObj::subgraphIneqRelaxationOnly</a></div><div class="ttdeci">std::vector&lt; mc::FFSubgraph &gt; subgraphIneqRelaxationOnly</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:66</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_afdac6172a450f8b76c8323b9ee88905a"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#afdac6172a450f8b76c8323b9ee88905a">maingo::lbp::DagObj::initialize_vMcCormick</a></div><div class="ttdeci">void initialize_vMcCormick()</div><div class="ttdoc">Function for additional stuff neeeded when using vector McCormick. </div><div class="ttdef"><b>Definition:</b> lbpDagObj.cpp:148</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a035f243e17df5931b5c12a003cb09b0d"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a035f243e17df5931b5c12a003cb09b0d">maingo::lbp::DagObj::infinityMC</a></div><div class="ttdeci">MC infinityMC</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:70</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a3b3f7ae538ae78f33a079e96546e4a3d"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a3b3f7ae538ae78f33a079e96546e4a3d">maingo::lbp::DagObj::subgraphNonlinear</a></div><div class="ttdeci">mc::FFSubgraph subgraphNonlinear</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:77</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a03d316c8bf417fbb010961bb31d7cdbc"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a03d316c8bf417fbb010961bb31d7cdbc">maingo::lbp::DagObj::DagObj</a></div><div class="ttdeci">DagObj(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineq, const unsigned neq, const unsigned nineqRelaxationOnly, const unsigned neqRelaxationOnly, const unsigned nineqSquash, std::shared_ptr&lt; Settings &gt; settings, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> lbpDagObj.cpp:23</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a5b1b4d6a673c6e3092264d6dceabdece"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a5b1b4d6a673c6e3092264d6dceabdece">maingo::lbp::DagObj::vMcPoint</a></div><div class="ttdeci">std::vector&lt; vMC &gt; vMcPoint</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:75</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a5292973594aca82930d13ed65fc306eb"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a5292973594aca82930d13ed65fc306eb">maingo::lbp::DagObj::functionsEq</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; mc::FFVar &gt; &gt; functionsEq</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:59</div></div>
+<div class="ttc" id="structmaingo_1_1lbp_1_1_dag_obj_html_a40cbce83536b68d607d6484c4b42a329"><div class="ttname"><a href="structmaingo_1_1lbp_1_1_dag_obj.html#a40cbce83536b68d607d6484c4b42a329">maingo::lbp::DagObj::resultRelaxation</a></div><div class="ttdeci">std::vector&lt; MC &gt; resultRelaxation</div><div class="ttdef"><b>Definition:</b> lbpDagObj.h:46</div></div>
 <div class="ttc" id="bab_opt_var_8h_html"><div class="ttname"><a href="bab_opt_var_8h.html">babOptVar.h</a></div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
@@ -148,7 +147,7 @@ $(document).ready(function(){initNavTree('lbp_dag_obj_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="lbp_dag_obj_8h.html">lbpDagObj.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/lbp_factory_8cpp.html b/doc/html/lbp_factory_8cpp.html
index 3cf495a4b61d01bdbe834ad7e9f0fdd785d13c39..975bef6a4bea7942445d8d494cd3dbc9b775778b 100644
--- a/doc/html/lbp_factory_8cpp.html
+++ b/doc/html/lbp_factory_8cpp.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/src/lbpFactory.cpp File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/src/lbpFactory.cpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,10 +90,11 @@ $(document).ready(function(){initNavTree('lbp_factory_8cpp.html','');});
 <div class="title">lbpFactory.cpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="textblock"><code>#include &quot;<a class="el" href="exceptions_8h_source.html">exceptions.h</a>&quot;</code><br />
+<div class="textblock"><code>#include &quot;<a class="el" href="_m_ai_n_g_o_exception_8h_source.html">MAiNGOException.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="lbp_8h_source.html">lbp.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="lbp_clp_8h_source.html">lbpClp.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="lbp_interval_8h_source.html">lbpInterval.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="logger_8h_source.html">logger.h</a>&quot;</code><br />
 </div></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -102,7 +103,7 @@ $(document).ready(function(){initNavTree('lbp_factory_8cpp.html','');});
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="lbp_factory_8cpp.html">lbpFactory.cpp</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/lbp_interval_8cpp.html b/doc/html/lbp_interval_8cpp.html
index 98195cf831005daebfa42d84ad7f2b1d985e0241..d71ea629c706bdc91fedfa9f27e652a96d444292 100644
--- a/doc/html/lbp_interval_8cpp.html
+++ b/doc/html/lbp_interval_8cpp.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/src/lbpInterval.cpp File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/src/lbpInterval.cpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -101,7 +101,7 @@ $(document).ready(function(){initNavTree('lbp_interval_8cpp.html','');});
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="lbp_interval_8cpp.html">lbpInterval.cpp</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/lbp_interval_8h.html b/doc/html/lbp_interval_8h.html
index 009ac467babc75d692510d4eefd9288d6bb9f718..5c13516abb2f324fca687c36b58b4e49168461f9 100644
--- a/doc/html/lbp_interval_8h.html
+++ b/doc/html/lbp_interval_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/lbpInterval.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/lbpInterval.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -120,7 +120,7 @@ Namespaces</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="lbp_interval_8h.html">lbpInterval.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/lbp_interval_8h_source.html b/doc/html/lbp_interval_8h_source.html
index fb7d53e3f6092978194854808476f70c79a1bd3e..8faab2b0b82faf2abdaefdeb590ba254d2f99d08 100644
--- a/doc/html/lbp_interval_8h_source.html
+++ b/doc/html/lbp_interval_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/lbpInterval.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/lbpInterval.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,34 +90,32 @@ $(document).ready(function(){initNavTree('lbp_interval_8h_source.html','');});
 <div class="title">lbpInterval.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="lbp_interval_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file lbpInterval.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing declaration of LbpInterval class used for solving the</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *        lower bounding problems.</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="lbp_8h.html">lbp.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="keyword">namespace </span>lbp {</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_interval.html">   33</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html">LbpInterval</a>: <span class="keyword">public</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">LowerBoundingSolver</a> {</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#ae0c855db98ba9a8c6e32500e1efcbbe7">LbpInterval</a>(mc::FFGraph &amp;DAG, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGvars, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGfunctions,</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                <span class="keyword">const</span> std::vector&lt;babBase::OptimizationVariable&gt; &amp;variables, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqIn,</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqRelaxationOnlyIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqRelaxationOnlyIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqSquashIn,</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                <a class="code" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="code" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn, std::vector&lt;Constraint&gt; *constraintPropertiesIn);</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a5ae276345994ad701c7640d7c4bd4f0d">activate_more_scaling</a>();</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;  <span class="keyword">protected</span>:</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#afde12ebd0aeaaf720167a51b0fd08a83">_set_variable_bounds</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds);</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824e">LINEARIZATION_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a70bb4b9bda381f7e2f1e49b66be863c2">_update_LP</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode);</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a7282b284518725b3754a29531001d67f">_update_LP_obj</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                        <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iObj);</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a936d2fad181003f31673eb053299aa4e">_update_LP_ineq</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;                         <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneq);</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a274c50b0ce633cb4b9616f9ec737bbae">_update_LP_eq</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxationCv, <span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxationCc, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;                       <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iEq);</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#af632f780426eb916d395a7854b446e23">_update_LP_ineqRelaxationOnly</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;                                       <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneqRelaxationOnly);</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#aea1859e400fedef26c0391fe3d2262e0">_update_LP_eqRelaxationOnly</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxationCv, <span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxationCc, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;                                     <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iEqRelaxationOnly);</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a6fe830f1bb82860614d7812e260520bd">_update_LP_ineq_squash</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;                                <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneqSquash);</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#ac28a50c89f88e52c1af7af2ed5104bdb">_solve_LP</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode);</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a2a9d6be191c080861b7ae9de9ca46f98">_turn_off_specific_options</a>();</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;<span class="preprocessor">#ifdef LP__OPTIMALITY_CHECK</span></div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a5ec0a4dc7543d432fe2c44892469c959">_check_infeasibility</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode);</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#aae0fb055173014b96398727f31cf8138">_check_feasibility</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;solution);</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a5a44a19b7c78a6235abd0e44f9de71b7">_check_optimality</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode, <span class="keyword">const</span> <span class="keywordtype">double</span> newLBD, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;solution, <span class="keyword">const</span> <span class="keywordtype">double</span> etaVal, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;multipliers);</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;<span class="preprocessor">#ifdef LP__WRITE_CHECK_FILES</span></div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    <span class="keywordtype">void</span> _write_LP_to_file(std::string &amp;fileName);</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_interval.html#ac7defcd5788a9a9d5e6808a153befe3c">  217</a></span>&#160;    std::vector&lt;I&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#ac7defcd5788a9a9d5e6808a153befe3c">_resultInterval</a>; </div><div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a8ff583ee6ae4a233daf85c29cabc6ba5">  218</a></span>&#160;    std::vector&lt;I&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a8ff583ee6ae4a233daf85c29cabc6ba5">_Intervals</a>;      </div><div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_interval.html#aef1c4f8ac1b79c59562f10d2e87f4a6a">  219</a></span>&#160;    std::vector&lt;I&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#aef1c4f8ac1b79c59562f10d2e87f4a6a">_Iarray</a>;         </div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;};</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;}    <span class="comment">// end of namespace lbp</span></div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;}    <span class="comment">// end of namespace maingo</span></div><div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></div><div class="ttdoc">Wrapper for handling the lower bounding problems as well as optimization-based bounds tightening (OBB...</div><div class="ttdef"><b>Definition:</b> lbp.h:60</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html_a70bb4b9bda381f7e2f1e49b66be863c2"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html#a70bb4b9bda381f7e2f1e49b66be863c2">maingo::lbp::LbpInterval::_update_LP</a></div><div class="ttdeci">LINEARIZATION_RETCODE _update_LP(const babBase::BabNode &amp;currentNode)</div><div class="ttdoc">Calls the proper function for computing Intervals.</div><div class="ttdef"><b>Definition:</b> lbpInterval.cpp:79</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html_a274c50b0ce633cb4b9616f9ec737bbae"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html#a274c50b0ce633cb4b9616f9ec737bbae">maingo::lbp::LbpInterval::_update_LP_eq</a></div><div class="ttdeci">void _update_LP_eq(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEq)</div><div class="ttdoc">Auxiliary function for updating LP equalities, i.e., processing the linearization of the equality.</div><div class="ttdef"><b>Definition:</b> lbpInterval.cpp:124</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html"><div class="ttname"><a href="classbab_base_1_1_bab_node.html">babBase::BabNode</a></div><div class="ttdoc">Class representing a node in the Branch-and-Bound tree.</div><div class="ttdef"><b>Definition:</b> babNode.h:35</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html_a5ae276345994ad701c7640d7c4bd4f0d"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html#a5ae276345994ad701c7640d7c4bd4f0d">maingo::lbp::LbpInterval::activate_more_scaling</a></div><div class="ttdeci">void activate_more_scaling()</div><div class="ttdoc">Function called by the B&amp;B solver to heuristically activate more scaling in the LBS.</div><div class="ttdef"><b>Definition:</b> lbpInterval.cpp:54</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html">maingo::lbp::LbpInterval</a></div><div class="ttdoc">Wrapper for handling the lower bounding problems by using interval arithmetics. We currently do a bit...</div><div class="ttdef"><b>Definition:</b> lbpInterval.h:33</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html"><div class="ttname"><a href="structmaingo_1_1_settings.html">maingo::Settings</a></div><div class="ttdoc">Struct for storing settings for MAiNGO.</div><div class="ttdef"><b>Definition:</b> settings.h:143</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html_a5a44a19b7c78a6235abd0e44f9de71b7"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html#a5a44a19b7c78a6235abd0e44f9de71b7">maingo::lbp::LbpInterval::_check_optimality</a></div><div class="ttdeci">SUBSOLVER_RETCODE _check_optimality(const babBase::BabNode &amp;currentNode, const double newLBD, const std::vector&lt; double &gt; &amp;solution, const double etaVal, const std::vector&lt; double &gt; &amp;multipliers)</div><div class="ttdoc">Function for checking if the solution point returned is really optimal. Not available in this solver.</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html_a2a9d6be191c080861b7ae9de9ca46f98"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html#a2a9d6be191c080861b7ae9de9ca46f98">maingo::lbp::LbpInterval::_turn_off_specific_options</a></div><div class="ttdeci">void _turn_off_specific_options()</div><div class="ttdoc">Function for checking if a specific option has to be turned off for a given lower bounding solver.</div><div class="ttdef"><b>Definition:</b> lbpInterval.cpp:230</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html_a936d2fad181003f31673eb053299aa4e"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html#a936d2fad181003f31673eb053299aa4e">maingo::lbp::LbpInterval::_update_LP_ineq</a></div><div class="ttdeci">void _update_LP_ineq(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneq)</div><div class="ttdoc">Auxiliary function for updating LP inequalities, i.e., processing the linearization of the inequality...</div><div class="ttdef"><b>Definition:</b> lbpInterval.cpp:114</div></div>
-<div class="ttc" id="namespacemaingo_1_1lbp_html_a1f86fef63c4930e5c519b2ca288d824e"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824e">maingo::lbp::LINEARIZATION_RETCODE</a></div><div class="ttdeci">LINEARIZATION_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the different linearization techniques.</div><div class="ttdef"><b>Definition:</b> returnCodes.h:63</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html_ac7defcd5788a9a9d5e6808a153befe3c"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html#ac7defcd5788a9a9d5e6808a153befe3c">maingo::lbp::LbpInterval::_resultInterval</a></div><div class="ttdeci">std::vector&lt; I &gt; _resultInterval</div><div class="ttdef"><b>Definition:</b> lbpInterval.h:217</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html"><div class="ttname"><a href="classmaingo_1_1_logger.html">maingo::Logger</a></div><div class="ttdoc">This class contains all logging and output information.</div><div class="ttdef"><b>Definition:</b> logger.h:101</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html_a8ff583ee6ae4a233daf85c29cabc6ba5"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html#a8ff583ee6ae4a233daf85c29cabc6ba5">maingo::lbp::LbpInterval::_Intervals</a></div><div class="ttdeci">std::vector&lt; I &gt; _Intervals</div><div class="ttdef"><b>Definition:</b> lbpInterval.h:218</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html_ae0c855db98ba9a8c6e32500e1efcbbe7"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html#ae0c855db98ba9a8c6e32500e1efcbbe7">maingo::lbp::LbpInterval::LbpInterval</a></div><div class="ttdeci">LbpInterval(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn)</div><div class="ttdoc">Constructor, stores information on the problem.</div><div class="ttdef"><b>Definition:</b> lbpInterval.cpp:28</div></div>
-<div class="ttc" id="namespacemaingo_html_ab7a1cb5c265f8d1c287d43fec7988020"><div class="ttname"><a href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">maingo::SUBSOLVER_RETCODE</a></div><div class="ttdeci">SUBSOLVER_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the different sub-solvers (UpperBoundingSolver,...</div><div class="ttdef"><b>Definition:</b> returnCodes.h:40</div></div>
-<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO</div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html_a6fe830f1bb82860614d7812e260520bd"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html#a6fe830f1bb82860614d7812e260520bd">maingo::lbp::LbpInterval::_update_LP_ineq_squash</a></div><div class="ttdeci">void _update_LP_ineq_squash(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneqSquash)</div><div class="ttdoc">Auxiliary function for updating LP squash inequalities, i.e., processing the linearization of the squ...</div><div class="ttdef"><b>Definition:</b> lbpInterval.cpp:154</div></div>
-<div class="ttc" id="interval_library_8h_html_a57d32400333d3f6211554cbc6b30c034"><div class="ttname"><a href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a></div><div class="ttdeci">mc::McCormick&lt; I &gt; MC</div><div class="ttdoc">A type definition for a McCormick variable.</div><div class="ttdef"><b>Definition:</b> intervalLibrary.h:57</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html_ac28a50c89f88e52c1af7af2ed5104bdb"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html#ac28a50c89f88e52c1af7af2ed5104bdb">maingo::lbp::LbpInterval::_solve_LP</a></div><div class="ttdeci">void _solve_LP(const babBase::BabNode &amp;currentNode)</div><div class="ttdoc">Function for solving the currently constructed linear program. This function also internally sets the...</div><div class="ttdef"><b>Definition:</b> lbpInterval.cpp:164</div></div>
+<a href="lbp_interval_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="lbp_8h.html">lbp.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="keyword">namespace </span>lbp {</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_interval.html">   28</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html">LbpInterval</a>: <span class="keyword">public</span> <a class="code" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">LowerBoundingSolver</a> {</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a42f6c355cd7752a138f96614bb401491">LbpInterval</a>(mc::FFGraph &amp;DAG, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGvars, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGfunctions,</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;                <span class="keyword">const</span> std::vector&lt;babBase::OptimizationVariable&gt; &amp;variables, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqIn,</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;                <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqRelaxationOnlyIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqRelaxationOnlyIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqSquashIn,</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;                std::shared_ptr&lt;Settings&gt; settingsIn, std::shared_ptr&lt;Logger&gt; loggerIn, std::shared_ptr&lt;std::vector&lt;Constraint&gt;&gt; constraintPropertiesIn);</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a5ae276345994ad701c7640d7c4bd4f0d">activate_more_scaling</a>();</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;  <span class="keyword">protected</span>:</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#afde12ebd0aeaaf720167a51b0fd08a83">_set_variable_bounds</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds);</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824e">LINEARIZATION_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a70bb4b9bda381f7e2f1e49b66be863c2">_update_LP</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode);</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a7282b284518725b3754a29531001d67f">_update_LP_obj</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;                        <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iObj);</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a936d2fad181003f31673eb053299aa4e">_update_LP_ineq</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;                         <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneq);</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a274c50b0ce633cb4b9616f9ec737bbae">_update_LP_eq</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxationCv, <span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxationCc, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;                       <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iEq);</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#af632f780426eb916d395a7854b446e23">_update_LP_ineqRelaxationOnly</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;                                       <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneqRelaxationOnly);</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#aea1859e400fedef26c0391fe3d2262e0">_update_LP_eqRelaxationOnly</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxationCv, <span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxationCc, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;                                     <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iEqRelaxationOnly);</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a6fe830f1bb82860614d7812e260520bd">_update_LP_ineq_squash</a>(<span class="keyword">const</span> <a class="code" href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a> &amp;resultRelaxation, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;linearizationPoint, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds,</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;                                <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iLin, <span class="keywordtype">unsigned</span> <span class="keyword">const</span> &amp;iIneqSquash);</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#ac28a50c89f88e52c1af7af2ed5104bdb">_solve_LP</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode);</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a2a9d6be191c080861b7ae9de9ca46f98">_turn_off_specific_options</a>();</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;<span class="preprocessor">#ifdef LP__OPTIMALITY_CHECK</span></div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a5ec0a4dc7543d432fe2c44892469c959">_check_infeasibility</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode);</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#aae0fb055173014b96398727f31cf8138">_check_feasibility</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;solution);</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a5a44a19b7c78a6235abd0e44f9de71b7">_check_optimality</a>(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;currentNode, <span class="keyword">const</span> <span class="keywordtype">double</span> newLBD, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;solution, <span class="keyword">const</span> <span class="keywordtype">double</span> etaVal, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;multipliers);</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;<span class="preprocessor">#ifdef LP__WRITE_CHECK_FILES</span></div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;    <span class="keywordtype">void</span> _write_LP_to_file(std::string &amp;fileName);</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_interval.html#ac7defcd5788a9a9d5e6808a153befe3c">  212</a></span>&#160;    std::vector&lt;I&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#ac7defcd5788a9a9d5e6808a153befe3c">_resultInterval</a>; </div><div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a8ff583ee6ae4a233daf85c29cabc6ba5">  213</a></span>&#160;    std::vector&lt;I&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#a8ff583ee6ae4a233daf85c29cabc6ba5">_Intervals</a>;      </div><div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="classmaingo_1_1lbp_1_1_lbp_interval.html#aef1c4f8ac1b79c59562f10d2e87f4a6a">  214</a></span>&#160;    std::vector&lt;I&gt; <a class="code" href="classmaingo_1_1lbp_1_1_lbp_interval.html#aef1c4f8ac1b79c59562f10d2e87f4a6a">_Iarray</a>;         </div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;};</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;}    <span class="comment">// end of namespace lbp</span></div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;}    <span class="comment">// end of namespace maingo</span></div><div class="ttc" id="classmaingo_1_1lbp_1_1_lower_bounding_solver_html"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">maingo::lbp::LowerBoundingSolver</a></div><div class="ttdoc">Wrapper for handling the lower bounding problems as well as optimization-based bounds tightening (OBB...</div><div class="ttdef"><b>Definition:</b> lbp.h:65</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html_a70bb4b9bda381f7e2f1e49b66be863c2"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html#a70bb4b9bda381f7e2f1e49b66be863c2">maingo::lbp::LbpInterval::_update_LP</a></div><div class="ttdeci">LINEARIZATION_RETCODE _update_LP(const babBase::BabNode &amp;currentNode)</div><div class="ttdoc">Calls the proper function for computing Intervals. </div><div class="ttdef"><b>Definition:</b> lbpInterval.cpp:74</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html_a274c50b0ce633cb4b9616f9ec737bbae"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html#a274c50b0ce633cb4b9616f9ec737bbae">maingo::lbp::LbpInterval::_update_LP_eq</a></div><div class="ttdeci">void _update_LP_eq(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEq)</div><div class="ttdoc">Auxiliary function for updating LP equalities, i.e., processing the linearization of the equality...</div><div class="ttdef"><b>Definition:</b> lbpInterval.cpp:119</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html"><div class="ttname"><a href="classbab_base_1_1_bab_node.html">babBase::BabNode</a></div><div class="ttdoc">Class representing a node in the Branch-and-Bound tree. </div><div class="ttdef"><b>Definition:</b> babNode.h:35</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html_a5ae276345994ad701c7640d7c4bd4f0d"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html#a5ae276345994ad701c7640d7c4bd4f0d">maingo::lbp::LbpInterval::activate_more_scaling</a></div><div class="ttdeci">void activate_more_scaling()</div><div class="ttdoc">Function called by the B&amp;B solver to heuristically activate more scaling in the LBS. </div><div class="ttdef"><b>Definition:</b> lbpInterval.cpp:49</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html">maingo::lbp::LbpInterval</a></div><div class="ttdoc">Wrapper for handling the lower bounding problems by using interval arithmetics. We currently do a bit...</div><div class="ttdef"><b>Definition:</b> lbpInterval.h:28</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html_a5a44a19b7c78a6235abd0e44f9de71b7"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html#a5a44a19b7c78a6235abd0e44f9de71b7">maingo::lbp::LbpInterval::_check_optimality</a></div><div class="ttdeci">SUBSOLVER_RETCODE _check_optimality(const babBase::BabNode &amp;currentNode, const double newLBD, const std::vector&lt; double &gt; &amp;solution, const double etaVal, const std::vector&lt; double &gt; &amp;multipliers)</div><div class="ttdoc">Function for checking if the solution point returned is really optimal. Not available in this solver...</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html_a2a9d6be191c080861b7ae9de9ca46f98"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html#a2a9d6be191c080861b7ae9de9ca46f98">maingo::lbp::LbpInterval::_turn_off_specific_options</a></div><div class="ttdeci">void _turn_off_specific_options()</div><div class="ttdoc">Function for checking if a specific option has to be turned off for a given lower bounding solver...</div><div class="ttdef"><b>Definition:</b> lbpInterval.cpp:225</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html_a936d2fad181003f31673eb053299aa4e"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html#a936d2fad181003f31673eb053299aa4e">maingo::lbp::LbpInterval::_update_LP_ineq</a></div><div class="ttdeci">void _update_LP_ineq(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneq)</div><div class="ttdoc">Auxiliary function for updating LP inequalities, i.e., processing the linearization of the inequality...</div><div class="ttdef"><b>Definition:</b> lbpInterval.cpp:109</div></div>
+<div class="ttc" id="namespacemaingo_1_1lbp_html_a1f86fef63c4930e5c519b2ca288d824e"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824e">maingo::lbp::LINEARIZATION_RETCODE</a></div><div class="ttdeci">LINEARIZATION_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the different linearization techniques. </div><div class="ttdef"><b>Definition:</b> returnCodes.h:59</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html_ac7defcd5788a9a9d5e6808a153befe3c"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html#ac7defcd5788a9a9d5e6808a153befe3c">maingo::lbp::LbpInterval::_resultInterval</a></div><div class="ttdeci">std::vector&lt; I &gt; _resultInterval</div><div class="ttdef"><b>Definition:</b> lbpInterval.h:212</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html_a8ff583ee6ae4a233daf85c29cabc6ba5"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html#a8ff583ee6ae4a233daf85c29cabc6ba5">maingo::lbp::LbpInterval::_Intervals</a></div><div class="ttdeci">std::vector&lt; I &gt; _Intervals</div><div class="ttdef"><b>Definition:</b> lbpInterval.h:213</div></div>
+<div class="ttc" id="namespacemaingo_html_ab7a1cb5c265f8d1c287d43fec7988020"><div class="ttname"><a href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">maingo::SUBSOLVER_RETCODE</a></div><div class="ttdeci">SUBSOLVER_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the different sub-solvers (UpperBoundingSolver, LowerBoundingSolver). </div><div class="ttdef"><b>Definition:</b> returnCodes.h:36</div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html_a6fe830f1bb82860614d7812e260520bd"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html#a6fe830f1bb82860614d7812e260520bd">maingo::lbp::LbpInterval::_update_LP_ineq_squash</a></div><div class="ttdeci">void _update_LP_ineq_squash(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneqSquash)</div><div class="ttdoc">Auxiliary function for updating LP squash inequalities, i.e., processing the linearization of the squ...</div><div class="ttdef"><b>Definition:</b> lbpInterval.cpp:149</div></div>
+<div class="ttc" id="interval_library_8h_html_a57d32400333d3f6211554cbc6b30c034"><div class="ttname"><a href="interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034">MC</a></div><div class="ttdeci">mc::McCormick&lt; I &gt; MC</div><div class="ttdoc">A type definition for a McCormick variable. </div><div class="ttdef"><b>Definition:</b> intervalLibrary.h:34</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html_ac28a50c89f88e52c1af7af2ed5104bdb"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html#ac28a50c89f88e52c1af7af2ed5104bdb">maingo::lbp::LbpInterval::_solve_LP</a></div><div class="ttdeci">void _solve_LP(const babBase::BabNode &amp;currentNode)</div><div class="ttdoc">Function for solving the currently constructed linear program. This function also internally sets the...</div><div class="ttdef"><b>Definition:</b> lbpInterval.cpp:159</div></div>
 <div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html_a5ec0a4dc7543d432fe2c44892469c959"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html#a5ec0a4dc7543d432fe2c44892469c959">maingo::lbp::LbpInterval::_check_infeasibility</a></div><div class="ttdeci">SUBSOLVER_RETCODE _check_infeasibility(const babBase::BabNode &amp;currentNode)</div><div class="ttdoc">Function for checking if the solution point returned is really infeasible. Not available in this solv...</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html_afde12ebd0aeaaf720167a51b0fd08a83"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html#afde12ebd0aeaaf720167a51b0fd08a83">maingo::lbp::LbpInterval::_set_variable_bounds</a></div><div class="ttdeci">void _set_variable_bounds(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</div><div class="ttdoc">Function for setting the interval bounds.</div><div class="ttdef"><b>Definition:</b> lbpInterval.cpp:64</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html_aef1c4f8ac1b79c59562f10d2e87f4a6a"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html#aef1c4f8ac1b79c59562f10d2e87f4a6a">maingo::lbp::LbpInterval::_Iarray</a></div><div class="ttdeci">std::vector&lt; I &gt; _Iarray</div><div class="ttdef"><b>Definition:</b> lbpInterval.h:219</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html_afde12ebd0aeaaf720167a51b0fd08a83"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html#afde12ebd0aeaaf720167a51b0fd08a83">maingo::lbp::LbpInterval::_set_variable_bounds</a></div><div class="ttdeci">void _set_variable_bounds(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</div><div class="ttdoc">Function for setting the interval bounds. </div><div class="ttdef"><b>Definition:</b> lbpInterval.cpp:59</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html_aef1c4f8ac1b79c59562f10d2e87f4a6a"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html#aef1c4f8ac1b79c59562f10d2e87f4a6a">maingo::lbp::LbpInterval::_Iarray</a></div><div class="ttdeci">std::vector&lt; I &gt; _Iarray</div><div class="ttdef"><b>Definition:</b> lbpInterval.h:214</div></div>
 <div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html_aae0fb055173014b96398727f31cf8138"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html#aae0fb055173014b96398727f31cf8138">maingo::lbp::LbpInterval::_check_feasibility</a></div><div class="ttdeci">SUBSOLVER_RETCODE _check_feasibility(const std::vector&lt; double &gt; &amp;solution)</div><div class="ttdoc">Function for checking if the solution point returned is really feasible. Not available in this solver...</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html_af632f780426eb916d395a7854b446e23"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html#af632f780426eb916d395a7854b446e23">maingo::lbp::LbpInterval::_update_LP_ineqRelaxationOnly</a></div><div class="ttdeci">void _update_LP_ineqRelaxationOnly(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneqRelaxationOnly)</div><div class="ttdoc">Auxiliary function for updating LP relaxation only inequalities, i.e., processing the linearization o...</div><div class="ttdef"><b>Definition:</b> lbpInterval.cpp:134</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html_af632f780426eb916d395a7854b446e23"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html#af632f780426eb916d395a7854b446e23">maingo::lbp::LbpInterval::_update_LP_ineqRelaxationOnly</a></div><div class="ttdeci">void _update_LP_ineqRelaxationOnly(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iIneqRelaxationOnly)</div><div class="ttdoc">Auxiliary function for updating LP relaxation only inequalities, i.e., processing the linearization o...</div><div class="ttdef"><b>Definition:</b> lbpInterval.cpp:129</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html_a42f6c355cd7752a138f96614bb401491"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html#a42f6c355cd7752a138f96614bb401491">maingo::lbp::LbpInterval::LbpInterval</a></div><div class="ttdeci">LbpInterval(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn)</div><div class="ttdoc">Constructor, stores information on the problem. </div><div class="ttdef"><b>Definition:</b> lbpInterval.cpp:23</div></div>
 <div class="ttc" id="lbp_8h_html"><div class="ttname"><a href="lbp_8h.html">lbp.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html_a7282b284518725b3754a29531001d67f"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html#a7282b284518725b3754a29531001d67f">maingo::lbp::LbpInterval::_update_LP_obj</a></div><div class="ttdeci">void _update_LP_obj(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iObj)</div><div class="ttdoc">Auxiliary function for updating LP objective, i.e., processing the linearization of the objective fun...</div><div class="ttdef"><b>Definition:</b> lbpInterval.cpp:104</div></div>
-<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html_aea1859e400fedef26c0391fe3d2262e0"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html#aea1859e400fedef26c0391fe3d2262e0">maingo::lbp::LbpInterval::_update_LP_eqRelaxationOnly</a></div><div class="ttdeci">void _update_LP_eqRelaxationOnly(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEqRelaxationOnly)</div><div class="ttdoc">Auxiliary function for updating LP relaxation only equalities, i.e., processing the linearization of ...</div><div class="ttdef"><b>Definition:</b> lbpInterval.cpp:144</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html_a7282b284518725b3754a29531001d67f"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html#a7282b284518725b3754a29531001d67f">maingo::lbp::LbpInterval::_update_LP_obj</a></div><div class="ttdeci">void _update_LP_obj(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iObj)</div><div class="ttdoc">Auxiliary function for updating LP objective, i.e., processing the linearization of the objective fun...</div><div class="ttdef"><b>Definition:</b> lbpInterval.cpp:99</div></div>
+<div class="ttc" id="classmaingo_1_1lbp_1_1_lbp_interval_html_aea1859e400fedef26c0391fe3d2262e0"><div class="ttname"><a href="classmaingo_1_1lbp_1_1_lbp_interval.html#aea1859e400fedef26c0391fe3d2262e0">maingo::lbp::LbpInterval::_update_LP_eqRelaxationOnly</a></div><div class="ttdeci">void _update_LP_eqRelaxationOnly(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEqRelaxationOnly)</div><div class="ttdoc">Auxiliary function for updating LP relaxation only equalities, i.e., processing the linearization of ...</div><div class="ttdef"><b>Definition:</b> lbpInterval.cpp:139</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -126,7 +124,7 @@ $(document).ready(function(){initNavTree('lbp_interval_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="lbp_interval_8h.html">lbpInterval.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/lbp_linearization_strats_8cpp.html b/doc/html/lbp_linearization_strats_8cpp.html
index d25dfce518ba964709e9e9d461ed66cc59403ed0..09bbf35261f2a4d7f4ddeb47c86e152b31e30b24 100644
--- a/doc/html/lbp_linearization_strats_8cpp.html
+++ b/doc/html/lbp_linearization_strats_8cpp.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/src/lbpLinearizationStrats.cpp File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/src/lbpLinearizationStrats.cpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,7 +90,7 @@ $(document).ready(function(){initNavTree('lbp_linearization_strats_8cpp.html',''
 <div class="title">lbpLinearizationStrats.cpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="textblock"><code>#include &quot;<a class="el" href="exceptions_8h_source.html">exceptions.h</a>&quot;</code><br />
+<div class="textblock"><code>#include &quot;<a class="el" href="_m_ai_n_g_o_exception_8h_source.html">MAiNGOException.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="lbp_8h_source.html">lbp.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="lbp_dag_obj_8h_source.html">lbpDagObj.h</a>&quot;</code><br />
 <code>#include &lt;algorithm&gt;</code><br />
@@ -102,7 +102,7 @@ $(document).ready(function(){initNavTree('lbp_linearization_strats_8cpp.html',''
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="lbp_linearization_strats_8cpp.html">lbpLinearizationStrats.cpp</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/logger_8cpp.html b/doc/html/logger_8cpp.html
index 2cadb5353674f33343cc9e2faeff75f558823c20..17bd12243bf37a1aa164702cc3a898a75d7b22ce 100644
--- a/doc/html/logger_8cpp.html
+++ b/doc/html/logger_8cpp.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/src/logger.cpp File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/src/logger.cpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -101,7 +101,7 @@ $(document).ready(function(){initNavTree('logger_8cpp.html','');});
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="logger_8cpp.html">logger.cpp</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/logger_8h.html b/doc/html/logger_8h.html
index 308055fc99611c76151569b693d66aad4996cc26..0d724a5a7cdf2fc3894bcdf4e8fd539e639bb858 100644
--- a/doc/html/logger_8h.html
+++ b/doc/html/logger_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/logger.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/logger.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -177,15 +177,14 @@ Enumerations</h2></td></tr>
 &#160;&#160;<a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a59bd95b4e1b3948bf713750d91992bb6">maingo::BAB_PRINTFREQ</a>, 
 <a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a7e7298426588825f3e948fe1e89527d9">maingo::BAB_LOGFREQ</a>, 
 <a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a6717bbec3198ea15d4f818af79374f09">maingo::OUTSTREAMVERBOSITY</a>, 
-<a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a67dd1fb20241b26b7ac93714b8b0aae1">maingo::WRITELOG</a>, 
+<a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5b17de1dc9ac64cce8a5bacab3dc8f5c">maingo::WRITECSV</a>, 
 <br />
-&#160;&#160;<a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5b17de1dc9ac64cce8a5bacab3dc8f5c">maingo::WRITECSV</a>, 
-<a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a20e6a32ee584c3187610f95ea83e1354">maingo::WRITEJSON</a>, 
-<a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ad208395baa4232a0d2e525d3ae4246cc">maingo::WRITERESFILE</a>, 
+&#160;&#160;<a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a20e6a32ee584c3187610f95ea83e1354">maingo::WRITEJSON</a>, 
+<a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a7e60bfc3f9fd67b15a9f9f78d9512d69">maingo::writeResultFile</a>, 
 <a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aaed1ec51d45446a3609dff1a0551116d">maingo::WRITETOLOGSEC</a>, 
+<a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5c772c254a5883d4c978284aa125c432">maingo::PRE_PRINTEVERYLOCALSEARCH</a>, 
 <br />
-&#160;&#160;<a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5c772c254a5883d4c978284aa125c432">maingo::PRE_PRINTEVERYLOCALSEARCH</a>, 
-<a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a70b90d0f834b991c2bdba8a75d240769">maingo::WRITETOOTHERLANGUAGE</a>, 
+&#160;&#160;<a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a70b90d0f834b991c2bdba8a75d240769">maingo::WRITETOOTHERLANGUAGE</a>, 
 <a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a266d2a23dde0c0404e4d261de460fd7f">maingo::UNKNOWN_SETTING</a> = 500
 <br />
  }</td></tr>
@@ -200,7 +199,7 @@ Enumerations</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="logger_8h.html">logger.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/logger_8h.js b/doc/html/logger_8h.js
index f97a8fae22f7c1e483efecce663df54b6d13d3e2..cbb68cafa8c916b23fe7f2c14a8a338fdfd0a57e 100644
--- a/doc/html/logger_8h.js
+++ b/doc/html/logger_8h.js
@@ -49,10 +49,9 @@ var logger_8h =
       [ "BAB_PRINTFREQ", "logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a59bd95b4e1b3948bf713750d91992bb6", null ],
       [ "BAB_LOGFREQ", "logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a7e7298426588825f3e948fe1e89527d9", null ],
       [ "OUTSTREAMVERBOSITY", "logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a6717bbec3198ea15d4f818af79374f09", null ],
-      [ "WRITELOG", "logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a67dd1fb20241b26b7ac93714b8b0aae1", null ],
       [ "WRITECSV", "logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a5b17de1dc9ac64cce8a5bacab3dc8f5c", null ],
       [ "WRITEJSON", "logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a20e6a32ee584c3187610f95ea83e1354", null ],
-      [ "WRITERESFILE", "logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6ad208395baa4232a0d2e525d3ae4246cc", null ],
+      [ "writeResultFile", "logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a7e60bfc3f9fd67b15a9f9f78d9512d69", null ],
       [ "WRITETOLOGSEC", "logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6aaed1ec51d45446a3609dff1a0551116d", null ],
       [ "PRE_PRINTEVERYLOCALSEARCH", "logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a5c772c254a5883d4c978284aa125c432", null ],
       [ "WRITETOOTHERLANGUAGE", "logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a70b90d0f834b991c2bdba8a75d240769", null ],
diff --git a/doc/html/logger_8h_source.html b/doc/html/logger_8h_source.html
index 136d0f59b297b0c69b1266fa4c9495f1643a7e48..39f16454dcba3ef4f11fd60fe995a4d9479c1979 100644
--- a/doc/html/logger_8h_source.html
+++ b/doc/html/logger_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/logger.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/logger.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,95 +90,90 @@ $(document).ready(function(){initNavTree('logger_8h_source.html','');});
 <div class="title">logger.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="logger_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file logger.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File declaring the logger class which manages the printing of output</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *        and writing of files.</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_m_ai_n_g_odebug_8h.html">MAiNGOdebug.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="return_codes_8h.html">returnCodes.h</a>&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="settings_8h.html">settings.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;map&gt;</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;queue&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6">   36</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6">SETTING_NAMES</a> {</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    <span class="comment">// The first name has to be 1 and the names have to be increasing (in numbering)</span></div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a628b6ac17d71d1b9df088ef94f8352f4">   38</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a628b6ac17d71d1b9df088ef94f8352f4">EPSILONA</a> = 1,                </div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5d25a3bfa50688065e53fbdcf97bcde6">   39</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5d25a3bfa50688065e53fbdcf97bcde6">EPSILONR</a>,                    </div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5e89e61d1878cd8ea10a285fc8d32425">   40</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5e89e61d1878cd8ea10a285fc8d32425">DELTAINEQ</a>,                   </div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a673f913685c284a0effb25228a504c66">   41</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a673f913685c284a0effb25228a504c66">DELTAEQ</a>,                     </div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6af57f0eb60e347a76dc189ac87eee0e33">   42</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6af57f0eb60e347a76dc189ac87eee0e33">RELNODETOL</a>,                  </div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a44ea7382567c49c39d5ffbd545b0451c">   43</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a44ea7382567c49c39d5ffbd545b0451c">INFTY</a>,                       </div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6abf15c9e7a4446ee00cf506841ad82431">   44</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6abf15c9e7a4446ee00cf506841ad82431">TARGETLOWERBOUND</a>,            </div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a12187f49acc3a7cd011f182db558c7da">   45</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a12187f49acc3a7cd011f182db558c7da">TARGETUPPERBOUND</a>,            </div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a134280d9eb35c390ef60be88fc3738fe">   46</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a134280d9eb35c390ef60be88fc3738fe">BAB_MAXNODES</a>,                </div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a233937fd6abb242c2de985af49b0e189">   47</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a233937fd6abb242c2de985af49b0e189">BAB_MAXITERATIONS</a>,           </div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ac9045c8153524432b9b2e764104146c9">   48</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ac9045c8153524432b9b2e764104146c9">MAXTIME</a>,                     </div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a77dddf14689e6d132028adfd53e48d7d">   49</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a77dddf14689e6d132028adfd53e48d7d">CONFIRMTERMINATION</a>,          </div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a27fc1b36f1440ec849f01f0a173ec0ff">   50</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a27fc1b36f1440ec849f01f0a173ec0ff">TERMINATEONFEASIBLEPOINT</a>,    </div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6af81a6ea821fd200739e5e21c88f5ce20">   51</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6af81a6ea821fd200739e5e21c88f5ce20">PRE_MAXLOCALSEARCHES</a>,        </div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6acaa3429ee948f690dc11c72c2df7bd26">   52</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6acaa3429ee948f690dc11c72c2df7bd26">PRE_OBBTMAXROUNDS</a>,           </div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ae4d7bcb01c294a5428bbea31972573ec">   53</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ae4d7bcb01c294a5428bbea31972573ec">PRE_PUREMULTISTART</a>,          </div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6add9546d244ac8e1fff4c88197f7484c6">   54</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6add9546d244ac8e1fff4c88197f7484c6">BAB_NODESELECTION</a>,           </div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ab94236640934ada9c055a50cc95c553e">   55</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ab94236640934ada9c055a50cc95c553e">BAB_BRANCHVARIABLE</a>,          </div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ae06499c8dac054bf0e260388982591e2">   56</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ae06499c8dac054bf0e260388982591e2">BAB_ALWAYSSOLVEOBBT</a>,         </div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aff3c4437dc0be83ba5de7ed23ce39018">   57</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aff3c4437dc0be83ba5de7ed23ce39018">BAB_PROBING</a>,                 </div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6af9b9065671390aaf67ee608acde5a29c">   58</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6af9b9065671390aaf67ee608acde5a29c">BAB_DBBT</a>,                    </div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a02538278559c2ce2f2fa3509e2cb1ee0">   59</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a02538278559c2ce2f2fa3509e2cb1ee0">BAB_CONSTRAINTPROPAGATION</a>,   </div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a71bd48756db5177b75b58c18c293de76">   60</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a71bd48756db5177b75b58c18c293de76">LBP_SOLVER</a>,                  </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a3137a2b2e76434c605b08fb9ceb63f91">   61</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a3137a2b2e76434c605b08fb9ceb63f91">LBP_LINPOINTS</a>,               </div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a09a491a6e7f617cd50a7060c552cce4e">   62</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a09a491a6e7f617cd50a7060c552cce4e">LBP_SUBGRADIENTINTERVALS</a>,    </div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ae7c7534e21e3333500fa3f6a834587c8">   63</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ae7c7534e21e3333500fa3f6a834587c8">LBP_OBBTMINIMPROVEMENT</a>,      </div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a89f8c3fb4d69e351baae115325a9e67f">   64</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a89f8c3fb4d69e351baae115325a9e67f">LBP_ACTIVATEMORESCALING</a>,     </div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a6c9981b7a50dafa4510ae5a161f715cd">   65</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a6c9981b7a50dafa4510ae5a161f715cd">LBP_ADDAUXILIARYVARS</a>,        </div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aa871804ddb83a6d0f59637e3ff59c790">   66</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aa871804ddb83a6d0f59637e3ff59c790">LBP_MINFACTORSFORAUX</a>,        </div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a7b55f5d88bcf0f46039de838e04d1732">   67</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a7b55f5d88bcf0f46039de838e04d1732">LBP_MAXNUMBEROFADDEDFACTORS</a>, </div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a11988bdff0ef3a044e9e9991f41a083b">   68</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a11988bdff0ef3a044e9e9991f41a083b">MC_MVCOMPUSE</a>,                </div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aa6b69e8c1aedfe695600afb72576f450">   69</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aa6b69e8c1aedfe695600afb72576f450">MC_MVCOMPTOL</a>,                </div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a51822df94284dbf373c9dfd9cea52c96">   70</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a51822df94284dbf373c9dfd9cea52c96">MC_ENVELTOL</a>,                 </div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a0df2d001081c4bd3b1d9c1cb9101d648">   71</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a0df2d001081c4bd3b1d9c1cb9101d648">UBP_SOLVERPRE</a>,               </div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a17042c71f65219621bd0df75e80122f4">   72</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a17042c71f65219621bd0df75e80122f4">UBP_MAXSTEPSPRE</a>,             </div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a60152ee26df4e219f935ef6dd5a10e43">   73</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a60152ee26df4e219f935ef6dd5a10e43">UBP_MAXTIMEPRE</a>,              </div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a6d522f8c5fdacf5e00e987fc6f49727a">   74</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a6d522f8c5fdacf5e00e987fc6f49727a">UBP_SOLVERBAB</a>,               </div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ae7201e0fb1f4ad05d018c6ecab300ce4">   75</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ae7201e0fb1f4ad05d018c6ecab300ce4">UBP_MAXSTEPSBAB</a>,             </div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a8694b1f3b18e7fc861df9d94b5aced1e">   76</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a8694b1f3b18e7fc861df9d94b5aced1e">UBP_MAXTIMEBAB</a>,              </div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ad3c0e778161ba84f50725b2f95a71173">   77</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ad3c0e778161ba84f50725b2f95a71173">UBP_IGNORENODEBOUNDS</a>,        </div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aa6aeef7e9a764d0d7aa0ce51bccf3fd0">   78</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aa6aeef7e9a764d0d7aa0ce51bccf3fd0">EC_NPOINTS</a>,                  </div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6afce3b85b57cf0619c91b21fc7f85d25f">   79</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6afce3b85b57cf0619c91b21fc7f85d25f">LBP_VERBOSITY</a>,               </div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a8cdec043d63c92ac7a4aaf7be4598f62">   80</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a8cdec043d63c92ac7a4aaf7be4598f62">UBP_VERBOSITY</a>,               </div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aabadb050f3c17bb4bf6ec8d949e9b036">   81</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aabadb050f3c17bb4bf6ec8d949e9b036">BAB_VERBOSITY</a>,               </div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a59bd95b4e1b3948bf713750d91992bb6">   82</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a59bd95b4e1b3948bf713750d91992bb6">BAB_PRINTFREQ</a>,               </div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a7e7298426588825f3e948fe1e89527d9">   83</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a7e7298426588825f3e948fe1e89527d9">BAB_LOGFREQ</a>,                 </div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a6717bbec3198ea15d4f818af79374f09">   84</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a6717bbec3198ea15d4f818af79374f09">OUTSTREAMVERBOSITY</a>,          </div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a67dd1fb20241b26b7ac93714b8b0aae1">   85</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a67dd1fb20241b26b7ac93714b8b0aae1">WRITELOG</a>,                    </div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5b17de1dc9ac64cce8a5bacab3dc8f5c">   86</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5b17de1dc9ac64cce8a5bacab3dc8f5c">WRITECSV</a>,                    </div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a20e6a32ee584c3187610f95ea83e1354">   87</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a20e6a32ee584c3187610f95ea83e1354">WRITEJSON</a>,                   </div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ad208395baa4232a0d2e525d3ae4246cc">   88</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ad208395baa4232a0d2e525d3ae4246cc">WRITERESFILE</a>,                </div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aaed1ec51d45446a3609dff1a0551116d">   89</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aaed1ec51d45446a3609dff1a0551116d">WRITETOLOGSEC</a>,               </div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5c772c254a5883d4c978284aa125c432">   90</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5c772c254a5883d4c978284aa125c432">PRE_PRINTEVERYLOCALSEARCH</a>,   </div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a70b90d0f834b991c2bdba8a75d240769">   91</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a70b90d0f834b991c2bdba8a75d240769">WRITETOOTHERLANGUAGE</a>,        </div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a266d2a23dde0c0404e4d261de460fd7f">   92</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a266d2a23dde0c0404e4d261de460fd7f">UNKNOWN_SETTING</a> = 500        </div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;};</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="classmaingo_1_1_logger.html">  101</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1_logger.html">Logger</a> {</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="classmaingo_1_1_logger.html#a4d8782e6212a58c9ba6bd8f2317669d9">  107</a></span>&#160;    <a class="code" href="classmaingo_1_1_logger.html#a4d8782e6212a58c9ba6bd8f2317669d9">Logger</a>(){};</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    <a class="code" href="classmaingo_1_1_logger.html#a4d8782e6212a58c9ba6bd8f2317669d9">Logger</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1_logger.html">Logger</a>&amp;) = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    <a class="code" href="classmaingo_1_1_logger.html">Logger</a>&amp; <a class="code" href="classmaingo_1_1_logger.html#a82f7d5b5cb8e33d894f7e17e38d6dbcd">operator=</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1_logger.html">Logger</a>&amp;) = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="classmaingo_1_1_logger.html#a31cae103ef08470e0db45f01c0360eed">  122</a></span>&#160;    <a class="code" href="classmaingo_1_1_logger.html#a31cae103ef08470e0db45f01c0360eed">~Logger</a>() {}</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_logger.html#a85ebbae4b7d372e8ee4fc6df802d9621">print_message</a>(<span class="keyword">const</span> std::string&amp; message, <span class="keywordtype">bool</span> writeLog, <a class="code" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a> verbosityGiven, <a class="code" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a> verbosityNeeded, <a class="code" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0">OUTSTREAM_VERB</a> givenOutstreamVerbosity);</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_logger.html#a60d49f911f24c66da289da2dbccc35e2">print_message_to_stream_only</a>(<span class="keyword">const</span> std::string&amp; message, <a class="code" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0">OUTSTREAM_VERB</a> givenOutstreamVerbosity);</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_logger.html#ab4c18700b160cbe53b4e59069e7fcedd">set_output_stream</a>(std::ostream* outputStream);</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_logger.html#aa6c83f95144d085092f854d64b9c1e2f">create_log_file</a>(<span class="keywordtype">bool</span> writeLog, <a class="code" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0">OUTSTREAM_VERB</a> givenOutstreamVerbosity);</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_logger.html#a5776c77c4580d822350dc88225e46061">create_csv_files</a>(<span class="keywordtype">bool</span> pureMultistart, <span class="keywordtype">bool</span> printEveryLocalSearch, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> maxLocalSearches, <span class="keyword">const</span> std::vector&lt;double&gt;&amp; objectivesAtRoot, <span class="keyword">const</span> std::vector&lt;SUBSOLVER_RETCODE&gt;&amp; feasibleAtRoot);</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_logger.html#ab4926dc6a379823a0ece98e30f6a384f">create_json_file</a>(<span class="keywordtype">bool</span> writeJson, <a class="code" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0">OUTSTREAM_VERB</a> givenOutstreamVerbosity);</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_logger.html#a99d59c1e627c16bfa155803f42cf28e7">write_all_lines_to_log</a>(<span class="keyword">const</span> std::string&amp; errmsg = <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_logger.html#aa557a6ff14dbd38ab4b251c56caa0f37">write_all_iterations_to_csv</a>(<span class="keyword">const</span> std::string&amp; errmsg = <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_logger.html#accfbe2523be1fb7e14f30fd9b4c5031a">save_settings_file_name</a>(<span class="keyword">const</span> std::string&amp; fileName, <span class="keywordtype">bool</span> fileFound);</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_logger.html#ab14611926d783106de661c1c7221f5c3">save_setting</a>(<a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6">SETTING_NAMES</a> settingName, <span class="keyword">const</span> std::string&amp; str);</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_logger.html#af4fdb40b8636eff018c56e45c293de7f">print_settings</a>(<span class="keywordtype">bool</span> writeLog, <a class="code" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a> verbosityGiven, <a class="code" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a> verbosityNeeded, <a class="code" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0">OUTSTREAM_VERB</a> givenOutstreamVerbosity);</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_logger.html#ad63939a5c0535c5abb8e59024b0ca6d4">clear</a>();</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="classmaingo_1_1_logger.html#aaf1b5259ea1e3d17206119d0e8a99d53">  226</a></span>&#160;    std::queue&lt;std::string&gt; <a class="code" href="classmaingo_1_1_logger.html#aaf1b5259ea1e3d17206119d0e8a99d53">babLine</a>;    </div><div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="classmaingo_1_1_logger.html#a4771db34565c3321a819fceb53b4fc76">  227</a></span>&#160;    std::queue&lt;std::string&gt; <a class="code" href="classmaingo_1_1_logger.html#a4771db34565c3321a819fceb53b4fc76">babLineCsv</a>; </div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="classmaingo_1_1_logger.html#a70f564ada7c6d7167bfc908096476996">  228</a></span>&#160;    std::string <a class="code" href="classmaingo_1_1_logger.html#a70f564ada7c6d7167bfc908096476996">logFileName</a>;            </div><div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="classmaingo_1_1_logger.html#a09a06a9baaf4765d8af2d9baea602962">  229</a></span>&#160;    std::string <a class="code" href="classmaingo_1_1_logger.html#a09a06a9baaf4765d8af2d9baea602962">resFileName</a>;            </div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="classmaingo_1_1_logger.html#a11f3a05f451f1d7f6f52081b971b5724">  230</a></span>&#160;    std::string <a class="code" href="classmaingo_1_1_logger.html#a11f3a05f451f1d7f6f52081b971b5724">csvIterationsName</a>;      </div><div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="classmaingo_1_1_logger.html#a36f4bdb8cdcf58504dc06abd6d4e6725">  231</a></span>&#160;    std::string <a class="code" href="classmaingo_1_1_logger.html#a36f4bdb8cdcf58504dc06abd6d4e6725">csvGeneralName</a>;         </div><div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="classmaingo_1_1_logger.html#a55590e7a2d77ea9fd85512b17f02bffa">  232</a></span>&#160;    std::string <a class="code" href="classmaingo_1_1_logger.html#a55590e7a2d77ea9fd85512b17f02bffa">jsonFileName</a>;           </div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="classmaingo_1_1_logger.html#ae51c685a73d7e4e84c5eb69a1c720829">  233</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1_logger.html#ae51c685a73d7e4e84c5eb69a1c720829">reachedMinNodeSize</a>;            </div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="classmaingo_1_1_logger.html#a19b41b5d24dd8694b51ff0caaf56a0b4">  241</a></span>&#160;    std::ostream* <a class="code" href="classmaingo_1_1_logger.html#a19b41b5d24dd8694b51ff0caaf56a0b4">_outStream</a>    = &amp;std::cout;    </div><div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="classmaingo_1_1_logger.html#a60676efa35ed66a5c90d10412698fc81">  242</a></span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classmaingo_1_1_logger.html#a60676efa35ed66a5c90d10412698fc81">_nSettingFiles</a> = 0;             </div><div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="classmaingo_1_1_logger.html#ab9bc94904f592f8dad7532e140fe9394">  243</a></span>&#160;    std::map&lt;int, std::string&gt; <a class="code" href="classmaingo_1_1_logger.html#ab9bc94904f592f8dad7532e140fe9394">_userSetSettings</a>; </div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;};    <span class="comment">// end of class Logger</span></div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a5e89e61d1878cd8ea10a285fc8d32425"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5e89e61d1878cd8ea10a285fc8d32425">maingo::DELTAINEQ</a></div><div class="ttdef"><b>Definition:</b> logger.h:40</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html_a19b41b5d24dd8694b51ff0caaf56a0b4"><div class="ttname"><a href="classmaingo_1_1_logger.html#a19b41b5d24dd8694b51ff0caaf56a0b4">maingo::Logger::_outStream</a></div><div class="ttdeci">std::ostream * _outStream</div><div class="ttdef"><b>Definition:</b> logger.h:241</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a5b17de1dc9ac64cce8a5bacab3dc8f5c"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5b17de1dc9ac64cce8a5bacab3dc8f5c">maingo::WRITECSV</a></div><div class="ttdef"><b>Definition:</b> logger.h:86</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6aa6aeef7e9a764d0d7aa0ce51bccf3fd0"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aa6aeef7e9a764d0d7aa0ce51bccf3fd0">maingo::EC_NPOINTS</a></div><div class="ttdef"><b>Definition:</b> logger.h:78</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html_accfbe2523be1fb7e14f30fd9b4c5031a"><div class="ttname"><a href="classmaingo_1_1_logger.html#accfbe2523be1fb7e14f30fd9b4c5031a">maingo::Logger::save_settings_file_name</a></div><div class="ttdeci">void save_settings_file_name(const std::string &amp;fileName, bool fileFound)</div><div class="ttdoc">Function used for saving the names of setting files set by the user.</div><div class="ttdef"><b>Definition:</b> logger.cpp:187</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6ae7c7534e21e3333500fa3f6a834587c8"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ae7c7534e21e3333500fa3f6a834587c8">maingo::LBP_OBBTMINIMPROVEMENT</a></div><div class="ttdef"><b>Definition:</b> logger.h:63</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html_ae51c685a73d7e4e84c5eb69a1c720829"><div class="ttname"><a href="classmaingo_1_1_logger.html#ae51c685a73d7e4e84c5eb69a1c720829">maingo::Logger::reachedMinNodeSize</a></div><div class="ttdeci">bool reachedMinNodeSize</div><div class="ttdef"><b>Definition:</b> logger.h:233</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html_aaf1b5259ea1e3d17206119d0e8a99d53"><div class="ttname"><a href="classmaingo_1_1_logger.html#aaf1b5259ea1e3d17206119d0e8a99d53">maingo::Logger::babLine</a></div><div class="ttdeci">std::queue&lt; std::string &gt; babLine</div><div class="ttdef"><b>Definition:</b> logger.h:226</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html_a36f4bdb8cdcf58504dc06abd6d4e6725"><div class="ttname"><a href="classmaingo_1_1_logger.html#a36f4bdb8cdcf58504dc06abd6d4e6725">maingo::Logger::csvGeneralName</a></div><div class="ttdeci">std::string csvGeneralName</div><div class="ttdef"><b>Definition:</b> logger.h:231</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a02538278559c2ce2f2fa3509e2cb1ee0"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a02538278559c2ce2f2fa3509e2cb1ee0">maingo::BAB_CONSTRAINTPROPAGATION</a></div><div class="ttdef"><b>Definition:</b> logger.h:59</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6ab94236640934ada9c055a50cc95c553e"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ab94236640934ada9c055a50cc95c553e">maingo::BAB_BRANCHVARIABLE</a></div><div class="ttdef"><b>Definition:</b> logger.h:55</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html_a70f564ada7c6d7167bfc908096476996"><div class="ttname"><a href="classmaingo_1_1_logger.html#a70f564ada7c6d7167bfc908096476996">maingo::Logger::logFileName</a></div><div class="ttdeci">std::string logFileName</div><div class="ttdef"><b>Definition:</b> logger.h:228</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6aa6b69e8c1aedfe695600afb72576f450"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aa6b69e8c1aedfe695600afb72576f450">maingo::MC_MVCOMPTOL</a></div><div class="ttdef"><b>Definition:</b> logger.h:69</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a134280d9eb35c390ef60be88fc3738fe"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a134280d9eb35c390ef60be88fc3738fe">maingo::BAB_MAXNODES</a></div><div class="ttdef"><b>Definition:</b> logger.h:46</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a70b90d0f834b991c2bdba8a75d240769"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a70b90d0f834b991c2bdba8a75d240769">maingo::WRITETOOTHERLANGUAGE</a></div><div class="ttdef"><b>Definition:</b> logger.h:91</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a5d25a3bfa50688065e53fbdcf97bcde6"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5d25a3bfa50688065e53fbdcf97bcde6">maingo::EPSILONR</a></div><div class="ttdef"><b>Definition:</b> logger.h:39</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6af9b9065671390aaf67ee608acde5a29c"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6af9b9065671390aaf67ee608acde5a29c">maingo::BAB_DBBT</a></div><div class="ttdef"><b>Definition:</b> logger.h:58</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a6d522f8c5fdacf5e00e987fc6f49727a"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a6d522f8c5fdacf5e00e987fc6f49727a">maingo::UBP_SOLVERBAB</a></div><div class="ttdef"><b>Definition:</b> logger.h:74</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6af57f0eb60e347a76dc189ac87eee0e33"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6af57f0eb60e347a76dc189ac87eee0e33">maingo::RELNODETOL</a></div><div class="ttdef"><b>Definition:</b> logger.h:42</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html_ab9bc94904f592f8dad7532e140fe9394"><div class="ttname"><a href="classmaingo_1_1_logger.html#ab9bc94904f592f8dad7532e140fe9394">maingo::Logger::_userSetSettings</a></div><div class="ttdeci">std::map&lt; int, std::string &gt; _userSetSettings</div><div class="ttdef"><b>Definition:</b> logger.h:243</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html_ab14611926d783106de661c1c7221f5c3"><div class="ttname"><a href="classmaingo_1_1_logger.html#ab14611926d783106de661c1c7221f5c3">maingo::Logger::save_setting</a></div><div class="ttdeci">void save_setting(SETTING_NAMES settingName, const std::string &amp;str)</div><div class="ttdoc">Function used for saving the user-set settings.</div><div class="ttdef"><b>Definition:</b> logger.cpp:210</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a71bd48756db5177b75b58c18c293de76"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a71bd48756db5177b75b58c18c293de76">maingo::LBP_SOLVER</a></div><div class="ttdef"><b>Definition:</b> logger.h:60</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html_a4d8782e6212a58c9ba6bd8f2317669d9"><div class="ttname"><a href="classmaingo_1_1_logger.html#a4d8782e6212a58c9ba6bd8f2317669d9">maingo::Logger::Logger</a></div><div class="ttdeci">Logger()</div><div class="ttdoc">Default constructor.</div><div class="ttdef"><b>Definition:</b> logger.h:107</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a233937fd6abb242c2de985af49b0e189"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a233937fd6abb242c2de985af49b0e189">maingo::BAB_MAXITERATIONS</a></div><div class="ttdef"><b>Definition:</b> logger.h:47</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a77dddf14689e6d132028adfd53e48d7d"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a77dddf14689e6d132028adfd53e48d7d">maingo::CONFIRMTERMINATION</a></div><div class="ttdef"><b>Definition:</b> logger.h:49</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6add9546d244ac8e1fff4c88197f7484c6"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6add9546d244ac8e1fff4c88197f7484c6">maingo::BAB_NODESELECTION</a></div><div class="ttdef"><b>Definition:</b> logger.h:54</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6aff3c4437dc0be83ba5de7ed23ce39018"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aff3c4437dc0be83ba5de7ed23ce39018">maingo::BAB_PROBING</a></div><div class="ttdef"><b>Definition:</b> logger.h:57</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6">maingo::SETTING_NAMES</a></div><div class="ttdeci">SETTING_NAMES</div><div class="ttdoc">Enum for representing the setting names and making the tracking of set settings easier.</div><div class="ttdef"><b>Definition:</b> logger.h:36</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html_a99d59c1e627c16bfa155803f42cf28e7"><div class="ttname"><a href="classmaingo_1_1_logger.html#a99d59c1e627c16bfa155803f42cf28e7">maingo::Logger::write_all_lines_to_log</a></div><div class="ttdeci">void write_all_lines_to_log(const std::string &amp;errmsg=&quot;&quot;)</div><div class="ttdoc">Function used for writing all lines stored in queue babLine to log with name logFileName.</div><div class="ttdef"><b>Definition:</b> logger.cpp:151</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html_a55590e7a2d77ea9fd85512b17f02bffa"><div class="ttname"><a href="classmaingo_1_1_logger.html#a55590e7a2d77ea9fd85512b17f02bffa">maingo::Logger::jsonFileName</a></div><div class="ttdeci">std::string jsonFileName</div><div class="ttdef"><b>Definition:</b> logger.h:232</div></div>
-<div class="ttc" id="namespacemaingo_html_a3d9300c6853caaf91b0afc24d3dd1ae0"><div class="ttname"><a href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0">maingo::OUTSTREAM_VERB</a></div><div class="ttdeci">OUTSTREAM_VERB</div><div class="ttdoc">Enum for controlling the output and writing level of MAiNGO (i.e., where should the output be written...</div><div class="ttdef"><b>Definition:</b> settings.h:44</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html_a4771db34565c3321a819fceb53b4fc76"><div class="ttname"><a href="classmaingo_1_1_logger.html#a4771db34565c3321a819fceb53b4fc76">maingo::Logger::babLineCsv</a></div><div class="ttdeci">std::queue&lt; std::string &gt; babLineCsv</div><div class="ttdef"><b>Definition:</b> logger.h:227</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html_a60676efa35ed66a5c90d10412698fc81"><div class="ttname"><a href="classmaingo_1_1_logger.html#a60676efa35ed66a5c90d10412698fc81">maingo::Logger::_nSettingFiles</a></div><div class="ttdeci">unsigned int _nSettingFiles</div><div class="ttdef"><b>Definition:</b> logger.h:242</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a27fc1b36f1440ec849f01f0a173ec0ff"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a27fc1b36f1440ec849f01f0a173ec0ff">maingo::TERMINATEONFEASIBLEPOINT</a></div><div class="ttdef"><b>Definition:</b> logger.h:50</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6ae4d7bcb01c294a5428bbea31972573ec"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ae4d7bcb01c294a5428bbea31972573ec">maingo::PRE_PUREMULTISTART</a></div><div class="ttdef"><b>Definition:</b> logger.h:53</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html"><div class="ttname"><a href="classmaingo_1_1_logger.html">maingo::Logger</a></div><div class="ttdoc">This class contains all logging and output information.</div><div class="ttdef"><b>Definition:</b> logger.h:101</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a673f913685c284a0effb25228a504c66"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a673f913685c284a0effb25228a504c66">maingo::DELTAEQ</a></div><div class="ttdef"><b>Definition:</b> logger.h:41</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a59bd95b4e1b3948bf713750d91992bb6"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a59bd95b4e1b3948bf713750d91992bb6">maingo::BAB_PRINTFREQ</a></div><div class="ttdef"><b>Definition:</b> logger.h:82</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a628b6ac17d71d1b9df088ef94f8352f4"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a628b6ac17d71d1b9df088ef94f8352f4">maingo::EPSILONA</a></div><div class="ttdef"><b>Definition:</b> logger.h:38</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6aaed1ec51d45446a3609dff1a0551116d"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aaed1ec51d45446a3609dff1a0551116d">maingo::WRITETOLOGSEC</a></div><div class="ttdef"><b>Definition:</b> logger.h:89</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6acaa3429ee948f690dc11c72c2df7bd26"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6acaa3429ee948f690dc11c72c2df7bd26">maingo::PRE_OBBTMAXROUNDS</a></div><div class="ttdef"><b>Definition:</b> logger.h:52</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6aa871804ddb83a6d0f59637e3ff59c790"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aa871804ddb83a6d0f59637e3ff59c790">maingo::LBP_MINFACTORSFORAUX</a></div><div class="ttdef"><b>Definition:</b> logger.h:66</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a6717bbec3198ea15d4f818af79374f09"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a6717bbec3198ea15d4f818af79374f09">maingo::OUTSTREAMVERBOSITY</a></div><div class="ttdef"><b>Definition:</b> logger.h:84</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a12187f49acc3a7cd011f182db558c7da"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a12187f49acc3a7cd011f182db558c7da">maingo::TARGETUPPERBOUND</a></div><div class="ttdef"><b>Definition:</b> logger.h:45</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html_a11f3a05f451f1d7f6f52081b971b5724"><div class="ttname"><a href="classmaingo_1_1_logger.html#a11f3a05f451f1d7f6f52081b971b5724">maingo::Logger::csvIterationsName</a></div><div class="ttdeci">std::string csvIterationsName</div><div class="ttdef"><b>Definition:</b> logger.h:230</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a89f8c3fb4d69e351baae115325a9e67f"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a89f8c3fb4d69e351baae115325a9e67f">maingo::LBP_ACTIVATEMORESCALING</a></div><div class="ttdef"><b>Definition:</b> logger.h:64</div></div>
+<a href="logger_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_m_ai_n_g_odebug_8h.html">MAiNGOdebug.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="return_codes_8h.html">returnCodes.h</a>&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="settings_8h.html">settings.h</a>&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &lt;map&gt;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &lt;queue&gt;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6">   31</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6">SETTING_NAMES</a> {</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    <span class="comment">// The first name has to be 1 and the names have to be increasing (in numbering)</span></div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a628b6ac17d71d1b9df088ef94f8352f4">   33</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a628b6ac17d71d1b9df088ef94f8352f4">EPSILONA</a> = 1,                </div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5d25a3bfa50688065e53fbdcf97bcde6">   34</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5d25a3bfa50688065e53fbdcf97bcde6">EPSILONR</a>,                    </div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5e89e61d1878cd8ea10a285fc8d32425">   35</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5e89e61d1878cd8ea10a285fc8d32425">DELTAINEQ</a>,                   </div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a673f913685c284a0effb25228a504c66">   36</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a673f913685c284a0effb25228a504c66">DELTAEQ</a>,                     </div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6af57f0eb60e347a76dc189ac87eee0e33">   37</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6af57f0eb60e347a76dc189ac87eee0e33">RELNODETOL</a>,                  </div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a44ea7382567c49c39d5ffbd545b0451c">   38</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a44ea7382567c49c39d5ffbd545b0451c">INFTY</a>,                       </div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6abf15c9e7a4446ee00cf506841ad82431">   39</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6abf15c9e7a4446ee00cf506841ad82431">TARGETLOWERBOUND</a>,            </div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a12187f49acc3a7cd011f182db558c7da">   40</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a12187f49acc3a7cd011f182db558c7da">TARGETUPPERBOUND</a>,            </div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a134280d9eb35c390ef60be88fc3738fe">   41</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a134280d9eb35c390ef60be88fc3738fe">BAB_MAXNODES</a>,                </div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a233937fd6abb242c2de985af49b0e189">   42</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a233937fd6abb242c2de985af49b0e189">BAB_MAXITERATIONS</a>,           </div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ac9045c8153524432b9b2e764104146c9">   43</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ac9045c8153524432b9b2e764104146c9">MAXTIME</a>,                     </div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a77dddf14689e6d132028adfd53e48d7d">   44</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a77dddf14689e6d132028adfd53e48d7d">CONFIRMTERMINATION</a>,          </div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a27fc1b36f1440ec849f01f0a173ec0ff">   45</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a27fc1b36f1440ec849f01f0a173ec0ff">TERMINATEONFEASIBLEPOINT</a>,    </div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6af81a6ea821fd200739e5e21c88f5ce20">   46</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6af81a6ea821fd200739e5e21c88f5ce20">PRE_MAXLOCALSEARCHES</a>,        </div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6acaa3429ee948f690dc11c72c2df7bd26">   47</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6acaa3429ee948f690dc11c72c2df7bd26">PRE_OBBTMAXROUNDS</a>,           </div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ae4d7bcb01c294a5428bbea31972573ec">   48</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ae4d7bcb01c294a5428bbea31972573ec">PRE_PUREMULTISTART</a>,          </div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6add9546d244ac8e1fff4c88197f7484c6">   49</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6add9546d244ac8e1fff4c88197f7484c6">BAB_NODESELECTION</a>,           </div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ab94236640934ada9c055a50cc95c553e">   50</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ab94236640934ada9c055a50cc95c553e">BAB_BRANCHVARIABLE</a>,          </div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ae06499c8dac054bf0e260388982591e2">   51</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ae06499c8dac054bf0e260388982591e2">BAB_ALWAYSSOLVEOBBT</a>,         </div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aff3c4437dc0be83ba5de7ed23ce39018">   52</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aff3c4437dc0be83ba5de7ed23ce39018">BAB_PROBING</a>,                 </div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6af9b9065671390aaf67ee608acde5a29c">   53</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6af9b9065671390aaf67ee608acde5a29c">BAB_DBBT</a>,                    </div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a02538278559c2ce2f2fa3509e2cb1ee0">   54</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a02538278559c2ce2f2fa3509e2cb1ee0">BAB_CONSTRAINTPROPAGATION</a>,   </div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a71bd48756db5177b75b58c18c293de76">   55</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a71bd48756db5177b75b58c18c293de76">LBP_SOLVER</a>,                  </div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a3137a2b2e76434c605b08fb9ceb63f91">   56</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a3137a2b2e76434c605b08fb9ceb63f91">LBP_LINPOINTS</a>,               </div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a09a491a6e7f617cd50a7060c552cce4e">   57</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a09a491a6e7f617cd50a7060c552cce4e">LBP_SUBGRADIENTINTERVALS</a>,    </div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ae7c7534e21e3333500fa3f6a834587c8">   58</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ae7c7534e21e3333500fa3f6a834587c8">LBP_OBBTMINIMPROVEMENT</a>,      </div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a89f8c3fb4d69e351baae115325a9e67f">   59</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a89f8c3fb4d69e351baae115325a9e67f">LBP_ACTIVATEMORESCALING</a>,     </div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a6c9981b7a50dafa4510ae5a161f715cd">   60</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a6c9981b7a50dafa4510ae5a161f715cd">LBP_ADDAUXILIARYVARS</a>,        </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aa871804ddb83a6d0f59637e3ff59c790">   61</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aa871804ddb83a6d0f59637e3ff59c790">LBP_MINFACTORSFORAUX</a>,        </div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a7b55f5d88bcf0f46039de838e04d1732">   62</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a7b55f5d88bcf0f46039de838e04d1732">LBP_MAXNUMBEROFADDEDFACTORS</a>, </div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a11988bdff0ef3a044e9e9991f41a083b">   63</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a11988bdff0ef3a044e9e9991f41a083b">MC_MVCOMPUSE</a>,                </div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aa6b69e8c1aedfe695600afb72576f450">   64</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aa6b69e8c1aedfe695600afb72576f450">MC_MVCOMPTOL</a>,                </div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a51822df94284dbf373c9dfd9cea52c96">   65</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a51822df94284dbf373c9dfd9cea52c96">MC_ENVELTOL</a>,                 </div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a0df2d001081c4bd3b1d9c1cb9101d648">   66</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a0df2d001081c4bd3b1d9c1cb9101d648">UBP_SOLVERPRE</a>,               </div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a17042c71f65219621bd0df75e80122f4">   67</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a17042c71f65219621bd0df75e80122f4">UBP_MAXSTEPSPRE</a>,             </div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a60152ee26df4e219f935ef6dd5a10e43">   68</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a60152ee26df4e219f935ef6dd5a10e43">UBP_MAXTIMEPRE</a>,              </div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a6d522f8c5fdacf5e00e987fc6f49727a">   69</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a6d522f8c5fdacf5e00e987fc6f49727a">UBP_SOLVERBAB</a>,               </div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ae7201e0fb1f4ad05d018c6ecab300ce4">   70</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ae7201e0fb1f4ad05d018c6ecab300ce4">UBP_MAXSTEPSBAB</a>,             </div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a8694b1f3b18e7fc861df9d94b5aced1e">   71</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a8694b1f3b18e7fc861df9d94b5aced1e">UBP_MAXTIMEBAB</a>,              </div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ad3c0e778161ba84f50725b2f95a71173">   72</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ad3c0e778161ba84f50725b2f95a71173">UBP_IGNORENODEBOUNDS</a>,        </div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aa6aeef7e9a764d0d7aa0ce51bccf3fd0">   73</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aa6aeef7e9a764d0d7aa0ce51bccf3fd0">EC_NPOINTS</a>,                  </div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6afce3b85b57cf0619c91b21fc7f85d25f">   74</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6afce3b85b57cf0619c91b21fc7f85d25f">LBP_VERBOSITY</a>,               </div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a8cdec043d63c92ac7a4aaf7be4598f62">   75</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a8cdec043d63c92ac7a4aaf7be4598f62">UBP_VERBOSITY</a>,               </div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aabadb050f3c17bb4bf6ec8d949e9b036">   76</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aabadb050f3c17bb4bf6ec8d949e9b036">BAB_VERBOSITY</a>,               </div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a59bd95b4e1b3948bf713750d91992bb6">   77</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a59bd95b4e1b3948bf713750d91992bb6">BAB_PRINTFREQ</a>,               </div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a7e7298426588825f3e948fe1e89527d9">   78</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a7e7298426588825f3e948fe1e89527d9">BAB_LOGFREQ</a>,                 </div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a6717bbec3198ea15d4f818af79374f09">   79</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a6717bbec3198ea15d4f818af79374f09">OUTSTREAMVERBOSITY</a>,          </div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5b17de1dc9ac64cce8a5bacab3dc8f5c">   80</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5b17de1dc9ac64cce8a5bacab3dc8f5c">WRITECSV</a>,                    </div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a20e6a32ee584c3187610f95ea83e1354">   81</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a20e6a32ee584c3187610f95ea83e1354">WRITEJSON</a>,                   </div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a7e60bfc3f9fd67b15a9f9f78d9512d69">   82</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a7e60bfc3f9fd67b15a9f9f78d9512d69">writeResultFile</a>,             </div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aaed1ec51d45446a3609dff1a0551116d">   83</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aaed1ec51d45446a3609dff1a0551116d">WRITETOLOGSEC</a>,               </div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5c772c254a5883d4c978284aa125c432">   84</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5c772c254a5883d4c978284aa125c432">PRE_PRINTEVERYLOCALSEARCH</a>,   </div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a70b90d0f834b991c2bdba8a75d240769">   85</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a70b90d0f834b991c2bdba8a75d240769">WRITETOOTHERLANGUAGE</a>,        </div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a266d2a23dde0c0404e4d261de460fd7f">   86</a></span>&#160;    <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a266d2a23dde0c0404e4d261de460fd7f">UNKNOWN_SETTING</a> = 500        </div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;};</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classmaingo_1_1_logger.html">   95</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1_logger.html">Logger</a> {</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="classmaingo_1_1_logger.html#a4d8782e6212a58c9ba6bd8f2317669d9">  101</a></span>&#160;    <a class="code" href="classmaingo_1_1_logger.html#a4d8782e6212a58c9ba6bd8f2317669d9">Logger</a>(){};</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    <a class="code" href="classmaingo_1_1_logger.html#a4d8782e6212a58c9ba6bd8f2317669d9">Logger</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1_logger.html">Logger</a>&amp;) = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    <a class="code" href="classmaingo_1_1_logger.html">Logger</a>&amp; <a class="code" href="classmaingo_1_1_logger.html#a82f7d5b5cb8e33d894f7e17e38d6dbcd">operator=</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1_logger.html">Logger</a>&amp;) = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="classmaingo_1_1_logger.html#a31cae103ef08470e0db45f01c0360eed">  116</a></span>&#160;    <a class="code" href="classmaingo_1_1_logger.html#a31cae103ef08470e0db45f01c0360eed">~Logger</a>() {}</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_logger.html#afaa00650854698ce5bbde8fee9db7e0e">print_message</a>(<span class="keyword">const</span> std::string&amp; message, <span class="keyword">const</span> <a class="code" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a> verbosityGiven, <span class="keyword">const</span> <a class="code" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a> verbosityNeeded, <span class="keyword">const</span> <a class="code" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4">LOGGING_DESTINATION</a> givenOutstreamVerbosity);</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_logger.html#a0df484648655184edbbd4bcb6531558f">print_message_to_stream_only</a>(<span class="keyword">const</span> std::string&amp; message, <span class="keyword">const</span> <a class="code" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4">LOGGING_DESTINATION</a> givenOutstreamVerbosity);</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_logger.html#ae5cb965f581d2940eea1730a5e7a1f06">set_output_stream</a>(std::ostream* <span class="keyword">const</span> outputStream);</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_logger.html#af67b92595cd069c402df9a448cd784a3">create_log_file</a>(<span class="keyword">const</span> <a class="code" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4">LOGGING_DESTINATION</a> givenOutstreamVerbosity);</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_logger.html#a168a8239c87de32a540c9fdcb6a54ff7">create_iterations_csv_file</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> writeCsv);</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_logger.html#a3134c2ef11ad7c45c3c8467421966021">write_all_lines_to_log</a>(<span class="keyword">const</span> std::string&amp; errorMessage = <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_logger.html#a17570df4a0a318ddf4e186a4fc66f476">write_all_iterations_to_csv</a>();</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_logger.html#af1f4a383ab2f26319ae4da895d30aa2d">save_settings_file_name</a>(<span class="keyword">const</span> std::string&amp; fileName, <span class="keyword">const</span> <span class="keywordtype">bool</span> fileFound);</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_logger.html#a69e487a988a594016c12a7c919570f04">save_setting</a>(<span class="keyword">const</span> <a class="code" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6">SETTING_NAMES</a> settingName, <span class="keyword">const</span> std::string&amp; str);</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_logger.html#a1397947c86bde896214c7b77d4be6517">print_settings</a>(<span class="keyword">const</span> <a class="code" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a> verbosityGiven, <span class="keyword">const</span> <a class="code" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a> verbosityNeeded, <span class="keyword">const</span> <a class="code" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4">LOGGING_DESTINATION</a> givenOutstreamVerbosity);</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_logger.html#ad63939a5c0535c5abb8e59024b0ca6d4">clear</a>();</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="classmaingo_1_1_logger.html#aaf1b5259ea1e3d17206119d0e8a99d53">  203</a></span>&#160;    std::queue&lt;std::string&gt; <a class="code" href="classmaingo_1_1_logger.html#aaf1b5259ea1e3d17206119d0e8a99d53">babLine</a>{};                </div><div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="classmaingo_1_1_logger.html#a4771db34565c3321a819fceb53b4fc76">  204</a></span>&#160;    std::queue&lt;std::string&gt; <a class="code" href="classmaingo_1_1_logger.html#a4771db34565c3321a819fceb53b4fc76">babLineCsv</a>{};             </div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="classmaingo_1_1_logger.html#a70f564ada7c6d7167bfc908096476996">  205</a></span>&#160;    std::string <a class="code" href="classmaingo_1_1_logger.html#a70f564ada7c6d7167bfc908096476996">logFileName</a>       = <span class="stringliteral">&quot;maingo.log&quot;</span>;     </div><div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="classmaingo_1_1_logger.html#a11f3a05f451f1d7f6f52081b971b5724">  206</a></span>&#160;    std::string <a class="code" href="classmaingo_1_1_logger.html#a11f3a05f451f1d7f6f52081b971b5724">csvIterationsName</a> = <span class="stringliteral">&quot;iterations.csv&quot;</span>; </div><div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="classmaingo_1_1_logger.html#ae51c685a73d7e4e84c5eb69a1c720829">  207</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classmaingo_1_1_logger.html#ae51c685a73d7e4e84c5eb69a1c720829">reachedMinNodeSize</a>;                          </div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="classmaingo_1_1_logger.html#a19b41b5d24dd8694b51ff0caaf56a0b4">  215</a></span>&#160;    std::ostream* <a class="code" href="classmaingo_1_1_logger.html#a19b41b5d24dd8694b51ff0caaf56a0b4">_outStream</a>    = &amp;std::cout;    </div><div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="classmaingo_1_1_logger.html#a60676efa35ed66a5c90d10412698fc81">  216</a></span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classmaingo_1_1_logger.html#a60676efa35ed66a5c90d10412698fc81">_nSettingFiles</a> = 0;             </div><div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="classmaingo_1_1_logger.html#ab9bc94904f592f8dad7532e140fe9394">  217</a></span>&#160;    std::map&lt;int, std::string&gt; <a class="code" href="classmaingo_1_1_logger.html#ab9bc94904f592f8dad7532e140fe9394">_userSetSettings</a>; </div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;};    <span class="comment">// end of class Logger</span></div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="namespacemaingo_html_aed64ab21c095ed6882ea61128addd7a4"><div class="ttname"><a href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4">maingo::LOGGING_DESTINATION</a></div><div class="ttdeci">LOGGING_DESTINATION</div><div class="ttdoc">Enum for controlling where logging information of MAiNGO should be written. </div><div class="ttdef"><b>Definition:</b> settings.h:38</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a5e89e61d1878cd8ea10a285fc8d32425"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5e89e61d1878cd8ea10a285fc8d32425">maingo::DELTAINEQ</a></div><div class="ttdef"><b>Definition:</b> logger.h:35</div></div>
+<div class="ttc" id="classmaingo_1_1_logger_html_a19b41b5d24dd8694b51ff0caaf56a0b4"><div class="ttname"><a href="classmaingo_1_1_logger.html#a19b41b5d24dd8694b51ff0caaf56a0b4">maingo::Logger::_outStream</a></div><div class="ttdeci">std::ostream * _outStream</div><div class="ttdef"><b>Definition:</b> logger.h:215</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a5b17de1dc9ac64cce8a5bacab3dc8f5c"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5b17de1dc9ac64cce8a5bacab3dc8f5c">maingo::WRITECSV</a></div><div class="ttdef"><b>Definition:</b> logger.h:80</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6aa6aeef7e9a764d0d7aa0ce51bccf3fd0"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aa6aeef7e9a764d0d7aa0ce51bccf3fd0">maingo::EC_NPOINTS</a></div><div class="ttdef"><b>Definition:</b> logger.h:73</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6ae7c7534e21e3333500fa3f6a834587c8"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ae7c7534e21e3333500fa3f6a834587c8">maingo::LBP_OBBTMINIMPROVEMENT</a></div><div class="ttdef"><b>Definition:</b> logger.h:58</div></div>
+<div class="ttc" id="classmaingo_1_1_logger_html_ae51c685a73d7e4e84c5eb69a1c720829"><div class="ttname"><a href="classmaingo_1_1_logger.html#ae51c685a73d7e4e84c5eb69a1c720829">maingo::Logger::reachedMinNodeSize</a></div><div class="ttdeci">bool reachedMinNodeSize</div><div class="ttdef"><b>Definition:</b> logger.h:207</div></div>
+<div class="ttc" id="classmaingo_1_1_logger_html_aaf1b5259ea1e3d17206119d0e8a99d53"><div class="ttname"><a href="classmaingo_1_1_logger.html#aaf1b5259ea1e3d17206119d0e8a99d53">maingo::Logger::babLine</a></div><div class="ttdeci">std::queue&lt; std::string &gt; babLine</div><div class="ttdef"><b>Definition:</b> logger.h:203</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a02538278559c2ce2f2fa3509e2cb1ee0"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a02538278559c2ce2f2fa3509e2cb1ee0">maingo::BAB_CONSTRAINTPROPAGATION</a></div><div class="ttdef"><b>Definition:</b> logger.h:54</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6ab94236640934ada9c055a50cc95c553e"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ab94236640934ada9c055a50cc95c553e">maingo::BAB_BRANCHVARIABLE</a></div><div class="ttdef"><b>Definition:</b> logger.h:50</div></div>
+<div class="ttc" id="classmaingo_1_1_logger_html_a70f564ada7c6d7167bfc908096476996"><div class="ttname"><a href="classmaingo_1_1_logger.html#a70f564ada7c6d7167bfc908096476996">maingo::Logger::logFileName</a></div><div class="ttdeci">std::string logFileName</div><div class="ttdef"><b>Definition:</b> logger.h:205</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6aa6b69e8c1aedfe695600afb72576f450"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aa6b69e8c1aedfe695600afb72576f450">maingo::MC_MVCOMPTOL</a></div><div class="ttdef"><b>Definition:</b> logger.h:64</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a134280d9eb35c390ef60be88fc3738fe"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a134280d9eb35c390ef60be88fc3738fe">maingo::BAB_MAXNODES</a></div><div class="ttdef"><b>Definition:</b> logger.h:41</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a70b90d0f834b991c2bdba8a75d240769"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a70b90d0f834b991c2bdba8a75d240769">maingo::WRITETOOTHERLANGUAGE</a></div><div class="ttdef"><b>Definition:</b> logger.h:85</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a5d25a3bfa50688065e53fbdcf97bcde6"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5d25a3bfa50688065e53fbdcf97bcde6">maingo::EPSILONR</a></div><div class="ttdef"><b>Definition:</b> logger.h:34</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6af9b9065671390aaf67ee608acde5a29c"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6af9b9065671390aaf67ee608acde5a29c">maingo::BAB_DBBT</a></div><div class="ttdef"><b>Definition:</b> logger.h:53</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a6d522f8c5fdacf5e00e987fc6f49727a"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a6d522f8c5fdacf5e00e987fc6f49727a">maingo::UBP_SOLVERBAB</a></div><div class="ttdef"><b>Definition:</b> logger.h:69</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6af57f0eb60e347a76dc189ac87eee0e33"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6af57f0eb60e347a76dc189ac87eee0e33">maingo::RELNODETOL</a></div><div class="ttdef"><b>Definition:</b> logger.h:37</div></div>
+<div class="ttc" id="classmaingo_1_1_logger_html_ab9bc94904f592f8dad7532e140fe9394"><div class="ttname"><a href="classmaingo_1_1_logger.html#ab9bc94904f592f8dad7532e140fe9394">maingo::Logger::_userSetSettings</a></div><div class="ttdeci">std::map&lt; int, std::string &gt; _userSetSettings</div><div class="ttdef"><b>Definition:</b> logger.h:217</div></div>
+<div class="ttc" id="classmaingo_1_1_logger_html_ae5cb965f581d2940eea1730a5e7a1f06"><div class="ttname"><a href="classmaingo_1_1_logger.html#ae5cb965f581d2940eea1730a5e7a1f06">maingo::Logger::set_output_stream</a></div><div class="ttdeci">void set_output_stream(std::ostream *const outputStream)</div><div class="ttdoc">Sets output stream. </div><div class="ttdef"><b>Definition:</b> logger.cpp:70</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a71bd48756db5177b75b58c18c293de76"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a71bd48756db5177b75b58c18c293de76">maingo::LBP_SOLVER</a></div><div class="ttdef"><b>Definition:</b> logger.h:55</div></div>
+<div class="ttc" id="classmaingo_1_1_logger_html_a4d8782e6212a58c9ba6bd8f2317669d9"><div class="ttname"><a href="classmaingo_1_1_logger.html#a4d8782e6212a58c9ba6bd8f2317669d9">maingo::Logger::Logger</a></div><div class="ttdeci">Logger()</div><div class="ttdoc">Default constructor. </div><div class="ttdef"><b>Definition:</b> logger.h:101</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a233937fd6abb242c2de985af49b0e189"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a233937fd6abb242c2de985af49b0e189">maingo::BAB_MAXITERATIONS</a></div><div class="ttdef"><b>Definition:</b> logger.h:42</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a77dddf14689e6d132028adfd53e48d7d"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a77dddf14689e6d132028adfd53e48d7d">maingo::CONFIRMTERMINATION</a></div><div class="ttdef"><b>Definition:</b> logger.h:44</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6add9546d244ac8e1fff4c88197f7484c6"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6add9546d244ac8e1fff4c88197f7484c6">maingo::BAB_NODESELECTION</a></div><div class="ttdef"><b>Definition:</b> logger.h:49</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6aff3c4437dc0be83ba5de7ed23ce39018"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aff3c4437dc0be83ba5de7ed23ce39018">maingo::BAB_PROBING</a></div><div class="ttdef"><b>Definition:</b> logger.h:52</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6">maingo::SETTING_NAMES</a></div><div class="ttdeci">SETTING_NAMES</div><div class="ttdoc">Enum for representing the setting names and making the tracking of set settings easier. </div><div class="ttdef"><b>Definition:</b> logger.h:31</div></div>
+<div class="ttc" id="classmaingo_1_1_logger_html_a4771db34565c3321a819fceb53b4fc76"><div class="ttname"><a href="classmaingo_1_1_logger.html#a4771db34565c3321a819fceb53b4fc76">maingo::Logger::babLineCsv</a></div><div class="ttdeci">std::queue&lt; std::string &gt; babLineCsv</div><div class="ttdef"><b>Definition:</b> logger.h:204</div></div>
+<div class="ttc" id="classmaingo_1_1_logger_html_a60676efa35ed66a5c90d10412698fc81"><div class="ttname"><a href="classmaingo_1_1_logger.html#a60676efa35ed66a5c90d10412698fc81">maingo::Logger::_nSettingFiles</a></div><div class="ttdeci">unsigned int _nSettingFiles</div><div class="ttdef"><b>Definition:</b> logger.h:216</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a27fc1b36f1440ec849f01f0a173ec0ff"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a27fc1b36f1440ec849f01f0a173ec0ff">maingo::TERMINATEONFEASIBLEPOINT</a></div><div class="ttdef"><b>Definition:</b> logger.h:45</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6ae4d7bcb01c294a5428bbea31972573ec"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ae4d7bcb01c294a5428bbea31972573ec">maingo::PRE_PUREMULTISTART</a></div><div class="ttdef"><b>Definition:</b> logger.h:48</div></div>
+<div class="ttc" id="classmaingo_1_1_logger_html"><div class="ttname"><a href="classmaingo_1_1_logger.html">maingo::Logger</a></div><div class="ttdoc">This class contains all logging and output information. </div><div class="ttdef"><b>Definition:</b> logger.h:95</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a673f913685c284a0effb25228a504c66"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a673f913685c284a0effb25228a504c66">maingo::DELTAEQ</a></div><div class="ttdef"><b>Definition:</b> logger.h:36</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a59bd95b4e1b3948bf713750d91992bb6"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a59bd95b4e1b3948bf713750d91992bb6">maingo::BAB_PRINTFREQ</a></div><div class="ttdef"><b>Definition:</b> logger.h:77</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a628b6ac17d71d1b9df088ef94f8352f4"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a628b6ac17d71d1b9df088ef94f8352f4">maingo::EPSILONA</a></div><div class="ttdef"><b>Definition:</b> logger.h:33</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6aaed1ec51d45446a3609dff1a0551116d"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aaed1ec51d45446a3609dff1a0551116d">maingo::WRITETOLOGSEC</a></div><div class="ttdef"><b>Definition:</b> logger.h:83</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6acaa3429ee948f690dc11c72c2df7bd26"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6acaa3429ee948f690dc11c72c2df7bd26">maingo::PRE_OBBTMAXROUNDS</a></div><div class="ttdef"><b>Definition:</b> logger.h:47</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6aa871804ddb83a6d0f59637e3ff59c790"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aa871804ddb83a6d0f59637e3ff59c790">maingo::LBP_MINFACTORSFORAUX</a></div><div class="ttdef"><b>Definition:</b> logger.h:61</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a6717bbec3198ea15d4f818af79374f09"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a6717bbec3198ea15d4f818af79374f09">maingo::OUTSTREAMVERBOSITY</a></div><div class="ttdef"><b>Definition:</b> logger.h:79</div></div>
+<div class="ttc" id="classmaingo_1_1_logger_html_a1397947c86bde896214c7b77d4be6517"><div class="ttname"><a href="classmaingo_1_1_logger.html#a1397947c86bde896214c7b77d4be6517">maingo::Logger::print_settings</a></div><div class="ttdeci">void print_settings(const VERB verbosityGiven, const VERB verbosityNeeded, const LOGGING_DESTINATION givenOutstreamVerbosity)</div><div class="ttdoc">Function for printing and writing user-set settings. </div><div class="ttdef"><b>Definition:</b> logger.cpp:196</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a12187f49acc3a7cd011f182db558c7da"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a12187f49acc3a7cd011f182db558c7da">maingo::TARGETUPPERBOUND</a></div><div class="ttdef"><b>Definition:</b> logger.h:40</div></div>
+<div class="ttc" id="classmaingo_1_1_logger_html_a11f3a05f451f1d7f6f52081b971b5724"><div class="ttname"><a href="classmaingo_1_1_logger.html#a11f3a05f451f1d7f6f52081b971b5724">maingo::Logger::csvIterationsName</a></div><div class="ttdeci">std::string csvIterationsName</div><div class="ttdef"><b>Definition:</b> logger.h:206</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a89f8c3fb4d69e351baae115325a9e67f"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a89f8c3fb4d69e351baae115325a9e67f">maingo::LBP_ACTIVATEMORESCALING</a></div><div class="ttdef"><b>Definition:</b> logger.h:59</div></div>
 <div class="ttc" id="return_codes_8h_html"><div class="ttname"><a href="return_codes_8h.html">returnCodes.h</a></div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6ac9045c8153524432b9b2e764104146c9"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ac9045c8153524432b9b2e764104146c9">maingo::MAXTIME</a></div><div class="ttdef"><b>Definition:</b> logger.h:48</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a17042c71f65219621bd0df75e80122f4"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a17042c71f65219621bd0df75e80122f4">maingo::UBP_MAXSTEPSPRE</a></div><div class="ttdef"><b>Definition:</b> logger.h:72</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html_ab4926dc6a379823a0ece98e30f6a384f"><div class="ttname"><a href="classmaingo_1_1_logger.html#ab4926dc6a379823a0ece98e30f6a384f">maingo::Logger::create_json_file</a></div><div class="ttdeci">void create_json_file(bool writeJson, OUTSTREAM_VERB givenOutstreamVerbosity)</div><div class="ttdoc">Function used for creating the json file.</div><div class="ttdef"><b>Definition:</b> logger.cpp:138</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html_a85ebbae4b7d372e8ee4fc6df802d9621"><div class="ttname"><a href="classmaingo_1_1_logger.html#a85ebbae4b7d372e8ee4fc6df802d9621">maingo::Logger::print_message</a></div><div class="ttdeci">void print_message(const std::string &amp;message, bool writeLog, VERB verbosityGiven, VERB verbosityNeeded, OUTSTREAM_VERB givenOutstreamVerbosity)</div><div class="ttdoc">The main function used for printing a given message and storing it in log and/or csv.</div><div class="ttdef"><b>Definition:</b> logger.cpp:29</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html_a82f7d5b5cb8e33d894f7e17e38d6dbcd"><div class="ttname"><a href="classmaingo_1_1_logger.html#a82f7d5b5cb8e33d894f7e17e38d6dbcd">maingo::Logger::operator=</a></div><div class="ttdeci">Logger &amp; operator=(const Logger &amp;)=default</div><div class="ttdoc">Default copy assignment.</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a8cdec043d63c92ac7a4aaf7be4598f62"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a8cdec043d63c92ac7a4aaf7be4598f62">maingo::UBP_VERBOSITY</a></div><div class="ttdef"><b>Definition:</b> logger.h:80</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a51822df94284dbf373c9dfd9cea52c96"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a51822df94284dbf373c9dfd9cea52c96">maingo::MC_ENVELTOL</a></div><div class="ttdef"><b>Definition:</b> logger.h:70</div></div>
-<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO</div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a09a491a6e7f617cd50a7060c552cce4e"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a09a491a6e7f617cd50a7060c552cce4e">maingo::LBP_SUBGRADIENTINTERVALS</a></div><div class="ttdef"><b>Definition:</b> logger.h:62</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html_aa6c83f95144d085092f854d64b9c1e2f"><div class="ttname"><a href="classmaingo_1_1_logger.html#aa6c83f95144d085092f854d64b9c1e2f">maingo::Logger::create_log_file</a></div><div class="ttdeci">void create_log_file(bool writeLog, OUTSTREAM_VERB givenOutstreamVerbosity)</div><div class="ttdoc">Function used for creating the log file.</div><div class="ttdef"><b>Definition:</b> logger.cpp:86</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6ae06499c8dac054bf0e260388982591e2"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ae06499c8dac054bf0e260388982591e2">maingo::BAB_ALWAYSSOLVEOBBT</a></div><div class="ttdef"><b>Definition:</b> logger.h:56</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6aabadb050f3c17bb4bf6ec8d949e9b036"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aabadb050f3c17bb4bf6ec8d949e9b036">maingo::BAB_VERBOSITY</a></div><div class="ttdef"><b>Definition:</b> logger.h:81</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a11988bdff0ef3a044e9e9991f41a083b"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a11988bdff0ef3a044e9e9991f41a083b">maingo::MC_MVCOMPUSE</a></div><div class="ttdef"><b>Definition:</b> logger.h:68</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a20e6a32ee584c3187610f95ea83e1354"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a20e6a32ee584c3187610f95ea83e1354">maingo::WRITEJSON</a></div><div class="ttdef"><b>Definition:</b> logger.h:87</div></div>
-<div class="ttc" id="namespacemaingo_html_a53603cf77a4aab12b16a3cce79b991be"><div class="ttname"><a href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">maingo::VERB</a></div><div class="ttdeci">VERB</div><div class="ttdoc">Enum for controlling the output level of solvers (i.e., how much should be printed on the screen and,...</div><div class="ttdef"><b>Definition:</b> settings.h:33</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html_a09a06a9baaf4765d8af2d9baea602962"><div class="ttname"><a href="classmaingo_1_1_logger.html#a09a06a9baaf4765d8af2d9baea602962">maingo::Logger::resFileName</a></div><div class="ttdeci">std::string resFileName</div><div class="ttdef"><b>Definition:</b> logger.h:229</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html_a5776c77c4580d822350dc88225e46061"><div class="ttname"><a href="classmaingo_1_1_logger.html#a5776c77c4580d822350dc88225e46061">maingo::Logger::create_csv_files</a></div><div class="ttdeci">void create_csv_files(bool pureMultistart, bool printEveryLocalSearch, unsigned int maxLocalSearches, const std::vector&lt; double &gt; &amp;objectivesAtRoot, const std::vector&lt; SUBSOLVER_RETCODE &gt; &amp;feasibleAtRoot)</div><div class="ttdoc">Function used for creating the csv files.</div><div class="ttdef"><b>Definition:</b> logger.cpp:99</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a5c772c254a5883d4c978284aa125c432"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5c772c254a5883d4c978284aa125c432">maingo::PRE_PRINTEVERYLOCALSEARCH</a></div><div class="ttdef"><b>Definition:</b> logger.h:90</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a7e7298426588825f3e948fe1e89527d9"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a7e7298426588825f3e948fe1e89527d9">maingo::BAB_LOGFREQ</a></div><div class="ttdef"><b>Definition:</b> logger.h:83</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6ae7201e0fb1f4ad05d018c6ecab300ce4"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ae7201e0fb1f4ad05d018c6ecab300ce4">maingo::UBP_MAXSTEPSBAB</a></div><div class="ttdef"><b>Definition:</b> logger.h:75</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6ac9045c8153524432b9b2e764104146c9"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ac9045c8153524432b9b2e764104146c9">maingo::MAXTIME</a></div><div class="ttdef"><b>Definition:</b> logger.h:43</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a17042c71f65219621bd0df75e80122f4"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a17042c71f65219621bd0df75e80122f4">maingo::UBP_MAXSTEPSPRE</a></div><div class="ttdef"><b>Definition:</b> logger.h:67</div></div>
+<div class="ttc" id="classmaingo_1_1_logger_html_a82f7d5b5cb8e33d894f7e17e38d6dbcd"><div class="ttname"><a href="classmaingo_1_1_logger.html#a82f7d5b5cb8e33d894f7e17e38d6dbcd">maingo::Logger::operator=</a></div><div class="ttdeci">Logger &amp; operator=(const Logger &amp;)=default</div><div class="ttdoc">Default copy assignment. </div></div>
+<div class="ttc" id="classmaingo_1_1_logger_html_a168a8239c87de32a540c9fdcb6a54ff7"><div class="ttname"><a href="classmaingo_1_1_logger.html#a168a8239c87de32a540c9fdcb6a54ff7">maingo::Logger::create_iterations_csv_file</a></div><div class="ttdeci">void create_iterations_csv_file(const bool writeCsv)</div><div class="ttdoc">Function used for creating the csv file with information on the B&amp;B iterations. </div><div class="ttdef"><b>Definition:</b> logger.cpp:92</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a8cdec043d63c92ac7a4aaf7be4598f62"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a8cdec043d63c92ac7a4aaf7be4598f62">maingo::UBP_VERBOSITY</a></div><div class="ttdef"><b>Definition:</b> logger.h:75</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a51822df94284dbf373c9dfd9cea52c96"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a51822df94284dbf373c9dfd9cea52c96">maingo::MC_ENVELTOL</a></div><div class="ttdef"><b>Definition:</b> logger.h:65</div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a09a491a6e7f617cd50a7060c552cce4e"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a09a491a6e7f617cd50a7060c552cce4e">maingo::LBP_SUBGRADIENTINTERVALS</a></div><div class="ttdef"><b>Definition:</b> logger.h:57</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a7e60bfc3f9fd67b15a9f9f78d9512d69"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a7e60bfc3f9fd67b15a9f9f78d9512d69">maingo::writeResultFile</a></div><div class="ttdef"><b>Definition:</b> logger.h:82</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6ae06499c8dac054bf0e260388982591e2"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ae06499c8dac054bf0e260388982591e2">maingo::BAB_ALWAYSSOLVEOBBT</a></div><div class="ttdef"><b>Definition:</b> logger.h:51</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6aabadb050f3c17bb4bf6ec8d949e9b036"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aabadb050f3c17bb4bf6ec8d949e9b036">maingo::BAB_VERBOSITY</a></div><div class="ttdef"><b>Definition:</b> logger.h:76</div></div>
+<div class="ttc" id="classmaingo_1_1_logger_html_a69e487a988a594016c12a7c919570f04"><div class="ttname"><a href="classmaingo_1_1_logger.html#a69e487a988a594016c12a7c919570f04">maingo::Logger::save_setting</a></div><div class="ttdeci">void save_setting(const SETTING_NAMES settingName, const std::string &amp;str)</div><div class="ttdoc">Function used for saving the user-set settings. </div><div class="ttdef"><b>Definition:</b> logger.cpp:174</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a11988bdff0ef3a044e9e9991f41a083b"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a11988bdff0ef3a044e9e9991f41a083b">maingo::MC_MVCOMPUSE</a></div><div class="ttdef"><b>Definition:</b> logger.h:63</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a20e6a32ee584c3187610f95ea83e1354"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a20e6a32ee584c3187610f95ea83e1354">maingo::WRITEJSON</a></div><div class="ttdef"><b>Definition:</b> logger.h:81</div></div>
+<div class="ttc" id="namespacemaingo_html_a53603cf77a4aab12b16a3cce79b991be"><div class="ttname"><a href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">maingo::VERB</a></div><div class="ttdeci">VERB</div><div class="ttdoc">Enum for controlling the output level of solvers (i.e., how much should be printed on the screen and...</div><div class="ttdef"><b>Definition:</b> settings.h:28</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a5c772c254a5883d4c978284aa125c432"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5c772c254a5883d4c978284aa125c432">maingo::PRE_PRINTEVERYLOCALSEARCH</a></div><div class="ttdef"><b>Definition:</b> logger.h:84</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a7e7298426588825f3e948fe1e89527d9"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a7e7298426588825f3e948fe1e89527d9">maingo::BAB_LOGFREQ</a></div><div class="ttdef"><b>Definition:</b> logger.h:78</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6ae7201e0fb1f4ad05d018c6ecab300ce4"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ae7201e0fb1f4ad05d018c6ecab300ce4">maingo::UBP_MAXSTEPSBAB</a></div><div class="ttdef"><b>Definition:</b> logger.h:70</div></div>
 <div class="ttc" id="settings_8h_html"><div class="ttname"><a href="settings_8h.html">settings.h</a></div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6ad208395baa4232a0d2e525d3ae4246cc"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ad208395baa4232a0d2e525d3ae4246cc">maingo::WRITERESFILE</a></div><div class="ttdef"><b>Definition:</b> logger.h:88</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a60152ee26df4e219f935ef6dd5a10e43"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a60152ee26df4e219f935ef6dd5a10e43">maingo::UBP_MAXTIMEPRE</a></div><div class="ttdef"><b>Definition:</b> logger.h:73</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a7b55f5d88bcf0f46039de838e04d1732"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a7b55f5d88bcf0f46039de838e04d1732">maingo::LBP_MAXNUMBEROFADDEDFACTORS</a></div><div class="ttdef"><b>Definition:</b> logger.h:67</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6af81a6ea821fd200739e5e21c88f5ce20"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6af81a6ea821fd200739e5e21c88f5ce20">maingo::PRE_MAXLOCALSEARCHES</a></div><div class="ttdef"><b>Definition:</b> logger.h:51</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html_ab4c18700b160cbe53b4e59069e7fcedd"><div class="ttname"><a href="classmaingo_1_1_logger.html#ab4c18700b160cbe53b4e59069e7fcedd">maingo::Logger::set_output_stream</a></div><div class="ttdeci">void set_output_stream(std::ostream *outputStream)</div><div class="ttdoc">Sets output stream.</div><div class="ttdef"><b>Definition:</b> logger.cpp:77</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html_aa557a6ff14dbd38ab4b251c56caa0f37"><div class="ttname"><a href="classmaingo_1_1_logger.html#aa557a6ff14dbd38ab4b251c56caa0f37">maingo::Logger::write_all_iterations_to_csv</a></div><div class="ttdeci">void write_all_iterations_to_csv(const std::string &amp;errmsg=&quot;&quot;)</div><div class="ttdoc">Function used for writing all lines stored in queue babCsv to csv file with name csvIterationsName.</div><div class="ttdef"><b>Definition:</b> logger.cpp:169</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a266d2a23dde0c0404e4d261de460fd7f"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a266d2a23dde0c0404e4d261de460fd7f">maingo::UNKNOWN_SETTING</a></div><div class="ttdef"><b>Definition:</b> logger.h:92</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a67dd1fb20241b26b7ac93714b8b0aae1"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a67dd1fb20241b26b7ac93714b8b0aae1">maingo::WRITELOG</a></div><div class="ttdef"><b>Definition:</b> logger.h:85</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a8694b1f3b18e7fc861df9d94b5aced1e"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a8694b1f3b18e7fc861df9d94b5aced1e">maingo::UBP_MAXTIMEBAB</a></div><div class="ttdef"><b>Definition:</b> logger.h:76</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html_a60d49f911f24c66da289da2dbccc35e2"><div class="ttname"><a href="classmaingo_1_1_logger.html#a60d49f911f24c66da289da2dbccc35e2">maingo::Logger::print_message_to_stream_only</a></div><div class="ttdeci">void print_message_to_stream_only(const std::string &amp;message, OUTSTREAM_VERB givenOutstreamVerbosity)</div><div class="ttdoc">The main function used for printing a given message and storing it in log and/or csv.</div><div class="ttdef"><b>Definition:</b> logger.cpp:66</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6ad3c0e778161ba84f50725b2f95a71173"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ad3c0e778161ba84f50725b2f95a71173">maingo::UBP_IGNORENODEBOUNDS</a></div><div class="ttdef"><b>Definition:</b> logger.h:77</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html_af4fdb40b8636eff018c56e45c293de7f"><div class="ttname"><a href="classmaingo_1_1_logger.html#af4fdb40b8636eff018c56e45c293de7f">maingo::Logger::print_settings</a></div><div class="ttdeci">void print_settings(bool writeLog, VERB verbosityGiven, VERB verbosityNeeded, OUTSTREAM_VERB givenOutstreamVerbosity)</div><div class="ttdoc">Function for printing and writing user-set settings.</div><div class="ttdef"><b>Definition:</b> logger.cpp:232</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a60152ee26df4e219f935ef6dd5a10e43"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a60152ee26df4e219f935ef6dd5a10e43">maingo::UBP_MAXTIMEPRE</a></div><div class="ttdef"><b>Definition:</b> logger.h:68</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a7b55f5d88bcf0f46039de838e04d1732"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a7b55f5d88bcf0f46039de838e04d1732">maingo::LBP_MAXNUMBEROFADDEDFACTORS</a></div><div class="ttdef"><b>Definition:</b> logger.h:62</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6af81a6ea821fd200739e5e21c88f5ce20"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6af81a6ea821fd200739e5e21c88f5ce20">maingo::PRE_MAXLOCALSEARCHES</a></div><div class="ttdef"><b>Definition:</b> logger.h:46</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a266d2a23dde0c0404e4d261de460fd7f"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a266d2a23dde0c0404e4d261de460fd7f">maingo::UNKNOWN_SETTING</a></div><div class="ttdef"><b>Definition:</b> logger.h:86</div></div>
+<div class="ttc" id="classmaingo_1_1_logger_html_af1f4a383ab2f26319ae4da895d30aa2d"><div class="ttname"><a href="classmaingo_1_1_logger.html#af1f4a383ab2f26319ae4da895d30aa2d">maingo::Logger::save_settings_file_name</a></div><div class="ttdeci">void save_settings_file_name(const std::string &amp;fileName, const bool fileFound)</div><div class="ttdoc">Function used for saving the names of setting files set by the user. </div><div class="ttdef"><b>Definition:</b> logger.cpp:151</div></div>
+<div class="ttc" id="classmaingo_1_1_logger_html_a17570df4a0a318ddf4e186a4fc66f476"><div class="ttname"><a href="classmaingo_1_1_logger.html#a17570df4a0a318ddf4e186a4fc66f476">maingo::Logger::write_all_iterations_to_csv</a></div><div class="ttdeci">void write_all_iterations_to_csv()</div><div class="ttdoc">Function used for writing all iterations currently stored queue babLineCsv to csv. </div><div class="ttdef"><b>Definition:</b> logger.cpp:135</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a8694b1f3b18e7fc861df9d94b5aced1e"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a8694b1f3b18e7fc861df9d94b5aced1e">maingo::UBP_MAXTIMEBAB</a></div><div class="ttdef"><b>Definition:</b> logger.h:71</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6ad3c0e778161ba84f50725b2f95a71173"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ad3c0e778161ba84f50725b2f95a71173">maingo::UBP_IGNORENODEBOUNDS</a></div><div class="ttdef"><b>Definition:</b> logger.h:72</div></div>
 <div class="ttc" id="_m_ai_n_g_odebug_8h_html"><div class="ttname"><a href="_m_ai_n_g_odebug_8h.html">MAiNGOdebug.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html_ad63939a5c0535c5abb8e59024b0ca6d4"><div class="ttname"><a href="classmaingo_1_1_logger.html#ad63939a5c0535c5abb8e59024b0ca6d4">maingo::Logger::clear</a></div><div class="ttdeci">void clear()</div><div class="ttdoc">Clears all logging information.</div><div class="ttdef"><b>Definition:</b> logger.cpp:264</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a0df2d001081c4bd3b1d9c1cb9101d648"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a0df2d001081c4bd3b1d9c1cb9101d648">maingo::UBP_SOLVERPRE</a></div><div class="ttdef"><b>Definition:</b> logger.h:71</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a3137a2b2e76434c605b08fb9ceb63f91"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a3137a2b2e76434c605b08fb9ceb63f91">maingo::LBP_LINPOINTS</a></div><div class="ttdef"><b>Definition:</b> logger.h:61</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a44ea7382567c49c39d5ffbd545b0451c"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a44ea7382567c49c39d5ffbd545b0451c">maingo::INFTY</a></div><div class="ttdef"><b>Definition:</b> logger.h:43</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6afce3b85b57cf0619c91b21fc7f85d25f"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6afce3b85b57cf0619c91b21fc7f85d25f">maingo::LBP_VERBOSITY</a></div><div class="ttdef"><b>Definition:</b> logger.h:79</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a6c9981b7a50dafa4510ae5a161f715cd"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a6c9981b7a50dafa4510ae5a161f715cd">maingo::LBP_ADDAUXILIARYVARS</a></div><div class="ttdef"><b>Definition:</b> logger.h:65</div></div>
-<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6abf15c9e7a4446ee00cf506841ad82431"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6abf15c9e7a4446ee00cf506841ad82431">maingo::TARGETLOWERBOUND</a></div><div class="ttdef"><b>Definition:</b> logger.h:44</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html_a31cae103ef08470e0db45f01c0360eed"><div class="ttname"><a href="classmaingo_1_1_logger.html#a31cae103ef08470e0db45f01c0360eed">maingo::Logger::~Logger</a></div><div class="ttdeci">~Logger()</div><div class="ttdoc">Default destructor.</div><div class="ttdef"><b>Definition:</b> logger.h:122</div></div>
+<div class="ttc" id="classmaingo_1_1_logger_html_ad63939a5c0535c5abb8e59024b0ca6d4"><div class="ttname"><a href="classmaingo_1_1_logger.html#ad63939a5c0535c5abb8e59024b0ca6d4">maingo::Logger::clear</a></div><div class="ttdeci">void clear()</div><div class="ttdoc">Clears all logging information. </div><div class="ttdef"><b>Definition:</b> logger.cpp:228</div></div>
+<div class="ttc" id="classmaingo_1_1_logger_html_af67b92595cd069c402df9a448cd784a3"><div class="ttname"><a href="classmaingo_1_1_logger.html#af67b92595cd069c402df9a448cd784a3">maingo::Logger::create_log_file</a></div><div class="ttdeci">void create_log_file(const LOGGING_DESTINATION givenOutstreamVerbosity)</div><div class="ttdoc">Function used for creating the log file. </div><div class="ttdef"><b>Definition:</b> logger.cpp:79</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a0df2d001081c4bd3b1d9c1cb9101d648"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a0df2d001081c4bd3b1d9c1cb9101d648">maingo::UBP_SOLVERPRE</a></div><div class="ttdef"><b>Definition:</b> logger.h:66</div></div>
+<div class="ttc" id="classmaingo_1_1_logger_html_a0df484648655184edbbd4bcb6531558f"><div class="ttname"><a href="classmaingo_1_1_logger.html#a0df484648655184edbbd4bcb6531558f">maingo::Logger::print_message_to_stream_only</a></div><div class="ttdeci">void print_message_to_stream_only(const std::string &amp;message, const LOGGING_DESTINATION givenOutstreamVerbosity)</div><div class="ttdoc">The main function used for printing a given message and storing it in log and/or csv. </div><div class="ttdef"><b>Definition:</b> logger.cpp:59</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a3137a2b2e76434c605b08fb9ceb63f91"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a3137a2b2e76434c605b08fb9ceb63f91">maingo::LBP_LINPOINTS</a></div><div class="ttdef"><b>Definition:</b> logger.h:56</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a44ea7382567c49c39d5ffbd545b0451c"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a44ea7382567c49c39d5ffbd545b0451c">maingo::INFTY</a></div><div class="ttdef"><b>Definition:</b> logger.h:38</div></div>
+<div class="ttc" id="classmaingo_1_1_logger_html_afaa00650854698ce5bbde8fee9db7e0e"><div class="ttname"><a href="classmaingo_1_1_logger.html#afaa00650854698ce5bbde8fee9db7e0e">maingo::Logger::print_message</a></div><div class="ttdeci">void print_message(const std::string &amp;message, const VERB verbosityGiven, const VERB verbosityNeeded, const LOGGING_DESTINATION givenOutstreamVerbosity)</div><div class="ttdoc">The main function used for printing a given message and storing it in log and/or csv. </div><div class="ttdef"><b>Definition:</b> logger.cpp:24</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6afce3b85b57cf0619c91b21fc7f85d25f"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6afce3b85b57cf0619c91b21fc7f85d25f">maingo::LBP_VERBOSITY</a></div><div class="ttdef"><b>Definition:</b> logger.h:74</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6a6c9981b7a50dafa4510ae5a161f715cd"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a6c9981b7a50dafa4510ae5a161f715cd">maingo::LBP_ADDAUXILIARYVARS</a></div><div class="ttdef"><b>Definition:</b> logger.h:60</div></div>
+<div class="ttc" id="classmaingo_1_1_logger_html_a3134c2ef11ad7c45c3c8467421966021"><div class="ttname"><a href="classmaingo_1_1_logger.html#a3134c2ef11ad7c45c3c8467421966021">maingo::Logger::write_all_lines_to_log</a></div><div class="ttdeci">void write_all_lines_to_log(const std::string &amp;errorMessage=&quot;&quot;)</div><div class="ttdoc">Function used for writing all lines stored in queue babLine to log. </div><div class="ttdef"><b>Definition:</b> logger.cpp:117</div></div>
+<div class="ttc" id="namespacemaingo_html_a630ee8293fceda07f0cb639d0cf78cf6abf15c9e7a4446ee00cf506841ad82431"><div class="ttname"><a href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6abf15c9e7a4446ee00cf506841ad82431">maingo::TARGETLOWERBOUND</a></div><div class="ttdef"><b>Definition:</b> logger.h:39</div></div>
+<div class="ttc" id="classmaingo_1_1_logger_html_a31cae103ef08470e0db45f01c0360eed"><div class="ttname"><a href="classmaingo_1_1_logger.html#a31cae103ef08470e0db45f01c0360eed">maingo::Logger::~Logger</a></div><div class="ttdeci">~Logger()</div><div class="ttdoc">Default destructor. </div><div class="ttdef"><b>Definition:</b> logger.h:116</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -187,7 +182,7 @@ $(document).ready(function(){initNavTree('logger_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="logger_8h.html">logger.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/maingo_in_your_software.html b/doc/html/maingo_in_your_software.html
index 80ec3429de46aaf60b146b88d04040721fe9447f..ca9b49b6e68abdfcbc03e169ecafdfa3eb068472 100644
--- a/doc/html/maingo_in_your_software.html
+++ b/doc/html/maingo_in_your_software.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Using MAiNGO in Other Software</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -85,37 +85,32 @@ $(document).ready(function(){initNavTree('maingo_in_your_software.html','');});
 </iframe>
 </div>
 
-<div class="PageDoc"><div class="header">
+<div class="header">
   <div class="headertitle">
 <div class="title">Using MAiNGO in Other Software </div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="textblock"><h1><a class="anchor" id="standalone"></a>
-Using MAiNGO as a Standalone Solver</h1>
-<p>If you want to use MAiNGO as a standalone solver, you can simply work with the files given in the example directory (and the CMakeLists.txt in the trunk of the Git repository) and implement your model as described in Section <a class="el" href="writing_problem.html">Modeling in MAiNGO</a>. An example of a C++ model can be found in <code>examples/01_BasicExample/problem.h</code>. An example for a .txt input file can be found in <code>examples/01_BasicExample/problem.txt</code>. After compiling, simply navigate to the folder where the executable was built and execute <code>MAiNGO.exe</code>.</p>
-<p>The standalone version of MAiNGO can read settings for solver options from a file. An example file including descriptions and default values of all options can be found in the example folder (<code>MAiNGOSettings.txt</code>). By default, MAiNGO looks for a file called <code>MAiNGOSettings.txt</code> in the directory where the <code>MAiNGO.exe</code> is located, but you can specify a custom file (including path) as a command line argument to <code>MAiNGO.exe</code>. The same applies to the MAiNGO version with parser.</p>
-<h1><a class="anchor" id="embedded"></a>
+<div class="textblock"><h1><a class="anchor" id="embedded"></a>
 Embedding MAiNGO in your Application</h1>
 <p>If you would like to embed MAiNGO in your own application, you need to link it to your software project first. Probably the easiest way it to embed MAiNGO as a submodule of your project. For this purpose, please refer to the <code>CMakeLists.txt</code> in the trunk of the MAiNGO repository.</p>
-<p>In order to use the MAiNGO object, please refer to the <code>main.cpp</code> in the example folder. In particular, you need to do the following things:</p><ul>
+<p>For an example of how to use the MAiNGO object, please refer to the file <code>examples/mainCppApi.cpp</code>. In particular, you need to do the following things:</p><ul>
 <li>Create an instance of the <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">MAiNGO</a> class.</li>
-<li>Hand an instance of your specialization of <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html">MAiNGOmodel</a> to your MAiNGO instance via its constructor or using <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a1fe4e8690548362eb1ec74fb052a424e">set_model</a></li>
-<li>Specify settings using <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a383bc41aef21457041b6a79d0a376bed">set_option</a> or <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a9d2cbee1f5ecf3321e2e5334e70757fe">read_settings</a></li>
+<li>Hand an instance of your specialization of <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html">MAiNGOmodel</a> to your MAiNGO instance via its constructor or using <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a1fe4e8690548362eb1ec74fb052a424e">set_model</a>. Note that MAiNGO stores a copy of the model internally (or rather, its own representation of the model). Therefore, any changes made to you model object after handing it to MAiNGO (via the constructor or the <code>set_model</code> function) will <em>not</em> change the model that MAiNGO will use in the next call to <code>solve</code> etc. If you want MAiNGO to known about these changes, you need to hand the updated model to MAiNGO again using <code>set_model</code>.</li>
+<li>Specify settings using <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ae2bc7507ee0341d7b0a8ac06702ca964">set_option</a> or <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0728bb641f5f269763663ce89280bd4f">read_settings</a></li>
 <li>Solve the problem using <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a50062c75f198aab4cd975f34fdef1506">solve</a>. This function will return a <a class="el" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2">RETCODE</a>.</li>
 <li>Query solution information using the function provided by the <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">MAiNGO</a> class.</li>
 </ul>
 <h1><a class="anchor" id="extensions"></a>
 Extending MAiNGO</h1>
-<p>MAiNGO is published under the ECLIPSE license. Please refer to the <code>LICENSE</code> file in the MAiNGO trunk.</p>
-<p>Regarding the implementation of MAiNGO, just explore this documentation. If you expand MAiNGO, please follow our naming conventions:</p><ul>
+<p>MAiNGO is published under the Eclipse Public License - v2.0. Please refer to the <code>LICENSE</code> file in the root of the MAiNGO repository. Note that the third-party dependencies in the <code>dep</code> folder use different licenses.</p>
+<p>Regarding the implementation of MAiNGO, just explore this documentation. If you intend to contribute your changes to MAiNGO, please follow our naming conventions:</p><ul>
 <li>Variable names are written in camel case, starting with a lower case letter</li>
 <li>Type names are written in camel case, starting with an upper case letter</li>
 <li>Function names are all lower case, potentially with underscores</li>
 <li>Enums are all capital letters</li>
 <li>Private members (both functions and variables) additionally start with an underscore </li>
 </ul>
-</div></div><!-- PageDoc -->
-</div><!-- contents -->
+</div></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
@@ -123,7 +118,7 @@ Extending MAiNGO</h1>
     <li class="navelem"><a class="el" href="index.html">McCormick-based Algorithm for mixed-integer Nonlinear Global Optimization</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/maingo_output.html b/doc/html/maingo_output.html
index d96e35031ad5887f293b23fe13ad4e1b948d03ec..276b960e7f707cd8fd33c34f048817f264ff7a7d 100644
--- a/doc/html/maingo_output.html
+++ b/doc/html/maingo_output.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: MAiNGO output</title>
+<title>MAiNGO: MAiNGO Output</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -85,24 +85,24 @@ $(document).ready(function(){initNavTree('maingo_output.html','');});
 </iframe>
 </div>
 
-<div class="PageDoc"><div class="header">
+<div class="header">
   <div class="headertitle">
-<div class="title">MAiNGO output </div>  </div>
+<div class="title">MAiNGO Output </div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="textblock"><h1><a class="anchor" id="Interpreting"></a>
-MAiNGO output</h1>
-<p>After successfully finishing an optimization run, by default MAiNGO generates the files <code>bab.log</code> and <code>MAiNGO_res.txt</code>. The <code>bab.log</code> file should look something like this: </p><div class="fragment"><div class="line">| ************************************************************************************************************************</div><div class="line">| *                                                                                                                      *</div><div class="line">| *                                             You are using MAiNGO v0.2.1                                              *</div><div class="line">| *                                                                                                                      *</div><div class="line">| *  Please cite the latest MAiNGO report from http://permalink.avt.rwth-aachen.de/?id=729717 :                          *</div><div class="line">| *  Bongartz, D., Najman, J., Sass, S. and Mitsos, A., MAiNGO - McCormick-based Algorithm for mixed-integer Nonlinear   *</div><div class="line">| *  Global Optimization. Technical Report, Process Systems Engineering (AVT.SVT), RWTH Aachen University (2018).        *</div><div class="line">| *                                                                                                                      *</div><div class="line">| ************************************************************************************************************************</div><div class="line">|</div><div class="line">|   Read settings from file MAiNGOSettings.txt.</div><div class="line">|   Settings set by the user:</div><div class="line">|     epsilonA 0.01</div><div class="line">|     epsilonR 0.01</div><div class="line">|   Done.</div><div class="line">|</div><div class="line">|   Pre-processing at root node:</div><div class="line">|     Initialize subsolvers &amp; check options...</div><div class="line">|     Constraint propagation range reduction...</div><div class="line">|     Feasibility-based range reduction...</div><div class="line">|     Local searches...</div><div class="line">|       User-specified initial point is feasible with objective value 4.35581</div><div class="line">|     Constraint propagation range reduction...</div><div class="line">|     Feasibility and optimality-based range reduction...</div><div class="line">|     CPU time: 0.047 s.</div><div class="line">|   Done.</div><div class="line">|</div><div class="line">|   Entering branch-and-bound loop:</div><div class="line">|   Iteration        LBD              UBD        NodesLeft        AbsGap           RelGap            CPU</div><div class="line">|           1    -3.108624e-15     4.355813e+00          2     4.355813e+00     1.000000e+00     4.700000e-02</div><div class="line">|           5     4.355812e+00     4.355813e+00          0     1.227713e-06     2.818562e-07     4.700000e-02</div><div class="line">|   Done.</div><div class="line">|</div><div class="line">| ************************************************************************************************************************</div><div class="line">| *                                                                                                                      *</div><div class="line">| *                                             *** Regular termination. ***                                             *</div><div class="line">| *                                                                                                                      *</div><div class="line">| ************************************************************************************************************************</div><div class="line">|</div><div class="line">|   Problem statistics:</div><div class="line">|     Variables                                = 2</div><div class="line">|       Thereof continuous                     = 1</div><div class="line">|       Thereof binary                         = 1</div><div class="line">|     Inequality constraints                   = 1</div><div class="line">|     Equality constraints                     = 1</div><div class="line">|</div><div class="line">|   Solution statistics:</div><div class="line">|     Total UBD problems solved         = 2</div><div class="line">|     Total LBD problems solved         = 5</div><div class="line">|     Total number of iterations        = 5</div><div class="line">|     Maximum number of nodes in memory = 3</div><div class="line">|     Best solution: First found at iteration 0</div><div class="line">|</div><div class="line">| ===================================================================</div><div class="line">|</div><div class="line">|   Final LBD          = 4.355811692854402</div><div class="line">|   Final absolute gap = 1.227712946416659e-06</div><div class="line">|   Final relative gap = 2.818562157753893e-07</div><div class="line">|</div><div class="line">|   Objective value = 4.355812920567349</div><div class="line">|   Solution point:</div><div class="line">|     x =                    0</div><div class="line">|     y =                    1</div><div class="line">|</div><div class="line">| ===================================================================</div><div class="line">|</div><div class="line">|   Additional Model outputs:</div><div class="line">|     Result of temp1 = -0.1414213562373095</div><div class="line">|</div><div class="line">| ===================================================================</div><div class="line">|</div><div class="line">|   CPU time:        0.047 seconds (Preprocessing + B&amp;B).</div><div class="line">|   Wall-clock time: 0.432 seconds (Preprocessing + B&amp;B).</div></div><!-- fragment --><p>First, MAiNGO lists the version you are using together with a note how to cite the software. This is followed by settings read from the file MAiNGOSettings.txt, if such a file could be found.</p>
-<p>The actual algorithm starts at the line <code>Pre-processing at root node:</code>, first listing all pre-processing steps. After the line <code>Entering branch-and-bound loop:</code>, MAiNGO lists the current number of iterations, the current proven lower bound, the current best feasible point, the number of nodes left in the branch-and-bound tree, the current absoulte and relative gaps and the CPU time required until now. For a more detailed description of the algorithm, please refer to the <a class="el" href="algorithm.html">How does MAiNGO work?</a> page. The algorithm finishes with the statement <code>Regular termination.</code>.</p>
-<p>After the algorithm terminates, problem statistics such as the number and type of variables and constraints are listed. The probably most important part begin after the first <code>===</code> signs, where the final objective value, the solution point and the final lower bound and optimality gaps are listed.</p>
-<p>Any additional model outputs are listed thereafter followed by the CPU and wall clock times.</p>
-<p>The file <code>MAiNGO_res.txt</code> holds information on the values of the optimization variables and lists the values of all constraints evaluated at the final solution point. The <code>MAiNGO_res.txt</code> file should look something like this: </p><div class="fragment"><div class="line">                variables              lower bound           solution point              upper bound</div><div class="line"></div><div class="line">                        x                        0                        0                        1</div><div class="line">                        y                       -2                        1                        2</div><div class="line"></div><div class="line">-------------------------------------------------------------------------------------------------------------</div><div class="line"></div><div class="line">          objective value        4.355812920567349</div><div class="line"></div><div class="line">-------------------------------------------------------------------------------------------------------------</div><div class="line"></div><div class="line">             inequalities                    value                 at bound             tolerance = 1e-06</div><div class="line"></div><div class="line">                   x &lt;= 1                       -1</div><div class="line"></div><div class="line">-------------------------------------------------------------------------------------------------------------</div><div class="line"></div><div class="line">               equalities                    value                                      tolerance = 1e-06</div><div class="line"></div><div class="line">          circle equality                        0</div></div><!-- fragment --><p> If a constraint is fulfilled only within given tolerances, e.g., an equality constraint with absolute value lesser or equal the given feasibility tolerance, it is marked with an asterisk <code>(*)</code>. If a constraint is violated at the final solution point, it is marked with the keyword <code>VIOLATED</code>. Usually, this should not happen. If it does, it may either be that your model contains an invalid <a class="el" href="writing_problem.html#advanced_modeling">relaxation-only constraint</a>, or that there are numerical issues. If you feel like something is wrong, please contact the developers at <a href="#" onclick="location.href='mai'+'lto:'+'MAi'+'NG'+'O@a'+'vt'+'.rw'+'th'+'-aa'+'ch'+'en.'+'de'; return false;">MAiNG<span style="display: none;">.nosp@m.</span>O@av<span style="display: none;">.nosp@m.</span>t.rwt<span style="display: none;">.nosp@m.</span>h-aa<span style="display: none;">.nosp@m.</span>chen.<span style="display: none;">.nosp@m.</span>de</a>.</p>
-<h1><a class="anchor" id="MAiNGO"></a>
-Output alternatives</h1>
-<p>MAiNGO is able to write its output in different formats. In addition to the standard <code>bab.log</code> and <code>MAiNGO_res.txt</code> files, MAiNGO can also generate <code>.csv</code> and <code>.json</code> files. The settings <a class="el" href="structmaingo_1_1_settings.html#a6fb19c2296412e1143f77fd7b949e7e3">writeCsv</a> and <a class="el" href="structmaingo_1_1_settings.html#a891666257be2a508061697ea80a01ada">writeJson</a> define whether a <code>.csv</code> and a <code>.json</code> file shall be generated, respectively. Similarly, the setting <a class="el" href="structmaingo_1_1_settings.html#acec36c3b03a651632336594c40d5026a">writeLog</a> defines whether the <code>bab.log</code> file shall be generated while the setting <a class="el" href="structmaingo_1_1_settings.html#a6d6da9a089684ecd8eb3dc560e14c0ca">writeResFile</a> defines whether the <code>MAiNGO_res.txt</code> file shall be generated.</p>
-<p>It is also possible to control the output via the setting <a class="el" href="structmaingo_1_1_settings.html#a63963398865197f332049e6a247bcb35">outstreamVerbosity</a>, for more details please refer to the <a class="el" href="structmaingo_1_1_settings.html">Settings site</a>. </p>
-</div></div><!-- PageDoc -->
-</div><!-- contents -->
+<div class="textblock"><p>Depending on the settings, MAiNGO may produce different types of output printed to the screen or written into files. These are described in the following sections. When using the C++ API of MAiNGO (or its Python equivalent), there are also various functions for querying all results and statistics from the MAiNGO object in code. These are not covered here. Please refer to the documentation of the <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html">MAiNGO class</a> and the file <code>examples/mainCppApi.cpp</code> instead.</p>
+<h1><a class="anchor" id="logging"></a>
+Logging Output</h1>
+<p>Depending on the setting <a class="el" href="structmaingo_1_1_settings.html#ad665aeee888f2746d7892ffc66bd5340">loggingDestination</a>, MAiNGO will write information on the progress and solution to the screen or to a log file (called <code>maingo.log</code> by default). This logging information typically looks something like this: </p><div class="fragment"><div class="line">|************************************************************************************************************************</div><div class="line">|*                                                                                                                      *</div><div class="line">|*                                             You are using MAiNGO v0.4.0                                              *</div><div class="line">|*                                                                                                                      *</div><div class="line">|*  Please cite the latest MAiNGO report from http://permalink.avt.rwth-aachen.de/?id=729717 :                          *</div><div class="line">|*  Bongartz, D., Najman, J., Sass, S. and Mitsos, A., MAiNGO - McCormick-based Algorithm for mixed-integer Nonlinear   *</div><div class="line">|*  Global Optimization. Technical Report, Process Systems Engineering (AVT.SVT), RWTH Aachen University (2018).        *</div><div class="line">|*                                                                                                                      *</div><div class="line">|************************************************************************************************************************</div><div class="line">|  </div><div class="line">|  Read settings from file MAiNGOSettings.txt.</div><div class="line">|  Settings set by the user:</div><div class="line">|    epsilonA 0.01</div><div class="line">|    epsilonR 0.01</div><div class="line">|  Done.</div><div class="line">|</div><div class="line">|  Pre-processing at root node:</div><div class="line">|    Initialize subsolvers...</div><div class="line">|      Multistart: IPOPT</div><div class="line">|      Upper bounding: SLSQP</div><div class="line">|      Lower bounding: CPLEX</div><div class="line">|    Constraint propagation...</div><div class="line">|    Optimization-based bound tightening (feasibility only)...</div><div class="line">|    Multistart local searches...</div><div class="line">|      User-specified initial point is feasible with objective value 4.35581</div><div class="line">|    Constraint propagation...</div><div class="line">|    Optimization-based bound tightening (feasibility and optimality)...</div><div class="line">|    CPU time: 0.015 s.</div><div class="line">|  Done.</div><div class="line">|</div><div class="line">|  Entering branch-and-bound loop:</div><div class="line">|  Iteration        LBD              UBD        NodesLeft        AbsGap           RelGap            CPU       </div><div class="line">|          1    -3.108624e-15     4.355813e+00          2     4.355813e+00     1.000000e+00     1.500000e-02  </div><div class="line">|          5     4.355812e+00     4.355813e+00          0     1.227713e-06     2.818562e-07     1.500000e-02  </div><div class="line">|  Done.</div><div class="line">|</div><div class="line">|************************************************************************************************************************</div><div class="line">|*                                                                                                                      *</div><div class="line">|*                                             *** Regular termination. ***                                             *</div><div class="line">|*                                                                                                                      *</div><div class="line">|************************************************************************************************************************</div><div class="line">|</div><div class="line">|  Problem statistics: </div><div class="line">|    Variables                                = 2</div><div class="line">|      Thereof continuous                     = 1</div><div class="line">|      Thereof binary                         = 1</div><div class="line">|    Inequality constraints                   = 1</div><div class="line">|    Equality constraints                     = 1</div><div class="line">|</div><div class="line">|  Solution statistics: </div><div class="line">|    Total UBD problems solved         = 2</div><div class="line">|    Total LBD problems solved         = 5</div><div class="line">|    Total number of iterations        = 5</div><div class="line">|    Maximum number of nodes in memory = 3</div><div class="line">|    Best solution: First found at iteration 0</div><div class="line">|</div><div class="line">|===================================================================</div><div class="line">|</div><div class="line">|  Final LBD          = 4.355811692854402</div><div class="line">|  Final absolute gap = 1.227712946416659e-06</div><div class="line">|  Final relative gap = 2.818562157753893e-07</div><div class="line">|</div><div class="line">|  Objective value = 4.355812920567349</div><div class="line">|  Solution point:</div><div class="line">|    x =                    0</div><div class="line">|    y =                   -1</div><div class="line">|</div><div class="line">|===================================================================</div><div class="line">|</div><div class="line">|  Additional Model outputs: </div><div class="line">|    Result of temp1:  = -0.1414213562373095</div><div class="line">|</div><div class="line">|===================================================================</div><div class="line">|</div><div class="line">|  CPU time:        0.015 seconds (Preprocessing + B&amp;B).</div><div class="line">|  Wall-clock time: 0.061 seconds (Preprocessing + B&amp;B).</div></div><!-- fragment --><p>First, MAiNGO lists the version you are using together with a note how to cite the software. This is followed by settings read from the settings file (here: <code>MAiNGOSettings.txt</code>, which is also the default settings file name), if such a file could be found.</p>
+<p>The actual algorithm starts at the line <code>Pre-processing at root node:</code>, first listing all pre-processing steps. Under the line <code>Initialize subsolvers</code>, the subsolvers used for the current run are listed. After the line <code>Entering branch-and-bound loop:</code>, MAiNGO lists the current number of iterations, the current proven lower bound, the objective value of the current best feasible point, the number of nodes left in the branch-and-bound tree, the current absoulte and relative gaps and the CPU time required until now. For a more detailed description of the algorithm, please refer to the <a class="el" href="algorithm.html">How does MAiNGO work?</a> page. The algorithm finishes with the statement <code>Regular termination.</code>.</p>
+<p>After the algorithm terminates, problem statistics such as the number and type of variables and constraints are listed. After the first <code>===</code> sign, the final objective value, the solution point and the final lower bound and optimality gaps are listed. Any additional model outputs are listed thereafter followed by the CPU and wall clock times.</p>
+<h1><a class="anchor" id="results_file"></a>
+Results File</h1>
+<p>If the setting <a class="el" href="structmaingo_1_1_settings.html#a56d7d3b6246ae45af98b44102edbb28b">writeResultFile</a> is set to true, MAiNGO writes a file containing information on the optimal solution. By default, it is called <code>MAiNGOresult.txt</code>. It contains the values of the optimization variables along with their bounds, and lists the values of all constraint residuals evaluated at the final solution point. The <code>MAiNGOresult.txt</code> file should look something like this: </p><div class="fragment"><div class="line">                variables              lower bound           solution point              upper bound</div><div class="line"></div><div class="line">                        x                        0                        0                        1</div><div class="line">                        y                       -2                        1                        2</div><div class="line"></div><div class="line">-------------------------------------------------------------------------------------------------------------</div><div class="line"></div><div class="line">          objective value        4.355812920567349</div><div class="line"></div><div class="line">-------------------------------------------------------------------------------------------------------------</div><div class="line"></div><div class="line">             inequalities                    value                 at bound             tolerance = 1e-06</div><div class="line"></div><div class="line">                   x &lt;= 1                       -1</div><div class="line"></div><div class="line">-------------------------------------------------------------------------------------------------------------</div><div class="line"></div><div class="line">               equalities                    value                                      tolerance = 1e-06</div><div class="line"></div><div class="line">          circle equality                        0</div></div><!-- fragment --><p> If a constraint is fulfilled only within given tolerances, e.g., an equality constraint with absolute value less than or equal to the given feasibility tolerance, it is marked with an asterisk <code>(*)</code>. If a constraint is violated at the final solution point, it is marked with the keyword <code>VIOLATED</code>. Usually, this should not happen. If it does, it may either be that your model contains an invalid <a class="el" href="writing_problem.html#advanced_modeling">relaxation-only constraint</a>, or that there are numerical issues. If you feel like something is wrong, please contact the developers at <a href="#" onclick="location.href='mai'+'lto:'+'MAi'+'NG'+'O@a'+'vt'+'.rw'+'th'+'-aa'+'ch'+'en.'+'de'; return false;">MAiNG<span style="display: none;">.nosp@m.</span>O@av<span style="display: none;">.nosp@m.</span>t.rwt<span style="display: none;">.nosp@m.</span>h-aa<span style="display: none;">.nosp@m.</span>chen.<span style="display: none;">.nosp@m.</span>de</a>.</p>
+<h1><a class="anchor" id="output_alternatives"></a>
+Alternative Output Files</h1>
+<p>Beyond the two main outputs format described above, MAiNGO is able to write output in <code>csv</code> and <code>json</code> format. These outputs can be enabled via the settings <a class="el" href="structmaingo_1_1_settings.html#a6fb19c2296412e1143f77fd7b949e7e3">writeCsv</a> and <a class="el" href="structmaingo_1_1_settings.html#a891666257be2a508061697ea80a01ada">writeJson</a>, respectively. The <code>csv</code> output is divided into to files, called <code>statisticsAndSolution.csv</code> and <code>iterations.csv</code> by default. The former contains the solution point and statistics about the problem and the solution procedure. The latter contains the same information on the individual B&amp;B iterations as the log file, but in csv format. The <code>json</code> output file is called <code>statisticsAndSolution.json</code> by default and also contains the solution point and various statistics. </p>
+</div></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
@@ -110,7 +110,7 @@ Output alternatives</h1>
     <li class="navelem"><a class="el" href="index.html">McCormick-based Algorithm for mixed-integer Nonlinear Global Optimization</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/maingo_settings.html b/doc/html/maingo_settings.html
index 1c354cebd3223c9ebfad4a2bc7b7490e86c504db..6751157f4393bb23cd6329c01d99be46667932e9 100644
--- a/doc/html/maingo_settings.html
+++ b/doc/html/maingo_settings.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: MAiNGO Settings</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -85,17 +85,18 @@ $(document).ready(function(){initNavTree('maingo_settings.html','');});
 </iframe>
 </div>
 
-<div class="PageDoc"><div class="header">
+<div class="header">
   <div class="headertitle">
 <div class="title">MAiNGO Settings </div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="textblock"><p>The documentation of all settings can be found on the <a class="el" href="structmaingo_1_1_settings.html">Settings site</a>.</p>
-<p>When using the <a class="el" href="maingo_in_your_software.html#standalone">Standalone Version</a> of MAiNGO, settings can be read from a file as well. The default settings file is named <code>MAiNGOSettings.txt</code> and contains all settings. You can change the name of the default settings file when calling the <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a9d2cbee1f5ecf3321e2e5334e70757fe">read_settings</a> function or simply tell maingo which settings file you want to use by calling the MAiNGO executable with an additional argument, e.g., <code>MAiNGO.exe MySettings.txt</code>.</p>
+<div class="textblock"><p>The documentation of all available settings can be found on the page of the <a class="el" href="structmaingo_1_1_settings.html">Settings</a> struct.</p>
+<p>When using the C++ or Python APIs of MAiNGO, settings can be changed via <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#ae2bc7507ee0341d7b0a8ac06702ca964">set_option</a> function or read from a file via the <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0728bb641f5f269763663ce89280bd4f">read_settings</a> function. If no file name is given to <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a0728bb641f5f269763663ce89280bd4f">read_settings</a>, the default file name is <code>MAiNGOSettings.txt</code>. An example for such a settings file can be found at <code>examples/MAiNGOSettings.txt</code>.</p>
+<p>In the example main file for the C++-API, <code>examples/mainCppApi.cpp</code>, the name of the desired settings file is read as optional (first and only) command line argument. If a file name is specified this way, MAiNGO will attempt to open a file of this name in the current working directory (i.e., typically where your <code>MAiNGOcpp</code> executable is). If this file is not found, it will display a warning and continue with default settings. If not file name is specified, MAiNGO will instead use the file <code>MAiNGOSettings.txt</code> if it exists in the working directory.</p>
+<p>Similarly, in the example main file for using text input based on ALE, <code>examples/mainAleParser.cpp</code>, the settings file name is read as optional second command line argument after the name of the input file containing the problem definition (cf. modeling_ALE).</p>
 <p><br />
  </p>
-</div></div><!-- PageDoc -->
-</div><!-- contents -->
+</div></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
@@ -103,7 +104,7 @@ $(document).ready(function(){initNavTree('maingo_settings.html','');});
     <li class="navelem"><a class="el" href="index.html">McCormick-based Algorithm for mixed-integer Nonlinear Global Optimization</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/manual_8dox.html b/doc/html/manual_8dox.html
new file mode 100644
index 0000000000000000000000000000000000000000..6c4b9893dbfb222da16652dfd4a0d7f9ea6c6b9b
--- /dev/null
+++ b/doc/html/manual_8dox.html
@@ -0,0 +1,105 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>MAiNGO: manual.dox File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(initResizable);
+/* @license-end */</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><img alt="Logo" src="mango_only.png"/></td>
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">MAiNGO
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(document).ready(function(){initNavTree('manual_8dox.html','');});
+/* @license-end */
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">manual.dox File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="manual_8dox.html">manual.dox</a></li>
+    <li class="footer">Generated by
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/doc/html/mc_forward_8h.html b/doc/html/mc_forward_8h.html
index 65a1aa89b5bda89f6a38c71daa17bc3ddac22645..c95d1924f2f69c32625169313cf7f537c5ffc2d4 100644
--- a/doc/html/mc_forward_8h.html
+++ b/doc/html/mc_forward_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/mcForward.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/mcForward.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -117,7 +117,7 @@ Functions</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="mc_forward_8h.html">mcForward.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/mc_forward_8h_source.html b/doc/html/mc_forward_8h_source.html
index 8251764dbd50f4835f518b198ea31e5623a34777..c79451da7844e0550a81dc73c96a76baf2bab135 100644
--- a/doc/html/mc_forward_8h_source.html
+++ b/doc/html/mc_forward_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/mcForward.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/mcForward.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,7 +90,7 @@ $(document).ready(function(){initNavTree('mc_forward_8h_source.html','');});
 <div class="title">mcForward.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="mc_forward_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file mcForward.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing forward declaration of certain classes defined in MC++</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *        to avoid excessive dependencies.</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemc.html">mc</a> {</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="keyword">class </span>FFVar;                                                          </div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="keyword">class </span>FFGraph;                                                        </div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="keyword">struct </span>FFSubgraph;                                                    </div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="keyword">class </span>FFOp;                                                           </div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="keywordtype">double</span> <a class="code" href="namespacemc.html#a38d812b6e163b42939e3f2c5b0fdf70f">machprec</a>();                                                    </div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespacemc.html#a8581fc8211bcb47503faef73e2dcfcaa">isequal</a>(<span class="keyword">const</span> <span class="keywordtype">double</span>, <span class="keyword">const</span> <span class="keywordtype">double</span>, <span class="keyword">const</span> <span class="keywordtype">double</span>, <span class="keyword">const</span> <span class="keywordtype">double</span>); </div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;}    <span class="comment">// end namespace mc</span></div><div class="ttc" id="namespacemc_html"><div class="ttname"><a href="namespacemc.html">mc</a></div><div class="ttdoc">namespace holding forward declaration of McCormick objects. For more info refer to the open-source li...</div></div>
+<a href="mc_forward_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemc.html">mc</a> {</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="keyword">class </span>FFVar;                                                          </div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="keyword">class </span>FFGraph;                                                        </div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="keyword">struct </span>FFSubgraph;                                                    </div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="keyword">class </span>FFOp;                                                           </div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="keywordtype">double</span> <a class="code" href="namespacemc.html#a38d812b6e163b42939e3f2c5b0fdf70f">machprec</a>();                                                    </div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespacemc.html#a8581fc8211bcb47503faef73e2dcfcaa">isequal</a>(<span class="keyword">const</span> <span class="keywordtype">double</span>, <span class="keyword">const</span> <span class="keywordtype">double</span>, <span class="keyword">const</span> <span class="keywordtype">double</span>, <span class="keyword">const</span> <span class="keywordtype">double</span>); </div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;}    <span class="comment">// end namespace mc</span></div><div class="ttc" id="namespacemc_html"><div class="ttname"><a href="namespacemc.html">mc</a></div><div class="ttdoc">namespace holding forward declaration of McCormick objects. For more info refer to the open-source li...</div></div>
 <div class="ttc" id="namespacemc_html_a38d812b6e163b42939e3f2c5b0fdf70f"><div class="ttname"><a href="namespacemc.html#a38d812b6e163b42939e3f2c5b0fdf70f">mc::machprec</a></div><div class="ttdeci">double machprec()</div></div>
 <div class="ttc" id="namespacemc_html_a8581fc8211bcb47503faef73e2dcfcaa"><div class="ttname"><a href="namespacemc.html#a8581fc8211bcb47503faef73e2dcfcaa">mc::isequal</a></div><div class="ttdeci">bool isequal(const double, const double, const double, const double)</div></div>
 </div><!-- fragment --></div><!-- contents -->
@@ -101,7 +101,7 @@ $(document).ready(function(){initNavTree('mc_forward_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="mc_forward_8h.html">mcForward.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/menu.js b/doc/html/menu.js
index 433c15b8f01814eb5f5ee0e9bba623e07fc04cb2..89aaf575c62a7610cd83ddc0a230de8a2697a18e 100644
--- a/doc/html/menu.js
+++ b/doc/html/menu.js
@@ -40,7 +40,7 @@ function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
   $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
   if (searchEnabled) {
     if (serverSide) {
-      $('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><div class="left"><form id="FSearchBox" action="'+relPath+searchPage+'" method="get"><img id="MSearchSelect" src="'+relPath+'search/mag.png" alt=""/><input type="text" id="MSearchField" name="query" value="'+search+'" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)"></form></div><div class="right"></div></div></li>');
+      $('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><div class="left"><form id="FSearchBox" action="'+searchPage+'" method="get"><img id="MSearchSelect" src="'+relPath+'search/mag.png" alt=""/><input type="text" id="MSearchField" name="query" value="'+search+'" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)"></form></div><div class="right"></div></div></li>');
     } else {
       $('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><span class="left"><img id="MSearchSelect" src="'+relPath+'search/mag_sel.png" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/><input type="text" id="MSearchField" value="'+search+'" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/></span><span class="right"><a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="'+relPath+'search/close.png" alt=""/></a></span></div></li>');
     }
diff --git a/doc/html/menudata.js b/doc/html/menudata.js
index b261de071d72f92fa687c959a9541c4ed357c9b6..c6e095e0454c663e569e38c7c396c25df984f997 100644
--- a/doc/html/menudata.js
+++ b/doc/html/menudata.js
@@ -95,7 +95,7 @@ var menudata={children:[
 {text:"Class Hierarchy",url:"hierarchy.html"},
 {text:"Class Members",url:"functions.html",children:[
 {text:"All",url:"functions.html",children:[
-{text:"_",url:"functions.html#index__5F"},
+{text:"_",url:"functions.html#index__"},
 {text:"a",url:"functions_a.html#index_a"},
 {text:"b",url:"functions_b.html#index_b"},
 {text:"c",url:"functions_c.html#index_c"},
@@ -121,9 +121,9 @@ var menudata={children:[
 {text:"w",url:"functions_w.html#index_w"},
 {text:"x",url:"functions_x.html#index_x"},
 {text:"z",url:"functions_z.html#index_z"},
-{text:"~",url:"functions_~.html#index__7E"}]},
+{text:"~",url:"functions_0x7e.html#index_0x7e"}]},
 {text:"Functions",url:"functions_func.html",children:[
-{text:"_",url:"functions_func.html#index__5F"},
+{text:"_",url:"functions_func.html#index__"},
 {text:"a",url:"functions_func_a.html#index_a"},
 {text:"b",url:"functions_func_b.html#index_b"},
 {text:"c",url:"functions_func_c.html#index_c"},
@@ -147,9 +147,9 @@ var menudata={children:[
 {text:"w",url:"functions_func_w.html#index_w"},
 {text:"x",url:"functions_func_x.html#index_x"},
 {text:"z",url:"functions_func_z.html#index_z"},
-{text:"~",url:"functions_func_~.html#index__7E"}]},
+{text:"~",url:"functions_func_0x7e.html#index_0x7e"}]},
 {text:"Variables",url:"functions_vars.html",children:[
-{text:"_",url:"functions_vars.html#index__5F"},
+{text:"_",url:"functions_vars.html#index__"},
 {text:"a",url:"functions_vars_a.html#index_a"},
 {text:"b",url:"functions_vars_b.html#index_b"},
 {text:"c",url:"functions_vars_c.html#index_c"},
@@ -188,6 +188,7 @@ var menudata={children:[
 {text:"l",url:"globals.html#index_l"},
 {text:"m",url:"globals.html#index_m"},
 {text:"n",url:"globals.html#index_n"},
+{text:"p",url:"globals.html#index_p"},
 {text:"s",url:"globals.html#index_s"},
 {text:"v",url:"globals.html#index_v"},
 {text:"w",url:"globals.html#index_w"},
@@ -200,6 +201,7 @@ var menudata={children:[
 {text:"g",url:"globals_func.html#index_g"},
 {text:"i",url:"globals_func.html#index_i"},
 {text:"n",url:"globals_func.html#index_n"},
+{text:"p",url:"globals_func.html#index_p"},
 {text:"s",url:"globals_func.html#index_s"},
 {text:"w",url:"globals_func.html#index_w"},
 {text:"x",url:"globals_func.html#index_x"}]},
diff --git a/doc/html/mpi_utilities_8h.html b/doc/html/mpi_utilities_8h.html
index 3172c051e93017d104a78395d60740cc5da212b2..950817f043b5cc11100f2efa2057ddab8c469f21 100644
--- a/doc/html/mpi_utilities_8h.html
+++ b/doc/html/mpi_utilities_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/mpiUtilities.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/mpiUtilities.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -203,7 +203,7 @@ Macros</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="mpi_utilities_8h.html">mpiUtilities.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/mpi_utilities_8h_source.html b/doc/html/mpi_utilities_8h_source.html
index 5017f9a932b5430af76003a421f94c126d83b0c5..461c747aa28d88190852e8aff5f36b4b0416c707 100644
--- a/doc/html/mpi_utilities_8h_source.html
+++ b/doc/html/mpi_utilities_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/mpiUtilities.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/mpiUtilities.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,15 +90,15 @@ $(document).ready(function(){initNavTree('mpi_utilities_8h_source.html','');});
 <div class="title">mpiUtilities.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="mpi_utilities_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file mpiUtilities.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing macros and utility functions for parallel MAiNGO version.</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#ifdef HAVE_MAiNGO_MPI</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_node_8h.html">babNode.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;mpi.h&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#define MAiNGO_IF_BAB_MANAGER if (_rank == 0) {</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#define MAiNGO_IF_BAB_WORKER if (_rank != 0) {</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#define MAiNGO_ELSE \</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">    }               \</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">    else            \</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">    {</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#define MAiNGO_END_IF }</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#define MAiNGO_MPI_BARRIER MPI_Barrier(MPI_COMM_WORLD);</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#define MAiNGO_MPI_FINALIZE MPI_Finalize();</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="mpi_utilities_8h.html#a58a5dd8af7f8115f3912aef5739e220f">   33</a></span>&#160;<span class="preprocessor">#define MAiNGO_IF_BAB_MANAGER</span></div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="mpi_utilities_8h.html#a9f6c0adaeeb5cca048c69a61b146d2ed">   34</a></span>&#160;<span class="preprocessor">#define MAiNGO_IF_BAB_WORKER</span></div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="mpi_utilities_8h.html#a8ffce2ba04e8543df48213c6d9558ae8">   35</a></span>&#160;<span class="preprocessor">#define MAiNGO_ELSE</span></div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="mpi_utilities_8h.html#a968757c11f6e5a2d685ec7eb8fd7f6a4">   36</a></span>&#160;<span class="preprocessor">#define MAiNGO_END_IF</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="mpi_utilities_8h.html#a8f1c8431cb29b8b2a94c0af1bc63de5e">   38</a></span>&#160;<span class="preprocessor">#define MAiNGO_MPI_BARRIER</span></div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="mpi_utilities_8h.html#a39e8f48c47d82dc275f1f5e32de92d2a">   39</a></span>&#160;<span class="preprocessor">#define MAiNGO_MPI_FINALIZE</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#ifdef HAVE_MAiNGO_MPI</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="keyword">enum</span> BCAST_TAG {</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    BCAST_NOTHING_PENDING = 0,    </div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    BCAST_EXCEPTION,              </div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    BCAST_EVERYTHING_FINE,        </div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    BCAST_TIGHTENING_INFEASIBLE,  </div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    BCAST_CONSTR_PROP_INFEASIBLE, </div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    BCAST_INFEASIBLE,             </div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    BCAST_FEASIBLE,               </div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    BCAST_TERMINATE,              </div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    BCAST_FOUND_FEAS,             </div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    BCAST_SCALING_NEEDED          </div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;};</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="keyword">enum</span> COMMUNICATION_TAG {</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    TAG_EXCEPTION = 0,                </div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    TAG_FOUND_INCUMBENT,              </div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    TAG_NEW_INCUMBENT,                </div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    TAG_NEW_INCUMBENT_ID,             </div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    TAG_NODE_REQUEST,                 </div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    TAG_NEW_NODE_NO_INCUMBENT,        </div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    TAG_NEW_NODE_NEW_INCUMBENT,       </div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    TAG_NEW_NODE_UBD,                 </div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    TAG_SOLVED_NODE_STATUS_NORMAL,    </div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    TAG_SOLVED_NODE_STATUS_CONVERGED, </div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    TAG_SOLVED_NODE_STATUS_INFEAS,    </div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    TAG_SOLVED_NODE_LBD,              </div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    TAG_SOLVED_NODE_SOLUTION_POINT,   </div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    TAG_SOLVED_NODE_STATISTICS,       </div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    TAG_NODE_ID,                      </div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    TAG_NODE_PRUNING_SCORE,           </div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    TAG_NODE_LOWER_BOUNDS,            </div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    TAG_NODE_UPPER_BOUNDS,            </div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    TAG_NODE_HAS_INCUMBENT,           </div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    TAG_NODE_DEPTH,                   </div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    TAG_WORKER_FINISHED,              </div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    TAG_MS_STOP_SOLVING,              </div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    TAG_MS_NEW_POINT,                 </div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    TAG_MS_SOLUTION,                  </div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    TAG_MS_FEAS,                      </div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    TAG_MS_INFEAS,                    </div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;};</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;send_babnode(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;node, <span class="keyword">const</span> <span class="keywordtype">int</span> dest)</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;{</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    <span class="keywordtype">int</span> <span class="keywordtype">id</span>                 = node.<a class="code" href="classbab_base_1_1_bab_node.html#a12e23225255660e57238ecb0820ea420">get_ID</a>();</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    std::vector&lt;double&gt; lb = node.<a class="code" href="classbab_base_1_1_bab_node.html#a00e68c3242d5180d302cf5c8e1f8de2c">get_lower_bounds</a>();</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    std::vector&lt;double&gt; ub = node.<a class="code" href="classbab_base_1_1_bab_node.html#a2a0922468fbfe492d9d70231c54c4bf9">get_upper_bounds</a>();</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    <span class="keywordtype">int</span> hI                 = node.<a class="code" href="classbab_base_1_1_bab_node.html#a57bfdc7281a869bc98abe20d78eb1df6">holds_incumbent</a>() ? 1 : 0;</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    <span class="keywordtype">double</span> pruningScore    = node.<a class="code" href="classbab_base_1_1_bab_node.html#a7b99992c4fb98f8086a3cf09ab8d96ad">get_pruning_score</a>();</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    <span class="keywordtype">int</span> depth              = node.<a class="code" href="classbab_base_1_1_bab_node.html#a63bb749d97a5a1ef6d5dde70ed9d4184">get_depth</a>();</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    <span class="comment">// Send all information</span></div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    MPI_Ssend(&amp;<span class="keywordtype">id</span>, 1, MPI_INT, dest, TAG_NODE_ID, MPI_COMM_WORLD);</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    MPI_Ssend(&amp;pruningScore, 1, MPI_DOUBLE, dest, TAG_NODE_PRUNING_SCORE, MPI_COMM_WORLD);</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    MPI_Ssend(lb.data(), lb.size(), MPI_DOUBLE, dest, TAG_NODE_LOWER_BOUNDS, MPI_COMM_WORLD);</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    MPI_Ssend(ub.data(), lb.size(), MPI_DOUBLE, dest, TAG_NODE_UPPER_BOUNDS, MPI_COMM_WORLD);</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    MPI_Ssend(&amp;hI, 1, MPI_INT, dest, TAG_NODE_HAS_INCUMBENT, MPI_COMM_WORLD);</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    MPI_Ssend(&amp;depth, 1, MPI_INT, dest, TAG_NODE_DEPTH, MPI_COMM_WORLD);</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;}</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;recv_babnode(<a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;node, <span class="keyword">const</span> <span class="keywordtype">int</span> source, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nvar)</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;{</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    <span class="keywordtype">int</span> id;</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;    std::vector&lt;double&gt; lb(nvar, 0);</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    std::vector&lt;double&gt; ub(nvar, 0);</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    <span class="keywordtype">int</span> hI;</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    <span class="keywordtype">double</span> pruningScore;</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    <span class="keywordtype">int</span> depth;</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    MPI_Recv(&amp;<span class="keywordtype">id</span>, 1, MPI_INT, source, TAG_NODE_ID, MPI_COMM_WORLD, MPI_STATUS_IGNORE);</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    MPI_Recv(&amp;pruningScore, 1, MPI_DOUBLE, source, TAG_NODE_PRUNING_SCORE, MPI_COMM_WORLD, MPI_STATUS_IGNORE);</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    MPI_Recv(lb.data(), nvar, MPI_DOUBLE, source, TAG_NODE_LOWER_BOUNDS, MPI_COMM_WORLD, MPI_STATUS_IGNORE);</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    MPI_Recv(ub.data(), nvar, MPI_DOUBLE, source, TAG_NODE_UPPER_BOUNDS, MPI_COMM_WORLD, MPI_STATUS_IGNORE);</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;    MPI_Recv(&amp;hI, 1, MPI_INT, source, TAG_NODE_HAS_INCUMBENT, MPI_COMM_WORLD, MPI_STATUS_IGNORE);</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    MPI_Recv(&amp;depth, 1, MPI_INT, source, TAG_NODE_DEPTH, MPI_COMM_WORLD, MPI_STATUS_IGNORE);</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    node = <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a>(pruningScore, lb, ub, <span class="keywordtype">id</span>, depth, hI == 1);</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;}</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;recv_vector_double(std::vector&lt;double&gt; &amp;vec, <span class="keywordtype">int</span> source, <span class="keywordtype">int</span> tag, MPI_Comm comm, MPI_Status *status)</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;{</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;    MPI_Status probeStatus;</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    <span class="keywordtype">int</span> messageSize;</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;    MPI_Probe(source, tag, MPI_COMM_WORLD, &amp;probeStatus);</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    MPI_Get_count(&amp;probeStatus, MPI_DOUBLE, &amp;messageSize);</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    vec.resize(messageSize);</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    MPI_Recv(vec.data(), messageSize, MPI_DOUBLE, source, tag, comm, status);</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;}</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;recv_vector_int(std::vector&lt;int&gt; &amp;vec, <span class="keywordtype">int</span> source, <span class="keywordtype">int</span> tag, MPI_Comm comm, MPI_Status *status)</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;{</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;    MPI_Status probeStatus;</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;    <span class="keywordtype">int</span> messageSize;</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    MPI_Probe(source, tag, MPI_COMM_WORLD, &amp;probeStatus);</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;    MPI_Get_count(&amp;probeStatus, MPI_INT, &amp;messageSize);</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;    vec.resize(messageSize);</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    MPI_Recv(vec.data(), messageSize, MPI_INT, source, tag, comm, status);</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;}</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;<span class="keyword">struct </span>WorkerNodeComparator {</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;    <span class="keywordtype">bool</span> operator()(<span class="keyword">const</span> std::pair&lt;bool, double&gt; &amp;a, <span class="keyword">const</span> std::pair&lt;bool, double&gt; &amp;b)<span class="keyword"> const</span></div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;<span class="keyword">    </span>{</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;        <span class="keywordflow">if</span> (a.first) {</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;            <span class="keywordflow">if</span> (b.first) {</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;                <span class="keywordflow">return</span> a.second &lt; b.second;</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;            }</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;            <span class="keywordflow">else</span> {</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;                <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;            }</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;        }</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;        <span class="keywordflow">else</span> {</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;        }</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    };</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;};</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;<span class="preprocessor">#endif</span></div><div class="ttc" id="classbab_base_1_1_bab_node_html_a12e23225255660e57238ecb0820ea420"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a12e23225255660e57238ecb0820ea420">babBase::BabNode::get_ID</a></div><div class="ttdeci">int get_ID() const</div><div class="ttdoc">Function for querying the node ID.</div><div class="ttdef"><b>Definition:</b> babNode.h:100</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html"><div class="ttname"><a href="classbab_base_1_1_bab_node.html">babBase::BabNode</a></div><div class="ttdoc">Class representing a node in the Branch-and-Bound tree.</div><div class="ttdef"><b>Definition:</b> babNode.h:35</div></div>
+<a href="mpi_utilities_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#ifdef HAVE_MAiNGO_MPI</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_node_8h.html">babNode.h</a>&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &quot;mpi.h&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#define MAiNGO_IF_BAB_MANAGER if (_rank == 0) {</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#define MAiNGO_IF_BAB_WORKER if (_rank != 0) {</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define MAiNGO_ELSE \</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">    }               \</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">    else            \</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">    {</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#define MAiNGO_END_IF }</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#define MAiNGO_MPI_BARRIER MPI_Barrier(MPI_COMM_WORLD);</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#define MAiNGO_MPI_FINALIZE MPI_Finalize();</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="mpi_utilities_8h.html#a58a5dd8af7f8115f3912aef5739e220f">   29</a></span>&#160;<span class="preprocessor">#define MAiNGO_IF_BAB_MANAGER</span></div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="mpi_utilities_8h.html#a9f6c0adaeeb5cca048c69a61b146d2ed">   30</a></span>&#160;<span class="preprocessor">#define MAiNGO_IF_BAB_WORKER</span></div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="mpi_utilities_8h.html#a8ffce2ba04e8543df48213c6d9558ae8">   31</a></span>&#160;<span class="preprocessor">#define MAiNGO_ELSE</span></div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="mpi_utilities_8h.html#a968757c11f6e5a2d685ec7eb8fd7f6a4">   32</a></span>&#160;<span class="preprocessor">#define MAiNGO_END_IF</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="mpi_utilities_8h.html#a8f1c8431cb29b8b2a94c0af1bc63de5e">   34</a></span>&#160;<span class="preprocessor">#define MAiNGO_MPI_BARRIER</span></div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="mpi_utilities_8h.html#a39e8f48c47d82dc275f1f5e32de92d2a">   35</a></span>&#160;<span class="preprocessor">#define MAiNGO_MPI_FINALIZE</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#ifdef HAVE_MAiNGO_MPI</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="keyword">enum</span> BCAST_TAG {</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    BCAST_NOTHING_PENDING = 0,    </div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    BCAST_EXCEPTION,              </div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    BCAST_EVERYTHING_FINE,        </div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    BCAST_TIGHTENING_INFEASIBLE,  </div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    BCAST_CONSTR_PROP_INFEASIBLE, </div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    BCAST_INFEASIBLE,             </div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    BCAST_FEASIBLE,               </div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    BCAST_TERMINATE,              </div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    BCAST_FOUND_FEAS,             </div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    BCAST_SCALING_NEEDED          </div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;};</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="keyword">enum</span> COMMUNICATION_TAG {</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    TAG_EXCEPTION = 0,                </div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    TAG_FOUND_INCUMBENT,              </div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    TAG_NEW_INCUMBENT,                </div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    TAG_NEW_INCUMBENT_ID,             </div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    TAG_NODE_REQUEST,                 </div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    TAG_NEW_NODE_NO_INCUMBENT,        </div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    TAG_NEW_NODE_NEW_INCUMBENT,       </div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    TAG_NEW_NODE_UBD,                 </div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    TAG_SOLVED_NODE_STATUS_NORMAL,    </div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    TAG_SOLVED_NODE_STATUS_CONVERGED, </div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    TAG_SOLVED_NODE_STATUS_INFEAS,    </div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    TAG_SOLVED_NODE_LBD,              </div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    TAG_SOLVED_NODE_SOLUTION_POINT,   </div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    TAG_SOLVED_NODE_STATISTICS,       </div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    TAG_NODE_ID,                      </div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    TAG_NODE_PRUNING_SCORE,           </div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    TAG_NODE_LOWER_BOUNDS,            </div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    TAG_NODE_UPPER_BOUNDS,            </div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    TAG_NODE_HAS_INCUMBENT,           </div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    TAG_NODE_DEPTH,                   </div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    TAG_WORKER_FINISHED,              </div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    TAG_MS_STOP_SOLVING,              </div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    TAG_MS_NEW_POINT,                 </div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    TAG_MS_SOLUTION,                  </div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    TAG_MS_FEAS,                      </div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    TAG_MS_INFEAS,                    </div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;};</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;send_babnode(<span class="keyword">const</span> <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;node, <span class="keyword">const</span> <span class="keywordtype">int</span> dest)</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;{</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    <span class="keywordtype">int</span> <span class="keywordtype">id</span>                 = node.<a class="code" href="classbab_base_1_1_bab_node.html#a12e23225255660e57238ecb0820ea420">get_ID</a>();</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    std::vector&lt;double&gt; lb = node.<a class="code" href="classbab_base_1_1_bab_node.html#a00e68c3242d5180d302cf5c8e1f8de2c">get_lower_bounds</a>();</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    std::vector&lt;double&gt; ub = node.<a class="code" href="classbab_base_1_1_bab_node.html#a2a0922468fbfe492d9d70231c54c4bf9">get_upper_bounds</a>();</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <span class="keywordtype">int</span> hI                 = node.<a class="code" href="classbab_base_1_1_bab_node.html#a57bfdc7281a869bc98abe20d78eb1df6">holds_incumbent</a>() ? 1 : 0;</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    <span class="keywordtype">double</span> pruningScore    = node.<a class="code" href="classbab_base_1_1_bab_node.html#a7b99992c4fb98f8086a3cf09ab8d96ad">get_pruning_score</a>();</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    <span class="keywordtype">int</span> depth              = node.<a class="code" href="classbab_base_1_1_bab_node.html#a63bb749d97a5a1ef6d5dde70ed9d4184">get_depth</a>();</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    <span class="comment">// Send all information</span></div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    MPI_Ssend(&amp;<span class="keywordtype">id</span>, 1, MPI_INT, dest, TAG_NODE_ID, MPI_COMM_WORLD);</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    MPI_Ssend(&amp;pruningScore, 1, MPI_DOUBLE, dest, TAG_NODE_PRUNING_SCORE, MPI_COMM_WORLD);</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    MPI_Ssend(lb.data(), lb.size(), MPI_DOUBLE, dest, TAG_NODE_LOWER_BOUNDS, MPI_COMM_WORLD);</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    MPI_Ssend(ub.data(), lb.size(), MPI_DOUBLE, dest, TAG_NODE_UPPER_BOUNDS, MPI_COMM_WORLD);</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    MPI_Ssend(&amp;hI, 1, MPI_INT, dest, TAG_NODE_HAS_INCUMBENT, MPI_COMM_WORLD);</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    MPI_Ssend(&amp;depth, 1, MPI_INT, dest, TAG_NODE_DEPTH, MPI_COMM_WORLD);</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;}</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;recv_babnode(<a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> &amp;node, <span class="keyword">const</span> <span class="keywordtype">int</span> source, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nvar)</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;{</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    <span class="keywordtype">int</span> id;</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    std::vector&lt;double&gt; lb(nvar, 0);</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    std::vector&lt;double&gt; ub(nvar, 0);</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    <span class="keywordtype">int</span> hI;</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    <span class="keywordtype">double</span> pruningScore;</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;    <span class="keywordtype">int</span> depth;</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    MPI_Recv(&amp;<span class="keywordtype">id</span>, 1, MPI_INT, source, TAG_NODE_ID, MPI_COMM_WORLD, MPI_STATUS_IGNORE);</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    MPI_Recv(&amp;pruningScore, 1, MPI_DOUBLE, source, TAG_NODE_PRUNING_SCORE, MPI_COMM_WORLD, MPI_STATUS_IGNORE);</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;    MPI_Recv(lb.data(), nvar, MPI_DOUBLE, source, TAG_NODE_LOWER_BOUNDS, MPI_COMM_WORLD, MPI_STATUS_IGNORE);</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    MPI_Recv(ub.data(), nvar, MPI_DOUBLE, source, TAG_NODE_UPPER_BOUNDS, MPI_COMM_WORLD, MPI_STATUS_IGNORE);</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    MPI_Recv(&amp;hI, 1, MPI_INT, source, TAG_NODE_HAS_INCUMBENT, MPI_COMM_WORLD, MPI_STATUS_IGNORE);</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    MPI_Recv(&amp;depth, 1, MPI_INT, source, TAG_NODE_DEPTH, MPI_COMM_WORLD, MPI_STATUS_IGNORE);</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    node = <a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a>(pruningScore, lb, ub, <span class="keywordtype">id</span>, depth, hI == 1);</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;}</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;recv_vector_double(std::vector&lt;double&gt; &amp;vec, <span class="keywordtype">int</span> source, <span class="keywordtype">int</span> tag, MPI_Comm comm, MPI_Status *status)</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;{</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;    MPI_Status probeStatus;</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;    <span class="keywordtype">int</span> messageSize;</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    MPI_Probe(source, tag, MPI_COMM_WORLD, &amp;probeStatus);</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;    MPI_Get_count(&amp;probeStatus, MPI_DOUBLE, &amp;messageSize);</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    vec.resize(messageSize);</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;    MPI_Recv(vec.data(), messageSize, MPI_DOUBLE, source, tag, comm, status);</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;}</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;recv_vector_int(std::vector&lt;int&gt; &amp;vec, <span class="keywordtype">int</span> source, <span class="keywordtype">int</span> tag, MPI_Comm comm, MPI_Status *status)</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;{</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;    MPI_Status probeStatus;</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;    <span class="keywordtype">int</span> messageSize;</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;    MPI_Probe(source, tag, MPI_COMM_WORLD, &amp;probeStatus);</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;    MPI_Get_count(&amp;probeStatus, MPI_INT, &amp;messageSize);</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;    vec.resize(messageSize);</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    MPI_Recv(vec.data(), messageSize, MPI_INT, source, tag, comm, status);</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;}</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;<span class="keyword">struct </span>WorkerNodeComparator {</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    <span class="keywordtype">bool</span> operator()(<span class="keyword">const</span> std::pair&lt;bool, double&gt; &amp;a, <span class="keyword">const</span> std::pair&lt;bool, double&gt; &amp;b)<span class="keyword"> const</span></div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;<span class="keyword">    </span>{</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;        <span class="keywordflow">if</span> (a.first) {</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;            <span class="keywordflow">if</span> (b.first) {</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;                <span class="keywordflow">return</span> a.second &lt; b.second;</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;            }</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;            <span class="keywordflow">else</span> {</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;                <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;            }</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;        }</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;        <span class="keywordflow">else</span> {</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;        }</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;    };</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;};</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;<span class="preprocessor">#endif</span></div><div class="ttc" id="classbab_base_1_1_bab_node_html_a12e23225255660e57238ecb0820ea420"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a12e23225255660e57238ecb0820ea420">babBase::BabNode::get_ID</a></div><div class="ttdeci">int get_ID() const</div><div class="ttdoc">Function for querying the node ID. </div><div class="ttdef"><b>Definition:</b> babNode.h:100</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html"><div class="ttname"><a href="classbab_base_1_1_bab_node.html">babBase::BabNode</a></div><div class="ttdoc">Class representing a node in the Branch-and-Bound tree. </div><div class="ttdef"><b>Definition:</b> babNode.h:35</div></div>
 <div class="ttc" id="bab_node_8h_html"><div class="ttname"><a href="bab_node_8h.html">babNode.h</a></div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html_a00e68c3242d5180d302cf5c8e1f8de2c"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a00e68c3242d5180d302cf5c8e1f8de2c">babBase::BabNode::get_lower_bounds</a></div><div class="ttdeci">std::vector&lt; double &gt; get_lower_bounds() const</div><div class="ttdoc">Function for querying the lower bounds on the optimization variables within this node.</div><div class="ttdef"><b>Definition:</b> babNode.h:90</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html_a63bb749d97a5a1ef6d5dde70ed9d4184"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a63bb749d97a5a1ef6d5dde70ed9d4184">babBase::BabNode::get_depth</a></div><div class="ttdeci">int get_depth() const</div><div class="ttdoc">Function for querying the node depth.</div><div class="ttdef"><b>Definition:</b> babNode.h:105</div></div>
-<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO</div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html_a57bfdc7281a869bc98abe20d78eb1df6"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a57bfdc7281a869bc98abe20d78eb1df6">babBase::BabNode::holds_incumbent</a></div><div class="ttdeci">bool holds_incumbent() const</div><div class="ttdoc">Function obtaining information whether the node holds the incumbent.</div><div class="ttdef"><b>Definition:</b> babNode.h:110</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html_a2a0922468fbfe492d9d70231c54c4bf9"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a2a0922468fbfe492d9d70231c54c4bf9">babBase::BabNode::get_upper_bounds</a></div><div class="ttdeci">std::vector&lt; double &gt; get_upper_bounds() const</div><div class="ttdoc">Function for querying the upper bounds on the optimization variables within this node.</div><div class="ttdef"><b>Definition:</b> babNode.h:95</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html_a7b99992c4fb98f8086a3cf09ab8d96ad"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a7b99992c4fb98f8086a3cf09ab8d96ad">babBase::BabNode::get_pruning_score</a></div><div class="ttdeci">double get_pruning_score() const</div><div class="ttdoc">Function for querying the pruning score within this node.</div><div class="ttdef"><b>Definition:</b> babNode.h:80</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html_a00e68c3242d5180d302cf5c8e1f8de2c"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a00e68c3242d5180d302cf5c8e1f8de2c">babBase::BabNode::get_lower_bounds</a></div><div class="ttdeci">std::vector&lt; double &gt; get_lower_bounds() const</div><div class="ttdoc">Function for querying the lower bounds on the optimization variables within this node. </div><div class="ttdef"><b>Definition:</b> babNode.h:90</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html_a63bb749d97a5a1ef6d5dde70ed9d4184"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a63bb749d97a5a1ef6d5dde70ed9d4184">babBase::BabNode::get_depth</a></div><div class="ttdeci">int get_depth() const</div><div class="ttdoc">Function for querying the node depth. </div><div class="ttdef"><b>Definition:</b> babNode.h:105</div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html_a57bfdc7281a869bc98abe20d78eb1df6"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a57bfdc7281a869bc98abe20d78eb1df6">babBase::BabNode::holds_incumbent</a></div><div class="ttdeci">bool holds_incumbent() const</div><div class="ttdoc">Function obtaining information whether the node holds the incumbent. </div><div class="ttdef"><b>Definition:</b> babNode.h:110</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html_a2a0922468fbfe492d9d70231c54c4bf9"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a2a0922468fbfe492d9d70231c54c4bf9">babBase::BabNode::get_upper_bounds</a></div><div class="ttdeci">std::vector&lt; double &gt; get_upper_bounds() const</div><div class="ttdoc">Function for querying the upper bounds on the optimization variables within this node. </div><div class="ttdef"><b>Definition:</b> babNode.h:95</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html_a7b99992c4fb98f8086a3cf09ab8d96ad"><div class="ttname"><a href="classbab_base_1_1_bab_node.html#a7b99992c4fb98f8086a3cf09ab8d96ad">babBase::BabNode::get_pruning_score</a></div><div class="ttdeci">double get_pruning_score() const</div><div class="ttdoc">Function for querying the pruning score within this node. </div><div class="ttdef"><b>Definition:</b> babNode.h:80</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -107,7 +107,7 @@ $(document).ready(function(){initNavTree('mpi_utilities_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="mpi_utilities_8h.html">mpiUtilities.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespacebab_base.html b/doc/html/namespacebab_base.html
index f69c67dc3e7ed3f01476b97f2e533ee59d6efcf5..32e5958174f4f0d4f1c384b72e1b95b23eb8324f 100644
--- a/doc/html/namespacebab_base.html
+++ b/doc/html/namespacebab_base.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: babBase Namespace Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -95,7 +95,7 @@ $(document).ready(function(){initNavTree('namespacebab_base.html','');});
 </div><!--header-->
 <div class="contents">
 
-<p>namespace holding all essentials of the <a class="el" href="namespacebab_base.html" title="namespace holding all essentials of the babBase submodule">babBase</a> submodule  
+<p>namespace holding all essentials of the <a class="el" href="namespacebab_base.html" title="namespace holding all essentials of the babBase submodule ">babBase</a> submodule  
 <a href="#details">More...</a></p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
@@ -145,6 +145,15 @@ Classes</h2></td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
 Functions</h2></td></tr>
+<tr class="memitem:ace0cd5136bac463b84cdd69b51be9f49"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacebab_base.html#ace0cd5136bac463b84cdd69b51be9f49">operator&lt;&lt;</a> (std::ostream &amp;os, const <a class="el" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;b)</td></tr>
+<tr class="memdesc:ace0cd5136bac463b84cdd69b51be9f49"><td class="mdescLeft">&#160;</td><td class="mdescRight">Overloaded outstream operator for nicer output.  <a href="#ace0cd5136bac463b84cdd69b51be9f49">More...</a><br /></td></tr>
+<tr class="separator:ace0cd5136bac463b84cdd69b51be9f49"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa4d99f78f3dad3b027ca3cf5f9cf4478"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacebab_base.html#aa4d99f78f3dad3b027ca3cf5f9cf4478">operator==</a> (const <a class="el" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;b1, const <a class="el" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;b2)</td></tr>
+<tr class="memdesc:aa4d99f78f3dad3b027ca3cf5f9cf4478"><td class="mdescLeft">&#160;</td><td class="mdescRight">Equality operator for checking if two bound objects are equal.  <a href="#aa4d99f78f3dad3b027ca3cf5f9cf4478">More...</a><br /></td></tr>
+<tr class="separator:aa4d99f78f3dad3b027ca3cf5f9cf4478"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6d2be1c108f096eff60042aa02e3781e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacebab_base.html#a6d2be1c108f096eff60042aa02e3781e">operator!=</a> (const <a class="el" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;b1, const <a class="el" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;b2)</td></tr>
+<tr class="memdesc:a6d2be1c108f096eff60042aa02e3781e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inequality operator for checking if two bound objects differ from each other.  <a href="#a6d2be1c108f096eff60042aa02e3781e">More...</a><br /></td></tr>
+<tr class="separator:a6d2be1c108f096eff60042aa02e3781e"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aa9bc767e7e3b13c80b9c529eb5764592"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacebab_base.html#aa9bc767e7e3b13c80b9c529eb5764592">select_branching_dimension_absdiam</a> (const <a class="el" href="classbab_base_1_1_bab_node.html">BabNode</a> &amp;parentNode, const std::vector&lt; double &gt; &amp;relaxationSolutionPoint, const double relaxationSolutionObjValue, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">OptimizationVariable</a> &gt; &amp;globalOptimizationVars)</td></tr>
 <tr class="memdesc:aa9bc767e7e3b13c80b9c529eb5764592"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for selecting the variable to branch on by choosing the one with the largest diameter.  <a href="#aa9bc767e7e3b13c80b9c529eb5764592">More...</a><br /></td></tr>
 <tr class="separator:aa9bc767e7e3b13c80b9c529eb5764592"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -167,7 +176,7 @@ Functions</h2></td></tr>
 <tr class="memdesc:ad18c8a7d403193113c3d6c4ecef067c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the multiplier for calculation of pseudocosts.  <a href="#ad18c8a7d403193113c3d6c4ecef067c3">More...</a><br /></td></tr>
 <tr class="separator:ad18c8a7d403193113c3d6c4ecef067c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a8bfa85e64a4cf9554eec367d08122be9"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacebab_base.html#a8bfa85e64a4cf9554eec367d08122be9">operator&lt;&lt;</a> (std::ostream &amp;out, const <a class="el" href="classbab_base_1_1_bab_node.html">BabNode</a> &amp;node)</td></tr>
-<tr class="memdesc:a8bfa85e64a4cf9554eec367d08122be9"><td class="mdescLeft">&#160;</td><td class="mdescRight">operator &lt;&lt; overloaded for <a class="el" href="classbab_base_1_1_bab_node.html" title="Class representing a node in the Branch-and-Bound tree.">BabNode</a> for easier output  <a href="#a8bfa85e64a4cf9554eec367d08122be9">More...</a><br /></td></tr>
+<tr class="memdesc:a8bfa85e64a4cf9554eec367d08122be9"><td class="mdescLeft">&#160;</td><td class="mdescRight">operator &lt;&lt; overloaded for <a class="el" href="classbab_base_1_1_bab_node.html" title="Class representing a node in the Branch-and-Bound tree. ">BabNode</a> for easier output  <a href="#a8bfa85e64a4cf9554eec367d08122be9">More...</a><br /></td></tr>
 <tr class="separator:a8bfa85e64a4cf9554eec367d08122be9"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a7023aaaa7bf22bf1c3717cfa070f4e69"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classbab_base_1_1_bab_node_with_info.html">BabNodeWithInfo</a> &gt;::const_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacebab_base.html#a7023aaaa7bf22bf1c3717cfa070f4e69">select_node_highest_priority</a> (const std::vector&lt; <a class="el" href="classbab_base_1_1_bab_node_with_info.html">BabNodeWithInfo</a> &gt; &amp;nodeVectorIN)</td></tr>
 <tr class="memdesc:a7023aaaa7bf22bf1c3717cfa070f4e69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the node with the highest priority.  <a href="#a7023aaaa7bf22bf1c3717cfa070f4e69">More...</a><br /></td></tr>
@@ -191,7 +200,7 @@ Functions</h2></td></tr>
 <tr class="separator:a5366d466e365a73e1f3fc2800d64b776"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>namespace holding all essentials of the <a class="el" href="namespacebab_base.html" title="namespace holding all essentials of the babBase submodule">babBase</a> submodule </p>
+<div class="textblock"><p>namespace holding all essentials of the <a class="el" href="namespacebab_base.html" title="namespace holding all essentials of the babBase submodule ">babBase</a> submodule </p>
 </div><h2 class="groupheader">Function Documentation</h2>
 <a id="a3b9c69d27eaa95bab37d3340bac0afc5"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#a3b9c69d27eaa95bab37d3340bac0afc5">&#9670;&nbsp;</a></span>almost_equal()</h2>
@@ -434,10 +443,100 @@ template&lt;class T &gt; </div>
 
 <p>Function for BFS or lowPruning Score First (default), possible choice for calculating the node selection score. </p>
 
+</div>
+</div>
+<a id="a6d2be1c108f096eff60042aa02e3781e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6d2be1c108f096eff60042aa02e3781e">&#9670;&nbsp;</a></span>operator!=()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool babBase::operator!= </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;&#160;</td>
+          <td class="paramname"><em>b1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;&#160;</td>
+          <td class="paramname"><em>b2</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Inequality operator for checking if two bound objects differ from each other. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">b1</td><td>is the first bound object </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">b2</td><td>is the second bound object </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ace0cd5136bac463b84cdd69b51be9f49"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ace0cd5136bac463b84cdd69b51be9f49">&#9670;&nbsp;</a></span>operator&lt;&lt;() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::ostream&amp; babBase::operator&lt;&lt; </td>
+          <td>(</td>
+          <td class="paramtype">std::ostream &amp;&#160;</td>
+          <td class="paramname"><em>os</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;&#160;</td>
+          <td class="paramname"><em>b</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Overloaded outstream operator for nicer output. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[out]</td><td class="paramname">os</td><td>is the outstream to be written to </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>are the bounds to be written </td></tr>
+  </table>
+  </dd>
+</dl>
+
 </div>
 </div>
 <a id="a8bfa85e64a4cf9554eec367d08122be9"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a8bfa85e64a4cf9554eec367d08122be9">&#9670;&nbsp;</a></span>operator&lt;&lt;()</h2>
+<h2 class="memtitle"><span class="permalink"><a href="#a8bfa85e64a4cf9554eec367d08122be9">&#9670;&nbsp;</a></span>operator&lt;&lt;() <span class="overload">[2/2]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -470,7 +569,7 @@ template&lt;class T &gt; </div>
 </table>
 </div><div class="memdoc">
 
-<p>operator &lt;&lt; overloaded for <a class="el" href="classbab_base_1_1_bab_node.html" title="Class representing a node in the Branch-and-Bound tree.">BabNode</a> for easier output </p>
+<p>operator &lt;&lt; overloaded for <a class="el" href="classbab_base_1_1_bab_node.html" title="Class representing a node in the Branch-and-Bound tree. ">BabNode</a> for easier output </p>
 <p>Overloaded operator for easier output. Definition of this operator is in <a class="el" href="bab_8cpp.html">bab.cpp</a>.</p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
@@ -480,6 +579,51 @@ template&lt;class T &gt; </div>
   </dd>
 </dl>
 
+</div>
+</div>
+<a id="aa4d99f78f3dad3b027ca3cf5f9cf4478"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa4d99f78f3dad3b027ca3cf5f9cf4478">&#9670;&nbsp;</a></span>operator==()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool babBase::operator== </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;&#160;</td>
+          <td class="paramname"><em>b1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;&#160;</td>
+          <td class="paramname"><em>b2</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Equality operator for checking if two bound objects are equal. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">b1</td><td>is the first bound object </td></tr>
+    <tr><td class="paramdir">[in]</td><td class="paramname">b2</td><td>is the second bound object </td></tr>
+  </table>
+  </dd>
+</dl>
+
 </div>
 </div>
 <a id="a5366d466e365a73e1f3fc2800d64b776"></a>
@@ -724,7 +868,7 @@ template&lt;typename T &gt; </div>
     <li class="navelem"><a class="el" href="namespacebab_base.html">babBase</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespacebab_base_1_1enums.html b/doc/html/namespacebab_base_1_1enums.html
index b4983f9c33284cb2e6706bd83fb974e5f8ae079a..a583a70b2b841a66fcd1151d5f5904873d5017d5 100644
--- a/doc/html/namespacebab_base_1_1enums.html
+++ b/doc/html/namespacebab_base_1_1enums.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: babBase::enums Namespace Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -237,7 +237,7 @@ Enumerations</h2></td></tr>
 
 <p>Enum for representing the Variable Type of an optimization variable as specified by the user. </p>
 <table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a6b926f3dfa42fc3a3324c8b0ac99c48ba0b98d296343ee5946f17e4c1c2cfa1f7"></a>VT_CONTINUOUS&#160;</td><td class="fielddoc"><p>This is a continuous (i.e., real) variable. This is the default if no VT is specified. </p>
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a6b926f3dfa42fc3a3324c8b0ac99c48ba0b98d296343ee5946f17e4c1c2cfa1f7"></a>VT_CONTINUOUS&#160;</td><td class="fielddoc"><p>This is a continuous (i.e., real) variable. </p>
 </td></tr>
 <tr><td class="fieldname"><a id="a6b926f3dfa42fc3a3324c8b0ac99c48baeee7e08680959528bc9a9412081d5222"></a>VT_BINARY&#160;</td><td class="fielddoc"><p>This is a binary variable. </p>
 </td></tr>
@@ -255,7 +255,7 @@ Enumerations</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacebab_base.html">babBase</a></li><li class="navelem"><a class="el" href="namespacebab_base_1_1enums.html">enums</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespacemaingo.html b/doc/html/namespacemaingo.html
index d227174a6741b160ce8876ccb6c0c8302987a446..56f70afce565882dc97737b9a2438581f6ba5cab 100644
--- a/doc/html/namespacemaingo.html
+++ b/doc/html/namespacemaingo.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo Namespace Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -145,8 +145,8 @@ Classes</h2></td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html">MAiNGOmodelEpsCon</a></td></tr>
 <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This class is the base class for implementing bi-objective problems.  <a href="classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#details">More...</a><br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1model_function.html">modelFunction</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct for making work with the <a class="el" href="structmaingo_1_1_evaluation_container.html" title="Struct for storing the values returned by model evaluation at the given point &quot;var&quot;.">EvaluationContainer</a> easier for the user and also to ensure backward compatibility.  <a href="structmaingo_1_1model_function.html#details">More...</a><br /></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_model_function.html">ModelFunction</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct for making work with the <a class="el" href="structmaingo_1_1_evaluation_container.html" title="Struct for storing the values returned by model evaluation at the given point &quot;var&quot;. ">EvaluationContainer</a> easier for the user and also to ensure backward compatibility.  <a href="structmaingo_1_1_model_function.html#details">More...</a><br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_output_variable.html">OutputVariable</a></td></tr>
 <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct for storing additional output variables.  <a href="structmaingo_1_1_output_variable.html#details">More...</a><br /></td></tr>
@@ -155,7 +155,7 @@ Classes</h2></td></tr>
 <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Container Class for ALE expressions comprising an optimization problem.  <a href="structmaingo_1_1_program.html#details">More...</a><br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_program_parser.html">ProgramParser</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parser specialization for parsing a <a class="el" href="structmaingo_1_1_program.html" title="Container Class for ALE expressions comprising an optimization problem.">maingo::Program</a>.  <a href="classmaingo_1_1_program_parser.html#details">More...</a><br /></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parser specialization for parsing a <a class="el" href="structmaingo_1_1_program.html" title="Container Class for ALE expressions comprising an optimization problem. ">maingo::Program</a>.  <a href="classmaingo_1_1_program_parser.html#details">More...</a><br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html">Settings</a></td></tr>
 <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct for storing settings for <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a>.  <a href="structmaingo_1_1_settings.html#details">More...</a><br /></td></tr>
@@ -290,15 +290,14 @@ Enumerations</h2></td></tr>
 &#160;&#160;<a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a59bd95b4e1b3948bf713750d91992bb6">BAB_PRINTFREQ</a>, 
 <a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a7e7298426588825f3e948fe1e89527d9">BAB_LOGFREQ</a>, 
 <a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a6717bbec3198ea15d4f818af79374f09">OUTSTREAMVERBOSITY</a>, 
-<a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a67dd1fb20241b26b7ac93714b8b0aae1">WRITELOG</a>, 
+<a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5b17de1dc9ac64cce8a5bacab3dc8f5c">WRITECSV</a>, 
 <br />
-&#160;&#160;<a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5b17de1dc9ac64cce8a5bacab3dc8f5c">WRITECSV</a>, 
-<a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a20e6a32ee584c3187610f95ea83e1354">WRITEJSON</a>, 
-<a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ad208395baa4232a0d2e525d3ae4246cc">WRITERESFILE</a>, 
+&#160;&#160;<a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a20e6a32ee584c3187610f95ea83e1354">WRITEJSON</a>, 
+<a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a7e60bfc3f9fd67b15a9f9f78d9512d69">writeResultFile</a>, 
 <a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aaed1ec51d45446a3609dff1a0551116d">WRITETOLOGSEC</a>, 
+<a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5c772c254a5883d4c978284aa125c432">PRE_PRINTEVERYLOCALSEARCH</a>, 
 <br />
-&#160;&#160;<a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5c772c254a5883d4c978284aa125c432">PRE_PRINTEVERYLOCALSEARCH</a>, 
-<a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a70b90d0f834b991c2bdba8a75d240769">WRITETOOTHERLANGUAGE</a>, 
+&#160;&#160;<a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a70b90d0f834b991c2bdba8a75d240769">WRITETOOTHERLANGUAGE</a>, 
 <a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a266d2a23dde0c0404e4d261de460fd7f">UNKNOWN_SETTING</a> = 500
 <br />
  }</td></tr>
@@ -334,26 +333,19 @@ Enumerations</h2></td></tr>
  }</td></tr>
 <tr class="memdesc:a53603cf77a4aab12b16a3cce79b991be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enum for controlling the output level of solvers (i.e., how much should be printed on the screen and, possibly, to the log file).  <a href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">More...</a><br /></td></tr>
 <tr class="separator:a53603cf77a4aab12b16a3cce79b991be"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3d9300c6853caaf91b0afc24d3dd1ae0"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0">OUTSTREAM_VERB</a> { <a class="el" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0a11b0a1dd952da50747424243c027c808">OUTSTREAM_NONE</a> = 0, 
-<a class="el" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0a52f5f76af1455b5ee7ad085be3dbb0ed">OUTSTREAM_OUTSTREAM</a>, 
-<a class="el" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0aeafd0b37169b3bd9330488dfff7713b7">OUTSTREAM_LOG</a>, 
-<a class="el" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0a585dae7be6c02c38889b2be3e16fd2fb">OUTSTREAM_BOTH</a>
+<tr class="memitem:aed64ab21c095ed6882ea61128addd7a4"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4">LOGGING_DESTINATION</a> { <a class="el" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4a5ba5670261ac104d957be08824b10fda">LOGGING_NONE</a> = 0, 
+<a class="el" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4afb969130cbbe60ea7ede72325e349fbe">LOGGING_OUTSTREAM</a>, 
+<a class="el" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4a335b5d0a5d8ddae15c4f4dc56ff437c1">LOGGING_FILE</a>, 
+<a class="el" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4aaeb2ef5d2157419a5fe03924e9fbb714">LOGGING_FILE_AND_STREAM</a>
  }</td></tr>
-<tr class="memdesc:a3d9300c6853caaf91b0afc24d3dd1ae0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enum for controlling the output and writing level of MAiNGO (i.e., where should the output be written to, outstream and/or log)  <a href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0">More...</a><br /></td></tr>
-<tr class="separator:a3d9300c6853caaf91b0afc24d3dd1ae0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7fda513a30bb172152b96406e370299a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299a">PARSING_LANGUAGE</a> { <br />
-&#160;&#160;<a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aacd2ad11121ce71554943363ac99cd0c8">LANG_NONE</a> = -1, 
-<a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aa6005851459ecd1476b128baad46d46e6">AMPL</a>, 
-<a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aa8476f2061be97a547db8d42808fa4369">ALE</a>, 
-<a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aa6b23681db7db1db0a27cb2007620056e">BARON</a>, 
-<br />
-&#160;&#160;<a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aa14773b3cb5be6b7a031e2648f1edb27a">GAMS</a>, 
-<a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aad139485466768f0cb2bc590af41f84fe">PYOMO</a>, 
-<a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aabb1dae9f397b7c971de9be182a505616">NLP_LANG</a>
-<br />
+<tr class="memdesc:aed64ab21c095ed6882ea61128addd7a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enum for controlling where logging information of MAiNGO should be written.  <a href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4">More...</a><br /></td></tr>
+<tr class="separator:aed64ab21c095ed6882ea61128addd7a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a76021544553e05d3b4de6cbcf58db39a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39a">WRITING_LANGUAGE</a> { <a class="el" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39aacd2ad11121ce71554943363ac99cd0c8">LANG_NONE</a> = 0, 
+<a class="el" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39aa1b0686f8505e989428b2edbc77249953">LANG_ALE</a>, 
+<a class="el" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39aa8baf6445b690d1592e58cf697ced3bfe">LANG_GAMS</a>
  }</td></tr>
-<tr class="memdesc:a7fda513a30bb172152b96406e370299a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enum for representing possible modeling language for parsing a MAiNGO model to.  <a href="namespacemaingo.html#a7fda513a30bb172152b96406e370299a">More...</a><br /></td></tr>
-<tr class="separator:a7fda513a30bb172152b96406e370299a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memdesc:a76021544553e05d3b4de6cbcf58db39a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enum for representing the modeling language in which MAiNGO is supposed to write the current model to a file.  <a href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39a">More...</a><br /></td></tr>
+<tr class="separator:a76021544553e05d3b4de6cbcf58db39a"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
 Functions</h2></td></tr>
@@ -570,59 +562,27 @@ Variables</h2></td></tr>
 
 </div>
 </div>
-<a id="a3d9300c6853caaf91b0afc24d3dd1ae0"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3d9300c6853caaf91b0afc24d3dd1ae0">&#9670;&nbsp;</a></span>OUTSTREAM_VERB</h2>
+<a id="aed64ab21c095ed6882ea61128addd7a4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aed64ab21c095ed6882ea61128addd7a4">&#9670;&nbsp;</a></span>LOGGING_DESTINATION</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">enum <a class="el" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0">maingo::OUTSTREAM_VERB</a></td>
+          <td class="memname">enum <a class="el" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4">maingo::LOGGING_DESTINATION</a></td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<p>Enum for controlling the output and writing level of <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> (i.e., where should the output be written to, outstream and/or log) </p>
+<p>Enum for controlling where logging information of <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> should be written. </p>
 <table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a3d9300c6853caaf91b0afc24d3dd1ae0a11b0a1dd952da50747424243c027c808"></a>OUTSTREAM_NONE&#160;</td><td class="fielddoc"><p>Print and write no output whatsoever. </p>
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="aed64ab21c095ed6882ea61128addd7a4a5ba5670261ac104d957be08824b10fda"></a>LOGGING_NONE&#160;</td><td class="fielddoc"><p>(=0): Do not print or write any logging information </p>
 </td></tr>
-<tr><td class="fieldname"><a id="a3d9300c6853caaf91b0afc24d3dd1ae0a52f5f76af1455b5ee7ad085be3dbb0ed"></a>OUTSTREAM_OUTSTREAM&#160;</td><td class="fielddoc"><p>Print only to output stream (standard ist std::cout) </p>
+<tr><td class="fieldname"><a id="aed64ab21c095ed6882ea61128addd7a4afb969130cbbe60ea7ede72325e349fbe"></a>LOGGING_OUTSTREAM&#160;</td><td class="fielddoc"><p>(=1): Print only to selected output stream. The stream can be selected via <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a1a4ba608b818d6a2e303b836505e0234">set_output_stream</a> </p>
 </td></tr>
-<tr><td class="fieldname"><a id="a3d9300c6853caaf91b0afc24d3dd1ae0aeafd0b37169b3bd9330488dfff7713b7"></a>OUTSTREAM_LOG&#160;</td><td class="fielddoc"><p>Write to log only </p>
+<tr><td class="fieldname"><a id="aed64ab21c095ed6882ea61128addd7a4a335b5d0a5d8ddae15c4f4dc56ff437c1"></a>LOGGING_FILE&#160;</td><td class="fielddoc"><p>(=2): Write to a log file only. The log filename can be set via <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a450f5ac09e6afa9e34dc86b59359ae20">set_log_file_name</a> </p>
 </td></tr>
-<tr><td class="fieldname"><a id="a3d9300c6853caaf91b0afc24d3dd1ae0a585dae7be6c02c38889b2be3e16fd2fb"></a>OUTSTREAM_BOTH&#160;</td><td class="fielddoc"><p>Print to output stream AND write the same information to log </p>
-</td></tr>
-</table>
-
-</div>
-</div>
-<a id="a7fda513a30bb172152b96406e370299a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a7fda513a30bb172152b96406e370299a">&#9670;&nbsp;</a></span>PARSING_LANGUAGE</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">enum <a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299a">maingo::PARSING_LANGUAGE</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p>Enum for representing possible modeling language for parsing a <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> model to. </p>
-<table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a7fda513a30bb172152b96406e370299aacd2ad11121ce71554943363ac99cd0c8"></a>LANG_NONE&#160;</td><td class="fielddoc"><p>A different parsing language is not set. </p>
-</td></tr>
-<tr><td class="fieldname"><a id="a7fda513a30bb172152b96406e370299aa6005851459ecd1476b128baad46d46e6"></a>AMPL&#160;</td><td class="fielddoc"><p>AMPL. </p>
-</td></tr>
-<tr><td class="fieldname"><a id="a7fda513a30bb172152b96406e370299aa8476f2061be97a547db8d42808fa4369"></a>ALE&#160;</td><td class="fielddoc"><p>ALE. </p>
-</td></tr>
-<tr><td class="fieldname"><a id="a7fda513a30bb172152b96406e370299aa6b23681db7db1db0a27cb2007620056e"></a>BARON&#160;</td><td class="fielddoc"><p>BARON. </p>
-</td></tr>
-<tr><td class="fieldname"><a id="a7fda513a30bb172152b96406e370299aa14773b3cb5be6b7a031e2648f1edb27a"></a>GAMS&#160;</td><td class="fielddoc"><p>GAMS. </p>
-</td></tr>
-<tr><td class="fieldname"><a id="a7fda513a30bb172152b96406e370299aad139485466768f0cb2bc590af41f84fe"></a>PYOMO&#160;</td><td class="fielddoc"><p>PYOMO. </p>
-</td></tr>
-<tr><td class="fieldname"><a id="a7fda513a30bb172152b96406e370299aabb1dae9f397b7c971de9be182a505616"></a>NLP_LANG&#160;</td><td class="fielddoc"><p>NLP. </p>
+<tr><td class="fieldname"><a id="aed64ab21c095ed6882ea61128addd7a4aaeb2ef5d2157419a5fe03924e9fbb714"></a>LOGGING_FILE_AND_STREAM&#160;</td><td class="fielddoc"><p>(=3): Print to output stream AND write the same information to log file </p>
 </td></tr>
 </table>
 
@@ -800,13 +760,11 @@ Variables</h2></td></tr>
 </td></tr>
 <tr><td class="fieldname"><a id="a630ee8293fceda07f0cb639d0cf78cf6a6717bbec3198ea15d4f818af79374f09"></a>OUTSTREAMVERBOSITY&#160;</td><td class="fielddoc"><p>verbosity for outstream </p>
 </td></tr>
-<tr><td class="fieldname"><a id="a630ee8293fceda07f0cb639d0cf78cf6a67dd1fb20241b26b7ac93714b8b0aae1"></a>WRITELOG&#160;</td><td class="fielddoc"><p>whether to write log </p>
-</td></tr>
 <tr><td class="fieldname"><a id="a630ee8293fceda07f0cb639d0cf78cf6a5b17de1dc9ac64cce8a5bacab3dc8f5c"></a>WRITECSV&#160;</td><td class="fielddoc"><p>whether to write csv </p>
 </td></tr>
 <tr><td class="fieldname"><a id="a630ee8293fceda07f0cb639d0cf78cf6a20e6a32ee584c3187610f95ea83e1354"></a>WRITEJSON&#160;</td><td class="fielddoc"><p>whether to write json </p>
 </td></tr>
-<tr><td class="fieldname"><a id="a630ee8293fceda07f0cb639d0cf78cf6ad208395baa4232a0d2e525d3ae4246cc"></a>WRITERESFILE&#160;</td><td class="fielddoc"><p>whether to write an additional log file containing non-standard information about the problem </p>
+<tr><td class="fieldname"><a id="a630ee8293fceda07f0cb639d0cf78cf6a7e60bfc3f9fd67b15a9f9f78d9512d69"></a>writeResultFile&#160;</td><td class="fielddoc"><p>whether to write an additional log file containing non-standard information about the problem </p>
 </td></tr>
 <tr><td class="fieldname"><a id="a630ee8293fceda07f0cb639d0cf78cf6aaed1ec51d45446a3609dff1a0551116d"></a>WRITETOLOGSEC&#160;</td><td class="fielddoc"><p>write to log/csv every x seconds </p>
 </td></tr>
@@ -880,11 +838,35 @@ Variables</h2></td></tr>
 
 <p>Enum for controlling the output level of solvers (i.e., how much should be printed on the screen and, possibly, to the log file). </p>
 <table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a53603cf77a4aab12b16a3cce79b991bea564fb96cc42aa72474169a9d7e3fd844"></a>VERB_NONE&#160;</td><td class="fielddoc"><p>Print no output whatsoever. </p>
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a53603cf77a4aab12b16a3cce79b991bea564fb96cc42aa72474169a9d7e3fd844"></a>VERB_NONE&#160;</td><td class="fielddoc"><p>(=0): Print no output whatsoever. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a53603cf77a4aab12b16a3cce79b991bea46b5de1abddbaba6cf2a9b54852c0a6c"></a>VERB_NORMAL&#160;</td><td class="fielddoc"><p>(=1): For BranchAndBound, this means that regular output on solution progress is printed according to the specified print frequency, as well as when the incumbent is updated. For LowerBoundingSolver and UpperBoundingSolver, only critical output is given (e.g., important warnings). </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a53603cf77a4aab12b16a3cce79b991bea492f57f7be5a28760409792b99e09bd8"></a>VERB_ALL&#160;</td><td class="fielddoc"><p>(=2): Highest output level (very noisy!). </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a id="a76021544553e05d3b4de6cbcf58db39a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a76021544553e05d3b4de6cbcf58db39a">&#9670;&nbsp;</a></span>WRITING_LANGUAGE</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39a">maingo::WRITING_LANGUAGE</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Enum for representing the modeling language in which <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> is supposed to write the current model to a file. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a76021544553e05d3b4de6cbcf58db39aacd2ad11121ce71554943363ac99cd0c8"></a>LANG_NONE&#160;</td><td class="fielddoc"><p>(=0): Do not write the current model to a file </p>
 </td></tr>
-<tr><td class="fieldname"><a id="a53603cf77a4aab12b16a3cce79b991bea46b5de1abddbaba6cf2a9b54852c0a6c"></a>VERB_NORMAL&#160;</td><td class="fielddoc"><p>For BranchAndBound, this means that regular output on solution progress is printed according to the specified print frequency, as well as when the incumbent is updated. For LowerBoundingSolver and UpperBoundingSolver, only critical output is given (e.g., important warnings). </p>
+<tr><td class="fieldname"><a id="a76021544553e05d3b4de6cbcf58db39aa1b0686f8505e989428b2edbc77249953"></a>LANG_ALE&#160;</td><td class="fielddoc"><p>(=1): Write the current model to a file using ALE syntax </p>
 </td></tr>
-<tr><td class="fieldname"><a id="a53603cf77a4aab12b16a3cce79b991bea492f57f7be5a28760409792b99e09bd8"></a>VERB_ALL&#160;</td><td class="fielddoc"><p>Highest output level (very noisy!). </p>
+<tr><td class="fieldname"><a id="a76021544553e05d3b4de6cbcf58db39aa8baf6445b690d1592e58cf697ced3bfe"></a>LANG_GAMS&#160;</td><td class="fielddoc"><p>(=2): Write the current model to a file using GAMS syntax </p>
 </td></tr>
 </table>
 
@@ -1168,7 +1150,7 @@ template&lt;unsigned IDim&gt; </div>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespacemaingo.js b/doc/html/namespacemaingo.js
index 46f05bb216785f1b4f1e8557d84a9a7201b89880..0a59916929f400e0fa54c1f68173330291d9ec8f 100644
--- a/doc/html/namespacemaingo.js
+++ b/doc/html/namespacemaingo.js
@@ -13,7 +13,7 @@ var namespacemaingo =
     [ "MAiNGOException", "classmaingo_1_1_m_ai_n_g_o_exception.html", "classmaingo_1_1_m_ai_n_g_o_exception" ],
     [ "MAiNGOmodel", "classmaingo_1_1_m_ai_n_g_omodel.html", "classmaingo_1_1_m_ai_n_g_omodel" ],
     [ "MAiNGOmodelEpsCon", "classmaingo_1_1_m_ai_n_g_omodel_eps_con.html", "classmaingo_1_1_m_ai_n_g_omodel_eps_con" ],
-    [ "modelFunction", "structmaingo_1_1model_function.html", "structmaingo_1_1model_function" ],
+    [ "ModelFunction", "structmaingo_1_1_model_function.html", "structmaingo_1_1_model_function" ],
     [ "OutputVariable", "structmaingo_1_1_output_variable.html", "structmaingo_1_1_output_variable" ],
     [ "Program", "structmaingo_1_1_program.html", "structmaingo_1_1_program" ],
     [ "ProgramParser", "classmaingo_1_1_program_parser.html", "classmaingo_1_1_program_parser" ],
diff --git a/doc/html/namespacemaingo_1_1bab.html b/doc/html/namespacemaingo_1_1bab.html
index eb6817d88a2b41c49e718bd3ec9022d865d5cfcc..50dbfe50d8b9b8b94aebb2498595a12c4433036d 100644
--- a/doc/html/namespacemaingo_1_1bab.html
+++ b/doc/html/namespacemaingo_1_1bab.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::bab Namespace Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -112,7 +112,7 @@ Classes</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="namespacemaingo_1_1bab.html">bab</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespacemaingo_1_1lbp.html b/doc/html/namespacemaingo_1_1lbp.html
index 98fa54657cc59769495112555292af658c85ad87..7335805c0c08b1e5cae5beb9a1718d88f33dd5e7 100644
--- a/doc/html/namespacemaingo_1_1lbp.html
+++ b/doc/html/namespacemaingo_1_1lbp.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::lbp Namespace Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -121,6 +121,11 @@ Classes</h2></td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
 Enumerations</h2></td></tr>
+<tr class="memitem:ad19f1469072a948e0678836725b1d3e8"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8">OBBT</a> { <a class="el" href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8a739b073ddf68d60146dfb7b8f3b24c0c">OBBT_FEAS</a> = 0, 
+<a class="el" href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8a207bbc0e97b4a6f7598b447f8b8c8b89">OBBT_FEASOPT</a>
+ }</td></tr>
+<tr class="memdesc:ad19f1469072a948e0678836725b1d3e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enum for communicating whether Optimization-Based Bound Tightening should consider only feasibility or also optimality.  <a href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8">More...</a><br /></td></tr>
+<tr class="separator:ad19f1469072a948e0678836725b1d3e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a1f86fef63c4930e5c519b2ca288d824e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824e">LINEARIZATION_RETCODE</a> { <a class="el" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824ea5cdfb5145d9384d0c2328f64049b62fd">LINEARIZATION_INFEASIBLE</a> = 0, 
 <a class="el" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824ea41d8f65e89219832d04d46c89e612663">LINEARIZATION_OPTIMAL</a>, 
 <a class="el" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824ea333fe049a9fc9fa148299a79c61584fa">LINEARIZATION_UNKNOWN</a>
@@ -133,18 +138,13 @@ Enumerations</h2></td></tr>
  }</td></tr>
 <tr class="memdesc:a4e2b70fda6e64add2c6ad1a9c4a42c90"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enum for representing the return codes returned when a linear program is solved.  <a href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90">More...</a><br /></td></tr>
 <tr class="separator:a4e2b70fda6e64add2c6ad1a9c4a42c90"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a93b68678c7bf3f3767b5ac7adf55a4be"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4be">LBP_SOLVER</a> { <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4beab21ba68ca9d31ece2a6ac8006b39027e">SOLVER_MAiNGO</a> = 0, 
-<a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4beabbf2c359f240461a8859bea8b628179d">SOLVER_INTERVAL</a> = 1, 
-<a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea7461c27f75e0601f39252dd553b686e6">SOLVER_CPLEX</a> = 2, 
-<a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea0a3210e4f9065f1ead5177bfdfbc27d1">SOLVER_CLP</a> = 3
+<tr class="memitem:a93b68678c7bf3f3767b5ac7adf55a4be"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4be">LBP_SOLVER</a> { <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea32fa8aaeff8ed8f41d95ce72acc04ce1">LBP_SOLVER_MAiNGO</a> = 0, 
+<a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4beafc7bfbfe657af2fff8e3800860388f89">LBP_SOLVER_INTERVAL</a>, 
+<a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea016b6bae02feefafd679a8d57149aff5">LBP_SOLVER_CPLEX</a>, 
+<a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea9c0bfb2a028e4a3ab6011619009d62d9">LBP_SOLVER_CLP</a>
  }</td></tr>
 <tr class="memdesc:a93b68678c7bf3f3767b5ac7adf55a4be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enum for selecting the STRATegy so be used for solving the lower bounding problems.  <a href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4be">More...</a><br /></td></tr>
 <tr class="separator:a93b68678c7bf3f3767b5ac7adf55a4be"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad19f1469072a948e0678836725b1d3e8"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8">OBBT</a> { <a class="el" href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8a739b073ddf68d60146dfb7b8f3b24c0c">OBBT_FEAS</a> = 0, 
-<a class="el" href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8a207bbc0e97b4a6f7598b447f8b8c8b89">OBBT_FEASOPT</a>
- }</td></tr>
-<tr class="memdesc:ad19f1469072a948e0678836725b1d3e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enum for communicating whether Optimization-Based Bound Tightening should consider only feasibility or also optimality.  <a href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8">More...</a><br /></td></tr>
-<tr class="separator:ad19f1469072a948e0678836725b1d3e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:addd00d5f7ff74c4721070d8dd76f93a2"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2">LINP</a> { <br />
 &#160;&#160;<a class="el" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a5c70e54dadb090b3234669343d814e3a">LINP_MID</a> = 0, 
 <a class="el" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a6f6fc41c94ae0797af701d329a74a277">LINP_INCUMBENT</a>, 
@@ -160,9 +160,9 @@ Enumerations</h2></td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
 Functions</h2></td></tr>
-<tr class="memitem:af2ff1a689d340482f4575c0507b4fa56"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">LowerBoundingSolver</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1lbp.html#af2ff1a689d340482f4575c0507b4fa56">make_lbp_solver</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, <a class="el" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="el" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn, std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *constraintPropertiesIn)</td></tr>
-<tr class="memdesc:af2ff1a689d340482f4575c0507b4fa56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Factory function for initializing different lower bounding solver wrappers.  <a href="#af2ff1a689d340482f4575c0507b4fa56">More...</a><br /></td></tr>
-<tr class="separator:af2ff1a689d340482f4575c0507b4fa56"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa50d84ff66f4ea911a333eb047a8b6ea"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1lbp_1_1_lower_bounding_solver.html">LowerBoundingSolver</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1lbp.html#aa50d84ff66f4ea911a333eb047a8b6ea">make_lbp_solver</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt; settingsIn, std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt; constraintPropertiesIn)</td></tr>
+<tr class="memdesc:aa50d84ff66f4ea911a333eb047a8b6ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Factory function for initializing different lower bounding solver wrappers.  <a href="#aa50d84ff66f4ea911a333eb047a8b6ea">More...</a><br /></td></tr>
+<tr class="separator:aa50d84ff66f4ea911a333eb047a8b6ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><p>namespace holding all essentials of the lower bounding solver </p>
@@ -181,13 +181,13 @@ Functions</h2></td></tr>
 
 <p>Enum for selecting the STRATegy so be used for solving the lower bounding problems. </p>
 <table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a93b68678c7bf3f3767b5ac7adf55a4beab21ba68ca9d31ece2a6ac8006b39027e"></a>SOLVER_MAiNGO&#160;</td><td class="fielddoc"><p>(=0): <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> intern lower bounding solver consisting of linearizing the objective function at only 1 point and minimizing the linearization over box constraints </p>
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a93b68678c7bf3f3767b5ac7adf55a4bea32fa8aaeff8ed8f41d95ce72acc04ce1"></a>LBP_SOLVER_MAiNGO&#160;</td><td class="fielddoc"><p>(=0): <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> internal lower bounding solver consisting of linearizing the objective function at only 1 point and minimizing the linearization over box constraints </p>
 </td></tr>
-<tr><td class="fieldname"><a id="a93b68678c7bf3f3767b5ac7adf55a4beabbf2c359f240461a8859bea8b628179d"></a>SOLVER_INTERVAL&#160;</td><td class="fielddoc"><p>(=1): solution of lower bounding problems using only interval based relaxations </p>
+<tr><td class="fieldname"><a id="a93b68678c7bf3f3767b5ac7adf55a4beafc7bfbfe657af2fff8e3800860388f89"></a>LBP_SOLVER_INTERVAL&#160;</td><td class="fielddoc"><p>(=1): solution of lower bounding problems using only interval based relaxations </p>
 </td></tr>
-<tr><td class="fieldname"><a id="a93b68678c7bf3f3767b5ac7adf55a4bea7461c27f75e0601f39252dd553b686e6"></a>SOLVER_CPLEX&#160;</td><td class="fielddoc"><p>(=2): solution of lower bounding linear programs using CPLEX </p>
+<tr><td class="fieldname"><a id="a93b68678c7bf3f3767b5ac7adf55a4bea016b6bae02feefafd679a8d57149aff5"></a>LBP_SOLVER_CPLEX&#160;</td><td class="fielddoc"><p>(=2): solution of lower bounding linear programs using CPLEX </p>
 </td></tr>
-<tr><td class="fieldname"><a id="a93b68678c7bf3f3767b5ac7adf55a4bea0a3210e4f9065f1ead5177bfdfbc27d1"></a>SOLVER_CLP&#160;</td><td class="fielddoc"><p>(=3): solution of lower bounding linear programs using CLP </p>
+<tr><td class="fieldname"><a id="a93b68678c7bf3f3767b5ac7adf55a4bea9c0bfb2a028e4a3ab6011619009d62d9"></a>LBP_SOLVER_CLP&#160;</td><td class="fielddoc"><p>(=3): solution of lower bounding linear programs using CLP </p>
 </td></tr>
 </table>
 
@@ -231,7 +231,7 @@ Functions</h2></td></tr>
 
 <p>Enum for selecting the Linearization Points to be used in constructing affine relaxations. </p>
 <table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="addd00d5f7ff74c4721070d8dd76f93a2a5c70e54dadb090b3234669343d814e3a"></a>LINP_MID&#160;</td><td class="fielddoc"><p>(=0) : Linearize only at the midpoint of the current node </p>
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="addd00d5f7ff74c4721070d8dd76f93a2a5c70e54dadb090b3234669343d814e3a"></a>LINP_MID&#160;</td><td class="fielddoc"><p>(=0) : Linearize only at the midpoint of the current node */ </p>
 </td></tr>
 <tr><td class="fieldname"><a id="addd00d5f7ff74c4721070d8dd76f93a2a6f6fc41c94ae0797af701d329a74a277"></a>LINP_INCUMBENT&#160;</td><td class="fielddoc"><p>(=1) : Linearize at the incumbent value if it is in the current interval, else linearize at mid point, if using the subgradient interval heuristic, the heuristic also linearizes each operation at the incumbent if possible </p>
 </td></tr>
@@ -294,8 +294,8 @@ Functions</h2></td></tr>
 </div>
 </div>
 <h2 class="groupheader">Function Documentation</h2>
-<a id="af2ff1a689d340482f4575c0507b4fa56"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#af2ff1a689d340482f4575c0507b4fa56">&#9670;&nbsp;</a></span>make_lbp_solver()</h2>
+<a id="aa50d84ff66f4ea911a333eb047a8b6ea"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa50d84ff66f4ea911a333eb047a8b6ea">&#9670;&nbsp;</a></span>make_lbp_solver()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -357,19 +357,19 @@ Functions</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="structmaingo_1_1_settings.html">Settings</a> *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt;&#160;</td>
           <td class="paramname"><em>settingsIn</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="classmaingo_1_1_logger.html">Logger</a> *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt;&#160;</td>
           <td class="paramname"><em>loggerIn</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt;&#160;</td>
           <td class="paramname"><em>constraintPropertiesIn</em>&#160;</td>
         </tr>
         <tr>
@@ -409,7 +409,7 @@ Functions</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="namespacemaingo_1_1lbp.html">lbp</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespacemaingo_1_1ubp.html b/doc/html/namespacemaingo_1_1ubp.html
index a2aafbea2a930fb4d144dbfb548bd8e0c56fd26e..e29d36cd7bb465d2707225ebf7597de4f25919dd 100644
--- a/doc/html/namespacemaingo_1_1ubp.html
+++ b/doc/html/namespacemaingo_1_1ubp.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::ubp Namespace Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -137,17 +137,17 @@ Classes</h2></td></tr>
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
 Enumerations</h2></td></tr>
 <tr class="memitem:acc8477a9a8bca6eb434b2bd647f62f9d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9d">UBP_SOLVER</a> { <br />
-&#160;&#160;<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac9dd69c054981d95b5633af8eada06b7">SOLVER_EVAL</a> = 0, 
-<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac5701f2847e960c47f46914beac6a128">SOLVER_COBYLA</a>, 
-<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da54ed347065f9c65c37a71a3cb4db7451">SOLVER_BOBYQA</a>, 
-<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da816c98ce5f16248a60f78e76bc534823">SOLVER_LBFGS</a>, 
+&#160;&#160;<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da15b7028091e5f95408a2a26e643cb972">UBP_SOLVER_EVAL</a> = 0, 
+<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9daaff3b4a7dfedf2a8f66396d01c4e1645">UBP_SOLVER_COBYLA</a>, 
+<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da16910a5ab42fd9bcd71489c0f07d7791">UBP_SOLVER_BOBYQA</a>, 
+<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac4da4292c1a20fb6a199fc7b540bc2d3">UBP_SOLVER_LBFGS</a>, 
 <br />
-&#160;&#160;<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da24b4fd10f12919d2825cb493c71d3cf8">SOLVER_SLSQP</a>, 
-<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac449153333e544edc3b78977ab02ea20">SOLVER_IPOPT</a>, 
-<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da6cc859f77befbec62acf36cb2ef82683">SOLVER_KNITRO</a>, 
-<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da64db5861bc8d36e7cb00978e72af8408">SOLVER_CPLEX</a> = 42, 
+&#160;&#160;<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da5e8733223dd08864a8d5effbb341992a">UBP_SOLVER_SLSQP</a>, 
+<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da3d2c4a7fd42fd747fe825ec8f0b1a1ad">UBP_SOLVER_IPOPT</a>, 
+<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da019153052e3b77622e3f2a7f0ce339e8">UBP_SOLVER_KNITRO</a>, 
+<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da9537df8ae6b66b2b07f2a31d7258c98f">UBP_SOLVER_CPLEX</a> = 42, 
 <br />
-&#160;&#160;<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da995e3c0356133ed4320ffa4111536e10">SOLVER_CLP</a>
+&#160;&#160;<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dab4e7e171165eb64a246e2e7b7e2ea352">UBP_SOLVER_CLP</a>
 <br />
  }</td></tr>
 <tr class="memdesc:acc8477a9a8bca6eb434b2bd647f62f9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enum for selecting the STRATegy so be used for solving the upper bounding problems.  <a href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9d">More...</a><br /></td></tr>
@@ -155,9 +155,9 @@ Enumerations</h2></td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
 Functions</h2></td></tr>
-<tr class="memitem:ac4a3034b115744514ad64d9c150713ea"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">UpperBoundingSolver</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#ac4a3034b115744514ad64d9c150713ea">make_ubp_solver</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, <a class="el" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="el" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn, std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *constraintPropertiesIn, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UpperBoundingSolver::UBS_USE</a> useIn)</td></tr>
-<tr class="memdesc:ac4a3034b115744514ad64d9c150713ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Factory function for initializing different upper bounding solver wrappers.  <a href="#ac4a3034b115744514ad64d9c150713ea">More...</a><br /></td></tr>
-<tr class="separator:ac4a3034b115744514ad64d9c150713ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab62ff87d8caba41740160a8d488b133d"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">UpperBoundingSolver</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#ab62ff87d8caba41740160a8d488b133d">make_ubp_solver</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt; settingsIn, std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt; constraintPropertiesIn, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UpperBoundingSolver::UBS_USE</a> useIn)</td></tr>
+<tr class="memdesc:ab62ff87d8caba41740160a8d488b133d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Factory function for initializing different upper bounding solver wrappers.  <a href="#ab62ff87d8caba41740160a8d488b133d">More...</a><br /></td></tr>
+<tr class="separator:ab62ff87d8caba41740160a8d488b133d"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a932143bfce70a96fb11115c09792a93d"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#a932143bfce70a96fb11115c09792a93d">evaluate_objective</a> (const double *currentPoint, const unsigned nvar, const bool computeGradient, double *gradient, std::shared_ptr&lt; <a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html">DagObj</a> &gt; dagObj)</td></tr>
 <tr class="memdesc:a932143bfce70a96fb11115c09792a93d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for evaluating objective function at a given point.  <a href="#a932143bfce70a96fb11115c09792a93d">More...</a><br /></td></tr>
 <tr class="separator:a932143bfce70a96fb11115c09792a93d"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -194,77 +194,77 @@ Functions</h2></td></tr>
 <tr class="memitem:a742b207c46fd0870d53d6d13366e8ebc"><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::vector&lt; double &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#a742b207c46fd0870d53d6d13366e8ebc">operator-</a> (const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;in1, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;in2)</td></tr>
 <tr class="memdesc:a742b207c46fd0870d53d6d13366e8ebc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator- for subtraction of two double matrices.  <a href="#a742b207c46fd0870d53d6d13366e8ebc">More...</a><br /></td></tr>
 <tr class="separator:a742b207c46fd0870d53d6d13366e8ebc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5c67ac181e81a6949e8ecb8a870782e2"><td class="memItemLeft" align="right" valign="top">std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#a5c67ac181e81a6949e8ecb8a870782e2">operator *</a> (const std::vector&lt; double &gt; &amp;in1, const double in2)</td></tr>
-<tr class="memdesc:a5c67ac181e81a6949e8ecb8a870782e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator* for multiplication of a double vector with a double constant.  <a href="#a5c67ac181e81a6949e8ecb8a870782e2">More...</a><br /></td></tr>
-<tr class="separator:a5c67ac181e81a6949e8ecb8a870782e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad3cba31c2697ea5b09bacbd997c9f296"><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::vector&lt; double &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#ad3cba31c2697ea5b09bacbd997c9f296">operator *</a> (const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;in1, const double in2)</td></tr>
-<tr class="memdesc:ad3cba31c2697ea5b09bacbd997c9f296"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator* for multiplication of a double matrix with a double constant.  <a href="#ad3cba31c2697ea5b09bacbd997c9f296">More...</a><br /></td></tr>
-<tr class="separator:ad3cba31c2697ea5b09bacbd997c9f296"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a63efcd0b2ad1996c20545e1481f0835a"><td class="memItemLeft" align="right" valign="top">std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#a63efcd0b2ad1996c20545e1481f0835a">operator*</a> (const std::vector&lt; double &gt; &amp;in1, const double in2)</td></tr>
+<tr class="memdesc:a63efcd0b2ad1996c20545e1481f0835a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator* for multiplication of a double vector with a double constant.  <a href="#a63efcd0b2ad1996c20545e1481f0835a">More...</a><br /></td></tr>
+<tr class="separator:a63efcd0b2ad1996c20545e1481f0835a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa896d2608e6152fd66b0ec6031a083ef"><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::vector&lt; double &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#aa896d2608e6152fd66b0ec6031a083ef">operator*</a> (const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;in1, const double in2)</td></tr>
+<tr class="memdesc:aa896d2608e6152fd66b0ec6031a083ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator* for multiplication of a double matrix with a double constant.  <a href="#aa896d2608e6152fd66b0ec6031a083ef">More...</a><br /></td></tr>
+<tr class="separator:aa896d2608e6152fd66b0ec6031a083ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a34d96b5d5baa870bf3c50543044f17fa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#a34d96b5d5baa870bf3c50543044f17fa">operator+</a> (const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in)</td></tr>
-<tr class="memdesc:a34d96b5d5baa870bf3c50543044f17fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator+ for <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a>.  <a href="#a34d96b5d5baa870bf3c50543044f17fa">More...</a><br /></td></tr>
+<tr class="memdesc:a34d96b5d5baa870bf3c50543044f17fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator+ for <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a>.  <a href="#a34d96b5d5baa870bf3c50543044f17fa">More...</a><br /></td></tr>
 <tr class="separator:a34d96b5d5baa870bf3c50543044f17fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a71bc9598739d457c38b6c8620fa70e6a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#a71bc9598739d457c38b6c8620fa70e6a">operator+</a> (const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in1, const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in2)</td></tr>
-<tr class="memdesc:a71bc9598739d457c38b6c8620fa70e6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator+ for two <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> objects.  <a href="#a71bc9598739d457c38b6c8620fa70e6a">More...</a><br /></td></tr>
+<tr class="memdesc:a71bc9598739d457c38b6c8620fa70e6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator+ for two <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> objects.  <a href="#a71bc9598739d457c38b6c8620fa70e6a">More...</a><br /></td></tr>
 <tr class="separator:a71bc9598739d457c38b6c8620fa70e6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a5d61a1b0104c207a63c55da96bbe28bf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#a5d61a1b0104c207a63c55da96bbe28bf">operator+</a> (const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in1, const double &amp;in2)</td></tr>
-<tr class="memdesc:a5d61a1b0104c207a63c55da96bbe28bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator+ for addition of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and a double.  <a href="#a5d61a1b0104c207a63c55da96bbe28bf">More...</a><br /></td></tr>
+<tr class="memdesc:a5d61a1b0104c207a63c55da96bbe28bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator+ for addition of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and a double.  <a href="#a5d61a1b0104c207a63c55da96bbe28bf">More...</a><br /></td></tr>
 <tr class="separator:a5d61a1b0104c207a63c55da96bbe28bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ad836c3ed6766c075161c027b5eca6e25"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#ad836c3ed6766c075161c027b5eca6e25">operator+</a> (const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in1, const int &amp;in2)</td></tr>
-<tr class="memdesc:ad836c3ed6766c075161c027b5eca6e25"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator+ for addition of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and an int.  <a href="#ad836c3ed6766c075161c027b5eca6e25">More...</a><br /></td></tr>
+<tr class="memdesc:ad836c3ed6766c075161c027b5eca6e25"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator+ for addition of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and an int.  <a href="#ad836c3ed6766c075161c027b5eca6e25">More...</a><br /></td></tr>
 <tr class="separator:ad836c3ed6766c075161c027b5eca6e25"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ad4f8e6ebfcd8fc7e3fc7e7b4926892ac"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#ad4f8e6ebfcd8fc7e3fc7e7b4926892ac">operator+</a> (const double &amp;in1, const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in2)</td></tr>
-<tr class="memdesc:ad4f8e6ebfcd8fc7e3fc7e7b4926892ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator+ for addition of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and a double.  <a href="#ad4f8e6ebfcd8fc7e3fc7e7b4926892ac">More...</a><br /></td></tr>
+<tr class="memdesc:ad4f8e6ebfcd8fc7e3fc7e7b4926892ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator+ for addition of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and a double.  <a href="#ad4f8e6ebfcd8fc7e3fc7e7b4926892ac">More...</a><br /></td></tr>
 <tr class="separator:ad4f8e6ebfcd8fc7e3fc7e7b4926892ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a8f178973e405455b0384fd128b3f1be7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#a8f178973e405455b0384fd128b3f1be7">operator+</a> (const int &amp;in1, const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in2)</td></tr>
-<tr class="memdesc:a8f178973e405455b0384fd128b3f1be7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator+ for addition of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and an int.  <a href="#a8f178973e405455b0384fd128b3f1be7">More...</a><br /></td></tr>
+<tr class="memdesc:a8f178973e405455b0384fd128b3f1be7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator+ for addition of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and an int.  <a href="#a8f178973e405455b0384fd128b3f1be7">More...</a><br /></td></tr>
 <tr class="separator:a8f178973e405455b0384fd128b3f1be7"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ac85543a4274998b12aca4e184764a4a1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#ac85543a4274998b12aca4e184764a4a1">operator-</a> (const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in)</td></tr>
-<tr class="memdesc:ac85543a4274998b12aca4e184764a4a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator- for <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a>.  <a href="#ac85543a4274998b12aca4e184764a4a1">More...</a><br /></td></tr>
+<tr class="memdesc:ac85543a4274998b12aca4e184764a4a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator- for <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a>.  <a href="#ac85543a4274998b12aca4e184764a4a1">More...</a><br /></td></tr>
 <tr class="separator:ac85543a4274998b12aca4e184764a4a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ac33b3f1dcbbfc89678ddd9d83b12c33e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#ac33b3f1dcbbfc89678ddd9d83b12c33e">operator-</a> (const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in1, const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in2)</td></tr>
-<tr class="memdesc:ac33b3f1dcbbfc89678ddd9d83b12c33e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator- for two <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> objects.  <a href="#ac33b3f1dcbbfc89678ddd9d83b12c33e">More...</a><br /></td></tr>
+<tr class="memdesc:ac33b3f1dcbbfc89678ddd9d83b12c33e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator- for two <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> objects.  <a href="#ac33b3f1dcbbfc89678ddd9d83b12c33e">More...</a><br /></td></tr>
 <tr class="separator:ac33b3f1dcbbfc89678ddd9d83b12c33e"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ac39deeba0da11c5b6460085c0d9e699c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#ac39deeba0da11c5b6460085c0d9e699c">operator-</a> (const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in1, const double &amp;in2)</td></tr>
-<tr class="memdesc:ac39deeba0da11c5b6460085c0d9e699c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator- for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and a double.  <a href="#ac39deeba0da11c5b6460085c0d9e699c">More...</a><br /></td></tr>
+<tr class="memdesc:ac39deeba0da11c5b6460085c0d9e699c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator- for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and a double.  <a href="#ac39deeba0da11c5b6460085c0d9e699c">More...</a><br /></td></tr>
 <tr class="separator:ac39deeba0da11c5b6460085c0d9e699c"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aa6cf0d34878dfbcc39ede6d5e3911612"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#aa6cf0d34878dfbcc39ede6d5e3911612">operator-</a> (const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in1, const int &amp;in2)</td></tr>
-<tr class="memdesc:aa6cf0d34878dfbcc39ede6d5e3911612"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator- for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and an int.  <a href="#aa6cf0d34878dfbcc39ede6d5e3911612">More...</a><br /></td></tr>
+<tr class="memdesc:aa6cf0d34878dfbcc39ede6d5e3911612"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator- for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and an int.  <a href="#aa6cf0d34878dfbcc39ede6d5e3911612">More...</a><br /></td></tr>
 <tr class="separator:aa6cf0d34878dfbcc39ede6d5e3911612"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a32aa5e9142e01cdd969ed7bc97324a6f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#a32aa5e9142e01cdd969ed7bc97324a6f">operator-</a> (const double &amp;in1, const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in2)</td></tr>
-<tr class="memdesc:a32aa5e9142e01cdd969ed7bc97324a6f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator- for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and a double.  <a href="#a32aa5e9142e01cdd969ed7bc97324a6f">More...</a><br /></td></tr>
+<tr class="memdesc:a32aa5e9142e01cdd969ed7bc97324a6f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator- for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and a double.  <a href="#a32aa5e9142e01cdd969ed7bc97324a6f">More...</a><br /></td></tr>
 <tr class="separator:a32aa5e9142e01cdd969ed7bc97324a6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ab9fceb07e4c759872241321cdd48e269"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#ab9fceb07e4c759872241321cdd48e269">operator-</a> (const int &amp;in1, const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in2)</td></tr>
-<tr class="memdesc:ab9fceb07e4c759872241321cdd48e269"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator- for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and an int.  <a href="#ab9fceb07e4c759872241321cdd48e269">More...</a><br /></td></tr>
+<tr class="memdesc:ab9fceb07e4c759872241321cdd48e269"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator- for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and an int.  <a href="#ab9fceb07e4c759872241321cdd48e269">More...</a><br /></td></tr>
 <tr class="separator:ab9fceb07e4c759872241321cdd48e269"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab613e54b12d7fb8a43156f91aa434402"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#ab613e54b12d7fb8a43156f91aa434402">operator *</a> (const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in1, const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in2)</td></tr>
-<tr class="memdesc:ab613e54b12d7fb8a43156f91aa434402"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator* for two <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> objects.  <a href="#ab613e54b12d7fb8a43156f91aa434402">More...</a><br /></td></tr>
-<tr class="separator:ab613e54b12d7fb8a43156f91aa434402"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a478444c21260358392dd33b31f713a9c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#a478444c21260358392dd33b31f713a9c">operator *</a> (const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in1, const double in2)</td></tr>
-<tr class="memdesc:a478444c21260358392dd33b31f713a9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator* for multiplication of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and a double.  <a href="#a478444c21260358392dd33b31f713a9c">More...</a><br /></td></tr>
-<tr class="separator:a478444c21260358392dd33b31f713a9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aac1334d57e5f2540b7bfa6cd37693205"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#aac1334d57e5f2540b7bfa6cd37693205">operator *</a> (const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in1, const int in2)</td></tr>
-<tr class="memdesc:aac1334d57e5f2540b7bfa6cd37693205"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator* for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and an int.  <a href="#aac1334d57e5f2540b7bfa6cd37693205">More...</a><br /></td></tr>
-<tr class="separator:aac1334d57e5f2540b7bfa6cd37693205"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac90c68b5af595a7612a1149d2cc0c9b9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#ac90c68b5af595a7612a1149d2cc0c9b9">operator *</a> (const double in1, const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in2)</td></tr>
-<tr class="memdesc:ac90c68b5af595a7612a1149d2cc0c9b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator* for multiplication of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and a double.  <a href="#ac90c68b5af595a7612a1149d2cc0c9b9">More...</a><br /></td></tr>
-<tr class="separator:ac90c68b5af595a7612a1149d2cc0c9b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0e92f83ac29ec3f83eeb2efe88f556c3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#a0e92f83ac29ec3f83eeb2efe88f556c3">operator *</a> (const int in1, const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in2)</td></tr>
-<tr class="memdesc:a0e92f83ac29ec3f83eeb2efe88f556c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator* for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and an int.  <a href="#a0e92f83ac29ec3f83eeb2efe88f556c3">More...</a><br /></td></tr>
-<tr class="separator:a0e92f83ac29ec3f83eeb2efe88f556c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7731fb6c5c16ba843f8b36512c3f7f0c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#a7731fb6c5c16ba843f8b36512c3f7f0c">operator*</a> (const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in1, const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in2)</td></tr>
+<tr class="memdesc:a7731fb6c5c16ba843f8b36512c3f7f0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator* for two <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> objects.  <a href="#a7731fb6c5c16ba843f8b36512c3f7f0c">More...</a><br /></td></tr>
+<tr class="separator:a7731fb6c5c16ba843f8b36512c3f7f0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa3340e4491d298e5f1388853c9c183db"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#aa3340e4491d298e5f1388853c9c183db">operator*</a> (const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in1, const double in2)</td></tr>
+<tr class="memdesc:aa3340e4491d298e5f1388853c9c183db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator* for multiplication of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and a double.  <a href="#aa3340e4491d298e5f1388853c9c183db">More...</a><br /></td></tr>
+<tr class="separator:aa3340e4491d298e5f1388853c9c183db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aac93aa0207fe1de9f3a73b4985f96343"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#aac93aa0207fe1de9f3a73b4985f96343">operator*</a> (const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in1, const int in2)</td></tr>
+<tr class="memdesc:aac93aa0207fe1de9f3a73b4985f96343"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator* for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and an int.  <a href="#aac93aa0207fe1de9f3a73b4985f96343">More...</a><br /></td></tr>
+<tr class="separator:aac93aa0207fe1de9f3a73b4985f96343"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7d5d0a8e327941d11246bfdb428239e7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#a7d5d0a8e327941d11246bfdb428239e7">operator*</a> (const double in1, const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in2)</td></tr>
+<tr class="memdesc:a7d5d0a8e327941d11246bfdb428239e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator* for multiplication of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and a double.  <a href="#a7d5d0a8e327941d11246bfdb428239e7">More...</a><br /></td></tr>
+<tr class="separator:a7d5d0a8e327941d11246bfdb428239e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4e5d8a29639dd84a703944c7489b0b84"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#a4e5d8a29639dd84a703944c7489b0b84">operator*</a> (const int in1, const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in2)</td></tr>
+<tr class="memdesc:a4e5d8a29639dd84a703944c7489b0b84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator* for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and an int.  <a href="#a4e5d8a29639dd84a703944c7489b0b84">More...</a><br /></td></tr>
+<tr class="separator:a4e5d8a29639dd84a703944c7489b0b84"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ad3f555c68f9b3ae1ad075e914317afd5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#ad3f555c68f9b3ae1ad075e914317afd5">operator/</a> (const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in1, const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in2)</td></tr>
-<tr class="memdesc:ad3f555c68f9b3ae1ad075e914317afd5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator/ for two <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a>.  <a href="#ad3f555c68f9b3ae1ad075e914317afd5">More...</a><br /></td></tr>
+<tr class="memdesc:ad3f555c68f9b3ae1ad075e914317afd5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator/ for two <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a>.  <a href="#ad3f555c68f9b3ae1ad075e914317afd5">More...</a><br /></td></tr>
 <tr class="separator:ad3f555c68f9b3ae1ad075e914317afd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a1bdea6d9e43b0b3b4950db2888f59180"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#a1bdea6d9e43b0b3b4950db2888f59180">operator/</a> (const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in1, const double in2)</td></tr>
-<tr class="memdesc:a1bdea6d9e43b0b3b4950db2888f59180"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator/ for division of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> by a double.  <a href="#a1bdea6d9e43b0b3b4950db2888f59180">More...</a><br /></td></tr>
+<tr class="memdesc:a1bdea6d9e43b0b3b4950db2888f59180"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator/ for division of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> by a double.  <a href="#a1bdea6d9e43b0b3b4950db2888f59180">More...</a><br /></td></tr>
 <tr class="separator:a1bdea6d9e43b0b3b4950db2888f59180"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a5854670509a4af23a920acce4f19748c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#a5854670509a4af23a920acce4f19748c">operator/</a> (const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in1, const int in2)</td></tr>
-<tr class="memdesc:a5854670509a4af23a920acce4f19748c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator/ for division of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> by a double.  <a href="#a5854670509a4af23a920acce4f19748c">More...</a><br /></td></tr>
+<tr class="memdesc:a5854670509a4af23a920acce4f19748c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator/ for division of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> by a double.  <a href="#a5854670509a4af23a920acce4f19748c">More...</a><br /></td></tr>
 <tr class="separator:a5854670509a4af23a920acce4f19748c"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ae7c5689bc8931b7ae4216f810dddb5d3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#ae7c5689bc8931b7ae4216f810dddb5d3">operator/</a> (const double in1, const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in2)</td></tr>
-<tr class="memdesc:ae7c5689bc8931b7ae4216f810dddb5d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator/ for division of a double by an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a>.  <a href="#ae7c5689bc8931b7ae4216f810dddb5d3">More...</a><br /></td></tr>
+<tr class="memdesc:ae7c5689bc8931b7ae4216f810dddb5d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator/ for division of a double by an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a>.  <a href="#ae7c5689bc8931b7ae4216f810dddb5d3">More...</a><br /></td></tr>
 <tr class="separator:ae7c5689bc8931b7ae4216f810dddb5d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aefd918702d5ff67b444a1b5184a2ba78"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#aefd918702d5ff67b444a1b5184a2ba78">operator/</a> (const int in1, const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in2)</td></tr>
-<tr class="memdesc:aefd918702d5ff67b444a1b5184a2ba78"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator/ for division of an int by an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a>.  <a href="#aefd918702d5ff67b444a1b5184a2ba78">More...</a><br /></td></tr>
+<tr class="memdesc:aefd918702d5ff67b444a1b5184a2ba78"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator/ for division of an int by an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a>.  <a href="#aefd918702d5ff67b444a1b5184a2ba78">More...</a><br /></td></tr>
 <tr class="separator:aefd918702d5ff67b444a1b5184a2ba78"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -284,23 +284,23 @@ Functions</h2></td></tr>
 
 <p>Enum for selecting the STRATegy so be used for solving the upper bounding problems. </p>
 <table class="fieldtable">
-<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="acc8477a9a8bca6eb434b2bd647f62f9dac9dd69c054981d95b5633af8eada06b7"></a>SOLVER_EVAL&#160;</td><td class="fielddoc"><p>(=0): no optimization, simple function evaluation at solution point of LBP </p>
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="acc8477a9a8bca6eb434b2bd647f62f9da15b7028091e5f95408a2a26e643cb972"></a>UBP_SOLVER_EVAL&#160;</td><td class="fielddoc"><p>(=0): no optimization, simple function evaluation at solution point of LBP </p>
 </td></tr>
-<tr><td class="fieldname"><a id="acc8477a9a8bca6eb434b2bd647f62f9dac5701f2847e960c47f46914beac6a128"></a>SOLVER_COBYLA&#160;</td><td class="fielddoc"><p>(=1): local optimization using COBYLA (derivative free solver within NLopt, uses linear approximations via simplex of nvar+1 points) </p>
+<tr><td class="fieldname"><a id="acc8477a9a8bca6eb434b2bd647f62f9daaff3b4a7dfedf2a8f66396d01c4e1645"></a>UBP_SOLVER_COBYLA&#160;</td><td class="fielddoc"><p>(=1): local optimization using COBYLA (derivative free solver within NLopt, uses linear approximations via simplex of nvar+1 points) </p>
 </td></tr>
-<tr><td class="fieldname"><a id="acc8477a9a8bca6eb434b2bd647f62f9da54ed347065f9c65c37a71a3cb4db7451"></a>SOLVER_BOBYQA&#160;</td><td class="fielddoc"><p>(=2): local optimization using BOBYQA (derivative free unconstrained solver in NLopt, constructs quadratic approximations; constraints are moved to the objective via augmented Lagrangian method) </p>
+<tr><td class="fieldname"><a id="acc8477a9a8bca6eb434b2bd647f62f9da16910a5ab42fd9bcd71489c0f07d7791"></a>UBP_SOLVER_BOBYQA&#160;</td><td class="fielddoc"><p>(=2): local optimization using BOBYQA (derivative free unconstrained solver in NLopt, constructs quadratic approximations; constraints are moved to the objective via augmented Lagrangian method) </p>
 </td></tr>
-<tr><td class="fieldname"><a id="acc8477a9a8bca6eb434b2bd647f62f9da816c98ce5f16248a60f78e76bc534823"></a>SOLVER_LBFGS&#160;</td><td class="fielddoc"><p>(=3): local optimization using LBFGS (lower-storage BFGS algorithm (i.e., gradient-based) for unconstrained optimization within NLopt; constraints are moved to the objective via augmented Lagrangian method) </p>
+<tr><td class="fieldname"><a id="acc8477a9a8bca6eb434b2bd647f62f9dac4da4292c1a20fb6a199fc7b540bc2d3"></a>UBP_SOLVER_LBFGS&#160;</td><td class="fielddoc"><p>(=3): local optimization using LBFGS (lower-storage BFGS algorithm (i.e., gradient-based) for unconstrained optimization within NLopt; constraints are moved to the objective via augmented Lagrangian method) </p>
 </td></tr>
-<tr><td class="fieldname"><a id="acc8477a9a8bca6eb434b2bd647f62f9da24b4fd10f12919d2825cb493c71d3cf8"></a>SOLVER_SLSQP&#160;</td><td class="fielddoc"><p>(=4): local optimization using SLSQP (SQP solver within NLopt) </p>
+<tr><td class="fieldname"><a id="acc8477a9a8bca6eb434b2bd647f62f9da5e8733223dd08864a8d5effbb341992a"></a>UBP_SOLVER_SLSQP&#160;</td><td class="fielddoc"><p>(=4): local optimization using SLSQP (SQP solver within NLopt) </p>
 </td></tr>
-<tr><td class="fieldname"><a id="acc8477a9a8bca6eb434b2bd647f62f9dac449153333e544edc3b78977ab02ea20"></a>SOLVER_IPOPT&#160;</td><td class="fielddoc"><p>(=5): local optimization using Ipopt (using the exact Hessian for problems with at most 50 variables, else using L-BFGS) </p>
+<tr><td class="fieldname"><a id="acc8477a9a8bca6eb434b2bd647f62f9da3d2c4a7fd42fd747fe825ec8f0b1a1ad"></a>UBP_SOLVER_IPOPT&#160;</td><td class="fielddoc"><p>(=5): local optimization using Ipopt (using the exact Hessian for problems with at most 50 variables, else using L-BFGS) </p>
 </td></tr>
-<tr><td class="fieldname"><a id="acc8477a9a8bca6eb434b2bd647f62f9da6cc859f77befbec62acf36cb2ef82683"></a>SOLVER_KNITRO&#160;</td><td class="fielddoc"><p>(=6): local optimization using Knitro (using the exact Hessian) </p>
+<tr><td class="fieldname"><a id="acc8477a9a8bca6eb434b2bd647f62f9da019153052e3b77622e3f2a7f0ce339e8"></a>UBP_SOLVER_KNITRO&#160;</td><td class="fielddoc"><p>(=6): local optimization using Knitro (using the exact Hessian) </p>
 </td></tr>
-<tr><td class="fieldname"><a id="acc8477a9a8bca6eb434b2bd647f62f9da64db5861bc8d36e7cb00978e72af8408"></a>SOLVER_CPLEX&#160;</td><td class="fielddoc"><p>(=42): optimization using CPLEX. Called only for (MI)LPs and (MI)QCPs. </p>
+<tr><td class="fieldname"><a id="acc8477a9a8bca6eb434b2bd647f62f9da9537df8ae6b66b2b07f2a31d7258c98f"></a>UBP_SOLVER_CPLEX&#160;</td><td class="fielddoc"><p>(=42): optimization using CPLEX. Called only for (MI)LPs and (MI)QCPs. </p>
 </td></tr>
-<tr><td class="fieldname"><a id="acc8477a9a8bca6eb434b2bd647f62f9da995e3c0356133ed4320ffa4111536e10"></a>SOLVER_CLP&#160;</td><td class="fielddoc"><p>(=43): optimization using CLP. Called only for LPs. </p>
+<tr><td class="fieldname"><a id="acc8477a9a8bca6eb434b2bd647f62f9dab4e7e171165eb64a246e2e7b7e2ea352"></a>UBP_SOLVER_CLP&#160;</td><td class="fielddoc"><p>(=43): optimization using CLP. Called only for LPs. </p>
 </td></tr>
 </table>
 
@@ -712,8 +712,8 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="ac4a3034b115744514ad64d9c150713ea"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ac4a3034b115744514ad64d9c150713ea">&#9670;&nbsp;</a></span>make_ubp_solver()</h2>
+<a id="ab62ff87d8caba41740160a8d488b133d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab62ff87d8caba41740160a8d488b133d">&#9670;&nbsp;</a></span>make_ubp_solver()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -763,19 +763,19 @@ Functions</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="structmaingo_1_1_settings.html">Settings</a> *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt;&#160;</td>
           <td class="paramname"><em>settingsIn</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="classmaingo_1_1_logger.html">Logger</a> *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt;&#160;</td>
           <td class="paramname"><em>loggerIn</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt;&#160;</td>
           <td class="paramname"><em>constraintPropertiesIn</em>, </td>
         </tr>
         <tr>
@@ -812,8 +812,8 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="a5c67ac181e81a6949e8ecb8a870782e2"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a5c67ac181e81a6949e8ecb8a870782e2">&#9670;&nbsp;</a></span>operator *() <span class="overload">[1/7]</span></h2>
+<a id="a63efcd0b2ad1996c20545e1481f0835a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a63efcd0b2ad1996c20545e1481f0835a">&#9670;&nbsp;</a></span>operator*() <span class="overload">[1/7]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -822,7 +822,7 @@ Functions</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">std::vector&lt;double&gt; maingo::ubp::operator * </td>
+          <td class="memname">std::vector&lt;double&gt; maingo::ubp::operator* </td>
           <td>(</td>
           <td class="paramtype">const std::vector&lt; double &gt; &amp;&#160;</td>
           <td class="paramname"><em>in1</em>, </td>
@@ -850,8 +850,8 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="ad3cba31c2697ea5b09bacbd997c9f296"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ad3cba31c2697ea5b09bacbd997c9f296">&#9670;&nbsp;</a></span>operator *() <span class="overload">[2/7]</span></h2>
+<a id="aa896d2608e6152fd66b0ec6031a083ef"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa896d2608e6152fd66b0ec6031a083ef">&#9670;&nbsp;</a></span>operator*() <span class="overload">[2/7]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -860,7 +860,7 @@ Functions</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">std::vector&lt;std::vector&lt;double&gt; &gt; maingo::ubp::operator * </td>
+          <td class="memname">std::vector&lt;std::vector&lt;double&gt; &gt; maingo::ubp::operator* </td>
           <td>(</td>
           <td class="paramtype">const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;&#160;</td>
           <td class="paramname"><em>in1</em>, </td>
@@ -888,8 +888,8 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="ab613e54b12d7fb8a43156f91aa434402"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ab613e54b12d7fb8a43156f91aa434402">&#9670;&nbsp;</a></span>operator *() <span class="overload">[3/7]</span></h2>
+<a id="a7731fb6c5c16ba843f8b36512c3f7f0c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7731fb6c5c16ba843f8b36512c3f7f0c">&#9670;&nbsp;</a></span>operator*() <span class="overload">[3/7]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -898,7 +898,7 @@ Functions</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> maingo::ubp::operator * </td>
+          <td class="memname"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> maingo::ubp::operator* </td>
           <td>(</td>
           <td class="paramtype">const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;&#160;</td>
           <td class="paramname"><em>in1</em>, </td>
@@ -922,12 +922,12 @@ Functions</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Operator* for two <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> objects. </p>
+<p>Operator* for two <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> objects. </p>
 
 </div>
 </div>
-<a id="a478444c21260358392dd33b31f713a9c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a478444c21260358392dd33b31f713a9c">&#9670;&nbsp;</a></span>operator *() <span class="overload">[4/7]</span></h2>
+<a id="aa3340e4491d298e5f1388853c9c183db"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa3340e4491d298e5f1388853c9c183db">&#9670;&nbsp;</a></span>operator*() <span class="overload">[4/7]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -936,7 +936,7 @@ Functions</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> maingo::ubp::operator * </td>
+          <td class="memname"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> maingo::ubp::operator* </td>
           <td>(</td>
           <td class="paramtype">const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;&#160;</td>
           <td class="paramname"><em>in1</em>, </td>
@@ -960,12 +960,12 @@ Functions</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Operator* for multiplication of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and a double. </p>
+<p>Operator* for multiplication of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and a double. </p>
 
 </div>
 </div>
-<a id="aac1334d57e5f2540b7bfa6cd37693205"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aac1334d57e5f2540b7bfa6cd37693205">&#9670;&nbsp;</a></span>operator *() <span class="overload">[5/7]</span></h2>
+<a id="aac93aa0207fe1de9f3a73b4985f96343"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aac93aa0207fe1de9f3a73b4985f96343">&#9670;&nbsp;</a></span>operator*() <span class="overload">[5/7]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -974,7 +974,7 @@ Functions</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> maingo::ubp::operator * </td>
+          <td class="memname"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> maingo::ubp::operator* </td>
           <td>(</td>
           <td class="paramtype">const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;&#160;</td>
           <td class="paramname"><em>in1</em>, </td>
@@ -998,12 +998,12 @@ Functions</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Operator* for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and an int. </p>
+<p>Operator* for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and an int. </p>
 
 </div>
 </div>
-<a id="ac90c68b5af595a7612a1149d2cc0c9b9"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ac90c68b5af595a7612a1149d2cc0c9b9">&#9670;&nbsp;</a></span>operator *() <span class="overload">[6/7]</span></h2>
+<a id="a7d5d0a8e327941d11246bfdb428239e7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7d5d0a8e327941d11246bfdb428239e7">&#9670;&nbsp;</a></span>operator*() <span class="overload">[6/7]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1012,7 +1012,7 @@ Functions</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> maingo::ubp::operator * </td>
+          <td class="memname"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> maingo::ubp::operator* </td>
           <td>(</td>
           <td class="paramtype">const double&#160;</td>
           <td class="paramname"><em>in1</em>, </td>
@@ -1036,12 +1036,12 @@ Functions</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Operator* for multiplication of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and a double. </p>
+<p>Operator* for multiplication of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and a double. </p>
 
 </div>
 </div>
-<a id="a0e92f83ac29ec3f83eeb2efe88f556c3"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a0e92f83ac29ec3f83eeb2efe88f556c3">&#9670;&nbsp;</a></span>operator *() <span class="overload">[7/7]</span></h2>
+<a id="a4e5d8a29639dd84a703944c7489b0b84"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4e5d8a29639dd84a703944c7489b0b84">&#9670;&nbsp;</a></span>operator*() <span class="overload">[7/7]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -1050,7 +1050,7 @@ Functions</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> maingo::ubp::operator * </td>
+          <td class="memname"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> maingo::ubp::operator* </td>
           <td>(</td>
           <td class="paramtype">const int&#160;</td>
           <td class="paramname"><em>in1</em>, </td>
@@ -1074,7 +1074,7 @@ Functions</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Operator* for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and an int. </p>
+<p>Operator* for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and an int. </p>
 
 </div>
 </div>
@@ -1178,7 +1178,7 @@ Functions</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Operator+ for <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a>. </p>
+<p>Operator+ for <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a>. </p>
 
 </div>
 </div>
@@ -1216,7 +1216,7 @@ Functions</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Operator+ for two <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> objects. </p>
+<p>Operator+ for two <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> objects. </p>
 
 </div>
 </div>
@@ -1254,7 +1254,7 @@ Functions</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Operator+ for addition of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and a double. </p>
+<p>Operator+ for addition of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and a double. </p>
 
 </div>
 </div>
@@ -1292,7 +1292,7 @@ Functions</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Operator+ for addition of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and an int. </p>
+<p>Operator+ for addition of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and an int. </p>
 
 </div>
 </div>
@@ -1330,7 +1330,7 @@ Functions</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Operator+ for addition of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and a double. </p>
+<p>Operator+ for addition of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and a double. </p>
 
 </div>
 </div>
@@ -1368,7 +1368,7 @@ Functions</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Operator+ for addition of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and an int. </p>
+<p>Operator+ for addition of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and an int. </p>
 
 </div>
 </div>
@@ -1528,7 +1528,7 @@ Functions</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Operator- for <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a>. </p>
+<p>Operator- for <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a>. </p>
 
 </div>
 </div>
@@ -1566,7 +1566,7 @@ Functions</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Operator- for two <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> objects. </p>
+<p>Operator- for two <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> objects. </p>
 
 </div>
 </div>
@@ -1604,7 +1604,7 @@ Functions</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Operator- for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and a double. </p>
+<p>Operator- for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and a double. </p>
 
 </div>
 </div>
@@ -1642,7 +1642,7 @@ Functions</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Operator- for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and an int. </p>
+<p>Operator- for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and an int. </p>
 
 </div>
 </div>
@@ -1680,7 +1680,7 @@ Functions</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Operator- for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and a double. </p>
+<p>Operator- for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and a double. </p>
 
 </div>
 </div>
@@ -1718,7 +1718,7 @@ Functions</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Operator- for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and an int. </p>
+<p>Operator- for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and an int. </p>
 
 </div>
 </div>
@@ -1756,7 +1756,7 @@ Functions</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Operator/ for two <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a>. </p>
+<p>Operator/ for two <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a>. </p>
 
 </div>
 </div>
@@ -1794,7 +1794,7 @@ Functions</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Operator/ for division of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> by a double. </p>
+<p>Operator/ for division of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> by a double. </p>
 
 </div>
 </div>
@@ -1832,7 +1832,7 @@ Functions</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Operator/ for division of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> by a double. </p>
+<p>Operator/ for division of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> by a double. </p>
 
 </div>
 </div>
@@ -1870,7 +1870,7 @@ Functions</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Operator/ for division of a double by an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a>. </p>
+<p>Operator/ for division of a double by an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a>. </p>
 
 </div>
 </div>
@@ -1908,7 +1908,7 @@ Functions</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Operator/ for division of an int by an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a>. </p>
+<p>Operator/ for division of an int by an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a>. </p>
 
 </div>
 </div>
@@ -1920,7 +1920,7 @@ Functions</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="namespacemaingo_1_1ubp.html">ubp</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespacemc.html b/doc/html/namespacemc.html
index e6ce13d8661c02f1b1f6503831b9baa0634f4bcd..273fbaf200a9dbd72c465f271085231115883d1c 100644
--- a/doc/html/namespacemc.html
+++ b/doc/html/namespacemc.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: mc Namespace Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -180,7 +180,7 @@ Functions</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacemc.html">mc</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespacemembers.html b/doc/html/namespacemembers.html
index d5689bc1b235a26fbf40969af693e9053cf99c17..c30605ad5ee4f5daf34e195bc882b758b27a4215 100644
--- a/doc/html/namespacemembers.html
+++ b/doc/html/namespacemembers.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Namespace Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -89,15 +89,9 @@ $(document).ready(function(){initNavTree('namespacemembers.html','');});
 <div class="textblock">Here is a list of all namespace members with links to the namespace documentation for each member:</div>
 
 <h3><a id="index_a"></a>- a -</h3><ul>
-<li>ALE
-: <a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aa8476f2061be97a547db8d42808fa4369">maingo</a>
-</li>
 <li>almost_equal()
 : <a class="el" href="namespacebab_base.html#a3b9c69d27eaa95bab37d3340bac0afc5">babBase</a>
 </li>
-<li>AMPL
-: <a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aa6005851459ecd1476b128baad46d46e6">maingo</a>
-</li>
 <li>AUX_EQ_REL_ONLY
 : <a class="el" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa3f418251b7df4d1f7abae45ec2c7120e">maingo</a>
 </li>
@@ -109,7 +103,7 @@ $(document).ready(function(){initNavTree('namespacemembers.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespacemembers_b.html b/doc/html/namespacemembers_b.html
index 6bdc0f6f4d4168faaefe9622659b47bb943a261d..7fabf36704d80b3b5e187a5e9ccab8e8266d7b1b 100644
--- a/doc/html/namespacemembers_b.html
+++ b/doc/html/namespacemembers_b.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Namespace Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -125,9 +125,6 @@ $(document).ready(function(){initNavTree('namespacemembers_b.html','');});
 <li>BAB_VERBOSITY
 : <a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aabadb050f3c17bb4bf6ec8d949e9b036">maingo</a>
 </li>
-<li>BARON
-: <a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aa6b23681db7db1db0a27cb2007620056e">maingo</a>
-</li>
 <li>BILINEAR
 : <a class="el" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592aaee4ec0f6a2b7adb51f538e7b9c1cf5a">maingo</a>
 </li>
@@ -157,7 +154,7 @@ $(document).ready(function(){initNavTree('namespacemembers_b.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespacemembers_c.html b/doc/html/namespacemembers_c.html
index ef65580a03efa4aa5f7c54e4b261ee3063ab943e..1a3515c59f9d1cac56ab0f0aa7abaf1d279c500d 100644
--- a/doc/html/namespacemembers_c.html
+++ b/doc/html/namespacemembers_c.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Namespace Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -124,7 +124,7 @@ $(document).ready(function(){initNavTree('namespacemembers_c.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespacemembers_d.html b/doc/html/namespacemembers_d.html
index 4e1ee6d4275daf7d6fe2dc3ee9dc012c81067a09..2ef0b9fe96c0a59782983d93a5f66c2316338c1d 100644
--- a/doc/html/namespacemembers_d.html
+++ b/doc/html/namespacemembers_d.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Namespace Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -112,7 +112,7 @@ $(document).ready(function(){initNavTree('namespacemembers_d.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespacemembers_e.html b/doc/html/namespacemembers_e.html
index 9635f0d9b536bcb736d8ce131588dd83014e90e5..57d1b8b66a7113b02370217fa274642e17cea2ae 100644
--- a/doc/html/namespacemembers_e.html
+++ b/doc/html/namespacemembers_e.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Namespace Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -130,7 +130,7 @@ $(document).ready(function(){initNavTree('namespacemembers_e.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespacemembers_enum.html b/doc/html/namespacemembers_enum.html
index a729ddb199b7665547d1c75da95f421a3f23a0d0..9a6836d22257c3bf6be19833952d361e3a2064cb 100644
--- a/doc/html/namespacemembers_enum.html
+++ b/doc/html/namespacemembers_enum.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Namespace Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -114,6 +114,9 @@ $(document).ready(function(){initNavTree('namespacemembers_enum.html','');});
 <li>LINP
 : <a class="el" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2">maingo::lbp</a>
 </li>
+<li>LOGGING_DESTINATION
+: <a class="el" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4">maingo</a>
+</li>
 <li>LP_RETCODE
 : <a class="el" href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90">maingo::lbp</a>
 </li>
@@ -123,12 +126,6 @@ $(document).ready(function(){initNavTree('namespacemembers_enum.html','');});
 <li>OBBT
 : <a class="el" href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8">maingo::lbp</a>
 </li>
-<li>OUTSTREAM_VERB
-: <a class="el" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0">maingo</a>
-</li>
-<li>PARSING_LANGUAGE
-: <a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299a">maingo</a>
-</li>
 <li>PROBLEM_STRUCTURE
 : <a class="el" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ece">maingo</a>
 </li>
@@ -153,6 +150,9 @@ $(document).ready(function(){initNavTree('namespacemembers_enum.html','');});
 <li>VT
 : <a class="el" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">babBase::enums</a>
 </li>
+<li>WRITING_LANGUAGE
+: <a class="el" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39a">maingo</a>
+</li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -161,7 +161,7 @@ $(document).ready(function(){initNavTree('namespacemembers_enum.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespacemembers_eval.html b/doc/html/namespacemembers_eval.html
index 64c1274a4c641b6b6096915a862fc5b99b27cae4..e9a1946ec9ddeb1ed4e1c7ae677f3b6cf5c44f92 100644
--- a/doc/html/namespacemembers_eval.html
+++ b/doc/html/namespacemembers_eval.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Namespace Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -89,12 +89,6 @@ $(document).ready(function(){initNavTree('namespacemembers_eval.html','');});
 &#160;
 
 <h3><a id="index_a"></a>- a -</h3><ul>
-<li>ALE
-: <a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aa8476f2061be97a547db8d42808fa4369">maingo</a>
-</li>
-<li>AMPL
-: <a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aa6005851459ecd1476b128baad46d46e6">maingo</a>
-</li>
 <li>AUX_EQ_REL_ONLY
 : <a class="el" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa3f418251b7df4d1f7abae45ec2c7120e">maingo</a>
 </li>
@@ -135,9 +129,6 @@ $(document).ready(function(){initNavTree('namespacemembers_eval.html','');});
 <li>BAB_VERBOSITY
 : <a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aabadb050f3c17bb4bf6ec8d949e9b036">maingo</a>
 </li>
-<li>BARON
-: <a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aa6b23681db7db1db0a27cb2007620056e">maingo</a>
-</li>
 <li>BILINEAR
 : <a class="el" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592aaee4ec0f6a2b7adb51f538e7b9c1cf5a">maingo</a>
 </li>
@@ -221,9 +212,6 @@ $(document).ready(function(){initNavTree('namespacemembers_eval.html','');});
 
 
 <h3><a id="index_g"></a>- g -</h3><ul>
-<li>GAMS
-: <a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aa14773b3cb5be6b7a031e2648f1edb27a">maingo</a>
-</li>
 <li>GLOBAL_MIN_NODE_SIZE
 : <a class="el" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2aa7172d473042d0a9008897a8831ee7df">babBase::enums</a>
 </li>
@@ -265,8 +253,14 @@ $(document).ready(function(){initNavTree('namespacemembers_eval.html','');});
 
 
 <h3><a id="index_l"></a>- l -</h3><ul>
+<li>LANG_ALE
+: <a class="el" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39aa1b0686f8505e989428b2edbc77249953">maingo</a>
+</li>
+<li>LANG_GAMS
+: <a class="el" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39aa8baf6445b690d1592e58cf697ced3bfe">maingo</a>
+</li>
 <li>LANG_NONE
-: <a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aacd2ad11121ce71554943363ac99cd0c8">maingo</a>
+: <a class="el" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39aacd2ad11121ce71554943363ac99cd0c8">maingo</a>
 </li>
 <li>LBP_ACTIVATEMORESCALING
 : <a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a89f8c3fb4d69e351baae115325a9e67f">maingo</a>
@@ -289,6 +283,18 @@ $(document).ready(function(){initNavTree('namespacemembers_eval.html','');});
 <li>LBP_SOLVER
 : <a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a71bd48756db5177b75b58c18c293de76">maingo</a>
 </li>
+<li>LBP_SOLVER_CLP
+: <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea9c0bfb2a028e4a3ab6011619009d62d9">maingo::lbp</a>
+</li>
+<li>LBP_SOLVER_CPLEX
+: <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea016b6bae02feefafd679a8d57149aff5">maingo::lbp</a>
+</li>
+<li>LBP_SOLVER_INTERVAL
+: <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4beafc7bfbfe657af2fff8e3800860388f89">maingo::lbp</a>
+</li>
+<li>LBP_SOLVER_MAiNGO
+: <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea32fa8aaeff8ed8f41d95ce72acc04ce1">maingo::lbp</a>
+</li>
 <li>LBP_SUBGRADIENTINTERVALS
 : <a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a09a491a6e7f617cd50a7060c552cce4e">maingo</a>
 </li>
@@ -325,6 +331,18 @@ $(document).ready(function(){initNavTree('namespacemembers_eval.html','');});
 <li>LINP_SIMPLEX
 : <a class="el" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2af60eacc8183e3e5080cb19d89f15c598">maingo::lbp</a>
 </li>
+<li>LOGGING_FILE
+: <a class="el" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4a335b5d0a5d8ddae15c4f4dc56ff437c1">maingo</a>
+</li>
+<li>LOGGING_FILE_AND_STREAM
+: <a class="el" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4aaeb2ef5d2157419a5fe03924e9fbb714">maingo</a>
+</li>
+<li>LOGGING_NONE
+: <a class="el" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4a5ba5670261ac104d957be08824b10fda">maingo</a>
+</li>
+<li>LOGGING_OUTSTREAM
+: <a class="el" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4afb969130cbbe60ea7ede72325e349fbe">maingo</a>
+</li>
 <li>LP
 : <a class="el" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea6ef20a631ab5ecf8ea394e3fac0da92b">maingo</a>
 </li>
@@ -381,9 +399,6 @@ $(document).ready(function(){initNavTree('namespacemembers_eval.html','');});
 <li>NLP
 : <a class="el" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea0d7b1cf896f4e2740742df1df01bd4e6">maingo</a>
 </li>
-<li>NLP_LANG
-: <a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aabb1dae9f397b7c971de9be182a505616">maingo</a>
-</li>
 <li>NO_FEASIBLE_POINT_FOUND
 : <a class="el" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aa546bea660c686f2af0e496cf20782f4b">maingo</a>
 </li>
@@ -419,18 +434,6 @@ $(document).ready(function(){initNavTree('namespacemembers_eval.html','');});
 <li>OUTPUT
 : <a class="el" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa58dc28c036216f9a14e602b625c1b500">maingo</a>
 </li>
-<li>OUTSTREAM_BOTH
-: <a class="el" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0a585dae7be6c02c38889b2be3e16fd2fb">maingo</a>
-</li>
-<li>OUTSTREAM_LOG
-: <a class="el" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0aeafd0b37169b3bd9330488dfff7713b7">maingo</a>
-</li>
-<li>OUTSTREAM_NONE
-: <a class="el" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0a11b0a1dd952da50747424243c027c808">maingo</a>
-</li>
-<li>OUTSTREAM_OUTSTREAM
-: <a class="el" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0a52f5f76af1455b5ee7ad085be3dbb0ed">maingo</a>
-</li>
 <li>OUTSTREAMVERBOSITY
 : <a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a6717bbec3198ea15d4f818af79374f09">maingo</a>
 </li>
@@ -453,9 +456,6 @@ $(document).ready(function(){initNavTree('namespacemembers_eval.html','');});
 <li>PRE_PUREMULTISTART
 : <a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ae4d7bcb01c294a5428bbea31972573ec">maingo</a>
 </li>
-<li>PYOMO
-: <a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aad139485466768f0cb2bc590af41f84fe">maingo</a>
-</li>
 </ul>
 
 
@@ -480,41 +480,6 @@ $(document).ready(function(){initNavTree('namespacemembers_eval.html','');});
 
 
 <h3><a id="index_s"></a>- s -</h3><ul>
-<li>SOLVER_BOBYQA
-: <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da54ed347065f9c65c37a71a3cb4db7451">maingo::ubp</a>
-</li>
-<li>SOLVER_CLP
-: <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea0a3210e4f9065f1ead5177bfdfbc27d1">maingo::lbp</a>
-, <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da995e3c0356133ed4320ffa4111536e10">maingo::ubp</a>
-</li>
-<li>SOLVER_COBYLA
-: <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac5701f2847e960c47f46914beac6a128">maingo::ubp</a>
-</li>
-<li>SOLVER_CPLEX
-: <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea7461c27f75e0601f39252dd553b686e6">maingo::lbp</a>
-, <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da64db5861bc8d36e7cb00978e72af8408">maingo::ubp</a>
-</li>
-<li>SOLVER_EVAL
-: <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac9dd69c054981d95b5633af8eada06b7">maingo::ubp</a>
-</li>
-<li>SOLVER_INTERVAL
-: <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4beabbf2c359f240461a8859bea8b628179d">maingo::lbp</a>
-</li>
-<li>SOLVER_IPOPT
-: <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac449153333e544edc3b78977ab02ea20">maingo::ubp</a>
-</li>
-<li>SOLVER_KNITRO
-: <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da6cc859f77befbec62acf36cb2ef82683">maingo::ubp</a>
-</li>
-<li>SOLVER_LBFGS
-: <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da816c98ce5f16248a60f78e76bc534823">maingo::ubp</a>
-</li>
-<li>SOLVER_MAiNGO
-: <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4beab21ba68ca9d31ece2a6ac8006b39027e">maingo::lbp</a>
-</li>
-<li>SOLVER_SLSQP
-: <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da24b4fd10f12919d2825cb493c71d3cf8">maingo::ubp</a>
-</li>
 <li>SUBSOLVER_FEASIBLE
 : <a class="el" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020a86709a3b1272bcb98c34b5965aadc7ef">maingo</a>
 </li>
@@ -571,6 +536,33 @@ $(document).ready(function(){initNavTree('namespacemembers_eval.html','');});
 <li>UBP_MAXTIMEPRE
 : <a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a60152ee26df4e219f935ef6dd5a10e43">maingo</a>
 </li>
+<li>UBP_SOLVER_BOBYQA
+: <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da16910a5ab42fd9bcd71489c0f07d7791">maingo::ubp</a>
+</li>
+<li>UBP_SOLVER_CLP
+: <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dab4e7e171165eb64a246e2e7b7e2ea352">maingo::ubp</a>
+</li>
+<li>UBP_SOLVER_COBYLA
+: <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9daaff3b4a7dfedf2a8f66396d01c4e1645">maingo::ubp</a>
+</li>
+<li>UBP_SOLVER_CPLEX
+: <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da9537df8ae6b66b2b07f2a31d7258c98f">maingo::ubp</a>
+</li>
+<li>UBP_SOLVER_EVAL
+: <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da15b7028091e5f95408a2a26e643cb972">maingo::ubp</a>
+</li>
+<li>UBP_SOLVER_IPOPT
+: <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da3d2c4a7fd42fd747fe825ec8f0b1a1ad">maingo::ubp</a>
+</li>
+<li>UBP_SOLVER_KNITRO
+: <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da019153052e3b77622e3f2a7f0ce339e8">maingo::ubp</a>
+</li>
+<li>UBP_SOLVER_LBFGS
+: <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac4da4292c1a20fb6a199fc7b540bc2d3">maingo::ubp</a>
+</li>
+<li>UBP_SOLVER_SLSQP
+: <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da5e8733223dd08864a8d5effbb341992a">maingo::ubp</a>
+</li>
 <li>UBP_SOLVERBAB
 : <a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a6d522f8c5fdacf5e00e987fc6f49727a">maingo</a>
 </li>
@@ -615,11 +607,8 @@ $(document).ready(function(){initNavTree('namespacemembers_eval.html','');});
 <li>WRITEJSON
 : <a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a20e6a32ee584c3187610f95ea83e1354">maingo</a>
 </li>
-<li>WRITELOG
-: <a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a67dd1fb20241b26b7ac93714b8b0aae1">maingo</a>
-</li>
-<li>WRITERESFILE
-: <a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ad208395baa4232a0d2e525d3ae4246cc">maingo</a>
+<li>writeResultFile
+: <a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a7e60bfc3f9fd67b15a9f9f78d9512d69">maingo</a>
 </li>
 <li>WRITETOLOGSEC
 : <a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aaed1ec51d45446a3609dff1a0551116d">maingo</a>
@@ -635,7 +624,7 @@ $(document).ready(function(){initNavTree('namespacemembers_eval.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespacemembers_f.html b/doc/html/namespacemembers_f.html
index c377f2c7a8ea7c64e7cce019c54bb1793d364c67..f49c29998d385aae2d7b464ca95555a714207b5d 100644
--- a/doc/html/namespacemembers_f.html
+++ b/doc/html/namespacemembers_f.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Namespace Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -103,7 +103,7 @@ $(document).ready(function(){initNavTree('namespacemembers_f.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespacemembers_func.html b/doc/html/namespacemembers_func.html
index b10c03043bd1fe80e513eaf07977aadf64bd370c..dcd5fa22ed0570e189a98265a83619a9b90657ec 100644
--- a/doc/html/namespacemembers_func.html
+++ b/doc/html/namespacemembers_func.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Namespace Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -169,30 +169,36 @@ $(document).ready(function(){initNavTree('namespacemembers_func.html','');});
 : <a class="el" href="namespacemc.html#a38d812b6e163b42939e3f2c5b0fdf70f">mc</a>
 </li>
 <li>make_lbp_solver()
-: <a class="el" href="namespacemaingo_1_1lbp.html#af2ff1a689d340482f4575c0507b4fa56">maingo::lbp</a>
+: <a class="el" href="namespacemaingo_1_1lbp.html#aa50d84ff66f4ea911a333eb047a8b6ea">maingo::lbp</a>
 </li>
 <li>make_ubp_solver()
-: <a class="el" href="namespacemaingo_1_1ubp.html#ac4a3034b115744514ad64d9c150713ea">maingo::ubp</a>
+: <a class="el" href="namespacemaingo_1_1ubp.html#ab62ff87d8caba41740160a8d488b133d">maingo::ubp</a>
 </li>
 </ul>
 
 
 <h3><a id="index_o"></a>- o -</h3><ul>
-<li>operator *()
-: <a class="el" href="namespacemaingo_1_1ubp.html#a5c67ac181e81a6949e8ecb8a870782e2">maingo::ubp</a>
+<li>operator!=()
+: <a class="el" href="namespacebab_base.html#a6d2be1c108f096eff60042aa02e3781e">babBase</a>
+</li>
+<li>operator*()
+: <a class="el" href="namespacemaingo_1_1ubp.html#a63efcd0b2ad1996c20545e1481f0835a">maingo::ubp</a>
 </li>
 <li>operator+()
-: <a class="el" href="namespacemaingo_1_1ubp.html#a10c5d0d8fe3f2daa26131fe923cdd9bc">maingo::ubp</a>
+: <a class="el" href="namespacemaingo_1_1ubp.html#a71bc9598739d457c38b6c8620fa70e6a">maingo::ubp</a>
 </li>
 <li>operator-()
-: <a class="el" href="namespacemaingo_1_1ubp.html#a742b207c46fd0870d53d6d13366e8ebc">maingo::ubp</a>
+: <a class="el" href="namespacemaingo_1_1ubp.html#ac33b3f1dcbbfc89678ddd9d83b12c33e">maingo::ubp</a>
 </li>
 <li>operator/()
-: <a class="el" href="namespacemaingo_1_1ubp.html#a1bdea6d9e43b0b3b4950db2888f59180">maingo::ubp</a>
+: <a class="el" href="namespacemaingo_1_1ubp.html#ae7c5689bc8931b7ae4216f810dddb5d3">maingo::ubp</a>
 </li>
 <li>operator&lt;&lt;()
 : <a class="el" href="namespacebab_base.html#a8bfa85e64a4cf9554eec367d08122be9">babBase</a>
 </li>
+<li>operator==()
+: <a class="el" href="namespacebab_base.html#aa4d99f78f3dad3b027ca3cf5f9cf4478">babBase</a>
+</li>
 <li>out_par()
 : <a class="el" href="namespacebab_base.html#a5366d466e365a73e1f3fc2800d64b776">babBase</a>
 </li>
@@ -250,7 +256,7 @@ $(document).ready(function(){initNavTree('namespacemembers_func.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespacemembers_g.html b/doc/html/namespacemembers_g.html
index 05280a47ce55f70ac6ce27b4a5f54360a6f5bd61..9a135a350c15fe00157b5e1442af74642688f77c 100644
--- a/doc/html/namespacemembers_g.html
+++ b/doc/html/namespacemembers_g.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Namespace Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -89,9 +89,6 @@ $(document).ready(function(){initNavTree('namespacemembers_g.html','');});
 <div class="textblock">Here is a list of all namespace members with links to the namespace documentation for each member:</div>
 
 <h3><a id="index_g"></a>- g -</h3><ul>
-<li>GAMS
-: <a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aa14773b3cb5be6b7a031e2648f1edb27a">maingo</a>
-</li>
 <li>get_cpu_time()
 : <a class="el" href="namespacemaingo.html#aac4ba5374ae7ff2bdca5126fd30b7f55">maingo</a>
 </li>
@@ -113,7 +110,7 @@ $(document).ready(function(){initNavTree('namespacemembers_g.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespacemembers_h.html b/doc/html/namespacemembers_h.html
index 7acf0063c7ff3a5cfaa0bb78811d82d3a7bd59c6..6228ba79d2841489b8351543ee945db9e06b7faa 100644
--- a/doc/html/namespacemembers_h.html
+++ b/doc/html/namespacemembers_h.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Namespace Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -100,7 +100,7 @@ $(document).ready(function(){initNavTree('namespacemembers_h.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespacemembers_i.html b/doc/html/namespacemembers_i.html
index 2cee78fe67ecee10f154fa38ead14b39a7e43881..33c97dcce000ebf49836c337608b178914b77c91 100644
--- a/doc/html/namespacemembers_i.html
+++ b/doc/html/namespacemembers_i.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Namespace Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -119,7 +119,7 @@ $(document).ready(function(){initNavTree('namespacemembers_i.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespacemembers_j.html b/doc/html/namespacemembers_j.html
index 6b84c4936c5dd9b58769030420f505a150943420..e775c9dab86840aa4d2bc82da7818c860c31383a 100644
--- a/doc/html/namespacemembers_j.html
+++ b/doc/html/namespacemembers_j.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Namespace Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -100,7 +100,7 @@ $(document).ready(function(){initNavTree('namespacemembers_j.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespacemembers_l.html b/doc/html/namespacemembers_l.html
index f05ab4954ab732c61fe445c49838d4c7c568051f..1bb5b1e56bdb91501e4a6c2c5959ee956de40028 100644
--- a/doc/html/namespacemembers_l.html
+++ b/doc/html/namespacemembers_l.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Namespace Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -89,8 +89,14 @@ $(document).ready(function(){initNavTree('namespacemembers_l.html','');});
 <div class="textblock">Here is a list of all namespace members with links to the namespace documentation for each member:</div>
 
 <h3><a id="index_l"></a>- l -</h3><ul>
+<li>LANG_ALE
+: <a class="el" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39aa1b0686f8505e989428b2edbc77249953">maingo</a>
+</li>
+<li>LANG_GAMS
+: <a class="el" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39aa8baf6445b690d1592e58cf697ced3bfe">maingo</a>
+</li>
 <li>LANG_NONE
-: <a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aacd2ad11121ce71554943363ac99cd0c8">maingo</a>
+: <a class="el" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39aacd2ad11121ce71554943363ac99cd0c8">maingo</a>
 </li>
 <li>larger_or_equal_within_rel_and_abs_tolerance()
 : <a class="el" href="namespacebab_base.html#a257f505cb4d7319956918abc4f14ab2d">babBase</a>
@@ -120,6 +126,18 @@ $(document).ready(function(){initNavTree('namespacemembers_l.html','');});
 : <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4be">maingo::lbp</a>
 , <a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a71bd48756db5177b75b58c18c293de76">maingo</a>
 </li>
+<li>LBP_SOLVER_CLP
+: <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea9c0bfb2a028e4a3ab6011619009d62d9">maingo::lbp</a>
+</li>
+<li>LBP_SOLVER_CPLEX
+: <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea016b6bae02feefafd679a8d57149aff5">maingo::lbp</a>
+</li>
+<li>LBP_SOLVER_INTERVAL
+: <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4beafc7bfbfe657af2fff8e3800860388f89">maingo::lbp</a>
+</li>
+<li>LBP_SOLVER_MAiNGO
+: <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea32fa8aaeff8ed8f41d95ce72acc04ce1">maingo::lbp</a>
+</li>
 <li>LBP_SUBGRADIENTINTERVALS
 : <a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a09a491a6e7f617cd50a7060c552cce4e">maingo</a>
 </li>
@@ -162,6 +180,21 @@ $(document).ready(function(){initNavTree('namespacemembers_l.html','');});
 <li>LINP_SIMPLEX
 : <a class="el" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2af60eacc8183e3e5080cb19d89f15c598">maingo::lbp</a>
 </li>
+<li>LOGGING_DESTINATION
+: <a class="el" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4">maingo</a>
+</li>
+<li>LOGGING_FILE
+: <a class="el" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4a335b5d0a5d8ddae15c4f4dc56ff437c1">maingo</a>
+</li>
+<li>LOGGING_FILE_AND_STREAM
+: <a class="el" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4aaeb2ef5d2157419a5fe03924e9fbb714">maingo</a>
+</li>
+<li>LOGGING_NONE
+: <a class="el" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4a5ba5670261ac104d957be08824b10fda">maingo</a>
+</li>
+<li>LOGGING_OUTSTREAM
+: <a class="el" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4afb969130cbbe60ea7ede72325e349fbe">maingo</a>
+</li>
 <li>low_id_first()
 : <a class="el" href="namespacebab_base.html#ab8f1d614e5625322fd3e196bd4d985b4">babBase</a>
 </li>
@@ -191,7 +224,7 @@ $(document).ready(function(){initNavTree('namespacemembers_l.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespacemembers_m.html b/doc/html/namespacemembers_m.html
index 0f94ae370ca412802cd5576e0b39433b197a9035..4f87f84d47ce87ad4a4f7b4f7affed1dab880fde 100644
--- a/doc/html/namespacemembers_m.html
+++ b/doc/html/namespacemembers_m.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Namespace Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -93,10 +93,10 @@ $(document).ready(function(){initNavTree('namespacemembers_m.html','');});
 : <a class="el" href="namespacemc.html#a38d812b6e163b42939e3f2c5b0fdf70f">mc</a>
 </li>
 <li>make_lbp_solver()
-: <a class="el" href="namespacemaingo_1_1lbp.html#af2ff1a689d340482f4575c0507b4fa56">maingo::lbp</a>
+: <a class="el" href="namespacemaingo_1_1lbp.html#aa50d84ff66f4ea911a333eb047a8b6ea">maingo::lbp</a>
 </li>
 <li>make_ubp_solver()
-: <a class="el" href="namespacemaingo_1_1ubp.html#ac4a3034b115744514ad64d9c150713ea">maingo::ubp</a>
+: <a class="el" href="namespacemaingo_1_1ubp.html#ab62ff87d8caba41740160a8d488b133d">maingo::ubp</a>
 </li>
 <li>MAX_ITERATIONS
 : <a class="el" href="namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a116bcdc14fb64222c56311ce39bcaa43">babBase::enums</a>
@@ -139,7 +139,7 @@ $(document).ready(function(){initNavTree('namespacemembers_m.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespacemembers_n.html b/doc/html/namespacemembers_n.html
index 4703df77548d1e2be69b9573c889fe4be2dae67b..d17eb90108b3a4fc3204200cfdf8b73d49abbd4f 100644
--- a/doc/html/namespacemembers_n.html
+++ b/doc/html/namespacemembers_n.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Namespace Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -92,9 +92,6 @@ $(document).ready(function(){initNavTree('namespacemembers_n.html','');});
 <li>NLP
 : <a class="el" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea0d7b1cf896f4e2740742df1df01bd4e6">maingo</a>
 </li>
-<li>NLP_LANG
-: <a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aabb1dae9f397b7c971de9be182a505616">maingo</a>
-</li>
 <li>NO_FEASIBLE_POINT_FOUND
 : <a class="el" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aa546bea660c686f2af0e496cf20782f4b">maingo</a>
 </li>
@@ -125,7 +122,7 @@ $(document).ready(function(){initNavTree('namespacemembers_n.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespacemembers_o.html b/doc/html/namespacemembers_o.html
index 1c2a9456c89fb6353f0b0cb3e1e218e1a75c9c9a..2a77bc860a6b4680d2dbf1963762b702fd1bb04c 100644
--- a/doc/html/namespacemembers_o.html
+++ b/doc/html/namespacemembers_o.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Namespace Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -101,21 +101,27 @@ $(document).ready(function(){initNavTree('namespacemembers_o.html','');});
 <li>OBJ
 : <a class="el" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa19ac253da82c7f431e902e1be9cc236d">maingo</a>
 </li>
-<li>operator *()
-: <a class="el" href="namespacemaingo_1_1ubp.html#a478444c21260358392dd33b31f713a9c">maingo::ubp</a>
+<li>operator!=()
+: <a class="el" href="namespacebab_base.html#a6d2be1c108f096eff60042aa02e3781e">babBase</a>
+</li>
+<li>operator*()
+: <a class="el" href="namespacemaingo_1_1ubp.html#a7731fb6c5c16ba843f8b36512c3f7f0c">maingo::ubp</a>
 </li>
 <li>operator+()
-: <a class="el" href="namespacemaingo_1_1ubp.html#a5d61a1b0104c207a63c55da96bbe28bf">maingo::ubp</a>
+: <a class="el" href="namespacemaingo_1_1ubp.html#a71bc9598739d457c38b6c8620fa70e6a">maingo::ubp</a>
 </li>
 <li>operator-()
-: <a class="el" href="namespacemaingo_1_1ubp.html#a7c723688f344053b4a3d7e0ba2e4c144">maingo::ubp</a>
+: <a class="el" href="namespacemaingo_1_1ubp.html#aa60e9a98c38d0c5836692f82c46f7408">maingo::ubp</a>
 </li>
 <li>operator/()
-: <a class="el" href="namespacemaingo_1_1ubp.html#a5854670509a4af23a920acce4f19748c">maingo::ubp</a>
+: <a class="el" href="namespacemaingo_1_1ubp.html#aefd918702d5ff67b444a1b5184a2ba78">maingo::ubp</a>
 </li>
 <li>operator&lt;&lt;()
 : <a class="el" href="namespacebab_base.html#a8bfa85e64a4cf9554eec367d08122be9">babBase</a>
 </li>
+<li>operator==()
+: <a class="el" href="namespacebab_base.html#aa4d99f78f3dad3b027ca3cf5f9cf4478">babBase</a>
+</li>
 <li>OptimizationVariable
 : <a class="el" href="namespacemaingo.html#adf4533c14585b7b44a5849066d6637cc">maingo</a>
 </li>
@@ -125,21 +131,6 @@ $(document).ready(function(){initNavTree('namespacemembers_o.html','');});
 <li>OUTPUT
 : <a class="el" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa58dc28c036216f9a14e602b625c1b500">maingo</a>
 </li>
-<li>OUTSTREAM_BOTH
-: <a class="el" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0a585dae7be6c02c38889b2be3e16fd2fb">maingo</a>
-</li>
-<li>OUTSTREAM_LOG
-: <a class="el" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0aeafd0b37169b3bd9330488dfff7713b7">maingo</a>
-</li>
-<li>OUTSTREAM_NONE
-: <a class="el" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0a11b0a1dd952da50747424243c027c808">maingo</a>
-</li>
-<li>OUTSTREAM_OUTSTREAM
-: <a class="el" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0a52f5f76af1455b5ee7ad085be3dbb0ed">maingo</a>
-</li>
-<li>OUTSTREAM_VERB
-: <a class="el" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0">maingo</a>
-</li>
 <li>OUTSTREAMVERBOSITY
 : <a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a6717bbec3198ea15d4f818af79374f09">maingo</a>
 </li>
@@ -151,7 +142,7 @@ $(document).ready(function(){initNavTree('namespacemembers_o.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespacemembers_p.html b/doc/html/namespacemembers_p.html
index c2d9b0f95c625a3238e2e3b032ed771277d0ebd1..6a03217c0ebd73753c9fb96f9cf64a5f26fff809 100644
--- a/doc/html/namespacemembers_p.html
+++ b/doc/html/namespacemembers_p.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Namespace Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -89,9 +89,6 @@ $(document).ready(function(){initNavTree('namespacemembers_p.html','');});
 <div class="textblock">Here is a list of all namespace members with links to the namespace documentation for each member:</div>
 
 <h3><a id="index_p"></a>- p -</h3><ul>
-<li>PARSING_LANGUAGE
-: <a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299a">maingo</a>
-</li>
 <li>POLYNOMIAL
 : <a class="el" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592aa25e5c3c1d625e9188448d1e61afe4e5">maingo</a>
 </li>
@@ -113,9 +110,6 @@ $(document).ready(function(){initNavTree('namespacemembers_p.html','');});
 <li>PROBLEM_STRUCTURE
 : <a class="el" href="namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ece">maingo</a>
 </li>
-<li>PYOMO
-: <a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aad139485466768f0cb2bc590af41f84fe">maingo</a>
-</li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -124,7 +118,7 @@ $(document).ready(function(){initNavTree('namespacemembers_p.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespacemembers_q.html b/doc/html/namespacemembers_q.html
index 043951d60077e2c95e5b908d74d3ff4065441f69..0ace1f7ec449dd67b3b1d2a01452e482d4f7878d 100644
--- a/doc/html/namespacemembers_q.html
+++ b/doc/html/namespacemembers_q.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Namespace Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -103,7 +103,7 @@ $(document).ready(function(){initNavTree('namespacemembers_q.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespacemembers_r.html b/doc/html/namespacemembers_r.html
index 48814342d0f586b8894b18624758a8ebd6a24db5..33acf62dacc91a2918b1f2d54f7695508c7fe4ff 100644
--- a/doc/html/namespacemembers_r.html
+++ b/doc/html/namespacemembers_r.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Namespace Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -109,7 +109,7 @@ $(document).ready(function(){initNavTree('namespacemembers_r.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespacemembers_s.html b/doc/html/namespacemembers_s.html
index 4e35dd0df10f839bbe0ce29739ddde46e9770df5..fbc4dba1d2e031baff77477b6db362f510c960c2 100644
--- a/doc/html/namespacemembers_s.html
+++ b/doc/html/namespacemembers_s.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Namespace Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -107,41 +107,6 @@ $(document).ready(function(){initNavTree('namespacemembers_s.html','');});
 <li>SETTING_NAMES
 : <a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6">maingo</a>
 </li>
-<li>SOLVER_BOBYQA
-: <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da54ed347065f9c65c37a71a3cb4db7451">maingo::ubp</a>
-</li>
-<li>SOLVER_CLP
-: <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea0a3210e4f9065f1ead5177bfdfbc27d1">maingo::lbp</a>
-, <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da995e3c0356133ed4320ffa4111536e10">maingo::ubp</a>
-</li>
-<li>SOLVER_COBYLA
-: <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac5701f2847e960c47f46914beac6a128">maingo::ubp</a>
-</li>
-<li>SOLVER_CPLEX
-: <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea7461c27f75e0601f39252dd553b686e6">maingo::lbp</a>
-, <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da64db5861bc8d36e7cb00978e72af8408">maingo::ubp</a>
-</li>
-<li>SOLVER_EVAL
-: <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac9dd69c054981d95b5633af8eada06b7">maingo::ubp</a>
-</li>
-<li>SOLVER_INTERVAL
-: <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4beabbf2c359f240461a8859bea8b628179d">maingo::lbp</a>
-</li>
-<li>SOLVER_IPOPT
-: <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac449153333e544edc3b78977ab02ea20">maingo::ubp</a>
-</li>
-<li>SOLVER_KNITRO
-: <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da6cc859f77befbec62acf36cb2ef82683">maingo::ubp</a>
-</li>
-<li>SOLVER_LBFGS
-: <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da816c98ce5f16248a60f78e76bc534823">maingo::ubp</a>
-</li>
-<li>SOLVER_MAiNGO
-: <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4beab21ba68ca9d31ece2a6ac8006b39027e">maingo::lbp</a>
-</li>
-<li>SOLVER_SLSQP
-: <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da24b4fd10f12919d2825cb493c71d3cf8">maingo::ubp</a>
-</li>
 <li>SUBSOLVER_FEASIBLE
 : <a class="el" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020a86709a3b1272bcb98c34b5965aadc7ef">maingo</a>
 </li>
@@ -159,7 +124,7 @@ $(document).ready(function(){initNavTree('namespacemembers_s.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespacemembers_t.html b/doc/html/namespacemembers_t.html
index f2960e01adf956c089d550a77122bb0a85bc9740..69c030e3ddc532a83f11631f45e5f3962858e14d 100644
--- a/doc/html/namespacemembers_t.html
+++ b/doc/html/namespacemembers_t.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Namespace Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -127,7 +127,7 @@ $(document).ready(function(){initNavTree('namespacemembers_t.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespacemembers_type.html b/doc/html/namespacemembers_type.html
index d6ef2e7e1758ca379ab131c2fae0737780971e26..644a6e2350b804067879124c531f7a50075518ab 100644
--- a/doc/html/namespacemembers_type.html
+++ b/doc/html/namespacemembers_type.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Namespace Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -107,7 +107,7 @@ $(document).ready(function(){initNavTree('namespacemembers_type.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespacemembers_u.html b/doc/html/namespacemembers_u.html
index e609787837852bb9c5ad62dc3716a8336388d351..385557bbf46146b843ac573edbe824b4e5f7370b 100644
--- a/doc/html/namespacemembers_u.html
+++ b/doc/html/namespacemembers_u.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Namespace Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -107,6 +107,33 @@ $(document).ready(function(){initNavTree('namespacemembers_u.html','');});
 <li>UBP_SOLVER
 : <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9d">maingo::ubp</a>
 </li>
+<li>UBP_SOLVER_BOBYQA
+: <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da16910a5ab42fd9bcd71489c0f07d7791">maingo::ubp</a>
+</li>
+<li>UBP_SOLVER_CLP
+: <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dab4e7e171165eb64a246e2e7b7e2ea352">maingo::ubp</a>
+</li>
+<li>UBP_SOLVER_COBYLA
+: <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9daaff3b4a7dfedf2a8f66396d01c4e1645">maingo::ubp</a>
+</li>
+<li>UBP_SOLVER_CPLEX
+: <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da9537df8ae6b66b2b07f2a31d7258c98f">maingo::ubp</a>
+</li>
+<li>UBP_SOLVER_EVAL
+: <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da15b7028091e5f95408a2a26e643cb972">maingo::ubp</a>
+</li>
+<li>UBP_SOLVER_IPOPT
+: <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da3d2c4a7fd42fd747fe825ec8f0b1a1ad">maingo::ubp</a>
+</li>
+<li>UBP_SOLVER_KNITRO
+: <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da019153052e3b77622e3f2a7f0ce339e8">maingo::ubp</a>
+</li>
+<li>UBP_SOLVER_LBFGS
+: <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac4da4292c1a20fb6a199fc7b540bc2d3">maingo::ubp</a>
+</li>
+<li>UBP_SOLVER_SLSQP
+: <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da5e8733223dd08864a8d5effbb341992a">maingo::ubp</a>
+</li>
 <li>UBP_SOLVERBAB
 : <a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a6d522f8c5fdacf5e00e987fc6f49727a">maingo</a>
 </li>
@@ -127,7 +154,7 @@ $(document).ready(function(){initNavTree('namespacemembers_u.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespacemembers_v.html b/doc/html/namespacemembers_v.html
index 8171b0423d6afb9301aa9c3ab141e34d868e169e..c67cba3d24eb91c53bdcfa5e771bcb3adc5d060d 100644
--- a/doc/html/namespacemembers_v.html
+++ b/doc/html/namespacemembers_v.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Namespace Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -137,7 +137,7 @@ $(document).ready(function(){initNavTree('namespacemembers_v.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespacemembers_vars.html b/doc/html/namespacemembers_vars.html
index 649f9dc6933cedf63a3158f93387b49cb043a8e8..773013bb2c62c76ea77fc79d1b23607996795ea5 100644
--- a/doc/html/namespacemembers_vars.html
+++ b/doc/html/namespacemembers_vars.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Namespace Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -104,7 +104,7 @@ $(document).ready(function(){initNavTree('namespacemembers_vars.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespacemembers_w.html b/doc/html/namespacemembers_w.html
index 3409305ea81893cd690d307f9d4f210c041af105..e0095a46cba12f1d5ec612be1e438688e21a1046 100644
--- a/doc/html/namespacemembers_w.html
+++ b/doc/html/namespacemembers_w.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Namespace Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -95,11 +95,8 @@ $(document).ready(function(){initNavTree('namespacemembers_w.html','');});
 <li>WRITEJSON
 : <a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a20e6a32ee584c3187610f95ea83e1354">maingo</a>
 </li>
-<li>WRITELOG
-: <a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a67dd1fb20241b26b7ac93714b8b0aae1">maingo</a>
-</li>
-<li>WRITERESFILE
-: <a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ad208395baa4232a0d2e525d3ae4246cc">maingo</a>
+<li>writeResultFile
+: <a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a7e60bfc3f9fd67b15a9f9f78d9512d69">maingo</a>
 </li>
 <li>WRITETOLOGSEC
 : <a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aaed1ec51d45446a3609dff1a0551116d">maingo</a>
@@ -107,6 +104,9 @@ $(document).ready(function(){initNavTree('namespacemembers_w.html','');});
 <li>WRITETOOTHERLANGUAGE
 : <a class="el" href="namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a70b90d0f834b991c2bdba8a75d240769">maingo</a>
 </li>
+<li>WRITING_LANGUAGE
+: <a class="el" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39a">maingo</a>
+</li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -115,7 +115,7 @@ $(document).ready(function(){initNavTree('namespacemembers_w.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespacepymaingo.html b/doc/html/namespacepymaingo.html
new file mode 100644
index 0000000000000000000000000000000000000000..41078a4b97d219c1e705cadf38208253c0bd6518
--- /dev/null
+++ b/doc/html/namespacepymaingo.html
@@ -0,0 +1,105 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>MAiNGO: pymaingo Namespace Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(initResizable);
+/* @license-end */</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><img alt="Logo" src="mango_only.png"/></td>
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">MAiNGO
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(document).ready(function(){initNavTree('namespacepymaingo.html','');});
+/* @license-end */
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">pymaingo Namespace Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="namespacepymaingo.html">pymaingo</a></li>
+    <li class="footer">Generated by
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/doc/html/namespaces.html b/doc/html/namespaces.html
index 63073e78413c1446aa104ecf234e1e169fd78ff5..c8931e14c8ec466204d418ffd9539321a010d691 100644
--- a/doc/html/namespaces.html
+++ b/doc/html/namespaces.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Namespace List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -92,13 +92,14 @@ $(document).ready(function(){initNavTree('namespaces.html','');});
 <div class="contents">
 <div class="textblock">Here is a list of all namespaces with brief descriptions:</div><div class="directory">
 <div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
-<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacebab_base.html" target="_self">babBase</a></td><td class="desc">Namespace holding all essentials of the <a class="el" href="namespacebab_base.html" title="namespace holding all essentials of the babBase submodule">babBase</a> submodule </td></tr>
+<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacebab_base.html" target="_self">babBase</a></td><td class="desc">Namespace holding all essentials of the <a class="el" href="namespacebab_base.html" title="namespace holding all essentials of the babBase submodule ">babBase</a> submodule </td></tr>
 <tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacebab_base_1_1enums.html" target="_self">enums</a></td><td class="desc">Namespace holding all enums used for branching and B&amp;B reporting </td></tr>
 <tr id="row_1_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemaingo.html" target="_self">maingo</a></td><td class="desc">Namespace holding all essentials of <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> </td></tr>
 <tr id="row_1_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemaingo_1_1bab.html" target="_self">bab</a></td><td class="desc">Namespace holding everything related to the actual branch-and-bound algorithm </td></tr>
 <tr id="row_1_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemaingo_1_1lbp.html" target="_self">lbp</a></td><td class="desc">Namespace holding all essentials of the lower bounding solver </td></tr>
 <tr id="row_1_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemaingo_1_1ubp.html" target="_self">ubp</a></td><td class="desc">Namespace holding all essentials of the upper bounding solvers </td></tr>
 <tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacemc.html" target="_self">mc</a></td><td class="desc">Namespace holding forward declaration of McCormick objects. For more info refer to the open-source library MC++ </td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacepymaingo.html" target="_self">pymaingo</a></td><td class="desc"></td></tr>
 </table>
 </div><!-- directory -->
 </div><!-- contents -->
@@ -108,7 +109,7 @@ $(document).ready(function(){initNavTree('namespaces.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/namespaces_dup.js b/doc/html/namespaces_dup.js
index af9b258720596847faa2031f61c807013ad226ca..ef04f5e8f586516277df62b667fcc1933148d4cd 100644
--- a/doc/html/namespaces_dup.js
+++ b/doc/html/namespaces_dup.js
@@ -2,5 +2,6 @@ var namespaces_dup =
 [
     [ "babBase", "namespacebab_base.html", "namespacebab_base" ],
     [ "maingo", "namespacemaingo.html", "namespacemaingo" ],
-    [ "mc", "namespacemc.html", null ]
+    [ "mc", "namespacemc.html", null ],
+    [ "pymaingo", "namespacepymaingo.html", null ]
 ];
\ No newline at end of file
diff --git a/doc/html/navtree.css b/doc/html/navtree.css
index 33341a67d69b0b1bb09d1b11878cba8f95aa61d4..0cc7e776c3bcced883837e49911a6b694038a814 100644
--- a/doc/html/navtree.css
+++ b/doc/html/navtree.css
@@ -96,7 +96,7 @@
 .ui-resizable-e {
   background-image:url("splitbar.png");
   background-size:100%;
-  background-repeat:repeat-y;
+  background-repeat:no-repeat;
   background-attachment: scroll;
   cursor:ew-resize;
   height:100%;
diff --git a/doc/html/navtree.js b/doc/html/navtree.js
index 7ce293523cca1f080971633817af6bfc4df95f8e..e310bc9d0ea2ff1678baa4634fb3b83fc2048fa1 100644
--- a/doc/html/navtree.js
+++ b/doc/html/navtree.js
@@ -23,7 +23,7 @@
  */
 var navTreeSubIndices = new Array();
 var arrowDown = '&#9660;';
-var arrowRight = '&#9658;';
+var arrowRight = '&#9654;';
 
 function getData(varName)
 {
diff --git a/doc/html/navtreedata.js b/doc/html/navtreedata.js
index 5fb8f7f1d1c09686ddeb340c045fc0a20f56859b..b928e49c6e74648056f2d8eca5a7dfd4529e04b7 100644
--- a/doc/html/navtreedata.js
+++ b/doc/html/navtreedata.js
@@ -64,14 +64,14 @@ var NAVTREE =
 
 var NAVTREEINDEX =
 [
-"_m_ai_n_g_o_8cpp.html",
-"classmaingo_1_1_ale_model.html#a3bb9ac4b8b424d7828893cddefe1d9e8",
-"classmaingo_1_1_maingo_evaluator.html#a4c67cfa8ca5bf2793ef3b81e37853427",
-"classmaingo_1_1lbp_1_1_lbp_clp.html#ab8577790c0bc0371e97f63040a576171",
-"classmaingo_1_1ubp_1_1_ubp_clp.html#a10029afd1388a285d464b25181c00d3e",
-"functions_vars_l.html",
-"settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9d",
-"structmaingo_1_1ubp_1_1_dag_obj.html#a29fc29042fab2e29d8cf3e8270d1400e"
+"____init_____8py.html",
+"classbab_base_1_1_optimization_variable.html#adf64e2c7687fce1a063b7a4a46a2e212",
+"classmaingo_1_1_maingo_evaluator.html#a0e56aaa973cca94ba40aaa36a46762c6",
+"classmaingo_1_1lbp_1_1_lbp_clp.html#adf6172de124b973b6f1ce730119f222c",
+"classmaingo_1_1ubp_1_1_ubp_clp.html#ab24d1e766d5bbc32fdaab11dbdd05ef2",
+"functions_vars_t.html",
+"settings_8h.html#addd00d5f7ff74c4721070d8dd76f93a2af60eacc8183e3e5080cb19d89f15c598",
+"structmaingo_1_1ubp_1_1_dag_obj.html#a803b289e729d816f8524f925302139db"
 ];
 
 var SYNCONMSG = 'click to disable panel synchronisation';
diff --git a/doc/html/navtreeindex0.js b/doc/html/navtreeindex0.js
index 2b8e6b18d0ff314f95f25389b2dbfb579f51933c..a3732d5c83641b5174503c7f9610a9038eac9725 100644
--- a/doc/html/navtreeindex0.js
+++ b/doc/html/navtreeindex0.js
@@ -1,102 +1,119 @@
 var NAVTREEINDEX0 =
 {
-"_m_ai_n_g_o_8cpp.html":[3,0,2,15],
-"_m_ai_n_g_o_8h.html":[3,0,1,17],
-"_m_ai_n_g_o_8h_source.html":[3,0,1,17],
-"_m_ai_n_g_o_w_a_l_l_8cpp.html":[3,0,2,20],
-"_m_ai_n_g_odebug_8h.html":[3,0,1,18],
-"_m_ai_n_g_odebug_8h.html#a2426c899a5c3a34bfa2fb0f61f6dcaf5":[3,0,1,18,0],
-"_m_ai_n_g_odebug_8h_source.html":[3,0,1,18],
-"_m_ai_n_g_oevaluator_8h.html":[3,0,1,19],
-"_m_ai_n_g_oevaluator_8h.html#af5ee07a403d9ee6e7075d41518d93f77":[3,0,1,19,2],
-"_m_ai_n_g_oevaluator_8h_source.html":[3,0,1,19],
-"_m_ai_n_g_ogetter_functions_8cpp.html":[3,0,2,16],
-"_m_ai_n_g_omodel_8h.html":[3,0,1,20],
-"_m_ai_n_g_omodel_8h.html#a041341062af0bec7f553f388a88f63fc":[3,0,1,20,6],
-"_m_ai_n_g_omodel_8h.html#a2636675161b046fa4c46354e7496b821":[3,0,1,20,4],
-"_m_ai_n_g_omodel_8h.html#a56be7240143795082f52dcb10cb2d1ba":[3,0,1,20,1],
-"_m_ai_n_g_omodel_8h.html#a6754e89435e018272f9b618e78f255f0":[3,0,1,20,3],
-"_m_ai_n_g_omodel_8h.html#a89cab929c81b85f38d710492c504a2aa":[3,0,1,20,5],
-"_m_ai_n_g_omodel_8h.html#adf4533c14585b7b44a5849066d6637cc":[3,0,1,20,2],
-"_m_ai_n_g_omodel_8h_source.html":[3,0,1,20],
-"_m_ai_n_g_omodel_eps_con_8cpp.html":[3,0,2,17],
-"_m_ai_n_g_omodel_eps_con_8h.html":[3,0,1,21],
-"_m_ai_n_g_omodel_eps_con_8h_source.html":[3,0,1,21],
-"_m_ai_n_g_oprinting_functions_8cpp.html":[3,0,2,18],
-"_m_ai_n_g_oto_other_language_8cpp.html":[3,0,2,19],
-"_m_ai_n_g_owriting_functions_8cpp.html":[3,0,2,21],
-"ale_model_8cpp.html":[3,0,2,0],
+"____init_____8py.html":[3,0,2,0],
+"__pymaingo_8cpp.html":[3,0,2,1],
+"__pymaingo_8cpp.html#a75e1ee573073a440d528a799ccd1e331":[3,0,2,1,1],
+"_m_ai_n_g_o_8cpp.html":[3,0,3,14],
+"_m_ai_n_g_o_8h.html":[3,0,1,15],
+"_m_ai_n_g_o_8h_source.html":[3,0,1,15],
+"_m_ai_n_g_o_exception_8h.html":[3,0,1,18],
+"_m_ai_n_g_o_exception_8h_source.html":[3,0,1,18],
+"_m_ai_n_g_o_mpi_exception_8h.html":[3,0,1,21],
+"_m_ai_n_g_o_mpi_exception_8h_source.html":[3,0,1,21],
+"_m_ai_n_g_odebug_8h.html":[3,0,1,16],
+"_m_ai_n_g_odebug_8h.html#a2426c899a5c3a34bfa2fb0f61f6dcaf5":[3,0,1,16,0],
+"_m_ai_n_g_odebug_8h_source.html":[3,0,1,16],
+"_m_ai_n_g_oevaluation_functions_8cpp.html":[3,0,3,15],
+"_m_ai_n_g_oevaluator_8h.html":[3,0,1,17],
+"_m_ai_n_g_oevaluator_8h.html#af5ee07a403d9ee6e7075d41518d93f77":[3,0,1,17,2],
+"_m_ai_n_g_oevaluator_8h_source.html":[3,0,1,17],
+"_m_ai_n_g_ogetter_functions_8cpp.html":[3,0,3,16],
+"_m_ai_n_g_omodel_8h.html":[3,0,1,19],
+"_m_ai_n_g_omodel_8h.html#a041341062af0bec7f553f388a88f63fc":[3,0,1,19,6],
+"_m_ai_n_g_omodel_8h.html#a2636675161b046fa4c46354e7496b821":[3,0,1,19,4],
+"_m_ai_n_g_omodel_8h.html#a56be7240143795082f52dcb10cb2d1ba":[3,0,1,19,1],
+"_m_ai_n_g_omodel_8h.html#a6754e89435e018272f9b618e78f255f0":[3,0,1,19,3],
+"_m_ai_n_g_omodel_8h.html#a89cab929c81b85f38d710492c504a2aa":[3,0,1,19,5],
+"_m_ai_n_g_omodel_8h.html#adf4533c14585b7b44a5849066d6637cc":[3,0,1,19,2],
+"_m_ai_n_g_omodel_8h_source.html":[3,0,1,19],
+"_m_ai_n_g_omodel_eps_con_8cpp.html":[3,0,3,17],
+"_m_ai_n_g_omodel_eps_con_8h.html":[3,0,1,20],
+"_m_ai_n_g_omodel_eps_con_8h_source.html":[3,0,1,20],
+"_m_ai_n_g_oprinting_functions_8cpp.html":[3,0,3,18],
+"_m_ai_n_g_oread_settings_8cpp.html":[3,0,3,19],
+"_m_ai_n_g_oset_option_8cpp.html":[3,0,3,20],
+"_m_ai_n_g_oto_other_language_8cpp.html":[3,0,3,21],
+"_m_ai_n_g_owriting_functions_8cpp.html":[3,0,3,22],
+"ale_model_8cpp.html":[3,0,3,0],
 "ale_model_8h.html":[3,0,1,0],
 "ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc":[3,0,1,0,1],
 "ale_model_8h_source.html":[3,0,1,0],
 "algorithm.html":[0,4],
-"algorithm.html#LBS":[0,4,0],
-"algorithm.html#UBS":[0,4,1],
+"algorithm.html#LBS":[0,4,2],
+"algorithm.html#UBS":[0,4,3],
+"algorithm.html#algorithm_details":[0,4,1],
+"algorithm.html#basic_structure":[0,4,0],
 "annotated.html":[2,0],
-"bab_8cpp.html":[3,0,2,1],
+"bab_8cpp.html":[3,0,3,1],
 "bab_8h.html":[3,0,1,1],
 "bab_8h_source.html":[3,0,1,1],
+"bab_bounds_8h.html":[3,0,0,0,0,0],
+"bab_bounds_8h.html#a6d2be1c108f096eff60042aa02e3781e":[3,0,0,0,0,0,1],
+"bab_bounds_8h.html#aa4d99f78f3dad3b027ca3cf5f9cf4478":[3,0,0,0,0,0,3],
+"bab_bounds_8h.html#ace0cd5136bac463b84cdd69b51be9f49":[3,0,0,0,0,0,2],
+"bab_bounds_8h_source.html":[3,0,0,0,0,0],
 "bab_brancher_8cpp.html":[3,0,0,0,1,0],
-"bab_brancher_8h.html":[3,0,0,0,0,0],
-"bab_brancher_8h.html#a22201bd682ee96c743674a020b372d58":[3,0,0,0,0,0,2],
-"bab_brancher_8h.html#a4d2b6b4a6ab2a3676a6a1ec734be6b6b":[3,0,0,0,0,0,5],
-"bab_brancher_8h.html#a53c20e34bcd16e8a49612ee4ff5e6f11":[3,0,0,0,0,0,7],
-"bab_brancher_8h.html#aa9bc767e7e3b13c80b9c529eb5764592":[3,0,0,0,0,0,6],
-"bab_brancher_8h.html#ab748ef40ab06d5cfe2a2280d66f19bb9":[3,0,0,0,0,0,4],
-"bab_brancher_8h.html#ab8f1d614e5625322fd3e196bd4d985b4":[3,0,0,0,0,0,3],
-"bab_brancher_8h.html#ad18c8a7d403193113c3d6c4ecef067c3":[3,0,0,0,0,0,1],
-"bab_brancher_8h_source.html":[3,0,0,0,0,0],
-"bab_exception_8h.html":[3,0,0,0,0,1],
-"bab_exception_8h_source.html":[3,0,0,0,0,1],
-"bab_mpi_8cpp.html":[3,0,2,2],
-"bab_node_8h.html":[3,0,0,0,0,2],
-"bab_node_8h.html#a8bfa85e64a4cf9554eec367d08122be9":[3,0,0,0,0,2,1],
-"bab_node_8h_source.html":[3,0,0,0,0,2],
+"bab_brancher_8h.html":[3,0,0,0,0,1],
+"bab_brancher_8h.html#a22201bd682ee96c743674a020b372d58":[3,0,0,0,0,1,2],
+"bab_brancher_8h.html#a4d2b6b4a6ab2a3676a6a1ec734be6b6b":[3,0,0,0,0,1,5],
+"bab_brancher_8h.html#a53c20e34bcd16e8a49612ee4ff5e6f11":[3,0,0,0,0,1,7],
+"bab_brancher_8h.html#aa9bc767e7e3b13c80b9c529eb5764592":[3,0,0,0,0,1,6],
+"bab_brancher_8h.html#ab748ef40ab06d5cfe2a2280d66f19bb9":[3,0,0,0,0,1,4],
+"bab_brancher_8h.html#ab8f1d614e5625322fd3e196bd4d985b4":[3,0,0,0,0,1,3],
+"bab_brancher_8h.html#ad18c8a7d403193113c3d6c4ecef067c3":[3,0,0,0,0,1,1],
+"bab_brancher_8h_source.html":[3,0,0,0,0,1],
+"bab_exception_8h.html":[3,0,0,0,0,2],
+"bab_exception_8h_source.html":[3,0,0,0,0,2],
+"bab_mpi_8cpp.html":[3,0,3,2],
+"bab_node_8h.html":[3,0,0,0,0,3],
+"bab_node_8h.html#a8bfa85e64a4cf9554eec367d08122be9":[3,0,0,0,0,3,1],
+"bab_node_8h_source.html":[3,0,0,0,0,3],
 "bab_opt_var_8cpp.html":[3,0,0,0,1,1],
-"bab_opt_var_8h.html":[3,0,0,0,0,3],
-"bab_opt_var_8h.html#a6b926f3dfa42fc3a3324c8b0ac99c48b":[3,0,0,0,0,3,3],
-"bab_opt_var_8h.html#a6b926f3dfa42fc3a3324c8b0ac99c48ba0b98d296343ee5946f17e4c1c2cfa1f7":[3,0,0,0,0,3,3,0],
-"bab_opt_var_8h.html#a6b926f3dfa42fc3a3324c8b0ac99c48babe2d3761c7831bdffa20a737d7c7f56e":[3,0,0,0,0,3,3,2],
-"bab_opt_var_8h.html#a6b926f3dfa42fc3a3324c8b0ac99c48baeee7e08680959528bc9a9412081d5222":[3,0,0,0,0,3,3,1],
-"bab_opt_var_8h_source.html":[3,0,0,0,0,3],
+"bab_opt_var_8h.html":[3,0,0,0,0,4],
+"bab_opt_var_8h.html#a6b926f3dfa42fc3a3324c8b0ac99c48b":[3,0,0,0,0,4,1],
+"bab_opt_var_8h.html#a6b926f3dfa42fc3a3324c8b0ac99c48ba0b98d296343ee5946f17e4c1c2cfa1f7":[3,0,0,0,0,4,1,0],
+"bab_opt_var_8h.html#a6b926f3dfa42fc3a3324c8b0ac99c48babe2d3761c7831bdffa20a737d7c7f56e":[3,0,0,0,0,4,1,2],
+"bab_opt_var_8h.html#a6b926f3dfa42fc3a3324c8b0ac99c48baeee7e08680959528bc9a9412081d5222":[3,0,0,0,0,4,1,1],
+"bab_opt_var_8h_source.html":[3,0,0,0,0,4],
 "bab_tree_8cpp.html":[3,0,0,0,1,2],
-"bab_tree_8h.html":[3,0,0,0,0,4],
-"bab_tree_8h.html#a388a4423133a99ec8703695a463b6c47":[3,0,0,0,0,4,5],
-"bab_tree_8h.html#a676088e39a43b256c799d75f1eb9e26f":[3,0,0,0,0,4,6],
-"bab_tree_8h.html#a7023aaaa7bf22bf1c3717cfa070f4e69":[3,0,0,0,0,4,7],
-"bab_tree_8h_source.html":[3,0,0,0,0,4],
-"bab_utils_8h.html":[3,0,0,0,0,5],
-"bab_utils_8h.html#a02e97c49bffe195071c83aa097a8dde5":[3,0,0,0,0,5,4],
-"bab_utils_8h.html#a02e97c49bffe195071c83aa097a8dde5a27cb24b7ae25692a53e21298b16223b5":[3,0,0,0,0,5,4,0],
-"bab_utils_8h.html#a02e97c49bffe195071c83aa097a8dde5aa1ffe7bee36f4b5defe413df89720d07":[3,0,0,0,0,5,4,1],
-"bab_utils_8h.html#a02e97c49bffe195071c83aa097a8dde5af40e2858362e9af0fc18758abfb471bf":[3,0,0,0,0,5,4,2],
-"bab_utils_8h.html#a257f505cb4d7319956918abc4f14ab2d":[3,0,0,0,0,5,6],
-"bab_utils_8h.html#a2c4d021a83d3363ae57623c7376761d2":[3,0,0,0,0,5,2],
-"bab_utils_8h.html#a2c4d021a83d3363ae57623c7376761d2a116bcdc14fb64222c56311ce39bcaa43":[3,0,0,0,0,5,2,4],
-"bab_utils_8h.html#a2c4d021a83d3363ae57623c7376761d2a236554198ce651d6f716fdfe3e110d21":[3,0,0,0,0,5,2,5],
-"bab_utils_8h.html#a2c4d021a83d3363ae57623c7376761d2a60a3c1228978b153df4b58c224793750":[3,0,0,0,0,5,2,9],
-"bab_utils_8h.html#a2c4d021a83d3363ae57623c7376761d2a6337af67b651aacb491daf618cb1bf12":[3,0,0,0,0,5,2,7],
-"bab_utils_8h.html#a2c4d021a83d3363ae57623c7376761d2a6bad01cb747eb4dc29ad78da2ebbf56a":[3,0,0,0,0,5,2,1],
-"bab_utils_8h.html#a2c4d021a83d3363ae57623c7376761d2a7986705e43c3fe5b4d4dea5d119ac39b":[3,0,0,0,0,5,2,6],
-"bab_utils_8h.html#a2c4d021a83d3363ae57623c7376761d2a7e0c8156f9f1e28bec6e806e1d2214ac":[3,0,0,0,0,5,2,3],
-"bab_utils_8h.html#a2c4d021a83d3363ae57623c7376761d2aa7172d473042d0a9008897a8831ee7df":[3,0,0,0,0,5,2,2],
-"bab_utils_8h.html#a2c4d021a83d3363ae57623c7376761d2adc8cab8ee672484d4c99ee796b2a6ada":[3,0,0,0,0,5,2,8],
-"bab_utils_8h.html#a2c4d021a83d3363ae57623c7376761d2aeda7ce29d59dc3b2f91a477578cc211d":[3,0,0,0,0,5,2,0],
-"bab_utils_8h.html#a3b9c69d27eaa95bab37d3340bac0afc5":[3,0,0,0,0,5,5],
-"bab_utils_8h.html#a5366d466e365a73e1f3fc2800d64b776":[3,0,0,0,0,5,7],
-"bab_utils_8h.html#a5563ee1434fe76d1f65565afe896cb81":[3,0,0,0,0,5,3],
-"bab_utils_8h.html#a5563ee1434fe76d1f65565afe896cb81a142deab1b361ce6f9d728ebcb5b22239":[3,0,0,0,0,5,3,2],
-"bab_utils_8h.html#a5563ee1434fe76d1f65565afe896cb81aa13a34cdb88ece361804590b6418371f":[3,0,0,0,0,5,3,0],
-"bab_utils_8h.html#a5563ee1434fe76d1f65565afe896cb81aca8ab66cf77eb113aa470aa08459b5e3":[3,0,0,0,0,5,3,1],
-"bab_utils_8h_source.html":[3,0,0,0,0,5],
-"bab_w_a_l_l_8cpp.html":[3,0,2,3],
-"bab_w_a_l_l_8h.html":[3,0,1,2],
-"bab_w_a_l_l_8h_source.html":[3,0,1,2],
+"bab_tree_8h.html":[3,0,0,0,0,5],
+"bab_tree_8h.html#a388a4423133a99ec8703695a463b6c47":[3,0,0,0,0,5,5],
+"bab_tree_8h.html#a676088e39a43b256c799d75f1eb9e26f":[3,0,0,0,0,5,6],
+"bab_tree_8h.html#a7023aaaa7bf22bf1c3717cfa070f4e69":[3,0,0,0,0,5,7],
+"bab_tree_8h_source.html":[3,0,0,0,0,5],
+"bab_utils_8h.html":[3,0,0,0,0,6],
+"bab_utils_8h.html#a02e97c49bffe195071c83aa097a8dde5":[3,0,0,0,0,6,4],
+"bab_utils_8h.html#a02e97c49bffe195071c83aa097a8dde5a27cb24b7ae25692a53e21298b16223b5":[3,0,0,0,0,6,4,0],
+"bab_utils_8h.html#a02e97c49bffe195071c83aa097a8dde5aa1ffe7bee36f4b5defe413df89720d07":[3,0,0,0,0,6,4,1],
+"bab_utils_8h.html#a02e97c49bffe195071c83aa097a8dde5af40e2858362e9af0fc18758abfb471bf":[3,0,0,0,0,6,4,2],
+"bab_utils_8h.html#a257f505cb4d7319956918abc4f14ab2d":[3,0,0,0,0,6,6],
+"bab_utils_8h.html#a2c4d021a83d3363ae57623c7376761d2":[3,0,0,0,0,6,2],
+"bab_utils_8h.html#a2c4d021a83d3363ae57623c7376761d2a116bcdc14fb64222c56311ce39bcaa43":[3,0,0,0,0,6,2,4],
+"bab_utils_8h.html#a2c4d021a83d3363ae57623c7376761d2a236554198ce651d6f716fdfe3e110d21":[3,0,0,0,0,6,2,5],
+"bab_utils_8h.html#a2c4d021a83d3363ae57623c7376761d2a60a3c1228978b153df4b58c224793750":[3,0,0,0,0,6,2,9],
+"bab_utils_8h.html#a2c4d021a83d3363ae57623c7376761d2a6337af67b651aacb491daf618cb1bf12":[3,0,0,0,0,6,2,7],
+"bab_utils_8h.html#a2c4d021a83d3363ae57623c7376761d2a6bad01cb747eb4dc29ad78da2ebbf56a":[3,0,0,0,0,6,2,1],
+"bab_utils_8h.html#a2c4d021a83d3363ae57623c7376761d2a7986705e43c3fe5b4d4dea5d119ac39b":[3,0,0,0,0,6,2,6],
+"bab_utils_8h.html#a2c4d021a83d3363ae57623c7376761d2a7e0c8156f9f1e28bec6e806e1d2214ac":[3,0,0,0,0,6,2,3],
+"bab_utils_8h.html#a2c4d021a83d3363ae57623c7376761d2aa7172d473042d0a9008897a8831ee7df":[3,0,0,0,0,6,2,2],
+"bab_utils_8h.html#a2c4d021a83d3363ae57623c7376761d2adc8cab8ee672484d4c99ee796b2a6ada":[3,0,0,0,0,6,2,8],
+"bab_utils_8h.html#a2c4d021a83d3363ae57623c7376761d2aeda7ce29d59dc3b2f91a477578cc211d":[3,0,0,0,0,6,2,0],
+"bab_utils_8h.html#a3b9c69d27eaa95bab37d3340bac0afc5":[3,0,0,0,0,6,5],
+"bab_utils_8h.html#a5366d466e365a73e1f3fc2800d64b776":[3,0,0,0,0,6,7],
+"bab_utils_8h.html#a5563ee1434fe76d1f65565afe896cb81":[3,0,0,0,0,6,3],
+"bab_utils_8h.html#a5563ee1434fe76d1f65565afe896cb81a142deab1b361ce6f9d728ebcb5b22239":[3,0,0,0,0,6,3,2],
+"bab_utils_8h.html#a5563ee1434fe76d1f65565afe896cb81aa13a34cdb88ece361804590b6418371f":[3,0,0,0,0,6,3,0],
+"bab_utils_8h.html#a5563ee1434fe76d1f65565afe896cb81aca8ab66cf77eb113aa470aa08459b5e3":[3,0,0,0,0,6,3,1],
+"bab_utils_8h_source.html":[3,0,0,0,0,6],
 "bib.html":[0,10],
 "bib.html#readBaB":[0,10,1],
 "bib.html#readRR":[0,10,2],
 "bib.html#readRelaxations":[0,10,0],
 "bib.html#readUses":[0,10,3],
+"class_py_m_ai_n_g_omodel.html":[2,0,3],
+"class_py_m_ai_n_g_omodel.html#aa21e4c1906ec1a7b299de5f30e43a182":[2,0,3,2],
+"class_py_m_ai_n_g_omodel.html#abdc36fa738c77f0e2c35f009ae35852b":[2,0,3,0],
+"class_py_m_ai_n_g_omodel.html#adf3fcc040878469f11236e47066fc923":[2,0,3,1],
 "classbab_base_1_1_bab_node.html":[2,0,0,1],
 "classbab_base_1_1_bab_node.html#a00e68c3242d5180d302cf5c8e1f8de2c":[2,0,0,1,5],
 "classbab_base_1_1_bab_node.html#a04b7b97d9b302cf99808e0301272d740":[2,0,0,1,10],
@@ -204,50 +221,33 @@ var NAVTREEINDEX0 =
 "classbab_base_1_1_brancher.html#af9d7e5d2ea87c0a161e6719188b8c745":[2,0,0,6,24],
 "classbab_base_1_1_brancher.html#af9dc4eaddda3e1818ed6340be4353448":[2,0,0,6,2],
 "classbab_base_1_1_optimization_variable.html":[2,0,0,9],
-"classbab_base_1_1_optimization_variable.html#a0540b4fc9482daba6ed171e3fa50cccc":[2,0,0,9,6],
-"classbab_base_1_1_optimization_variable.html#a0e7bb183fe70a0312b6efa4f90c96919":[2,0,0,9,10],
-"classbab_base_1_1_optimization_variable.html#a2808b6549fa71332930783d874459461":[2,0,0,9,13],
-"classbab_base_1_1_optimization_variable.html#a2de71b2cc31ffb891c13a81c37f49596":[2,0,0,9,9],
-"classbab_base_1_1_optimization_variable.html#a31a22d0b8661eb373ce5dbd72aedc819":[2,0,0,9,31],
-"classbab_base_1_1_optimization_variable.html#a38218ac69635c8134dd342d608315293":[2,0,0,9,16],
-"classbab_base_1_1_optimization_variable.html#a4b419fcf5d8b88a6d48f3f8beec1c509":[2,0,0,9,21],
-"classbab_base_1_1_optimization_variable.html#a4b56db1c40da9ceb5f0179a7660336ce":[2,0,0,9,23],
-"classbab_base_1_1_optimization_variable.html#a4d4a26193d51f99dc5982c86855998a9":[2,0,0,9,1],
-"classbab_base_1_1_optimization_variable.html#a4edfe0fa4db6c3f25da68d3d81f48c4d":[2,0,0,9,2],
-"classbab_base_1_1_optimization_variable.html#a51e6b16ace22f32f96a27af09358a695":[2,0,0,9,25],
-"classbab_base_1_1_optimization_variable.html#a65c124f424b4d2dcf0916bdc19fb055f":[2,0,0,9,5],
-"classbab_base_1_1_optimization_variable.html#a66fdae5945a00647d5dce7ba4750ae89":[2,0,0,9,33],
-"classbab_base_1_1_optimization_variable.html#a70eb28c9c674d0bd7340266b04f23f1d":[2,0,0,9,8],
-"classbab_base_1_1_optimization_variable.html#a73cc92c1533194998ebee64ff851b5da":[2,0,0,9,17],
-"classbab_base_1_1_optimization_variable.html#a79789dc4e3c9eca3ef6e4aaa9d1e30f8":[2,0,0,9,11],
-"classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b":[2,0,0,9,27],
-"classbab_base_1_1_optimization_variable.html#a7f00570cb2e44f165e2aa3028d215bc3":[2,0,0,9,28],
-"classbab_base_1_1_optimization_variable.html#a9a19896c3ebd06e0f7a371e336d78434":[2,0,0,9,18],
-"classbab_base_1_1_optimization_variable.html#aa48efdfb65587f4dae6325bfdefd6e0a":[2,0,0,9,30],
-"classbab_base_1_1_optimization_variable.html#aa62b8c28d96fbcb03b8890081fb31cde":[2,0,0,9,20],
+"classbab_base_1_1_optimization_variable.html#a0540b4fc9482daba6ed171e3fa50cccc":[2,0,0,9,5],
+"classbab_base_1_1_optimization_variable.html#a0678dfc3a0ca4daf488e40b1a0568f66":[2,0,0,9,16],
+"classbab_base_1_1_optimization_variable.html#a14ab145b3997ff567e535665c30d5138":[2,0,0,9,28],
+"classbab_base_1_1_optimization_variable.html#a3b4e892b107015b4f503a24ad9214e46":[2,0,0,9,10],
+"classbab_base_1_1_optimization_variable.html#a4b419fcf5d8b88a6d48f3f8beec1c509":[2,0,0,9,22],
+"classbab_base_1_1_optimization_variable.html#a4b56db1c40da9ceb5f0179a7660336ce":[2,0,0,9,26],
+"classbab_base_1_1_optimization_variable.html#a4d4a26193d51f99dc5982c86855998a9":[2,0,0,9,0],
+"classbab_base_1_1_optimization_variable.html#a4edfe0fa4db6c3f25da68d3d81f48c4d":[2,0,0,9,1],
+"classbab_base_1_1_optimization_variable.html#a65c124f424b4d2dcf0916bdc19fb055f":[2,0,0,9,4],
+"classbab_base_1_1_optimization_variable.html#a70eb28c9c674d0bd7340266b04f23f1d":[2,0,0,9,7],
+"classbab_base_1_1_optimization_variable.html#a74e9435f5bcfa900c9304ceda8f05be5":[2,0,0,9,24],
+"classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b":[2,0,0,9,30],
+"classbab_base_1_1_optimization_variable.html#a7f00570cb2e44f165e2aa3028d215bc3":[2,0,0,9,31],
+"classbab_base_1_1_optimization_variable.html#a907f527439f197b391b10173a8cb763c":[2,0,0,9,11],
+"classbab_base_1_1_optimization_variable.html#a9a19896c3ebd06e0f7a371e336d78434":[2,0,0,9,19],
+"classbab_base_1_1_optimization_variable.html#aa48efdfb65587f4dae6325bfdefd6e0a":[2,0,0,9,32],
+"classbab_base_1_1_optimization_variable.html#aa62b8c28d96fbcb03b8890081fb31cde":[2,0,0,9,21],
+"classbab_base_1_1_optimization_variable.html#aacf17553e632e11f46ac1ff16a04e543":[2,0,0,9,9],
 "classbab_base_1_1_optimization_variable.html#ab11172755c1f597f5409edb49a869189":[2,0,0,9,12],
-"classbab_base_1_1_optimization_variable.html#ab27fdd3e7f17dc5864b5297d8d60896a":[2,0,0,9,14],
-"classbab_base_1_1_optimization_variable.html#ab76a8e196cf00c22e3a1d308fa1cd01e":[2,0,0,9,19],
-"classbab_base_1_1_optimization_variable.html#ac772e0bfa985c6ba946bd795b85399fa":[2,0,0,9,15],
-"classbab_base_1_1_optimization_variable.html#ad01e5fd245987423c73719114c307a84":[2,0,0,9,22],
-"classbab_base_1_1_optimization_variable.html#ad14f10b3fbbfd01a61adac7114670fb4":[2,0,0,9,4],
-"classbab_base_1_1_optimization_variable.html#ae76b3d3ecd4427b2edd1abd06d320b41":[2,0,0,9,24],
-"classbab_base_1_1_optimization_variable.html#aeb17c4ac5c23141e9acc87c5b1453605":[2,0,0,9,26],
-"classbab_base_1_1_optimization_variable.html#aeb89a3476698252593c116992b887320":[2,0,0,9,3],
-"classbab_base_1_1_optimization_variable.html#aefe950aa38fa5908dbdc2b34477c2bb2":[2,0,0,9,29],
-"classbab_base_1_1_optimization_variable.html#af172ca283de8b5159d998a5fe24ad697":[2,0,0,9,7],
-"classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9":[2,0,0,9,32],
-"classbab_base_1_1_out_var.html":[2,0,0,10],
-"classbab_base_1_1_out_var.html#a31ed18d3d1831c15ebc166a6135a217f":[2,0,0,10,2],
-"classbab_base_1_1_out_var.html#a402afb5eef3c5316d3740989c0f2e504":[2,0,0,10,7],
-"classbab_base_1_1_out_var.html#a7442f2a80f303c64467428a80f3cb8b9":[2,0,0,10,5],
-"classbab_base_1_1_out_var.html#a81e7174faa0d0aa69a9e17fea6158a4a":[2,0,0,10,1],
-"classbab_base_1_1_out_var.html#a86b5336a40127a5a12fd4766986673b7":[2,0,0,10,3],
-"classbab_base_1_1_out_var.html#a9e7ec2f861702cd5fa0d00afb80d6274":[2,0,0,10,0],
-"classbab_base_1_1_out_var.html#aa2878f955a6fca58b597161aff4964a8":[2,0,0,10,4],
-"classbab_base_1_1_out_var.html#aced8949099673a72ab3b436272f114e6":[2,0,0,10,6],
-"classes.html":[2,1],
-"classmaingo_1_1_ale_model.html":[2,0,1,3],
-"classmaingo_1_1_ale_model.html#a0a095d7223a77ebb198bfe6f910bd376":[2,0,1,3,3],
-"classmaingo_1_1_ale_model.html#a0cf66bb00b12a13525d9b6e80fa55fe3":[2,0,1,3,9]
+"classbab_base_1_1_optimization_variable.html#ab27fdd3e7f17dc5864b5297d8d60896a":[2,0,0,9,13],
+"classbab_base_1_1_optimization_variable.html#ab76a8e196cf00c22e3a1d308fa1cd01e":[2,0,0,9,20],
+"classbab_base_1_1_optimization_variable.html#ac772e0bfa985c6ba946bd795b85399fa":[2,0,0,9,14],
+"classbab_base_1_1_optimization_variable.html#acb8b4452071c493bfe746485f18654be":[2,0,0,9,15],
+"classbab_base_1_1_optimization_variable.html#acd60b14930c0261628aae974e42fe954":[2,0,0,9,29],
+"classbab_base_1_1_optimization_variable.html#ace610f731e7f44a53dbf4003ffe9f8d0":[2,0,0,9,17],
+"classbab_base_1_1_optimization_variable.html#ad01e5fd245987423c73719114c307a84":[2,0,0,9,23],
+"classbab_base_1_1_optimization_variable.html#ad14f10b3fbbfd01a61adac7114670fb4":[2,0,0,9,3],
+"classbab_base_1_1_optimization_variable.html#ad2f581a8c131d5381232bce213e60823":[2,0,0,9,18],
+"classbab_base_1_1_optimization_variable.html#ade910a2427a58d6bc025d8a3e2141283":[2,0,0,9,8]
 };
diff --git a/doc/html/navtreeindex1.js b/doc/html/navtreeindex1.js
index a277ec0002bbf490b8fbea555c48a5c99e1e8ee4..3021993d88f37c037246893ed3ce77ebcc8f60da 100644
--- a/doc/html/navtreeindex1.js
+++ b/doc/html/navtreeindex1.js
@@ -1,5 +1,24 @@
 var NAVTREEINDEX1 =
 {
+"classbab_base_1_1_optimization_variable.html#adf64e2c7687fce1a063b7a4a46a2e212":[2,0,0,9,25],
+"classbab_base_1_1_optimization_variable.html#ae76b3d3ecd4427b2edd1abd06d320b41":[2,0,0,9,27],
+"classbab_base_1_1_optimization_variable.html#aeb89a3476698252593c116992b887320":[2,0,0,9,2],
+"classbab_base_1_1_optimization_variable.html#af0837b061723724dcb61543724f36d11":[2,0,0,9,33],
+"classbab_base_1_1_optimization_variable.html#af172ca283de8b5159d998a5fe24ad697":[2,0,0,9,6],
+"classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9":[2,0,0,9,34],
+"classbab_base_1_1_out_var.html":[2,0,0,10],
+"classbab_base_1_1_out_var.html#a31ed18d3d1831c15ebc166a6135a217f":[2,0,0,10,2],
+"classbab_base_1_1_out_var.html#a402afb5eef3c5316d3740989c0f2e504":[2,0,0,10,7],
+"classbab_base_1_1_out_var.html#a81e7174faa0d0aa69a9e17fea6158a4a":[2,0,0,10,1],
+"classbab_base_1_1_out_var.html#a86b5336a40127a5a12fd4766986673b7":[2,0,0,10,3],
+"classbab_base_1_1_out_var.html#a9e7ec2f861702cd5fa0d00afb80d6274":[2,0,0,10,0],
+"classbab_base_1_1_out_var.html#aa2878f955a6fca58b597161aff4964a8":[2,0,0,10,4],
+"classbab_base_1_1_out_var.html#aced8949099673a72ab3b436272f114e6":[2,0,0,10,6],
+"classbab_base_1_1_out_var.html#add7057afa563a0adeba7d7e77d717690":[2,0,0,10,5],
+"classes.html":[2,1],
+"classmaingo_1_1_ale_model.html":[2,0,1,3],
+"classmaingo_1_1_ale_model.html#a0a095d7223a77ebb198bfe6f910bd376":[2,0,1,3,3],
+"classmaingo_1_1_ale_model.html#a0cf66bb00b12a13525d9b6e80fa55fe3":[2,0,1,3,9],
 "classmaingo_1_1_ale_model.html#a3bb9ac4b8b424d7828893cddefe1d9e8":[2,0,1,3,0],
 "classmaingo_1_1_ale_model.html#a3ef454e2c543640ff4f77217396019f2":[2,0,1,3,1],
 "classmaingo_1_1_ale_model.html#a56aeb872452a335f5ca091e7d6e3583f":[2,0,1,3,7],
@@ -10,191 +29,203 @@ var NAVTREEINDEX1 =
 "classmaingo_1_1_ale_model.html#aa779cdbfe41d12b35cf6b5fa7581782a":[2,0,1,3,5],
 "classmaingo_1_1_ale_model.html#ad16d625c2b0ab88cdf8c200680477510":[2,0,1,3,2],
 "classmaingo_1_1_logger.html":[2,0,1,7],
-"classmaingo_1_1_logger.html#a09a06a9baaf4765d8af2d9baea602962":[2,0,1,7,26],
-"classmaingo_1_1_logger.html#a11f3a05f451f1d7f6f52081b971b5724":[2,0,1,7,22],
-"classmaingo_1_1_logger.html#a19b41b5d24dd8694b51ff0caaf56a0b4":[2,0,1,7,17],
+"classmaingo_1_1_logger.html#a0df484648655184edbbd4bcb6531558f":[2,0,1,7,8],
+"classmaingo_1_1_logger.html#a11f3a05f451f1d7f6f52081b971b5724":[2,0,1,7,20],
+"classmaingo_1_1_logger.html#a1397947c86bde896214c7b77d4be6517":[2,0,1,7,9],
+"classmaingo_1_1_logger.html#a168a8239c87de32a540c9fdcb6a54ff7":[2,0,1,7,4],
+"classmaingo_1_1_logger.html#a17570df4a0a318ddf4e186a4fc66f476":[2,0,1,7,13],
+"classmaingo_1_1_logger.html#a19b41b5d24dd8694b51ff0caaf56a0b4":[2,0,1,7,16],
+"classmaingo_1_1_logger.html#a3134c2ef11ad7c45c3c8467421966021":[2,0,1,7,14],
 "classmaingo_1_1_logger.html#a31cae103ef08470e0db45f01c0360eed":[2,0,1,7,2],
-"classmaingo_1_1_logger.html#a36f4bdb8cdcf58504dc06abd6d4e6725":[2,0,1,7,21],
-"classmaingo_1_1_logger.html#a4771db34565c3321a819fceb53b4fc76":[2,0,1,7,20],
+"classmaingo_1_1_logger.html#a4771db34565c3321a819fceb53b4fc76":[2,0,1,7,19],
 "classmaingo_1_1_logger.html#a4d8782e6212a58c9ba6bd8f2317669d9":[2,0,1,7,0],
-"classmaingo_1_1_logger.html#a55590e7a2d77ea9fd85512b17f02bffa":[2,0,1,7,23],
-"classmaingo_1_1_logger.html#a5776c77c4580d822350dc88225e46061":[2,0,1,7,4],
-"classmaingo_1_1_logger.html#a60676efa35ed66a5c90d10412698fc81":[2,0,1,7,16],
-"classmaingo_1_1_logger.html#a60d49f911f24c66da289da2dbccc35e2":[2,0,1,7,9],
-"classmaingo_1_1_logger.html#a70f564ada7c6d7167bfc908096476996":[2,0,1,7,24],
-"classmaingo_1_1_logger.html#a82f7d5b5cb8e33d894f7e17e38d6dbcd":[2,0,1,7,7],
-"classmaingo_1_1_logger.html#a85ebbae4b7d372e8ee4fc6df802d9621":[2,0,1,7,8],
-"classmaingo_1_1_logger.html#a99d59c1e627c16bfa155803f42cf28e7":[2,0,1,7,15],
-"classmaingo_1_1_logger.html#aa557a6ff14dbd38ab4b251c56caa0f37":[2,0,1,7,14],
-"classmaingo_1_1_logger.html#aa6c83f95144d085092f854d64b9c1e2f":[2,0,1,7,6],
-"classmaingo_1_1_logger.html#aaf1b5259ea1e3d17206119d0e8a99d53":[2,0,1,7,19],
-"classmaingo_1_1_logger.html#ab14611926d783106de661c1c7221f5c3":[2,0,1,7,11],
-"classmaingo_1_1_logger.html#ab4926dc6a379823a0ece98e30f6a384f":[2,0,1,7,5],
-"classmaingo_1_1_logger.html#ab4c18700b160cbe53b4e59069e7fcedd":[2,0,1,7,13],
-"classmaingo_1_1_logger.html#ab9bc94904f592f8dad7532e140fe9394":[2,0,1,7,18],
-"classmaingo_1_1_logger.html#accfbe2523be1fb7e14f30fd9b4c5031a":[2,0,1,7,12],
+"classmaingo_1_1_logger.html#a60676efa35ed66a5c90d10412698fc81":[2,0,1,7,15],
+"classmaingo_1_1_logger.html#a69e487a988a594016c12a7c919570f04":[2,0,1,7,10],
+"classmaingo_1_1_logger.html#a70f564ada7c6d7167bfc908096476996":[2,0,1,7,21],
+"classmaingo_1_1_logger.html#a82f7d5b5cb8e33d894f7e17e38d6dbcd":[2,0,1,7,6],
+"classmaingo_1_1_logger.html#aaf1b5259ea1e3d17206119d0e8a99d53":[2,0,1,7,18],
+"classmaingo_1_1_logger.html#ab9bc94904f592f8dad7532e140fe9394":[2,0,1,7,17],
 "classmaingo_1_1_logger.html#ad63939a5c0535c5abb8e59024b0ca6d4":[2,0,1,7,3],
-"classmaingo_1_1_logger.html#ae51c685a73d7e4e84c5eb69a1c720829":[2,0,1,7,25],
+"classmaingo_1_1_logger.html#ae51c685a73d7e4e84c5eb69a1c720829":[2,0,1,7,22],
+"classmaingo_1_1_logger.html#ae5cb965f581d2940eea1730a5e7a1f06":[2,0,1,7,12],
 "classmaingo_1_1_logger.html#ae677d6c6ce87b2484d82a493ac649ec3":[2,0,1,7,1],
-"classmaingo_1_1_logger.html#af4fdb40b8636eff018c56e45c293de7f":[2,0,1,7,10],
+"classmaingo_1_1_logger.html#af1f4a383ab2f26319ae4da895d30aa2d":[2,0,1,7,11],
+"classmaingo_1_1_logger.html#af67b92595cd069c402df9a448cd784a3":[2,0,1,7,5],
+"classmaingo_1_1_logger.html#afaa00650854698ce5bbde8fee9db7e0e":[2,0,1,7,7],
 "classmaingo_1_1_m_ai_n_g_o.html":[2,0,1,8],
-"classmaingo_1_1_m_ai_n_g_o.html#a0029f4da8b4ec58568bc2419f698e7d7":[2,0,1,8,107],
-"classmaingo_1_1_m_ai_n_g_o.html#a011bbb5f80dad5bc568f0537931a5369":[2,0,1,8,83],
-"classmaingo_1_1_m_ai_n_g_o.html#a020f2b61ca2d2baabf16031f078c2ddd":[2,0,1,8,93],
-"classmaingo_1_1_m_ai_n_g_o.html#a0314c3c342e0483b85692344d79d8486":[2,0,1,8,126],
-"classmaingo_1_1_m_ai_n_g_o.html#a038bd07379ad5ac438d7253f67e5f456":[2,0,1,8,131],
-"classmaingo_1_1_m_ai_n_g_o.html#a041316b6a1ce0e0d78249719e5075d0b":[2,0,1,8,141],
-"classmaingo_1_1_m_ai_n_g_o.html#a05c6ffd319ab0ee58791f14564871824":[2,0,1,8,102],
-"classmaingo_1_1_m_ai_n_g_o.html#a06382d115db4ab79eb1c249ab367a086":[2,0,1,8,84],
-"classmaingo_1_1_m_ai_n_g_o.html#a08c2039814522b8addbf0a1d740397d3":[2,0,1,8,137],
-"classmaingo_1_1_m_ai_n_g_o.html#a0a8c5d381ad5818cec8624db717de73a":[2,0,1,8,17],
-"classmaingo_1_1_m_ai_n_g_o.html#a0c15524b2884d3604fc0a5d4b40bcccb":[2,0,1,8,45],
+"classmaingo_1_1_m_ai_n_g_o.html#a0029f4da8b4ec58568bc2419f698e7d7":[2,0,1,8,114],
+"classmaingo_1_1_m_ai_n_g_o.html#a011bbb5f80dad5bc568f0537931a5369":[2,0,1,8,88],
+"classmaingo_1_1_m_ai_n_g_o.html#a0157c25ef59573826a916e301e836330":[2,0,1,8,72],
+"classmaingo_1_1_m_ai_n_g_o.html#a020f2b61ca2d2baabf16031f078c2ddd":[2,0,1,8,100],
+"classmaingo_1_1_m_ai_n_g_o.html#a038bd07379ad5ac438d7253f67e5f456":[2,0,1,8,138],
+"classmaingo_1_1_m_ai_n_g_o.html#a041316b6a1ce0e0d78249719e5075d0b":[2,0,1,8,149],
+"classmaingo_1_1_m_ai_n_g_o.html#a05c6ffd319ab0ee58791f14564871824":[2,0,1,8,109],
+"classmaingo_1_1_m_ai_n_g_o.html#a06382d115db4ab79eb1c249ab367a086":[2,0,1,8,89],
+"classmaingo_1_1_m_ai_n_g_o.html#a0728bb641f5f269763663ce89280bd4f":[2,0,1,8,62],
+"classmaingo_1_1_m_ai_n_g_o.html#a08c2039814522b8addbf0a1d740397d3":[2,0,1,8,145],
+"classmaingo_1_1_m_ai_n_g_o.html#a0a8c5d381ad5818cec8624db717de73a":[2,0,1,8,18],
+"classmaingo_1_1_m_ai_n_g_o.html#a0a9de764a3521782c3f6e3dc68f01324":[2,0,1,8,141],
+"classmaingo_1_1_m_ai_n_g_o.html#a0c15524b2884d3604fc0a5d4b40bcccb":[2,0,1,8,48],
 "classmaingo_1_1_m_ai_n_g_o.html#a0d030db9a3c13e9420ca4dc7f7346183":[2,0,1,8,3],
+"classmaingo_1_1_m_ai_n_g_o.html#a0d1cde74073424f84d8b4692a8406101":[2,0,1,8,123],
 "classmaingo_1_1_m_ai_n_g_o.html#a0d24d4e085f56925079399567cdf70eb":[2,0,1,8,38],
-"classmaingo_1_1_m_ai_n_g_o.html#a0d372af3e069f9ff12f09936aa9099c0":[2,0,1,8,12],
-"classmaingo_1_1_m_ai_n_g_o.html#a0dac873a62bd24b60f87bb017d2db2c8":[2,0,1,8,106],
-"classmaingo_1_1_m_ai_n_g_o.html#a0ec7e9601a2a5c8cc2f2bcb8d79c66a5":[2,0,1,8,46],
-"classmaingo_1_1_m_ai_n_g_o.html#a101ac517abb98426ff61a29feb27e7a1":[2,0,1,8,129],
-"classmaingo_1_1_m_ai_n_g_o.html#a1056041b9ace71cfbf3807ec436cd80b":[2,0,1,8,14],
-"classmaingo_1_1_m_ai_n_g_o.html#a108919c79fc8d5fd6e0389ce7b242acb":[2,0,1,8,19],
-"classmaingo_1_1_m_ai_n_g_o.html#a1143aeaa67ba99d6ddc224a44d0fbfb5":[2,0,1,8,121],
-"classmaingo_1_1_m_ai_n_g_o.html#a11a108eb587e3fac7651f2969aadff2f":[2,0,1,8,105],
-"classmaingo_1_1_m_ai_n_g_o.html#a11b956f66ea516b6951abe9dd2410484":[2,0,1,8,125],
-"classmaingo_1_1_m_ai_n_g_o.html#a14ac25981c3df0f6317418c8b9f4857c":[2,0,1,8,11],
-"classmaingo_1_1_m_ai_n_g_o.html#a16e579b3026a722169cf0f8819ac1ec5":[2,0,1,8,56],
-"classmaingo_1_1_m_ai_n_g_o.html#a179c701e7f310080876879df45571aae":[2,0,1,8,145],
+"classmaingo_1_1_m_ai_n_g_o.html#a0dac873a62bd24b60f87bb017d2db2c8":[2,0,1,8,113],
+"classmaingo_1_1_m_ai_n_g_o.html#a0dffde2ace38c3fad7a6cfb38f0f374c":[2,0,1,8,98],
+"classmaingo_1_1_m_ai_n_g_o.html#a0ec7e9601a2a5c8cc2f2bcb8d79c66a5":[2,0,1,8,49],
+"classmaingo_1_1_m_ai_n_g_o.html#a101ac517abb98426ff61a29feb27e7a1":[2,0,1,8,136],
+"classmaingo_1_1_m_ai_n_g_o.html#a1056041b9ace71cfbf3807ec436cd80b":[2,0,1,8,15],
+"classmaingo_1_1_m_ai_n_g_o.html#a108919c79fc8d5fd6e0389ce7b242acb":[2,0,1,8,20],
+"classmaingo_1_1_m_ai_n_g_o.html#a1143aeaa67ba99d6ddc224a44d0fbfb5":[2,0,1,8,128],
+"classmaingo_1_1_m_ai_n_g_o.html#a11a108eb587e3fac7651f2969aadff2f":[2,0,1,8,112],
+"classmaingo_1_1_m_ai_n_g_o.html#a11b956f66ea516b6951abe9dd2410484":[2,0,1,8,132],
+"classmaingo_1_1_m_ai_n_g_o.html#a16e579b3026a722169cf0f8819ac1ec5":[2,0,1,8,57],
+"classmaingo_1_1_m_ai_n_g_o.html#a179c701e7f310080876879df45571aae":[2,0,1,8,153],
+"classmaingo_1_1_m_ai_n_g_o.html#a1a4ba608b818d6a2e303b836505e0234":[2,0,1,8,70],
 "classmaingo_1_1_m_ai_n_g_o.html#a1a9fa4c0ae0a91178836350b5f5c22d3":[2,0,1,8,61],
 "classmaingo_1_1_m_ai_n_g_o.html#a1aff8d80ad642d24966454b8ef35e34a":[2,0,1,8,40],
+"classmaingo_1_1_m_ai_n_g_o.html#a1eeb14c069d224846f7684d95a90ed04":[2,0,1,8,17],
+"classmaingo_1_1_m_ai_n_g_o.html#a1f8ea652c3ae60bad558c3aeb66f1085":[2,0,1,8,69],
 "classmaingo_1_1_m_ai_n_g_o.html#a1fe4e8690548362eb1ec74fb052a424e":[2,0,1,8,66],
-"classmaingo_1_1_m_ai_n_g_o.html#a20c235755de9f0c15ea62c28ae9e2ac8":[2,0,1,8,30],
-"classmaingo_1_1_m_ai_n_g_o.html#a2287a4b633fd59097ce44a74e15f6660":[2,0,1,8,33],
-"classmaingo_1_1_m_ai_n_g_o.html#a22af1a970a5fd23eb347a655c8ae549a":[2,0,1,8,51],
-"classmaingo_1_1_m_ai_n_g_o.html#a24bb95f23a26f300a8a4ca85b9284512":[2,0,1,8,123],
+"classmaingo_1_1_m_ai_n_g_o.html#a20c235755de9f0c15ea62c28ae9e2ac8":[2,0,1,8,31],
+"classmaingo_1_1_m_ai_n_g_o.html#a21ee05457f51d5b22853d10cb4114b96":[2,0,1,8,68],
+"classmaingo_1_1_m_ai_n_g_o.html#a22af1a970a5fd23eb347a655c8ae549a":[2,0,1,8,54],
+"classmaingo_1_1_m_ai_n_g_o.html#a241496b3e71881ee3cb7b8be661b44d4":[2,0,1,8,13],
+"classmaingo_1_1_m_ai_n_g_o.html#a24bb95f23a26f300a8a4ca85b9284512":[2,0,1,8,130],
 "classmaingo_1_1_m_ai_n_g_o.html#a271c14d25b5423c7c077f8ea206f2818":[2,0,1,8,6],
-"classmaingo_1_1_m_ai_n_g_o.html#a2771b7011d669e1db37b8b3ef00ab4a5":[2,0,1,8,81],
-"classmaingo_1_1_m_ai_n_g_o.html#a2fd3f75ee25d495eb9f08ab7597f3742":[2,0,1,8,85],
-"classmaingo_1_1_m_ai_n_g_o.html#a30f5390432b5701f3ae3b7ff3b0ae680":[2,0,1,8,50],
-"classmaingo_1_1_m_ai_n_g_o.html#a31692cc54ec24e14fbd7bfccda000d16":[2,0,1,8,96],
-"classmaingo_1_1_m_ai_n_g_o.html#a35f8250e9023121b2b3303211a5cbc99":[2,0,1,8,103],
-"classmaingo_1_1_m_ai_n_g_o.html#a383bc41aef21457041b6a79d0a376bed":[2,0,1,8,67],
-"classmaingo_1_1_m_ai_n_g_o.html#a3bfd617c12d3ee731e314f8f806b4da0":[2,0,1,8,147],
+"classmaingo_1_1_m_ai_n_g_o.html#a2771b7011d669e1db37b8b3ef00ab4a5":[2,0,1,8,86],
+"classmaingo_1_1_m_ai_n_g_o.html#a2fd3f75ee25d495eb9f08ab7597f3742":[2,0,1,8,90],
+"classmaingo_1_1_m_ai_n_g_o.html#a30f5390432b5701f3ae3b7ff3b0ae680":[2,0,1,8,53],
+"classmaingo_1_1_m_ai_n_g_o.html#a31692cc54ec24e14fbd7bfccda000d16":[2,0,1,8,103],
+"classmaingo_1_1_m_ai_n_g_o.html#a35f8250e9023121b2b3303211a5cbc99":[2,0,1,8,110],
+"classmaingo_1_1_m_ai_n_g_o.html#a3bfd617c12d3ee731e314f8f806b4da0":[2,0,1,8,155],
+"classmaingo_1_1_m_ai_n_g_o.html#a3caca275897742b038011e6fd00b2bdc":[2,0,1,8,64],
 "classmaingo_1_1_m_ai_n_g_o.html#a40c4e33f9034542409daa1f0497c776f":[2,0,1,8,34],
-"classmaingo_1_1_m_ai_n_g_o.html#a4151ba2d1c6b6965001dbf7fc1a7c122":[2,0,1,8,143],
-"classmaingo_1_1_m_ai_n_g_o.html#a43a173e24e19fbbd9ea819b105ab39d6":[2,0,1,8,124],
-"classmaingo_1_1_m_ai_n_g_o.html#a462440b0556dae9e3c515a2d3c661b13":[2,0,1,8,142],
-"classmaingo_1_1_m_ai_n_g_o.html#a4681879414746b1ac89b905479d6fa1d":[2,0,1,8,31],
-"classmaingo_1_1_m_ai_n_g_o.html#a4751e009b5a1228a1324a8ff1ccac4fb":[2,0,1,8,80],
-"classmaingo_1_1_m_ai_n_g_o.html#a4919a41d851f89b85fbd2646d878a6b0":[2,0,1,8,18],
-"classmaingo_1_1_m_ai_n_g_o.html#a4940dbf6b13e10e500cb7704b3f6d412":[2,0,1,8,136],
-"classmaingo_1_1_m_ai_n_g_o.html#a49594efef0db3f36efcf342acf7c7525":[2,0,1,8,87],
-"classmaingo_1_1_m_ai_n_g_o.html#a4a3174283651d6da792c3270c9a0e4a6":[2,0,1,8,100],
-"classmaingo_1_1_m_ai_n_g_o.html#a4c8d80919a45473feb415dd8fc50b633":[2,0,1,8,110],
-"classmaingo_1_1_m_ai_n_g_o.html#a4cf012860282bcaff9890e182f4b6886":[2,0,1,8,71],
-"classmaingo_1_1_m_ai_n_g_o.html#a4f888ef8f672e6ee7602951cd4b2c7a9":[2,0,1,8,60],
-"classmaingo_1_1_m_ai_n_g_o.html#a50062c75f198aab4cd975f34fdef1506":[2,0,1,8,70],
-"classmaingo_1_1_m_ai_n_g_o.html#a50df488dd7b110d7e4ebc137a8949696":[2,0,1,8,53],
-"classmaingo_1_1_m_ai_n_g_o.html#a52df8cc85640aaee13afb5cd5748dbcc":[2,0,1,8,43],
-"classmaingo_1_1_m_ai_n_g_o.html#a530c347d65ac74a1cf871e385ec18cc4":[2,0,1,8,63],
-"classmaingo_1_1_m_ai_n_g_o.html#a54d978f1329af4acf801108591eea1f5":[2,0,1,8,77],
-"classmaingo_1_1_m_ai_n_g_o.html#a585967bc628b31b1fbba2105be7d36a2":[2,0,1,8,15],
-"classmaingo_1_1_m_ai_n_g_o.html#a5922fb929208ad9341446f05683555f9":[2,0,1,8,49],
-"classmaingo_1_1_m_ai_n_g_o.html#a5cbd854078dc3fbef193c14af2e7a11d":[2,0,1,8,128],
-"classmaingo_1_1_m_ai_n_g_o.html#a5d59280b371782eaeaf887073ae7b77a":[2,0,1,8,78],
-"classmaingo_1_1_m_ai_n_g_o.html#a6094a619e5202a347ad3b755a0f13fe7":[2,0,1,8,74],
-"classmaingo_1_1_m_ai_n_g_o.html#a622b9622d1e3515be1774111e33b0949":[2,0,1,8,22],
-"classmaingo_1_1_m_ai_n_g_o.html#a63e3879fdb8009d459c08fd3a9c719b9":[2,0,1,8,122],
-"classmaingo_1_1_m_ai_n_g_o.html#a647cd64be05eac973598fc4b8328d866":[2,0,1,8,101],
-"classmaingo_1_1_m_ai_n_g_o.html#a65d8859f0f4b4e6dfec43c4238d24772":[2,0,1,8,114],
-"classmaingo_1_1_m_ai_n_g_o.html#a6624f898a20299ccfa4a8fa2f8f7dd28":[2,0,1,8,88],
-"classmaingo_1_1_m_ai_n_g_o.html#a66b60c8b60e9525e96e4d2dbb6398f88":[2,0,1,8,68],
-"classmaingo_1_1_m_ai_n_g_o.html#a66df665b487a9136ff45a8e8a76c739c":[2,0,1,8,90],
-"classmaingo_1_1_m_ai_n_g_o.html#a690afb91dfea9350cd401dc4c9390c4a":[2,0,1,8,99],
-"classmaingo_1_1_m_ai_n_g_o.html#a6c09add60cfffb752582cf21182a786d":[2,0,1,8,26],
-"classmaingo_1_1_m_ai_n_g_o.html#a6d10798d58ceeac812fb853ca7eccf5c":[2,0,1,8,32],
-"classmaingo_1_1_m_ai_n_g_o.html#a6e2e3685c938ae2e8605dab3f6a13632":[2,0,1,8,29],
-"classmaingo_1_1_m_ai_n_g_o.html#a6f3727adfe69c95ac8e0ca41a7b73fa6":[2,0,1,8,54],
-"classmaingo_1_1_m_ai_n_g_o.html#a72b6d958b300d7fc886b74790b001aeb":[2,0,1,8,36],
-"classmaingo_1_1_m_ai_n_g_o.html#a755f6652395b3bad73976a26fa4243f9":[2,0,1,8,64],
-"classmaingo_1_1_m_ai_n_g_o.html#a76ffecbb5590c1dd40ec896059af4fda":[2,0,1,8,42],
-"classmaingo_1_1_m_ai_n_g_o.html#a7821624172735057f67471776a8d4aa1":[2,0,1,8,55],
-"classmaingo_1_1_m_ai_n_g_o.html#a7bce17d744313c9b489b19179eb0b4f0":[2,0,1,8,116],
-"classmaingo_1_1_m_ai_n_g_o.html#a7e35d3a30d8a5eab184d18fe256ffc57":[2,0,1,8,89],
-"classmaingo_1_1_m_ai_n_g_o.html#a7f8fb94bcf60d8e2ff8a943c12459061":[2,0,1,8,57],
-"classmaingo_1_1_m_ai_n_g_o.html#a805b901f0e2e25ee5910b2b0e6a7c99a":[2,0,1,8,144],
-"classmaingo_1_1_m_ai_n_g_o.html#a874e8de2f4daafb262380b882a3d3553":[2,0,1,8,9],
-"classmaingo_1_1_m_ai_n_g_o.html#a8fe800a4fd347fc64b3f26de987c13f5":[2,0,1,8,72],
-"classmaingo_1_1_m_ai_n_g_o.html#a917d78c01e2442296f829977491e6107":[2,0,1,8,73],
-"classmaingo_1_1_m_ai_n_g_o.html#a91c7c1533effc9589f908b96b67789b3":[2,0,1,8,112],
-"classmaingo_1_1_m_ai_n_g_o.html#a9292f5cf116f7607400a75a036c88244":[2,0,1,8,91],
-"classmaingo_1_1_m_ai_n_g_o.html#a92badf4c34413612706e7aeaefebe95a":[2,0,1,8,115],
-"classmaingo_1_1_m_ai_n_g_o.html#a9393fdd939148611496b665d537ca6cb":[2,0,1,8,76],
-"classmaingo_1_1_m_ai_n_g_o.html#a93a8eadb777ce6ff95072f16dc6ef762":[2,0,1,8,16],
-"classmaingo_1_1_m_ai_n_g_o.html#a96f1a3a2a8c24cdca954e63fdc155e01":[2,0,1,8,92],
+"classmaingo_1_1_m_ai_n_g_o.html#a4151ba2d1c6b6965001dbf7fc1a7c122":[2,0,1,8,151],
+"classmaingo_1_1_m_ai_n_g_o.html#a43a173e24e19fbbd9ea819b105ab39d6":[2,0,1,8,131],
+"classmaingo_1_1_m_ai_n_g_o.html#a450f5ac09e6afa9e34dc86b59359ae20":[2,0,1,8,65],
+"classmaingo_1_1_m_ai_n_g_o.html#a462440b0556dae9e3c515a2d3c661b13":[2,0,1,8,150],
+"classmaingo_1_1_m_ai_n_g_o.html#a4681879414746b1ac89b905479d6fa1d":[2,0,1,8,32],
+"classmaingo_1_1_m_ai_n_g_o.html#a4751e009b5a1228a1324a8ff1ccac4fb":[2,0,1,8,85],
+"classmaingo_1_1_m_ai_n_g_o.html#a4919a41d851f89b85fbd2646d878a6b0":[2,0,1,8,19],
+"classmaingo_1_1_m_ai_n_g_o.html#a4940dbf6b13e10e500cb7704b3f6d412":[2,0,1,8,144],
+"classmaingo_1_1_m_ai_n_g_o.html#a49594efef0db3f36efcf342acf7c7525":[2,0,1,8,93],
+"classmaingo_1_1_m_ai_n_g_o.html#a4a3174283651d6da792c3270c9a0e4a6":[2,0,1,8,107],
+"classmaingo_1_1_m_ai_n_g_o.html#a4c8d80919a45473feb415dd8fc50b633":[2,0,1,8,117],
+"classmaingo_1_1_m_ai_n_g_o.html#a4cf012860282bcaff9890e182f4b6886":[2,0,1,8,74],
+"classmaingo_1_1_m_ai_n_g_o.html#a4dc94835e031b37290f96814486c2903":[2,0,1,8,71],
+"classmaingo_1_1_m_ai_n_g_o.html#a50062c75f198aab4cd975f34fdef1506":[2,0,1,8,73],
+"classmaingo_1_1_m_ai_n_g_o.html#a54d978f1329af4acf801108591eea1f5":[2,0,1,8,82],
+"classmaingo_1_1_m_ai_n_g_o.html#a56d30ff7a1a221550e6c7c045e5c6feb":[2,0,1,8,11],
+"classmaingo_1_1_m_ai_n_g_o.html#a585967bc628b31b1fbba2105be7d36a2":[2,0,1,8,16],
+"classmaingo_1_1_m_ai_n_g_o.html#a5922fb929208ad9341446f05683555f9":[2,0,1,8,52],
+"classmaingo_1_1_m_ai_n_g_o.html#a5cbd854078dc3fbef193c14af2e7a11d":[2,0,1,8,135],
+"classmaingo_1_1_m_ai_n_g_o.html#a5d59280b371782eaeaf887073ae7b77a":[2,0,1,8,83],
+"classmaingo_1_1_m_ai_n_g_o.html#a5ee95afece75a72e91aff11274eda43a":[2,0,1,8,45],
+"classmaingo_1_1_m_ai_n_g_o.html#a622b9622d1e3515be1774111e33b0949":[2,0,1,8,23],
+"classmaingo_1_1_m_ai_n_g_o.html#a63e3879fdb8009d459c08fd3a9c719b9":[2,0,1,8,129],
+"classmaingo_1_1_m_ai_n_g_o.html#a647cd64be05eac973598fc4b8328d866":[2,0,1,8,108],
+"classmaingo_1_1_m_ai_n_g_o.html#a65d8859f0f4b4e6dfec43c4238d24772":[2,0,1,8,121],
+"classmaingo_1_1_m_ai_n_g_o.html#a6624f898a20299ccfa4a8fa2f8f7dd28":[2,0,1,8,94],
+"classmaingo_1_1_m_ai_n_g_o.html#a66df665b487a9136ff45a8e8a76c739c":[2,0,1,8,96],
+"classmaingo_1_1_m_ai_n_g_o.html#a689902b992cca417907471e82b9526b1":[2,0,1,8,81],
+"classmaingo_1_1_m_ai_n_g_o.html#a690afb91dfea9350cd401dc4c9390c4a":[2,0,1,8,106],
+"classmaingo_1_1_m_ai_n_g_o.html#a6c09add60cfffb752582cf21182a786d":[2,0,1,8,27],
+"classmaingo_1_1_m_ai_n_g_o.html#a6d10798d58ceeac812fb853ca7eccf5c":[2,0,1,8,33],
+"classmaingo_1_1_m_ai_n_g_o.html#a6e2e3685c938ae2e8605dab3f6a13632":[2,0,1,8,30],
+"classmaingo_1_1_m_ai_n_g_o.html#a6f3727adfe69c95ac8e0ca41a7b73fa6":[2,0,1,8,55],
+"classmaingo_1_1_m_ai_n_g_o.html#a7821624172735057f67471776a8d4aa1":[2,0,1,8,56],
+"classmaingo_1_1_m_ai_n_g_o.html#a7e35d3a30d8a5eab184d18fe256ffc57":[2,0,1,8,95],
+"classmaingo_1_1_m_ai_n_g_o.html#a7f8fb94bcf60d8e2ff8a943c12459061":[2,0,1,8,58],
+"classmaingo_1_1_m_ai_n_g_o.html#a7ff011bd8ce28c9dc2e2d24c350698e1":[2,0,1,8,36],
+"classmaingo_1_1_m_ai_n_g_o.html#a803800682d25b4edc28a3536faba2380":[2,0,1,8,9],
+"classmaingo_1_1_m_ai_n_g_o.html#a805b901f0e2e25ee5910b2b0e6a7c99a":[2,0,1,8,152],
+"classmaingo_1_1_m_ai_n_g_o.html#a83da0fbc8eeb9b2f336cd5d41707fbaf":[2,0,1,8,42],
+"classmaingo_1_1_m_ai_n_g_o.html#a88c7a2689b32500ebf09bf37de06d47f":[2,0,1,8,133],
+"classmaingo_1_1_m_ai_n_g_o.html#a8acf1fc912457043365faabd54861d50":[2,0,1,8,75],
+"classmaingo_1_1_m_ai_n_g_o.html#a8b2bcd5e079464178341f24169e45bbc":[2,0,1,8,91],
+"classmaingo_1_1_m_ai_n_g_o.html#a8dacc1f270014ea3c70dee5451abae62":[2,0,1,8,122],
+"classmaingo_1_1_m_ai_n_g_o.html#a8fe800a4fd347fc64b3f26de987c13f5":[2,0,1,8,76],
+"classmaingo_1_1_m_ai_n_g_o.html#a917d78c01e2442296f829977491e6107":[2,0,1,8,77],
+"classmaingo_1_1_m_ai_n_g_o.html#a91c7c1533effc9589f908b96b67789b3":[2,0,1,8,119],
+"classmaingo_1_1_m_ai_n_g_o.html#a9292f5cf116f7607400a75a036c88244":[2,0,1,8,97],
+"classmaingo_1_1_m_ai_n_g_o.html#a92cbd5e8a92e5c335d57bb23574cf6b2":[2,0,1,8,12],
 "classmaingo_1_1_m_ai_n_g_o.html#a9908a4661a24667409c0a0fd5c06fe9f":[2,0,1,8,10],
 "classmaingo_1_1_m_ai_n_g_o.html#a9ad31f08fce43a453e9f8e1e39c889bb":[2,0,1,8,8],
-"classmaingo_1_1_m_ai_n_g_o.html#a9c4f03e80eafd073264fb0d2f186dc81":[2,0,1,8,132],
-"classmaingo_1_1_m_ai_n_g_o.html#a9d035ded892ca2fd6a0151f6ea761d54":[2,0,1,8,59],
-"classmaingo_1_1_m_ai_n_g_o.html#a9d2cbee1f5ecf3321e2e5334e70757fe":[2,0,1,8,62],
+"classmaingo_1_1_m_ai_n_g_o.html#a9c4f03e80eafd073264fb0d2f186dc81":[2,0,1,8,139],
+"classmaingo_1_1_m_ai_n_g_o.html#a9d035ded892ca2fd6a0151f6ea761d54":[2,0,1,8,60],
 "classmaingo_1_1_m_ai_n_g_o.html#a9d8ceaac941b738db96be2326e4db27a":[2,0,1,8,41],
-"classmaingo_1_1_m_ai_n_g_o.html#a9f726a054960d563d59032b8067701b2":[2,0,1,8,28],
-"classmaingo_1_1_m_ai_n_g_o.html#a9fb77dded43644f931547ab9d7a3daba":[2,0,1,8,113],
-"classmaingo_1_1_m_ai_n_g_o.html#aa19003266d3acb3b042f282e8bf1e575":[2,0,1,8,97],
-"classmaingo_1_1_m_ai_n_g_o.html#aa244aaeeb4a93592821ab741010df615":[2,0,1,8,48],
-"classmaingo_1_1_m_ai_n_g_o.html#aa297393a110200243b693cf5f0fed0cb":[2,0,1,8,130],
-"classmaingo_1_1_m_ai_n_g_o.html#aa369cfa7bcc0161aacefe22da9595d81":[2,0,1,8,111],
+"classmaingo_1_1_m_ai_n_g_o.html#a9f726a054960d563d59032b8067701b2":[2,0,1,8,29],
+"classmaingo_1_1_m_ai_n_g_o.html#a9fb77dded43644f931547ab9d7a3daba":[2,0,1,8,120],
+"classmaingo_1_1_m_ai_n_g_o.html#aa19003266d3acb3b042f282e8bf1e575":[2,0,1,8,104],
+"classmaingo_1_1_m_ai_n_g_o.html#aa244aaeeb4a93592821ab741010df615":[2,0,1,8,51],
+"classmaingo_1_1_m_ai_n_g_o.html#aa297393a110200243b693cf5f0fed0cb":[2,0,1,8,137],
+"classmaingo_1_1_m_ai_n_g_o.html#aa369cfa7bcc0161aacefe22da9595d81":[2,0,1,8,118],
 "classmaingo_1_1_m_ai_n_g_o.html#aa3b2c105e3ebff61b3416c9cdd8bd964":[2,0,1,8,39],
 "classmaingo_1_1_m_ai_n_g_o.html#aa50b9f4993a803eb7ac98dee8ea2fcf1":[2,0,1,8,1],
-"classmaingo_1_1_m_ai_n_g_o.html#aa5d43df52f00ec1b854f0bf4e67d20de":[2,0,1,8,23],
-"classmaingo_1_1_m_ai_n_g_o.html#aa5de85da627e5dbdf3c6bf6be2ddad26":[2,0,1,8,79],
-"classmaingo_1_1_m_ai_n_g_o.html#aa6a02b134e037806dea96aab029ff908":[2,0,1,8,134],
-"classmaingo_1_1_m_ai_n_g_o.html#ab11fb623cd53b982490aa87f7f7da9e7":[2,0,1,8,98],
-"classmaingo_1_1_m_ai_n_g_o.html#ab2b58e658363c359a205cbd435f1f3d3":[2,0,1,8,27],
+"classmaingo_1_1_m_ai_n_g_o.html#aa5d43df52f00ec1b854f0bf4e67d20de":[2,0,1,8,24],
+"classmaingo_1_1_m_ai_n_g_o.html#aa5de85da627e5dbdf3c6bf6be2ddad26":[2,0,1,8,84],
+"classmaingo_1_1_m_ai_n_g_o.html#aa6a02b134e037806dea96aab029ff908":[2,0,1,8,142],
+"classmaingo_1_1_m_ai_n_g_o.html#aaaa69dd8b526f0d9966ce35bd102601f":[2,0,1,8,46],
+"classmaingo_1_1_m_ai_n_g_o.html#aad666fe69213402bdba8b9972a5985b3":[2,0,1,8,99],
+"classmaingo_1_1_m_ai_n_g_o.html#ab11fb623cd53b982490aa87f7f7da9e7":[2,0,1,8,105],
+"classmaingo_1_1_m_ai_n_g_o.html#ab2b58e658363c359a205cbd435f1f3d3":[2,0,1,8,28],
 "classmaingo_1_1_m_ai_n_g_o.html#ab4d0923334ce1323a91389117560a271":[2,0,1,8,2],
-"classmaingo_1_1_m_ai_n_g_o.html#ab57d5aa6e5abb14b5d2bea4063f8db5e":[2,0,1,8,21],
-"classmaingo_1_1_m_ai_n_g_o.html#ab5ac4bb96785ca26617e81b55d9a5996":[2,0,1,8,20],
+"classmaingo_1_1_m_ai_n_g_o.html#ab57d5aa6e5abb14b5d2bea4063f8db5e":[2,0,1,8,22],
+"classmaingo_1_1_m_ai_n_g_o.html#ab5ac4bb96785ca26617e81b55d9a5996":[2,0,1,8,21],
+"classmaingo_1_1_m_ai_n_g_o.html#ab894162dd5074eea1d5dd153e4f72d9e":[2,0,1,8,43],
 "classmaingo_1_1_m_ai_n_g_o.html#abad3366b86f460d436d3c13bfecb147b":[2,0,1,8,7],
-"classmaingo_1_1_m_ai_n_g_o.html#abb425f08ebe9b1d4a71d6b455cd656b9":[2,0,1,8,133],
-"classmaingo_1_1_m_ai_n_g_o.html#abd17e0e2d436da88f15738e8e0218ac8":[2,0,1,8,52],
-"classmaingo_1_1_m_ai_n_g_o.html#abd3d18c6d0825a1fdf892aed43ef5deb":[2,0,1,8,135],
-"classmaingo_1_1_m_ai_n_g_o.html#abdcc6fb032878028956050dcba5c9405":[2,0,1,8,94],
-"classmaingo_1_1_m_ai_n_g_o.html#ac2442f5c69a4a26d3b6e764c8a3170b3":[2,0,1,8,108],
-"classmaingo_1_1_m_ai_n_g_o.html#ac39c6e7cc69822997e9fb18721e2e52f":[2,0,1,8,139],
-"classmaingo_1_1_m_ai_n_g_o.html#ac3c772c7a634ef58c452ba9921902b53":[2,0,1,8,140],
-"classmaingo_1_1_m_ai_n_g_o.html#ac685bcf7b2be55e2d689941c1b90fa72":[2,0,1,8,25],
-"classmaingo_1_1_m_ai_n_g_o.html#ac7d4149849a607fa29b77b90a0a5fa2f":[2,0,1,8,82],
+"classmaingo_1_1_m_ai_n_g_o.html#abb011b283ec6da5387c24804ba59ff6d":[2,0,1,8,78],
+"classmaingo_1_1_m_ai_n_g_o.html#abb425f08ebe9b1d4a71d6b455cd656b9":[2,0,1,8,140],
+"classmaingo_1_1_m_ai_n_g_o.html#abd3d18c6d0825a1fdf892aed43ef5deb":[2,0,1,8,143],
+"classmaingo_1_1_m_ai_n_g_o.html#abe4f3a7b42c05c07e7962be17de02ed3":[2,0,1,8,63],
+"classmaingo_1_1_m_ai_n_g_o.html#ac2442f5c69a4a26d3b6e764c8a3170b3":[2,0,1,8,115],
+"classmaingo_1_1_m_ai_n_g_o.html#ac39c6e7cc69822997e9fb18721e2e52f":[2,0,1,8,147],
+"classmaingo_1_1_m_ai_n_g_o.html#ac3c772c7a634ef58c452ba9921902b53":[2,0,1,8,148],
+"classmaingo_1_1_m_ai_n_g_o.html#ac685bcf7b2be55e2d689941c1b90fa72":[2,0,1,8,26],
+"classmaingo_1_1_m_ai_n_g_o.html#ac7d4149849a607fa29b77b90a0a5fa2f":[2,0,1,8,87],
 "classmaingo_1_1_m_ai_n_g_o.html#ac99ef891ef04bb26071bf37ba510ebfc":[2,0,1,8,5],
 "classmaingo_1_1_m_ai_n_g_o.html#acb69025e90c11f757a3f74c9b37daacd":[2,0,1,8,35],
-"classmaingo_1_1_m_ai_n_g_o.html#acdc8a1d98aa50ee3d76dc4873dda787f":[2,0,1,8,13],
-"classmaingo_1_1_m_ai_n_g_o.html#ace36a8a82262f885ae5f87be65d868db":[2,0,1,8,95],
-"classmaingo_1_1_m_ai_n_g_o.html#ace8e13bdb04862efd560c8d0d80950b4":[2,0,1,8,47],
-"classmaingo_1_1_m_ai_n_g_o.html#ace95ba4340090ffaafec40a30504ccb4":[2,0,1,8,117],
-"classmaingo_1_1_m_ai_n_g_o.html#ad33f6f1b9cb0e07b0e44bcb5297d860f":[2,0,1,8,109],
-"classmaingo_1_1_m_ai_n_g_o.html#ade7741b5e86018f3167c9f34622a2733":[2,0,1,8,69],
-"classmaingo_1_1_m_ai_n_g_o.html#adf4fee2adeb03682d2ea70239f75848d":[2,0,1,8,119],
-"classmaingo_1_1_m_ai_n_g_o.html#adf764bba4c067716ca0d9948eca504a8":[2,0,1,8,127],
-"classmaingo_1_1_m_ai_n_g_o.html#ae1bfc496de0e05575a8f9ad290bd2b58":[2,0,1,8,58],
-"classmaingo_1_1_m_ai_n_g_o.html#ae327014202f53c1f3f0fab024b1d6da7":[2,0,1,8,104],
-"classmaingo_1_1_m_ai_n_g_o.html#ae51edfeecb90cf3be1d6cabf9d18c9eb":[2,0,1,8,86],
+"classmaingo_1_1_m_ai_n_g_o.html#acd561f4e9560a6a5c501bdf444f581b8":[2,0,1,8,47],
+"classmaingo_1_1_m_ai_n_g_o.html#acdbebd94e2fcccad46515741516799de":[2,0,1,8,101],
+"classmaingo_1_1_m_ai_n_g_o.html#acdc8a1d98aa50ee3d76dc4873dda787f":[2,0,1,8,14],
+"classmaingo_1_1_m_ai_n_g_o.html#ace36a8a82262f885ae5f87be65d868db":[2,0,1,8,102],
+"classmaingo_1_1_m_ai_n_g_o.html#ace8e13bdb04862efd560c8d0d80950b4":[2,0,1,8,50],
+"classmaingo_1_1_m_ai_n_g_o.html#ad33f6f1b9cb0e07b0e44bcb5297d860f":[2,0,1,8,116],
+"classmaingo_1_1_m_ai_n_g_o.html#aded61d763cefceab6bf099cf9d891cff":[2,0,1,8,80],
+"classmaingo_1_1_m_ai_n_g_o.html#adeef2c9d324fa8f9a26819b3a3307ad7":[2,0,1,8,44],
+"classmaingo_1_1_m_ai_n_g_o.html#adf4fee2adeb03682d2ea70239f75848d":[2,0,1,8,126],
+"classmaingo_1_1_m_ai_n_g_o.html#adf764bba4c067716ca0d9948eca504a8":[2,0,1,8,134],
+"classmaingo_1_1_m_ai_n_g_o.html#ae1bb7b84481f6f827f61d84601fe9869":[2,0,1,8,124],
+"classmaingo_1_1_m_ai_n_g_o.html#ae1bfc496de0e05575a8f9ad290bd2b58":[2,0,1,8,59],
+"classmaingo_1_1_m_ai_n_g_o.html#ae2bc7507ee0341d7b0a8ac06702ca964":[2,0,1,8,67],
+"classmaingo_1_1_m_ai_n_g_o.html#ae327014202f53c1f3f0fab024b1d6da7":[2,0,1,8,111],
+"classmaingo_1_1_m_ai_n_g_o.html#ae51edfeecb90cf3be1d6cabf9d18c9eb":[2,0,1,8,92],
 "classmaingo_1_1_m_ai_n_g_o.html#ae5ca384e27b075702ab9f2161fe2ae82":[2,0,1,8,0],
-"classmaingo_1_1_m_ai_n_g_o.html#ae8688dd8669b0231af0fcedfaefab02c":[2,0,1,8,24],
-"classmaingo_1_1_m_ai_n_g_o.html#ae90a5539fd3c1790b49289c919948da7":[2,0,1,8,118],
-"classmaingo_1_1_m_ai_n_g_o.html#ae90d120eacc929b19609c6dcd9017fa6":[2,0,1,8,138],
-"classmaingo_1_1_m_ai_n_g_o.html#ae99518c0b699295565d25c76b0187c58":[2,0,1,8,65],
-"classmaingo_1_1_m_ai_n_g_o.html#aeae47f2ca5ba67f042e035711690fec1":[2,0,1,8,146],
-"classmaingo_1_1_m_ai_n_g_o.html#af0c4e2dcc05ca034801db5400f8d2fa7":[2,0,1,8,120],
+"classmaingo_1_1_m_ai_n_g_o.html#ae8688dd8669b0231af0fcedfaefab02c":[2,0,1,8,25],
+"classmaingo_1_1_m_ai_n_g_o.html#ae90a5539fd3c1790b49289c919948da7":[2,0,1,8,125],
+"classmaingo_1_1_m_ai_n_g_o.html#ae90d120eacc929b19609c6dcd9017fa6":[2,0,1,8,146],
+"classmaingo_1_1_m_ai_n_g_o.html#aeae47f2ca5ba67f042e035711690fec1":[2,0,1,8,154],
+"classmaingo_1_1_m_ai_n_g_o.html#af0c4e2dcc05ca034801db5400f8d2fa7":[2,0,1,8,127],
 "classmaingo_1_1_m_ai_n_g_o.html#af0fdf26f6ae26288a121e6912f0f1023":[2,0,1,8,4],
 "classmaingo_1_1_m_ai_n_g_o.html#af7aec196a4987e5f38ed642b21400aa9":[2,0,1,8,37],
-"classmaingo_1_1_m_ai_n_g_o.html#af917f2f3529a7c92bb0b972607c1e8df":[2,0,1,8,75],
-"classmaingo_1_1_m_ai_n_g_o.html#afd0f8acfe45a05c077810ef75b8d71dd":[2,0,1,8,44],
+"classmaingo_1_1_m_ai_n_g_o.html#af917f2f3529a7c92bb0b972607c1e8df":[2,0,1,8,79],
 "classmaingo_1_1_m_ai_n_g_o_exception.html":[2,0,1,10],
-"classmaingo_1_1_m_ai_n_g_o_exception.html#a21341b7dfc5884b912383906b5f9828c":[2,0,1,10,5],
-"classmaingo_1_1_m_ai_n_g_o_exception.html#a2486a525e721a25110fc12c5224c1f10":[2,0,1,10,4],
-"classmaingo_1_1_m_ai_n_g_o_exception.html#a382a9c1299485b028ea4a82afe5c1952":[2,0,1,10,6],
-"classmaingo_1_1_m_ai_n_g_o_exception.html#a8c2f79d79aaa741fa4c0f5d7b5148a92":[2,0,1,10,0],
-"classmaingo_1_1_m_ai_n_g_o_exception.html#a9e405ac624e18ae108f3474e4c8284d4":[2,0,1,10,7],
-"classmaingo_1_1_m_ai_n_g_o_exception.html#ab39f701c53e41a4c7f43ef44e8c275d8":[2,0,1,10,1],
-"classmaingo_1_1_m_ai_n_g_o_exception.html#afc29a64faad1be34d8b70205b3391910":[2,0,1,10,3],
-"classmaingo_1_1_m_ai_n_g_o_exception.html#afe2216a07a8ecaf41c1c4b8b10e1ec35":[2,0,1,10,2],
+"classmaingo_1_1_m_ai_n_g_o_exception.html#a07682a0877265a921df4401bb1dbb3f6":[2,0,1,10,14],
+"classmaingo_1_1_m_ai_n_g_o_exception.html#a2bddf4891f256ffd2f7395626412568a":[2,0,1,10,3],
+"classmaingo_1_1_m_ai_n_g_o_exception.html#a457b8be0f33fcfeb9ab096345e60b75c":[2,0,1,10,6],
+"classmaingo_1_1_m_ai_n_g_o_exception.html#a5cc5c15e7cb9d14f7877731fabb46189":[2,0,1,10,11],
+"classmaingo_1_1_m_ai_n_g_o_exception.html#a61855f24f971602b43e26c16b0593e4f":[2,0,1,10,4],
+"classmaingo_1_1_m_ai_n_g_o_exception.html#a6f3fb2a660e871f2949a18b4a6986019":[2,0,1,10,5],
+"classmaingo_1_1_m_ai_n_g_o_exception.html#a781b7f59163bbc21dd5d3485f73f157a":[2,0,1,10,13],
+"classmaingo_1_1_m_ai_n_g_o_exception.html#a78cc259eb3c775814b2214262f026b8a":[2,0,1,10,9],
+"classmaingo_1_1_m_ai_n_g_o_exception.html#a978212ab50e44b92bc27cb853df35733":[2,0,1,10,8],
+"classmaingo_1_1_m_ai_n_g_o_exception.html#a9cd783e2e9ac6fcaf813bd8f94f2300d":[2,0,1,10,10],
+"classmaingo_1_1_m_ai_n_g_o_exception.html#aa38305aacfa2e2ebce4c5067dee75df9":[2,0,1,10,12],
+"classmaingo_1_1_m_ai_n_g_o_exception.html#aa5597f9379d8be919d8b4ae58030fac4":[2,0,1,10,1],
+"classmaingo_1_1_m_ai_n_g_o_exception.html#aa5c3aeb963e328dedab7bf51e953f863":[2,0,1,10,2],
+"classmaingo_1_1_m_ai_n_g_o_exception.html#ac3cd87bc11baff35170096a9a4fd8007":[2,0,1,10,15],
+"classmaingo_1_1_m_ai_n_g_o_exception.html#ae27b9410e3135e7784dae78c11e682f6":[2,0,1,10,0],
+"classmaingo_1_1_m_ai_n_g_o_exception.html#af37f598a1339901938a6bbf3b67a3247":[2,0,1,10,7],
 "classmaingo_1_1_m_ai_n_g_omodel.html":[2,0,1,11],
 "classmaingo_1_1_m_ai_n_g_omodel.html#a7a50f1c3477c117936d2b59876e608d6":[2,0,1,11,2],
 "classmaingo_1_1_m_ai_n_g_omodel.html#a8f7352764701bb71ca5845f354bfbd00":[2,0,1,11,0],
@@ -218,36 +249,5 @@ var NAVTREEINDEX1 =
 "classmaingo_1_1_maingo_evaluator.html#a08711d8a2b9de11b55a06d1eb2f42878":[2,0,1,9,89],
 "classmaingo_1_1_maingo_evaluator.html#a0ba00f6e3f0c57560cc4385382f90041":[2,0,1,9,24],
 "classmaingo_1_1_maingo_evaluator.html#a0d18706b8c5403a359ae4fb3c4535dd8":[2,0,1,9,51],
-"classmaingo_1_1_maingo_evaluator.html#a0dc466bd95d72232cac6ee6bf8728a2e":[2,0,1,9,70],
-"classmaingo_1_1_maingo_evaluator.html#a0e56aaa973cca94ba40aaa36a46762c6":[2,0,1,9,99],
-"classmaingo_1_1_maingo_evaluator.html#a1027a0674db3d2b20cb8b5a3e8175468":[2,0,1,9,44],
-"classmaingo_1_1_maingo_evaluator.html#a10b29d970cca4412cdf09ee3d38bbf3a":[2,0,1,9,42],
-"classmaingo_1_1_maingo_evaluator.html#a1120421ca19b8fefd77ad0c67149ef5a":[2,0,1,9,22],
-"classmaingo_1_1_maingo_evaluator.html#a11edbd2e3bfa2eb751ad55d0676630a6":[2,0,1,9,54],
-"classmaingo_1_1_maingo_evaluator.html#a14d44b2a4bfbb0a7c8abe784707c03d8":[2,0,1,9,27],
-"classmaingo_1_1_maingo_evaluator.html#a1551aa4a7ce3f452f8635618a49a5266":[2,0,1,9,69],
-"classmaingo_1_1_maingo_evaluator.html#a16353f72cbe6a6857f94eeb0a2a8ca2e":[2,0,1,9,11],
-"classmaingo_1_1_maingo_evaluator.html#a163893d7e2595d48b90be04de44c7061":[2,0,1,9,86],
-"classmaingo_1_1_maingo_evaluator.html#a189928b722ebcd7c497932dcc8c3f0bb":[2,0,1,9,2],
-"classmaingo_1_1_maingo_evaluator.html#a1d42b0997bcaebb756c432f50ab6d408":[2,0,1,9,63],
-"classmaingo_1_1_maingo_evaluator.html#a1e9902a05a7ab138bcf8afbfe8f3b38c":[2,0,1,9,78],
-"classmaingo_1_1_maingo_evaluator.html#a1eb1cdd102a6fdbefefa99006bb14d98":[2,0,1,9,13],
-"classmaingo_1_1_maingo_evaluator.html#a1fd539de40d9a846e3bc1a8d7319cd3c":[2,0,1,9,53],
-"classmaingo_1_1_maingo_evaluator.html#a21b576ce22533cc7cd433a5110e7d3e5":[2,0,1,9,43],
-"classmaingo_1_1_maingo_evaluator.html#a232490b0b1f7b0601343ec002fd461fb":[2,0,1,9,14],
-"classmaingo_1_1_maingo_evaluator.html#a24dab2d1d77aebdf8732fb679ab20a6c":[2,0,1,9,38],
-"classmaingo_1_1_maingo_evaluator.html#a258bac7136624bc05fc9aad23fcd2bae":[2,0,1,9,102],
-"classmaingo_1_1_maingo_evaluator.html#a27403d7ebd0ba9c1c3763bd92bf76dd0":[2,0,1,9,72],
-"classmaingo_1_1_maingo_evaluator.html#a283892ea852d019132ca549048dc8ae9":[2,0,1,9,84],
-"classmaingo_1_1_maingo_evaluator.html#a2a8d0c06f3f8c10c75f83fdfa4d5864f":[2,0,1,9,60],
-"classmaingo_1_1_maingo_evaluator.html#a2c93ca479683e45af6dc24953434cf05":[2,0,1,9,26],
-"classmaingo_1_1_maingo_evaluator.html#a2c96bb53c78b614fa21f09b34b06a240":[2,0,1,9,76],
-"classmaingo_1_1_maingo_evaluator.html#a2dbaa9c47035a9150d8c442ea7e90b1b":[2,0,1,9,83],
-"classmaingo_1_1_maingo_evaluator.html#a313d06a1b681bda32d1baaf73b4c1ae0":[2,0,1,9,18],
-"classmaingo_1_1_maingo_evaluator.html#a31bd4e5857f2eeb30cc919dfdda17bf8":[2,0,1,9,25],
-"classmaingo_1_1_maingo_evaluator.html#a348178557f010db15a6eded737e23c89":[2,0,1,9,90],
-"classmaingo_1_1_maingo_evaluator.html#a35b02acae9a26d0ce4582c6563bf4dcf":[2,0,1,9,81],
-"classmaingo_1_1_maingo_evaluator.html#a3cc2929f387db7fa699e9a0fb7659f23":[2,0,1,9,5],
-"classmaingo_1_1_maingo_evaluator.html#a467265384252d1e9027dece7661976bb":[2,0,1,9,117],
-"classmaingo_1_1_maingo_evaluator.html#a49f0a248a70b10ca4b9024b211b65a88":[2,0,1,9,115]
+"classmaingo_1_1_maingo_evaluator.html#a0dc466bd95d72232cac6ee6bf8728a2e":[2,0,1,9,70]
 };
diff --git a/doc/html/navtreeindex2.js b/doc/html/navtreeindex2.js
index 6ec3e873b1a0c4d5c4bed420268109a8bb7e6404..97707fbb00fa576387cdc6b67a2b4eaf42042a87 100644
--- a/doc/html/navtreeindex2.js
+++ b/doc/html/navtreeindex2.js
@@ -1,5 +1,36 @@
 var NAVTREEINDEX2 =
 {
+"classmaingo_1_1_maingo_evaluator.html#a0e56aaa973cca94ba40aaa36a46762c6":[2,0,1,9,99],
+"classmaingo_1_1_maingo_evaluator.html#a1027a0674db3d2b20cb8b5a3e8175468":[2,0,1,9,44],
+"classmaingo_1_1_maingo_evaluator.html#a10b29d970cca4412cdf09ee3d38bbf3a":[2,0,1,9,42],
+"classmaingo_1_1_maingo_evaluator.html#a1120421ca19b8fefd77ad0c67149ef5a":[2,0,1,9,22],
+"classmaingo_1_1_maingo_evaluator.html#a11edbd2e3bfa2eb751ad55d0676630a6":[2,0,1,9,54],
+"classmaingo_1_1_maingo_evaluator.html#a14d44b2a4bfbb0a7c8abe784707c03d8":[2,0,1,9,27],
+"classmaingo_1_1_maingo_evaluator.html#a1551aa4a7ce3f452f8635618a49a5266":[2,0,1,9,69],
+"classmaingo_1_1_maingo_evaluator.html#a16353f72cbe6a6857f94eeb0a2a8ca2e":[2,0,1,9,11],
+"classmaingo_1_1_maingo_evaluator.html#a163893d7e2595d48b90be04de44c7061":[2,0,1,9,86],
+"classmaingo_1_1_maingo_evaluator.html#a189928b722ebcd7c497932dcc8c3f0bb":[2,0,1,9,2],
+"classmaingo_1_1_maingo_evaluator.html#a1d42b0997bcaebb756c432f50ab6d408":[2,0,1,9,63],
+"classmaingo_1_1_maingo_evaluator.html#a1e9902a05a7ab138bcf8afbfe8f3b38c":[2,0,1,9,78],
+"classmaingo_1_1_maingo_evaluator.html#a1eb1cdd102a6fdbefefa99006bb14d98":[2,0,1,9,13],
+"classmaingo_1_1_maingo_evaluator.html#a1fd539de40d9a846e3bc1a8d7319cd3c":[2,0,1,9,53],
+"classmaingo_1_1_maingo_evaluator.html#a21b576ce22533cc7cd433a5110e7d3e5":[2,0,1,9,43],
+"classmaingo_1_1_maingo_evaluator.html#a232490b0b1f7b0601343ec002fd461fb":[2,0,1,9,14],
+"classmaingo_1_1_maingo_evaluator.html#a24dab2d1d77aebdf8732fb679ab20a6c":[2,0,1,9,38],
+"classmaingo_1_1_maingo_evaluator.html#a258bac7136624bc05fc9aad23fcd2bae":[2,0,1,9,102],
+"classmaingo_1_1_maingo_evaluator.html#a27403d7ebd0ba9c1c3763bd92bf76dd0":[2,0,1,9,72],
+"classmaingo_1_1_maingo_evaluator.html#a283892ea852d019132ca549048dc8ae9":[2,0,1,9,84],
+"classmaingo_1_1_maingo_evaluator.html#a2a8d0c06f3f8c10c75f83fdfa4d5864f":[2,0,1,9,60],
+"classmaingo_1_1_maingo_evaluator.html#a2c93ca479683e45af6dc24953434cf05":[2,0,1,9,26],
+"classmaingo_1_1_maingo_evaluator.html#a2c96bb53c78b614fa21f09b34b06a240":[2,0,1,9,76],
+"classmaingo_1_1_maingo_evaluator.html#a2dbaa9c47035a9150d8c442ea7e90b1b":[2,0,1,9,83],
+"classmaingo_1_1_maingo_evaluator.html#a313d06a1b681bda32d1baaf73b4c1ae0":[2,0,1,9,18],
+"classmaingo_1_1_maingo_evaluator.html#a31bd4e5857f2eeb30cc919dfdda17bf8":[2,0,1,9,25],
+"classmaingo_1_1_maingo_evaluator.html#a348178557f010db15a6eded737e23c89":[2,0,1,9,90],
+"classmaingo_1_1_maingo_evaluator.html#a35b02acae9a26d0ce4582c6563bf4dcf":[2,0,1,9,81],
+"classmaingo_1_1_maingo_evaluator.html#a3cc2929f387db7fa699e9a0fb7659f23":[2,0,1,9,5],
+"classmaingo_1_1_maingo_evaluator.html#a467265384252d1e9027dece7661976bb":[2,0,1,9,117],
+"classmaingo_1_1_maingo_evaluator.html#a49f0a248a70b10ca4b9024b211b65a88":[2,0,1,9,115],
 "classmaingo_1_1_maingo_evaluator.html#a4c67cfa8ca5bf2793ef3b81e37853427":[2,0,1,9,71],
 "classmaingo_1_1_maingo_evaluator.html#a4f5be3d4ae94197d759efb3cea878f66":[2,0,1,9,66],
 "classmaingo_1_1_maingo_evaluator.html#a4f675a797c18eaf2fd523a4f559313d9":[2,0,1,9,19],
@@ -107,112 +138,74 @@ var NAVTREEINDEX2 =
 "classmaingo_1_1_variable_lister.html#aba8c441cff84cc626c64f7363389b349":[2,0,1,18,4],
 "classmaingo_1_1_variable_lister.html#af4841887f3cb320059cce7dcf1c1723e":[2,0,1,18,3],
 "classmaingo_1_1bab_1_1_branch_and_bound.html":[2,0,1,0,0],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a010075b80170c61b0c30490e64ec979d":[2,0,1,0,0,85],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a01acae40320149ecfef11bda53350b3c":[2,0,1,0,0,19],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a0608306463120a72b9ec32395044470f":[2,0,1,0,0,32],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a0795ab80ed85f416a1834c2bc62f2d88":[2,0,1,0,0,2],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a010075b80170c61b0c30490e64ec979d":[2,0,1,0,0,57],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a01acae40320149ecfef11bda53350b3c":[2,0,1,0,0,9],
 "classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1":[2,0,1,0,0,0],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1":[2,0,1,0,0,1],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a244a114749491f6b442fd2563fefbc5e":[2,0,1,0,0,0,2],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a244a114749491f6b442fd2563fefbc5e":[2,0,1,0,0,0,5],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a244a114749491f6b442fd2563fefbc5e":[2,0,1,0,0,1,2],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a244a114749491f6b442fd2563fefbc5e":[2,0,1,0,0,1,5],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ab77e9f73c90db0ea95610d8103738966":[2,0,1,0,0,0,1],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ab77e9f73c90db0ea95610d8103738966":[2,0,1,0,0,0,4],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ab77e9f73c90db0ea95610d8103738966":[2,0,1,0,0,1,1],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ab77e9f73c90db0ea95610d8103738966":[2,0,1,0,0,1,4],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ac0b46b223d15cc2e3851dcaf961b9e7a":[2,0,1,0,0,0,0],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ac0b46b223d15cc2e3851dcaf961b9e7a":[2,0,1,0,0,0,3],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ac0b46b223d15cc2e3851dcaf961b9e7a":[2,0,1,0,0,1,0],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ac0b46b223d15cc2e3851dcaf961b9e7a":[2,0,1,0,0,1,3],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a0a241298a1b0f9b0707386e9143e0186":[2,0,1,0,0,73],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a109e3a4afa84d559ec9b88376b0a63b2":[2,0,1,0,0,82],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a10bf89f5a097f9d865ad5546eeee9b40":[2,0,1,0,0,76],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a13e706473cf2f26ac9b3d20344270aaa":[2,0,1,0,0,33],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a15520696d8e8e38197992c71ffd91c53":[2,0,1,0,0,27],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a16bbea3c96042145acc5df3830cd72b4":[2,0,1,0,0,70],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a17af9af1c4195bb491a0624d3a4edb36":[2,0,1,0,0,87],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a18915a6568908d9aba4e09f1d2d8b23c":[2,0,1,0,0,40],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a18915a6568908d9aba4e09f1d2d8b23c":[2,0,1,0,0,41],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a18cf39c5def55fea60f33438b77fece2":[2,0,1,0,0,8],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a193f594912e00a2c4d8cacfd4efbdfd5":[2,0,1,0,0,93],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a1a78374e95574fbe731cdd0d2dae7b53":[2,0,1,0,0,26],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a1f542019964ce925a4d19eb951049da7":[2,0,1,0,0,20],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a1f542019964ce925a4d19eb951049da7":[2,0,1,0,0,21],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a202477d2ba7c16bf7d39dc4f77034c67":[2,0,1,0,0,18],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a278e8c37f4d71abed1e0cb62b6366e5e":[2,0,1,0,0,67],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a2845411391c8498e7eece2e2e3ba073b":[2,0,1,0,0,92],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a29001119914eca2657390048e11db609":[2,0,1,0,0,13],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a2a6ba10d4cba3be0656bdc1f434b796d":[2,0,1,0,0,39],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a2a6ba10d4cba3be0656bdc1f434b796d":[2,0,1,0,0,38],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a2d88760ca48bcea923ba4e868d5bdf43":[2,0,1,0,0,4],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a2defed7ca937feacb124cc97b8f7915f":[2,0,1,0,0,62],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a3250e84e0547b8de82d91fe929c0e8d9":[2,0,1,0,0,16],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a3b90d97c448a84541e48eeb4388358a9":[2,0,1,0,0,64],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a3d09b996010632d9f782e9d7e5926e80":[2,0,1,0,0,28],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a3da7e60c4fad8100f38732fc06d2547c":[2,0,1,0,0,52],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a3da7e60c4fad8100f38732fc06d2547c":[2,0,1,0,0,53],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a44ead97b56cfae660cbe695ef8dffb38":[2,0,1,0,0,54],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a46473e89580e44ef3576e9040e469478":[2,0,1,0,0,71],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a4b993e6ced9b383b2ec2e3b4e617009a":[2,0,1,0,0,36],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a4b993e6ced9b383b2ec2e3b4e617009a":[2,0,1,0,0,37],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a4cab2a79ab0b12b712e7e45852be4a21":[2,0,1,0,0,24],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a4d1d7552bc0294281b7453a757a5b1c4":[2,0,1,0,0,65],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a535696550d694df9bc017ef6cd144a58":[2,0,1,0,0,9],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a5bd0987c7dde438e8d52af87421d78c5":[2,0,1,0,0,91],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a5cbefb1e86ca300d67ae3c65eab1099b":[2,0,1,0,0,35],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a60c5f5d7ae8fab91f990846207e88144":[2,0,1,0,0,6],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a63faf2c1a9fa6aaa062a271455813c01":[2,0,1,0,0,42],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a63faf2c1a9fa6aaa062a271455813c01":[2,0,1,0,0,43],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a668165551fb2c2cc69a05b1956755147":[2,0,1,0,0,48],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a668165551fb2c2cc69a05b1956755147":[2,0,1,0,0,49],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a67bce3a5b8585ec930b305d9a77a3d47":[2,0,1,0,0,68],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a6ab1475deadb8906e5d680911e747469":[2,0,1,0,0,14],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a70df6922540227a62b49549e0d6f9dcf":[2,0,1,0,0,77],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a7329b6c29c7a8686f7b417f3cfe93026":[2,0,1,0,0,66],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a733596f5150a34554a2e001bc2a7bd1e":[2,0,1,0,0,84],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a7db5251fcd9ad3ca2892a9b17cb7b197":[2,0,1,0,0,3],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a7db5251fcd9ad3ca2892a9b17cb7b197":[2,0,1,0,0,5],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a80be7a4efd5e0f39765c635d6be13116":[2,0,1,0,0,25],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a85091bc9965339278cc9c02b2baf354b":[2,0,1,0,0,89],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a8855b78bf4580af1d40f463eb88f9883":[2,0,1,0,0,56],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a88880806d0ddfe42862a876ca961cbf6":[2,0,1,0,0,59],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a88be959487932d46d6ff8227bd8f3f5b":[2,0,1,0,0,79],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a88d35fc68351774dadb831c38ffd93ee":[2,0,1,0,0,57],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a90cf43573f5755481bdd020dcaa7d351":[2,0,1,0,0,44],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a90cf43573f5755481bdd020dcaa7d351":[2,0,1,0,0,45],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a969736750315215126c3bad4b398d2e9":[2,0,1,0,0,29],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#a990927b31d0abc3c0df5ab3883c12de1":[2,0,1,0,0,15],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#aa35b55427764ada3cba0b0a74adafe0e":[2,0,1,0,0,12],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#aa47a427d6c433a26a35b5882e54480e4":[2,0,1,0,0,83],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#aa52c4379706307b5d5834a702d824854":[2,0,1,0,0,60],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#aa66393ce301be8002cdea9b1b43aa5b2":[2,0,1,0,0,81],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#aa66b24455102ab0550c9ed6c611e88a2":[2,0,1,0,0,80],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#aaf1e5ea028afe7d2700a6cc573d67674":[2,0,1,0,0,72],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#ab0c17e7072887baa0bf2377a7be7a4bc":[2,0,1,0,0,58],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#ab2bb968cb7c8aba14c9d42268fbb63e1":[2,0,1,0,0,30],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#ac3e65fd10f0294c31f8428330e517f85":[2,0,1,0,0,61],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#ac6de991f9fa810bc93ed5ce47577e210":[2,0,1,0,0,34],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#acab7696c07ae41c7a9296c0977359b1e":[2,0,1,0,0,31],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#acc2f5918ff76d313d9f0d9eae3c749cd":[2,0,1,0,0,63],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#acc9b140b91203d6ca5d45f84b697be42":[2,0,1,0,0,75],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#acca388f26f5e0c94b58643b566b8a235":[2,0,1,0,0,74],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#ad1c6f9191a7ab197f5a48ea554594462":[2,0,1,0,0,17],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#ad2b56f40c7255d731c196b1661cee2d4":[2,0,1,0,0,11],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#ad301660df21f804bccefa3da694aa743":[2,0,1,0,0,23],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#ad301660df21f804bccefa3da694aa743":[2,0,1,0,0,22],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#ad5e5e8e1a0f2a3dda0a6deac59409fd6":[2,0,1,0,0,7],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#adaeb5fb5c51be07833bf51f921ce2e65":[2,0,1,0,0,69],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#adf8377615ee4d86485f589700902126c":[2,0,1,0,0,88],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#ae420e5187f1c1595d132a27bdc656529":[2,0,1,0,0,50],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#ae420e5187f1c1595d132a27bdc656529":[2,0,1,0,0,51],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#af04b0ab5a5979ba684b4edf2a223d5ec":[2,0,1,0,0,10],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#af0c2fdc294a5197cc5cf2931945f1ec6":[2,0,1,0,0,78],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#af1853b2ef51e8bddd0a9ab2404340037":[2,0,1,0,0,90],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#af4816842caa40287b9fcda0401238236":[2,0,1,0,0,86],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#af593cef9ed1bcfa512f7302732b9a614":[2,0,1,0,0,46],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#af593cef9ed1bcfa512f7302732b9a614":[2,0,1,0,0,47],
-"classmaingo_1_1bab_1_1_branch_and_bound.html#afbbe46b34b476fa5b54c5faa112581b6":[2,0,1,0,0,55],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a1a904c0cb2e9786677bfd0c13951dec7":[2,0,1,0,0,0,0],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a4606d4d76cdd55c82480e7e28a65d67a":[2,0,1,0,0,0,2],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a803a5e6c3589e7407f7993fff57c30dd":[2,0,1,0,0,0,1],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a109e3a4afa84d559ec9b88376b0a63b2":[2,0,1,0,0,54],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a10bf89f5a097f9d865ad5546eeee9b40":[2,0,1,0,0,48],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a13e706473cf2f26ac9b3d20344270aaa":[2,0,1,0,0,16],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a15520696d8e8e38197992c71ffd91c53":[2,0,1,0,0,13],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a17af9af1c4195bb491a0624d3a4edb36":[2,0,1,0,0,59],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a18915a6568908d9aba4e09f1d2d8b23c":[2,0,1,0,0,20],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a193f594912e00a2c4d8cacfd4efbdfd5":[2,0,1,0,0,64],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a1f509aa5a3de69ff00e8d2c31b654d48":[2,0,1,0,0,35],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a1f542019964ce925a4d19eb951049da7":[2,0,1,0,0,10],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a2685cdd222deff1b30e3b83c7b4bb259":[2,0,1,0,0,33],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a278e8c37f4d71abed1e0cb62b6366e5e":[2,0,1,0,0,39],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a29001119914eca2657390048e11db609":[2,0,1,0,0,6],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a2a6ba10d4cba3be0656bdc1f434b796d":[2,0,1,0,0,19],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a2defed7ca937feacb124cc97b8f7915f":[2,0,1,0,0,34],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a3b90d97c448a84541e48eeb4388358a9":[2,0,1,0,0,36],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a3da7e60c4fad8100f38732fc06d2547c":[2,0,1,0,0,26],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a46473e89580e44ef3576e9040e469478":[2,0,1,0,0,43],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a4a63abd1f85d04b411bd3f46c95c994b":[2,0,1,0,0,42],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a4b993e6ced9b383b2ec2e3b4e617009a":[2,0,1,0,0,18],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a4d1d7552bc0294281b7453a757a5b1c4":[2,0,1,0,0,37],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a535696550d694df9bc017ef6cd144a58":[2,0,1,0,0,4],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a54fa45d1751c9a81b346bd7cd1f5969c":[2,0,1,0,0,55],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a5cbefb1e86ca300d67ae3c65eab1099b":[2,0,1,0,0,17],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a6087a84349286d46bfc4a6633f5c881b":[2,0,1,0,0,63],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a63faf2c1a9fa6aaa062a271455813c01":[2,0,1,0,0,21],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a668165551fb2c2cc69a05b1956755147":[2,0,1,0,0,24],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a67bce3a5b8585ec930b305d9a77a3d47":[2,0,1,0,0,40],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a70df6922540227a62b49549e0d6f9dcf":[2,0,1,0,0,49],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a7329b6c29c7a8686f7b417f3cfe93026":[2,0,1,0,0,38],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a733596f5150a34554a2e001bc2a7bd1e":[2,0,1,0,0,56],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a7bd1a5254c74b3adac3b74712d92257e":[2,0,1,0,0,44],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a7db5251fcd9ad3ca2892a9b17cb7b197":[2,0,1,0,0,2],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a80be7a4efd5e0f39765c635d6be13116":[2,0,1,0,0,12],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a85091bc9965339278cc9c02b2baf354b":[2,0,1,0,0,61],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a8855b78bf4580af1d40f463eb88f9883":[2,0,1,0,0,28],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a88880806d0ddfe42862a876ca961cbf6":[2,0,1,0,0,31],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a88be959487932d46d6ff8227bd8f3f5b":[2,0,1,0,0,51],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a90cf43573f5755481bdd020dcaa7d351":[2,0,1,0,0,22],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a969736750315215126c3bad4b398d2e9":[2,0,1,0,0,14],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a9836ba957bbfd2acace285065fe81710":[2,0,1,0,0,45],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#a990927b31d0abc3c0df5ab3883c12de1":[2,0,1,0,0,7],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#aa52c4379706307b5d5834a702d824854":[2,0,1,0,0,32],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#aa66393ce301be8002cdea9b1b43aa5b2":[2,0,1,0,0,53],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#aa66b24455102ab0550c9ed6c611e88a2":[2,0,1,0,0,52],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#ab0c17e7072887baa0bf2377a7be7a4bc":[2,0,1,0,0,30],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#ab1e963d56b3adc807decb6e4dc1bee85":[2,0,1,0,0,1],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#aba6e92ef8af1e76b62a543e1334b4948":[2,0,1,0,0,62],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#abb34f49557e1d417e5a87a467cee2ec8":[2,0,1,0,0,46],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#acab7696c07ae41c7a9296c0977359b1e":[2,0,1,0,0,15],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#acc9b140b91203d6ca5d45f84b697be42":[2,0,1,0,0,47],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#ad1c6f9191a7ab197f5a48ea554594462":[2,0,1,0,0,8],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#ad2b56f40c7255d731c196b1661cee2d4":[2,0,1,0,0,5],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#ad301660df21f804bccefa3da694aa743":[2,0,1,0,0,11],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#ad5e5e8e1a0f2a3dda0a6deac59409fd6":[2,0,1,0,0,3],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#adaeb5fb5c51be07833bf51f921ce2e65":[2,0,1,0,0,41],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#adf8377615ee4d86485f589700902126c":[2,0,1,0,0,60],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#ae1454635b53b98cc4e395fd3ed7faca0":[2,0,1,0,0,29],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#ae420e5187f1c1595d132a27bdc656529":[2,0,1,0,0,25],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#af0c2fdc294a5197cc5cf2931945f1ec6":[2,0,1,0,0,50],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#af4816842caa40287b9fcda0401238236":[2,0,1,0,0,58],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#af593cef9ed1bcfa512f7302732b9a614":[2,0,1,0,0,23],
+"classmaingo_1_1bab_1_1_branch_and_bound.html#afbbe46b34b476fa5b54c5faa112581b6":[2,0,1,0,0,27],
 "classmaingo_1_1lbp_1_1_lbp_clp.html":[2,0,1,1,1],
 "classmaingo_1_1lbp_1_1_lbp_clp.html#a0108d59ae1bc4fc86d91c414b4f33b36":[2,0,1,1,1,43],
 "classmaingo_1_1lbp_1_1_lbp_clp.html#a09930dee52d992c1aeab1e8a6f32ef59":[2,0,1,1,1,22],
@@ -241,6 +234,7 @@ var NAVTREEINDEX2 =
 "classmaingo_1_1lbp_1_1_lbp_clp.html#a9981f64fc302d8ee34ecff0fa9db4b6c":[2,0,1,1,1,27],
 "classmaingo_1_1lbp_1_1_lbp_clp.html#a9a8c2e7f43258a6e900fd5222260e7ae":[2,0,1,1,1,35],
 "classmaingo_1_1lbp_1_1_lbp_clp.html#a9d4da7fbb2fc96bbcba558f5126bac60":[2,0,1,1,1,28],
+"classmaingo_1_1lbp_1_1_lbp_clp.html#a9e39ab1a9b491aa0d71efbaf3467c19d":[2,0,1,1,1,0],
 "classmaingo_1_1lbp_1_1_lbp_clp.html#aa0964fe28a1d7c5b3095821749792a7b":[2,0,1,1,1,14],
 "classmaingo_1_1lbp_1_1_lbp_clp.html#aa2b757fbec54c610ba3d9fe8ba35b67e":[2,0,1,1,1,33],
 "classmaingo_1_1lbp_1_1_lbp_clp.html#aa4482d8e03130757248872892e2fcb2b":[2,0,1,1,1,3],
@@ -249,5 +243,11 @@ var NAVTREEINDEX2 =
 "classmaingo_1_1lbp_1_1_lbp_clp.html#ab38029cc0d0963194ac6ca8c4e7c6632":[2,0,1,1,1,44],
 "classmaingo_1_1lbp_1_1_lbp_clp.html#ab49912af5fed8f32b703cb246b402272":[2,0,1,1,1,41],
 "classmaingo_1_1lbp_1_1_lbp_clp.html#ab77a56c003c64a99988d6b560c3104bf":[2,0,1,1,1,6],
-"classmaingo_1_1lbp_1_1_lbp_clp.html#ab7e8f8e062116c53497ed6884529a2a3":[2,0,1,1,1,0]
+"classmaingo_1_1lbp_1_1_lbp_clp.html#ab8577790c0bc0371e97f63040a576171":[2,0,1,1,1,1],
+"classmaingo_1_1lbp_1_1_lbp_clp.html#ab8b1ff5aae11dd1ae23b260be58a39f2":[2,0,1,1,1,7],
+"classmaingo_1_1lbp_1_1_lbp_clp.html#abda27bf8bd56a6870d43acc6ff9d7f81":[2,0,1,1,1,23],
+"classmaingo_1_1lbp_1_1_lbp_clp.html#ad1ca347dd4c44d58cbc0acef37b20ac2":[2,0,1,1,1,2],
+"classmaingo_1_1lbp_1_1_lbp_clp.html#ad98f31f435d1a770ea2df783c84b40c2":[2,0,1,1,1,45],
+"classmaingo_1_1lbp_1_1_lbp_clp.html#ada95cd9dabecd558b31f2bdc4c26e8e4":[2,0,1,1,1,19],
+"classmaingo_1_1lbp_1_1_lbp_clp.html#adaab91b912d6dd7b148b22b8d5db2584":[2,0,1,1,1,13]
 };
diff --git a/doc/html/navtreeindex3.js b/doc/html/navtreeindex3.js
index 70b39bc014ceff54bcfe15055348634c6beef1ac..2be6318e8151beaae7c1ec961ac77d19d6318238 100644
--- a/doc/html/navtreeindex3.js
+++ b/doc/html/navtreeindex3.js
@@ -1,12 +1,5 @@
 var NAVTREEINDEX3 =
 {
-"classmaingo_1_1lbp_1_1_lbp_clp.html#ab8577790c0bc0371e97f63040a576171":[2,0,1,1,1,1],
-"classmaingo_1_1lbp_1_1_lbp_clp.html#ab8b1ff5aae11dd1ae23b260be58a39f2":[2,0,1,1,1,7],
-"classmaingo_1_1lbp_1_1_lbp_clp.html#abda27bf8bd56a6870d43acc6ff9d7f81":[2,0,1,1,1,23],
-"classmaingo_1_1lbp_1_1_lbp_clp.html#ad1ca347dd4c44d58cbc0acef37b20ac2":[2,0,1,1,1,2],
-"classmaingo_1_1lbp_1_1_lbp_clp.html#ad98f31f435d1a770ea2df783c84b40c2":[2,0,1,1,1,45],
-"classmaingo_1_1lbp_1_1_lbp_clp.html#ada95cd9dabecd558b31f2bdc4c26e8e4":[2,0,1,1,1,19],
-"classmaingo_1_1lbp_1_1_lbp_clp.html#adaab91b912d6dd7b148b22b8d5db2584":[2,0,1,1,1,13],
 "classmaingo_1_1lbp_1_1_lbp_clp.html#adf6172de124b973b6f1ce730119f222c":[2,0,1,1,1,30],
 "classmaingo_1_1lbp_1_1_lbp_clp.html#ae956a7e6decd45e83cc85e741df2064a":[2,0,1,1,1,36],
 "classmaingo_1_1lbp_1_1_lbp_clp.html#aeb1c3f941c0fbbf8d905ca4e3476d658":[2,0,1,1,1,37],
@@ -63,18 +56,19 @@ var NAVTREEINDEX3 =
 "classmaingo_1_1lbp_1_1_lbp_cplex.html#ab551861cdafea80ba3f9dbffa07475a0":[2,0,1,1,2,31],
 "classmaingo_1_1lbp_1_1_lbp_cplex.html#abf000bb326887d3f342c963bea965ff1":[2,0,1,1,2,51],
 "classmaingo_1_1lbp_1_1_lbp_cplex.html#ac0b43bc512e9bb34cc5253de53bbb80b":[2,0,1,1,2,12],
+"classmaingo_1_1lbp_1_1_lbp_cplex.html#ac3a9c29513f616834eb0cd0cddf08b0c":[2,0,1,1,2,0],
 "classmaingo_1_1lbp_1_1_lbp_cplex.html#ac88cac7557fd9ba8a903ce0f8bec2aa1":[2,0,1,1,2,35],
 "classmaingo_1_1lbp_1_1_lbp_cplex.html#acc180d01e0c9452c5a58435b3bace97a":[2,0,1,1,2,39],
 "classmaingo_1_1lbp_1_1_lbp_cplex.html#acea05d7f9625a5dc671c43611a15cf4b":[2,0,1,1,2,1],
 "classmaingo_1_1lbp_1_1_lbp_cplex.html#adf18833e2fcf0195e9407308aea38b6f":[2,0,1,1,2,30],
 "classmaingo_1_1lbp_1_1_lbp_cplex.html#ae2d5d4c819acd3ba32022492370f32a4":[2,0,1,1,2,42],
 "classmaingo_1_1lbp_1_1_lbp_cplex.html#ae3bf7a1bba331fef4de0c2793a311229":[2,0,1,1,2,5],
-"classmaingo_1_1lbp_1_1_lbp_cplex.html#ae9d2adeabbd07038fd8a27192548ebef":[2,0,1,1,2,0],
 "classmaingo_1_1lbp_1_1_lbp_cplex.html#aeb417aefdc41100afb0e2909b89c48de":[2,0,1,1,2,45],
 "classmaingo_1_1lbp_1_1_lbp_cplex.html#af4552b8d7392bf83f24ffd77be3ac2c9":[2,0,1,1,2,47],
 "classmaingo_1_1lbp_1_1_lbp_interval.html":[2,0,1,1,4],
 "classmaingo_1_1lbp_1_1_lbp_interval.html#a274c50b0ce633cb4b9616f9ec737bbae":[2,0,1,1,4,8],
 "classmaingo_1_1lbp_1_1_lbp_interval.html#a2a9d6be191c080861b7ae9de9ca46f98":[2,0,1,1,4,6],
+"classmaingo_1_1lbp_1_1_lbp_interval.html#a42f6c355cd7752a138f96614bb401491":[2,0,1,1,4,0],
 "classmaingo_1_1lbp_1_1_lbp_interval.html#a5a44a19b7c78a6235abd0e44f9de71b7":[2,0,1,1,4,3],
 "classmaingo_1_1lbp_1_1_lbp_interval.html#a5ae276345994ad701c7640d7c4bd4f0d":[2,0,1,1,4,14],
 "classmaingo_1_1lbp_1_1_lbp_interval.html#a5ec0a4dc7543d432fe2c44892469c959":[2,0,1,1,4,2],
@@ -86,7 +80,6 @@ var NAVTREEINDEX3 =
 "classmaingo_1_1lbp_1_1_lbp_interval.html#aae0fb055173014b96398727f31cf8138":[2,0,1,1,4,1],
 "classmaingo_1_1lbp_1_1_lbp_interval.html#ac28a50c89f88e52c1af7af2ed5104bdb":[2,0,1,1,4,5],
 "classmaingo_1_1lbp_1_1_lbp_interval.html#ac7defcd5788a9a9d5e6808a153befe3c":[2,0,1,1,4,17],
-"classmaingo_1_1lbp_1_1_lbp_interval.html#ae0c855db98ba9a8c6e32500e1efcbbe7":[2,0,1,1,4,0],
 "classmaingo_1_1lbp_1_1_lbp_interval.html#aea1859e400fedef26c0391fe3d2262e0":[2,0,1,1,4,9],
 "classmaingo_1_1lbp_1_1_lbp_interval.html#aef1c4f8ac1b79c59562f10d2e87f4a6a":[2,0,1,1,4,15],
 "classmaingo_1_1lbp_1_1_lbp_interval.html#af632f780426eb916d395a7854b446e23":[2,0,1,1,4,12],
@@ -104,25 +97,24 @@ var NAVTREEINDEX3 =
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a161849015fb7e113fdf088a24671b9c9":[2,0,1,1,5,47],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1994bc43cf051908c35889bb08d3cb02":[2,0,1,1,5,65],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1aec7459f261f58b6e476fd7eae99581":[2,0,1,1,5,38],
-"classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1b23a7c1621517ac4506bd043d43950e":[2,0,1,1,5,63],
+"classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1b4b4c6e80d76f83bb5a2a7f7d2f165c":[2,0,1,1,5,70],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1bd1db09ee19b087b11a761d41dc195d":[2,0,1,1,5,59],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1c3d3c5fd2144af3a5e99fb1c74ef772":[2,0,1,1,5,54],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1f0229a0978bf619d22afe5a5c5f3e3a":[2,0,1,1,5,55],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2237722d9bd7702a7eeb0b2620110bca":[2,0,1,1,5,4],
-"classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2277a8ee8f3f41a9498c43add63835c4":[2,0,1,1,5,70],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2409b4c91942a365cceb10fd7c9dab17":[2,0,1,1,5,20],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2f1320936ed40642c7cf4cf0fe31d14f":[2,0,1,1,5,61],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2fa3ad57113343a493feac9a5f4c2667":[2,0,1,1,5,3],
-"classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a31416f2224eea283c3ae280ed3beb497":[2,0,1,1,5,0],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a346ce6af484360fa0d789f02a460ca33":[2,0,1,1,5,53],
-"classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a39ef7296e50fb200934ff74a017e43bf":[2,0,1,1,5,95],
+"classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a39ef7296e50fb200934ff74a017e43bf":[2,0,1,1,5,96],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a3b4dccb1190a30d49e1e9272120ba707":[2,0,1,1,5,78],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a3bb190287b40d8ff446184a0ace005bf":[2,0,1,1,5,88],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a3fcb771d5ccdac5d7ee197f6b412044b":[2,0,1,1,5,9],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a40d9842e7d85a37376bd3bf51761b315":[2,0,1,1,5,39],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4124918b8c196646da6489c6d19a5cb9":[2,0,1,1,5,32],
-"classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a443c3bf5e7640f49f8fa7b5503ac9371":[2,0,1,1,5,103],
+"classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a443c3bf5e7640f49f8fa7b5503ac9371":[2,0,1,1,5,104],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a44512a8b2e88dee8c859b382c7777beb":[2,0,1,1,5,49],
+"classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a44e1d78a441997c6fced40f8c91c8043":[2,0,1,1,5,95],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a456cbe28fac6fbf3508b09b04d1ea846":[2,0,1,1,5,35],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a464be8ca82b76704c0ecf60d7f9d2aad":[2,0,1,1,5,50],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4ce48185a33ab3815913f44b823352bb":[2,0,1,1,5,18],
@@ -130,19 +122,20 @@ var NAVTREEINDEX3 =
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4fd9a52441b77eff552c9034ae0fb76d":[2,0,1,1,5,13],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4fe2354f3e4bbee160964b089710838e":[2,0,1,1,5,23],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a51baac566450ca4b94cd715b57c38752":[2,0,1,1,5,60],
-"classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a53ec1c841361380f907fe4bc059096f3":[2,0,1,1,5,98],
-"classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a56a7df7c8fc8858597b8cdb8985949cd":[2,0,1,1,5,97],
+"classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a53ec1c841361380f907fe4bc059096f3":[2,0,1,1,5,99],
+"classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a56a7df7c8fc8858597b8cdb8985949cd":[2,0,1,1,5,98],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a59a4631f9fbe8e1a568fd2a36fac31e2":[2,0,1,1,5,40],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a5e059ef32469739da674be2946048dd0":[2,0,1,1,5,92],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6343f649f960195fc3783b5c0da3a59e":[2,0,1,1,5,15],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a637f881b8ce5464725a611fde5ae5bc2":[2,0,1,1,5,82],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a63aa6a0843524f8f1ffefa5763cc3c80":[2,0,1,1,5,87],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a67b22b446040aa9148dbbd411ad928bb":[2,0,1,1,5,93],
-"classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a687c42fa025369080f4fa0745a5a2256":[2,0,1,1,5,101],
+"classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a687c42fa025369080f4fa0745a5a2256":[2,0,1,1,5,102],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6a57781338bfbdf0b99f3ec474ff3feb":[2,0,1,1,5,42],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6a6c925badc9b14fb61232aceb859b9c":[2,0,1,1,5,66],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6ee4019ccdd8ec662f69586121be16b0":[2,0,1,1,5,81],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6fa683114a6f2d99b9963b991d089e89":[2,0,1,1,5,77],
+"classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a701c19e247fa6e9791313252084b770a":[2,0,1,1,5,63],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a70c32308c7d93c64af5edce4ce6412b7":[2,0,1,1,5,74],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a75d8c7d165cc917a455243f528ea23df":[2,0,1,1,5,58],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a75e8efba11ed031032d7e75513f10ba1":[2,0,1,1,5,72],
@@ -152,7 +145,7 @@ var NAVTREEINDEX3 =
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a793016f5e661fbfaf1488f1a6889f3c8":[2,0,1,1,5,46],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7952199940d657eed365a660f4538527":[2,0,1,1,5,69],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7a7062b87f2074558f67c7cbbe397b58":[2,0,1,1,5,57],
-"classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7d227b1709674b820d8bc7c0466aaa13":[2,0,1,1,5,96],
+"classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7d227b1709674b820d8bc7c0466aaa13":[2,0,1,1,5,97],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a805403d014eefe22b8312c4c1b80a877":[2,0,1,1,5,5],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a807d99cf52ff7bcfa7948e03b585ea54":[2,0,1,1,5,64],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a88c29043b78956e34cc95ab46eaac9d1":[2,0,1,1,5,25],
@@ -163,10 +156,12 @@ var NAVTREEINDEX3 =
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8fc065971f7753722d93201222f91063":[2,0,1,1,5,91],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a90f45a10a7a5a3a299d63ece51116c58":[2,0,1,1,5,26],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9617d81f28d3a1ba3270d3a73ee81e85":[2,0,1,1,5,56],
+"classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9680e92120bb8a0693095f965421d7d7":[2,0,1,1,5,0],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a96d0133b5deda10067177dee19fd4f6f":[2,0,1,1,5,24],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a994248a0caff4424b631b4ad06e05294":[2,0,1,1,5,79],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a99567ba1637a154ffdaea2a7f532a39c":[2,0,1,1,5,83],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9c717d353a6b55b72879c448ba927add":[2,0,1,1,5,45],
+"classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9ec401321cfa9eda2672c9a65b6ba11d":[2,0,1,1,5,67],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9ee38ffd8ce3d627bfd70c195f9be58d":[2,0,1,1,5,29],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9f37648a18e394088679dc92701dd76f":[2,0,1,1,5,36],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aa0074d7d40a6c7d983ed738cfb501a5e":[2,0,1,1,5,48],
@@ -175,11 +170,10 @@ var NAVTREEINDEX3 =
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aaa92d78b7ce6a1b2939131063bd6f68a":[2,0,1,1,5,62],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aafadf6738f60cca6831074ae54f0647d":[2,0,1,1,5,11],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ab2c6d75aa915dd5e3296b0873d39acfd":[2,0,1,1,5,94],
-"classmaingo_1_1lbp_1_1_lower_bounding_solver.html#abc5d2f11849c00d60b5c181e3fc1ecc5":[2,0,1,1,5,100],
+"classmaingo_1_1lbp_1_1_lower_bounding_solver.html#abc5d2f11849c00d60b5c181e3fc1ecc5":[2,0,1,1,5,101],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#abd9daa889433074171373fe2e59df217":[2,0,1,1,5,16],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ac3fddd3adb6e1db739d3377fb1bf3f1f":[2,0,1,1,5,14],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ac6734ae698e1c511059e6c0004f77c7b":[2,0,1,1,5,89],
-"classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ac82365b8f4f2d24466e60bbf01042142":[2,0,1,1,5,67],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#acbf69ad8646a8f786e6b4d2e91fd54fe":[2,0,1,1,5,51],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#acc43848f17dfd2e2941e21e3bd308737":[2,0,1,1,5,84],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ace0bc5168f34d29839df34ff9b8bf511":[2,0,1,1,5,86],
@@ -187,15 +181,15 @@ var NAVTREEINDEX3 =
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ad3893a30edf38b7801801e754773e8da":[2,0,1,1,5,41],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ad73a525d4fbef8238e26dd95890f2b2b":[2,0,1,1,5,27],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae097029abb950c0838bab24ef4bc360f":[2,0,1,1,5,2],
-"classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae4517e4a83ca2c5e58a22d5725aea439":[2,0,1,1,5,99],
+"classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae4517e4a83ca2c5e58a22d5725aea439":[2,0,1,1,5,100],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae45e85f9c8bc19bba1510e89b0698a97":[2,0,1,1,5,1],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae59a4d355107b80b3e1a6efbc6488b66":[2,0,1,1,5,31],
-"classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae8e6470d9c422e32457e7dd7e7a8cc50":[2,0,1,1,5,105],
-"classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae9f3f49ebc4c635d2c38abbf42c9f256":[2,0,1,1,5,104],
+"classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae8e6470d9c422e32457e7dd7e7a8cc50":[2,0,1,1,5,106],
+"classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae9f3f49ebc4c635d2c38abbf42c9f256":[2,0,1,1,5,105],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af0baca6c1bd4847c2c3ab98e3c6c4adb":[2,0,1,1,5,68],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af339d8b557668fa7f961faf44c4cbf6b":[2,0,1,1,5,85],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af4e0c02718f150532912a15c213e608d":[2,0,1,1,5,17],
-"classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af5a66b5283474172bf128f2b2c3a4ba7":[2,0,1,1,5,102],
+"classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af5a66b5283474172bf128f2b2c3a4ba7":[2,0,1,1,5,103],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af8be99dda0a3968034aed1c5a0d9fba4":[2,0,1,1,5,28],
 "classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aff0358f2e7b23dcabb961d27b71e6642":[2,0,1,1,5,44],
 "classmaingo_1_1ubp_1_1_ipopt_problem.html":[2,0,1,2,1],
@@ -204,16 +198,16 @@ var NAVTREEINDEX3 =
 "classmaingo_1_1ubp_1_1_ipopt_problem.html#a05145891e0b75e9163d3f1bb4ae81f42":[2,0,1,2,1,25],
 "classmaingo_1_1ubp_1_1_ipopt_problem.html#a0ab5a8e212575c185980cb7c6eed2ceb":[2,0,1,2,1,14],
 "classmaingo_1_1ubp_1_1_ipopt_problem.html#a16905e9bb3e4cfbb79c91c93c3ebe13c":[2,0,1,2,1,22],
+"classmaingo_1_1ubp_1_1_ipopt_problem.html#a1e56ab6219a4daa52c5cbbcd6548a603":[2,0,1,2,1,16],
 "classmaingo_1_1ubp_1_1_ipopt_problem.html#a317864cfc5afc13826914711cacabea2":[2,0,1,2,1,12],
+"classmaingo_1_1ubp_1_1_ipopt_problem.html#a62bc2a5c3d02532a6fc568f704177264":[2,0,1,2,1,1],
 "classmaingo_1_1ubp_1_1_ipopt_problem.html#a6b8a2a2d1ad6bff475c13b0fde428ff3":[2,0,1,2,1,23],
 "classmaingo_1_1ubp_1_1_ipopt_problem.html#a724a9a70c286024101d8bcbe0ee1f054":[2,0,1,2,1,6],
 "classmaingo_1_1ubp_1_1_ipopt_problem.html#a81ea5f97f58cd2e1b062fddec55c7232":[2,0,1,2,1,5],
 "classmaingo_1_1ubp_1_1_ipopt_problem.html#a83ab40c3ed93a2ec0d23a3e62d3eb92f":[2,0,1,2,1,2],
 "classmaingo_1_1ubp_1_1_ipopt_problem.html#a8a8a87c013f83837c9ea5c7e4f755d1a":[2,0,1,2,1,27],
-"classmaingo_1_1ubp_1_1_ipopt_problem.html#a986a798fcfb41ccf30a4e21dece92dbf":[2,0,1,2,1,1],
 "classmaingo_1_1ubp_1_1_ipopt_problem.html#a988a8b7d3f4f7f89c2ac09323af39111":[2,0,1,2,1,18],
 "classmaingo_1_1ubp_1_1_ipopt_problem.html#aa2beb96149ad4140eef75964e0297125":[2,0,1,2,1,3],
-"classmaingo_1_1ubp_1_1_ipopt_problem.html#aa7b6d4e92ccd5f357728d82baec6cf59":[2,0,1,2,1,16],
 "classmaingo_1_1ubp_1_1_ipopt_problem.html#aae86a416ec70ff4d59e93a166de048ec":[2,0,1,2,1,21],
 "classmaingo_1_1ubp_1_1_ipopt_problem.html#ab5457949d2dc3765ac984f4debd9b7e3":[2,0,1,2,1,17],
 "classmaingo_1_1ubp_1_1_ipopt_problem.html#ac97f040e982cca72af0203b014638f4a":[2,0,1,2,1,8],
@@ -228,9 +222,7 @@ var NAVTREEINDEX3 =
 "classmaingo_1_1ubp_1_1_ipopt_problem.html#afe39f50811f9ff5a229e70c89de328f4":[2,0,1,2,1,20],
 "classmaingo_1_1ubp_1_1_ipopt_problem.html#aff434ac6d45f748ead8315abcc825bed":[2,0,1,2,1,0],
 "classmaingo_1_1ubp_1_1_knitro_problem.html":[2,0,1,2,2],
-"classmaingo_1_1ubp_1_1_knitro_problem.html#a01412351da813879180374f925289e14":[2,0,1,2,2,0],
 "classmaingo_1_1ubp_1_1_knitro_problem.html#a06238fa671eeb532dcfac051beeff95f":[2,0,1,2,2,16],
-"classmaingo_1_1ubp_1_1_knitro_problem.html#a0bd778c8b72652bafe429d874cba73af":[2,0,1,2,2,11],
 "classmaingo_1_1ubp_1_1_knitro_problem.html#a136eaa7eaac67cd3155bde2e779237d3":[2,0,1,2,2,8],
 "classmaingo_1_1ubp_1_1_knitro_problem.html#a21659b0aa98498b69f507007ed93c5f9":[2,0,1,2,2,15],
 "classmaingo_1_1ubp_1_1_knitro_problem.html#a4192883914d02b7e76205e7693f25411":[2,0,1,2,2,12],
@@ -245,9 +237,17 @@ var NAVTREEINDEX3 =
 "classmaingo_1_1ubp_1_1_knitro_problem.html#ab7df62ea5f3792b87f831adcc6a5de22":[2,0,1,2,2,7],
 "classmaingo_1_1ubp_1_1_knitro_problem.html#ac55dfe4d8eea4c9c4ebd79a12e9bb06d":[2,0,1,2,2,3],
 "classmaingo_1_1ubp_1_1_knitro_problem.html#adb4e43c94df78c14a7b46a9d7e52a9f3":[2,0,1,2,2,13],
+"classmaingo_1_1ubp_1_1_knitro_problem.html#adfd54311b1a62a9cb423071ce1c436eb":[2,0,1,2,2,11],
 "classmaingo_1_1ubp_1_1_knitro_problem.html#aeee41f6f83fe4abfc075ded564a767ee":[2,0,1,2,2,2],
+"classmaingo_1_1ubp_1_1_knitro_problem.html#af6bc2325caaf7ab6e70eb032669208e7":[2,0,1,2,2,0],
 "classmaingo_1_1ubp_1_1_ubp_clp.html":[2,0,1,2,3],
 "classmaingo_1_1ubp_1_1_ubp_clp.html#a01e9a781b3742401ffa9dcf88b7b3067":[2,0,1,2,3,8],
 "classmaingo_1_1ubp_1_1_ubp_clp.html#a08203d67961695155e95c8941b75477a":[2,0,1,2,3,12],
-"classmaingo_1_1ubp_1_1_ubp_clp.html#a0f3faa3937a515be22cff1913eda1b06":[2,0,1,2,3,3]
+"classmaingo_1_1ubp_1_1_ubp_clp.html#a0f3faa3937a515be22cff1913eda1b06":[2,0,1,2,3,3],
+"classmaingo_1_1ubp_1_1_ubp_clp.html#a10029afd1388a285d464b25181c00d3e":[2,0,1,2,3,10],
+"classmaingo_1_1ubp_1_1_ubp_clp.html#a2ff59fcf2223f5851ec4fffa59299656":[2,0,1,2,3,0],
+"classmaingo_1_1ubp_1_1_ubp_clp.html#a3073de5a0fbe6fa5632a9090f1b056ef":[2,0,1,2,3,5],
+"classmaingo_1_1ubp_1_1_ubp_clp.html#a377da5ab602aaf0ad0d53ea444dce938":[2,0,1,2,3,6],
+"classmaingo_1_1ubp_1_1_ubp_clp.html#a52188ee77b0ac7ba4bf8215d8fac556e":[2,0,1,2,3,7],
+"classmaingo_1_1ubp_1_1_ubp_clp.html#a57127186a8c3cfa2eca5a84de10d5461":[2,0,1,2,3,11]
 };
diff --git a/doc/html/navtreeindex4.js b/doc/html/navtreeindex4.js
index 4bd387859db278121b893fcb884919188094920c..778fbc67b8e9c172705f65947d3441633a6433d7 100644
--- a/doc/html/navtreeindex4.js
+++ b/doc/html/navtreeindex4.js
@@ -1,32 +1,26 @@
 var NAVTREEINDEX4 =
 {
-"classmaingo_1_1ubp_1_1_ubp_clp.html#a10029afd1388a285d464b25181c00d3e":[2,0,1,2,3,10],
-"classmaingo_1_1ubp_1_1_ubp_clp.html#a3073de5a0fbe6fa5632a9090f1b056ef":[2,0,1,2,3,5],
-"classmaingo_1_1ubp_1_1_ubp_clp.html#a377da5ab602aaf0ad0d53ea444dce938":[2,0,1,2,3,6],
-"classmaingo_1_1ubp_1_1_ubp_clp.html#a52188ee77b0ac7ba4bf8215d8fac556e":[2,0,1,2,3,7],
-"classmaingo_1_1ubp_1_1_ubp_clp.html#a57127186a8c3cfa2eca5a84de10d5461":[2,0,1,2,3,11],
 "classmaingo_1_1ubp_1_1_ubp_clp.html#ab24d1e766d5bbc32fdaab11dbdd05ef2":[2,0,1,2,3,2],
 "classmaingo_1_1ubp_1_1_ubp_clp.html#ab3826bb88bc174edc3e8c38a1c6620b5":[2,0,1,2,3,9],
-"classmaingo_1_1ubp_1_1_ubp_clp.html#acffeaea83adc9f0e61e3998fab15cf6f":[2,0,1,2,3,0],
 "classmaingo_1_1ubp_1_1_ubp_clp.html#add6af506f65cb501373ca1c57e51b82c":[2,0,1,2,3,1],
 "classmaingo_1_1ubp_1_1_ubp_clp.html#ae2d176177a7821c5532fb229f04577c9":[2,0,1,2,3,4],
 "classmaingo_1_1ubp_1_1_ubp_cplex.html":[2,0,1,2,4],
 "classmaingo_1_1ubp_1_1_ubp_cplex.html#a080f171542c7ad6ffb84762238bdb816":[2,0,1,2,4,2],
-"classmaingo_1_1ubp_1_1_ubp_cplex.html#a151f2ced79870ee59b168cdcaaf34bff":[2,0,1,2,4,0],
 "classmaingo_1_1ubp_1_1_ubp_cplex.html#a224b13053d2fdcaff567757fc3b4316e":[2,0,1,2,4,4],
 "classmaingo_1_1ubp_1_1_ubp_cplex.html#a3028cd7ab01046cd3a1eec23a4db55a1":[2,0,1,2,4,8],
 "classmaingo_1_1ubp_1_1_ubp_cplex.html#a30c83b32af454645ccc8ad302377ce3f":[2,0,1,2,4,9],
 "classmaingo_1_1ubp_1_1_ubp_cplex.html#a6ddfc769b26441e3712ec56c5dcec7ba":[2,0,1,2,4,3],
 "classmaingo_1_1ubp_1_1_ubp_cplex.html#a94390df2712be8d4a309c9cdf42e705b":[2,0,1,2,4,6],
 "classmaingo_1_1ubp_1_1_ubp_cplex.html#a944ac3f482c2db599bd0c0cfdd76b868":[2,0,1,2,4,5],
+"classmaingo_1_1ubp_1_1_ubp_cplex.html#aa7a3ededf743a2cde154b5c267cf26d6":[2,0,1,2,4,0],
 "classmaingo_1_1ubp_1_1_ubp_cplex.html#ab2d527e6892c4ecadcb4a1a1f4511305":[2,0,1,2,4,7],
 "classmaingo_1_1ubp_1_1_ubp_cplex.html#ada023ef9d9bd4904e5e47e2181d38ab9":[2,0,1,2,4,1],
 "classmaingo_1_1ubp_1_1_ubp_ipopt.html":[2,0,1,2,5],
 "classmaingo_1_1ubp_1_1_ubp_ipopt.html#a1d566d058e7134be0305fed79d25be08":[2,0,1,2,5,2],
 "classmaingo_1_1ubp_1_1_ubp_ipopt.html#a1ebf4ace6206cb615accec7819a7b45a":[2,0,1,2,5,5],
-"classmaingo_1_1ubp_1_1_ubp_ipopt.html#a3b4a6331fd9876205ae349bdc95d06a4":[2,0,1,2,5,0],
 "classmaingo_1_1ubp_1_1_ubp_ipopt.html#a452dbba117fa1b3edd676f31c04258fe":[2,0,1,2,5,1],
 "classmaingo_1_1ubp_1_1_ubp_ipopt.html#a6a7bbb8629378389e64679418ffab50d":[2,0,1,2,5,4],
+"classmaingo_1_1ubp_1_1_ubp_ipopt.html#acd84ac4a7669c214242419ee880426fa":[2,0,1,2,5,0],
 "classmaingo_1_1ubp_1_1_ubp_ipopt.html#ad12c30c11fb6ef915670ffd51bf5f860":[2,0,1,2,5,3],
 "classmaingo_1_1ubp_1_1_ubp_knitro.html":[2,0,1,2,6],
 "classmaingo_1_1ubp_1_1_ubp_knitro.html#a0ebc116dd3ddaea32fb9330ee725295d":[2,0,1,2,6,1],
@@ -34,20 +28,19 @@ var NAVTREEINDEX4 =
 "classmaingo_1_1ubp_1_1_ubp_knitro.html#a59c576b8dd4282ea8c9f64f77623625f":[2,0,1,2,6,6],
 "classmaingo_1_1ubp_1_1_ubp_knitro.html#a76b1d3d5ca75b9d7b12015482fae7aa5":[2,0,1,2,6,2],
 "classmaingo_1_1ubp_1_1_ubp_knitro.html#a7ed80bebed09716ca40e07cee2722e4b":[2,0,1,2,6,7],
-"classmaingo_1_1ubp_1_1_ubp_knitro.html#ac916b5455e5ae20c5d9dd9a4006d0482":[2,0,1,2,6,0],
+"classmaingo_1_1ubp_1_1_ubp_knitro.html#a94a323841bca8d54129aa85fad4ce06c":[2,0,1,2,6,0],
 "classmaingo_1_1ubp_1_1_ubp_knitro.html#ad05c1f048da57b4af99fd5cd8b7c2cdb":[2,0,1,2,6,4],
 "classmaingo_1_1ubp_1_1_ubp_knitro.html#ae54f2f80561a3f03efbdb107b03d93eb":[2,0,1,2,6,5],
 "classmaingo_1_1ubp_1_1_ubp_n_lopt.html":[2,0,1,2,7],
 "classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a07be0f105dd3dbd86e6e91ccea83ce20":[2,0,1,2,7,2],
 "classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a5c239ec752eb75467d3776db53ff6ea7":[2,0,1,2,7,4],
-"classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a84e83af5033d99a79f1fd1d65f6b8b7f":[2,0,1,2,7,0],
 "classmaingo_1_1ubp_1_1_ubp_n_lopt.html#aa41c03634188b349a77fa5b33f987bd4":[2,0,1,2,7,1],
 "classmaingo_1_1ubp_1_1_ubp_n_lopt.html#ab7265ba84cd1b3d99c4e6d79daede08a":[2,0,1,2,7,5],
 "classmaingo_1_1ubp_1_1_ubp_n_lopt.html#ac2fe06860e2c920acf0b7f8304a99d54":[2,0,1,2,7,3],
+"classmaingo_1_1ubp_1_1_ubp_n_lopt.html#ae5c7ea9072ed95c5521916c756be3f0f":[2,0,1,2,7,0],
 "classmaingo_1_1ubp_1_1_upper_bounding_solver.html":[2,0,1,2,10],
 "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a04b6d46cf762e76a70611b9c9e54f71d":[2,0,1,2,10,11],
 "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a05f3d0a48a4c425ac11035a76426a184":[2,0,1,2,10,30],
-"classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1b4e1d2ce3d3413c1c5d509d13ec752e":[2,0,1,2,10,23],
 "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1c0659fdddc86e0528771ce8dd977f7e":[2,0,1,2,10,4],
 "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395":[2,0,1,2,10,0],
 "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395a8c993825a2321788812ac88fa8666a34":[2,0,1,2,10,0,1],
@@ -57,136 +50,136 @@ var NAVTREEINDEX4 =
 "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2f7fe42bb11f791fc34c33f60ac057fc":[2,0,1,2,10,5],
 "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a42b77e82598864f05222b9dc415945a9":[2,0,1,2,10,27],
 "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4ac108083fde6741e77d7c0b231bd610":[2,0,1,2,10,18],
+"classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4d7aaa4de8e2e6633b9064568961bc72":[2,0,1,2,10,23],
 "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a5310f4bd87280f6785ddac2260f034d0":[2,0,1,2,10,31],
 "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a566cab6bf72ec7da46a8e42d63378d02":[2,0,1,2,10,12],
+"classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a633d6c072f7388ade44ccebf3fa3c935":[2,0,1,2,10,19],
 "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a826673302ff22c211249640a0e924515":[2,0,1,2,10,24],
 "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a88f6a1e58a7274d44f6c9513581a6f4b":[2,0,1,2,10,13],
 "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a8e0390a65c638a359c0fd4aca45898b6":[2,0,1,2,10,6],
 "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a9c95129dc31203f436aec2d4e71e0dc2":[2,0,1,2,10,29],
-"classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a9ce3a82556ab016cdff94f032b19d6af":[2,0,1,2,10,1],
 "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa17ca0c5dbf33219148dc2fff3446357":[2,0,1,2,10,2],
 "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa40b7dc4622a4ffed899195174f3fda7":[2,0,1,2,10,8],
 "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa61f6cbf0485f37b2ad7a73b18aa6521":[2,0,1,2,10,14],
-"classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aae0c39f4b14cfb8a3c70a57b49f15e67":[2,0,1,2,10,19],
-"classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab436cb85b75f92ef42ca46adb87b83c0":[2,0,1,2,10,22],
+"classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab76a699684d09100c63ec4ddcaa10456":[2,0,1,2,10,22],
 "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab774cf6400badf5cb3675dac2daf27bd":[2,0,1,2,10,26],
 "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac1124e613e46e59fb88415116e08e326":[2,0,1,2,10,9],
 "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac291c925f9007b90cbf09497a93d8239":[2,0,1,2,10,16],
 "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac626a7b38249edde44afdbf721df0c79":[2,0,1,2,10,21],
 "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac9710c21359f1811dbdee779247fa701":[2,0,1,2,10,20],
+"classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ad9c2c0ae5e137605da0f9588df694a52":[2,0,1,2,10,1],
 "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ae20cc817f6ec888d8a9e7a9723cfe0b7":[2,0,1,2,10,7],
 "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ae75dea5b3107d53e3ffec3b0c18d7749":[2,0,1,2,10,3],
 "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#af057bf3a184ca83102a6237bb83dd261":[2,0,1,2,10,15],
 "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#afa9dca36d7987121ddc0327e62dfdcf2":[2,0,1,2,10,17],
 "classmaingo_1_1ubp_1_1_upper_bounding_solver.html#afce03a4f45462c5afb5af2146ddd7e78":[2,0,1,2,10,10],
-"constraint_8h.html":[3,0,1,3],
-"constraint_8h.html#a1fb378d6003f3c76e1674673a2e64cff":[3,0,1,3,4],
-"constraint_8h.html#a1fb378d6003f3c76e1674673a2e64cffa19ac253da82c7f431e902e1be9cc236d":[3,0,1,3,4,0],
-"constraint_8h.html#a1fb378d6003f3c76e1674673a2e64cffa2a2d5953a4091c4c7a47698a5a5bbfaa":[3,0,1,3,4,1],
-"constraint_8h.html#a1fb378d6003f3c76e1674673a2e64cffa3f418251b7df4d1f7abae45ec2c7120e":[3,0,1,3,4,6],
-"constraint_8h.html#a1fb378d6003f3c76e1674673a2e64cffa58dc28c036216f9a14e602b625c1b500":[3,0,1,3,4,7],
-"constraint_8h.html#a1fb378d6003f3c76e1674673a2e64cffa5f02b52b5b416052d5545294adb30288":[3,0,1,3,4,2],
-"constraint_8h.html#a1fb378d6003f3c76e1674673a2e64cffab931d88f14bc394968ab9e43265b58db":[3,0,1,3,4,4],
-"constraint_8h.html#a1fb378d6003f3c76e1674673a2e64cffabcfee51ddb6ed7d3c74ba9aa6f11fc96":[3,0,1,3,4,3],
-"constraint_8h.html#a1fb378d6003f3c76e1674673a2e64cffacaec66b04e8cec2efaf72c40f4d4d60d":[3,0,1,3,4,5],
-"constraint_8h.html#a1fb378d6003f3c76e1674673a2e64cffaf84cd6db07e8c7447cb7d15446557031":[3,0,1,3,4,8],
-"constraint_8h.html#a5adb287f73598fd8ec0928c8f3d127a5":[3,0,1,3,1],
-"constraint_8h.html#a5adb287f73598fd8ec0928c8f3d127a5a409b78c0dd509a926ef1b3440410a04b":[3,0,1,3,1,0],
-"constraint_8h.html#a5adb287f73598fd8ec0928c8f3d127a5a48e648e05429a27358521dd9b1ee5cb0":[3,0,1,3,1,1],
-"constraint_8h.html#a5adb287f73598fd8ec0928c8f3d127a5a4a5f73483bf025f9060c8ae1c39f2e8a":[3,0,1,3,1,2],
-"constraint_8h.html#ab2f406d1eb0027c320d3705f954e4592":[3,0,1,3,2],
-"constraint_8h.html#ab2f406d1eb0027c320d3705f954e4592a40c20210d66888659250ea4a9471677c":[3,0,1,3,2,3],
-"constraint_8h.html#ab2f406d1eb0027c320d3705f954e4592a548bd51fa74da094234483596a6b0933":[3,0,1,3,2,1],
-"constraint_8h.html#ab2f406d1eb0027c320d3705f954e4592aa25e5c3c1d625e9188448d1e61afe4e5":[3,0,1,3,2,4],
-"constraint_8h.html#ab2f406d1eb0027c320d3705f954e4592aaee4ec0f6a2b7adb51f538e7b9c1cf5a":[3,0,1,3,2,2],
-"constraint_8h.html#ab2f406d1eb0027c320d3705f954e4592acfee03e4e055614895c428dd9f4902a6":[3,0,1,3,2,0],
-"constraint_8h.html#ab2f406d1eb0027c320d3705f954e4592ad851e0122baa7113a1beca227d21b8b1":[3,0,1,3,2,5],
-"constraint_8h.html#ab2f406d1eb0027c320d3705f954e4592ae5fc3c0c5d379b66525987200d425036":[3,0,1,3,2,6],
-"constraint_8h.html#ad9c47002281f89b9efdfaa30e672c556":[3,0,1,3,3],
-"constraint_8h.html#ad9c47002281f89b9efdfaa30e672c556a3d1967d1d7970d402f5e5ab65b6506f3":[3,0,1,3,3,0],
-"constraint_8h.html#ad9c47002281f89b9efdfaa30e672c556a776a6ea773b9bf563eec732a7c59ce78":[3,0,1,3,3,2],
-"constraint_8h.html#ad9c47002281f89b9efdfaa30e672c556a8755ac3d60d24f246f2afd6ba8ab59d9":[3,0,1,3,3,1],
-"constraint_8h.html#af7f79f3a80779720285a182fb0fd4ece":[3,0,1,3,5],
-"constraint_8h.html#af7f79f3a80779720285a182fb0fd4ecea0bfa87ed0fa2108171fba8ee039617da":[3,0,1,3,5,3],
-"constraint_8h.html#af7f79f3a80779720285a182fb0fd4ecea0d7b1cf896f4e2740742df1df01bd4e6":[3,0,1,3,5,4],
-"constraint_8h.html#af7f79f3a80779720285a182fb0fd4ecea2984f944d36bfe0b9e7fd8b872ab3b7a":[3,0,1,3,5,2],
-"constraint_8h.html#af7f79f3a80779720285a182fb0fd4ecea42d41aaf63d0c23502e376644eee9488":[3,0,1,3,5,1],
-"constraint_8h.html#af7f79f3a80779720285a182fb0fd4ecea6ef20a631ab5ecf8ea394e3fac0da92b":[3,0,1,3,5,0],
-"constraint_8h.html#af7f79f3a80779720285a182fb0fd4eceaa4af8d9b8ea0ae7f958dc3197fa5c932":[3,0,1,3,5,5],
-"constraint_8h.html#af7f79f3a80779720285a182fb0fd4eceae2416015e6faafb64141704d46b3336d":[3,0,1,3,5,6],
-"constraint_8h_source.html":[3,0,1,3],
+"constraint_8h.html":[3,0,1,2],
+"constraint_8h.html#a1fb378d6003f3c76e1674673a2e64cff":[3,0,1,2,4],
+"constraint_8h.html#a1fb378d6003f3c76e1674673a2e64cffa19ac253da82c7f431e902e1be9cc236d":[3,0,1,2,4,0],
+"constraint_8h.html#a1fb378d6003f3c76e1674673a2e64cffa2a2d5953a4091c4c7a47698a5a5bbfaa":[3,0,1,2,4,1],
+"constraint_8h.html#a1fb378d6003f3c76e1674673a2e64cffa3f418251b7df4d1f7abae45ec2c7120e":[3,0,1,2,4,6],
+"constraint_8h.html#a1fb378d6003f3c76e1674673a2e64cffa58dc28c036216f9a14e602b625c1b500":[3,0,1,2,4,7],
+"constraint_8h.html#a1fb378d6003f3c76e1674673a2e64cffa5f02b52b5b416052d5545294adb30288":[3,0,1,2,4,2],
+"constraint_8h.html#a1fb378d6003f3c76e1674673a2e64cffab931d88f14bc394968ab9e43265b58db":[3,0,1,2,4,4],
+"constraint_8h.html#a1fb378d6003f3c76e1674673a2e64cffabcfee51ddb6ed7d3c74ba9aa6f11fc96":[3,0,1,2,4,3],
+"constraint_8h.html#a1fb378d6003f3c76e1674673a2e64cffacaec66b04e8cec2efaf72c40f4d4d60d":[3,0,1,2,4,5],
+"constraint_8h.html#a1fb378d6003f3c76e1674673a2e64cffaf84cd6db07e8c7447cb7d15446557031":[3,0,1,2,4,8],
+"constraint_8h.html#a5adb287f73598fd8ec0928c8f3d127a5":[3,0,1,2,1],
+"constraint_8h.html#a5adb287f73598fd8ec0928c8f3d127a5a409b78c0dd509a926ef1b3440410a04b":[3,0,1,2,1,0],
+"constraint_8h.html#a5adb287f73598fd8ec0928c8f3d127a5a48e648e05429a27358521dd9b1ee5cb0":[3,0,1,2,1,1],
+"constraint_8h.html#a5adb287f73598fd8ec0928c8f3d127a5a4a5f73483bf025f9060c8ae1c39f2e8a":[3,0,1,2,1,2],
+"constraint_8h.html#ab2f406d1eb0027c320d3705f954e4592":[3,0,1,2,2],
+"constraint_8h.html#ab2f406d1eb0027c320d3705f954e4592a40c20210d66888659250ea4a9471677c":[3,0,1,2,2,3],
+"constraint_8h.html#ab2f406d1eb0027c320d3705f954e4592a548bd51fa74da094234483596a6b0933":[3,0,1,2,2,1],
+"constraint_8h.html#ab2f406d1eb0027c320d3705f954e4592aa25e5c3c1d625e9188448d1e61afe4e5":[3,0,1,2,2,4],
+"constraint_8h.html#ab2f406d1eb0027c320d3705f954e4592aaee4ec0f6a2b7adb51f538e7b9c1cf5a":[3,0,1,2,2,2],
+"constraint_8h.html#ab2f406d1eb0027c320d3705f954e4592acfee03e4e055614895c428dd9f4902a6":[3,0,1,2,2,0],
+"constraint_8h.html#ab2f406d1eb0027c320d3705f954e4592ad851e0122baa7113a1beca227d21b8b1":[3,0,1,2,2,5],
+"constraint_8h.html#ab2f406d1eb0027c320d3705f954e4592ae5fc3c0c5d379b66525987200d425036":[3,0,1,2,2,6],
+"constraint_8h.html#ad9c47002281f89b9efdfaa30e672c556":[3,0,1,2,3],
+"constraint_8h.html#ad9c47002281f89b9efdfaa30e672c556a3d1967d1d7970d402f5e5ab65b6506f3":[3,0,1,2,3,0],
+"constraint_8h.html#ad9c47002281f89b9efdfaa30e672c556a776a6ea773b9bf563eec732a7c59ce78":[3,0,1,2,3,2],
+"constraint_8h.html#ad9c47002281f89b9efdfaa30e672c556a8755ac3d60d24f246f2afd6ba8ab59d9":[3,0,1,2,3,1],
+"constraint_8h.html#af7f79f3a80779720285a182fb0fd4ece":[3,0,1,2,5],
+"constraint_8h.html#af7f79f3a80779720285a182fb0fd4ecea0bfa87ed0fa2108171fba8ee039617da":[3,0,1,2,5,3],
+"constraint_8h.html#af7f79f3a80779720285a182fb0fd4ecea0d7b1cf896f4e2740742df1df01bd4e6":[3,0,1,2,5,4],
+"constraint_8h.html#af7f79f3a80779720285a182fb0fd4ecea2984f944d36bfe0b9e7fd8b872ab3b7a":[3,0,1,2,5,2],
+"constraint_8h.html#af7f79f3a80779720285a182fb0fd4ecea42d41aaf63d0c23502e376644eee9488":[3,0,1,2,5,1],
+"constraint_8h.html#af7f79f3a80779720285a182fb0fd4ecea6ef20a631ab5ecf8ea394e3fac0da92b":[3,0,1,2,5,0],
+"constraint_8h.html#af7f79f3a80779720285a182fb0fd4eceaa4af8d9b8ea0ae7f958dc3197fa5c932":[3,0,1,2,5,5],
+"constraint_8h.html#af7f79f3a80779720285a182fb0fd4eceae2416015e6faafb64141704d46b3336d":[3,0,1,2,5,6],
+"constraint_8h_source.html":[3,0,1,2],
 "dir_47e169a4fe08058254fbf7964fa7bfb6.html":[3,0,0,0],
 "dir_637fe8785ffc83488bdb33305770812c.html":[3,0,0,0,0],
-"dir_68267d1309a1af8e8297ef4c3efbcdba.html":[3,0,2],
+"dir_68267d1309a1af8e8297ef4c3efbcdba.html":[3,0,3],
 "dir_bfccd401955b95cf8c75461437045ac0.html":[3,0,1],
 "dir_e05b43b1ebfd1f958e3d8d3f7545ccd7.html":[3,0,0,0,1],
 "dir_ede40f663fdbaac4622f0a2d30ba279b.html":[3,0,0],
-"evaluation_container_8h.html":[3,0,1,4],
-"evaluation_container_8h_source.html":[3,0,1,4],
-"exceptions_8h.html":[3,0,1,5],
-"exceptions_8h_source.html":[3,0,1,5],
+"dir_fb6b81e558fe2a09cdb3602de97a65f7.html":[3,0,2],
+"evaluation_container_8h.html":[3,0,1,3],
+"evaluation_container_8h_source.html":[3,0,1,3],
 "faq.html":[0,9],
 "faq.html#faq1":[0,9,0],
 "faq.html#faq2":[0,9,1],
 "faq.html#faq3":[0,9,2],
-"faq.html#faq5":[0,9,2,0],
-"faq.html#faq6":[0,9,2,1],
-"faq.html#faq7":[0,9,2,2],
+"faq.html#faq6":[0,9,3],
+"faq.html#faq7":[0,9,4],
 "files.html":[3,0],
-"function_wrapper_8h.html":[3,0,1,6],
-"function_wrapper_8h.html#a0b6522fdf714c03e7a67785eb6cbaa6f":[3,0,1,6,49],
-"function_wrapper_8h.html#a120fa48b16571a4b235689aaa3aecb4a":[3,0,1,6,28],
-"function_wrapper_8h.html#a1250c885b8251f1cd8938e1c669b8dee":[3,0,1,6,40],
-"function_wrapper_8h.html#a194545da47bf162f208d599f4e460017":[3,0,1,6,45],
-"function_wrapper_8h.html#a1f9e28e1b6ad5ff2d6f6e4c33d6aaf24":[3,0,1,6,34],
-"function_wrapper_8h.html#a23169e33bacd55bca6e0d043b84495ac":[3,0,1,6,6],
-"function_wrapper_8h.html#a23279a80b1dddc9c6df1152f78c347ef":[3,0,1,6,20],
-"function_wrapper_8h.html#a29383bf7dba49ebb8215a2ae142bf950":[3,0,1,6,3],
-"function_wrapper_8h.html#a2c2f5640a480c80ee3b308e068fe7f94":[3,0,1,6,42],
-"function_wrapper_8h.html#a2c9a08d6e6cdfd34502b054cd40a541a":[3,0,1,6,48],
-"function_wrapper_8h.html#a307d5d824ec8da405242f672377a689b":[3,0,1,6,41],
-"function_wrapper_8h.html#a36ab810e8ae60a22ed95fe79e274e110":[3,0,1,6,1],
-"function_wrapper_8h.html#a393fac03606bafabb5ac516a21f8b82d":[3,0,1,6,11],
-"function_wrapper_8h.html#a3eb8125b56fd6ae41720d1bc3ebe56d3":[3,0,1,6,5],
-"function_wrapper_8h.html#a497e2d299632d879d274138f78275c98":[3,0,1,6,2],
-"function_wrapper_8h.html#a4b958aea1a60205b1399fd0686a36793":[3,0,1,6,7],
-"function_wrapper_8h.html#a56a48129859f32d4e6206982149421b2":[3,0,1,6,16],
-"function_wrapper_8h.html#a5a3858fb864d7372bea4eec87c99c2c7":[3,0,1,6,14],
-"function_wrapper_8h.html#a5b45be879181cb3eade9feaf28f79cea":[3,0,1,6,30],
-"function_wrapper_8h.html#a60722162735fd25cb427d126ab74e9f3":[3,0,1,6,24],
-"function_wrapper_8h.html#a62500f93eb2b51c22286f30417435a72":[3,0,1,6,4],
-"function_wrapper_8h.html#a63c9aad65173515a01c3312c4b53005d":[3,0,1,6,17],
-"function_wrapper_8h.html#a65b26fb0e0072635c113609dee611e6e":[3,0,1,6,43],
-"function_wrapper_8h.html#a72463c3ea36ac41383a73282c15e1fb0":[3,0,1,6,9],
-"function_wrapper_8h.html#a7b4403422eeebdd9b79d3a24b7d9f910":[3,0,1,6,39],
-"function_wrapper_8h.html#a7e4ad88c6f2169ac4f828fba0f522740":[3,0,1,6,29],
-"function_wrapper_8h.html#a8444819a1a18057def8ae553ea4b9e2f":[3,0,1,6,47],
-"function_wrapper_8h.html#a86b8d89d4aece6d081f111422079ea88":[3,0,1,6,44],
-"function_wrapper_8h.html#a8951a8260af6f4d7ebe65aae99e995fe":[3,0,1,6,32],
-"function_wrapper_8h.html#a8ba798e25eb57db7e41b5bafea7e001d":[3,0,1,6,0],
-"function_wrapper_8h.html#a8d1832b6e26bba0d76ead168b5260a77":[3,0,1,6,38],
-"function_wrapper_8h.html#a93ac82fac115e82cc84115d08e26a9d7":[3,0,1,6,19],
-"function_wrapper_8h.html#a9734f0bacf604d4cb1b8f75f285cec2b":[3,0,1,6,15],
-"function_wrapper_8h.html#a9a44539ac75362fa5edc574e56600b38":[3,0,1,6,21],
-"function_wrapper_8h.html#a9cf00a420deabe42b8124635e852af05":[3,0,1,6,18],
-"function_wrapper_8h.html#a9ed331d9b129728e9845de34796fc57c":[3,0,1,6,8],
-"function_wrapper_8h.html#aa3ab279e543c72aa1697767729714744":[3,0,1,6,22],
-"function_wrapper_8h.html#aa7e6848d015c9ed562813805a9af0efa":[3,0,1,6,10],
-"function_wrapper_8h.html#aaa57a91765e20865e492a9743cc0a892":[3,0,1,6,35],
-"function_wrapper_8h.html#ab37b968c39c60ec673af52218aa7ffa0":[3,0,1,6,46],
-"function_wrapper_8h.html#ab9fc36a1823201f93dca7b4ff6dc2e85":[3,0,1,6,12],
-"function_wrapper_8h.html#abee0b55ffe0c790ddd7d46cba79b19e8":[3,0,1,6,33],
-"function_wrapper_8h.html#ac4bb81cca694afc27f59eb307ac66616":[3,0,1,6,37],
-"function_wrapper_8h.html#acb14288e216211260fde8ff031a8deec":[3,0,1,6,13],
-"function_wrapper_8h.html#ad3d1dc943fd39eef8ee229ae74b6d9f3":[3,0,1,6,26],
-"function_wrapper_8h.html#ad44d270287c3d5c476ba3504e3e7fc84":[3,0,1,6,27],
-"function_wrapper_8h.html#aec8d022532775ee32b46fdf69bdda3f3":[3,0,1,6,36],
-"function_wrapper_8h.html#af7f639d12a57ad25c80a3e4a0a15def6":[3,0,1,6,31],
-"function_wrapper_8h.html#afab03d3ca78008087d0864bf50985edc":[3,0,1,6,23],
-"function_wrapper_8h.html#aff78d3d42f157cad660af05d00bd0112":[3,0,1,6,25],
-"function_wrapper_8h_source.html":[3,0,1,6],
-"functions.html":[2,3,0,0],
+"function_wrapper_8h.html":[3,0,1,4],
+"function_wrapper_8h.html#a0b6522fdf714c03e7a67785eb6cbaa6f":[3,0,1,4,49],
+"function_wrapper_8h.html#a120fa48b16571a4b235689aaa3aecb4a":[3,0,1,4,28],
+"function_wrapper_8h.html#a1250c885b8251f1cd8938e1c669b8dee":[3,0,1,4,40],
+"function_wrapper_8h.html#a194545da47bf162f208d599f4e460017":[3,0,1,4,45],
+"function_wrapper_8h.html#a1f9e28e1b6ad5ff2d6f6e4c33d6aaf24":[3,0,1,4,34],
+"function_wrapper_8h.html#a23169e33bacd55bca6e0d043b84495ac":[3,0,1,4,6],
+"function_wrapper_8h.html#a23279a80b1dddc9c6df1152f78c347ef":[3,0,1,4,20],
+"function_wrapper_8h.html#a29383bf7dba49ebb8215a2ae142bf950":[3,0,1,4,3],
+"function_wrapper_8h.html#a2c2f5640a480c80ee3b308e068fe7f94":[3,0,1,4,42],
+"function_wrapper_8h.html#a2c9a08d6e6cdfd34502b054cd40a541a":[3,0,1,4,48],
+"function_wrapper_8h.html#a307d5d824ec8da405242f672377a689b":[3,0,1,4,41],
+"function_wrapper_8h.html#a36ab810e8ae60a22ed95fe79e274e110":[3,0,1,4,1],
+"function_wrapper_8h.html#a393fac03606bafabb5ac516a21f8b82d":[3,0,1,4,11],
+"function_wrapper_8h.html#a3eb8125b56fd6ae41720d1bc3ebe56d3":[3,0,1,4,5],
+"function_wrapper_8h.html#a497e2d299632d879d274138f78275c98":[3,0,1,4,2],
+"function_wrapper_8h.html#a4b958aea1a60205b1399fd0686a36793":[3,0,1,4,7],
+"function_wrapper_8h.html#a56a48129859f32d4e6206982149421b2":[3,0,1,4,16],
+"function_wrapper_8h.html#a5a3858fb864d7372bea4eec87c99c2c7":[3,0,1,4,14],
+"function_wrapper_8h.html#a5b45be879181cb3eade9feaf28f79cea":[3,0,1,4,30],
+"function_wrapper_8h.html#a60722162735fd25cb427d126ab74e9f3":[3,0,1,4,24],
+"function_wrapper_8h.html#a62500f93eb2b51c22286f30417435a72":[3,0,1,4,4],
+"function_wrapper_8h.html#a63c9aad65173515a01c3312c4b53005d":[3,0,1,4,17],
+"function_wrapper_8h.html#a65b26fb0e0072635c113609dee611e6e":[3,0,1,4,43],
+"function_wrapper_8h.html#a72463c3ea36ac41383a73282c15e1fb0":[3,0,1,4,9],
+"function_wrapper_8h.html#a7b4403422eeebdd9b79d3a24b7d9f910":[3,0,1,4,39],
+"function_wrapper_8h.html#a7e4ad88c6f2169ac4f828fba0f522740":[3,0,1,4,29],
+"function_wrapper_8h.html#a8444819a1a18057def8ae553ea4b9e2f":[3,0,1,4,47],
+"function_wrapper_8h.html#a86b8d89d4aece6d081f111422079ea88":[3,0,1,4,44],
+"function_wrapper_8h.html#a8951a8260af6f4d7ebe65aae99e995fe":[3,0,1,4,32],
+"function_wrapper_8h.html#a8ba798e25eb57db7e41b5bafea7e001d":[3,0,1,4,0],
+"function_wrapper_8h.html#a8d1832b6e26bba0d76ead168b5260a77":[3,0,1,4,38],
+"function_wrapper_8h.html#a93ac82fac115e82cc84115d08e26a9d7":[3,0,1,4,19],
+"function_wrapper_8h.html#a9734f0bacf604d4cb1b8f75f285cec2b":[3,0,1,4,15],
+"function_wrapper_8h.html#a9a44539ac75362fa5edc574e56600b38":[3,0,1,4,21],
+"function_wrapper_8h.html#a9cf00a420deabe42b8124635e852af05":[3,0,1,4,18],
+"function_wrapper_8h.html#a9ed331d9b129728e9845de34796fc57c":[3,0,1,4,8],
+"function_wrapper_8h.html#aa3ab279e543c72aa1697767729714744":[3,0,1,4,22],
+"function_wrapper_8h.html#aa7e6848d015c9ed562813805a9af0efa":[3,0,1,4,10],
+"function_wrapper_8h.html#aaa57a91765e20865e492a9743cc0a892":[3,0,1,4,35],
+"function_wrapper_8h.html#ab37b968c39c60ec673af52218aa7ffa0":[3,0,1,4,46],
+"function_wrapper_8h.html#ab9fc36a1823201f93dca7b4ff6dc2e85":[3,0,1,4,12],
+"function_wrapper_8h.html#abee0b55ffe0c790ddd7d46cba79b19e8":[3,0,1,4,33],
+"function_wrapper_8h.html#ac4bb81cca694afc27f59eb307ac66616":[3,0,1,4,37],
+"function_wrapper_8h.html#acb14288e216211260fde8ff031a8deec":[3,0,1,4,13],
+"function_wrapper_8h.html#ad3d1dc943fd39eef8ee229ae74b6d9f3":[3,0,1,4,26],
+"function_wrapper_8h.html#ad44d270287c3d5c476ba3504e3e7fc84":[3,0,1,4,27],
+"function_wrapper_8h.html#aec8d022532775ee32b46fdf69bdda3f3":[3,0,1,4,36],
+"function_wrapper_8h.html#af7f639d12a57ad25c80a3e4a0a15def6":[3,0,1,4,31],
+"function_wrapper_8h.html#afab03d3ca78008087d0864bf50985edc":[3,0,1,4,23],
+"function_wrapper_8h.html#aff78d3d42f157cad660af05d00bd0112":[3,0,1,4,25],
+"function_wrapper_8h_source.html":[3,0,1,4],
 "functions.html":[2,3,0],
+"functions.html":[2,3,0,0],
+"functions_0x7e.html":[2,3,0,26],
 "functions_a.html":[2,3,0,1],
 "functions_b.html":[2,3,0,2],
 "functions_c.html":[2,3,0,3],
@@ -197,6 +190,7 @@ var NAVTREEINDEX4 =
 "functions_f.html":[2,3,0,6],
 "functions_func.html":[2,3,1],
 "functions_func.html":[2,3,1,0],
+"functions_func_0x7e.html":[2,3,1,24],
 "functions_func_a.html":[2,3,1,1],
 "functions_func_b.html":[2,3,1,2],
 "functions_func_c.html":[2,3,1,3],
@@ -220,7 +214,6 @@ var NAVTREEINDEX4 =
 "functions_func_w.html":[2,3,1,21],
 "functions_func_x.html":[2,3,1,22],
 "functions_func_z.html":[2,3,1,23],
-"functions_func_~.html":[2,3,1,24],
 "functions_g.html":[2,3,0,7],
 "functions_h.html":[2,3,0,8],
 "functions_i.html":[2,3,0,9],
@@ -239,8 +232,8 @@ var NAVTREEINDEX4 =
 "functions_type.html":[2,3,3],
 "functions_u.html":[2,3,0,21],
 "functions_v.html":[2,3,0,22],
-"functions_vars.html":[2,3,2,0],
 "functions_vars.html":[2,3,2],
+"functions_vars.html":[2,3,2,0],
 "functions_vars_a.html":[2,3,2,1],
 "functions_vars_b.html":[2,3,2,2],
 "functions_vars_c.html":[2,3,2,3],
@@ -249,5 +242,12 @@ var NAVTREEINDEX4 =
 "functions_vars_f.html":[2,3,2,6],
 "functions_vars_h.html":[2,3,2,7],
 "functions_vars_i.html":[2,3,2,8],
-"functions_vars_j.html":[2,3,2,9]
+"functions_vars_j.html":[2,3,2,9],
+"functions_vars_l.html":[2,3,2,10],
+"functions_vars_m.html":[2,3,2,11],
+"functions_vars_n.html":[2,3,2,12],
+"functions_vars_o.html":[2,3,2,13],
+"functions_vars_p.html":[2,3,2,14],
+"functions_vars_r.html":[2,3,2,15],
+"functions_vars_s.html":[2,3,2,16]
 };
diff --git a/doc/html/navtreeindex5.js b/doc/html/navtreeindex5.js
index c2ae53dacef938908310b86404a94dd5ca3e930a..a544df2a2d64aabe32330af5b7e09b1def988d51 100644
--- a/doc/html/navtreeindex5.js
+++ b/doc/html/navtreeindex5.js
@@ -1,12 +1,5 @@
 var NAVTREEINDEX5 =
 {
-"functions_vars_l.html":[2,3,2,10],
-"functions_vars_m.html":[2,3,2,11],
-"functions_vars_n.html":[2,3,2,12],
-"functions_vars_o.html":[2,3,2,13],
-"functions_vars_p.html":[2,3,2,14],
-"functions_vars_r.html":[2,3,2,15],
-"functions_vars_s.html":[2,3,2,16],
 "functions_vars_t.html":[2,3,2,17],
 "functions_vars_u.html":[2,3,2,18],
 "functions_vars_v.html":[2,3,2,19],
@@ -14,155 +7,155 @@ var NAVTREEINDEX5 =
 "functions_w.html":[2,3,0,23],
 "functions_x.html":[2,3,0,24],
 "functions_z.html":[2,3,0,25],
-"functions_~.html":[2,3,0,26],
-"get_time_8cpp.html":[3,0,2,4],
-"get_time_8h.html":[3,0,1,7],
-"get_time_8h.html#a9b8e20d235728ad79d9d23746aadaf15":[3,0,1,7,1],
-"get_time_8h.html#aac4ba5374ae7ff2bdca5126fd30b7f55":[3,0,1,7,0],
-"get_time_8h_source.html":[3,0,1,7],
+"get_time_8cpp.html":[3,0,3,3],
+"get_time_8h.html":[3,0,1,5],
+"get_time_8h.html#a9b8e20d235728ad79d9d23746aadaf15":[3,0,1,5,1],
+"get_time_8h.html#aac4ba5374ae7ff2bdca5126fd30b7f55":[3,0,1,5,0],
+"get_time_8h_source.html":[3,0,1,5],
 "globals.html":[3,1,0],
 "globals_defs.html":[3,1,3],
 "globals_func.html":[3,1,1],
 "globals_type.html":[3,1,2],
 "hierarchy.html":[2,2],
-"index.html":[],
 "index.html":[0],
+"index.html":[],
 "index.html#MeLOn_examples":[0,0,1],
-"index.html#TOC":[0,0,2],
+"index.html#TOC":[0,0,3],
+"index.html#cite":[0,0,2],
 "index.html#examples":[0,0,0],
 "index.html#intro_sec":[0,0],
 "install.html":[0,1],
 "install.html#cmake":[0,1,2],
 "install.html#cmake_linux_os":[0,1,2,1],
 "install.html#cmake_win":[0,1,2,0],
-"install.html#executing_maingo":[0,1,2,2],
+"install.html#executing_maingo":[0,1,3],
 "install.html#get_maingo":[0,1,0],
 "install.html#req_software":[0,1,1],
 "install.html#update_maingo":[0,1,0,0],
-"interval_library_8h.html":[3,0,1,8],
-"interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034":[3,0,1,8,1],
-"interval_library_8h.html#a719e28aa7350b1ab0efe53725d78a54f":[3,0,1,8,0],
-"interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964":[3,0,1,8,2],
-"interval_library_8h_source.html":[3,0,1,8],
-"ipopt_problem_8cpp.html":[3,0,2,5],
-"ipopt_problem_8h.html":[3,0,1,9],
-"ipopt_problem_8h.html#ae8322fb214ef7a74414e3d7f0465e6d9":[3,0,1,9,1],
-"ipopt_problem_8h_source.html":[3,0,1,9],
-"knitro_problem_8cpp.html":[3,0,2,6],
-"knitro_problem_8h.html":[3,0,1,10],
-"knitro_problem_8h_source.html":[3,0,1,10],
-"lbp_8cpp.html":[3,0,2,7],
-"lbp_8h.html":[3,0,1,11],
-"lbp_8h.html#af2ff1a689d340482f4575c0507b4fa56":[3,0,1,11,2],
-"lbp_8h_source.html":[3,0,1,11],
-"lbp_clp_8cpp.html":[3,0,2,8],
-"lbp_clp_8h.html":[3,0,1,12],
-"lbp_clp_8h_source.html":[3,0,1,12],
-"lbp_cplex_8cpp.html":[3,0,2,9],
-"lbp_cplex_8h.html":[3,0,1,13],
-"lbp_cplex_8h_source.html":[3,0,1,13],
-"lbp_dag_obj_8cpp.html":[3,0,2,10],
-"lbp_dag_obj_8h.html":[3,0,1,14],
-"lbp_dag_obj_8h_source.html":[3,0,1,14],
-"lbp_factory_8cpp.html":[3,0,2,11],
-"lbp_interval_8cpp.html":[3,0,2,12],
-"lbp_interval_8h.html":[3,0,1,15],
-"lbp_interval_8h_source.html":[3,0,1,15],
-"lbp_linearization_strats_8cpp.html":[3,0,2,13],
-"logger_8cpp.html":[3,0,2,14],
-"logger_8h.html":[3,0,1,16],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6":[3,0,1,16,1],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a02538278559c2ce2f2fa3509e2cb1ee0":[3,0,1,16,1,21],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a09a491a6e7f617cd50a7060c552cce4e":[3,0,1,16,1,24],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a0df2d001081c4bd3b1d9c1cb9101d648":[3,0,1,16,1,33],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a11988bdff0ef3a044e9e9991f41a083b":[3,0,1,16,1,30],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a12187f49acc3a7cd011f182db558c7da":[3,0,1,16,1,7],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a134280d9eb35c390ef60be88fc3738fe":[3,0,1,16,1,8],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a17042c71f65219621bd0df75e80122f4":[3,0,1,16,1,34],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a20e6a32ee584c3187610f95ea83e1354":[3,0,1,16,1,49],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a233937fd6abb242c2de985af49b0e189":[3,0,1,16,1,9],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a266d2a23dde0c0404e4d261de460fd7f":[3,0,1,16,1,54],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a27fc1b36f1440ec849f01f0a173ec0ff":[3,0,1,16,1,12],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a3137a2b2e76434c605b08fb9ceb63f91":[3,0,1,16,1,23],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a44ea7382567c49c39d5ffbd545b0451c":[3,0,1,16,1,5],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a51822df94284dbf373c9dfd9cea52c96":[3,0,1,16,1,32],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a59bd95b4e1b3948bf713750d91992bb6":[3,0,1,16,1,44],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a5b17de1dc9ac64cce8a5bacab3dc8f5c":[3,0,1,16,1,48],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a5c772c254a5883d4c978284aa125c432":[3,0,1,16,1,52],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a5d25a3bfa50688065e53fbdcf97bcde6":[3,0,1,16,1,1],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a5e89e61d1878cd8ea10a285fc8d32425":[3,0,1,16,1,2],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a60152ee26df4e219f935ef6dd5a10e43":[3,0,1,16,1,35],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a628b6ac17d71d1b9df088ef94f8352f4":[3,0,1,16,1,0],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a6717bbec3198ea15d4f818af79374f09":[3,0,1,16,1,46],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a673f913685c284a0effb25228a504c66":[3,0,1,16,1,3],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a67dd1fb20241b26b7ac93714b8b0aae1":[3,0,1,16,1,47],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a6c9981b7a50dafa4510ae5a161f715cd":[3,0,1,16,1,27],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a6d522f8c5fdacf5e00e987fc6f49727a":[3,0,1,16,1,36],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a70b90d0f834b991c2bdba8a75d240769":[3,0,1,16,1,53],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a71bd48756db5177b75b58c18c293de76":[3,0,1,16,1,22],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a77dddf14689e6d132028adfd53e48d7d":[3,0,1,16,1,11],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a7b55f5d88bcf0f46039de838e04d1732":[3,0,1,16,1,29],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a7e7298426588825f3e948fe1e89527d9":[3,0,1,16,1,45],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a8694b1f3b18e7fc861df9d94b5aced1e":[3,0,1,16,1,38],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a89f8c3fb4d69e351baae115325a9e67f":[3,0,1,16,1,26],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a8cdec043d63c92ac7a4aaf7be4598f62":[3,0,1,16,1,42],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6aa6aeef7e9a764d0d7aa0ce51bccf3fd0":[3,0,1,16,1,40],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6aa6b69e8c1aedfe695600afb72576f450":[3,0,1,16,1,31],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6aa871804ddb83a6d0f59637e3ff59c790":[3,0,1,16,1,28],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6aabadb050f3c17bb4bf6ec8d949e9b036":[3,0,1,16,1,43],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6aaed1ec51d45446a3609dff1a0551116d":[3,0,1,16,1,51],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6ab94236640934ada9c055a50cc95c553e":[3,0,1,16,1,17],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6abf15c9e7a4446ee00cf506841ad82431":[3,0,1,16,1,6],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6ac9045c8153524432b9b2e764104146c9":[3,0,1,16,1,10],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6acaa3429ee948f690dc11c72c2df7bd26":[3,0,1,16,1,14],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6ad208395baa4232a0d2e525d3ae4246cc":[3,0,1,16,1,50],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6ad3c0e778161ba84f50725b2f95a71173":[3,0,1,16,1,39],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6add9546d244ac8e1fff4c88197f7484c6":[3,0,1,16,1,16],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6ae06499c8dac054bf0e260388982591e2":[3,0,1,16,1,18],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6ae4d7bcb01c294a5428bbea31972573ec":[3,0,1,16,1,15],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6ae7201e0fb1f4ad05d018c6ecab300ce4":[3,0,1,16,1,37],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6ae7c7534e21e3333500fa3f6a834587c8":[3,0,1,16,1,25],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6af57f0eb60e347a76dc189ac87eee0e33":[3,0,1,16,1,4],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6af81a6ea821fd200739e5e21c88f5ce20":[3,0,1,16,1,13],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6af9b9065671390aaf67ee608acde5a29c":[3,0,1,16,1,20],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6afce3b85b57cf0619c91b21fc7f85d25f":[3,0,1,16,1,41],
-"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6aff3c4437dc0be83ba5de7ed23ce39018":[3,0,1,16,1,19],
-"logger_8h_source.html":[3,0,1,16],
+"interval_library_8h.html":[3,0,1,6],
+"interval_library_8h.html#a57d32400333d3f6211554cbc6b30c034":[3,0,1,6,1],
+"interval_library_8h.html#a752577663acb2d105778a51e93452c1a":[3,0,1,6,0],
+"interval_library_8h.html#addaf9e7d3c4319861d4942fc13f11964":[3,0,1,6,2],
+"interval_library_8h_source.html":[3,0,1,6],
+"ipopt_problem_8cpp.html":[3,0,3,4],
+"ipopt_problem_8h.html":[3,0,1,7],
+"ipopt_problem_8h.html#ae8322fb214ef7a74414e3d7f0465e6d9":[3,0,1,7,1],
+"ipopt_problem_8h_source.html":[3,0,1,7],
+"knitro_problem_8cpp.html":[3,0,3,5],
+"knitro_problem_8h.html":[3,0,1,8],
+"knitro_problem_8h_source.html":[3,0,1,8],
+"lbp_8cpp.html":[3,0,3,6],
+"lbp_8h.html":[3,0,1,9],
+"lbp_8h.html#aa50d84ff66f4ea911a333eb047a8b6ea":[3,0,1,9,3],
+"lbp_8h.html#ad19f1469072a948e0678836725b1d3e8":[3,0,1,9,2],
+"lbp_8h.html#ad19f1469072a948e0678836725b1d3e8a207bbc0e97b4a6f7598b447f8b8c8b89":[3,0,1,9,2,1],
+"lbp_8h.html#ad19f1469072a948e0678836725b1d3e8a739b073ddf68d60146dfb7b8f3b24c0c":[3,0,1,9,2,0],
+"lbp_8h_source.html":[3,0,1,9],
+"lbp_clp_8cpp.html":[3,0,3,7],
+"lbp_clp_8h.html":[3,0,1,10],
+"lbp_clp_8h_source.html":[3,0,1,10],
+"lbp_cplex_8cpp.html":[3,0,3,8],
+"lbp_cplex_8h.html":[3,0,1,11],
+"lbp_cplex_8h_source.html":[3,0,1,11],
+"lbp_dag_obj_8cpp.html":[3,0,3,9],
+"lbp_dag_obj_8h.html":[3,0,1,12],
+"lbp_dag_obj_8h_source.html":[3,0,1,12],
+"lbp_factory_8cpp.html":[3,0,3,10],
+"lbp_interval_8cpp.html":[3,0,3,11],
+"lbp_interval_8h.html":[3,0,1,13],
+"lbp_interval_8h_source.html":[3,0,1,13],
+"lbp_linearization_strats_8cpp.html":[3,0,3,12],
+"logger_8cpp.html":[3,0,3,13],
+"logger_8h.html":[3,0,1,14],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6":[3,0,1,14,1],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a02538278559c2ce2f2fa3509e2cb1ee0":[3,0,1,14,1,21],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a09a491a6e7f617cd50a7060c552cce4e":[3,0,1,14,1,24],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a0df2d001081c4bd3b1d9c1cb9101d648":[3,0,1,14,1,33],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a11988bdff0ef3a044e9e9991f41a083b":[3,0,1,14,1,30],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a12187f49acc3a7cd011f182db558c7da":[3,0,1,14,1,7],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a134280d9eb35c390ef60be88fc3738fe":[3,0,1,14,1,8],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a17042c71f65219621bd0df75e80122f4":[3,0,1,14,1,34],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a20e6a32ee584c3187610f95ea83e1354":[3,0,1,14,1,48],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a233937fd6abb242c2de985af49b0e189":[3,0,1,14,1,9],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a266d2a23dde0c0404e4d261de460fd7f":[3,0,1,14,1,53],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a27fc1b36f1440ec849f01f0a173ec0ff":[3,0,1,14,1,12],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a3137a2b2e76434c605b08fb9ceb63f91":[3,0,1,14,1,23],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a44ea7382567c49c39d5ffbd545b0451c":[3,0,1,14,1,5],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a51822df94284dbf373c9dfd9cea52c96":[3,0,1,14,1,32],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a59bd95b4e1b3948bf713750d91992bb6":[3,0,1,14,1,44],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a5b17de1dc9ac64cce8a5bacab3dc8f5c":[3,0,1,14,1,47],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a5c772c254a5883d4c978284aa125c432":[3,0,1,14,1,51],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a5d25a3bfa50688065e53fbdcf97bcde6":[3,0,1,14,1,1],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a5e89e61d1878cd8ea10a285fc8d32425":[3,0,1,14,1,2],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a60152ee26df4e219f935ef6dd5a10e43":[3,0,1,14,1,35],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a628b6ac17d71d1b9df088ef94f8352f4":[3,0,1,14,1,0],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a6717bbec3198ea15d4f818af79374f09":[3,0,1,14,1,46],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a673f913685c284a0effb25228a504c66":[3,0,1,14,1,3],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a6c9981b7a50dafa4510ae5a161f715cd":[3,0,1,14,1,27],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a6d522f8c5fdacf5e00e987fc6f49727a":[3,0,1,14,1,36],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a70b90d0f834b991c2bdba8a75d240769":[3,0,1,14,1,52],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a71bd48756db5177b75b58c18c293de76":[3,0,1,14,1,22],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a77dddf14689e6d132028adfd53e48d7d":[3,0,1,14,1,11],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a7b55f5d88bcf0f46039de838e04d1732":[3,0,1,14,1,29],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a7e60bfc3f9fd67b15a9f9f78d9512d69":[3,0,1,14,1,49],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a7e7298426588825f3e948fe1e89527d9":[3,0,1,14,1,45],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a8694b1f3b18e7fc861df9d94b5aced1e":[3,0,1,14,1,38],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a89f8c3fb4d69e351baae115325a9e67f":[3,0,1,14,1,26],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6a8cdec043d63c92ac7a4aaf7be4598f62":[3,0,1,14,1,42],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6aa6aeef7e9a764d0d7aa0ce51bccf3fd0":[3,0,1,14,1,40],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6aa6b69e8c1aedfe695600afb72576f450":[3,0,1,14,1,31],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6aa871804ddb83a6d0f59637e3ff59c790":[3,0,1,14,1,28],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6aabadb050f3c17bb4bf6ec8d949e9b036":[3,0,1,14,1,43],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6aaed1ec51d45446a3609dff1a0551116d":[3,0,1,14,1,50],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6ab94236640934ada9c055a50cc95c553e":[3,0,1,14,1,17],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6abf15c9e7a4446ee00cf506841ad82431":[3,0,1,14,1,6],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6ac9045c8153524432b9b2e764104146c9":[3,0,1,14,1,10],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6acaa3429ee948f690dc11c72c2df7bd26":[3,0,1,14,1,14],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6ad3c0e778161ba84f50725b2f95a71173":[3,0,1,14,1,39],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6add9546d244ac8e1fff4c88197f7484c6":[3,0,1,14,1,16],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6ae06499c8dac054bf0e260388982591e2":[3,0,1,14,1,18],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6ae4d7bcb01c294a5428bbea31972573ec":[3,0,1,14,1,15],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6ae7201e0fb1f4ad05d018c6ecab300ce4":[3,0,1,14,1,37],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6ae7c7534e21e3333500fa3f6a834587c8":[3,0,1,14,1,25],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6af57f0eb60e347a76dc189ac87eee0e33":[3,0,1,14,1,4],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6af81a6ea821fd200739e5e21c88f5ce20":[3,0,1,14,1,13],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6af9b9065671390aaf67ee608acde5a29c":[3,0,1,14,1,20],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6afce3b85b57cf0619c91b21fc7f85d25f":[3,0,1,14,1,41],
+"logger_8h.html#a630ee8293fceda07f0cb639d0cf78cf6aff3c4437dc0be83ba5de7ed23ce39018":[3,0,1,14,1,19],
+"logger_8h_source.html":[3,0,1,14],
 "maingo_in_your_software.html":[0,7],
-"maingo_in_your_software.html#embedded":[0,7,1],
-"maingo_in_your_software.html#extensions":[0,7,2],
-"maingo_in_your_software.html#standalone":[0,7,0],
+"maingo_in_your_software.html#embedded":[0,7,0],
+"maingo_in_your_software.html#extensions":[0,7,1],
 "maingo_output.html":[0,3],
-"maingo_output.html#Interpreting":[0,3,0],
-"maingo_output.html#MAiNGO":[0,3,1],
+"maingo_output.html#logging":[0,3,0],
+"maingo_output.html#output_alternatives":[0,3,2],
+"maingo_output.html#results_file":[0,3,1],
 "maingo_settings.html":[0,8],
-"manual_8h.html":[3,0,1,22],
-"manual_8h_source.html":[3,0,1,22],
-"mc_forward_8h.html":[3,0,1,23],
-"mc_forward_8h.html#a38d812b6e163b42939e3f2c5b0fdf70f":[3,0,1,23,1],
-"mc_forward_8h.html#a8581fc8211bcb47503faef73e2dcfcaa":[3,0,1,23,0],
-"mc_forward_8h_source.html":[3,0,1,23],
-"mpi_utilities_8h.html":[3,0,1,24],
-"mpi_utilities_8h.html#a39e8f48c47d82dc275f1f5e32de92d2a":[3,0,1,24,5],
-"mpi_utilities_8h.html#a58a5dd8af7f8115f3912aef5739e220f":[3,0,1,24,2],
-"mpi_utilities_8h.html#a8f1c8431cb29b8b2a94c0af1bc63de5e":[3,0,1,24,4],
-"mpi_utilities_8h.html#a8ffce2ba04e8543df48213c6d9558ae8":[3,0,1,24,0],
-"mpi_utilities_8h.html#a968757c11f6e5a2d685ec7eb8fd7f6a4":[3,0,1,24,1],
-"mpi_utilities_8h.html#a9f6c0adaeeb5cca048c69a61b146d2ed":[3,0,1,24,3],
-"mpi_utilities_8h_source.html":[3,0,1,24],
+"mc_forward_8h.html":[3,0,1,22],
+"mc_forward_8h.html#a38d812b6e163b42939e3f2c5b0fdf70f":[3,0,1,22,1],
+"mc_forward_8h.html#a8581fc8211bcb47503faef73e2dcfcaa":[3,0,1,22,0],
+"mc_forward_8h_source.html":[3,0,1,22],
+"mpi_utilities_8h.html":[3,0,1,23],
+"mpi_utilities_8h.html#a39e8f48c47d82dc275f1f5e32de92d2a":[3,0,1,23,5],
+"mpi_utilities_8h.html#a58a5dd8af7f8115f3912aef5739e220f":[3,0,1,23,2],
+"mpi_utilities_8h.html#a8f1c8431cb29b8b2a94c0af1bc63de5e":[3,0,1,23,4],
+"mpi_utilities_8h.html#a8ffce2ba04e8543df48213c6d9558ae8":[3,0,1,23,0],
+"mpi_utilities_8h.html#a968757c11f6e5a2d685ec7eb8fd7f6a4":[3,0,1,23,1],
+"mpi_utilities_8h.html#a9f6c0adaeeb5cca048c69a61b146d2ed":[3,0,1,23,3],
+"mpi_utilities_8h_source.html":[3,0,1,23],
 "namespacebab_base.html":[1,0,0],
 "namespacebab_base.html":[2,0,0],
 "namespacebab_base_1_1enums.html":[1,0,0,0],
-"namespacemaingo.html":[2,0,1],
 "namespacemaingo.html":[1,0,1],
-"namespacemaingo_1_1bab.html":[1,0,1,0],
+"namespacemaingo.html":[2,0,1],
 "namespacemaingo_1_1bab.html":[2,0,1,0],
-"namespacemaingo_1_1lbp.html":[2,0,1,1],
+"namespacemaingo_1_1bab.html":[1,0,1,0],
 "namespacemaingo_1_1lbp.html":[1,0,1,1],
+"namespacemaingo_1_1lbp.html":[2,0,1,1],
 "namespacemaingo_1_1ubp.html":[2,0,1,2],
 "namespacemaingo_1_1ubp.html":[1,0,1,2],
-"namespacemc.html":[1,0,2],
 "namespacemc.html":[2,0,2],
+"namespacemc.html":[1,0,2],
 "namespacemembers.html":[1,1,0],
 "namespacemembers.html":[1,1,0,0],
 "namespacemembers_b.html":[1,1,0,1],
@@ -191,63 +184,70 @@ var NAVTREEINDEX5 =
 "namespacemembers_v.html":[1,1,0,20],
 "namespacemembers_vars.html":[1,1,2],
 "namespacemembers_w.html":[1,1,0,21],
+"namespacepymaingo.html":[1,0,3],
 "namespaces.html":[1,0],
-"output_variable_8h.html":[3,0,1,25],
-"output_variable_8h_source.html":[3,0,1,25],
+"output_variable_8h.html":[3,0,1,24],
+"output_variable_8h_source.html":[3,0,1,24],
 "pages.html":[],
 "parallel_version.html":[0,5],
-"program_8h.html":[3,0,1,26],
-"program_8h_source.html":[3,0,1,26],
-"program_parser_8cpp.html":[3,0,2,22],
-"program_parser_8h.html":[3,0,1,27],
-"program_parser_8h_source.html":[3,0,1,27],
-"return_codes_8h.html":[3,0,1,28],
-"return_codes_8h.html#a1f86fef63c4930e5c519b2ca288d824e":[3,0,1,28,0],
-"return_codes_8h.html#a1f86fef63c4930e5c519b2ca288d824ea333fe049a9fc9fa148299a79c61584fa":[3,0,1,28,0,2],
-"return_codes_8h.html#a1f86fef63c4930e5c519b2ca288d824ea41d8f65e89219832d04d46c89e612663":[3,0,1,28,0,1],
-"return_codes_8h.html#a1f86fef63c4930e5c519b2ca288d824ea5cdfb5145d9384d0c2328f64049b62fd":[3,0,1,28,0,0],
-"return_codes_8h.html#a4e2b70fda6e64add2c6ad1a9c4a42c90":[3,0,1,28,1],
-"return_codes_8h.html#a4e2b70fda6e64add2c6ad1a9c4a42c90a573382f7d5e0f9a030958598e05947ab":[3,0,1,28,1,2],
-"return_codes_8h.html#a4e2b70fda6e64add2c6ad1a9c4a42c90aade235ddb528425c3feab4d25c3bb7fe":[3,0,1,28,1,1],
-"return_codes_8h.html#a4e2b70fda6e64add2c6ad1a9c4a42c90afd0d8d28a60075d7c218ac487f16edb8":[3,0,1,28,1,0],
-"return_codes_8h.html#aa02add9895dfda997b2d9036a49bf6fc":[3,0,1,28,4],
-"return_codes_8h.html#aa02add9895dfda997b2d9036a49bf6fca507ee07c53b255456f02c9fc23668b2d":[3,0,1,28,4,0],
-"return_codes_8h.html#aa02add9895dfda997b2d9036a49bf6fca9be8be9427b3469fc1075cc54f18f992":[3,0,1,28,4,2],
-"return_codes_8h.html#aa02add9895dfda997b2d9036a49bf6fcafa8df5eb85bdef66de79c86ab05bc350":[3,0,1,28,4,1],
-"return_codes_8h.html#ab7a1cb5c265f8d1c287d43fec7988020":[3,0,1,28,3],
-"return_codes_8h.html#ab7a1cb5c265f8d1c287d43fec7988020a86709a3b1272bcb98c34b5965aadc7ef":[3,0,1,28,3,1],
-"return_codes_8h.html#ab7a1cb5c265f8d1c287d43fec7988020ac3bc5625b59fcd46e85cb8b0b29170e7":[3,0,1,28,3,0],
-"return_codes_8h.html#ae85bf383216b1907f0021c60fa20621a":[3,0,1,28,2],
-"return_codes_8h.html#ae85bf383216b1907f0021c60fa20621aa1fb55790fb61c6552fa3203206536463":[3,0,1,28,2,2],
-"return_codes_8h.html#ae85bf383216b1907f0021c60fa20621aa2a167aa4d367dd77f9d996cb8e720fe7":[3,0,1,28,2,5],
-"return_codes_8h.html#ae85bf383216b1907f0021c60fa20621aa546bea660c686f2af0e496cf20782f4b":[3,0,1,28,2,3],
-"return_codes_8h.html#ae85bf383216b1907f0021c60fa20621aaaf4c1f773e7ed997a752e9fc46f31da9":[3,0,1,28,2,1],
-"return_codes_8h.html#ae85bf383216b1907f0021c60fa20621aab0c34908a36a1229a2d2fb1038ead0cd":[3,0,1,28,2,0],
-"return_codes_8h.html#ae85bf383216b1907f0021c60fa20621aae3d35953836c7ec16f1503239ed7972c":[3,0,1,28,2,6],
-"return_codes_8h.html#ae85bf383216b1907f0021c60fa20621aaf98d82cf90c120cbada0db438cba6518":[3,0,1,28,2,4],
-"return_codes_8h_source.html":[3,0,1,28],
-"settings_8cpp.html":[3,0,2,23],
-"settings_8h.html":[3,0,1,29],
-"settings_8h.html#a3d9300c6853caaf91b0afc24d3dd1ae0":[3,0,1,29,4],
-"settings_8h.html#a3d9300c6853caaf91b0afc24d3dd1ae0a11b0a1dd952da50747424243c027c808":[3,0,1,29,4,0],
-"settings_8h.html#a3d9300c6853caaf91b0afc24d3dd1ae0a52f5f76af1455b5ee7ad085be3dbb0ed":[3,0,1,29,4,1],
-"settings_8h.html#a3d9300c6853caaf91b0afc24d3dd1ae0a585dae7be6c02c38889b2be3e16fd2fb":[3,0,1,29,4,3],
-"settings_8h.html#a3d9300c6853caaf91b0afc24d3dd1ae0aeafd0b37169b3bd9330488dfff7713b7":[3,0,1,29,4,2],
-"settings_8h.html#a53603cf77a4aab12b16a3cce79b991be":[3,0,1,29,7],
-"settings_8h.html#a53603cf77a4aab12b16a3cce79b991bea46b5de1abddbaba6cf2a9b54852c0a6c":[3,0,1,29,7,1],
-"settings_8h.html#a53603cf77a4aab12b16a3cce79b991bea492f57f7be5a28760409792b99e09bd8":[3,0,1,29,7,2],
-"settings_8h.html#a53603cf77a4aab12b16a3cce79b991bea564fb96cc42aa72474169a9d7e3fd844":[3,0,1,29,7,0],
-"settings_8h.html#a7fda513a30bb172152b96406e370299a":[3,0,1,29,5],
-"settings_8h.html#a7fda513a30bb172152b96406e370299aa14773b3cb5be6b7a031e2648f1edb27a":[3,0,1,29,5,4],
-"settings_8h.html#a7fda513a30bb172152b96406e370299aa6005851459ecd1476b128baad46d46e6":[3,0,1,29,5,1],
-"settings_8h.html#a7fda513a30bb172152b96406e370299aa6b23681db7db1db0a27cb2007620056e":[3,0,1,29,5,3],
-"settings_8h.html#a7fda513a30bb172152b96406e370299aa8476f2061be97a547db8d42808fa4369":[3,0,1,29,5,2],
-"settings_8h.html#a7fda513a30bb172152b96406e370299aabb1dae9f397b7c971de9be182a505616":[3,0,1,29,5,6],
-"settings_8h.html#a7fda513a30bb172152b96406e370299aacd2ad11121ce71554943363ac99cd0c8":[3,0,1,29,5,0],
-"settings_8h.html#a7fda513a30bb172152b96406e370299aad139485466768f0cb2bc590af41f84fe":[3,0,1,29,5,5],
-"settings_8h.html#a93b68678c7bf3f3767b5ac7adf55a4be":[3,0,1,29,1],
-"settings_8h.html#a93b68678c7bf3f3767b5ac7adf55a4bea0a3210e4f9065f1ead5177bfdfbc27d1":[3,0,1,29,1,3],
-"settings_8h.html#a93b68678c7bf3f3767b5ac7adf55a4bea7461c27f75e0601f39252dd553b686e6":[3,0,1,29,1,2],
-"settings_8h.html#a93b68678c7bf3f3767b5ac7adf55a4beab21ba68ca9d31ece2a6ac8006b39027e":[3,0,1,29,1,0],
-"settings_8h.html#a93b68678c7bf3f3767b5ac7adf55a4beabbf2c359f240461a8859bea8b628179d":[3,0,1,29,1,1]
+"program_8h.html":[3,0,1,25],
+"program_8h_source.html":[3,0,1,25],
+"program_parser_8cpp.html":[3,0,3,23],
+"program_parser_8h.html":[3,0,1,26],
+"program_parser_8h_source.html":[3,0,1,26],
+"return_codes_8h.html":[3,0,1,27],
+"return_codes_8h.html#a1f86fef63c4930e5c519b2ca288d824e":[3,0,1,27,0],
+"return_codes_8h.html#a1f86fef63c4930e5c519b2ca288d824ea333fe049a9fc9fa148299a79c61584fa":[3,0,1,27,0,2],
+"return_codes_8h.html#a1f86fef63c4930e5c519b2ca288d824ea41d8f65e89219832d04d46c89e612663":[3,0,1,27,0,1],
+"return_codes_8h.html#a1f86fef63c4930e5c519b2ca288d824ea5cdfb5145d9384d0c2328f64049b62fd":[3,0,1,27,0,0],
+"return_codes_8h.html#a4e2b70fda6e64add2c6ad1a9c4a42c90":[3,0,1,27,1],
+"return_codes_8h.html#a4e2b70fda6e64add2c6ad1a9c4a42c90a573382f7d5e0f9a030958598e05947ab":[3,0,1,27,1,2],
+"return_codes_8h.html#a4e2b70fda6e64add2c6ad1a9c4a42c90aade235ddb528425c3feab4d25c3bb7fe":[3,0,1,27,1,1],
+"return_codes_8h.html#a4e2b70fda6e64add2c6ad1a9c4a42c90afd0d8d28a60075d7c218ac487f16edb8":[3,0,1,27,1,0],
+"return_codes_8h.html#aa02add9895dfda997b2d9036a49bf6fc":[3,0,1,27,4],
+"return_codes_8h.html#aa02add9895dfda997b2d9036a49bf6fca507ee07c53b255456f02c9fc23668b2d":[3,0,1,27,4,0],
+"return_codes_8h.html#aa02add9895dfda997b2d9036a49bf6fca9be8be9427b3469fc1075cc54f18f992":[3,0,1,27,4,2],
+"return_codes_8h.html#aa02add9895dfda997b2d9036a49bf6fcafa8df5eb85bdef66de79c86ab05bc350":[3,0,1,27,4,1],
+"return_codes_8h.html#ab7a1cb5c265f8d1c287d43fec7988020":[3,0,1,27,3],
+"return_codes_8h.html#ab7a1cb5c265f8d1c287d43fec7988020a86709a3b1272bcb98c34b5965aadc7ef":[3,0,1,27,3,1],
+"return_codes_8h.html#ab7a1cb5c265f8d1c287d43fec7988020ac3bc5625b59fcd46e85cb8b0b29170e7":[3,0,1,27,3,0],
+"return_codes_8h.html#ae85bf383216b1907f0021c60fa20621a":[3,0,1,27,2],
+"return_codes_8h.html#ae85bf383216b1907f0021c60fa20621aa1fb55790fb61c6552fa3203206536463":[3,0,1,27,2,2],
+"return_codes_8h.html#ae85bf383216b1907f0021c60fa20621aa2a167aa4d367dd77f9d996cb8e720fe7":[3,0,1,27,2,5],
+"return_codes_8h.html#ae85bf383216b1907f0021c60fa20621aa546bea660c686f2af0e496cf20782f4b":[3,0,1,27,2,3],
+"return_codes_8h.html#ae85bf383216b1907f0021c60fa20621aaaf4c1f773e7ed997a752e9fc46f31da9":[3,0,1,27,2,1],
+"return_codes_8h.html#ae85bf383216b1907f0021c60fa20621aab0c34908a36a1229a2d2fb1038ead0cd":[3,0,1,27,2,0],
+"return_codes_8h.html#ae85bf383216b1907f0021c60fa20621aae3d35953836c7ec16f1503239ed7972c":[3,0,1,27,2,6],
+"return_codes_8h.html#ae85bf383216b1907f0021c60fa20621aaf98d82cf90c120cbada0db438cba6518":[3,0,1,27,2,4],
+"return_codes_8h_source.html":[3,0,1,27],
+"settings_8h.html":[3,0,1,28],
+"settings_8h.html#a53603cf77a4aab12b16a3cce79b991be":[3,0,1,28,5],
+"settings_8h.html#a53603cf77a4aab12b16a3cce79b991bea46b5de1abddbaba6cf2a9b54852c0a6c":[3,0,1,28,5,1],
+"settings_8h.html#a53603cf77a4aab12b16a3cce79b991bea492f57f7be5a28760409792b99e09bd8":[3,0,1,28,5,2],
+"settings_8h.html#a53603cf77a4aab12b16a3cce79b991bea564fb96cc42aa72474169a9d7e3fd844":[3,0,1,28,5,0],
+"settings_8h.html#a76021544553e05d3b4de6cbcf58db39a":[3,0,1,28,6],
+"settings_8h.html#a76021544553e05d3b4de6cbcf58db39aa1b0686f8505e989428b2edbc77249953":[3,0,1,28,6,1],
+"settings_8h.html#a76021544553e05d3b4de6cbcf58db39aa8baf6445b690d1592e58cf697ced3bfe":[3,0,1,28,6,2],
+"settings_8h.html#a76021544553e05d3b4de6cbcf58db39aacd2ad11121ce71554943363ac99cd0c8":[3,0,1,28,6,0],
+"settings_8h.html#a93b68678c7bf3f3767b5ac7adf55a4be":[3,0,1,28,1],
+"settings_8h.html#a93b68678c7bf3f3767b5ac7adf55a4bea016b6bae02feefafd679a8d57149aff5":[3,0,1,28,1,2],
+"settings_8h.html#a93b68678c7bf3f3767b5ac7adf55a4bea32fa8aaeff8ed8f41d95ce72acc04ce1":[3,0,1,28,1,0],
+"settings_8h.html#a93b68678c7bf3f3767b5ac7adf55a4bea9c0bfb2a028e4a3ab6011619009d62d9":[3,0,1,28,1,3],
+"settings_8h.html#a93b68678c7bf3f3767b5ac7adf55a4beafc7bfbfe657af2fff8e3800860388f89":[3,0,1,28,1,1],
+"settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9d":[3,0,1,28,4],
+"settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9da019153052e3b77622e3f2a7f0ce339e8":[3,0,1,28,4,6],
+"settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9da15b7028091e5f95408a2a26e643cb972":[3,0,1,28,4,0],
+"settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9da16910a5ab42fd9bcd71489c0f07d7791":[3,0,1,28,4,2],
+"settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9da3d2c4a7fd42fd747fe825ec8f0b1a1ad":[3,0,1,28,4,5],
+"settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9da5e8733223dd08864a8d5effbb341992a":[3,0,1,28,4,4],
+"settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9da9537df8ae6b66b2b07f2a31d7258c98f":[3,0,1,28,4,7],
+"settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9daaff3b4a7dfedf2a8f66396d01c4e1645":[3,0,1,28,4,1],
+"settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9dab4e7e171165eb64a246e2e7b7e2ea352":[3,0,1,28,4,8],
+"settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9dac4da4292c1a20fb6a199fc7b540bc2d3":[3,0,1,28,4,3],
+"settings_8h.html#addd00d5f7ff74c4721070d8dd76f93a2":[3,0,1,28,2],
+"settings_8h.html#addd00d5f7ff74c4721070d8dd76f93a2a2646c5b7bcb159ca8436c7a813e8b783":[3,0,1,28,2,2],
+"settings_8h.html#addd00d5f7ff74c4721070d8dd76f93a2a5b84f41c3cd21549f844b70dab1f8e49":[3,0,1,28,2,5],
+"settings_8h.html#addd00d5f7ff74c4721070d8dd76f93a2a5c70e54dadb090b3234669343d814e3a":[3,0,1,28,2,0],
+"settings_8h.html#addd00d5f7ff74c4721070d8dd76f93a2a6e05ea1a421a5bfe21ff3044b03a0b18":[3,0,1,28,2,4],
+"settings_8h.html#addd00d5f7ff74c4721070d8dd76f93a2a6f6fc41c94ae0797af701d329a74a277":[3,0,1,28,2,1]
 };
diff --git a/doc/html/navtreeindex6.js b/doc/html/navtreeindex6.js
index 7ead2853bd1f20355c39308ed338470f9ac5678b..f814d4ac0b4e5d277f1f838e4f56bad4a3205b76 100644
--- a/doc/html/navtreeindex6.js
+++ b/doc/html/navtreeindex6.js
@@ -1,26 +1,12 @@
 var NAVTREEINDEX6 =
 {
-"settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9d":[3,0,1,29,6],
-"settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9da24b4fd10f12919d2825cb493c71d3cf8":[3,0,1,29,6,4],
-"settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9da54ed347065f9c65c37a71a3cb4db7451":[3,0,1,29,6,2],
-"settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9da64db5861bc8d36e7cb00978e72af8408":[3,0,1,29,6,7],
-"settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9da6cc859f77befbec62acf36cb2ef82683":[3,0,1,29,6,6],
-"settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9da816c98ce5f16248a60f78e76bc534823":[3,0,1,29,6,3],
-"settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9da995e3c0356133ed4320ffa4111536e10":[3,0,1,29,6,8],
-"settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9dac449153333e544edc3b78977ab02ea20":[3,0,1,29,6,5],
-"settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9dac5701f2847e960c47f46914beac6a128":[3,0,1,29,6,1],
-"settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9dac9dd69c054981d95b5633af8eada06b7":[3,0,1,29,6,0],
-"settings_8h.html#ad19f1469072a948e0678836725b1d3e8":[3,0,1,29,3],
-"settings_8h.html#ad19f1469072a948e0678836725b1d3e8a207bbc0e97b4a6f7598b447f8b8c8b89":[3,0,1,29,3,1],
-"settings_8h.html#ad19f1469072a948e0678836725b1d3e8a739b073ddf68d60146dfb7b8f3b24c0c":[3,0,1,29,3,0],
-"settings_8h.html#addd00d5f7ff74c4721070d8dd76f93a2":[3,0,1,29,2],
-"settings_8h.html#addd00d5f7ff74c4721070d8dd76f93a2a2646c5b7bcb159ca8436c7a813e8b783":[3,0,1,29,2,2],
-"settings_8h.html#addd00d5f7ff74c4721070d8dd76f93a2a5b84f41c3cd21549f844b70dab1f8e49":[3,0,1,29,2,5],
-"settings_8h.html#addd00d5f7ff74c4721070d8dd76f93a2a5c70e54dadb090b3234669343d814e3a":[3,0,1,29,2,0],
-"settings_8h.html#addd00d5f7ff74c4721070d8dd76f93a2a6e05ea1a421a5bfe21ff3044b03a0b18":[3,0,1,29,2,4],
-"settings_8h.html#addd00d5f7ff74c4721070d8dd76f93a2a6f6fc41c94ae0797af701d329a74a277":[3,0,1,29,2,1],
-"settings_8h.html#addd00d5f7ff74c4721070d8dd76f93a2af60eacc8183e3e5080cb19d89f15c598":[3,0,1,29,2,3],
-"settings_8h_source.html":[3,0,1,29],
+"settings_8h.html#addd00d5f7ff74c4721070d8dd76f93a2af60eacc8183e3e5080cb19d89f15c598":[3,0,1,28,2,3],
+"settings_8h.html#aed64ab21c095ed6882ea61128addd7a4":[3,0,1,28,3],
+"settings_8h.html#aed64ab21c095ed6882ea61128addd7a4a335b5d0a5d8ddae15c4f4dc56ff437c1":[3,0,1,28,3,2],
+"settings_8h.html#aed64ab21c095ed6882ea61128addd7a4a5ba5670261ac104d957be08824b10fda":[3,0,1,28,3,0],
+"settings_8h.html#aed64ab21c095ed6882ea61128addd7a4aaeb2ef5d2157419a5fe03924e9fbb714":[3,0,1,28,3,3],
+"settings_8h.html#aed64ab21c095ed6882ea61128addd7a4afb969130cbbe60ea7ede72325e349fbe":[3,0,1,28,3,1],
+"settings_8h_source.html":[3,0,1,28],
 "special_uses.html":[0,6],
 "special_uses.html#maingo_epsilon_constraint":[0,6,3],
 "special_uses.html#maingo_feasibility_of_single_point":[0,6,2],
@@ -45,13 +31,9 @@ var NAVTREEINDEX6 =
 "structbab_base_1_1_bab_log.html#af5bf82369755150c0152946d9ec8ce40":[2,0,0,0,6],
 "structbab_base_1_1_bounds.html":[2,0,0,4],
 "structbab_base_1_1_bounds.html#a143d3617a4792c4ab189e372e8e0b681":[2,0,0,4,0],
-"structbab_base_1_1_bounds.html#a275ca3ce07d64ce43824d7e673cfee6b":[2,0,0,4,7],
-"structbab_base_1_1_bounds.html#a415e0920d82d09ffc5798edb59e89093":[2,0,0,4,3],
-"structbab_base_1_1_bounds.html#a41752124aaf238c73255f1941c861ce8":[2,0,0,4,6],
-"structbab_base_1_1_bounds.html#a4b1a985eba004ed91b8383d2dde6224e":[2,0,0,4,5],
-"structbab_base_1_1_bounds.html#a58871ce4b6cf44aa16f6dd240fdeb295":[2,0,0,4,1],
-"structbab_base_1_1_bounds.html#a674305fe2e7e8b2f777cb32a1b9c28f7":[2,0,0,4,4],
-"structbab_base_1_1_bounds.html#af1d929f0940ec89277c8813e9f6e32eb":[2,0,0,4,2],
+"structbab_base_1_1_bounds.html#a9f4758be8a66b8e7b034af1f04e19d1d":[2,0,0,4,3],
+"structbab_base_1_1_bounds.html#aac75f501a93c1ba546d9e9d2263ad2f4":[2,0,0,4,1],
+"structbab_base_1_1_bounds.html#ac371c3147b5737af08e1c03daf413c05":[2,0,0,4,2],
 "structbab_base_1_1_branching_history_info.html":[2,0,0,7],
 "structbab_base_1_1_branching_history_info.html#a0692c234f3dd6f32552a5c04519fb489":[2,0,0,7,0],
 "structbab_base_1_1_branching_history_info.html#a0692c234f3dd6f32552a5c04519fb489a65bddc0563e821bec242c776bac8e1da":[2,0,0,7,0,2],
@@ -64,11 +46,6 @@ var NAVTREEINDEX6 =
 "structbab_base_1_1_branching_history_info.html#af4685d27e83c66bddbd9fdc32759eb69":[2,0,0,7,1],
 "structbab_base_1_1_node_priority_comparator.html":[2,0,0,8],
 "structbab_base_1_1_node_priority_comparator.html#a046f2155e1e85bd556686c212ff44506":[2,0,0,8,0],
-"structbab_base_1_1_optimization_variable_1_1_changed_bounds.html":[2,0,0,9,0],
-"structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#a29e404e5263dc06f9e24e5719a53dea8":[2,0,0,9,0,3],
-"structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#a4ec809446af63cecb30c9359c89cdf40":[2,0,0,9,0,1],
-"structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#a4ecf97573227d863a88a44747125aeb0":[2,0,0,9,0,0],
-"structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#aba91eb7f14a3c3da0e12a8e77e0d98d2":[2,0,0,9,0,2],
 "structbab_base_1_1_pruning_score_comparator.html":[2,0,0,11],
 "structbab_base_1_1_pruning_score_comparator.html#a32adb58b8c8c680fbb87c9837ecf88c9":[2,0,0,11,0],
 "structmaingo_1_1_constraint.html":[2,0,1,4],
@@ -100,88 +77,116 @@ var NAVTREEINDEX6 =
 "structmaingo_1_1_constraint_container.html#ac1b8182544f5f0fe5357d748b690dab2":[2,0,1,5,1],
 "structmaingo_1_1_constraint_container.html#ad875878c83b9f5e2ab0ff68c7452a53e":[2,0,1,5,0],
 "structmaingo_1_1_evaluation_container.html":[2,0,1,6],
-"structmaingo_1_1_evaluation_container.html#a6871b7430185e5c4152b941720b606f3":[2,0,1,6,3],
+"structmaingo_1_1_evaluation_container.html#a564d618660f9675c33900127aa686f38":[2,0,1,6,2],
 "structmaingo_1_1_evaluation_container.html#a86a57d19de362bd56b022103b14bd793":[2,0,1,6,7],
-"structmaingo_1_1_evaluation_container.html#a9c91e67852946ccb7381351512875a06":[2,0,1,6,1],
-"structmaingo_1_1_evaluation_container.html#aa40bfc61f94bf6850d3ee53db7e2afeb":[2,0,1,6,5],
 "structmaingo_1_1_evaluation_container.html#ab9eb3ecf31c9d5d48ccb04880a635819":[2,0,1,6,0],
-"structmaingo_1_1_evaluation_container.html#af0c40f10ae5192b4bb6478138c6ad1a0":[2,0,1,6,6],
-"structmaingo_1_1_evaluation_container.html#af754c93b79ce6fa668c17d2fd26c812b":[2,0,1,6,4],
-"structmaingo_1_1_evaluation_container.html#afd4671f76d0f58502f7f8a36bc574642":[2,0,1,6,2],
+"structmaingo_1_1_evaluation_container.html#ac13bde03d078f5c9402cce551a161024":[2,0,1,6,6],
+"structmaingo_1_1_evaluation_container.html#acf712256b2506b6388af16e648a04fae":[2,0,1,6,4],
+"structmaingo_1_1_evaluation_container.html#ad71555eb350bbd6deb14d47559a6fa6d":[2,0,1,6,1],
+"structmaingo_1_1_evaluation_container.html#af3256dbd0be5bea52c3a994da7082ea4":[2,0,1,6,3],
+"structmaingo_1_1_evaluation_container.html#af9572d873db6d0ebd0402cbc3539e8ee":[2,0,1,6,5],
+"structmaingo_1_1_model_function.html":[2,0,1,13],
+"structmaingo_1_1_model_function.html#a0af1f22b1bc87961451c52913567a4fd":[2,0,1,13,20],
+"structmaingo_1_1_model_function.html#a1575a658d24ba107ff73f583e7c4eaca":[2,0,1,13,10],
+"structmaingo_1_1_model_function.html#a28a2c95923dee0d58ca16ba62b02e10a":[2,0,1,13,13],
+"structmaingo_1_1_model_function.html#a2a99a82296b2b73f9375c1396d40d2b4":[2,0,1,13,4],
+"structmaingo_1_1_model_function.html#a2cd284c38a9f30f487ad0481fcfaa363":[2,0,1,13,12],
+"structmaingo_1_1_model_function.html#a2dad7f76d791717fc532cd4e1eab37b2":[2,0,1,13,9],
+"structmaingo_1_1_model_function.html#a3468e730a934be8be5bf5ee2f84aacc7":[2,0,1,13,23],
+"structmaingo_1_1_model_function.html#a351a87d89c0212305c3e477d692aedbb":[2,0,1,13,14],
+"structmaingo_1_1_model_function.html#a51752162c6f7c51938623341c9d92f50":[2,0,1,13,3],
+"structmaingo_1_1_model_function.html#a59519941d0bb502f58c197894c6a0d2a":[2,0,1,13,0],
+"structmaingo_1_1_model_function.html#a643e6d2e6cb1a5d78eae384361be9d72":[2,0,1,13,6],
+"structmaingo_1_1_model_function.html#a6ac6b2b399d045f9a4178db4a4a4b212":[2,0,1,13,2],
+"structmaingo_1_1_model_function.html#a77f51cfc74b6f5dc0b1a8919b01f3333":[2,0,1,13,19],
+"structmaingo_1_1_model_function.html#a8c2f2e692410848475b8c5caffcf5e51":[2,0,1,13,21],
+"structmaingo_1_1_model_function.html#a925155d044f3f8e24cd55150bb668683":[2,0,1,13,18],
+"structmaingo_1_1_model_function.html#a93e188a00ecf49b5dc85f9a58ab7c9f7":[2,0,1,13,11],
+"structmaingo_1_1_model_function.html#a99dfad4b58342d3f6bf80813369f079e":[2,0,1,13,5],
+"structmaingo_1_1_model_function.html#aadda375307d57abd5a7e1c3f8fee2289":[2,0,1,13,8],
+"structmaingo_1_1_model_function.html#ac53aa934e420edd2363328a685a35170":[2,0,1,13,7],
+"structmaingo_1_1_model_function.html#acb85f5084123b7d4d42c2d0e03b3e7c6":[2,0,1,13,22],
+"structmaingo_1_1_model_function.html#ad07bf75626a6914c9f15b23fa5ec518e":[2,0,1,13,17],
+"structmaingo_1_1_model_function.html#af1e48836d22ea8f0dcc46d8622800058":[2,0,1,13,15],
+"structmaingo_1_1_model_function.html#af5cbeca4a2b4e75d111e6073e9351a8b":[2,0,1,13,1],
+"structmaingo_1_1_model_function.html#af7fe04e13594b729a7fe3cde9caedbc3":[2,0,1,13,16],
 "structmaingo_1_1_output_variable.html":[2,0,1,14],
-"structmaingo_1_1_output_variable.html#a1187fff45ba11b8a8c98a117000893a8":[2,0,1,14,3],
+"structmaingo_1_1_output_variable.html#a09d1a2a865522f69c19cb057bc95f03f":[2,0,1,14,4],
+"structmaingo_1_1_output_variable.html#a263debc4a6d2b559f48c5e359f59885a":[2,0,1,14,6],
+"structmaingo_1_1_output_variable.html#a46108bea6aa824e9138db071db917035":[2,0,1,14,9],
 "structmaingo_1_1_output_variable.html#a4bbebaf4d5245bad6a7038087948b49c":[2,0,1,14,1],
 "structmaingo_1_1_output_variable.html#a5444c9dfb8eb89b4a2ddd679ff819322":[2,0,1,14,0],
-"structmaingo_1_1_output_variable.html#a655f9ec9bd57b58b546ea596c0ca792a":[2,0,1,14,4],
-"structmaingo_1_1_output_variable.html#aa21e6b3349541ef65b14e8385e15c516":[2,0,1,14,2],
-"structmaingo_1_1_output_variable.html#acd79e28304c45ee43806093b857489f2":[2,0,1,14,5],
+"structmaingo_1_1_output_variable.html#a655f9ec9bd57b58b546ea596c0ca792a":[2,0,1,14,10],
+"structmaingo_1_1_output_variable.html#a9d13cfce0e3a1142c7f14d5b84d58028":[2,0,1,14,2],
+"structmaingo_1_1_output_variable.html#ab1e29a6ed63df8c8c92f500dac6b8187":[2,0,1,14,5],
+"structmaingo_1_1_output_variable.html#ab80383105b9791c367311daf64618890":[2,0,1,14,7],
+"structmaingo_1_1_output_variable.html#ac513acc754eba158a496c3c4d2f4cc2b":[2,0,1,14,8],
+"structmaingo_1_1_output_variable.html#acd79e28304c45ee43806093b857489f2":[2,0,1,14,11],
+"structmaingo_1_1_output_variable.html#af468c75f57d9d2debe8e3e3ecf8aa480":[2,0,1,14,3],
 "structmaingo_1_1_program.html":[2,0,1,15],
 "structmaingo_1_1_program.html#a5066677b6079a978930b7d582eaf1f72":[2,0,1,15,0],
 "structmaingo_1_1_program.html#a7d49b5c89b54392bd35f6ac64c9d4b40":[2,0,1,15,3],
-"structmaingo_1_1_program.html#a91830e99c06a7bd5c40a95a4038bae7b":[2,0,1,15,1],
 "structmaingo_1_1_program.html#a93f7319ccde52f3649fef8acec8759fa":[2,0,1,15,4],
 "structmaingo_1_1_program.html#aa9dd284c244d4f9c1470b1d1bbd791d1":[2,0,1,15,2],
+"structmaingo_1_1_program.html#ac8bcb8f9940fb42b8818612b837a3cc3":[2,0,1,15,1],
 "structmaingo_1_1_settings.html":[2,0,1,17],
-"structmaingo_1_1_settings.html#a013779523888ede06a29eb507b22d139":[2,0,1,17,19],
-"structmaingo_1_1_settings.html#a11905b6d9a1d4bcbe320d7fd6f3e4a71":[2,0,1,17,39],
-"structmaingo_1_1_settings.html#a11c405acd744c079b1cb57c71fe1b5dc":[2,0,1,17,12],
-"structmaingo_1_1_settings.html#a151445349406eb6567b9ef0930b94a57":[2,0,1,17,11],
-"structmaingo_1_1_settings.html#a1ef0c321a726544d68a6f82ebe0f3ce1":[2,0,1,17,21],
-"structmaingo_1_1_settings.html#a2442c5741a3601880b2903b69d32bbb9":[2,0,1,17,14],
-"structmaingo_1_1_settings.html#a3003863167eab673fbeae391bfeb802b":[2,0,1,17,35],
-"structmaingo_1_1_settings.html#a33a203b4798d1c1ca0897fe897f86e5e":[2,0,1,17,23],
-"structmaingo_1_1_settings.html#a34c3073ced91a6837df66cfddd3a74ee":[2,0,1,17,36],
-"structmaingo_1_1_settings.html#a3bca851ad2486ec398bf0cff511fb805":[2,0,1,17,29],
-"structmaingo_1_1_settings.html#a3e066fd5fb513813ec370f23a1cf5332":[2,0,1,17,27],
-"structmaingo_1_1_settings.html#a3e8739c5895cf3ae9122d22531161e46":[2,0,1,17,46],
-"structmaingo_1_1_settings.html#a4152b7df19df2bfd3b4e43d13aea1841":[2,0,1,17,15],
-"structmaingo_1_1_settings.html#a440a841800111853d7366c1626242de6":[2,0,1,17,56],
-"structmaingo_1_1_settings.html#a46aef5290b25ae54af6dba81d896fcbc":[2,0,1,17,41],
-"structmaingo_1_1_settings.html#a4ea318d33514aecb909d04ac014dec5c":[2,0,1,17,28],
-"structmaingo_1_1_settings.html#a50403ef83f8de6e5a774825a56715012":[2,0,1,17,49],
-"structmaingo_1_1_settings.html#a5e457d44f0301389da787556d4e9aebe":[2,0,1,17,6],
-"structmaingo_1_1_settings.html#a5e9afadd1d866d01c96a114686b32672":[2,0,1,17,2],
-"structmaingo_1_1_settings.html#a635996885baa7cb82d4f5cf91c2921bc":[2,0,1,17,13],
-"structmaingo_1_1_settings.html#a63963398865197f332049e6a247bcb35":[2,0,1,17,34],
-"structmaingo_1_1_settings.html#a6a33331a9a865594b6698fb770687f8f":[2,0,1,17,31],
-"structmaingo_1_1_settings.html#a6d6da9a089684ecd8eb3dc560e14c0ca":[2,0,1,17,54],
-"structmaingo_1_1_settings.html#a6faf13db475d6e05fac1783a8f7ed805":[2,0,1,17,10],
-"structmaingo_1_1_settings.html#a6fb19c2296412e1143f77fd7b949e7e3":[2,0,1,17,51],
-"structmaingo_1_1_settings.html#a74c2b2798213ed88903b13e8d9ca14e2":[2,0,1,17,1],
-"structmaingo_1_1_settings.html#a774378c7d329fb73be3cbb765f035cb6":[2,0,1,17,5],
-"structmaingo_1_1_settings.html#a7b899b964718fb9e7a95459026faf6aa":[2,0,1,17,18],
-"structmaingo_1_1_settings.html#a891666257be2a508061697ea80a01ada":[2,0,1,17,52],
-"structmaingo_1_1_settings.html#a8a932699c21f3dfc85317ce9cdc8943f":[2,0,1,17,47],
-"structmaingo_1_1_settings.html#a8d340ab819d3da6d5378765c1699dad2":[2,0,1,17,22],
-"structmaingo_1_1_settings.html#a8fd91a3766129137cae15447565e7923":[2,0,1,17,3],
-"structmaingo_1_1_settings.html#a930df85d476b40ebf1dd43b024e1b001":[2,0,1,17,44],
-"structmaingo_1_1_settings.html#a93335d6322c7df74c4ffd387941379be":[2,0,1,17,8],
-"structmaingo_1_1_settings.html#a95ee7f86cbeb604a7640cc01530b278a":[2,0,1,17,43],
-"structmaingo_1_1_settings.html#a97970d98cd9d1d8972cc048d339b53dc":[2,0,1,17,30],
-"structmaingo_1_1_settings.html#a998dbf62d78386f5c7161b82ed37acbe":[2,0,1,17,20],
-"structmaingo_1_1_settings.html#aa0a8bf977559001dd0a4cda0d7908ebb":[2,0,1,17,55],
-"structmaingo_1_1_settings.html#aa85263531e27b4569555b7b78aa15440":[2,0,1,17,45],
-"structmaingo_1_1_settings.html#ab7169a6eefce79566dd07db3b1e5e967":[2,0,1,17,0],
-"structmaingo_1_1_settings.html#ac91eb2c4778d67abdc5b797c3a8d1b3f":[2,0,1,17,25],
-"structmaingo_1_1_settings.html#acbc8b6cea8fdfd9db25f805b25d9bd43":[2,0,1,17,9],
-"structmaingo_1_1_settings.html#acccf69351b29a42f528c9e892cb4d8c5":[2,0,1,17,24],
-"structmaingo_1_1_settings.html#acec36c3b03a651632336594c40d5026a":[2,0,1,17,53],
-"structmaingo_1_1_settings.html#acef4fa75216bfea7bd19dbb9d226320f":[2,0,1,17,48],
-"structmaingo_1_1_settings.html#ad537d2e602f8eccbbaa1b3c4d0f3a135":[2,0,1,17,26],
-"structmaingo_1_1_settings.html#ad7cad6ff794ba09b57b3c22733b44f58":[2,0,1,17,42],
-"structmaingo_1_1_settings.html#ae0e50e9403f37080cd79667947af8c1b":[2,0,1,17,7],
-"structmaingo_1_1_settings.html#ae41b9a39dbcf2adf4891a414333145bd":[2,0,1,17,17],
-"structmaingo_1_1_settings.html#ae7029d17219326a8cbf366f214bb4706":[2,0,1,17,33],
-"structmaingo_1_1_settings.html#ae9318c3868a221c8cb642e8c9f413dc2":[2,0,1,17,4],
-"structmaingo_1_1_settings.html#aec0786e196d9432a636fc741e0fbeec3":[2,0,1,17,40],
-"structmaingo_1_1_settings.html#aec5925d3412be881fb7fac711718e7e4":[2,0,1,17,32],
-"structmaingo_1_1_settings.html#aed67a51e2390de794d1e7e98a1a90206":[2,0,1,17,37],
-"structmaingo_1_1_settings.html#af507cbfa73588513df3746e104c76c01":[2,0,1,17,38],
-"structmaingo_1_1_settings.html#af98e35447c8568c1613daf7447a30307":[2,0,1,17,50],
-"structmaingo_1_1_settings.html#af995a33f43f5609d3e941cbdf72a94de":[2,0,1,17,16],
+"structmaingo_1_1_settings.html#a013779523888ede06a29eb507b22d139":[2,0,1,17,16],
+"structmaingo_1_1_settings.html#a11905b6d9a1d4bcbe320d7fd6f3e4a71":[2,0,1,17,37],
+"structmaingo_1_1_settings.html#a11c405acd744c079b1cb57c71fe1b5dc":[2,0,1,17,9],
+"structmaingo_1_1_settings.html#a151445349406eb6567b9ef0930b94a57":[2,0,1,17,8],
+"structmaingo_1_1_settings.html#a1ef0c321a726544d68a6f82ebe0f3ce1":[2,0,1,17,18],
+"structmaingo_1_1_settings.html#a2442c5741a3601880b2903b69d32bbb9":[2,0,1,17,11],
+"structmaingo_1_1_settings.html#a3003863167eab673fbeae391bfeb802b":[2,0,1,17,33],
+"structmaingo_1_1_settings.html#a33a203b4798d1c1ca0897fe897f86e5e":[2,0,1,17,20],
+"structmaingo_1_1_settings.html#a34c3073ced91a6837df66cfddd3a74ee":[2,0,1,17,34],
+"structmaingo_1_1_settings.html#a3bca851ad2486ec398bf0cff511fb805":[2,0,1,17,26],
+"structmaingo_1_1_settings.html#a3e066fd5fb513813ec370f23a1cf5332":[2,0,1,17,24],
+"structmaingo_1_1_settings.html#a3e8739c5895cf3ae9122d22531161e46":[2,0,1,17,44],
+"structmaingo_1_1_settings.html#a4152b7df19df2bfd3b4e43d13aea1841":[2,0,1,17,12],
+"structmaingo_1_1_settings.html#a46aef5290b25ae54af6dba81d896fcbc":[2,0,1,17,39],
+"structmaingo_1_1_settings.html#a4ea318d33514aecb909d04ac014dec5c":[2,0,1,17,25],
+"structmaingo_1_1_settings.html#a50403ef83f8de6e5a774825a56715012":[2,0,1,17,47],
+"structmaingo_1_1_settings.html#a56d7d3b6246ae45af98b44102edbb28b":[2,0,1,17,51],
+"structmaingo_1_1_settings.html#a5d637f32b3496797a5a327fba9b2589a":[2,0,1,17,32],
+"structmaingo_1_1_settings.html#a5e457d44f0301389da787556d4e9aebe":[2,0,1,17,3],
+"structmaingo_1_1_settings.html#a635996885baa7cb82d4f5cf91c2921bc":[2,0,1,17,10],
+"structmaingo_1_1_settings.html#a6a33331a9a865594b6698fb770687f8f":[2,0,1,17,29],
+"structmaingo_1_1_settings.html#a6faf13db475d6e05fac1783a8f7ed805":[2,0,1,17,7],
+"structmaingo_1_1_settings.html#a6fb19c2296412e1143f77fd7b949e7e3":[2,0,1,17,49],
+"structmaingo_1_1_settings.html#a774378c7d329fb73be3cbb765f035cb6":[2,0,1,17,2],
+"structmaingo_1_1_settings.html#a7b899b964718fb9e7a95459026faf6aa":[2,0,1,17,15],
+"structmaingo_1_1_settings.html#a891666257be2a508061697ea80a01ada":[2,0,1,17,50],
+"structmaingo_1_1_settings.html#a8a932699c21f3dfc85317ce9cdc8943f":[2,0,1,17,45],
+"structmaingo_1_1_settings.html#a8d340ab819d3da6d5378765c1699dad2":[2,0,1,17,19],
+"structmaingo_1_1_settings.html#a8fd91a3766129137cae15447565e7923":[2,0,1,17,0],
+"structmaingo_1_1_settings.html#a930df85d476b40ebf1dd43b024e1b001":[2,0,1,17,42],
+"structmaingo_1_1_settings.html#a93335d6322c7df74c4ffd387941379be":[2,0,1,17,5],
+"structmaingo_1_1_settings.html#a95ee7f86cbeb604a7640cc01530b278a":[2,0,1,17,41],
+"structmaingo_1_1_settings.html#a97970d98cd9d1d8972cc048d339b53dc":[2,0,1,17,28],
+"structmaingo_1_1_settings.html#a998dbf62d78386f5c7161b82ed37acbe":[2,0,1,17,17],
+"structmaingo_1_1_settings.html#aa0a8bf977559001dd0a4cda0d7908ebb":[2,0,1,17,52],
+"structmaingo_1_1_settings.html#aa85263531e27b4569555b7b78aa15440":[2,0,1,17,43],
+"structmaingo_1_1_settings.html#ac91eb2c4778d67abdc5b797c3a8d1b3f":[2,0,1,17,22],
+"structmaingo_1_1_settings.html#acbc8b6cea8fdfd9db25f805b25d9bd43":[2,0,1,17,6],
+"structmaingo_1_1_settings.html#acccf69351b29a42f528c9e892cb4d8c5":[2,0,1,17,21],
+"structmaingo_1_1_settings.html#acef4fa75216bfea7bd19dbb9d226320f":[2,0,1,17,46],
+"structmaingo_1_1_settings.html#ad537d2e602f8eccbbaa1b3c4d0f3a135":[2,0,1,17,23],
+"structmaingo_1_1_settings.html#ad665aeee888f2746d7892ffc66bd5340":[2,0,1,17,27],
+"structmaingo_1_1_settings.html#ad7cad6ff794ba09b57b3c22733b44f58":[2,0,1,17,40],
+"structmaingo_1_1_settings.html#ae0e50e9403f37080cd79667947af8c1b":[2,0,1,17,4],
+"structmaingo_1_1_settings.html#ae41b9a39dbcf2adf4891a414333145bd":[2,0,1,17,14],
+"structmaingo_1_1_settings.html#ae7029d17219326a8cbf366f214bb4706":[2,0,1,17,31],
+"structmaingo_1_1_settings.html#ae9318c3868a221c8cb642e8c9f413dc2":[2,0,1,17,1],
+"structmaingo_1_1_settings.html#aec0786e196d9432a636fc741e0fbeec3":[2,0,1,17,38],
+"structmaingo_1_1_settings.html#aec5925d3412be881fb7fac711718e7e4":[2,0,1,17,30],
+"structmaingo_1_1_settings.html#aed67a51e2390de794d1e7e98a1a90206":[2,0,1,17,35],
+"structmaingo_1_1_settings.html#af507cbfa73588513df3746e104c76c01":[2,0,1,17,36],
+"structmaingo_1_1_settings.html#af98e35447c8568c1613daf7447a30307":[2,0,1,17,48],
+"structmaingo_1_1_settings.html#af995a33f43f5609d3e941cbdf72a94de":[2,0,1,17,13],
 "structmaingo_1_1lbp_1_1_dag_obj.html":[2,0,1,1,0],
 "structmaingo_1_1lbp_1_1_dag_obj.html#a0285f2c7a74ddd1f3f4157425e9bc984":[2,0,1,1,0,7],
 "structmaingo_1_1lbp_1_1_dag_obj.html#a035f243e17df5931b5c12a003cb09b0d":[2,0,1,1,0,16],
+"structmaingo_1_1lbp_1_1_dag_obj.html#a03d316c8bf417fbb010961bb31d7cdbc":[2,0,1,1,0,0],
 "structmaingo_1_1lbp_1_1_dag_obj.html#a09fb67cc9c686600e7aa47f2780dfca5":[2,0,1,1,0,38],
 "structmaingo_1_1lbp_1_1_dag_obj.html#a1433832249455df519f816c2aef102c5":[2,0,1,1,0,15],
 "structmaingo_1_1lbp_1_1_dag_obj.html#a1612e267cb6ae7781a857a48e5d23df2":[2,0,1,1,0,40],
@@ -200,7 +205,6 @@ var NAVTREEINDEX6 =
 "structmaingo_1_1lbp_1_1_dag_obj.html#a5b1b4d6a673c6e3092264d6dceabdece":[2,0,1,1,0,41],
 "structmaingo_1_1lbp_1_1_dag_obj.html#a627de930f81b7f923008c966c40250ed":[2,0,1,1,0,31],
 "structmaingo_1_1lbp_1_1_dag_obj.html#a639462cbaec8e4a5ef66f37f718adc0c":[2,0,1,1,0,28],
-"structmaingo_1_1lbp_1_1_dag_obj.html#a83cea7e83eb4744af421af42ab4c5cdb":[2,0,1,1,0,2],
 "structmaingo_1_1lbp_1_1_dag_obj.html#a8e5fe42eab7d26338e2f976630492a85":[2,0,1,1,0,10],
 "structmaingo_1_1lbp_1_1_dag_obj.html#a90b99c016e5ad32a56b668d5922363e6":[2,0,1,1,0,14],
 "structmaingo_1_1lbp_1_1_dag_obj.html#a951a092aecbd63f3a33fec5406368944":[2,0,1,1,0,23],
@@ -217,37 +221,33 @@ var NAVTREEINDEX6 =
 "structmaingo_1_1lbp_1_1_dag_obj.html#aee1902712aacf900093a6bfe7c33e94c":[2,0,1,1,0,27],
 "structmaingo_1_1lbp_1_1_dag_obj.html#aee77c46e9bf0acb2013d02a3032d61be":[2,0,1,1,0,30],
 "structmaingo_1_1lbp_1_1_dag_obj.html#aeef5b9c3ba6ff3d2c4a646c45ecd37cb":[2,0,1,1,0,33],
+"structmaingo_1_1lbp_1_1_dag_obj.html#af2ba1ac965bfc48025172b978cbee2c6":[2,0,1,1,0,2],
 "structmaingo_1_1lbp_1_1_dag_obj.html#af45a858d3e9f5c34aea23e182a56aa80":[2,0,1,1,0,39],
 "structmaingo_1_1lbp_1_1_dag_obj.html#af5c84556b2dcec10b61dfaf09d8e57e3":[2,0,1,1,0,5],
 "structmaingo_1_1lbp_1_1_dag_obj.html#af99b4b2e0addac9b1b0f2e1177ff2f41":[2,0,1,1,0,11],
-"structmaingo_1_1lbp_1_1_dag_obj.html#afb7fb4ac1246771689f6e244e4777b06":[2,0,1,1,0,0],
 "structmaingo_1_1lbp_1_1_dag_obj.html#afdac6172a450f8b76c8323b9ee88905a":[2,0,1,1,0,1],
 "structmaingo_1_1lbp_1_1_lbp_dual_info.html":[2,0,1,1,3],
 "structmaingo_1_1lbp_1_1_lbp_dual_info.html#a178540b0c26d82cddddf59854d59bfbd":[2,0,1,1,3,1],
 "structmaingo_1_1lbp_1_1_lbp_dual_info.html#a2ea74da7d73d5e4c01340cfe486b5597":[2,0,1,1,3,0],
-"structmaingo_1_1model_function.html":[2,0,1,13],
-"structmaingo_1_1model_function.html#a3ccf2b6601e828e0fff4f27356d78f8a":[2,0,1,13,12],
-"structmaingo_1_1model_function.html#a43527d838950718179d9055ae7aeb96c":[2,0,1,13,3],
-"structmaingo_1_1model_function.html#a4acc3cdbd96f5b6b5b4e803ee1dbf369":[2,0,1,13,9],
-"structmaingo_1_1model_function.html#a53bb709db5915f9762d84b3a160c549e":[2,0,1,13,4],
-"structmaingo_1_1model_function.html#a602058ed28dc600017e666b82faf43b6":[2,0,1,13,16],
-"structmaingo_1_1model_function.html#a6625f2f7e468b0d5b1590284826e355a":[2,0,1,13,15],
-"structmaingo_1_1model_function.html#a67d7053072c5d28e36f91ec598a09011":[2,0,1,13,11],
-"structmaingo_1_1model_function.html#a6c599ca9d697a04a892ec228b88b7b02":[2,0,1,13,0],
-"structmaingo_1_1model_function.html#a8b288537eb4166adf7ffb65456bee18e":[2,0,1,13,1],
-"structmaingo_1_1model_function.html#a97f49921923957ca2170e5ab65959fbb":[2,0,1,13,7],
-"structmaingo_1_1model_function.html#ab7c7f3001efc0df4c1fca1dba56dcf45":[2,0,1,13,10],
-"structmaingo_1_1model_function.html#ac08320da20704d3bec91fb2540dfa12f":[2,0,1,13,2],
-"structmaingo_1_1model_function.html#ac410fafee15b027dc87007207aca4fe0":[2,0,1,13,5],
-"structmaingo_1_1model_function.html#ac7ccbc9aabfa39f93e01e706f74f649e":[2,0,1,13,14],
-"structmaingo_1_1model_function.html#acfa12e44318f039d4dd7b62d6da21996":[2,0,1,13,6],
-"structmaingo_1_1model_function.html#ad32e16eebdef8b4e555417cc514c43c0":[2,0,1,13,17],
-"structmaingo_1_1model_function.html#ae27a8eb161619cea1e29a6df0d38c3d7":[2,0,1,13,13],
-"structmaingo_1_1model_function.html#aea4187e90212d71b2f368711cc5ee4cb":[2,0,1,13,8],
 "structmaingo_1_1ubp_1_1_dag_obj.html":[2,0,1,2,0],
 "structmaingo_1_1ubp_1_1_dag_obj.html#a05ab21ce93cddce80e9fd39d8be49597":[2,0,1,2,0,36],
 "structmaingo_1_1ubp_1_1_dag_obj.html#a0fe2d9ba4c4bcedc21b422b367e09a56":[2,0,1,2,0,30],
 "structmaingo_1_1ubp_1_1_dag_obj.html#a1e28bbb852ebf2742997e2ce62326135":[2,0,1,2,0,13],
 "structmaingo_1_1ubp_1_1_dag_obj.html#a1e467d626d859ab9ff891bb935ced800":[2,0,1,2,0,23],
-"structmaingo_1_1ubp_1_1_dag_obj.html#a21da37c6fc7b2d64ffcfa66893fae244":[2,0,1,2,0,25]
+"structmaingo_1_1ubp_1_1_dag_obj.html#a21da37c6fc7b2d64ffcfa66893fae244":[2,0,1,2,0,25],
+"structmaingo_1_1ubp_1_1_dag_obj.html#a29fc29042fab2e29d8cf3e8270d1400e":[2,0,1,2,0,41],
+"structmaingo_1_1ubp_1_1_dag_obj.html#a33f13fd662a2603c031c7284cd1ca098":[2,0,1,2,0,0],
+"structmaingo_1_1ubp_1_1_dag_obj.html#a369f41e06ac7ca4c95af8520307186c5":[2,0,1,2,0,2],
+"structmaingo_1_1ubp_1_1_dag_obj.html#a3e0513b0a62546a54b6d973e444c9c39":[2,0,1,2,0,22],
+"structmaingo_1_1ubp_1_1_dag_obj.html#a42e33cb988291c6937cd00185522156b":[2,0,1,2,0,26],
+"structmaingo_1_1ubp_1_1_dag_obj.html#a44fa3940386ae67658375d956e0a668e":[2,0,1,2,0,7],
+"structmaingo_1_1ubp_1_1_dag_obj.html#a48d906fd12ab57911a063e098eae3281":[2,0,1,2,0,34],
+"structmaingo_1_1ubp_1_1_dag_obj.html#a4f45395e82b69d789baa6c85cc559774":[2,0,1,2,0,29],
+"structmaingo_1_1ubp_1_1_dag_obj.html#a5131414e58a4b041e75ea2010de5cf44":[2,0,1,2,0,20],
+"structmaingo_1_1ubp_1_1_dag_obj.html#a5782efab4dab2431bd571bd62d0c1fd5":[2,0,1,2,0,3],
+"structmaingo_1_1ubp_1_1_dag_obj.html#a6dd2d386cafd1e06bea74acdca9ed219":[2,0,1,2,0,24],
+"structmaingo_1_1ubp_1_1_dag_obj.html#a6e3eacf894a93c48315dfc9f2b5f552d":[2,0,1,2,0,37],
+"structmaingo_1_1ubp_1_1_dag_obj.html#a6e462e78027d46af3239c0463b7c9249":[2,0,1,2,0,15],
+"structmaingo_1_1ubp_1_1_dag_obj.html#a79773c586c9be6cba8e7fcb178d5b7b1":[2,0,1,2,0,12],
+"structmaingo_1_1ubp_1_1_dag_obj.html#a7f8342bed2c5826162ea52f9f0a585a0":[2,0,1,2,0,28]
 };
diff --git a/doc/html/navtreeindex7.js b/doc/html/navtreeindex7.js
index 074c2ffc6610bd10ba6f829b08ad4824a27cfc3b..8e1dd91943ec898c3a296d30261371cae7bc8f68 100644
--- a/doc/html/navtreeindex7.js
+++ b/doc/html/navtreeindex7.js
@@ -1,25 +1,10 @@
 var NAVTREEINDEX7 =
 {
-"structmaingo_1_1ubp_1_1_dag_obj.html#a29fc29042fab2e29d8cf3e8270d1400e":[2,0,1,2,0,41],
-"structmaingo_1_1ubp_1_1_dag_obj.html#a369f41e06ac7ca4c95af8520307186c5":[2,0,1,2,0,2],
-"structmaingo_1_1ubp_1_1_dag_obj.html#a38d4d4e046f3eea00ef8dce95ad36337":[2,0,1,2,0,0],
-"structmaingo_1_1ubp_1_1_dag_obj.html#a3e0513b0a62546a54b6d973e444c9c39":[2,0,1,2,0,22],
-"structmaingo_1_1ubp_1_1_dag_obj.html#a42e33cb988291c6937cd00185522156b":[2,0,1,2,0,26],
-"structmaingo_1_1ubp_1_1_dag_obj.html#a44fa3940386ae67658375d956e0a668e":[2,0,1,2,0,7],
-"structmaingo_1_1ubp_1_1_dag_obj.html#a48d906fd12ab57911a063e098eae3281":[2,0,1,2,0,34],
-"structmaingo_1_1ubp_1_1_dag_obj.html#a4a939be99d5fff95ef5bd169d46fe205":[2,0,1,2,0,16],
-"structmaingo_1_1ubp_1_1_dag_obj.html#a4f45395e82b69d789baa6c85cc559774":[2,0,1,2,0,29],
-"structmaingo_1_1ubp_1_1_dag_obj.html#a5131414e58a4b041e75ea2010de5cf44":[2,0,1,2,0,20],
-"structmaingo_1_1ubp_1_1_dag_obj.html#a5782efab4dab2431bd571bd62d0c1fd5":[2,0,1,2,0,3],
-"structmaingo_1_1ubp_1_1_dag_obj.html#a61dda650b1a25155e541c4607fb7b82c":[2,0,1,2,0,15],
-"structmaingo_1_1ubp_1_1_dag_obj.html#a6dd2d386cafd1e06bea74acdca9ed219":[2,0,1,2,0,24],
-"structmaingo_1_1ubp_1_1_dag_obj.html#a6e3eacf894a93c48315dfc9f2b5f552d":[2,0,1,2,0,37],
-"structmaingo_1_1ubp_1_1_dag_obj.html#a79773c586c9be6cba8e7fcb178d5b7b1":[2,0,1,2,0,12],
-"structmaingo_1_1ubp_1_1_dag_obj.html#a7f8342bed2c5826162ea52f9f0a585a0":[2,0,1,2,0,28],
 "structmaingo_1_1ubp_1_1_dag_obj.html#a803b289e729d816f8524f925302139db":[2,0,1,2,0,1],
 "structmaingo_1_1ubp_1_1_dag_obj.html#a82247c4c22164ea742e7635cbf1b804c":[2,0,1,2,0,40],
 "structmaingo_1_1ubp_1_1_dag_obj.html#a822afd74873ea833c98147373e504b9c":[2,0,1,2,0,6],
 "structmaingo_1_1ubp_1_1_dag_obj.html#a86d90582d35eb5007f3341a575f66988":[2,0,1,2,0,5],
+"structmaingo_1_1ubp_1_1_dag_obj.html#a8bebd0e09ae8e79b0826bb93cba34ffa":[2,0,1,2,0,16],
 "structmaingo_1_1ubp_1_1_dag_obj.html#a93dfab2ee4890c0847a68beeea2dbd2e":[2,0,1,2,0,21],
 "structmaingo_1_1ubp_1_1_dag_obj.html#a9caecaa9c360fb857f5ecf69f6378850":[2,0,1,2,0,27],
 "structmaingo_1_1ubp_1_1_dag_obj.html#a9e0cc6deedefb498b43ec2c7849a4d5c":[2,0,1,2,0,35],
@@ -38,21 +23,21 @@ var NAVTREEINDEX7 =
 "structmaingo_1_1ubp_1_1_dag_obj.html#afb24a800ca2cfab6f0e89caa4e821294":[2,0,1,2,0,18],
 "structmaingo_1_1ubp_1_1_dag_obj.html#afe691f3ed4b87f85ee35031b0f204f38":[2,0,1,2,0,9],
 "structmaingo_1_1ubp_1_1_ubp_quad_expr.html":[2,0,1,2,8],
-"structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a0f9dba9a22cd1bad6d7920742a46785c":[2,0,1,2,8,4],
-"structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a192f82e999323888394268882f22e3f1":[2,0,1,2,8,5],
 "structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a1cd55371cff5dac0174d8d37ceba6c5d":[2,0,1,2,8,7],
+"structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a24790536a92c354b15430c00b0258c40":[2,0,1,2,8,4],
 "structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2a7ead5761ea56126a45479935588b06":[2,0,1,2,8,14],
 "structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2e8b906b6e8ea5c22c4534e85cbbeac7":[2,0,1,2,8,13],
 "structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244":[2,0,1,2,8,18],
 "structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584":[2,0,1,2,8,21],
 "structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a44586840f98d6fa9e24fa04e67b7fea4":[2,0,1,2,8,2],
 "structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a44b8597bd206f1afad3abfe8de039716":[2,0,1,2,8,1],
+"structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a4be525c49a8d761438570a34a09d6077":[2,0,1,2,8,6],
 "structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a53ba87d0f920df7610866e1bcfe1ed5e":[2,0,1,2,8,11],
 "structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a561bcf6912a9390cf05b7c8c5c0755a5":[2,0,1,2,8,8],
 "structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721":[2,0,1,2,8,19],
-"structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a664fcf4c3b9097e2c8ef0c3fd655b53d":[2,0,1,2,8,6],
 "structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a6a7b56e39550931c2feb3bad0a801c38":[2,0,1,2,8,3],
 "structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a7634e17e6d08c10571dbca448506e95e":[2,0,1,2,8,9],
+"structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a791a3261856056f2303dd574eb3f6dd3":[2,0,1,2,8,5],
 "structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d":[2,0,1,2,8,20],
 "structmaingo_1_1ubp_1_1_ubp_quad_expr.html#ab448dba7b8e6123194c9cf88ae2f2b65":[2,0,1,2,8,0],
 "structmaingo_1_1ubp_1_1_ubp_quad_expr.html#ac3ad5400183945189193f674f876c774":[2,0,1,2,8,12],
@@ -71,79 +56,79 @@ var NAVTREEINDEX7 =
 "structmaingo_1_1ubp_1_1_ubp_structure.html#afedea9f2b8be0b183f9017ca2e161112":[2,0,1,2,9,6],
 "structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html":[2,0,2,0],
 "structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a5671d40aba6b51eedb9fefa337f514fa":[2,0,2,0,0],
-"ubp_8cpp.html":[3,0,2,24],
-"ubp_8h.html":[3,0,1,30],
-"ubp_8h.html#ac4a3034b115744514ad64d9c150713ea":[3,0,1,30,1],
-"ubp_8h_source.html":[3,0,1,30],
-"ubp_clp_8cpp.html":[3,0,2,25],
-"ubp_clp_8h.html":[3,0,1,31],
-"ubp_clp_8h_source.html":[3,0,1,31],
-"ubp_cplex_8cpp.html":[3,0,2,26],
-"ubp_cplex_8h.html":[3,0,1,32],
-"ubp_cplex_8h_source.html":[3,0,1,32],
-"ubp_dag_obj_8h.html":[3,0,1,33],
-"ubp_dag_obj_8h_source.html":[3,0,1,33],
-"ubp_evaluators_8h.html":[3,0,1,34],
-"ubp_evaluators_8h.html#a2ccec3ae42538f85eeb00df11bb81dbd":[3,0,1,34,3],
-"ubp_evaluators_8h.html#a4ef3bf44064e577cc0e845c66ea24b2d":[3,0,1,34,0],
-"ubp_evaluators_8h.html#a749bd699d767cf5682bc2cc9af1a8ba2":[3,0,1,34,5],
-"ubp_evaluators_8h.html#a932143bfce70a96fb11115c09792a93d":[3,0,1,34,4],
-"ubp_evaluators_8h.html#af36f6b98ee45ef4b3a1faf7365d437dc":[3,0,1,34,2],
-"ubp_evaluators_8h.html#afeb581ccb97ca939b4689b62064cca07":[3,0,1,34,1],
-"ubp_evaluators_8h_source.html":[3,0,1,34],
-"ubp_factory_8cpp.html":[3,0,2,27],
-"ubp_ipopt_8cpp.html":[3,0,2,28],
-"ubp_ipopt_8h.html":[3,0,1,35],
-"ubp_ipopt_8h_source.html":[3,0,1,35],
-"ubp_knitro_8cpp.html":[3,0,2,29],
-"ubp_knitro_8h.html":[3,0,1,36],
-"ubp_knitro_8h_source.html":[3,0,1,36],
-"ubp_n_lopt_8cpp.html":[3,0,2,30],
-"ubp_n_lopt_8h.html":[3,0,1,37],
-"ubp_n_lopt_8h_source.html":[3,0,1,37],
-"ubp_quad_expr_8h.html":[3,0,1,38],
-"ubp_quad_expr_8h.html#a0e92f83ac29ec3f83eeb2efe88f556c3":[3,0,1,38,8],
-"ubp_quad_expr_8h.html#a10c5d0d8fe3f2daa26131fe923cdd9bc":[3,0,1,38,9],
-"ubp_quad_expr_8h.html#a1bdea6d9e43b0b3b4950db2888f59180":[3,0,1,38,28],
-"ubp_quad_expr_8h.html#a32aa5e9142e01cdd969ed7bc97324a6f":[3,0,1,38,25],
-"ubp_quad_expr_8h.html#a34d96b5d5baa870bf3c50543044f17fa":[3,0,1,38,11],
-"ubp_quad_expr_8h.html#a478444c21260358392dd33b31f713a9c":[3,0,1,38,5],
-"ubp_quad_expr_8h.html#a5854670509a4af23a920acce4f19748c":[3,0,1,38,29],
-"ubp_quad_expr_8h.html#a5c67ac181e81a6949e8ecb8a870782e2":[3,0,1,38,2],
-"ubp_quad_expr_8h.html#a5d61a1b0104c207a63c55da96bbe28bf":[3,0,1,38,13],
-"ubp_quad_expr_8h.html#a71bc9598739d457c38b6c8620fa70e6a":[3,0,1,38,12],
-"ubp_quad_expr_8h.html#a742b207c46fd0870d53d6d13366e8ebc":[3,0,1,38,20],
-"ubp_quad_expr_8h.html#a7c723688f344053b4a3d7e0ba2e4c144":[3,0,1,38,17],
-"ubp_quad_expr_8h.html#a8f178973e405455b0384fd128b3f1be7":[3,0,1,38,16],
-"ubp_quad_expr_8h.html#aa428e1d300a34bef5231c161b0e08597":[3,0,1,38,10],
-"ubp_quad_expr_8h.html#aa60e9a98c38d0c5836692f82c46f7408":[3,0,1,38,19],
-"ubp_quad_expr_8h.html#aa6cf0d34878dfbcc39ede6d5e3911612":[3,0,1,38,24],
-"ubp_quad_expr_8h.html#aac1334d57e5f2540b7bfa6cd37693205":[3,0,1,38,6],
-"ubp_quad_expr_8h.html#ab613e54b12d7fb8a43156f91aa434402":[3,0,1,38,4],
-"ubp_quad_expr_8h.html#ab9fceb07e4c759872241321cdd48e269":[3,0,1,38,26],
-"ubp_quad_expr_8h.html#ac33b3f1dcbbfc89678ddd9d83b12c33e":[3,0,1,38,22],
-"ubp_quad_expr_8h.html#ac39deeba0da11c5b6460085c0d9e699c":[3,0,1,38,23],
-"ubp_quad_expr_8h.html#ac85543a4274998b12aca4e184764a4a1":[3,0,1,38,21],
-"ubp_quad_expr_8h.html#ac90c68b5af595a7612a1149d2cc0c9b9":[3,0,1,38,7],
-"ubp_quad_expr_8h.html#ad3cba31c2697ea5b09bacbd997c9f296":[3,0,1,38,3],
-"ubp_quad_expr_8h.html#ad3f555c68f9b3ae1ad075e914317afd5":[3,0,1,38,27],
-"ubp_quad_expr_8h.html#ad4f8e6ebfcd8fc7e3fc7e7b4926892ac":[3,0,1,38,15],
-"ubp_quad_expr_8h.html#ad836c3ed6766c075161c027b5eca6e25":[3,0,1,38,14],
-"ubp_quad_expr_8h.html#ae0d200ca4c3aa81516b03974aaa7e8b2":[3,0,1,38,18],
-"ubp_quad_expr_8h.html#ae7c5689bc8931b7ae4216f810dddb5d3":[3,0,1,38,30],
-"ubp_quad_expr_8h.html#aefd918702d5ff67b444a1b5184a2ba78":[3,0,1,38,31],
-"ubp_quad_expr_8h_source.html":[3,0,1,38],
-"ubp_structure_8h.html":[3,0,1,39],
-"ubp_structure_8h_source.html":[3,0,1,39],
-"utilities_8h.html":[3,0,1,40],
-"utilities_8h.html#ab36b1ec6df5374d8caba1bae5495df5d":[3,0,1,40,0],
-"utilities_8h.html#aff818a6a6eca6dcfa6cc89a8c32c6f39":[3,0,1,40,1],
-"utilities_8h_source.html":[3,0,1,40],
-"variable_lister_8h.html":[3,0,1,41],
-"variable_lister_8h.html#a11bcd09435dfa315a14f05c640fbc14d":[3,0,1,41,1],
-"variable_lister_8h.html#a1c6fbc2d5c914dfda1933a8815992b7a":[3,0,1,41,3],
-"variable_lister_8h.html#af6bb0f53c0435aab16b7b77572162ef7":[3,0,1,41,2],
-"variable_lister_8h_source.html":[3,0,1,41],
+"ubp_8cpp.html":[3,0,3,24],
+"ubp_8h.html":[3,0,1,29],
+"ubp_8h.html#ab62ff87d8caba41740160a8d488b133d":[3,0,1,29,1],
+"ubp_8h_source.html":[3,0,1,29],
+"ubp_clp_8cpp.html":[3,0,3,25],
+"ubp_clp_8h.html":[3,0,1,30],
+"ubp_clp_8h_source.html":[3,0,1,30],
+"ubp_cplex_8cpp.html":[3,0,3,26],
+"ubp_cplex_8h.html":[3,0,1,31],
+"ubp_cplex_8h_source.html":[3,0,1,31],
+"ubp_dag_obj_8h.html":[3,0,1,32],
+"ubp_dag_obj_8h_source.html":[3,0,1,32],
+"ubp_evaluators_8h.html":[3,0,1,33],
+"ubp_evaluators_8h.html#a2ccec3ae42538f85eeb00df11bb81dbd":[3,0,1,33,3],
+"ubp_evaluators_8h.html#a4ef3bf44064e577cc0e845c66ea24b2d":[3,0,1,33,0],
+"ubp_evaluators_8h.html#a749bd699d767cf5682bc2cc9af1a8ba2":[3,0,1,33,5],
+"ubp_evaluators_8h.html#a932143bfce70a96fb11115c09792a93d":[3,0,1,33,4],
+"ubp_evaluators_8h.html#af36f6b98ee45ef4b3a1faf7365d437dc":[3,0,1,33,2],
+"ubp_evaluators_8h.html#afeb581ccb97ca939b4689b62064cca07":[3,0,1,33,1],
+"ubp_evaluators_8h_source.html":[3,0,1,33],
+"ubp_factory_8cpp.html":[3,0,3,27],
+"ubp_ipopt_8cpp.html":[3,0,3,28],
+"ubp_ipopt_8h.html":[3,0,1,34],
+"ubp_ipopt_8h_source.html":[3,0,1,34],
+"ubp_knitro_8cpp.html":[3,0,3,29],
+"ubp_knitro_8h.html":[3,0,1,35],
+"ubp_knitro_8h_source.html":[3,0,1,35],
+"ubp_n_lopt_8cpp.html":[3,0,3,30],
+"ubp_n_lopt_8h.html":[3,0,1,36],
+"ubp_n_lopt_8h_source.html":[3,0,1,36],
+"ubp_quad_expr_8h.html":[3,0,1,37],
+"ubp_quad_expr_8h.html#a10c5d0d8fe3f2daa26131fe923cdd9bc":[3,0,1,37,9],
+"ubp_quad_expr_8h.html#a1bdea6d9e43b0b3b4950db2888f59180":[3,0,1,37,28],
+"ubp_quad_expr_8h.html#a32aa5e9142e01cdd969ed7bc97324a6f":[3,0,1,37,25],
+"ubp_quad_expr_8h.html#a34d96b5d5baa870bf3c50543044f17fa":[3,0,1,37,11],
+"ubp_quad_expr_8h.html#a4e5d8a29639dd84a703944c7489b0b84":[3,0,1,37,8],
+"ubp_quad_expr_8h.html#a5854670509a4af23a920acce4f19748c":[3,0,1,37,29],
+"ubp_quad_expr_8h.html#a5d61a1b0104c207a63c55da96bbe28bf":[3,0,1,37,13],
+"ubp_quad_expr_8h.html#a63efcd0b2ad1996c20545e1481f0835a":[3,0,1,37,2],
+"ubp_quad_expr_8h.html#a71bc9598739d457c38b6c8620fa70e6a":[3,0,1,37,12],
+"ubp_quad_expr_8h.html#a742b207c46fd0870d53d6d13366e8ebc":[3,0,1,37,20],
+"ubp_quad_expr_8h.html#a7731fb6c5c16ba843f8b36512c3f7f0c":[3,0,1,37,4],
+"ubp_quad_expr_8h.html#a7c723688f344053b4a3d7e0ba2e4c144":[3,0,1,37,17],
+"ubp_quad_expr_8h.html#a7d5d0a8e327941d11246bfdb428239e7":[3,0,1,37,7],
+"ubp_quad_expr_8h.html#a8f178973e405455b0384fd128b3f1be7":[3,0,1,37,16],
+"ubp_quad_expr_8h.html#aa3340e4491d298e5f1388853c9c183db":[3,0,1,37,5],
+"ubp_quad_expr_8h.html#aa428e1d300a34bef5231c161b0e08597":[3,0,1,37,10],
+"ubp_quad_expr_8h.html#aa60e9a98c38d0c5836692f82c46f7408":[3,0,1,37,19],
+"ubp_quad_expr_8h.html#aa6cf0d34878dfbcc39ede6d5e3911612":[3,0,1,37,24],
+"ubp_quad_expr_8h.html#aa896d2608e6152fd66b0ec6031a083ef":[3,0,1,37,3],
+"ubp_quad_expr_8h.html#aac93aa0207fe1de9f3a73b4985f96343":[3,0,1,37,6],
+"ubp_quad_expr_8h.html#ab9fceb07e4c759872241321cdd48e269":[3,0,1,37,26],
+"ubp_quad_expr_8h.html#ac33b3f1dcbbfc89678ddd9d83b12c33e":[3,0,1,37,22],
+"ubp_quad_expr_8h.html#ac39deeba0da11c5b6460085c0d9e699c":[3,0,1,37,23],
+"ubp_quad_expr_8h.html#ac85543a4274998b12aca4e184764a4a1":[3,0,1,37,21],
+"ubp_quad_expr_8h.html#ad3f555c68f9b3ae1ad075e914317afd5":[3,0,1,37,27],
+"ubp_quad_expr_8h.html#ad4f8e6ebfcd8fc7e3fc7e7b4926892ac":[3,0,1,37,15],
+"ubp_quad_expr_8h.html#ad836c3ed6766c075161c027b5eca6e25":[3,0,1,37,14],
+"ubp_quad_expr_8h.html#ae0d200ca4c3aa81516b03974aaa7e8b2":[3,0,1,37,18],
+"ubp_quad_expr_8h.html#ae7c5689bc8931b7ae4216f810dddb5d3":[3,0,1,37,30],
+"ubp_quad_expr_8h.html#aefd918702d5ff67b444a1b5184a2ba78":[3,0,1,37,31],
+"ubp_quad_expr_8h_source.html":[3,0,1,37],
+"ubp_structure_8h.html":[3,0,1,38],
+"ubp_structure_8h_source.html":[3,0,1,38],
+"utilities_8h.html":[3,0,1,39],
+"utilities_8h.html#ab36b1ec6df5374d8caba1bae5495df5d":[3,0,1,39,0],
+"utilities_8h.html#aff818a6a6eca6dcfa6cc89a8c32c6f39":[3,0,1,39,1],
+"utilities_8h_source.html":[3,0,1,39],
+"variable_lister_8h.html":[3,0,1,40],
+"variable_lister_8h.html#a11bcd09435dfa315a14f05c640fbc14d":[3,0,1,40,1],
+"variable_lister_8h.html#a1c6fbc2d5c914dfda1933a8815992b7a":[3,0,1,40,3],
+"variable_lister_8h.html#af6bb0f53c0435aab16b7b77572162ef7":[3,0,1,40,2],
+"variable_lister_8h_source.html":[3,0,1,40],
 "writing_problem.html":[0,2],
 "writing_problem.html#ALE_definitions":[0,2,0,1],
 "writing_problem.html#ALE_expressions":[0,2,0,4],
@@ -156,7 +141,7 @@ var NAVTREEINDEX7 =
 "writing_problem.html#further_sections":[0,2,0,2],
 "writing_problem.html#index_expressions":[0,2,0,4,1],
 "writing_problem.html#modeling_ALE":[0,2,0],
-"writing_problem.html#modeling_cpp":[0,2,1],
+"writing_problem.html#modeling_cpp_python":[0,2,1],
 "writing_problem.html#objective_section":[0,2,0,2,0],
 "writing_problem.html#outputs_section":[0,2,0,2,1],
 "writing_problem.html#parameter_definitions":[0,2,0,1,0],
diff --git a/doc/html/output_variable_8h.html b/doc/html/output_variable_8h.html
index b6263a271babc5cc9a952a9c30aea02c502894a2..cad646cc26e97770d3b3ec60a2f15d943f4d81e3 100644
--- a/doc/html/output_variable_8h.html
+++ b/doc/html/output_variable_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/outputVariable.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/outputVariable.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -93,8 +93,8 @@ $(document).ready(function(){initNavTree('output_variable_8h.html','');});
 <div class="title">outputVariable.h File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="textblock"><code>#include &lt;string&gt;</code><br />
-<code>#include &quot;ffunc.hpp&quot;</code><br />
+<div class="textblock"><code>#include &quot;ffunc.hpp&quot;</code><br />
+<code>#include &lt;string&gt;</code><br />
 </div>
 <p><a href="output_variable_8h_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
@@ -118,7 +118,7 @@ Namespaces</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="output_variable_8h.html">outputVariable.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/output_variable_8h_source.html b/doc/html/output_variable_8h_source.html
index 4f6eb5b37edd9454747ec6d08bd6b2dd5cb123a3..684e23ffed52726012106434c3840fac2aeeaf0e 100644
--- a/doc/html/output_variable_8h_source.html
+++ b/doc/html/output_variable_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/outputVariable.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/outputVariable.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,14 +90,17 @@ $(document).ready(function(){initNavTree('output_variable_8h_source.html','');})
 <div class="title">outputVariable.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="output_variable_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file outputVariable.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing declaration of outputVariables used for communicating</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *        additional model output at the solution point</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;ffunc.hpp&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="structmaingo_1_1_output_variable.html">   34</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmaingo_1_1_output_variable.html">OutputVariable</a> {</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="structmaingo_1_1_output_variable.html#a5444c9dfb8eb89b4a2ddd679ff819322">   43</a></span>&#160;    <a class="code" href="structmaingo_1_1_output_variable.html#a5444c9dfb8eb89b4a2ddd679ff819322">OutputVariable</a>(<span class="keyword">const</span> std::string descIn, <span class="keyword">const</span> mc::FFVar valueIn):</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        <a class="code" href="structmaingo_1_1_output_variable.html#a655f9ec9bd57b58b546ea596c0ca792a">description</a>(descIn), <a class="code" href="structmaingo_1_1_output_variable.html#acd79e28304c45ee43806093b857489f2">value</a>(valueIn) {}</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="structmaingo_1_1_output_variable.html#a4bbebaf4d5245bad6a7038087948b49c">   52</a></span>&#160;    <a class="code" href="structmaingo_1_1_output_variable.html#a4bbebaf4d5245bad6a7038087948b49c">OutputVariable</a>(<span class="keyword">const</span> mc::FFVar valueIn, <span class="keyword">const</span> std::string descIn):</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;        <a class="code" href="structmaingo_1_1_output_variable.html#acd79e28304c45ee43806093b857489f2">value</a>(valueIn), <a class="code" href="structmaingo_1_1_output_variable.html#a655f9ec9bd57b58b546ea596c0ca792a">description</a>(descIn) {}</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="structmaingo_1_1_output_variable.html#aa21e6b3349541ef65b14e8385e15c516">   60</a></span>&#160;    <a class="code" href="structmaingo_1_1_output_variable.html#aa21e6b3349541ef65b14e8385e15c516">OutputVariable</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1_output_variable.html">OutputVariable</a>&amp; variableIn):</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;        <a class="code" href="structmaingo_1_1_output_variable.html#a655f9ec9bd57b58b546ea596c0ca792a">description</a>(variableIn.<a class="code" href="structmaingo_1_1_output_variable.html#a655f9ec9bd57b58b546ea596c0ca792a">description</a>), <a class="code" href="structmaingo_1_1_output_variable.html#acd79e28304c45ee43806093b857489f2">value</a>(variableIn.<a class="code" href="structmaingo_1_1_output_variable.html#acd79e28304c45ee43806093b857489f2">value</a>) {}</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="structmaingo_1_1_output_variable.html#a1187fff45ba11b8a8c98a117000893a8">   68</a></span>&#160;    <a class="code" href="structmaingo_1_1_output_variable.html">OutputVariable</a>&amp; <a class="code" href="structmaingo_1_1_output_variable.html#a1187fff45ba11b8a8c98a117000893a8">operator=</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1_output_variable.html">OutputVariable</a>&amp; variableIn)</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    {</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;        <a class="code" href="structmaingo_1_1_output_variable.html#a655f9ec9bd57b58b546ea596c0ca792a">description</a> = variableIn.<a class="code" href="structmaingo_1_1_output_variable.html#a655f9ec9bd57b58b546ea596c0ca792a">description</a>;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;        <a class="code" href="structmaingo_1_1_output_variable.html#acd79e28304c45ee43806093b857489f2">value</a>       = variableIn.<a class="code" href="structmaingo_1_1_output_variable.html#acd79e28304c45ee43806093b857489f2">value</a>;</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    }</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="structmaingo_1_1_output_variable.html#a655f9ec9bd57b58b546ea596c0ca792a">   75</a></span>&#160;    std::string <a class="code" href="structmaingo_1_1_output_variable.html#a655f9ec9bd57b58b546ea596c0ca792a">description</a>; </div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="structmaingo_1_1_output_variable.html#acd79e28304c45ee43806093b857489f2">   76</a></span>&#160;    mc::FFVar <a class="code" href="structmaingo_1_1_output_variable.html#acd79e28304c45ee43806093b857489f2">value</a>;         </div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;};</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="structmaingo_1_1_output_variable_html_a5444c9dfb8eb89b4a2ddd679ff819322"><div class="ttname"><a href="structmaingo_1_1_output_variable.html#a5444c9dfb8eb89b4a2ddd679ff819322">maingo::OutputVariable::OutputVariable</a></div><div class="ttdeci">OutputVariable(const std::string descIn, const mc::FFVar valueIn)</div><div class="ttdoc">Constructor for use in the evaluate function.</div><div class="ttdef"><b>Definition:</b> outputVariable.h:43</div></div>
-<div class="ttc" id="structmaingo_1_1_output_variable_html"><div class="ttname"><a href="structmaingo_1_1_output_variable.html">maingo::OutputVariable</a></div><div class="ttdoc">Struct for storing additional output variables.</div><div class="ttdef"><b>Definition:</b> outputVariable.h:34</div></div>
-<div class="ttc" id="structmaingo_1_1_output_variable_html_a1187fff45ba11b8a8c98a117000893a8"><div class="ttname"><a href="structmaingo_1_1_output_variable.html#a1187fff45ba11b8a8c98a117000893a8">maingo::OutputVariable::operator=</a></div><div class="ttdeci">OutputVariable &amp; operator=(const OutputVariable &amp;variableIn)</div><div class="ttdoc">Copy assignment operator.</div><div class="ttdef"><b>Definition:</b> outputVariable.h:68</div></div>
-<div class="ttc" id="structmaingo_1_1_output_variable_html_a4bbebaf4d5245bad6a7038087948b49c"><div class="ttname"><a href="structmaingo_1_1_output_variable.html#a4bbebaf4d5245bad6a7038087948b49c">maingo::OutputVariable::OutputVariable</a></div><div class="ttdeci">OutputVariable(const mc::FFVar valueIn, const std::string descIn)</div><div class="ttdoc">Constructor for use in the evaluate function.</div><div class="ttdef"><b>Definition:</b> outputVariable.h:52</div></div>
-<div class="ttc" id="structmaingo_1_1_output_variable_html_acd79e28304c45ee43806093b857489f2"><div class="ttname"><a href="structmaingo_1_1_output_variable.html#acd79e28304c45ee43806093b857489f2">maingo::OutputVariable::value</a></div><div class="ttdeci">mc::FFVar value</div><div class="ttdef"><b>Definition:</b> outputVariable.h:76</div></div>
-<div class="ttc" id="structmaingo_1_1_output_variable_html_a655f9ec9bd57b58b546ea596c0ca792a"><div class="ttname"><a href="structmaingo_1_1_output_variable.html#a655f9ec9bd57b58b546ea596c0ca792a">maingo::OutputVariable::description</a></div><div class="ttdeci">std::string description</div><div class="ttdef"><b>Definition:</b> outputVariable.h:75</div></div>
-<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO</div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
-<div class="ttc" id="structmaingo_1_1_output_variable_html_aa21e6b3349541ef65b14e8385e15c516"><div class="ttname"><a href="structmaingo_1_1_output_variable.html#aa21e6b3349541ef65b14e8385e15c516">maingo::OutputVariable::OutputVariable</a></div><div class="ttdeci">OutputVariable(const OutputVariable &amp;variableIn)</div><div class="ttdoc">Copy constructor.</div><div class="ttdef"><b>Definition:</b> outputVariable.h:60</div></div>
+<a href="output_variable_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;ffunc.hpp&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="structmaingo_1_1_output_variable.html">   29</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmaingo_1_1_output_variable.html">OutputVariable</a> {</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="structmaingo_1_1_output_variable.html#a5444c9dfb8eb89b4a2ddd679ff819322">   38</a></span>&#160;    <a class="code" href="structmaingo_1_1_output_variable.html#a5444c9dfb8eb89b4a2ddd679ff819322">OutputVariable</a>(<span class="keyword">const</span> std::string descIn, <span class="keyword">const</span> mc::FFVar valueIn):</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;        <a class="code" href="structmaingo_1_1_output_variable.html#a655f9ec9bd57b58b546ea596c0ca792a">description</a>(descIn), <a class="code" href="structmaingo_1_1_output_variable.html#acd79e28304c45ee43806093b857489f2">value</a>(valueIn) {}</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="structmaingo_1_1_output_variable.html#a4bbebaf4d5245bad6a7038087948b49c">   47</a></span>&#160;    <a class="code" href="structmaingo_1_1_output_variable.html#a4bbebaf4d5245bad6a7038087948b49c">OutputVariable</a>(<span class="keyword">const</span> mc::FFVar valueIn, <span class="keyword">const</span> std::string descIn):</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;        <a class="code" href="structmaingo_1_1_output_variable.html#acd79e28304c45ee43806093b857489f2">value</a>(valueIn), <a class="code" href="structmaingo_1_1_output_variable.html#a655f9ec9bd57b58b546ea596c0ca792a">description</a>(descIn) {}</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="structmaingo_1_1_output_variable.html#a9d13cfce0e3a1142c7f14d5b84d58028">   55</a></span>&#160;    <a class="code" href="structmaingo_1_1_output_variable.html#a9d13cfce0e3a1142c7f14d5b84d58028">OutputVariable</a>(<span class="keyword">const</span> std::tuple&lt;mc::FFVar, std::string&gt; inTuple):</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;        <a class="code" href="structmaingo_1_1_output_variable.html#acd79e28304c45ee43806093b857489f2">value</a>(std::get&lt;0&gt;(inTuple)), <a class="code" href="structmaingo_1_1_output_variable.html#a655f9ec9bd57b58b546ea596c0ca792a">description</a>(std::get&lt;1&gt;(inTuple)) {}</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="structmaingo_1_1_output_variable.html#af468c75f57d9d2debe8e3e3ecf8aa480">   63</a></span>&#160;    <a class="code" href="structmaingo_1_1_output_variable.html#af468c75f57d9d2debe8e3e3ecf8aa480">OutputVariable</a>(<span class="keyword">const</span> std::tuple&lt;std::string, mc::FFVar&gt; inTuple):</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;        <a class="code" href="structmaingo_1_1_output_variable.html#acd79e28304c45ee43806093b857489f2">value</a>(std::get&lt;1&gt;(inTuple)), <a class="code" href="structmaingo_1_1_output_variable.html#a655f9ec9bd57b58b546ea596c0ca792a">description</a>(std::get&lt;0&gt;(inTuple)) {}</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <a class="code" href="structmaingo_1_1_output_variable.html#a09d1a2a865522f69c19cb057bc95f03f">~OutputVariable</a>() = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    <a class="code" href="structmaingo_1_1_output_variable.html#a5444c9dfb8eb89b4a2ddd679ff819322">OutputVariable</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1_output_variable.html">OutputVariable</a>&amp; variableIn) = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    <a class="code" href="structmaingo_1_1_output_variable.html#a5444c9dfb8eb89b4a2ddd679ff819322">OutputVariable</a>(<a class="code" href="structmaingo_1_1_output_variable.html">OutputVariable</a>&amp;&amp; variableIn) = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    <a class="code" href="structmaingo_1_1_output_variable.html">OutputVariable</a>&amp; <a class="code" href="structmaingo_1_1_output_variable.html#ab80383105b9791c367311daf64618890">operator=</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1_output_variable.html">OutputVariable</a>&amp; variableIn) = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    <a class="code" href="structmaingo_1_1_output_variable.html">OutputVariable</a>&amp; <a class="code" href="structmaingo_1_1_output_variable.html#ab80383105b9791c367311daf64618890">operator=</a>(<a class="code" href="structmaingo_1_1_output_variable.html">OutputVariable</a>&amp;&amp; variableIn) = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="structmaingo_1_1_output_variable.html#a46108bea6aa824e9138db071db917035">  102</a></span>&#160;    <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_output_variable.html#a46108bea6aa824e9138db071db917035">operator==</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1_output_variable.html">OutputVariable</a>&amp; other)<span class="keyword"> const</span></div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;<span class="keyword">    </span>{</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;        <span class="keywordflow">return</span> ((<a class="code" href="structmaingo_1_1_output_variable.html#a655f9ec9bd57b58b546ea596c0ca792a">description</a> == other.<a class="code" href="structmaingo_1_1_output_variable.html#a655f9ec9bd57b58b546ea596c0ca792a">description</a>) &amp;&amp; (<a class="code" href="structmaingo_1_1_output_variable.html#acd79e28304c45ee43806093b857489f2">value</a> == other.<a class="code" href="structmaingo_1_1_output_variable.html#acd79e28304c45ee43806093b857489f2">value</a>));</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    }</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="structmaingo_1_1_output_variable.html#acd79e28304c45ee43806093b857489f2">  107</a></span>&#160;    mc::FFVar <a class="code" href="structmaingo_1_1_output_variable.html#acd79e28304c45ee43806093b857489f2">value</a>         = {}; </div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="structmaingo_1_1_output_variable.html#a655f9ec9bd57b58b546ea596c0ca792a">  108</a></span>&#160;    std::string <a class="code" href="structmaingo_1_1_output_variable.html#a655f9ec9bd57b58b546ea596c0ca792a">description</a> = {}; </div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;};</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="structmaingo_1_1_output_variable_html_a09d1a2a865522f69c19cb057bc95f03f"><div class="ttname"><a href="structmaingo_1_1_output_variable.html#a09d1a2a865522f69c19cb057bc95f03f">maingo::OutputVariable::~OutputVariable</a></div><div class="ttdeci">~OutputVariable()=default</div><div class="ttdoc">Destructor. </div></div>
+<div class="ttc" id="structmaingo_1_1_output_variable_html_a9d13cfce0e3a1142c7f14d5b84d58028"><div class="ttname"><a href="structmaingo_1_1_output_variable.html#a9d13cfce0e3a1142c7f14d5b84d58028">maingo::OutputVariable::OutputVariable</a></div><div class="ttdeci">OutputVariable(const std::tuple&lt; mc::FFVar, std::string &gt; inTuple)</div><div class="ttdoc">Constructor for use in the evaluate function. </div><div class="ttdef"><b>Definition:</b> outputVariable.h:55</div></div>
+<div class="ttc" id="structmaingo_1_1_output_variable_html_a5444c9dfb8eb89b4a2ddd679ff819322"><div class="ttname"><a href="structmaingo_1_1_output_variable.html#a5444c9dfb8eb89b4a2ddd679ff819322">maingo::OutputVariable::OutputVariable</a></div><div class="ttdeci">OutputVariable(const std::string descIn, const mc::FFVar valueIn)</div><div class="ttdoc">Constructor for use in the evaluate function. </div><div class="ttdef"><b>Definition:</b> outputVariable.h:38</div></div>
+<div class="ttc" id="structmaingo_1_1_output_variable_html"><div class="ttname"><a href="structmaingo_1_1_output_variable.html">maingo::OutputVariable</a></div><div class="ttdoc">Struct for storing additional output variables. </div><div class="ttdef"><b>Definition:</b> outputVariable.h:29</div></div>
+<div class="ttc" id="structmaingo_1_1_output_variable_html_a46108bea6aa824e9138db071db917035"><div class="ttname"><a href="structmaingo_1_1_output_variable.html#a46108bea6aa824e9138db071db917035">maingo::OutputVariable::operator==</a></div><div class="ttdeci">bool operator==(const OutputVariable &amp;other) const</div><div class="ttdoc">Equality comparison operator. </div><div class="ttdef"><b>Definition:</b> outputVariable.h:102</div></div>
+<div class="ttc" id="structmaingo_1_1_output_variable_html_a4bbebaf4d5245bad6a7038087948b49c"><div class="ttname"><a href="structmaingo_1_1_output_variable.html#a4bbebaf4d5245bad6a7038087948b49c">maingo::OutputVariable::OutputVariable</a></div><div class="ttdeci">OutputVariable(const mc::FFVar valueIn, const std::string descIn)</div><div class="ttdoc">Constructor for use in the evaluate function. </div><div class="ttdef"><b>Definition:</b> outputVariable.h:47</div></div>
+<div class="ttc" id="structmaingo_1_1_output_variable_html_acd79e28304c45ee43806093b857489f2"><div class="ttname"><a href="structmaingo_1_1_output_variable.html#acd79e28304c45ee43806093b857489f2">maingo::OutputVariable::value</a></div><div class="ttdeci">mc::FFVar value</div><div class="ttdef"><b>Definition:</b> outputVariable.h:107</div></div>
+<div class="ttc" id="structmaingo_1_1_output_variable_html_af468c75f57d9d2debe8e3e3ecf8aa480"><div class="ttname"><a href="structmaingo_1_1_output_variable.html#af468c75f57d9d2debe8e3e3ecf8aa480">maingo::OutputVariable::OutputVariable</a></div><div class="ttdeci">OutputVariable(const std::tuple&lt; std::string, mc::FFVar &gt; inTuple)</div><div class="ttdoc">Constructor for use in the evaluate function. </div><div class="ttdef"><b>Definition:</b> outputVariable.h:63</div></div>
+<div class="ttc" id="structmaingo_1_1_output_variable_html_a655f9ec9bd57b58b546ea596c0ca792a"><div class="ttname"><a href="structmaingo_1_1_output_variable.html#a655f9ec9bd57b58b546ea596c0ca792a">maingo::OutputVariable::description</a></div><div class="ttdeci">std::string description</div><div class="ttdef"><b>Definition:</b> outputVariable.h:108</div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
+<div class="ttc" id="structmaingo_1_1_output_variable_html_ab80383105b9791c367311daf64618890"><div class="ttname"><a href="structmaingo_1_1_output_variable.html#ab80383105b9791c367311daf64618890">maingo::OutputVariable::operator=</a></div><div class="ttdeci">OutputVariable &amp; operator=(const OutputVariable &amp;variableIn)=default</div><div class="ttdoc">Copy assignment operator. </div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -106,7 +109,7 @@ $(document).ready(function(){initNavTree('output_variable_8h_source.html','');})
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="output_variable_8h.html">outputVariable.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/pages.html b/doc/html/pages.html
index 3074dbd7030d1de47d35c0dfe46061e9dd88ee77..bdea581c005e30a7a1cd63f2513cb633de40436a 100644
--- a/doc/html/pages.html
+++ b/doc/html/pages.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Related Pages</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -91,6 +91,8 @@ $(document).ready(function(){initNavTree('pages.html','');});
 </div><!--header-->
 <div class="contents">
 <div class="textblock">Here is a list of all related documentation pages:</div><div class="directory">
+<table class="directory">
+</table>
 </div><!-- directory -->
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -99,7 +101,7 @@ $(document).ready(function(){initNavTree('pages.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/parallel_version.html b/doc/html/parallel_version.html
index fb3b90d6cb1432afd89d7f852c206597d1fc5973..b2206480fc58aefd14ef3ec32f981c74068a79fa 100644
--- a/doc/html/parallel_version.html
+++ b/doc/html/parallel_version.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: MAiNGO - Parallel Version</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -85,16 +85,15 @@ $(document).ready(function(){initNavTree('parallel_version.html','');});
 </iframe>
 </div>
 
-<div class="PageDoc"><div class="header">
+<div class="header">
   <div class="headertitle">
 <div class="title">MAiNGO - Parallel Version </div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="textblock"><p>There is also a parallelized version of MAiNGO. Its main use is for large problems where the B&amp;B algorithm needs a long time to converge. The parallel version can be accessed and compiled the same way as the sequential version. In order to generate a project of the parallel MAiNGO version please set the CMake variable <b>MAiNGO_use_mpi</b> to true and make sure you have an MPI library installed. Depending on where it is installed, you may need to adapt the file src/FindMPI.cmake.</p>
+<div class="textblock"><p>There is also a parallelized version of MAiNGO, which allows the use of multiple processors via MPI. Its main use is for large problems where the B&amp;B algorithm needs a long time to converge. The parallel version can be accessed and compiled the same way as the sequential version. In order to generate a project of the parallel MAiNGO version please set the CMake variable <code>MAiNGO_use_mpi=true</code> and make sure you have an MPI library installed. Unfortunately, the parallel version is not yet supported when using MAiNGO from Python.</p>
 <p>To run MAiNGO using MPI, type </p><div class="fragment"><div class="line">&lt;mpiexec&gt; -n &lt;numberOfProcessors&gt; -wdir &lt;workingDirectory&gt; &lt;pathToYourMAiNGOExecutable&gt;</div></div><!-- fragment --><p> where <code>&lt;mpiexec&gt;</code> is the correct mpiexec executable of your MPI library.</p>
-<p>It may happen that MPI asks you for an username and a password. If you type in a wrong password or a wrong username resulting in MPI not allowing you to proceed. In this case just call "mpiexec -remove" in the command window. </p>
-</div></div><!-- PageDoc -->
-</div><!-- contents -->
+<p>It may happen that MPI asks you for an username and a password. If you type in a wrong password or a wrong username resulting in MPI not allowing you to proceed. In this case you can reset it via <code>&lt;mpiexec&gt; -remove</code>. </p>
+</div></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
@@ -102,7 +101,7 @@ $(document).ready(function(){initNavTree('parallel_version.html','');});
     <li class="navelem"><a class="el" href="index.html">McCormick-based Algorithm for mixed-integer Nonlinear Global Optimization</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/program_8h.html b/doc/html/program_8h.html
index 0796b2da0f59f07d4cbc7f8454217a481421ed19..5b90dd4cd2acefa5eb4c78063089af095844ad4e 100644
--- a/doc/html/program_8h.html
+++ b/doc/html/program_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/program.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/program.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -118,7 +118,7 @@ Namespaces</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="program_8h.html">program.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/program_8h_source.html b/doc/html/program_8h_source.html
index e4fadfc751c0ea6aba74752819558c735f2a9889..4baae71c94d11a73289f17b890a7b195c4489f7f 100644
--- a/doc/html/program_8h_source.html
+++ b/doc/html/program_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/program.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/program.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,13 +90,13 @@ $(document).ready(function(){initNavTree('program_8h_source.html','');});
 <div class="title">program.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="program_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file progam.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File declaring the Program struct for storing ALE objects describing an</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *        optimization problem.</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;expression.hpp&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;list&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="structmaingo_1_1_program.html">   29</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmaingo_1_1_program.html">Program</a> {</div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="structmaingo_1_1_program.html#a91830e99c06a7bd5c40a95a4038bae7b">   30</a></span>&#160;    ale::expression&lt;ale::real&lt;0&gt;&gt; <a class="code" href="structmaingo_1_1_program.html#a91830e99c06a7bd5c40a95a4038bae7b">mObjective</a>;                 </div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="structmaingo_1_1_program.html#a5066677b6079a978930b7d582eaf1f72">   31</a></span>&#160;    std::list&lt;ale::expression&lt;ale::boolean&lt;0&gt;&gt;&gt; <a class="code" href="structmaingo_1_1_program.html#a5066677b6079a978930b7d582eaf1f72">mConstraints</a>; </div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="structmaingo_1_1_program.html#a7d49b5c89b54392bd35f6ac64c9d4b40">   32</a></span>&#160;    std::list&lt;ale::expression&lt;ale::boolean&lt;0&gt;&gt;&gt; <a class="code" href="structmaingo_1_1_program.html#a7d49b5c89b54392bd35f6ac64c9d4b40">mRelaxations</a>; </div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="structmaingo_1_1_program.html#a93f7319ccde52f3649fef8acec8759fa">   33</a></span>&#160;    std::list&lt;ale::expression&lt;ale::boolean&lt;0&gt;&gt;&gt; <a class="code" href="structmaingo_1_1_program.html#a93f7319ccde52f3649fef8acec8759fa">mSquashes</a>;    </div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="structmaingo_1_1_program.html#aa9dd284c244d4f9c1470b1d1bbd791d1">   34</a></span>&#160;    std::list&lt;ale::expression&lt;ale::real&lt;0&gt;&gt;&gt; <a class="code" href="structmaingo_1_1_program.html#aa9dd284c244d4f9c1470b1d1bbd791d1">mOutputs</a>;        </div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;};</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;}    <span class="comment">// namespace maingo</span></div><div class="ttc" id="structmaingo_1_1_program_html_a91830e99c06a7bd5c40a95a4038bae7b"><div class="ttname"><a href="structmaingo_1_1_program.html#a91830e99c06a7bd5c40a95a4038bae7b">maingo::Program::mObjective</a></div><div class="ttdeci">ale::expression&lt; ale::real&lt; 0 &gt; &gt; mObjective</div><div class="ttdef"><b>Definition:</b> program.h:30</div></div>
-<div class="ttc" id="structmaingo_1_1_program_html"><div class="ttname"><a href="structmaingo_1_1_program.html">maingo::Program</a></div><div class="ttdoc">Container Class for ALE expressions comprising an optimization problem.</div><div class="ttdef"><b>Definition:</b> program.h:29</div></div>
-<div class="ttc" id="structmaingo_1_1_program_html_a93f7319ccde52f3649fef8acec8759fa"><div class="ttname"><a href="structmaingo_1_1_program.html#a93f7319ccde52f3649fef8acec8759fa">maingo::Program::mSquashes</a></div><div class="ttdeci">std::list&lt; ale::expression&lt; ale::boolean&lt; 0 &gt; &gt; &gt; mSquashes</div><div class="ttdef"><b>Definition:</b> program.h:33</div></div>
-<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO</div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
-<div class="ttc" id="structmaingo_1_1_program_html_a7d49b5c89b54392bd35f6ac64c9d4b40"><div class="ttname"><a href="structmaingo_1_1_program.html#a7d49b5c89b54392bd35f6ac64c9d4b40">maingo::Program::mRelaxations</a></div><div class="ttdeci">std::list&lt; ale::expression&lt; ale::boolean&lt; 0 &gt; &gt; &gt; mRelaxations</div><div class="ttdef"><b>Definition:</b> program.h:32</div></div>
-<div class="ttc" id="structmaingo_1_1_program_html_a5066677b6079a978930b7d582eaf1f72"><div class="ttname"><a href="structmaingo_1_1_program.html#a5066677b6079a978930b7d582eaf1f72">maingo::Program::mConstraints</a></div><div class="ttdeci">std::list&lt; ale::expression&lt; ale::boolean&lt; 0 &gt; &gt; &gt; mConstraints</div><div class="ttdef"><b>Definition:</b> program.h:31</div></div>
-<div class="ttc" id="structmaingo_1_1_program_html_aa9dd284c244d4f9c1470b1d1bbd791d1"><div class="ttname"><a href="structmaingo_1_1_program.html#aa9dd284c244d4f9c1470b1d1bbd791d1">maingo::Program::mOutputs</a></div><div class="ttdeci">std::list&lt; ale::expression&lt; ale::real&lt; 0 &gt; &gt; &gt; mOutputs</div><div class="ttdef"><b>Definition:</b> program.h:34</div></div>
+<a href="program_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;expression.hpp&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &lt;list&gt;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="structmaingo_1_1_program.html">   24</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmaingo_1_1_program.html">Program</a> {</div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="structmaingo_1_1_program.html#ac8bcb8f9940fb42b8818612b837a3cc3">   25</a></span>&#160;    std::list&lt;ale::expression&lt;ale::real&lt;0&gt;&gt;&gt; <a class="code" href="structmaingo_1_1_program.html#ac8bcb8f9940fb42b8818612b837a3cc3">mObjective</a>;      </div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="structmaingo_1_1_program.html#a5066677b6079a978930b7d582eaf1f72">   26</a></span>&#160;    std::list&lt;ale::expression&lt;ale::boolean&lt;0&gt;&gt;&gt; <a class="code" href="structmaingo_1_1_program.html#a5066677b6079a978930b7d582eaf1f72">mConstraints</a>; </div><div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="structmaingo_1_1_program.html#a7d49b5c89b54392bd35f6ac64c9d4b40">   27</a></span>&#160;    std::list&lt;ale::expression&lt;ale::boolean&lt;0&gt;&gt;&gt; <a class="code" href="structmaingo_1_1_program.html#a7d49b5c89b54392bd35f6ac64c9d4b40">mRelaxations</a>; </div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="structmaingo_1_1_program.html#a93f7319ccde52f3649fef8acec8759fa">   28</a></span>&#160;    std::list&lt;ale::expression&lt;ale::boolean&lt;0&gt;&gt;&gt; <a class="code" href="structmaingo_1_1_program.html#a93f7319ccde52f3649fef8acec8759fa">mSquashes</a>;    </div><div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="structmaingo_1_1_program.html#aa9dd284c244d4f9c1470b1d1bbd791d1">   29</a></span>&#160;    std::list&lt;ale::expression&lt;ale::real&lt;0&gt;&gt;&gt; <a class="code" href="structmaingo_1_1_program.html#aa9dd284c244d4f9c1470b1d1bbd791d1">mOutputs</a>;        </div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;};</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;}    <span class="comment">// namespace maingo</span></div><div class="ttc" id="structmaingo_1_1_program_html"><div class="ttname"><a href="structmaingo_1_1_program.html">maingo::Program</a></div><div class="ttdoc">Container Class for ALE expressions comprising an optimization problem. </div><div class="ttdef"><b>Definition:</b> program.h:24</div></div>
+<div class="ttc" id="structmaingo_1_1_program_html_a93f7319ccde52f3649fef8acec8759fa"><div class="ttname"><a href="structmaingo_1_1_program.html#a93f7319ccde52f3649fef8acec8759fa">maingo::Program::mSquashes</a></div><div class="ttdeci">std::list&lt; ale::expression&lt; ale::boolean&lt; 0 &gt; &gt; &gt; mSquashes</div><div class="ttdef"><b>Definition:</b> program.h:28</div></div>
+<div class="ttc" id="structmaingo_1_1_program_html_ac8bcb8f9940fb42b8818612b837a3cc3"><div class="ttname"><a href="structmaingo_1_1_program.html#ac8bcb8f9940fb42b8818612b837a3cc3">maingo::Program::mObjective</a></div><div class="ttdeci">std::list&lt; ale::expression&lt; ale::real&lt; 0 &gt; &gt; &gt; mObjective</div><div class="ttdef"><b>Definition:</b> program.h:25</div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
+<div class="ttc" id="structmaingo_1_1_program_html_a7d49b5c89b54392bd35f6ac64c9d4b40"><div class="ttname"><a href="structmaingo_1_1_program.html#a7d49b5c89b54392bd35f6ac64c9d4b40">maingo::Program::mRelaxations</a></div><div class="ttdeci">std::list&lt; ale::expression&lt; ale::boolean&lt; 0 &gt; &gt; &gt; mRelaxations</div><div class="ttdef"><b>Definition:</b> program.h:27</div></div>
+<div class="ttc" id="structmaingo_1_1_program_html_a5066677b6079a978930b7d582eaf1f72"><div class="ttname"><a href="structmaingo_1_1_program.html#a5066677b6079a978930b7d582eaf1f72">maingo::Program::mConstraints</a></div><div class="ttdeci">std::list&lt; ale::expression&lt; ale::boolean&lt; 0 &gt; &gt; &gt; mConstraints</div><div class="ttdef"><b>Definition:</b> program.h:26</div></div>
+<div class="ttc" id="structmaingo_1_1_program_html_aa9dd284c244d4f9c1470b1d1bbd791d1"><div class="ttname"><a href="structmaingo_1_1_program.html#aa9dd284c244d4f9c1470b1d1bbd791d1">maingo::Program::mOutputs</a></div><div class="ttdeci">std::list&lt; ale::expression&lt; ale::real&lt; 0 &gt; &gt; &gt; mOutputs</div><div class="ttdef"><b>Definition:</b> program.h:29</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -105,7 +105,7 @@ $(document).ready(function(){initNavTree('program_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="program_8h.html">program.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/program_parser_8cpp.html b/doc/html/program_parser_8cpp.html
index c1b39bcc398a910126fae1da42f7a568aa065cdc..5c0b91588911448e4368317297201a4c0b46a0e0 100644
--- a/doc/html/program_parser_8cpp.html
+++ b/doc/html/program_parser_8cpp.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/src/programParser.cpp File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/src/programParser.cpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -108,7 +108,7 @@ Namespaces</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="program_parser_8cpp.html">programParser.cpp</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/program_parser_8h.html b/doc/html/program_parser_8h.html
index 300f7a871835df4e2eecd968ac71541d23a5b3df..36d4a59e85fa49512add9c5375daa0a95560f043 100644
--- a/doc/html/program_parser_8h.html
+++ b/doc/html/program_parser_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/programParser.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/programParser.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -101,7 +101,7 @@ $(document).ready(function(){initNavTree('program_parser_8h.html','');});
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
 Classes</h2></td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmaingo_1_1_program_parser.html">maingo::ProgramParser</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parser specialization for parsing a <a class="el" href="structmaingo_1_1_program.html" title="Container Class for ALE expressions comprising an optimization problem.">maingo::Program</a>.  <a href="classmaingo_1_1_program_parser.html#details">More...</a><br /></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parser specialization for parsing a <a class="el" href="structmaingo_1_1_program.html" title="Container Class for ALE expressions comprising an optimization problem. ">maingo::Program</a>.  <a href="classmaingo_1_1_program_parser.html#details">More...</a><br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
@@ -118,7 +118,7 @@ Namespaces</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="program_parser_8h.html">programParser.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/program_parser_8h_source.html b/doc/html/program_parser_8h_source.html
index bb602fe8fb1a235ed94d7f97d84c6b15f99ec500..8fd593786302cd53fd8fd35d19593467ea87ff7d 100644
--- a/doc/html/program_parser_8h_source.html
+++ b/doc/html/program_parser_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/programParser.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/programParser.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,19 +90,19 @@ $(document).ready(function(){initNavTree('program_parser_8h_source.html','');});
 <div class="title">programParser.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="program_parser_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file programParser.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File declaring the ProgramParser specialization of the ale::parser.</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="program_8h.html">program.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;parser.hpp&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="classmaingo_1_1_program_parser.html">   28</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1_program_parser.html">ProgramParser</a>: <span class="keyword">private</span> ale::parser {</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    <a class="code" href="classmaingo_1_1_program_parser.html#a63f53f3900dc996ca94137a017805f63">ProgramParser</a>(std::istream&amp;, ale::symbol_table&amp;); </div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_program_parser.html#ae4d58b1181c60c3f2bee2e19f0cf0a4d">parse</a>(<a class="code" href="structmaingo_1_1_program.html">Program</a>&amp;); </div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    <span class="keyword">using</span> ale::parser::clear;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    <span class="keyword">using</span> ale::parser::fail;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    <span class="keyword">using</span> ale::parser::print_errors;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_program_parser.html#a0e51ca5ae8eacb0f46dad2d6f044a4ae">parse_definitions</a>();         </div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_program_parser.html#ac3c4fcd63f8f1792a4e34a2fe3ddc5ab">parse_objective</a>(<a class="code" href="structmaingo_1_1_program.html">Program</a>&amp;);   </div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_program_parser.html#a5ef4bf8a9a2932fba2436581417777ca">parse_constraints</a>(<a class="code" href="structmaingo_1_1_program.html">Program</a>&amp;); </div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_program_parser.html#a3b1515bd940df78bb3a2605cb8f019b7">parse_relaxations</a>(<a class="code" href="structmaingo_1_1_program.html">Program</a>&amp;); </div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_program_parser.html#ae219ff6e1a0528011b39c3014f65fddf">parse_squashes</a>(<a class="code" href="structmaingo_1_1_program.html">Program</a>&amp;);    </div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_program_parser.html#a7b3ac04936f2bc7a4f4e536b93f52d6e">parse_outputs</a>(<a class="code" href="structmaingo_1_1_program.html">Program</a>&amp;);     </div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_program_parser.html#af10f0318985e4aee4fb7da75614daad8">recover_block</a>(); </div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;};</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;}    <span class="comment">// namespace maingo</span></div><div class="ttc" id="classmaingo_1_1_program_parser_html_a5ef4bf8a9a2932fba2436581417777ca"><div class="ttname"><a href="classmaingo_1_1_program_parser.html#a5ef4bf8a9a2932fba2436581417777ca">maingo::ProgramParser::parse_constraints</a></div><div class="ttdeci">void parse_constraints(Program &amp;)</div><div class="ttdef"><b>Definition:</b> programParser.cpp:139</div></div>
-<div class="ttc" id="classmaingo_1_1_program_parser_html"><div class="ttname"><a href="classmaingo_1_1_program_parser.html">maingo::ProgramParser</a></div><div class="ttdoc">Parser specialization for parsing a maingo::Program.</div><div class="ttdef"><b>Definition:</b> programParser.h:28</div></div>
-<div class="ttc" id="structmaingo_1_1_program_html"><div class="ttname"><a href="structmaingo_1_1_program.html">maingo::Program</a></div><div class="ttdoc">Container Class for ALE expressions comprising an optimization problem.</div><div class="ttdef"><b>Definition:</b> program.h:29</div></div>
-<div class="ttc" id="classmaingo_1_1_program_parser_html_a7b3ac04936f2bc7a4f4e536b93f52d6e"><div class="ttname"><a href="classmaingo_1_1_program_parser.html#a7b3ac04936f2bc7a4f4e536b93f52d6e">maingo::ProgramParser::parse_outputs</a></div><div class="ttdeci">void parse_outputs(Program &amp;)</div><div class="ttdef"><b>Definition:</b> programParser.cpp:184</div></div>
-<div class="ttc" id="classmaingo_1_1_program_parser_html_a0e51ca5ae8eacb0f46dad2d6f044a4ae"><div class="ttname"><a href="classmaingo_1_1_program_parser.html#a0e51ca5ae8eacb0f46dad2d6f044a4ae">maingo::ProgramParser::parse_definitions</a></div><div class="ttdeci">void parse_definitions()</div><div class="ttdef"><b>Definition:</b> programParser.cpp:110</div></div>
+<a href="program_parser_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="program_8h.html">program.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &quot;parser.hpp&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="classmaingo_1_1_program_parser.html">   24</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1_program_parser.html">ProgramParser</a>: <span class="keyword">private</span> ale::parser {</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    <a class="code" href="classmaingo_1_1_program_parser.html#a63f53f3900dc996ca94137a017805f63">ProgramParser</a>(std::istream&amp;, ale::symbol_table&amp;); </div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_program_parser.html#ae4d58b1181c60c3f2bee2e19f0cf0a4d">parse</a>(<a class="code" href="structmaingo_1_1_program.html">Program</a>&amp;); </div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    <span class="keyword">using</span> ale::parser::clear;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    <span class="keyword">using</span> ale::parser::fail;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    <span class="keyword">using</span> ale::parser::print_errors;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_program_parser.html#a0e51ca5ae8eacb0f46dad2d6f044a4ae">parse_definitions</a>();         </div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_program_parser.html#ac3c4fcd63f8f1792a4e34a2fe3ddc5ab">parse_objective</a>(<a class="code" href="structmaingo_1_1_program.html">Program</a>&amp;);   </div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_program_parser.html#a5ef4bf8a9a2932fba2436581417777ca">parse_constraints</a>(<a class="code" href="structmaingo_1_1_program.html">Program</a>&amp;); </div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_program_parser.html#a3b1515bd940df78bb3a2605cb8f019b7">parse_relaxations</a>(<a class="code" href="structmaingo_1_1_program.html">Program</a>&amp;); </div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_program_parser.html#ae219ff6e1a0528011b39c3014f65fddf">parse_squashes</a>(<a class="code" href="structmaingo_1_1_program.html">Program</a>&amp;);    </div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_program_parser.html#a7b3ac04936f2bc7a4f4e536b93f52d6e">parse_outputs</a>(<a class="code" href="structmaingo_1_1_program.html">Program</a>&amp;);     </div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_program_parser.html#af10f0318985e4aee4fb7da75614daad8">recover_block</a>(); </div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;};</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;}    <span class="comment">// namespace maingo</span></div><div class="ttc" id="classmaingo_1_1_program_parser_html_a5ef4bf8a9a2932fba2436581417777ca"><div class="ttname"><a href="classmaingo_1_1_program_parser.html#a5ef4bf8a9a2932fba2436581417777ca">maingo::ProgramParser::parse_constraints</a></div><div class="ttdeci">void parse_constraints(Program &amp;)</div><div class="ttdef"><b>Definition:</b> programParser.cpp:134</div></div>
+<div class="ttc" id="classmaingo_1_1_program_parser_html"><div class="ttname"><a href="classmaingo_1_1_program_parser.html">maingo::ProgramParser</a></div><div class="ttdoc">Parser specialization for parsing a maingo::Program. </div><div class="ttdef"><b>Definition:</b> programParser.h:24</div></div>
+<div class="ttc" id="structmaingo_1_1_program_html"><div class="ttname"><a href="structmaingo_1_1_program.html">maingo::Program</a></div><div class="ttdoc">Container Class for ALE expressions comprising an optimization problem. </div><div class="ttdef"><b>Definition:</b> program.h:24</div></div>
+<div class="ttc" id="classmaingo_1_1_program_parser_html_a7b3ac04936f2bc7a4f4e536b93f52d6e"><div class="ttname"><a href="classmaingo_1_1_program_parser.html#a7b3ac04936f2bc7a4f4e536b93f52d6e">maingo::ProgramParser::parse_outputs</a></div><div class="ttdeci">void parse_outputs(Program &amp;)</div><div class="ttdef"><b>Definition:</b> programParser.cpp:179</div></div>
+<div class="ttc" id="classmaingo_1_1_program_parser_html_a0e51ca5ae8eacb0f46dad2d6f044a4ae"><div class="ttname"><a href="classmaingo_1_1_program_parser.html#a0e51ca5ae8eacb0f46dad2d6f044a4ae">maingo::ProgramParser::parse_definitions</a></div><div class="ttdeci">void parse_definitions()</div><div class="ttdef"><b>Definition:</b> programParser.cpp:106</div></div>
 <div class="ttc" id="program_8h_html"><div class="ttname"><a href="program_8h.html">program.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1_program_parser_html_a3b1515bd940df78bb3a2605cb8f019b7"><div class="ttname"><a href="classmaingo_1_1_program_parser.html#a3b1515bd940df78bb3a2605cb8f019b7">maingo::ProgramParser::parse_relaxations</a></div><div class="ttdeci">void parse_relaxations(Program &amp;)</div><div class="ttdef"><b>Definition:</b> programParser.cpp:154</div></div>
-<div class="ttc" id="classmaingo_1_1_program_parser_html_a63f53f3900dc996ca94137a017805f63"><div class="ttname"><a href="classmaingo_1_1_program_parser.html#a63f53f3900dc996ca94137a017805f63">maingo::ProgramParser::ProgramParser</a></div><div class="ttdeci">ProgramParser(std::istream &amp;, ale::symbol_table &amp;)</div><div class="ttdef"><b>Definition:</b> programParser.cpp:27</div></div>
-<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO</div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
-<div class="ttc" id="classmaingo_1_1_program_parser_html_af10f0318985e4aee4fb7da75614daad8"><div class="ttname"><a href="classmaingo_1_1_program_parser.html#af10f0318985e4aee4fb7da75614daad8">maingo::ProgramParser::recover_block</a></div><div class="ttdeci">void recover_block()</div><div class="ttdef"><b>Definition:</b> programParser.cpp:199</div></div>
-<div class="ttc" id="classmaingo_1_1_program_parser_html_ae4d58b1181c60c3f2bee2e19f0cf0a4d"><div class="ttname"><a href="classmaingo_1_1_program_parser.html#ae4d58b1181c60c3f2bee2e19f0cf0a4d">maingo::ProgramParser::parse</a></div><div class="ttdeci">void parse(Program &amp;)</div><div class="ttdef"><b>Definition:</b> programParser.cpp:36</div></div>
-<div class="ttc" id="classmaingo_1_1_program_parser_html_ae219ff6e1a0528011b39c3014f65fddf"><div class="ttname"><a href="classmaingo_1_1_program_parser.html#ae219ff6e1a0528011b39c3014f65fddf">maingo::ProgramParser::parse_squashes</a></div><div class="ttdeci">void parse_squashes(Program &amp;)</div><div class="ttdef"><b>Definition:</b> programParser.cpp:169</div></div>
-<div class="ttc" id="classmaingo_1_1_program_parser_html_ac3c4fcd63f8f1792a4e34a2fe3ddc5ab"><div class="ttname"><a href="classmaingo_1_1_program_parser.html#ac3c4fcd63f8f1792a4e34a2fe3ddc5ab">maingo::ProgramParser::parse_objective</a></div><div class="ttdeci">void parse_objective(Program &amp;)</div><div class="ttdef"><b>Definition:</b> programParser.cpp:125</div></div>
+<div class="ttc" id="classmaingo_1_1_program_parser_html_a3b1515bd940df78bb3a2605cb8f019b7"><div class="ttname"><a href="classmaingo_1_1_program_parser.html#a3b1515bd940df78bb3a2605cb8f019b7">maingo::ProgramParser::parse_relaxations</a></div><div class="ttdeci">void parse_relaxations(Program &amp;)</div><div class="ttdef"><b>Definition:</b> programParser.cpp:149</div></div>
+<div class="ttc" id="classmaingo_1_1_program_parser_html_a63f53f3900dc996ca94137a017805f63"><div class="ttname"><a href="classmaingo_1_1_program_parser.html#a63f53f3900dc996ca94137a017805f63">maingo::ProgramParser::ProgramParser</a></div><div class="ttdeci">ProgramParser(std::istream &amp;, ale::symbol_table &amp;)</div><div class="ttdef"><b>Definition:</b> programParser.cpp:23</div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
+<div class="ttc" id="classmaingo_1_1_program_parser_html_af10f0318985e4aee4fb7da75614daad8"><div class="ttname"><a href="classmaingo_1_1_program_parser.html#af10f0318985e4aee4fb7da75614daad8">maingo::ProgramParser::recover_block</a></div><div class="ttdeci">void recover_block()</div><div class="ttdef"><b>Definition:</b> programParser.cpp:194</div></div>
+<div class="ttc" id="classmaingo_1_1_program_parser_html_ae4d58b1181c60c3f2bee2e19f0cf0a4d"><div class="ttname"><a href="classmaingo_1_1_program_parser.html#ae4d58b1181c60c3f2bee2e19f0cf0a4d">maingo::ProgramParser::parse</a></div><div class="ttdeci">void parse(Program &amp;)</div><div class="ttdef"><b>Definition:</b> programParser.cpp:32</div></div>
+<div class="ttc" id="classmaingo_1_1_program_parser_html_ae219ff6e1a0528011b39c3014f65fddf"><div class="ttname"><a href="classmaingo_1_1_program_parser.html#ae219ff6e1a0528011b39c3014f65fddf">maingo::ProgramParser::parse_squashes</a></div><div class="ttdeci">void parse_squashes(Program &amp;)</div><div class="ttdef"><b>Definition:</b> programParser.cpp:164</div></div>
+<div class="ttc" id="classmaingo_1_1_program_parser_html_ac3c4fcd63f8f1792a4e34a2fe3ddc5ab"><div class="ttname"><a href="classmaingo_1_1_program_parser.html#ac3c4fcd63f8f1792a4e34a2fe3ddc5ab">maingo::ProgramParser::parse_objective</a></div><div class="ttdeci">void parse_objective(Program &amp;)</div><div class="ttdef"><b>Definition:</b> programParser.cpp:121</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -111,7 +111,7 @@ $(document).ready(function(){initNavTree('program_parser_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="program_parser_8h.html">programParser.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/return_codes_8h.html b/doc/html/return_codes_8h.html
index 25f1db7e75ac0e5a98b8b60a109983ac91cf8617..414663f4f994e4b9d31edce5fea545b3be326544 100644
--- a/doc/html/return_codes_8h.html
+++ b/doc/html/return_codes_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/returnCodes.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/returnCodes.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -152,7 +152,7 @@ Enumerations</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="return_codes_8h.html">returnCodes.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/return_codes_8h_source.html b/doc/html/return_codes_8h_source.html
index a8867882ffc7a5deceda868459a2a0c7d09bca82..1587333638ac2823475616d183bfee1705e0e875 100644
--- a/doc/html/return_codes_8h_source.html
+++ b/doc/html/return_codes_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/returnCodes.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/returnCodes.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,30 +90,30 @@ $(document).ready(function(){initNavTree('return_codes_8h_source.html','');});
 <div class="title">returnCodes.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="return_codes_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file returnCodes.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing enums for the return codes of the different solvers</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621a">   26</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621a">RETCODE</a> {</div><div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aab0c34908a36a1229a2d2fb1038ead0cd">   27</a></span>&#160;    <a class="code" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aab0c34908a36a1229a2d2fb1038ead0cd">GLOBALLY_OPTIMAL</a> = 0,     </div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aaaf4c1f773e7ed997a752e9fc46f31da9">   28</a></span>&#160;    <a class="code" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aaaf4c1f773e7ed997a752e9fc46f31da9">INFEASIBLE</a>,               </div><div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aa1fb55790fb61c6552fa3203206536463">   29</a></span>&#160;    <a class="code" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aa1fb55790fb61c6552fa3203206536463">FEASIBLE_POINT</a>,           </div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aa546bea660c686f2af0e496cf20782f4b">   30</a></span>&#160;    <a class="code" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aa546bea660c686f2af0e496cf20782f4b">NO_FEASIBLE_POINT_FOUND</a>,  </div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aaf98d82cf90c120cbada0db438cba6518">   31</a></span>&#160;    <a class="code" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aaf98d82cf90c120cbada0db438cba6518">BOUND_TARGETS</a>,            </div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aa2a167aa4d367dd77f9d996cb8e720fe7">   32</a></span>&#160;    <a class="code" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aa2a167aa4d367dd77f9d996cb8e720fe7">NOT_SOLVED_YET</a>,           </div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aae3d35953836c7ec16f1503239ed7972c">   33</a></span>&#160;    <a class="code" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aae3d35953836c7ec16f1503239ed7972c">JUST_A_WORKER_DONT_ASK_ME</a> </div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;};</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">   40</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> {</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020ac3bc5625b59fcd46e85cb8b0b29170e7">   41</a></span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020ac3bc5625b59fcd46e85cb8b0b29170e7">SUBSOLVER_INFEASIBLE</a> = 0, </div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020a86709a3b1272bcb98c34b5965aadc7ef">   42</a></span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020a86709a3b1272bcb98c34b5965aadc7ef">SUBSOLVER_FEASIBLE</a>,       </div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;};</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fc">   49</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fc">TIGHTENING_RETCODE</a> {</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fca507ee07c53b255456f02c9fc23668b2d">   50</a></span>&#160;    <a class="code" href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fca507ee07c53b255456f02c9fc23668b2d">TIGHTENING_INFEASIBLE</a> = 0, </div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fcafa8df5eb85bdef66de79c86ab05bc350">   51</a></span>&#160;    <a class="code" href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fcafa8df5eb85bdef66de79c86ab05bc350">TIGHTENING_UNCHANGED</a>,      </div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fca9be8be9427b3469fc1075cc54f18f992">   52</a></span>&#160;    <a class="code" href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fca9be8be9427b3469fc1075cc54f18f992">TIGHTENING_CHANGED</a>         </div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;};</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="keyword">namespace </span>lbp {</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824e">   63</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824e">LINEARIZATION_RETCODE</a> {</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824ea5cdfb5145d9384d0c2328f64049b62fd">   64</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824ea5cdfb5145d9384d0c2328f64049b62fd">LINEARIZATION_INFEASIBLE</a> = 0, </div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824ea41d8f65e89219832d04d46c89e612663">   65</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824ea41d8f65e89219832d04d46c89e612663">LINEARIZATION_OPTIMAL</a>,        </div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824ea333fe049a9fc9fa148299a79c61584fa">   66</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824ea333fe049a9fc9fa148299a79c61584fa">LINEARIZATION_UNKNOWN</a>         </div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;};</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90">   73</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90">LP_RETCODE</a> {</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90afd0d8d28a60075d7c218ac487f16edb8">   74</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90afd0d8d28a60075d7c218ac487f16edb8">LP_INFEASIBLE</a> = 0, </div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90aade235ddb528425c3feab4d25c3bb7fe">   75</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90aade235ddb528425c3feab4d25c3bb7fe">LP_OPTIMAL</a>,        </div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90a573382f7d5e0f9a030958598e05947ab">   76</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90a573382f7d5e0f9a030958598e05947ab">LP_UNKNOWN</a>         </div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;};</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;}    <span class="comment">// end namespace lbp</span></div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="namespacemaingo_html_ae85bf383216b1907f0021c60fa20621aab0c34908a36a1229a2d2fb1038ead0cd"><div class="ttname"><a href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aab0c34908a36a1229a2d2fb1038ead0cd">maingo::GLOBALLY_OPTIMAL</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:27</div></div>
-<div class="ttc" id="namespacemaingo_1_1lbp_html_a4e2b70fda6e64add2c6ad1a9c4a42c90aade235ddb528425c3feab4d25c3bb7fe"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90aade235ddb528425c3feab4d25c3bb7fe">maingo::lbp::LP_OPTIMAL</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:75</div></div>
-<div class="ttc" id="namespacemaingo_html_aa02add9895dfda997b2d9036a49bf6fca507ee07c53b255456f02c9fc23668b2d"><div class="ttname"><a href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fca507ee07c53b255456f02c9fc23668b2d">maingo::TIGHTENING_INFEASIBLE</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:50</div></div>
-<div class="ttc" id="namespacemaingo_html_aa02add9895dfda997b2d9036a49bf6fcafa8df5eb85bdef66de79c86ab05bc350"><div class="ttname"><a href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fcafa8df5eb85bdef66de79c86ab05bc350">maingo::TIGHTENING_UNCHANGED</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:51</div></div>
-<div class="ttc" id="namespacemaingo_1_1lbp_html_a1f86fef63c4930e5c519b2ca288d824ea5cdfb5145d9384d0c2328f64049b62fd"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824ea5cdfb5145d9384d0c2328f64049b62fd">maingo::lbp::LINEARIZATION_INFEASIBLE</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:64</div></div>
-<div class="ttc" id="namespacemaingo_html_ae85bf383216b1907f0021c60fa20621aaaf4c1f773e7ed997a752e9fc46f31da9"><div class="ttname"><a href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aaaf4c1f773e7ed997a752e9fc46f31da9">maingo::INFEASIBLE</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:28</div></div>
-<div class="ttc" id="namespacemaingo_html_ae85bf383216b1907f0021c60fa20621a"><div class="ttname"><a href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621a">maingo::RETCODE</a></div><div class="ttdeci">RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by MAiNGO after the solve() function was called.</div><div class="ttdef"><b>Definition:</b> returnCodes.h:26</div></div>
-<div class="ttc" id="namespacemaingo_1_1lbp_html_a1f86fef63c4930e5c519b2ca288d824e"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824e">maingo::lbp::LINEARIZATION_RETCODE</a></div><div class="ttdeci">LINEARIZATION_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the different linearization techniques.</div><div class="ttdef"><b>Definition:</b> returnCodes.h:63</div></div>
-<div class="ttc" id="namespacemaingo_html_ae85bf383216b1907f0021c60fa20621aa546bea660c686f2af0e496cf20782f4b"><div class="ttname"><a href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aa546bea660c686f2af0e496cf20782f4b">maingo::NO_FEASIBLE_POINT_FOUND</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:30</div></div>
-<div class="ttc" id="namespacemaingo_html_ae85bf383216b1907f0021c60fa20621aaf98d82cf90c120cbada0db438cba6518"><div class="ttname"><a href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aaf98d82cf90c120cbada0db438cba6518">maingo::BOUND_TARGETS</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:31</div></div>
-<div class="ttc" id="namespacemaingo_html_aa02add9895dfda997b2d9036a49bf6fc"><div class="ttname"><a href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fc">maingo::TIGHTENING_RETCODE</a></div><div class="ttdeci">TIGHTENING_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by LowerBoundingSolvers when solving OBBT or constrai...</div><div class="ttdef"><b>Definition:</b> returnCodes.h:49</div></div>
-<div class="ttc" id="namespacemaingo_html_ab7a1cb5c265f8d1c287d43fec7988020"><div class="ttname"><a href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">maingo::SUBSOLVER_RETCODE</a></div><div class="ttdeci">SUBSOLVER_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the different sub-solvers (UpperBoundingSolver,...</div><div class="ttdef"><b>Definition:</b> returnCodes.h:40</div></div>
-<div class="ttc" id="namespacemaingo_html_ab7a1cb5c265f8d1c287d43fec7988020ac3bc5625b59fcd46e85cb8b0b29170e7"><div class="ttname"><a href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020ac3bc5625b59fcd46e85cb8b0b29170e7">maingo::SUBSOLVER_INFEASIBLE</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:41</div></div>
-<div class="ttc" id="namespacemaingo_html_ab7a1cb5c265f8d1c287d43fec7988020a86709a3b1272bcb98c34b5965aadc7ef"><div class="ttname"><a href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020a86709a3b1272bcb98c34b5965aadc7ef">maingo::SUBSOLVER_FEASIBLE</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:42</div></div>
-<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO</div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
-<div class="ttc" id="namespacemaingo_1_1lbp_html_a4e2b70fda6e64add2c6ad1a9c4a42c90a573382f7d5e0f9a030958598e05947ab"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90a573382f7d5e0f9a030958598e05947ab">maingo::lbp::LP_UNKNOWN</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:76</div></div>
-<div class="ttc" id="namespacemaingo_html_ae85bf383216b1907f0021c60fa20621aae3d35953836c7ec16f1503239ed7972c"><div class="ttname"><a href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aae3d35953836c7ec16f1503239ed7972c">maingo::JUST_A_WORKER_DONT_ASK_ME</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:33</div></div>
-<div class="ttc" id="namespacemaingo_1_1lbp_html_a4e2b70fda6e64add2c6ad1a9c4a42c90afd0d8d28a60075d7c218ac487f16edb8"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90afd0d8d28a60075d7c218ac487f16edb8">maingo::lbp::LP_INFEASIBLE</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:74</div></div>
-<div class="ttc" id="namespacemaingo_1_1lbp_html_a4e2b70fda6e64add2c6ad1a9c4a42c90"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90">maingo::lbp::LP_RETCODE</a></div><div class="ttdeci">LP_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned when a linear program is solved.</div><div class="ttdef"><b>Definition:</b> returnCodes.h:73</div></div>
-<div class="ttc" id="namespacemaingo_html_ae85bf383216b1907f0021c60fa20621aa2a167aa4d367dd77f9d996cb8e720fe7"><div class="ttname"><a href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aa2a167aa4d367dd77f9d996cb8e720fe7">maingo::NOT_SOLVED_YET</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:32</div></div>
-<div class="ttc" id="namespacemaingo_1_1lbp_html_a1f86fef63c4930e5c519b2ca288d824ea333fe049a9fc9fa148299a79c61584fa"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824ea333fe049a9fc9fa148299a79c61584fa">maingo::lbp::LINEARIZATION_UNKNOWN</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:66</div></div>
-<div class="ttc" id="namespacemaingo_html_aa02add9895dfda997b2d9036a49bf6fca9be8be9427b3469fc1075cc54f18f992"><div class="ttname"><a href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fca9be8be9427b3469fc1075cc54f18f992">maingo::TIGHTENING_CHANGED</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:52</div></div>
-<div class="ttc" id="namespacemaingo_html_ae85bf383216b1907f0021c60fa20621aa1fb55790fb61c6552fa3203206536463"><div class="ttname"><a href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aa1fb55790fb61c6552fa3203206536463">maingo::FEASIBLE_POINT</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:29</div></div>
-<div class="ttc" id="namespacemaingo_1_1lbp_html_a1f86fef63c4930e5c519b2ca288d824ea41d8f65e89219832d04d46c89e612663"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824ea41d8f65e89219832d04d46c89e612663">maingo::lbp::LINEARIZATION_OPTIMAL</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:65</div></div>
+<a href="return_codes_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621a">   22</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621a">RETCODE</a> {</div><div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aab0c34908a36a1229a2d2fb1038ead0cd">   23</a></span>&#160;    <a class="code" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aab0c34908a36a1229a2d2fb1038ead0cd">GLOBALLY_OPTIMAL</a> = 0,     </div><div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aaaf4c1f773e7ed997a752e9fc46f31da9">   24</a></span>&#160;    <a class="code" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aaaf4c1f773e7ed997a752e9fc46f31da9">INFEASIBLE</a>,               </div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aa1fb55790fb61c6552fa3203206536463">   25</a></span>&#160;    <a class="code" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aa1fb55790fb61c6552fa3203206536463">FEASIBLE_POINT</a>,           </div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aa546bea660c686f2af0e496cf20782f4b">   26</a></span>&#160;    <a class="code" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aa546bea660c686f2af0e496cf20782f4b">NO_FEASIBLE_POINT_FOUND</a>,  </div><div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aaf98d82cf90c120cbada0db438cba6518">   27</a></span>&#160;    <a class="code" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aaf98d82cf90c120cbada0db438cba6518">BOUND_TARGETS</a>,            </div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aa2a167aa4d367dd77f9d996cb8e720fe7">   28</a></span>&#160;    <a class="code" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aa2a167aa4d367dd77f9d996cb8e720fe7">NOT_SOLVED_YET</a>,           </div><div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aae3d35953836c7ec16f1503239ed7972c">   29</a></span>&#160;    <a class="code" href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aae3d35953836c7ec16f1503239ed7972c">JUST_A_WORKER_DONT_ASK_ME</a> </div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;};</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">   36</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> {</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020ac3bc5625b59fcd46e85cb8b0b29170e7">   37</a></span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020ac3bc5625b59fcd46e85cb8b0b29170e7">SUBSOLVER_INFEASIBLE</a> = 0, </div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020a86709a3b1272bcb98c34b5965aadc7ef">   38</a></span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020a86709a3b1272bcb98c34b5965aadc7ef">SUBSOLVER_FEASIBLE</a>,       </div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;};</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fc">   45</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fc">TIGHTENING_RETCODE</a> {</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fca507ee07c53b255456f02c9fc23668b2d">   46</a></span>&#160;    <a class="code" href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fca507ee07c53b255456f02c9fc23668b2d">TIGHTENING_INFEASIBLE</a> = 0, </div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fcafa8df5eb85bdef66de79c86ab05bc350">   47</a></span>&#160;    <a class="code" href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fcafa8df5eb85bdef66de79c86ab05bc350">TIGHTENING_UNCHANGED</a>,      </div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fca9be8be9427b3469fc1075cc54f18f992">   48</a></span>&#160;    <a class="code" href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fca9be8be9427b3469fc1075cc54f18f992">TIGHTENING_CHANGED</a>         </div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;};</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="keyword">namespace </span>lbp {</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824e">   59</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824e">LINEARIZATION_RETCODE</a> {</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824ea5cdfb5145d9384d0c2328f64049b62fd">   60</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824ea5cdfb5145d9384d0c2328f64049b62fd">LINEARIZATION_INFEASIBLE</a> = 0, </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824ea41d8f65e89219832d04d46c89e612663">   61</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824ea41d8f65e89219832d04d46c89e612663">LINEARIZATION_OPTIMAL</a>,        </div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824ea333fe049a9fc9fa148299a79c61584fa">   62</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824ea333fe049a9fc9fa148299a79c61584fa">LINEARIZATION_UNKNOWN</a>         </div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;};</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90">   69</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90">LP_RETCODE</a> {</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90afd0d8d28a60075d7c218ac487f16edb8">   70</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90afd0d8d28a60075d7c218ac487f16edb8">LP_INFEASIBLE</a> = 0, </div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90aade235ddb528425c3feab4d25c3bb7fe">   71</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90aade235ddb528425c3feab4d25c3bb7fe">LP_OPTIMAL</a>,        </div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90a573382f7d5e0f9a030958598e05947ab">   72</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90a573382f7d5e0f9a030958598e05947ab">LP_UNKNOWN</a>         </div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;};</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;}    <span class="comment">// end namespace lbp</span></div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="namespacemaingo_html_ae85bf383216b1907f0021c60fa20621aab0c34908a36a1229a2d2fb1038ead0cd"><div class="ttname"><a href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aab0c34908a36a1229a2d2fb1038ead0cd">maingo::GLOBALLY_OPTIMAL</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:23</div></div>
+<div class="ttc" id="namespacemaingo_1_1lbp_html_a4e2b70fda6e64add2c6ad1a9c4a42c90aade235ddb528425c3feab4d25c3bb7fe"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90aade235ddb528425c3feab4d25c3bb7fe">maingo::lbp::LP_OPTIMAL</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:71</div></div>
+<div class="ttc" id="namespacemaingo_html_aa02add9895dfda997b2d9036a49bf6fca507ee07c53b255456f02c9fc23668b2d"><div class="ttname"><a href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fca507ee07c53b255456f02c9fc23668b2d">maingo::TIGHTENING_INFEASIBLE</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:46</div></div>
+<div class="ttc" id="namespacemaingo_html_aa02add9895dfda997b2d9036a49bf6fcafa8df5eb85bdef66de79c86ab05bc350"><div class="ttname"><a href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fcafa8df5eb85bdef66de79c86ab05bc350">maingo::TIGHTENING_UNCHANGED</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:47</div></div>
+<div class="ttc" id="namespacemaingo_1_1lbp_html_a1f86fef63c4930e5c519b2ca288d824ea5cdfb5145d9384d0c2328f64049b62fd"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824ea5cdfb5145d9384d0c2328f64049b62fd">maingo::lbp::LINEARIZATION_INFEASIBLE</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:60</div></div>
+<div class="ttc" id="namespacemaingo_html_ae85bf383216b1907f0021c60fa20621aaaf4c1f773e7ed997a752e9fc46f31da9"><div class="ttname"><a href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aaaf4c1f773e7ed997a752e9fc46f31da9">maingo::INFEASIBLE</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:24</div></div>
+<div class="ttc" id="namespacemaingo_html_ae85bf383216b1907f0021c60fa20621a"><div class="ttname"><a href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621a">maingo::RETCODE</a></div><div class="ttdeci">RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by MAiNGO after the solve() function was called...</div><div class="ttdef"><b>Definition:</b> returnCodes.h:22</div></div>
+<div class="ttc" id="namespacemaingo_1_1lbp_html_a1f86fef63c4930e5c519b2ca288d824e"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824e">maingo::lbp::LINEARIZATION_RETCODE</a></div><div class="ttdeci">LINEARIZATION_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the different linearization techniques. </div><div class="ttdef"><b>Definition:</b> returnCodes.h:59</div></div>
+<div class="ttc" id="namespacemaingo_html_ae85bf383216b1907f0021c60fa20621aa546bea660c686f2af0e496cf20782f4b"><div class="ttname"><a href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aa546bea660c686f2af0e496cf20782f4b">maingo::NO_FEASIBLE_POINT_FOUND</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:26</div></div>
+<div class="ttc" id="namespacemaingo_html_ae85bf383216b1907f0021c60fa20621aaf98d82cf90c120cbada0db438cba6518"><div class="ttname"><a href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aaf98d82cf90c120cbada0db438cba6518">maingo::BOUND_TARGETS</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:27</div></div>
+<div class="ttc" id="namespacemaingo_html_aa02add9895dfda997b2d9036a49bf6fc"><div class="ttname"><a href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fc">maingo::TIGHTENING_RETCODE</a></div><div class="ttdeci">TIGHTENING_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by LowerBoundingSolvers when solving OBBT or constrai...</div><div class="ttdef"><b>Definition:</b> returnCodes.h:45</div></div>
+<div class="ttc" id="namespacemaingo_html_ab7a1cb5c265f8d1c287d43fec7988020"><div class="ttname"><a href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">maingo::SUBSOLVER_RETCODE</a></div><div class="ttdeci">SUBSOLVER_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the different sub-solvers (UpperBoundingSolver, LowerBoundingSolver). </div><div class="ttdef"><b>Definition:</b> returnCodes.h:36</div></div>
+<div class="ttc" id="namespacemaingo_html_ab7a1cb5c265f8d1c287d43fec7988020ac3bc5625b59fcd46e85cb8b0b29170e7"><div class="ttname"><a href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020ac3bc5625b59fcd46e85cb8b0b29170e7">maingo::SUBSOLVER_INFEASIBLE</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:37</div></div>
+<div class="ttc" id="namespacemaingo_html_ab7a1cb5c265f8d1c287d43fec7988020a86709a3b1272bcb98c34b5965aadc7ef"><div class="ttname"><a href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020a86709a3b1272bcb98c34b5965aadc7ef">maingo::SUBSOLVER_FEASIBLE</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:38</div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
+<div class="ttc" id="namespacemaingo_1_1lbp_html_a4e2b70fda6e64add2c6ad1a9c4a42c90a573382f7d5e0f9a030958598e05947ab"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90a573382f7d5e0f9a030958598e05947ab">maingo::lbp::LP_UNKNOWN</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:72</div></div>
+<div class="ttc" id="namespacemaingo_html_ae85bf383216b1907f0021c60fa20621aae3d35953836c7ec16f1503239ed7972c"><div class="ttname"><a href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aae3d35953836c7ec16f1503239ed7972c">maingo::JUST_A_WORKER_DONT_ASK_ME</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:29</div></div>
+<div class="ttc" id="namespacemaingo_1_1lbp_html_a4e2b70fda6e64add2c6ad1a9c4a42c90afd0d8d28a60075d7c218ac487f16edb8"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90afd0d8d28a60075d7c218ac487f16edb8">maingo::lbp::LP_INFEASIBLE</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:70</div></div>
+<div class="ttc" id="namespacemaingo_1_1lbp_html_a4e2b70fda6e64add2c6ad1a9c4a42c90"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90">maingo::lbp::LP_RETCODE</a></div><div class="ttdeci">LP_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned when a linear program is solved. </div><div class="ttdef"><b>Definition:</b> returnCodes.h:69</div></div>
+<div class="ttc" id="namespacemaingo_html_ae85bf383216b1907f0021c60fa20621aa2a167aa4d367dd77f9d996cb8e720fe7"><div class="ttname"><a href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aa2a167aa4d367dd77f9d996cb8e720fe7">maingo::NOT_SOLVED_YET</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:28</div></div>
+<div class="ttc" id="namespacemaingo_1_1lbp_html_a1f86fef63c4930e5c519b2ca288d824ea333fe049a9fc9fa148299a79c61584fa"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824ea333fe049a9fc9fa148299a79c61584fa">maingo::lbp::LINEARIZATION_UNKNOWN</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:62</div></div>
+<div class="ttc" id="namespacemaingo_html_aa02add9895dfda997b2d9036a49bf6fca9be8be9427b3469fc1075cc54f18f992"><div class="ttname"><a href="namespacemaingo.html#aa02add9895dfda997b2d9036a49bf6fca9be8be9427b3469fc1075cc54f18f992">maingo::TIGHTENING_CHANGED</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:48</div></div>
+<div class="ttc" id="namespacemaingo_html_ae85bf383216b1907f0021c60fa20621aa1fb55790fb61c6552fa3203206536463"><div class="ttname"><a href="namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aa1fb55790fb61c6552fa3203206536463">maingo::FEASIBLE_POINT</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:25</div></div>
+<div class="ttc" id="namespacemaingo_1_1lbp_html_a1f86fef63c4930e5c519b2ca288d824ea41d8f65e89219832d04d46c89e612663"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824ea41d8f65e89219832d04d46c89e612663">maingo::lbp::LINEARIZATION_OPTIMAL</a></div><div class="ttdef"><b>Definition:</b> returnCodes.h:61</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -122,7 +122,7 @@ $(document).ready(function(){initNavTree('return_codes_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="return_codes_8h.html">returnCodes.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/search/all_0.html b/doc/html/search/all_0.html
index 5330204c2c9385c1ecc09d4c617d84e63ac1f58f..5125b94009caa859823e3cf33daf7cab235f6b48 100644
--- a/doc/html/search/all_0.html
+++ b/doc/html/search/all_0.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_0.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/all_0.js b/doc/html/search/all_0.js
index 5e8a0358e99076592b756bff558f89e5cffca0c6..bcdb4452857d3751bb5de840c736e525bdebc2d0 100644
--- a/doc/html/search/all_0.js
+++ b/doc/html/search/all_0.js
@@ -1,41 +1,47 @@
 var searchData=
 [
+  ['_5f_5finit_5f_5f_2epy',['__init__.py',['../____init_____8py.html',1,'']]],
   ['_5fabspruningtol',['_absPruningTol',['../classbab_base_1_1_bab_tree.html#a90f1c73b6149b861acbded97b7221b35',1,'babBase::BabTree']]],
   ['_5fadd_5fauxiliary_5fvariables_5fto_5flbd_5fdag',['_add_auxiliary_variables_to_lbd_dag',['../classmaingo_1_1_m_ai_n_g_o.html#af0fdf26f6ae26288a121e6912f0f1023',1,'maingo::MAiNGO']]],
   ['_5fadd_5flinebreaks_5fto_5fgams_5fstring',['_add_linebreaks_to_gams_string',['../classmaingo_1_1_m_ai_n_g_o.html#ac99ef891ef04bb26071bf37ba510ebfc',1,'maingo::MAiNGO']]],
   ['_5fanalyze_5fand_5fsolve_5fproblem',['_analyze_and_solve_problem',['../classmaingo_1_1_m_ai_n_g_o.html#a271c14d25b5423c7c077f8ea206f2818',1,'maingo::MAiNGO']]],
+  ['_5fappend_5fcurrent_5ferror_5fmessage_5fto_5fmessage',['_append_current_error_message_to_message',['../classmaingo_1_1_m_ai_n_g_o_exception.html#a978212ab50e44b92bc27cb853df35733',1,'maingo::MAiNGOException']]],
+  ['_5fappend_5fnode_5finfo_5fto_5fmessage',['_append_node_info_to_message',['../classmaingo_1_1_m_ai_n_g_o_exception.html#a78cc259eb3c775814b2214262f026b8a',1,'maingo::MAiNGOException']]],
+  ['_5fappend_5foriginal_5fexception_5finfo_5fto_5fmessage',['_append_original_exception_info_to_message',['../classmaingo_1_1_m_ai_n_g_o_exception.html#a9cd783e2e9ac6fcaf813bd8f94f2300d',1,'maingo::MAiNGOException']]],
   ['_5fbabstatus',['_babStatus',['../classmaingo_1_1_m_ai_n_g_o.html#a8fe800a4fd347fc64b3f26de987c13f5',1,'maingo::MAiNGO']]],
   ['_5fbabtime',['_babTime',['../classmaingo_1_1_m_ai_n_g_o.html#a917d78c01e2442296f829977491e6107',1,'maingo::MAiNGO']]],
   ['_5fbestlbdfathomed',['_bestLbdFathomed',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a8855b78bf4580af1d40f463eb88f9883',1,'maingo::bab::BranchAndBound']]],
-  ['_5fbrancher',['_brancher',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a88d35fc68351774dadb831c38ffd93ee',1,'maingo::bab::BranchAndBound']]],
+  ['_5fbounds',['_bounds',['../classbab_base_1_1_optimization_variable.html#acd60b14930c0261628aae974e42fe954',1,'babBase::OptimizationVariable']]],
+  ['_5fbrancher',['_brancher',['../classmaingo_1_1bab_1_1_branch_and_bound.html#ae1454635b53b98cc4e395fd3ed7faca0',1,'maingo::bab::BranchAndBound']]],
   ['_5fbranchingpriority',['_branchingPriority',['../classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b',1,'babBase::OptimizationVariable']]],
   ['_5fcalculate_5fbranching_5fpoint',['_calculate_branching_point',['../classbab_base_1_1_brancher.html#aee381075df2a3f5dfbf54ba6dadc4584',1,'babBase::Brancher']]],
   ['_5fcheck_5fbounds',['_check_bounds',['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2f7fe42bb11f791fc34c33f60ac057fc',1,'maingo::ubp::UpperBoundingSolver']]],
-  ['_5fcheck_5fdiscrete_5fbounds',['_check_discrete_bounds',['../classbab_base_1_1_optimization_variable.html#a73cc92c1533194998ebee64ff851b5da',1,'babBase::OptimizationVariable']]],
   ['_5fcheck_5feq',['_check_eq',['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a8e0390a65c638a359c0fd4aca45898b6',1,'maingo::ubp::UpperBoundingSolver']]],
   ['_5fcheck_5ffeasibility',['_check_feasibility',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2fa3ad57113343a493feac9a5f4c2667',1,'maingo::lbp::LowerBoundingSolver::_check_feasibility()'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#ad1ca347dd4c44d58cbc0acef37b20ac2',1,'maingo::lbp::LbpClp::_check_feasibility()'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#aa4b86f37a78b5f8ce2ac3abdbd6e3a74',1,'maingo::lbp::LbpCplex::_check_feasibility()'],['../classmaingo_1_1lbp_1_1_lbp_interval.html#aae0fb055173014b96398727f31cf8138',1,'maingo::lbp::LbpInterval::_check_feasibility()']]],
   ['_5fcheck_5ffeasibility_5fof_5frelaxation_5fonly_5fconstraints',['_check_feasibility_of_relaxation_only_constraints',['../classmaingo_1_1_m_ai_n_g_o.html#abad3366b86f460d436d3c13bfecb147b',1,'maingo::MAiNGO']]],
   ['_5fcheck_5ffor_5fhidden_5fzero_5fconstraints',['_check_for_hidden_zero_constraints',['../classmaingo_1_1_m_ai_n_g_o.html#a9ad31f08fce43a453e9f8e1e39c889bb',1,'maingo::MAiNGO']]],
   ['_5fcheck_5fif_5flp_5freally_5finfeasible',['_check_if_LP_really_infeasible',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2237722d9bd7702a7eeb0b2620110bca',1,'maingo::lbp::LowerBoundingSolver::_check_if_LP_really_infeasible()'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#aa4482d8e03130757248872892e2fcb2b',1,'maingo::lbp::LbpClp::_check_if_LP_really_infeasible()'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#a325f7fbdb9704f99fc46b5e26d84558f',1,'maingo::lbp::LbpCplex::_check_if_LP_really_infeasible()']]],
-  ['_5fcheck_5fif_5fmore_5fscaling_5fneeded',['_check_if_more_scaling_needed',['../classmaingo_1_1bab_1_1_branch_and_bound.html#ad5e5e8e1a0f2a3dda0a6deac59409fd6',1,'maingo::bab::BranchAndBound::_check_if_more_scaling_needed()'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a60c5f5d7ae8fab91f990846207e88144',1,'maingo::bab::BranchAndBound::_check_if_more_scaling_needed()']]],
+  ['_5fcheck_5fif_5fmore_5fscaling_5fneeded',['_check_if_more_scaling_needed',['../classmaingo_1_1bab_1_1_branch_and_bound.html#ad5e5e8e1a0f2a3dda0a6deac59409fd6',1,'maingo::bab::BranchAndBound']]],
   ['_5fcheck_5fineq',['_check_ineq',['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ae20cc817f6ec888d8a9e7a9723cfe0b7',1,'maingo::ubp::UpperBoundingSolver']]],
   ['_5fcheck_5fineq_5fsquash',['_check_ineq_squash',['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa40b7dc4622a4ffed899195174f3fda7',1,'maingo::ubp::UpperBoundingSolver']]],
   ['_5fcheck_5finfeasibility',['_check_infeasibility',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a805403d014eefe22b8312c4c1b80a877',1,'maingo::lbp::LowerBoundingSolver::_check_infeasibility()'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#aa66812cce01044ba578222dcfb4ed68a',1,'maingo::lbp::LbpClp::_check_infeasibility()'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#a198a548602ac6a18bd5bc453ec305200',1,'maingo::lbp::LbpCplex::_check_infeasibility()'],['../classmaingo_1_1lbp_1_1_lbp_interval.html#a5ec0a4dc7543d432fe2c44892469c959',1,'maingo::lbp::LbpInterval::_check_infeasibility()']]],
   ['_5fcheck_5fintegrality',['_check_integrality',['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac1124e613e46e59fb88415116e08e326',1,'maingo::ubp::UpperBoundingSolver']]],
   ['_5fcheck_5foptimality',['_check_optimality',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a761787f1ad3ef2c3c7b8d4e5986e0a47',1,'maingo::lbp::LowerBoundingSolver::_check_optimality()'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#af820f00e82a69189bbff37a027f366df',1,'maingo::lbp::LbpClp::_check_optimality()'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#ae3bf7a1bba331fef4de0c2793a311229',1,'maingo::lbp::LbpCplex::_check_optimality()'],['../classmaingo_1_1lbp_1_1_lbp_interval.html#a5a44a19b7c78a6235abd0e44f9de71b7',1,'maingo::lbp::LbpInterval::_check_optimality()']]],
-  ['_5fcheck_5ftermination',['_check_termination',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a535696550d694df9bc017ef6cd144a58',1,'maingo::bab::BranchAndBound::_check_termination()'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a18cf39c5def55fea60f33438b77fece2',1,'maingo::bab::BranchAndBound::_check_termination()']]],
+  ['_5fcheck_5ftermination',['_check_termination',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a535696550d694df9bc017ef6cd144a58',1,'maingo::bab::BranchAndBound']]],
   ['_5fchoose_5fgood_5flin_5fpoints',['_choose_good_lin_points',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a13d16bea111e56762479856995fe8435',1,'maingo::lbp::LowerBoundingSolver']]],
-  ['_5fclassify_5fconstraints',['_classify_constraints',['../classmaingo_1_1_m_ai_n_g_o.html#a874e8de2f4daafb262380b882a3d3553',1,'maingo::MAiNGO']]],
+  ['_5fclassify_5fobjective_5fand_5fconstraints',['_classify_objective_and_constraints',['../classmaingo_1_1_m_ai_n_g_o.html#a803800682d25b4edc28a3536faba2380',1,'maingo::MAiNGO']]],
   ['_5fclp',['_clp',['../classmaingo_1_1lbp_1_1_lbp_clp.html#aa2b757fbec54c610ba3d9fe8ba35b67e',1,'maingo::lbp::LbpClp::_clp()'],['../classmaingo_1_1ubp_1_1_ubp_clp.html#ae2d176177a7821c5532fb229f04577c9',1,'maingo::ubp::UbpClp::_clp()']]],
   ['_5fcomputationtol',['_computationTol',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aaa92d78b7ce6a1b2939131063bd6f68a',1,'maingo::lbp::LowerBoundingSolver']]],
   ['_5fcompute_5fand_5frotate_5fsimplex',['_compute_and_rotate_simplex',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4dd432d487c2099767f0d6de64711bb9',1,'maingo::lbp::LowerBoundingSolver']]],
-  ['_5fconstantconstraints',['_constantConstraints',['../classmaingo_1_1_m_ai_n_g_o.html#a6094a619e5202a347ad3b755a0f13fe7',1,'maingo::MAiNGO']]],
+  ['_5fconstantconstraints',['_constantConstraints',['../classmaingo_1_1_m_ai_n_g_o.html#abb011b283ec6da5387c24804ba59ff6d',1,'maingo::MAiNGO']]],
   ['_5fconstantconstraintsfeasible',['_constantConstraintsFeasible',['../classmaingo_1_1_m_ai_n_g_o.html#af917f2f3529a7c92bb0b972607c1e8df',1,'maingo::MAiNGO']]],
-  ['_5fconstantoutputs',['_constantOutputs',['../classmaingo_1_1_m_ai_n_g_o.html#a9393fdd939148611496b665d537ca6cb',1,'maingo::MAiNGO']]],
-  ['_5fconstraintproperties',['_constraintProperties',['../classmaingo_1_1ubp_1_1_ipopt_problem.html#aa7b6d4e92ccd5f357728d82baec6cf59',1,'maingo::ubp::IpoptProblem::_constraintProperties()'],['../classmaingo_1_1ubp_1_1_knitro_problem.html#a0bd778c8b72652bafe429d874cba73af',1,'maingo::ubp::KnitroProblem::_constraintProperties()'],['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1b23a7c1621517ac4506bd043d43950e',1,'maingo::lbp::LowerBoundingSolver::_constraintProperties()'],['../structmaingo_1_1lbp_1_1_dag_obj.html#a83cea7e83eb4744af421af42ab4c5cdb',1,'maingo::lbp::DagObj::_constraintProperties()'],['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aae0c39f4b14cfb8a3c70a57b49f15e67',1,'maingo::ubp::UpperBoundingSolver::_constraintProperties()']]],
+  ['_5fconstantoutputs',['_constantOutputs',['../classmaingo_1_1_m_ai_n_g_o.html#aded61d763cefceab6bf099cf9d891cff',1,'maingo::MAiNGO']]],
+  ['_5fconstraintproperties',['_constraintProperties',['../classmaingo_1_1ubp_1_1_ipopt_problem.html#a1e56ab6219a4daa52c5cbbcd6548a603',1,'maingo::ubp::IpoptProblem::_constraintProperties()'],['../classmaingo_1_1ubp_1_1_knitro_problem.html#adfd54311b1a62a9cb423071ce1c436eb',1,'maingo::ubp::KnitroProblem::_constraintProperties()'],['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a701c19e247fa6e9791313252084b770a',1,'maingo::lbp::LowerBoundingSolver::_constraintProperties()'],['../structmaingo_1_1lbp_1_1_dag_obj.html#af2ba1ac965bfc48025172b978cbee2c6',1,'maingo::lbp::DagObj::_constraintProperties()'],['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a633d6c072f7388ade44ccebf3fa3c935',1,'maingo::ubp::UpperBoundingSolver::_constraintProperties()']]],
+  ['_5fconstruct_5fcomplete_5ferror_5fmessage',['_construct_complete_error_message',['../classmaingo_1_1_m_ai_n_g_o_exception.html#a5cc5c15e7cb9d14f7877731fabb46189',1,'maingo::MAiNGOException']]],
   ['_5fconstruct_5fdag',['_construct_DAG',['../classmaingo_1_1_m_ai_n_g_o.html#a9908a4661a24667409c0a0fd5c06fe9f',1,'maingo::MAiNGO']]],
   ['_5fcreate_5fchildren',['_create_children',['../classbab_base_1_1_brancher.html#a72a36fe9f0f5eac9a351d30fc2a4f0d3',1,'babBase::Brancher']]],
   ['_5fcreate_5fnode_5fwith_5finfo_5ffrom_5fnode',['_create_node_with_info_from_node',['../classbab_base_1_1_brancher.html#a53d5b740ed9e0ad82601b59c941e21f5',1,'babBase::Brancher']]],
+  ['_5fcsvsolutionstatisticsname',['_csvSolutionStatisticsName',['../classmaingo_1_1_m_ai_n_g_o.html#a689902b992cca417907471e82b9526b1',1,'maingo::MAiNGO']]],
   ['_5fdag',['_DAG',['../classmaingo_1_1_m_ai_n_g_o.html#a54d978f1329af4acf801108591eea1f5',1,'maingo::MAiNGO']]],
   ['_5fdagconstructed',['_DAGconstructed',['../classmaingo_1_1_m_ai_n_g_o.html#a5d59280b371782eaeaf887073ae7b77a',1,'maingo::MAiNGO']]],
   ['_5fdagfunctions',['_DAGfunctions',['../classmaingo_1_1_m_ai_n_g_o.html#aa5de85da627e5dbdf3c6bf6be2ddad26',1,'maingo::MAiNGO']]],
@@ -53,7 +59,7 @@ var searchData=
   ['_5fdetermine_5fsparsity_5fjacobian',['_determine_sparsity_jacobian',['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a04b6d46cf762e76a70611b9c9e54f71d',1,'maingo::ubp::UpperBoundingSolver']]],
   ['_5fdetermine_5fstructure',['_determine_structure',['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a566cab6bf72ec7da46a8e42d63378d02',1,'maingo::ubp::UpperBoundingSolver']]],
   ['_5fdifferentnumberoflins',['_differentNumberOfLins',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1994bc43cf051908c35889bb08d3cb02',1,'maingo::lbp::LowerBoundingSolver']]],
-  ['_5fdisplay_5fand_5flog_5fprogress',['_display_and_log_progress',['../classmaingo_1_1bab_1_1_branch_and_bound.html#ad2b56f40c7255d731c196b1661cee2d4',1,'maingo::bab::BranchAndBound::_display_and_log_progress(const double currentNodeLBD, const babBase::BabNode &amp;currentNode)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#af04b0ab5a5979ba684b4edf2a223d5ec',1,'maingo::bab::BranchAndBound::_display_and_log_progress(const double currentNodeLBD, const babBase::BabNode &amp;currentNode)']]],
+  ['_5fdisplay_5fand_5flog_5fprogress',['_display_and_log_progress',['../classmaingo_1_1bab_1_1_branch_and_bound.html#ad2b56f40c7255d731c196b1661cee2d4',1,'maingo::bab::BranchAndBound']]],
   ['_5fdualvalseq1',['_dualValsEq1',['../classmaingo_1_1lbp_1_1_lbp_clp.html#a2adc46c9adf155ea8785a8d2484032c3',1,'maingo::lbp::LbpClp']]],
   ['_5fdualvalseq2',['_dualValsEq2',['../classmaingo_1_1lbp_1_1_lbp_clp.html#a9a8c2e7f43258a6e900fd5222260e7ae',1,'maingo::lbp::LbpClp']]],
   ['_5fdualvalseqrelaxationonly1',['_dualValsEqRelaxationOnly1',['../classmaingo_1_1lbp_1_1_lbp_clp.html#ae956a7e6decd45e83cc85e741df2064a',1,'maingo::lbp::LbpClp']]],
@@ -62,21 +68,24 @@ var searchData=
   ['_5fdualvalsineqrelaxationonly',['_dualValsIneqRelaxationOnly',['../classmaingo_1_1lbp_1_1_lbp_clp.html#a7a9854a095ccaf7c8e14820a7a349f66',1,'maingo::lbp::LbpClp']]],
   ['_5fdualvalsineqsquash',['_dualValsIneqSquash',['../classmaingo_1_1lbp_1_1_lbp_clp.html#a6b2afd1c10a6f2c1519575802f0236d9',1,'maingo::lbp::LbpClp']]],
   ['_5fdualvalsobj',['_dualValsObj',['../classmaingo_1_1lbp_1_1_lbp_clp.html#ab49912af5fed8f32b703cb246b402272',1,'maingo::lbp::LbpClp']]],
+  ['_5fensure_5fvalid_5fobjective_5ffunction_5fusing_5fdummy_5fvariable',['_ensure_valid_objective_function_using_dummy_variable',['../classmaingo_1_1_m_ai_n_g_o.html#a56d30ff7a1a221550e6c7c045e5c6feb',1,'maingo::MAiNGO']]],
   ['_5fepsilon',['_epsilon',['../classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#aee5a75bf580e8f53812e4698e9876b89',1,'maingo::MAiNGOmodelEpsCon']]],
   ['_5fequilibrate_5fand_5frelax',['_equilibrate_and_relax',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a77e97f9255980d5edaadd9da571b078f',1,'maingo::lbp::LowerBoundingSolver']]],
+  ['_5ferrormessage',['_errorMessage',['../classmaingo_1_1_m_ai_n_g_o_exception.html#ac3cd87bc11baff35170096a9a4fd8007',1,'maingo::MAiNGOException']]],
   ['_5feta',['_eta',['../classmaingo_1_1lbp_1_1_lbp_clp.html#a77dabe29a0aaf2ff45e1f966eef1c585',1,'maingo::lbp::LbpClp']]],
   ['_5fetacoeff',['_etaCoeff',['../classmaingo_1_1lbp_1_1_lbp_clp.html#a0108d59ae1bc4fc86d91c414b4f33b36',1,'maingo::lbp::LbpClp']]],
+  ['_5fevaluate_5fadditional_5foutputs_5fat_5fpoint',['_evaluate_additional_outputs_at_point',['../classmaingo_1_1_m_ai_n_g_o.html#a92cbd5e8a92e5c335d57bb23574cf6b2',1,'maingo::MAiNGO']]],
+  ['_5fevaluate_5fmodel_5fat_5fpoint',['_evaluate_model_at_point',['../classmaingo_1_1_m_ai_n_g_o.html#a241496b3e71881ee3cb7b8be661b44d4',1,'maingo::MAiNGO']]],
   ['_5ffallback_5fto_5fintervals',['_fallback_to_intervals',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aafadf6738f60cca6831074ae54f0647d',1,'maingo::lbp::LowerBoundingSolver']]],
   ['_5ffathom_5fnodes_5fexceeding_5fpruning_5fthreshold',['_fathom_nodes_exceeding_pruning_threshold',['../classbab_base_1_1_bab_tree.html#a9dd406c60d514814311c4c9d4d8bd83e',1,'babBase::BabTree']]],
+  ['_5ffeasibilityproblem',['_feasibilityProblem',['../classmaingo_1_1_m_ai_n_g_o.html#a8b2bcd5e079464178341f24169e45bbc',1,'maingo::MAiNGO']]],
   ['_5ffeasible',['_feasible',['../classbab_base_1_1_optimization_variable.html#a7f00570cb2e44f165e2aa3028d215bc3',1,'babBase::OptimizationVariable']]],
   ['_5ffeasibleatroot',['_feasibleAtRoot',['../classmaingo_1_1_m_ai_n_g_o.html#ae51edfeecb90cf3be1d6cabf9d18c9eb',1,'maingo::MAiNGO']]],
   ['_5ffirstfound',['_firstFound',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a88880806d0ddfe42862a876ca961cbf6',1,'maingo::bab::BranchAndBound']]],
   ['_5ffix_5fvariable',['_fix_variable',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8cd8dd30cb32a2fdf90930acf1a98f69',1,'maingo::lbp::LowerBoundingSolver::_fix_variable()'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#ab8b1ff5aae11dd1ae23b260be58a39f2',1,'maingo::lbp::LbpClp::_fix_variable()'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#a6f17d0771ce88fdaecfe4399759afc36',1,'maingo::lbp::LbpCplex::_fix_variable()']]],
   ['_5ffoundfeas',['_foundFeas',['../classmaingo_1_1bab_1_1_branch_and_bound.html#aa52c4379706307b5d5834a702d824854',1,'maingo::bab::BranchAndBound']]],
   ['_5fgenerate_5fmultistart_5fpoint',['_generate_multistart_point',['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a88f6a1e58a7274d44f6c9513581a6f4b',1,'maingo::ubp::UpperBoundingSolver']]],
-  ['_5fget_5fadditional_5foutputs',['_get_additional_outputs',['../classmaingo_1_1_m_ai_n_g_o.html#a14ac25981c3df0f6317418c8b9f4857c',1,'maingo::MAiNGO']]],
   ['_5fget_5flp_5fstatus',['_get_LP_status',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4fd9a52441b77eff552c9034ae0fb76d',1,'maingo::lbp::LowerBoundingSolver::_get_LP_status()'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#a3e27387ed8c32d6a7a82477c19e99f29',1,'maingo::lbp::LbpClp::_get_LP_status()'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#a5fc72422c29fbfba6710f9f2e244b28c',1,'maingo::lbp::LbpCplex::_get_LP_status()']]],
-  ['_5fget_5fmodel_5fat_5fpoint',['_get_model_at_point',['../classmaingo_1_1_m_ai_n_g_o.html#a0d372af3e069f9ff12f09936aa9099c0',1,'maingo::MAiNGO']]],
   ['_5fget_5fmultipliers',['_get_multipliers',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ac3fddd3adb6e1db739d3377fb1bf3f1f',1,'maingo::lbp::LowerBoundingSolver::_get_multipliers()'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#af53e6dc42f11d7c5f5ac55e91414762e',1,'maingo::lbp::LbpClp::_get_multipliers()'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#a8e70de9d87020368dab0536c183d1fbb',1,'maingo::lbp::LbpCplex::_get_multipliers()']]],
   ['_5fget_5fobjective_5fvalue',['_get_objective_value',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6343f649f960195fc3783b5c0da3a59e',1,'maingo::lbp::LowerBoundingSolver']]],
   ['_5fget_5fobjective_5fvalue_5fsolver',['_get_objective_value_solver',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#abd9daa889433074171373fe2e59df217',1,'maingo::lbp::LowerBoundingSolver::_get_objective_value_solver()'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#af9c4aa5ee358ed1bbee6203b2ea21e0c',1,'maingo::lbp::LbpClp::_get_objective_value_solver()'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#a4e3ab5943005e5287d047361b8b32985',1,'maingo::lbp::LbpCplex::_get_objective_value_solver()']]],
@@ -86,13 +95,14 @@ var searchData=
   ['_5fiarray',['_Iarray',['../classmaingo_1_1lbp_1_1_lbp_interval.html#aef1c4f8ac1b79c59562f10d2e87f4a6a',1,'maingo::lbp::LbpInterval']]],
   ['_5fid',['_Id',['../classbab_base_1_1_bab_tree.html#aad75c9a8cb31642d172e39d64f260789',1,'babBase::BabTree']]],
   ['_5fidnumber',['_idNumber',['../classbab_base_1_1_bab_node.html#a7d45d49a15377c4f03bf4c670ebb0f6b',1,'babBase::BabNode']]],
-  ['_5fincumbent',['_incumbent',['../classmaingo_1_1bab_1_1_branch_and_bound.html#ac3e65fd10f0294c31f8428330e517f85',1,'maingo::bab::BranchAndBound::_incumbent()'],['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6a6c925badc9b14fb61232aceb859b9c',1,'maingo::lbp::LowerBoundingSolver::_incumbent()']]],
+  ['_5fincumbent',['_incumbent',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a2685cdd222deff1b30e3b83c7b4bb259',1,'maingo::bab::BranchAndBound::_incumbent()'],['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6a6c925badc9b14fb61232aceb859b9c',1,'maingo::lbp::LowerBoundingSolver::_incumbent()']]],
   ['_5fincumbentnodeid',['_incumbentNodeId',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a2defed7ca937feacb124cc97b8f7915f',1,'maingo::bab::BranchAndBound']]],
   ['_5fincumbentsolutionpoint',['_incumbentSolutionPoint',['../classbab_base_1_1_brancher.html#a0ac6e7605a51a64ec4f5449a219f64a5',1,'babBase::Brancher']]],
   ['_5finfeasiblevariables',['_infeasibleVariables',['../classmaingo_1_1_m_ai_n_g_o.html#a49594efef0db3f36efcf342acf7c7525',1,'maingo::MAiNGO']]],
+  ['_5finfer_5fand_5fset_5fbounds_5for_5fthrow',['_infer_and_set_bounds_or_throw',['../classbab_base_1_1_optimization_variable.html#a0678dfc3a0ca4daf488e40b1a0568f66',1,'babBase::OptimizationVariable']]],
   ['_5finitialize_5fmatrix',['_initialize_matrix',['../classmaingo_1_1lbp_1_1_lbp_clp.html#a4ba899146b3421853e50e87560e4cc05',1,'maingo::lbp::LbpClp']]],
   ['_5finitialize_5fsolve',['_initialize_solve',['../classmaingo_1_1_m_ai_n_g_o.html#acdc8a1d98aa50ee3d76dc4873dda787f',1,'maingo::MAiNGO']]],
-  ['_5finitialpoint',['_initialPoint',['../classmaingo_1_1bab_1_1_branch_and_bound.html#acc2f5918ff76d313d9f0d9eae3c749cd',1,'maingo::bab::BranchAndBound::_initialPoint()'],['../classmaingo_1_1_m_ai_n_g_o.html#a6624f898a20299ccfa4a8fa2f8f7dd28',1,'maingo::MAiNGO::_initialPoint()']]],
+  ['_5finitialpoint',['_initialPoint',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a1f509aa5a3de69ff00e8d2c31b654d48',1,'maingo::bab::BranchAndBound::_initialPoint()'],['../classmaingo_1_1_m_ai_n_g_o.html#a6624f898a20299ccfa4a8fa2f8f7dd28',1,'maingo::MAiNGO::_initialPoint()']]],
   ['_5finitialpointfeasible',['_initialPointFeasible',['../classmaingo_1_1_m_ai_n_g_o.html#a7e35d3a30d8a5eab184d18fe256ffc57',1,'maingo::MAiNGO']]],
   ['_5finitialpointoriginal',['_initialPointOriginal',['../classmaingo_1_1_m_ai_n_g_o.html#a66df665b487a9136ff45a8e8a76c739c',1,'maingo::MAiNGO']]],
   ['_5finitials',['_initials',['../classmaingo_1_1_ale_model.html#aa3d5f1a6297be3f397256bc1321d9053',1,'maingo::AleModel::_initials()'],['../classmaingo_1_1_variable_lister.html#a8f7746fa9dd30da09b19b04a92f86b05',1,'maingo::VariableLister::_initials()']]],
@@ -103,12 +113,13 @@ var searchData=
   ['_5fipopt',['_Ipopt',['../classmaingo_1_1ubp_1_1_ubp_ipopt.html#a6a7bbb8629378389e64679418ffab50d',1,'maingo::ubp::UbpIpopt']]],
   ['_5fiterations',['_iterations',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a3b90d97c448a84541e48eeb4388358a9',1,'maingo::bab::BranchAndBound']]],
   ['_5fiterationsgap',['_iterationsgap',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a4d1d7552bc0294281b7453a757a5b1c4',1,'maingo::bab::BranchAndBound']]],
+  ['_5fjsonfilename',['_jsonFileName',['../classmaingo_1_1_m_ai_n_g_o.html#a0dffde2ace38c3fad7a6cfb38f0f374c',1,'maingo::MAiNGO']]],
   ['_5fknitro',['_Knitro',['../classmaingo_1_1ubp_1_1_ubp_knitro.html#ae54f2f80561a3f03efbdb107b03d93eb',1,'maingo::ubp::UbpKnitro']]],
   ['_5flbd',['_lbd',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a7329b6c29c7a8686f7b417f3cfe93026',1,'maingo::bab::BranchAndBound']]],
   ['_5flbdcnt',['_lbdcnt',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a278e8c37f4d71abed1e0cb62b6366e5e',1,'maingo::bab::BranchAndBound']]],
   ['_5flbdnotchanged',['_lbdNotChanged',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a67bce3a5b8585ec930b305d9a77a3d47',1,'maingo::bab::BranchAndBound']]],
   ['_5flbdold',['_lbdOld',['../classmaingo_1_1bab_1_1_branch_and_bound.html#adaeb5fb5c51be07833bf51f921ce2e65',1,'maingo::bab::BranchAndBound']]],
-  ['_5flbs',['_LBS',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a16bbea3c96042145acc5df3830cd72b4',1,'maingo::bab::BranchAndBound']]],
+  ['_5flbs',['_LBS',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a4a63abd1f85d04b411bd3f46c95c994b',1,'maingo::bab::BranchAndBound']]],
   ['_5flinearization_5fpoints_5fkelley',['_linearization_points_Kelley',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4ce48185a33ab3815913f44b823352bb',1,'maingo::lbp::LowerBoundingSolver']]],
   ['_5flinearization_5fpoints_5fkelley_5fsimplex',['_linearization_points_Kelley_Simplex',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8eb858ee10db606fd5f37c7a9359a943',1,'maingo::lbp::LowerBoundingSolver']]],
   ['_5flinearization_5fpoints_5frandom',['_linearization_points_random',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2409b4c91942a365cceb10fd7c9dab17',1,'maingo::lbp::LowerBoundingSolver']]],
@@ -118,15 +129,14 @@ var searchData=
   ['_5flinearize_5fmodel_5fat_5fincumbent',['_linearize_model_at_incumbent',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a96d0133b5deda10067177dee19fd4f6f',1,'maingo::lbp::LowerBoundingSolver']]],
   ['_5flinearize_5fmodel_5fat_5fmidpoint',['_linearize_model_at_midpoint',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a88c29043b78956e34cc95ab46eaac9d1',1,'maingo::lbp::LowerBoundingSolver']]],
   ['_5flinesprinted',['_linesprinted',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a46473e89580e44ef3576e9040e469478',1,'maingo::bab::BranchAndBound']]],
-  ['_5flogger',['_logger',['../classmaingo_1_1bab_1_1_branch_and_bound.html#aaf1e5ea028afe7d2700a6cc573d67674',1,'maingo::bab::BranchAndBound::_logger()'],['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ac82365b8f4f2d24466e60bbf01042142',1,'maingo::lbp::LowerBoundingSolver::_logger()'],['../classmaingo_1_1_m_ai_n_g_o.html#a96f1a3a2a8c24cdca954e63fdc155e01',1,'maingo::MAiNGO::_logger()'],['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab436cb85b75f92ef42ca46adb87b83c0',1,'maingo::ubp::UpperBoundingSolver::_logger()']]],
-  ['_5flowerbound',['_lowerBound',['../classbab_base_1_1_optimization_variable.html#aefe950aa38fa5908dbdc2b34477c2bb2',1,'babBase::OptimizationVariable']]],
+  ['_5flogger',['_logger',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a7bd1a5254c74b3adac3b74712d92257e',1,'maingo::bab::BranchAndBound::_logger()'],['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9ec401321cfa9eda2672c9a65b6ba11d',1,'maingo::lbp::LowerBoundingSolver::_logger()'],['../classmaingo_1_1_m_ai_n_g_o.html#aad666fe69213402bdba8b9972a5985b3',1,'maingo::MAiNGO::_logger()'],['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab76a699684d09100c63ec4ddcaa10456',1,'maingo::ubp::UpperBoundingSolver::_logger()']]],
   ['_5flowerbounds',['_lowerBounds',['../classbab_base_1_1_bab_node.html#a7d1097fbd9ec6c1d7468eb8ca3532707',1,'babBase::BabNode']]],
   ['_5flowerrowbounds',['_lowerRowBounds',['../classmaingo_1_1lbp_1_1_lbp_clp.html#ab38029cc0d0963194ac6ca8c4e7c6632',1,'maingo::lbp::LbpClp::_lowerRowBounds()'],['../classmaingo_1_1ubp_1_1_ubp_clp.html#a3073de5a0fbe6fa5632a9090f1b056ef',1,'maingo::ubp::UbpClp::_lowerRowBounds()']]],
   ['_5flowervarbounds',['_lowerVarBounds',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af0baca6c1bd4847c2c3ab98e3c6c4adb',1,'maingo::lbp::LowerBoundingSolver::_lowerVarBounds()'],['../classmaingo_1_1ubp_1_1_ubp_clp.html#a377da5ab602aaf0ad0d53ea444dce938',1,'maingo::ubp::UbpClp::_lowerVarBounds()']]],
-  ['_5flowervarboundsorig',['_lowerVarBoundsOrig',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a0a241298a1b0f9b0707386e9143e0186',1,'maingo::bab::BranchAndBound']]],
+  ['_5flowervarboundsorig',['_lowerVarBoundsOrig',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a9836ba957bbfd2acace285065fe81710',1,'maingo::bab::BranchAndBound']]],
   ['_5flpstatus',['_LPstatus',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7952199940d657eed365a660f4538527',1,'maingo::lbp::LowerBoundingSolver']]],
   ['_5fmaingooriginalsettings',['_maingoOriginalSettings',['../classmaingo_1_1_m_ai_n_g_o.html#a020f2b61ca2d2baabf16031f078c2ddd',1,'maingo::MAiNGO']]],
-  ['_5fmaingosettings',['_maingoSettings',['../classmaingo_1_1bab_1_1_branch_and_bound.html#acca388f26f5e0c94b58643b566b8a235',1,'maingo::bab::BranchAndBound::_maingoSettings()'],['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2277a8ee8f3f41a9498c43add63835c4',1,'maingo::lbp::LowerBoundingSolver::_maingoSettings()'],['../classmaingo_1_1_m_ai_n_g_o.html#abdcc6fb032878028956050dcba5c9405',1,'maingo::MAiNGO::_maingoSettings()'],['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1b4e1d2ce3d3413c1c5d509d13ec752e',1,'maingo::ubp::UpperBoundingSolver::_maingoSettings()']]],
+  ['_5fmaingosettings',['_maingoSettings',['../classmaingo_1_1bab_1_1_branch_and_bound.html#abb34f49557e1d417e5a87a467cee2ec8',1,'maingo::bab::BranchAndBound::_maingoSettings()'],['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1b4b4c6e80d76f83bb5a2a7f7d2f165c',1,'maingo::lbp::LowerBoundingSolver::_maingoSettings()'],['../classmaingo_1_1_m_ai_n_g_o.html#acdbebd94e2fcccad46515741516799de',1,'maingo::MAiNGO::_maingoSettings()'],['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4d7aaa4de8e2e6633b9064568961bc72',1,'maingo::ubp::UpperBoundingSolver::_maingoSettings()']]],
   ['_5fmaingostatus',['_maingoStatus',['../classmaingo_1_1_m_ai_n_g_o.html#ace36a8a82262f885ae5f87be65d868db',1,'maingo::MAiNGO']]],
   ['_5fmatrix',['_matrix',['../classmaingo_1_1lbp_1_1_lbp_clp.html#ad98f31f435d1a770ea2df783c84b40c2',1,'maingo::lbp::LbpClp::_matrix()'],['../classmaingo_1_1ubp_1_1_ubp_clp.html#a52188ee77b0ac7ba4bf8215d8fac556e',1,'maingo::ubp::UbpClp::_matrix()']]],
   ['_5fmatrixeq1',['_matrixEq1',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8ef7d876bfe5e621b0d9dce7e00f4e8f',1,'maingo::lbp::LowerBoundingSolver']]],
@@ -142,7 +152,7 @@ var searchData=
   ['_5fmodeloutput',['_modelOutput',['../classmaingo_1_1_m_ai_n_g_o.html#aa19003266d3acb3b042f282e8bf1e575',1,'maingo::MAiNGO']]],
   ['_5fmodify_5flp_5ffor_5ffeasopt_5fobbt',['_modify_LP_for_feasopt_OBBT',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a90f45a10a7a5a3a299d63ece51116c58',1,'maingo::lbp::LowerBoundingSolver::_modify_LP_for_feasopt_OBBT()'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#adaab91b912d6dd7b148b22b8d5db2584',1,'maingo::lbp::LbpClp::_modify_LP_for_feasopt_OBBT()'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#ac0b43bc512e9bb34cc5253de53bbb80b',1,'maingo::lbp::LbpCplex::_modify_LP_for_feasopt_OBBT()']]],
   ['_5fmorescalingactivated',['_moreScalingActivated',['../classmaingo_1_1bab_1_1_branch_and_bound.html#acc9b140b91203d6ca5d45f84b697be42',1,'maingo::bab::BranchAndBound']]],
-  ['_5fmsg',['_msg',['../classmaingo_1_1_m_ai_n_g_o_exception.html#a9e405ac624e18ae108f3474e4c8284d4',1,'maingo::MAiNGOException::_msg()'],['../classbab_base_1_1_branch_and_bound_base_exception.html#ad7fa9d844b7264c7251488ecc1e69482',1,'babBase::BranchAndBoundBaseException::_msg()']]],
+  ['_5fmsg',['_msg',['../classbab_base_1_1_branch_and_bound_base_exception.html#ad7fa9d844b7264c7251488ecc1e69482',1,'babBase::BranchAndBoundBaseException']]],
   ['_5fmultipliers',['_multipliers',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ad1db6e887f8b891d267b0347f17fe8db',1,'maingo::lbp::LowerBoundingSolver']]],
   ['_5fmybab',['_myBaB',['../classmaingo_1_1_m_ai_n_g_o.html#ab11fb623cd53b982490aa87f7f7da9e7',1,'maingo::MAiNGO']]],
   ['_5fmyffvarmodel',['_myFFVARmodel',['../classmaingo_1_1_m_ai_n_g_o.html#a690afb91dfea9350cd401dc4c9390c4a',1,'maingo::MAiNGO']]],
@@ -183,10 +193,10 @@ var searchData=
   ['_5fnodesleft',['_nodesLeft',['../classbab_base_1_1_bab_tree.html#aad690dae7eda8bd3e178f2341b5a1076',1,'babBase::BabTree']]],
   ['_5fnodeswaitingforresponse',['_nodesWaitingForResponse',['../classbab_base_1_1_brancher.html#a2452291823286a68da8b1ad1cefa3d84',1,'babBase::Brancher']]],
   ['_5fnodevector',['_nodeVector',['../classbab_base_1_1_bab_tree.html#a766066afd3863ebc1f9025d2e1200e20',1,'babBase::BabTree']]],
-  ['_5fnonconstantconstraints',['_nonconstantConstraints',['../classmaingo_1_1_m_ai_n_g_o.html#a92badf4c34413612706e7aeaefebe95a',1,'maingo::MAiNGO']]],
-  ['_5fnonconstantconstraintsubp',['_nonconstantConstraintsUBP',['../classmaingo_1_1_m_ai_n_g_o.html#a7bce17d744313c9b489b19179eb0b4f0',1,'maingo::MAiNGO']]],
-  ['_5fnonconstantoutputs',['_nonconstantOutputs',['../classmaingo_1_1_m_ai_n_g_o.html#ace95ba4340090ffaafec40a30504ccb4',1,'maingo::MAiNGO']]],
-  ['_5fnot_5fterminated',['_NOT_TERMINATED',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a244a114749491f6b442fd2563fefbc5e',1,'maingo::bab::BranchAndBound']]],
+  ['_5fnonconstantconstraints',['_nonconstantConstraints',['../classmaingo_1_1_m_ai_n_g_o.html#a8dacc1f270014ea3c70dee5451abae62',1,'maingo::MAiNGO']]],
+  ['_5fnonconstantconstraintsubp',['_nonconstantConstraintsUBP',['../classmaingo_1_1_m_ai_n_g_o.html#a0d1cde74073424f84d8b4692a8406101',1,'maingo::MAiNGO']]],
+  ['_5fnonconstantoutputs',['_nonconstantOutputs',['../classmaingo_1_1_m_ai_n_g_o.html#ae1bb7b84481f6f827f61d84601fe9869',1,'maingo::MAiNGO']]],
+  ['_5fnot_5fterminated',['_NOT_TERMINATED',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a4606d4d76cdd55c82480e7e28a65d67a',1,'maingo::bab::BranchAndBound']]],
   ['_5fnoutputvariables',['_noutputVariables',['../classmaingo_1_1_m_ai_n_g_o.html#ae90a5539fd3c1790b49289c919948da7',1,'maingo::MAiNGO']]],
   ['_5fnsettingfiles',['_nSettingFiles',['../classmaingo_1_1_logger.html#a60676efa35ed66a5c90d10412698fc81',1,'maingo::Logger']]],
   ['_5fnumber_5fof_5ftrials_5fdown',['_number_of_trials_down',['../classbab_base_1_1_brancher.html#abbbc54933302ab1b407ec237aa1e0ff8',1,'babBase::Brancher']]],
@@ -207,43 +217,46 @@ var searchData=
   ['_5fobjectivesatroot',['_objectivesAtRoot',['../classmaingo_1_1_m_ai_n_g_o.html#a11b956f66ea516b6951abe9dd2410484',1,'maingo::MAiNGO']]],
   ['_5fobjectivescalingfactors',['_objectiveScalingFactors',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a67b22b446040aa9148dbbd411ad928bb',1,'maingo::lbp::LowerBoundingSolver']]],
   ['_5fobjectivevalue',['_objectiveValue',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ab2c6d75aa915dd5e3296b0873d39acfd',1,'maingo::lbp::LowerBoundingSolver']]],
+  ['_5fonlyboxconstraints',['_onlyBoxConstraints',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a44e1d78a441997c6fced40f8c91c8043',1,'maingo::lbp::LowerBoundingSolver']]],
   ['_5foptimizationvariables',['_optimizationVariables',['../classmaingo_1_1ubp_1_1_knitro_problem.html#a06238fa671eeb532dcfac051beeff95f',1,'maingo::ubp::KnitroProblem']]],
-  ['_5foriginalconstraints',['_originalConstraints',['../classmaingo_1_1_m_ai_n_g_o.html#a0314c3c342e0483b85692344d79d8486',1,'maingo::MAiNGO']]],
+  ['_5foriginalconstraints',['_originalConstraints',['../classmaingo_1_1_m_ai_n_g_o.html#a88c7a2689b32500ebf09bf37de06d47f',1,'maingo::MAiNGO']]],
   ['_5foriginallowerbounds',['_originalLowerBounds',['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2eaaa9feb9ad231209cb01a29a76b5e4',1,'maingo::ubp::UpperBoundingSolver']]],
   ['_5foriginalupperbounds',['_originalUpperBounds',['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a9c95129dc31203f436aec2d4e71e0dc2',1,'maingo::ubp::UpperBoundingSolver']]],
-  ['_5foriginalvariables',['_originalVariables',['../classmaingo_1_1bab_1_1_branch_and_bound.html#aa47a427d6c433a26a35b5882e54480e4',1,'maingo::bab::BranchAndBound::_originalVariables()'],['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a39ef7296e50fb200934ff74a017e43bf',1,'maingo::lbp::LowerBoundingSolver::_originalVariables()'],['../classmaingo_1_1_m_ai_n_g_o.html#adf764bba4c067716ca0d9948eca504a8',1,'maingo::MAiNGO::_originalVariables()'],['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a05f3d0a48a4c425ac11035a76426a184',1,'maingo::ubp::UpperBoundingSolver::_originalVariables()']]],
+  ['_5foriginalvariables',['_originalVariables',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a54fa45d1751c9a81b346bd7cd1f5969c',1,'maingo::bab::BranchAndBound::_originalVariables()'],['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a39ef7296e50fb200934ff74a017e43bf',1,'maingo::lbp::LowerBoundingSolver::_originalVariables()'],['../classmaingo_1_1_m_ai_n_g_o.html#adf764bba4c067716ca0d9948eca504a8',1,'maingo::MAiNGO::_originalVariables()'],['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a05f3d0a48a4c425ac11035a76426a184',1,'maingo::ubp::UpperBoundingSolver::_originalVariables()']]],
   ['_5foutputnames',['_outputNames',['../classmaingo_1_1_m_ai_n_g_o.html#a5cbd854078dc3fbef193c14af2e7a11d',1,'maingo::MAiNGO']]],
   ['_5foutputtime',['_outputTime',['../classmaingo_1_1_m_ai_n_g_o.html#a101ac517abb98426ff61a29feb27e7a1',1,'maingo::MAiNGO']]],
   ['_5foutstream',['_outStream',['../classmaingo_1_1_logger.html#a19b41b5d24dd8694b51ff0caaf56a0b4',1,'maingo::Logger']]],
   ['_5fpositions',['_positions',['../classmaingo_1_1_ale_model.html#a56aeb872452a335f5ca091e7d6e3583f',1,'maingo::AleModel::_positions()'],['../classmaingo_1_1_maingo_evaluator.html#a467265384252d1e9027dece7661976bb',1,'maingo::MaingoEvaluator::_positions()'],['../classmaingo_1_1_variable_lister.html#a39c90597d8d4cc960550fe63aa4481f8',1,'maingo::VariableLister::_positions()']]],
-  ['_5fpostprocess_5fnode',['_postprocess_node',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a29001119914eca2657390048e11db609',1,'maingo::bab::BranchAndBound::_postprocess_node(babBase::BabNode &amp;currentNodeInOut, const std::vector&lt; double &gt; &amp;lbpSolutionPoint, const lbp::LbpDualInfo &amp;dualInfo)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#aa35b55427764ada3cba0b0a74adafe0e',1,'maingo::bab::BranchAndBound::_postprocess_node(babBase::BabNode &amp;currentNodeInOut, const std::vector&lt; double &gt; &amp;lbpSolutionPoint, const lbp::LbpDualInfo &amp;dualInfo)']]],
-  ['_5fpreprocess_5fnode',['_preprocess_node',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a990927b31d0abc3c0df5ab3883c12de1',1,'maingo::bab::BranchAndBound::_preprocess_node(babBase::BabNode &amp;currentNodeInOut)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a6ab1475deadb8906e5d680911e747469',1,'maingo::bab::BranchAndBound::_preprocess_node(babBase::BabNode &amp;currentNodeInOut)']]],
+  ['_5fpostprocess_5fnode',['_postprocess_node',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a29001119914eca2657390048e11db609',1,'maingo::bab::BranchAndBound']]],
+  ['_5fpreprocess_5fnode',['_preprocess_node',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a990927b31d0abc3c0df5ab3883c12de1',1,'maingo::bab::BranchAndBound']]],
   ['_5fpreprocesstime',['_preprocessTime',['../classmaingo_1_1_m_ai_n_g_o.html#aa297393a110200243b693cf5f0fed0cb',1,'maingo::MAiNGO']]],
   ['_5fprint_5fadditional_5foutput',['_print_additional_output',['../classmaingo_1_1_m_ai_n_g_o.html#a1056041b9ace71cfbf3807ec436cd80b',1,'maingo::MAiNGO']]],
   ['_5fprint_5flp',['_print_LP',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ad73a525d4fbef8238e26dd95890f2b2b',1,'maingo::lbp::LowerBoundingSolver']]],
   ['_5fprint_5fmaingo_5fheader',['_print_MAiNGO_header',['../classmaingo_1_1_m_ai_n_g_o.html#a585967bc628b31b1fbba2105be7d36a2',1,'maingo::MAiNGO']]],
-  ['_5fprint_5fmaingo_5fheader_5ffor_5fother_5fmodeling_5flanguage',['_print_MAiNGO_header_for_other_modeling_language',['../classmaingo_1_1_m_ai_n_g_o.html#a93a8eadb777ce6ff95072f16dc6ef762',1,'maingo::MAiNGO']]],
+  ['_5fprint_5fmaingo_5fheader_5ffor_5fother_5fmodeling_5flanguage',['_print_MAiNGO_header_for_other_modeling_language',['../classmaingo_1_1_m_ai_n_g_o.html#a1eeb14c069d224846f7684d95a90ed04',1,'maingo::MAiNGO']]],
   ['_5fprint_5fmessage',['_print_message',['../classmaingo_1_1_m_ai_n_g_o.html#a0a8c5d381ad5818cec8624db717de73a',1,'maingo::MAiNGO']]],
-  ['_5fprint_5fone_5fnode',['_print_one_node',['../classmaingo_1_1bab_1_1_branch_and_bound.html#ad1c6f9191a7ab197f5a48ea554594462',1,'maingo::bab::BranchAndBound::_print_one_node(const double theLBD, const int ID, const std::vector&lt; double &gt; lowerVarBounds, const std::vector&lt; double &gt; upperVarBounds)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a01acae40320149ecfef11bda53350b3c',1,'maingo::bab::BranchAndBound::_print_one_node(const double theLBD, const int ID, const std::vector&lt; double &gt; lowerVarBounds, const std::vector&lt; double &gt; upperVarBounds, std::ostream &amp;outstream)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a1f542019964ce925a4d19eb951049da7',1,'maingo::bab::BranchAndBound::_print_one_node(const double theLBD, const babBase::BabNode &amp;theNode)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#ad301660df21f804bccefa3da694aa743',1,'maingo::bab::BranchAndBound::_print_one_node(const double theLBD, const babBase::BabNode &amp;theNode, std::ostream &amp;outstream)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a3250e84e0547b8de82d91fe929c0e8d9',1,'maingo::bab::BranchAndBound::_print_one_node(const double theLBD, const int ID, const std::vector&lt; double &gt; lowerVarBounds, const std::vector&lt; double &gt; upperVarBounds)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a202477d2ba7c16bf7d39dc4f77034c67',1,'maingo::bab::BranchAndBound::_print_one_node(const double theLBD, const int ID, const std::vector&lt; double &gt; lowerVarBounds, const std::vector&lt; double &gt; upperVarBounds, std::ostream &amp;outstream)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a1f542019964ce925a4d19eb951049da7',1,'maingo::bab::BranchAndBound::_print_one_node(const double theLBD, const babBase::BabNode &amp;theNode)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#ad301660df21f804bccefa3da694aa743',1,'maingo::bab::BranchAndBound::_print_one_node(const double theLBD, const babBase::BabNode &amp;theNode, std::ostream &amp;outstream)']]],
+  ['_5fprint_5fone_5fnode',['_print_one_node',['../classmaingo_1_1bab_1_1_branch_and_bound.html#ad1c6f9191a7ab197f5a48ea554594462',1,'maingo::bab::BranchAndBound::_print_one_node(const double theLBD, const int ID, const std::vector&lt; double &gt; lowerVarBounds, const std::vector&lt; double &gt; upperVarBounds)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a01acae40320149ecfef11bda53350b3c',1,'maingo::bab::BranchAndBound::_print_one_node(const double theLBD, const int ID, const std::vector&lt; double &gt; lowerVarBounds, const std::vector&lt; double &gt; upperVarBounds, std::ostream &amp;outstream)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a1f542019964ce925a4d19eb951049da7',1,'maingo::bab::BranchAndBound::_print_one_node(const double theLBD, const babBase::BabNode &amp;theNode)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#ad301660df21f804bccefa3da694aa743',1,'maingo::bab::BranchAndBound::_print_one_node(const double theLBD, const babBase::BabNode &amp;theNode, std::ostream &amp;outstream)']]],
   ['_5fprint_5fsolution',['_print_solution',['../classmaingo_1_1_m_ai_n_g_o.html#a4919a41d851f89b85fbd2646d878a6b0',1,'maingo::MAiNGO']]],
   ['_5fprint_5fstatistics',['_print_statistics',['../classmaingo_1_1_m_ai_n_g_o.html#a108919c79fc8d5fd6e0389ce7b242acb',1,'maingo::MAiNGO']]],
-  ['_5fprint_5ftermination',['_print_termination',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a80be7a4efd5e0f39765c635d6be13116',1,'maingo::bab::BranchAndBound::_print_termination(std::string message)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a4cab2a79ab0b12b712e7e45852be4a21',1,'maingo::bab::BranchAndBound::_print_termination(std::string message)']]],
+  ['_5fprint_5ftermination',['_print_termination',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a80be7a4efd5e0f39765c635d6be13116',1,'maingo::bab::BranchAndBound']]],
   ['_5fprint_5ftime',['_print_time',['../classmaingo_1_1_m_ai_n_g_o.html#ab5ac4bb96785ca26617e81b55d9a5996',1,'maingo::MAiNGO']]],
   ['_5fprintnewincumbent',['_printNewIncumbent',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a733596f5150a34554a2e001bc2a7bd1e',1,'maingo::bab::BranchAndBound']]],
   ['_5fproblemstructure',['_problemStructure',['../classmaingo_1_1_m_ai_n_g_o.html#a038bd07379ad5ac438d7253f67e5f456',1,'maingo::MAiNGO']]],
-  ['_5fprocess_5fnode',['_process_node',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a15520696d8e8e38197992c71ffd91c53',1,'maingo::bab::BranchAndBound::_process_node(babBase::BabNode &amp;currentNodeInOut)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a1a78374e95574fbe731cdd0d2dae7b53',1,'maingo::bab::BranchAndBound::_process_node(babBase::BabNode &amp;currentNodeInOut)']]],
+  ['_5fprocess_5fnode',['_process_node',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a15520696d8e8e38197992c71ffd91c53',1,'maingo::bab::BranchAndBound']]],
   ['_5fprog',['_prog',['../classmaingo_1_1_ale_model.html#a7e3a43566149a7d691bc4e74c622ed5c',1,'maingo::AleModel']]],
   ['_5fpruningscore',['_pruningScore',['../classbab_base_1_1_bab_node.html#a3db2c380e596d213695706f9a30453b3',1,'babBase::BabNode']]],
   ['_5fpruningscorethreshold',['_pruningScoreThreshold',['../classbab_base_1_1_bab_tree.html#a724bc2173e90f9f49b452a2c60c58d93',1,'babBase::BabTree']]],
   ['_5fpseudocosts_5fdown',['_pseudocosts_down',['../classbab_base_1_1_brancher.html#aa1619d82b46476d264ca0c82245c5f0c',1,'babBase::Brancher']]],
   ['_5fpseudocosts_5fup',['_pseudocosts_up',['../classbab_base_1_1_brancher.html#a8d28b468b23676b995830a082937c3e0',1,'babBase::Brancher']]],
   ['_5fptr',['_ptr',['../classbab_base_1_1_out_var.html#a402afb5eef3c5316d3740989c0f2e504',1,'babBase::OutVar']]],
+  ['_5fpymaingo_2ecpp',['_pymaingo.cpp',['../__pymaingo_8cpp.html',1,'']]],
   ['_5freadytosolve',['_readyToSolve',['../classmaingo_1_1_m_ai_n_g_o.html#a9c4f03e80eafd073264fb0d2f186dc81',1,'maingo::MAiNGO']]],
   ['_5frecognize_5fstructure',['_recognize_structure',['../classmaingo_1_1_m_ai_n_g_o.html#ab57d5aa6e5abb14b5d2bea4063f8db5e',1,'maingo::MAiNGO']]],
   ['_5frelpruningtol',['_relPruningTol',['../classbab_base_1_1_bab_tree.html#aa0c6599b79fd5a94a232f64cd33060de',1,'babBase::BabTree']]],
   ['_5fremovedvariables',['_removedVariables',['../classmaingo_1_1_m_ai_n_g_o.html#abb425f08ebe9b1d4a71d6b455cd656b9',1,'maingo::MAiNGO']]],
   ['_5freset_5flp',['_reset_LP',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af8be99dda0a3968034aed1c5a0d9fba4',1,'maingo::lbp::LowerBoundingSolver']]],
   ['_5frestore_5flp_5fcoefficients_5fafter_5fobbt',['_restore_LP_coefficients_after_OBBT',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9ee38ffd8ce3d627bfd70c195f9be58d',1,'maingo::lbp::LowerBoundingSolver::_restore_LP_coefficients_after_OBBT()'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#aa0964fe28a1d7c5b3095821749792a7b',1,'maingo::lbp::LbpClp::_restore_LP_coefficients_after_OBBT()'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#aa9d3a01d31337a11c0e74e9883597d99',1,'maingo::lbp::LbpCplex::_restore_LP_coefficients_after_OBBT()']]],
+  ['_5fresultfilename',['_resultFileName',['../classmaingo_1_1_m_ai_n_g_o.html#a0a9de764a3521782c3f6e3dc68f01324',1,'maingo::MAiNGO']]],
   ['_5fresultinterval',['_resultInterval',['../classmaingo_1_1lbp_1_1_lbp_interval.html#ac7defcd5788a9a9d5e6808a153befe3c',1,'maingo::lbp::LbpInterval']]],
   ['_5fresultvars',['_resultVars',['../classmaingo_1_1_m_ai_n_g_o.html#aa6a02b134e037806dea96aab029ff908',1,'maingo::MAiNGO']]],
   ['_5frhseq1',['_rhsEq1',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7d227b1709674b820d8bc7c0466aaa13',1,'maingo::lbp::LowerBoundingSolver']]],
@@ -262,6 +275,7 @@ var searchData=
   ['_5frootmultistartstatus',['_rootMultistartStatus',['../classmaingo_1_1_m_ai_n_g_o.html#a4940dbf6b13e10e500cb7704b3f6d412',1,'maingo::MAiNGO']]],
   ['_5frootnode',['_rootNode',['../classmaingo_1_1_m_ai_n_g_o.html#a08c2039814522b8addbf0a1d740397d3',1,'maingo::MAiNGO']]],
   ['_5frootobbtstatus',['_rootObbtStatus',['../classmaingo_1_1_m_ai_n_g_o.html#ae90d120eacc929b19609c6dcd9017fa6',1,'maingo::MAiNGO']]],
+  ['_5fround_5fand_5fcheck_5fdiscrete_5fbounds',['_round_and_check_discrete_bounds',['../classbab_base_1_1_optimization_variable.html#ace610f731e7f44a53dbf4003ffe9f8d0',1,'babBase::OptimizationVariable']]],
   ['_5fselect_5fbranching_5fdimension',['_select_branching_dimension',['../classbab_base_1_1_brancher.html#aa6bd0c8e1afc7fd2e664eb758c76129d',1,'babBase::Brancher']]],
   ['_5fselect_5fbranching_5fdimension_5fpseudo_5fcosts',['_select_branching_dimension_pseudo_costs',['../classbab_base_1_1_brancher.html#adc6989ca24a46718549abe6ae0a507a8',1,'babBase::Brancher']]],
   ['_5fselect_5fnode',['_select_node',['../classbab_base_1_1_bab_tree.html#ab7c26ded9e7755b0252554a73c2746be',1,'babBase::BabTree']]],
@@ -280,22 +294,22 @@ var searchData=
   ['_5fsolutiontimewallclock',['_solutionTimeWallClock',['../classmaingo_1_1_m_ai_n_g_o.html#a041316b6a1ce0e0d78249719e5075d0b',1,'maingo::MAiNGO']]],
   ['_5fsolutionvalue',['_solutionValue',['../classmaingo_1_1_m_ai_n_g_o.html#a462440b0556dae9e3c515a2d3c661b13',1,'maingo::MAiNGO']]],
   ['_5fsolutionx',['_solutionX',['../classmaingo_1_1ubp_1_1_ipopt_problem.html#a6b8a2a2d1ad6bff475c13b0fde428ff3',1,'maingo::ubp::IpoptProblem']]],
-  ['_5fsolve_5flbp',['_solve_LBP',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a969736750315215126c3bad4b398d2e9',1,'maingo::bab::BranchAndBound::_solve_LBP(const babBase::BabNode &amp;currentNode)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a3d09b996010632d9f782e9d7e5926e80',1,'maingo::bab::BranchAndBound::_solve_LBP(const babBase::BabNode &amp;currentNode)']]],
+  ['_5fsolve_5flbp',['_solve_LBP',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a969736750315215126c3bad4b398d2e9',1,'maingo::bab::BranchAndBound']]],
   ['_5fsolve_5flp',['_solve_LP',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aaa7dbb4ba6ef927a0889233378725089',1,'maingo::lbp::LowerBoundingSolver::_solve_LP()'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#a3423814b107c872de9f6c7b877546d78',1,'maingo::lbp::LbpClp::_solve_LP()'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#a1dec750f6f585a7ec3887d8786747104',1,'maingo::lbp::LbpCplex::_solve_LP()'],['../classmaingo_1_1lbp_1_1_lbp_interval.html#ac28a50c89f88e52c1af7af2ed5104bdb',1,'maingo::lbp::LbpInterval::_solve_LP()']]],
   ['_5fsolve_5fminlp',['_solve_MINLP',['../classmaingo_1_1_m_ai_n_g_o.html#ab2b58e658363c359a205cbd435f1f3d3',1,'maingo::MAiNGO']]],
   ['_5fsolve_5fmiqp',['_solve_MIQP',['../classmaingo_1_1_m_ai_n_g_o.html#a9f726a054960d563d59032b8067701b2',1,'maingo::MAiNGO']]],
   ['_5fsolve_5fnlp',['_solve_nlp',['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa61f6cbf0485f37b2ad7a73b18aa6521',1,'maingo::ubp::UpperBoundingSolver::_solve_nlp()'],['../classmaingo_1_1ubp_1_1_ubp_clp.html#ab24d1e766d5bbc32fdaab11dbdd05ef2',1,'maingo::ubp::UbpClp::_solve_nlp()'],['../classmaingo_1_1ubp_1_1_ubp_cplex.html#a6ddfc769b26441e3712ec56c5dcec7ba',1,'maingo::ubp::UbpCplex::_solve_nlp()'],['../classmaingo_1_1ubp_1_1_ubp_ipopt.html#a1d566d058e7134be0305fed79d25be08',1,'maingo::ubp::UbpIpopt::_solve_nlp()'],['../classmaingo_1_1ubp_1_1_ubp_knitro.html#a25aec304d6681184a572778f8a8c8379',1,'maingo::ubp::UbpKnitro::_solve_nlp()'],['../classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a07be0f105dd3dbd86e6e91ccea83ce20',1,'maingo::ubp::UbpNLopt::_solve_nlp()']]],
   ['_5fsolve_5fprobing_5flbp',['_solve_probing_LBP',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a124cee8eb569d80dbe8c162e412906d8',1,'maingo::lbp::LowerBoundingSolver']]],
-  ['_5fsolve_5fubp',['_solve_UBP',['../classmaingo_1_1bab_1_1_branch_and_bound.html#acab7696c07ae41c7a9296c0977359b1e',1,'maingo::bab::BranchAndBound::_solve_UBP(const babBase::BabNode &amp;currentNode, std::vector&lt; double &gt; &amp;ubpSolutionPoint, const double currentLBD)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#ab2bb968cb7c8aba14c9d42268fbb63e1',1,'maingo::bab::BranchAndBound::_solve_UBP(const babBase::BabNode &amp;currentNode, std::vector&lt; double &gt; &amp;ubpSolutionPoint, const double currentLBD)']]],
+  ['_5fsolve_5fubp',['_solve_UBP',['../classmaingo_1_1bab_1_1_branch_and_bound.html#acab7696c07ae41c7a9296c0977359b1e',1,'maingo::bab::BranchAndBound']]],
   ['_5fsolverstatus',['_solverStatus',['../classmaingo_1_1ubp_1_1_ubp_knitro.html#a59c576b8dd4282ea8c9f64f77623625f',1,'maingo::ubp::UbpKnitro']]],
   ['_5fstatus',['_status',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a010075b80170c61b0c30490e64ec979d',1,'maingo::bab::BranchAndBound']]],
   ['_5fstructure',['_structure',['../classmaingo_1_1ubp_1_1_ipopt_problem.html#afb2e8af34a1ecdbd9fbcabf01cdba05a',1,'maingo::ubp::IpoptProblem::_structure()'],['../classmaingo_1_1ubp_1_1_knitro_problem.html#a77d82898e6cb1ade896eb72f709f121e',1,'maingo::ubp::KnitroProblem::_structure()'],['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a5310f4bd87280f6785ddac2260f034d0',1,'maingo::ubp::UpperBoundingSolver::_structure()']]],
   ['_5fsymbols',['_symbols',['../classmaingo_1_1_ale_model.html#a0cf66bb00b12a13525d9b6e80fa55fe3',1,'maingo::AleModel::_symbols()'],['../classmaingo_1_1_maingo_evaluator.html#ac3b368860bbe5327ccbf817365ca5279',1,'maingo::MaingoEvaluator::_symbols()']]],
   ['_5fterminate_5fclp',['_terminate_Clp',['../classmaingo_1_1lbp_1_1_lbp_clp.html#a584ba5226cae8fee0db0cb043a4f08a3',1,'maingo::lbp::LbpClp']]],
   ['_5fterminate_5fcplex',['_terminate_cplex',['../classmaingo_1_1lbp_1_1_lbp_cplex.html#a08adc9be917d4a13774634695cf59065',1,'maingo::lbp::LbpCplex::_terminate_cplex()'],['../classmaingo_1_1ubp_1_1_ubp_cplex.html#a224b13053d2fdcaff567757fc3b4316e',1,'maingo::ubp::UbpCplex::_terminate_cplex()']]],
-  ['_5fterminated',['_TERMINATED',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ac0b46b223d15cc2e3851dcaf961b9e7a',1,'maingo::bab::BranchAndBound']]],
-  ['_5fterminated_5fworkers_5factive',['_TERMINATED_WORKERS_ACTIVE',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ab77e9f73c90db0ea95610d8103738966',1,'maingo::bab::BranchAndBound']]],
-  ['_5ftermination_5ftype',['_TERMINATION_TYPE',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1',1,'maingo::bab::BranchAndBound::_TERMINATION_TYPE()'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1',1,'maingo::bab::BranchAndBound::_TERMINATION_TYPE()']]],
+  ['_5fterminated',['_TERMINATED',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a1a904c0cb2e9786677bfd0c13951dec7',1,'maingo::bab::BranchAndBound']]],
+  ['_5fterminated_5fworkers_5factive',['_TERMINATED_WORKERS_ACTIVE',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a803a5e6c3589e7407f7993fff57c30dd',1,'maingo::bab::BranchAndBound']]],
+  ['_5ftermination_5ftype',['_TERMINATION_TYPE',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1',1,'maingo::bab::BranchAndBound']]],
   ['_5ftheipoptproblem',['_theIpoptProblem',['../classmaingo_1_1ubp_1_1_ubp_ipopt.html#a1ebf4ace6206cb615accec7819a7b45a',1,'maingo::ubp::UbpIpopt']]],
   ['_5ftheknitroproblem',['_theKnitroProblem',['../classmaingo_1_1ubp_1_1_ubp_knitro.html#a7ed80bebed09716ca40e07cee2722e4b',1,'maingo::ubp::UbpKnitro']]],
   ['_5ftimepassed',['_timePassed',['../classmaingo_1_1bab_1_1_branch_and_bound.html#af4816842caa40287b9fcda0401238236',1,'maingo::bab::BranchAndBound']]],
@@ -304,11 +318,11 @@ var searchData=
   ['_5fturn_5foff_5fspecific_5foptions',['_turn_off_specific_options',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9f37648a18e394088679dc92701dd76f',1,'maingo::lbp::LowerBoundingSolver::_turn_off_specific_options()'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#ada95cd9dabecd558b31f2bdc4c26e8e4',1,'maingo::lbp::LbpClp::_turn_off_specific_options()'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#a792aea9d68cf82b893b5ed1ca0d439b5',1,'maingo::lbp::LbpCplex::_turn_off_specific_options()'],['../classmaingo_1_1lbp_1_1_lbp_interval.html#a2a9d6be191c080861b7ae9de9ca46f98',1,'maingo::lbp::LbpInterval::_turn_off_specific_options()']]],
   ['_5fubd',['_ubd',['../classmaingo_1_1bab_1_1_branch_and_bound.html#adf8377615ee4d86485f589700902126c',1,'maingo::bab::BranchAndBound']]],
   ['_5fubdcnt',['_ubdcnt',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a85091bc9965339278cc9c02b2baf354b',1,'maingo::bab::BranchAndBound']]],
-  ['_5fubs',['_UBS',['../classmaingo_1_1bab_1_1_branch_and_bound.html#af1853b2ef51e8bddd0a9ab2404340037',1,'maingo::bab::BranchAndBound']]],
+  ['_5fubs',['_UBS',['../classmaingo_1_1bab_1_1_branch_and_bound.html#aba6e92ef8af1e76b62a543e1334b4948',1,'maingo::bab::BranchAndBound']]],
   ['_5funiquenames',['_uniqueNames',['../classmaingo_1_1_m_ai_n_g_o.html#a4151ba2d1c6b6965001dbf7fc1a7c122',1,'maingo::MAiNGO']]],
   ['_5funiquenamesoriginal',['_uniqueNamesOriginal',['../classmaingo_1_1_m_ai_n_g_o.html#a805b901f0e2e25ee5910b2b0e6a7c99a',1,'maingo::MAiNGO']]],
-  ['_5fupdate_5fincumbent_5fand_5ffathom',['_update_incumbent_and_fathom',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a13e706473cf2f26ac9b3d20344270aaa',1,'maingo::bab::BranchAndBound::_update_incumbent_and_fathom(const double solval, const std::vector&lt; double &gt; sol, const unsigned int currentNodeID)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a0608306463120a72b9ec32395044470f',1,'maingo::bab::BranchAndBound::_update_incumbent_and_fathom(const double solval, const std::vector&lt; double &gt; sol, const unsigned int currentNodeID)']]],
-  ['_5fupdate_5flowest_5flbd',['_update_lowest_lbd',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a5cbefb1e86ca300d67ae3c65eab1099b',1,'maingo::bab::BranchAndBound::_update_lowest_lbd()'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#ac6de991f9fa810bc93ed5ce47577e210',1,'maingo::bab::BranchAndBound::_update_lowest_lbd()']]],
+  ['_5fupdate_5fincumbent_5fand_5ffathom',['_update_incumbent_and_fathom',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a13e706473cf2f26ac9b3d20344270aaa',1,'maingo::bab::BranchAndBound']]],
+  ['_5fupdate_5flowest_5flbd',['_update_lowest_lbd',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a5cbefb1e86ca300d67ae3c65eab1099b',1,'maingo::bab::BranchAndBound']]],
   ['_5fupdate_5flp',['_update_LP',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a018fd682b724900df5060adfd73a953b',1,'maingo::lbp::LowerBoundingSolver::_update_LP()'],['../classmaingo_1_1lbp_1_1_lbp_interval.html#a70bb4b9bda381f7e2f1e49b66be863c2',1,'maingo::lbp::LbpInterval::_update_LP()']]],
   ['_5fupdate_5flp_5feq',['_update_LP_eq',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1aec7459f261f58b6e476fd7eae99581',1,'maingo::lbp::LowerBoundingSolver::_update_LP_eq(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEq)'],['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a40d9842e7d85a37376bd3bf51761b315',1,'maingo::lbp::LowerBoundingSolver::_update_LP_eq(const vMC &amp;resultRelaxationCvVMC, const vMC &amp;resultRelaxationCcVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iEq)'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#a52de428ac88f082ffc3cfe4c9ec0ca84',1,'maingo::lbp::LbpClp::_update_LP_eq(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEq)'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#a14ab839fae5a1d3370c5431b665d542e',1,'maingo::lbp::LbpClp::_update_LP_eq(const vMC &amp;resultRelaxationCvVMC, const vMC &amp;resultRelaxationCcVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iEq)'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#ab05713911aef1c8aac1d4da8f8d1faac',1,'maingo::lbp::LbpCplex::_update_LP_eq(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEq)'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#a64e1ffb352c8b5cb3ff2d349ae95dc40',1,'maingo::lbp::LbpCplex::_update_LP_eq(const vMC &amp;resultRelaxationCvVMC, const vMC &amp;resultRelaxationCcVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iEq)'],['../classmaingo_1_1lbp_1_1_lbp_interval.html#a274c50b0ce633cb4b9616f9ec737bbae',1,'maingo::lbp::LbpInterval::_update_LP_eq()']]],
   ['_5fupdate_5flp_5feqrelaxationonly',['_update_LP_eqRelaxationOnly',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a59a4631f9fbe8e1a568fd2a36fac31e2',1,'maingo::lbp::LowerBoundingSolver::_update_LP_eqRelaxationOnly(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEqRelaxationOnly)'],['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ad3893a30edf38b7801801e754773e8da',1,'maingo::lbp::LowerBoundingSolver::_update_LP_eqRelaxationOnly(const vMC &amp;resultRelaxationCvVMC, const vMC &amp;resultRelaxationCcVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iEqRelaxationOnly)'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#a09930dee52d992c1aeab1e8a6f32ef59',1,'maingo::lbp::LbpClp::_update_LP_eqRelaxationOnly(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEqRelaxationOnly)'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#abda27bf8bd56a6870d43acc6ff9d7f81',1,'maingo::lbp::LbpClp::_update_LP_eqRelaxationOnly(const vMC &amp;resultRelaxationCvVMC, const vMC &amp;resultRelaxationCcVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iEqRelaxationOnly)'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#a84205c27db34dc362f0ac7302d2cecbc',1,'maingo::lbp::LbpCplex::_update_LP_eqRelaxationOnly(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEqRelaxationOnly)'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#a2ece08fdba41c3234cf486328cb270f3',1,'maingo::lbp::LbpCplex::_update_LP_eqRelaxationOnly(const vMC &amp;resultRelaxationCvVMC, const vMC &amp;resultRelaxationCcVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iEqRelaxationOnly)'],['../classmaingo_1_1lbp_1_1_lbp_interval.html#aea1859e400fedef26c0391fe3d2262e0',1,'maingo::lbp::LbpInterval::_update_LP_eqRelaxationOnly()']]],
@@ -320,31 +334,30 @@ var searchData=
   ['_5fupdate_5flp_5fobj',['_update_LP_obj',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a464be8ca82b76704c0ecf60d7f9d2aad',1,'maingo::lbp::LowerBoundingSolver::_update_LP_obj(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iObj)'],['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#acbf69ad8646a8f786e6b4d2e91fd54fe',1,'maingo::lbp::LowerBoundingSolver::_update_LP_obj(const vMC &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iObj)'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#adf6172de124b973b6f1ce730119f222c',1,'maingo::lbp::LbpClp::_update_LP_obj(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iObj)'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#a7f1ecf9544c6400076473c3cbb1459d2',1,'maingo::lbp::LbpClp::_update_LP_obj(const vMC &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iObj)'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#a54a04809e29838e9e2d787f1e8200a8d',1,'maingo::lbp::LbpCplex::_update_LP_obj(const MC &amp;resultRelaxation, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iObj)'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#adf18833e2fcf0195e9407308aea38b6f',1,'maingo::lbp::LbpCplex::_update_LP_obj(const vMC &amp;resultRelaxationVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iObj)'],['../classmaingo_1_1lbp_1_1_lbp_interval.html#a7282b284518725b3754a29531001d67f',1,'maingo::lbp::LbpInterval::_update_LP_obj()']]],
   ['_5fupdate_5fwhole_5flp_5fat_5flinpoint',['_update_whole_LP_at_linpoint',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8f63bc9db34d63c361e2a5e8943fe6c6',1,'maingo::lbp::LowerBoundingSolver']]],
   ['_5fupdate_5fwhole_5flp_5fat_5fvector_5flinpoints',['_update_whole_LP_at_vector_linpoints',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a346ce6af484360fa0d789f02a460ca33',1,'maingo::lbp::LowerBoundingSolver']]],
-  ['_5fupperbound',['_upperBound',['../classbab_base_1_1_optimization_variable.html#a31a22d0b8661eb373ce5dbd72aedc819',1,'babBase::OptimizationVariable']]],
   ['_5fupperbounds',['_upperBounds',['../classbab_base_1_1_bab_node.html#ad98784ad49fb92d9dc13bfb4faf1561f',1,'babBase::BabNode']]],
   ['_5fupperrowbounds',['_upperRowBounds',['../classmaingo_1_1lbp_1_1_lbp_clp.html#a92aff88ba6eff7858852ad88c7545f80',1,'maingo::lbp::LbpClp::_upperRowBounds()'],['../classmaingo_1_1ubp_1_1_ubp_clp.html#a57127186a8c3cfa2eca5a84de10d5461',1,'maingo::ubp::UbpClp::_upperRowBounds()']]],
   ['_5fuppervarbounds',['_upperVarBounds',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae8e6470d9c422e32457e7dd7e7a8cc50',1,'maingo::lbp::LowerBoundingSolver::_upperVarBounds()'],['../classmaingo_1_1ubp_1_1_ubp_clp.html#a08203d67961695155e95c8941b75477a',1,'maingo::ubp::UbpClp::_upperVarBounds()']]],
-  ['_5fuppervarboundsorig',['_upperVarBoundsOrig',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a5bd0987c7dde438e8d52af87421d78c5',1,'maingo::bab::BranchAndBound']]],
+  ['_5fuppervarboundsorig',['_upperVarBoundsOrig',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a6087a84349286d46bfc4a6633f5c881b',1,'maingo::bab::BranchAndBound']]],
   ['_5fusersetsettings',['_userSetSettings',['../classmaingo_1_1_logger.html#ab9bc94904f592f8dad7532e140fe9394',1,'maingo::Logger']]],
+  ['_5fuserspecifiedbounds',['_userSpecifiedBounds',['../classbab_base_1_1_optimization_variable.html#af0837b061723724dcb61543724f36d11',1,'babBase::OptimizationVariable']]],
   ['_5fvariables',['_variables',['../classmaingo_1_1_ale_model.html#a8074ec7e8aa37574089920ad172ae964',1,'maingo::AleModel::_variables()'],['../classmaingo_1_1_m_ai_n_g_o.html#a179c701e7f310080876879df45571aae',1,'maingo::MAiNGO::_variables()'],['../classmaingo_1_1_maingo_evaluator.html#a857486607beb96bd9688982671f260aa',1,'maingo::MaingoEvaluator::_variables()'],['../classmaingo_1_1_variable_lister.html#a852d79de9046af5bfa1c4bff86ce39f6',1,'maingo::VariableLister::_variables()']]],
   ['_5fvariablesfeasible',['_variablesFeasible',['../classmaingo_1_1_m_ai_n_g_o.html#aeae47f2ca5ba67f042e035711690fec1',1,'maingo::MAiNGO']]],
   ['_5fvariableslbd',['_variablesLbd',['../classmaingo_1_1_m_ai_n_g_o.html#a3bfd617c12d3ee731e314f8f806b4da0',1,'maingo::MAiNGO']]],
   ['_5fvariabletype',['_variableType',['../classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9',1,'babBase::OptimizationVariable']]],
-  ['_5fwallpassed',['_wallPassed',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a2845411391c8498e7eece2e2e3ba073b',1,'maingo::bab::BranchAndBound']]],
   ['_5fwrite_5fale_5ffile',['_write_ale_file',['../classmaingo_1_1_m_ai_n_g_o.html#a6e2e3685c938ae2e8605dab3f6a13632',1,'maingo::MAiNGO']]],
   ['_5fwrite_5fale_5ffunctions',['_write_ale_functions',['../classmaingo_1_1_m_ai_n_g_o.html#a20c235755de9f0c15ea62c28ae9e2ac8',1,'maingo::MAiNGO']]],
   ['_5fwrite_5fale_5foptions',['_write_ale_options',['../classmaingo_1_1_m_ai_n_g_o.html#a4681879414746b1ac89b905479d6fa1d',1,'maingo::MAiNGO']]],
   ['_5fwrite_5fale_5fvariables',['_write_ale_variables',['../classmaingo_1_1_m_ai_n_g_o.html#a6d10798d58ceeac812fb853ca7eccf5c',1,'maingo::MAiNGO']]],
-  ['_5fwrite_5fcsv_5fgeneral',['_write_csv_general',['../classmaingo_1_1_m_ai_n_g_o.html#a2287a4b633fd59097ce44a74e15f6660',1,'maingo::MAiNGO']]],
   ['_5fwrite_5fepsilon_5fconstraint_5fresult',['_write_epsilon_constraint_result',['../classmaingo_1_1_m_ai_n_g_o.html#a40c4e33f9034542409daa1f0497c776f',1,'maingo::MAiNGO']]],
   ['_5fwrite_5ffiles',['_write_files',['../classmaingo_1_1_m_ai_n_g_o.html#acb69025e90c11f757a3f74c9b37daacd',1,'maingo::MAiNGO']]],
-  ['_5fwrite_5ffiles_5ferror',['_write_files_error',['../classmaingo_1_1_m_ai_n_g_o.html#a72b6d958b300d7fc886b74790b001aeb',1,'maingo::MAiNGO']]],
+  ['_5fwrite_5ffiles_5ferror',['_write_files_error',['../classmaingo_1_1_m_ai_n_g_o.html#a7ff011bd8ce28c9dc2e2d24c350698e1',1,'maingo::MAiNGO']]],
   ['_5fwrite_5fgams_5ffile',['_write_gams_file',['../classmaingo_1_1_m_ai_n_g_o.html#af7aec196a4987e5f38ed642b21400aa9',1,'maingo::MAiNGO']]],
   ['_5fwrite_5fgams_5ffunctions',['_write_gams_functions',['../classmaingo_1_1_m_ai_n_g_o.html#a0d24d4e085f56925079399567cdf70eb',1,'maingo::MAiNGO']]],
   ['_5fwrite_5fgams_5foptions',['_write_gams_options',['../classmaingo_1_1_m_ai_n_g_o.html#aa3b2c105e3ebff61b3416c9cdd8bd964',1,'maingo::MAiNGO']]],
   ['_5fwrite_5fgams_5fvariables',['_write_gams_variables',['../classmaingo_1_1_m_ai_n_g_o.html#a1aff8d80ad642d24966454b8ef35e34a',1,'maingo::MAiNGO']]],
   ['_5fwrite_5fjson_5ffile',['_write_json_file',['../classmaingo_1_1_m_ai_n_g_o.html#a9d8ceaac941b738db96be2326e4db27a',1,'maingo::MAiNGO']]],
-  ['_5fwrite_5fres_5ffile',['_write_res_file',['../classmaingo_1_1_m_ai_n_g_o.html#a76ffecbb5590c1dd40ec896059af4fda',1,'maingo::MAiNGO']]],
+  ['_5fwrite_5fresult_5ffile',['_write_result_file',['../classmaingo_1_1_m_ai_n_g_o.html#a83da0fbc8eeb9b2f336cd5d41707fbaf',1,'maingo::MAiNGO']]],
+  ['_5fwrite_5fsolution_5fand_5fstatistics_5fcsv',['_write_solution_and_statistics_csv',['../classmaingo_1_1_m_ai_n_g_o.html#ab894162dd5074eea1d5dd153e4f72d9e',1,'maingo::MAiNGO']]],
   ['_5fwritetologeverysec',['_writeToLogEverySec',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a193f594912e00a2c4d8cacfd4efbdfd5',1,'maingo::bab::BranchAndBound']]],
   ['_5fxl',['_xL',['../classmaingo_1_1ubp_1_1_ipopt_problem.html#a05145891e0b75e9163d3f1bb4ae81f42',1,'maingo::ubp::IpoptProblem']]],
   ['_5fxstart',['_xStart',['../classmaingo_1_1ubp_1_1_ipopt_problem.html#afba1afdcac5ee3d6f2a05ff9911c017e',1,'maingo::ubp::IpoptProblem']]],
diff --git a/doc/html/search/all_1.html b/doc/html/search/all_1.html
index 2f46793669134fa7b331c6fb238987472e869d1e..b8ff871118c11d26447c212c069782af292d0679 100644
--- a/doc/html/search/all_1.html
+++ b/doc/html/search/all_1.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_1.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/all_1.js b/doc/html/search/all_1.js
index dc367d944f11545f317a16158b4e518cd58cd6a8..cc9e3f00ccccba705563ae941e7f3025df353002 100644
--- a/doc/html/search/all_1.js
+++ b/doc/html/search/all_1.js
@@ -13,19 +13,18 @@ var searchData=
   ['af_5fei',['af_ei',['../function_wrapper_8h.html#a8ba798e25eb57db7e41b5bafea7e001d',1,'functionWrapper.h']]],
   ['af_5flcb',['af_lcb',['../function_wrapper_8h.html#a36ab810e8ae60a22ed95fe79e274e110',1,'functionWrapper.h']]],
   ['af_5fpi',['af_pi',['../function_wrapper_8h.html#a497e2d299632d879d274138f78275c98',1,'functionWrapper.h']]],
-  ['ale',['ALE',['../namespacemaingo.html#a7fda513a30bb172152b96406e370299aa8476f2061be97a547db8d42808fa4369',1,'maingo']]],
   ['alemodel',['AleModel',['../classmaingo_1_1_ale_model.html',1,'maingo::AleModel'],['../classmaingo_1_1_ale_model.html#a3bb9ac4b8b424d7828893cddefe1d9e8',1,'maingo::AleModel::AleModel()']]],
   ['alemodel_2ecpp',['aleModel.cpp',['../ale_model_8cpp.html',1,'']]],
   ['alemodel_2eh',['aleModel.h',['../ale_model_8h.html',1,'']]],
   ['almost_5fequal',['almost_equal',['../namespacebab_base.html#a3b9c69d27eaa95bab37d3340bac0afc5',1,'babBase']]],
-  ['ampl',['AMPL',['../namespacemaingo.html#a7fda513a30bb172152b96406e370299aa6005851459ecd1476b128baad46d46e6',1,'maingo']]],
   ['antoine_5fpsat',['antoine_psat',['../function_wrapper_8h.html#a29383bf7dba49ebb8215a2ae142bf950',1,'antoine_psat(const mc::FFVar &amp;T, const double p1, const double p2, const double p3):&#160;functionWrapper.h'],['../function_wrapper_8h.html#a62500f93eb2b51c22286f30417435a72',1,'antoine_psat(const mc::FFVar &amp;T, const std::vector&lt; double &gt; p):&#160;functionWrapper.h']]],
   ['antoine_5ftsat',['antoine_tsat',['../function_wrapper_8h.html#a3eb8125b56fd6ae41720d1bc3ebe56d3',1,'antoine_tsat(const mc::FFVar &amp;T, const double p1, const double p2, const double p3):&#160;functionWrapper.h'],['../function_wrapper_8h.html#a23169e33bacd55bca6e0d043b84495ac',1,'antoine_tsat(const mc::FFVar &amp;T, const std::vector&lt; double &gt; p):&#160;functionWrapper.h']]],
+  ['are_5fconsistent',['are_consistent',['../structbab_base_1_1_bounds.html#aac75f501a93c1ba546d9e9d2263ad2f4',1,'babBase::Bounds']]],
   ['arh',['arh',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ac3c457143c6f4a4400194ccf44f82c54',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['asin',['asin',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ab2149dbee115f2ec2ba436df75ec297a',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['asinh',['asinh',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a0343beb7d475418ad9443de3dc486c2f',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['aspen_5fhig',['aspen_hig',['../function_wrapper_8h.html#a4b958aea1a60205b1399fd0686a36793',1,'aspen_hig(const mc::FFVar &amp;T, const double T0, const double p1, const double p2, const double p3, const double p4, const double p5, const double p6):&#160;functionWrapper.h'],['../function_wrapper_8h.html#a9ed331d9b129728e9845de34796fc57c',1,'aspen_hig(const mc::FFVar &amp;T, const double T0, const std::vector&lt; double &gt; p):&#160;functionWrapper.h']]],
-  ['at',['at',['../structmaingo_1_1model_function.html#a53bb709db5915f9762d84b3a160c549e',1,'maingo::modelFunction']]],
+  ['at',['at',['../structmaingo_1_1_model_function.html#ac53aa934e420edd2363328a685a35170',1,'maingo::ModelFunction']]],
   ['atan',['atan',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ae746ea045da4196e833c652a6264a126',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['atanh',['atanh',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a4854e83ee269e6b6db03e7a8f9258df5',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['aux_5feq_5frel_5fonly',['AUX_EQ_REL_ONLY',['../namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa3f418251b7df4d1f7abae45ec2c7120e',1,'maingo']]]
diff --git a/doc/html/search/all_10.html b/doc/html/search/all_10.html
index 170dc09c6a8ecd58dd19db26e3d5a3c4f0628628..50bc449e1293d5d09fd1f80ac997771dec316ca1 100644
--- a/doc/html/search/all_10.html
+++ b/doc/html/search/all_10.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_10.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/all_10.js b/doc/html/search/all_10.js
index 7b8c3c17a191f2d17220c5354a1abd2c65461e71..e9d8c8190dc91ea12ffe6ea7e79bb4be9f66ea02 100644
--- a/doc/html/search/all_10.js
+++ b/doc/html/search/all_10.js
@@ -6,12 +6,10 @@ var searchData=
   ['parse',['parse',['../classmaingo_1_1_program_parser.html#ae4d58b1181c60c3f2bee2e19f0cf0a4d',1,'maingo::ProgramParser']]],
   ['parse_5fconstraints',['parse_constraints',['../classmaingo_1_1_program_parser.html#a5ef4bf8a9a2932fba2436581417777ca',1,'maingo::ProgramParser']]],
   ['parse_5fdefinitions',['parse_definitions',['../classmaingo_1_1_program_parser.html#a0e51ca5ae8eacb0f46dad2d6f044a4ae',1,'maingo::ProgramParser']]],
-  ['parse_5fmaingo_5fto_5fother_5flanguage',['parse_maingo_to_other_language',['../classmaingo_1_1_m_ai_n_g_o.html#a4f888ef8f672e6ee7602951cd4b2c7a9',1,'maingo::MAiNGO']]],
   ['parse_5fobjective',['parse_objective',['../classmaingo_1_1_program_parser.html#ac3c4fcd63f8f1792a4e34a2fe3ddc5ab',1,'maingo::ProgramParser']]],
   ['parse_5foutputs',['parse_outputs',['../classmaingo_1_1_program_parser.html#a7b3ac04936f2bc7a4f4e536b93f52d6e',1,'maingo::ProgramParser']]],
   ['parse_5frelaxations',['parse_relaxations',['../classmaingo_1_1_program_parser.html#a3b1515bd940df78bb3a2605cb8f019b7',1,'maingo::ProgramParser']]],
   ['parse_5fsquashes',['parse_squashes',['../classmaingo_1_1_program_parser.html#ae219ff6e1a0528011b39c3014f65fddf',1,'maingo::ProgramParser']]],
-  ['parsing_5flanguage',['PARSING_LANGUAGE',['../namespacemaingo.html#a7fda513a30bb172152b96406e370299a',1,'maingo']]],
   ['participatingvariables',['participatingVariables',['../structmaingo_1_1_constraint.html#a975b6e0e75a3d025b9b26d4406deff1b',1,'maingo::Constraint']]],
   ['point',['point',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8fcb97302591c8fc4f068e7c56b6a721',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['polynomial',['POLYNOMIAL',['../namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592aa25e5c3c1d625e9188448d1e61afe4e5',1,'maingo']]],
@@ -24,9 +22,9 @@ var searchData=
   ['pre_5fpuremultistart',['PRE_pureMultistart',['../structmaingo_1_1_settings.html#af507cbfa73588513df3746e104c76c01',1,'maingo::Settings::PRE_pureMultistart()'],['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ae4d7bcb01c294a5428bbea31972573ec',1,'maingo::PRE_PUREMULTISTART()']]],
   ['preprocessor_5fcheck_5foptions',['preprocessor_check_options',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a75d8c7d165cc917a455243f528ea23df',1,'maingo::lbp::LowerBoundingSolver']]],
   ['print_5fmaingo',['print_MAiNGO',['../classmaingo_1_1_m_ai_n_g_o.html#a1a9fa4c0ae0a91178836350b5f5c22d3',1,'maingo::MAiNGO']]],
-  ['print_5fmessage',['print_message',['../classmaingo_1_1_logger.html#a85ebbae4b7d372e8ee4fc6df802d9621',1,'maingo::Logger']]],
-  ['print_5fmessage_5fto_5fstream_5fonly',['print_message_to_stream_only',['../classmaingo_1_1_logger.html#a60d49f911f24c66da289da2dbccc35e2',1,'maingo::Logger']]],
-  ['print_5fsettings',['print_settings',['../classmaingo_1_1_logger.html#af4fdb40b8636eff018c56e45c293de7f',1,'maingo::Logger']]],
+  ['print_5fmessage',['print_message',['../classmaingo_1_1_logger.html#afaa00650854698ce5bbde8fee9db7e0e',1,'maingo::Logger']]],
+  ['print_5fmessage_5fto_5fstream_5fonly',['print_message_to_stream_only',['../classmaingo_1_1_logger.html#a0df484648655184edbbd4bcb6531558f',1,'maingo::Logger']]],
+  ['print_5fsettings',['print_settings',['../classmaingo_1_1_logger.html#a1397947c86bde896214c7b77d4be6517',1,'maingo::Logger']]],
   ['print_5fversion',['print_version',['../namespacemaingo.html#aff818a6a6eca6dcfa6cc89a8c32c6f39',1,'maingo']]],
   ['problem_5fstructure',['PROBLEM_STRUCTURE',['../namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ece',1,'maingo']]],
   ['prod',['prod',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a7c36b5f1e9e15a63b53482a96238dfde',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
@@ -36,6 +34,8 @@ var searchData=
   ['programparser_2ecpp',['programParser.cpp',['../program_parser_8cpp.html',1,'']]],
   ['programparser_2eh',['programParser.h',['../program_parser_8h.html',1,'']]],
   ['pruningscorecomparator',['PruningScoreComparator',['../structbab_base_1_1_pruning_score_comparator.html',1,'babBase']]],
-  ['push_5fback',['push_back',['../structmaingo_1_1model_function.html#aea4187e90212d71b2f368711cc5ee4cb',1,'maingo::modelFunction::push_back(const mc::FFVar var)'],['../structmaingo_1_1model_function.html#a4acc3cdbd96f5b6b5b4e803ee1dbf369',1,'maingo::modelFunction::push_back(const mc::FFVar var, const std::string &amp;str)'],['../structmaingo_1_1model_function.html#ab7c7f3001efc0df4c1fca1dba56dcf45',1,'maingo::modelFunction::push_back(const std::vector&lt; mc::FFVar &gt; &amp;vars)'],['../structmaingo_1_1model_function.html#a67d7053072c5d28e36f91ec598a09011',1,'maingo::modelFunction::push_back(const std::vector&lt; mc::FFVar &gt; &amp;vars, const std::string &amp;baseName)']]],
-  ['pyomo',['PYOMO',['../namespacemaingo.html#a7fda513a30bb172152b96406e370299aad139485466768f0cb2bc590af41f84fe',1,'maingo']]]
+  ['push_5fback',['push_back',['../structmaingo_1_1_model_function.html#a351a87d89c0212305c3e477d692aedbb',1,'maingo::ModelFunction::push_back(const mc::FFVar var)'],['../structmaingo_1_1_model_function.html#af1e48836d22ea8f0dcc46d8622800058',1,'maingo::ModelFunction::push_back(const mc::FFVar var, const std::string &amp;str)'],['../structmaingo_1_1_model_function.html#af7fe04e13594b729a7fe3cde9caedbc3',1,'maingo::ModelFunction::push_back(const std::vector&lt; mc::FFVar &gt; &amp;vars)'],['../structmaingo_1_1_model_function.html#ad07bf75626a6914c9f15b23fa5ec518e',1,'maingo::ModelFunction::push_back(const std::vector&lt; mc::FFVar &gt; &amp;vars, const std::string &amp;baseName)']]],
+  ['pybind11_5fmodule',['PYBIND11_MODULE',['../__pymaingo_8cpp.html#a75e1ee573073a440d528a799ccd1e331',1,'_pymaingo.cpp']]],
+  ['pymaingo',['pymaingo',['../namespacepymaingo.html',1,'']]],
+  ['pymaingomodel',['PyMAiNGOmodel',['../class_py_m_ai_n_g_omodel.html',1,'']]]
 ];
diff --git a/doc/html/search/all_11.html b/doc/html/search/all_11.html
index 10fcd0919c4377e960f6503b414b2baa1826374e..b35c8bf0e82ff92e36f89065ba9b44df4e237c5f 100644
--- a/doc/html/search/all_11.html
+++ b/doc/html/search/all_11.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_11.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/all_12.html b/doc/html/search/all_12.html
index 0876adf4550879933cce5e9d88611d6ce4dadede..fd265245b64fae467a2c5963c6b8393cceb9777a 100644
--- a/doc/html/search/all_12.html
+++ b/doc/html/search/all_12.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_12.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/all_12.js b/doc/html/search/all_12.js
index 92cbb5071d41e3271cf53e7acd9c8ae7d6f83b7b..7abdf3fb66609d6a9d8152a0571bdcc3a7041422 100644
--- a/doc/html/search/all_12.js
+++ b/doc/html/search/all_12.js
@@ -2,7 +2,7 @@ var searchData=
 [
   ['rational',['RATIONAL',['../namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592ad851e0122baa7113a1beca227d21b8b1',1,'maingo']]],
   ['reachedminnodesize',['reachedMinNodeSize',['../classmaingo_1_1_logger.html#ae51c685a73d7e4e84c5eb69a1c720829',1,'maingo::Logger::reachedMinNodeSize()'],['../structbab_base_1_1_bab_log.html#a7bf62754ffa515a453fb9c8eb9b34adb',1,'babBase::BabLog::reachedMinNodeSize()']]],
-  ['read_5fsettings',['read_settings',['../classmaingo_1_1_m_ai_n_g_o.html#a9d2cbee1f5ecf3321e2e5334e70757fe',1,'maingo::MAiNGO']]],
+  ['read_5fsettings',['read_settings',['../classmaingo_1_1_m_ai_n_g_o.html#a0728bb641f5f269763663ce89280bd4f',1,'maingo::MAiNGO']]],
   ['recover_5fblock',['recover_block',['../classmaingo_1_1_program_parser.html#af10f0318985e4aee4fb7da75614daad8',1,'maingo::ProgramParser']]],
   ['register_5fnode_5fchange',['register_node_change',['../classbab_base_1_1_brancher.html#a9751c79dcbf4b2ad67a549f5bfa6e5d3',1,'babBase::Brancher']]],
   ['regnormal',['regnormal',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ac9cf7b4edf54c33450cf0bb2f46b178d',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
@@ -11,8 +11,7 @@ var searchData=
   ['relgap',['relGap',['../structbab_base_1_1_bab_log.html#ac484020a1f529d739c78fe6e8a1ce43c',1,'babBase::BabLog']]],
   ['relnodetol',['relNodeTol',['../structmaingo_1_1_settings.html#a11905b6d9a1d4bcbe320d7fd6f3e4a71',1,'maingo::Settings::relNodeTol()'],['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6af57f0eb60e347a76dc189ac87eee0e33',1,'maingo::RELNODETOL()']]],
   ['remove_5fhas_5fincumbent_5ffrom_5fall_5fnodes',['remove_has_incumbent_from_all_nodes',['../classbab_base_1_1_bab_tree.html#a13e9545dba8eb0600f0f41b5a682081b',1,'babBase::BabTree']]],
-  ['resfilename',['resFileName',['../classmaingo_1_1_logger.html#a09a06a9baaf4765d8af2d9baea602962',1,'maingo::Logger']]],
-  ['resize',['resize',['../structmaingo_1_1model_function.html#a3ccf2b6601e828e0fff4f27356d78f8a',1,'maingo::modelFunction']]],
+  ['resize',['resize',['../structmaingo_1_1_model_function.html#a925155d044f3f8e24cd55150bb668683',1,'maingo::ModelFunction']]],
   ['resultad',['resultAD',['../structmaingo_1_1ubp_1_1_dag_obj.html#adf62f216e68f2545bff7ca8c2380de9d',1,'maingo::ubp::DagObj']]],
   ['resultad2ndorder',['resultAD2ndOrder',['../structmaingo_1_1ubp_1_1_dag_obj.html#afb24a800ca2cfab6f0e89caa4e821294',1,'maingo::ubp::DagObj']]],
   ['resultadeq',['resultADeq',['../structmaingo_1_1ubp_1_1_dag_obj.html#adbdafa51a0de03a4d21425704bb7fd1b',1,'maingo::ubp::DagObj']]],
diff --git a/doc/html/search/all_13.html b/doc/html/search/all_13.html
index dc6c0496a2f4227ce2ac9bc17b958b0fd1cbef20..04f66e2fe96f66c096c2c0e266dcde7c1a03c218 100644
--- a/doc/html/search/all_13.html
+++ b/doc/html/search/all_13.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_13.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/all_13.js b/doc/html/search/all_13.js
index 91b99dcc66be8377ded67bd60d5dabdc5adaed11..657d9a8c2852190501b5c8238da2243f017ae4b3 100644
--- a/doc/html/search/all_13.js
+++ b/doc/html/search/all_13.js
@@ -1,8 +1,8 @@
 var searchData=
 [
   ['saturation_5ftemperature',['saturation_temperature',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a5426d1dd5c4adaf426119c168bee4e4e',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
-  ['save_5fsetting',['save_setting',['../classmaingo_1_1_logger.html#ab14611926d783106de661c1c7221f5c3',1,'maingo::Logger']]],
-  ['save_5fsettings_5ffile_5fname',['save_settings_file_name',['../classmaingo_1_1_logger.html#accfbe2523be1fb7e14f30fd9b4c5031a',1,'maingo::Logger']]],
+  ['save_5fsetting',['save_setting',['../classmaingo_1_1_logger.html#a69e487a988a594016c12a7c919570f04',1,'maingo::Logger']]],
+  ['save_5fsettings_5ffile_5fname',['save_settings_file_name',['../classmaingo_1_1_logger.html#af1f4a383ab2f26319ae4da895d30aa2d',1,'maingo::Logger']]],
   ['scaledpoints',['scaledPoints',['../structmaingo_1_1lbp_1_1_dag_obj.html#aee1902712aacf900093a6bfe7c33e94c',1,'maingo::lbp::DagObj']]],
   ['schroeder_5fethanol_5fp',['schroeder_ethanol_p',['../function_wrapper_8h.html#a7b4403422eeebdd9b79d3a24b7d9f910',1,'functionWrapper.h']]],
   ['schroeder_5fethanol_5frholiq',['schroeder_ethanol_rholiq',['../function_wrapper_8h.html#a1250c885b8251f1cd8938e1c669b8dee',1,'functionWrapper.h']]],
@@ -14,51 +14,40 @@ var searchData=
   ['select_5fnode_5fhighest_5fpriority',['select_node_highest_priority',['../namespacebab_base.html#a7023aaaa7bf22bf1c3717cfa070f4e69',1,'babBase']]],
   ['set_5fbounds_5fand_5fstarting_5fpoint',['set_bounds_and_starting_point',['../classmaingo_1_1ubp_1_1_ipopt_problem.html#ad44bb659518b5e9d4a0362a477d46164',1,'maingo::ubp::IpoptProblem']]],
   ['set_5fbranching_5fdimension_5fselection_5fstrategy',['set_branching_dimension_selection_strategy',['../classbab_base_1_1_brancher.html#af9b60e80a40637b8aea84fab03cc665f',1,'babBase::Brancher']]],
-  ['set_5fcsv_5ffile_5fname',['set_csv_file_name',['../classmaingo_1_1_m_ai_n_g_o.html#a530c347d65ac74a1cf871e385ec18cc4',1,'maingo::MAiNGO']]],
   ['set_5fepsilon',['set_epsilon',['../classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a5999eaab9bb4b9c7dba95ed6553da048',1,'maingo::MAiNGOmodelEpsCon']]],
   ['set_5fholds_5fincumbent',['set_holds_incumbent',['../classbab_base_1_1_bab_node.html#a70530169b115d733df41aaafd449b23e',1,'babBase::BabNode']]],
-  ['set_5fjson_5ffile_5fname',['set_json_file_name',['../classmaingo_1_1_m_ai_n_g_o.html#a755f6652395b3bad73976a26fa4243f9',1,'maingo::MAiNGO']]],
-  ['set_5flog_5ffile_5fname',['set_log_file_name',['../classmaingo_1_1_m_ai_n_g_o.html#ae99518c0b699295565d25c76b0187c58',1,'maingo::MAiNGO']]],
+  ['set_5fiterations_5fcsv_5ffile_5fname',['set_iterations_csv_file_name',['../classmaingo_1_1_m_ai_n_g_o.html#abe4f3a7b42c05c07e7962be17de02ed3',1,'maingo::MAiNGO']]],
+  ['set_5fjson_5ffile_5fname',['set_json_file_name',['../classmaingo_1_1_m_ai_n_g_o.html#a3caca275897742b038011e6fd00b2bdc',1,'maingo::MAiNGO']]],
+  ['set_5flog_5ffile_5fname',['set_log_file_name',['../classmaingo_1_1_m_ai_n_g_o.html#a450f5ac09e6afa9e34dc86b59359ae20',1,'maingo::MAiNGO']]],
   ['set_5flower_5fbound',['set_lower_bound',['../classbab_base_1_1_bab_node.html#a04b7b97d9b302cf99808e0301272d740',1,'babBase::BabNode::set_lower_bound(const std::vector&lt; double &gt; lowerBounds)'],['../classbab_base_1_1_bab_node.html#aa0027fd7c95a73e253aeb383b9e8468a',1,'babBase::BabNode::set_lower_bound(const unsigned iVar, const double value)']]],
   ['set_5fmodel',['set_model',['../classmaingo_1_1_m_ai_n_g_o.html#a1fe4e8690548362eb1ec74fb052a424e',1,'maingo::MAiNGO']]],
-  ['set_5fname',['set_name',['../structmaingo_1_1model_function.html#ae27a8eb161619cea1e29a6df0d38c3d7',1,'maingo::modelFunction']]],
+  ['set_5fname',['set_name',['../structmaingo_1_1_model_function.html#a77f51cfc74b6f5dc0b1a8919b01f3333',1,'maingo::ModelFunction']]],
   ['set_5fnew_5fincumbent_5fpoint',['set_new_incumbent_point',['../classbab_base_1_1_brancher.html#a657a3dc42d1a34b8a04e9e9d9c699ff6',1,'babBase::Brancher']]],
   ['set_5fnode_5fselection_5fscore',['set_node_selection_score',['../classbab_base_1_1_bab_node_with_info.html#aae390aed47e097508887f3df907c88ae',1,'babBase::BabNodeWithInfo']]],
   ['set_5fnode_5fselection_5fscore_5ffunction',['set_node_selection_score_function',['../classbab_base_1_1_brancher.html#aea9a04b2eef42673d67e0e8340d8bcfe',1,'babBase::Brancher']]],
   ['set_5fnode_5fselection_5fstrategy',['set_node_selection_strategy',['../classbab_base_1_1_brancher.html#af9d7e5d2ea87c0a161e6719188b8c745',1,'babBase::Brancher::set_node_selection_strategy()'],['../classbab_base_1_1_bab_tree.html#a58f93eb766b7a68e9d88699e267fdd0e',1,'babBase::BabTree::set_node_selection_strategy()']]],
   ['set_5fobjective_5findex',['set_objective_index',['../classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#aef1305b0d90fe52fdd99b6545cf77755',1,'maingo::MAiNGOmodelEpsCon']]],
-  ['set_5foption',['set_option',['../classmaingo_1_1_m_ai_n_g_o.html#a383bc41aef21457041b6a79d0a376bed',1,'maingo::MAiNGO']]],
-  ['set_5foutput_5fstream',['set_output_stream',['../classmaingo_1_1_logger.html#ab4c18700b160cbe53b4e59069e7fcedd',1,'maingo::Logger::set_output_stream()'],['../classmaingo_1_1_m_ai_n_g_o.html#a66b60c8b60e9525e96e4d2dbb6398f88',1,'maingo::MAiNGO::set_output_stream()']]],
+  ['set_5foption',['set_option',['../classmaingo_1_1_m_ai_n_g_o.html#ae2bc7507ee0341d7b0a8ac06702ca964',1,'maingo::MAiNGO::set_option(const std::string &amp;option, const double value)'],['../classmaingo_1_1_m_ai_n_g_o.html#a21ee05457f51d5b22853d10cb4114b96',1,'maingo::MAiNGO::set_option(const std::string &amp;option, const bool value)'],['../classmaingo_1_1_m_ai_n_g_o.html#a1f8ea652c3ae60bad558c3aeb66f1085',1,'maingo::MAiNGO::set_option(const std::string &amp;option, const int value)']]],
+  ['set_5foutput_5fstream',['set_output_stream',['../classmaingo_1_1_logger.html#ae5cb965f581d2940eea1730a5e7a1f06',1,'maingo::Logger::set_output_stream()'],['../classmaingo_1_1_m_ai_n_g_o.html#a1a4ba608b818d6a2e303b836505e0234',1,'maingo::MAiNGO::set_output_stream()']]],
   ['set_5fpruning_5fscore',['set_pruning_score',['../classbab_base_1_1_bab_node.html#a747d334dcf93c85f9e2bd234b875486a',1,'babBase::BabNode']]],
   ['set_5fpruning_5fscore_5fthreshold',['set_pruning_score_threshold',['../classbab_base_1_1_bab_tree.html#a49521ddbee9e1d7e2a2b494d2ad5c4f5',1,'babBase::BabTree']]],
-  ['set_5fres_5ffile_5fname',['set_res_file_name',['../classmaingo_1_1_m_ai_n_g_o.html#ade7741b5e86018f3167c9f34622a2733',1,'maingo::MAiNGO']]],
+  ['set_5fresult_5ffile_5fname',['set_result_file_name',['../classmaingo_1_1_m_ai_n_g_o.html#a4dc94835e031b37290f96814486c2903',1,'maingo::MAiNGO']]],
   ['set_5fsingle_5fobjective',['set_single_objective',['../classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a20ba39ce81ad97f3c58e1fa78c0356af',1,'maingo::MAiNGOmodelEpsCon']]],
+  ['set_5fsolution_5fand_5fstatistics_5fcsv_5ffile_5fname',['set_solution_and_statistics_csv_file_name',['../classmaingo_1_1_m_ai_n_g_o.html#a0157c25ef59573826a916e301e836330',1,'maingo::MAiNGO']]],
   ['set_5fupper_5fbound',['set_upper_bound',['../classbab_base_1_1_bab_node.html#a78cfcab15536723a4e2e0ee40c316167',1,'babBase::BabNode::set_upper_bound(const std::vector&lt; double &gt; upperBounds)'],['../classbab_base_1_1_bab_node.html#a2de1be347ecc66acf68ff816e2df0508',1,'babBase::BabNode::set_upper_bound(const unsigned iVar, const double value)']]],
-  ['set_5fvalue',['set_value',['../structmaingo_1_1model_function.html#ac7ccbc9aabfa39f93e01e706f74f649e',1,'maingo::modelFunction']]],
+  ['set_5fvalue',['set_value',['../structmaingo_1_1_model_function.html#a0af1f22b1bc87961451c52913567a4fd',1,'maingo::ModelFunction']]],
   ['setting_5fnames',['SETTING_NAMES',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6',1,'maingo']]],
-  ['settings',['Settings',['../structmaingo_1_1_settings.html',1,'maingo::Settings'],['../structmaingo_1_1_settings.html#ab7169a6eefce79566dd07db3b1e5e967',1,'maingo::Settings::Settings()'],['../structmaingo_1_1_settings.html#a74c2b2798213ed88903b13e8d9ca14e2',1,'maingo::Settings::Settings(const Settings &amp;)=default']]],
-  ['settings_2ecpp',['settings.cpp',['../settings_8cpp.html',1,'']]],
+  ['settings',['Settings',['../structmaingo_1_1_settings.html',1,'maingo']]],
   ['settings_2eh',['settings.h',['../settings_8h.html',1,'']]],
   ['simplexpoints',['simplexPoints',['../structmaingo_1_1lbp_1_1_dag_obj.html#a639462cbaec8e4a5ef66f37f718adc0c',1,'maingo::lbp::DagObj']]],
   ['sin',['sin',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#acf627d293021a04bb8ba547ad6349437',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['sinh',['sinh',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a060be08bd96d38d7b7f64823fb843cff',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
-  ['size',['size',['../structmaingo_1_1model_function.html#a6625f2f7e468b0d5b1590284826e355a',1,'maingo::modelFunction']]],
+  ['size',['size',['../structmaingo_1_1_model_function.html#a8c2f2e692410848475b8c5caffcf5e51',1,'maingo::ModelFunction']]],
   ['solutionstatus',['solutionStatus',['../structbab_base_1_1_bab_log.html#a310e923adf37c0c3d7de091b6b2e672b',1,'babBase::BabLog']]],
-  ['solve',['solve',['../classmaingo_1_1bab_1_1_branch_and_bound.html#afbbe46b34b476fa5b54c5faa112581b6',1,'maingo::bab::BranchAndBound::solve(babBase::BabNode &amp;rootNodeIn, double &amp;solutionValue, std::vector&lt; double &gt; &amp;solutionPoint, const double preprocessTime, double &amp;timePassed)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a44ead97b56cfae660cbe695ef8dffb38',1,'maingo::bab::BranchAndBound::solve(babBase::BabNode &amp;rootNodeIn, double &amp;solutionValue, std::vector&lt; double &gt; &amp;solutionPoint, const double preprocessTime, double &amp;timePassed)'],['../classmaingo_1_1_m_ai_n_g_o.html#a50062c75f198aab4cd975f34fdef1506',1,'maingo::MAiNGO::solve()'],['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4ac108083fde6741e77d7c0b231bd610',1,'maingo::ubp::UpperBoundingSolver::solve()']]],
+  ['solve',['solve',['../classmaingo_1_1bab_1_1_branch_and_bound.html#afbbe46b34b476fa5b54c5faa112581b6',1,'maingo::bab::BranchAndBound::solve()'],['../classmaingo_1_1_m_ai_n_g_o.html#a50062c75f198aab4cd975f34fdef1506',1,'maingo::MAiNGO::solve()'],['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4ac108083fde6741e77d7c0b231bd610',1,'maingo::ubp::UpperBoundingSolver::solve()']]],
   ['solve_5fepsilon_5fconstraint',['solve_epsilon_constraint',['../classmaingo_1_1_m_ai_n_g_o.html#a4cf012860282bcaff9890e182f4b6886',1,'maingo::MAiNGO']]],
   ['solve_5flbp',['solve_LBP',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1bd1db09ee19b087b11a761d41dc195d',1,'maingo::lbp::LowerBoundingSolver']]],
   ['solve_5fobbt',['solve_OBBT',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a51baac566450ca4b94cd715b57c38752',1,'maingo::lbp::LowerBoundingSolver']]],
-  ['solver_5fbobyqa',['SOLVER_BOBYQA',['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da54ed347065f9c65c37a71a3cb4db7451',1,'maingo::ubp']]],
-  ['solver_5fclp',['SOLVER_CLP',['../namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea0a3210e4f9065f1ead5177bfdfbc27d1',1,'maingo::lbp::SOLVER_CLP()'],['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da995e3c0356133ed4320ffa4111536e10',1,'maingo::ubp::SOLVER_CLP()']]],
-  ['solver_5fcobyla',['SOLVER_COBYLA',['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac5701f2847e960c47f46914beac6a128',1,'maingo::ubp']]],
-  ['solver_5fcplex',['SOLVER_CPLEX',['../namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea7461c27f75e0601f39252dd553b686e6',1,'maingo::lbp::SOLVER_CPLEX()'],['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da64db5861bc8d36e7cb00978e72af8408',1,'maingo::ubp::SOLVER_CPLEX()']]],
-  ['solver_5feval',['SOLVER_EVAL',['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac9dd69c054981d95b5633af8eada06b7',1,'maingo::ubp']]],
-  ['solver_5finterval',['SOLVER_INTERVAL',['../namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4beabbf2c359f240461a8859bea8b628179d',1,'maingo::lbp']]],
-  ['solver_5fipopt',['SOLVER_IPOPT',['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac449153333e544edc3b78977ab02ea20',1,'maingo::ubp']]],
-  ['solver_5fknitro',['SOLVER_KNITRO',['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da6cc859f77befbec62acf36cb2ef82683',1,'maingo::ubp']]],
-  ['solver_5flbfgs',['SOLVER_LBFGS',['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da816c98ce5f16248a60f78e76bc534823',1,'maingo::ubp']]],
-  ['solver_5fmaingo',['SOLVER_MAiNGO',['../namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4beab21ba68ca9d31ece2a6ac8006b39027e',1,'maingo::lbp']]],
-  ['solver_5fslsqp',['SOLVER_SLSQP',['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da24b4fd10f12919d2825cb493c71d3cf8',1,'maingo::ubp']]],
   ['special_20uses_20of_20maingo',['Special Uses of MAiNGO',['../special_uses.html',1,'index']]],
   ['sqr',['sqr',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ab953e12376b1ff2c3a5318ecc4ccf31e',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['sqrt',['sqrt',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a4f2de455a2fc93a80e4a132c44457380',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
diff --git a/doc/html/search/all_14.html b/doc/html/search/all_14.html
index 7fe46634de8ecac9e7c40fcc1e93493b330efabf..285f34bd217fbb00486f7cda4aa73af390c09f14 100644
--- a/doc/html/search/all_14.html
+++ b/doc/html/search/all_14.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_14.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/all_15.html b/doc/html/search/all_15.html
index c0fc0aab702298aa340f10c33ad86ff8e1b042b7..0ed74e01224bf8f42eee9f8788d3738faba0f91f 100644
--- a/doc/html/search/all_15.html
+++ b/doc/html/search/all_15.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_15.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/all_15.js b/doc/html/search/all_15.js
index 2d0d7f817fa69f4e717aee55f63bbd55ec766f05..dcfb16db1d25dc9909f1a351352a76967daf7684 100644
--- a/doc/html/search/all_15.js
+++ b/doc/html/search/all_15.js
@@ -14,26 +14,35 @@ var searchData=
   ['ubp_5fmaxtimepre',['UBP_MAXTIMEPRE',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a60152ee26df4e219f935ef6dd5a10e43',1,'maingo']]],
   ['ubp_5fmaxtimepreprocessing',['UBP_maxTimePreprocessing',['../structmaingo_1_1_settings.html#a8a932699c21f3dfc85317ce9cdc8943f',1,'maingo::Settings']]],
   ['ubp_5fsolver',['UBP_SOLVER',['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9d',1,'maingo::ubp']]],
+  ['ubp_5fsolver_5fbobyqa',['UBP_SOLVER_BOBYQA',['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da16910a5ab42fd9bcd71489c0f07d7791',1,'maingo::ubp']]],
+  ['ubp_5fsolver_5fclp',['UBP_SOLVER_CLP',['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dab4e7e171165eb64a246e2e7b7e2ea352',1,'maingo::ubp']]],
+  ['ubp_5fsolver_5fcobyla',['UBP_SOLVER_COBYLA',['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9daaff3b4a7dfedf2a8f66396d01c4e1645',1,'maingo::ubp']]],
+  ['ubp_5fsolver_5fcplex',['UBP_SOLVER_CPLEX',['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da9537df8ae6b66b2b07f2a31d7258c98f',1,'maingo::ubp']]],
+  ['ubp_5fsolver_5feval',['UBP_SOLVER_EVAL',['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da15b7028091e5f95408a2a26e643cb972',1,'maingo::ubp']]],
+  ['ubp_5fsolver_5fipopt',['UBP_SOLVER_IPOPT',['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da3d2c4a7fd42fd747fe825ec8f0b1a1ad',1,'maingo::ubp']]],
+  ['ubp_5fsolver_5fknitro',['UBP_SOLVER_KNITRO',['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da019153052e3b77622e3f2a7f0ce339e8',1,'maingo::ubp']]],
+  ['ubp_5fsolver_5flbfgs',['UBP_SOLVER_LBFGS',['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac4da4292c1a20fb6a199fc7b540bc2d3',1,'maingo::ubp']]],
+  ['ubp_5fsolver_5fslsqp',['UBP_SOLVER_SLSQP',['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da5e8733223dd08864a8d5effbb341992a',1,'maingo::ubp']]],
   ['ubp_5fsolverbab',['UBP_solverBab',['../structmaingo_1_1_settings.html#acef4fa75216bfea7bd19dbb9d226320f',1,'maingo::Settings::UBP_solverBab()'],['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a6d522f8c5fdacf5e00e987fc6f49727a',1,'maingo::UBP_SOLVERBAB()']]],
   ['ubp_5fsolverpre',['UBP_SOLVERPRE',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a0df2d001081c4bd3b1d9c1cb9101d648',1,'maingo']]],
   ['ubp_5fsolverpreprocessing',['UBP_solverPreprocessing',['../structmaingo_1_1_settings.html#a50403ef83f8de6e5a774825a56715012',1,'maingo::Settings']]],
   ['ubp_5fverbosity',['UBP_verbosity',['../structmaingo_1_1_settings.html#af98e35447c8568c1613daf7447a30307',1,'maingo::Settings::UBP_verbosity()'],['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a8cdec043d63c92ac7a4aaf7be4598f62',1,'maingo::UBP_VERBOSITY()']]],
-  ['ubpclp',['UbpClp',['../classmaingo_1_1ubp_1_1_ubp_clp.html',1,'maingo::ubp::UbpClp'],['../classmaingo_1_1ubp_1_1_ubp_clp.html#acffeaea83adc9f0e61e3998fab15cf6f',1,'maingo::ubp::UbpClp::UbpClp(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, UBS_USE useIn)'],['../classmaingo_1_1ubp_1_1_ubp_clp.html#add6af506f65cb501373ca1c57e51b82c',1,'maingo::ubp::UbpClp::UbpClp(const UbpClp &amp;)']]],
+  ['ubpclp',['UbpClp',['../classmaingo_1_1ubp_1_1_ubp_clp.html',1,'maingo::ubp::UbpClp'],['../classmaingo_1_1ubp_1_1_ubp_clp.html#a2ff59fcf2223f5851ec4fffa59299656',1,'maingo::ubp::UbpClp::UbpClp(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, UBS_USE useIn)'],['../classmaingo_1_1ubp_1_1_ubp_clp.html#add6af506f65cb501373ca1c57e51b82c',1,'maingo::ubp::UbpClp::UbpClp(const UbpClp &amp;)']]],
   ['ubpclp_2ecpp',['ubpClp.cpp',['../ubp_clp_8cpp.html',1,'']]],
   ['ubpclp_2eh',['ubpClp.h',['../ubp_clp_8h.html',1,'']]],
-  ['ubpcplex',['UbpCplex',['../classmaingo_1_1ubp_1_1_ubp_cplex.html',1,'maingo::ubp::UbpCplex'],['../classmaingo_1_1ubp_1_1_ubp_cplex.html#a151f2ced79870ee59b168cdcaaf34bff',1,'maingo::ubp::UbpCplex::UbpCplex(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, UBS_USE useIn)'],['../classmaingo_1_1ubp_1_1_ubp_cplex.html#a080f171542c7ad6ffb84762238bdb816',1,'maingo::ubp::UbpCplex::UbpCplex(const UbpCplex &amp;)']]],
+  ['ubpcplex',['UbpCplex',['../classmaingo_1_1ubp_1_1_ubp_cplex.html',1,'maingo::ubp::UbpCplex'],['../classmaingo_1_1ubp_1_1_ubp_cplex.html#aa7a3ededf743a2cde154b5c267cf26d6',1,'maingo::ubp::UbpCplex::UbpCplex(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, UBS_USE useIn)'],['../classmaingo_1_1ubp_1_1_ubp_cplex.html#a080f171542c7ad6ffb84762238bdb816',1,'maingo::ubp::UbpCplex::UbpCplex(const UbpCplex &amp;)']]],
   ['ubpcplex_2ecpp',['ubpCplex.cpp',['../ubp_cplex_8cpp.html',1,'']]],
   ['ubpcplex_2eh',['ubpCplex.h',['../ubp_cplex_8h.html',1,'']]],
   ['ubpdagobj_2eh',['ubpDagObj.h',['../ubp_dag_obj_8h.html',1,'']]],
   ['ubpevaluators_2eh',['ubpEvaluators.h',['../ubp_evaluators_8h.html',1,'']]],
   ['ubpfactory_2ecpp',['ubpFactory.cpp',['../ubp_factory_8cpp.html',1,'']]],
-  ['ubpipopt',['UbpIpopt',['../classmaingo_1_1ubp_1_1_ubp_ipopt.html',1,'maingo::ubp::UbpIpopt'],['../classmaingo_1_1ubp_1_1_ubp_ipopt.html#a3b4a6331fd9876205ae349bdc95d06a4',1,'maingo::ubp::UbpIpopt::UbpIpopt(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, UBS_USE useIn)'],['../classmaingo_1_1ubp_1_1_ubp_ipopt.html#a452dbba117fa1b3edd676f31c04258fe',1,'maingo::ubp::UbpIpopt::UbpIpopt(const UbpIpopt &amp;)']]],
+  ['ubpipopt',['UbpIpopt',['../classmaingo_1_1ubp_1_1_ubp_ipopt.html',1,'maingo::ubp::UbpIpopt'],['../classmaingo_1_1ubp_1_1_ubp_ipopt.html#acd84ac4a7669c214242419ee880426fa',1,'maingo::ubp::UbpIpopt::UbpIpopt(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, UBS_USE useIn)'],['../classmaingo_1_1ubp_1_1_ubp_ipopt.html#a452dbba117fa1b3edd676f31c04258fe',1,'maingo::ubp::UbpIpopt::UbpIpopt(const UbpIpopt &amp;)']]],
   ['ubpipopt_2ecpp',['ubpIpopt.cpp',['../ubp_ipopt_8cpp.html',1,'']]],
   ['ubpipopt_2eh',['ubpIpopt.h',['../ubp_ipopt_8h.html',1,'']]],
-  ['ubpknitro',['UbpKnitro',['../classmaingo_1_1ubp_1_1_ubp_knitro.html',1,'maingo::ubp::UbpKnitro'],['../classmaingo_1_1ubp_1_1_ubp_knitro.html#ac916b5455e5ae20c5d9dd9a4006d0482',1,'maingo::ubp::UbpKnitro::UbpKnitro(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, UBS_USE useIn)'],['../classmaingo_1_1ubp_1_1_ubp_knitro.html#a76b1d3d5ca75b9d7b12015482fae7aa5',1,'maingo::ubp::UbpKnitro::UbpKnitro(const UbpKnitro &amp;)']]],
+  ['ubpknitro',['UbpKnitro',['../classmaingo_1_1ubp_1_1_ubp_knitro.html',1,'maingo::ubp::UbpKnitro'],['../classmaingo_1_1ubp_1_1_ubp_knitro.html#a94a323841bca8d54129aa85fad4ce06c',1,'maingo::ubp::UbpKnitro::UbpKnitro(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, UBS_USE useIn)'],['../classmaingo_1_1ubp_1_1_ubp_knitro.html#a76b1d3d5ca75b9d7b12015482fae7aa5',1,'maingo::ubp::UbpKnitro::UbpKnitro(const UbpKnitro &amp;)']]],
   ['ubpknitro_2ecpp',['ubpKnitro.cpp',['../ubp_knitro_8cpp.html',1,'']]],
   ['ubpknitro_2eh',['ubpKnitro.h',['../ubp_knitro_8h.html',1,'']]],
-  ['ubpnlopt',['UbpNLopt',['../classmaingo_1_1ubp_1_1_ubp_n_lopt.html',1,'maingo::ubp::UbpNLopt'],['../classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a84e83af5033d99a79f1fd1d65f6b8b7f',1,'maingo::ubp::UbpNLopt::UbpNLopt(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, UBS_USE useIn)'],['../classmaingo_1_1ubp_1_1_ubp_n_lopt.html#aa41c03634188b349a77fa5b33f987bd4',1,'maingo::ubp::UbpNLopt::UbpNLopt(const UbpNLopt &amp;)']]],
+  ['ubpnlopt',['UbpNLopt',['../classmaingo_1_1ubp_1_1_ubp_n_lopt.html',1,'maingo::ubp::UbpNLopt'],['../classmaingo_1_1ubp_1_1_ubp_n_lopt.html#ae5c7ea9072ed95c5521916c756be3f0f',1,'maingo::ubp::UbpNLopt::UbpNLopt(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, UBS_USE useIn)'],['../classmaingo_1_1ubp_1_1_ubp_n_lopt.html#aa41c03634188b349a77fa5b33f987bd4',1,'maingo::ubp::UbpNLopt::UbpNLopt(const UbpNLopt &amp;)']]],
   ['ubpnlopt_2ecpp',['ubpNLopt.cpp',['../ubp_n_lopt_8cpp.html',1,'']]],
   ['ubpnlopt_2eh',['ubpNLopt.h',['../ubp_n_lopt_8h.html',1,'']]],
   ['ubpquadexpr',['UbpQuadExpr',['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html',1,'maingo::ubp::UbpQuadExpr'],['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#ab448dba7b8e6123194c9cf88ae2f2b65',1,'maingo::ubp::UbpQuadExpr::UbpQuadExpr()'],['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a44b8597bd206f1afad3abfe8de039716',1,'maingo::ubp::UbpQuadExpr::UbpQuadExpr(const size_t nvarIn)'],['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a44586840f98d6fa9e24fa04e67b7fea4',1,'maingo::ubp::UbpQuadExpr::UbpQuadExpr(const size_t nvarIn, const size_t iLin)'],['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a6a7b56e39550931c2feb3bad0a801c38',1,'maingo::ubp::UbpQuadExpr::UbpQuadExpr(const double in)']]],
@@ -43,12 +52,9 @@ var searchData=
   ['ubs_5fuse',['UBS_USE',['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395',1,'maingo::ubp::UpperBoundingSolver']]],
   ['unknown_5fsetting',['UNKNOWN_SETTING',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a266d2a23dde0c0404e4d261de460fd7f',1,'maingo']]],
   ['update_5fincumbent_5flbp',['update_incumbent_LBP',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2f1320936ed40642c7cf4cf0fe31d14f',1,'maingo::lbp::LowerBoundingSolver']]],
-  ['upper',['upper',['../structbab_base_1_1_bounds.html#a275ca3ce07d64ce43824d7e673cfee6b',1,'babBase::Bounds']]],
-  ['upperboundchanged',['upperBoundChanged',['../structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#a4ec809446af63cecb30c9359c89cdf40',1,'babBase::OptimizationVariable::ChangedBounds']]],
-  ['upperboundingsolver',['UpperBoundingSolver',['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html',1,'maingo::ubp::UpperBoundingSolver'],['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a9ce3a82556ab016cdff94f032b19d6af',1,'maingo::ubp::UpperBoundingSolver::UpperBoundingSolver(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, UBS_USE useIn)'],['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ae75dea5b3107d53e3ffec3b0c18d7749',1,'maingo::ubp::UpperBoundingSolver::UpperBoundingSolver()'],['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1c0659fdddc86e0528771ce8dd977f7e',1,'maingo::ubp::UpperBoundingSolver::UpperBoundingSolver(const UpperBoundingSolver &amp;)']]],
+  ['upper',['upper',['../structbab_base_1_1_bounds.html#a9f4758be8a66b8e7b034af1f04e19d1d',1,'babBase::Bounds']]],
+  ['upperboundingsolver',['UpperBoundingSolver',['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html',1,'maingo::ubp::UpperBoundingSolver'],['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ad9c2c0ae5e137605da0f9588df694a52',1,'maingo::ubp::UpperBoundingSolver::UpperBoundingSolver(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, UBS_USE useIn)'],['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ae75dea5b3107d53e3ffec3b0c18d7749',1,'maingo::ubp::UpperBoundingSolver::UpperBoundingSolver()'],['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1c0659fdddc86e0528771ce8dd977f7e',1,'maingo::ubp::UpperBoundingSolver::UpperBoundingSolver(const UpperBoundingSolver &amp;)']]],
   ['use_5fbab',['USE_BAB',['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395a8c993825a2321788812ac88fa8666a34',1,'maingo::ubp::UpperBoundingSolver']]],
   ['use_5fpre',['USE_PRE',['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395aaf072b94cbf6e5d23d6b55bc2846a4e6',1,'maingo::ubp::UpperBoundingSolver']]],
-  ['userlowerbound',['userLowerBound',['../structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#aba91eb7f14a3c3da0e12a8e77e0d98d2',1,'babBase::OptimizationVariable::ChangedBounds']]],
-  ['userupperbound',['userUpperBound',['../structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#a29e404e5263dc06f9e24e5719a53dea8',1,'babBase::OptimizationVariable::ChangedBounds']]],
   ['utilities_2eh',['utilities.h',['../utilities_8h.html',1,'']]]
 ];
diff --git a/doc/html/search/all_16.html b/doc/html/search/all_16.html
index 1490057c31326e8fb5beb70434bde8220378d5bd..696f02520a5b9ce6dea7d87e75d8b4bade74e194 100644
--- a/doc/html/search/all_16.html
+++ b/doc/html/search/all_16.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_16.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/all_16.js b/doc/html/search/all_16.js
index 24b4ba1e58a36f4ca51569e07e4a76a08e5d1c13..b0de18ca03523d05b4ac7825686442e6cd89b0d8 100644
--- a/doc/html/search/all_16.js
+++ b/doc/html/search/all_16.js
@@ -1,7 +1,7 @@
 var searchData=
 [
   ['validintervallowerbound',['validIntervalLowerBound',['../structmaingo_1_1lbp_1_1_dag_obj.html#a09fb67cc9c686600e7aa47f2780dfca5',1,'maingo::lbp::DagObj']]],
-  ['value',['value',['../structmaingo_1_1model_function.html#ad32e16eebdef8b4e555417cc514c43c0',1,'maingo::modelFunction::value()'],['../structmaingo_1_1_output_variable.html#acd79e28304c45ee43806093b857489f2',1,'maingo::OutputVariable::value()']]],
+  ['value',['value',['../structmaingo_1_1_model_function.html#a3468e730a934be8be5bf5ee2f84aacc7',1,'maingo::ModelFunction::value()'],['../structmaingo_1_1_output_variable.html#acd79e28304c45ee43806093b857489f2',1,'maingo::OutputVariable::value()']]],
   ['vapor_5fpressure',['vapor_pressure',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aad7aac80cc1464c33b622a1ceff65ed4',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['var',['Var',['../classmaingo_1_1_m_ai_n_g_omodel.html#a8f7352764701bb71ca5845f354bfbd00',1,'maingo::MAiNGOmodel::Var()'],['../ale_model_8h.html#a9c4e868adf1bc404290197d3c92f56bc',1,'Var():&#160;aleModel.h'],['../namespacemaingo.html#af5ee07a403d9ee6e7075d41518d93f77',1,'maingo::Var()']]],
   ['var_5findexes',['var_indexes',['../namespacemaingo.html#a11bcd09435dfa315a14f05c640fbc14d',1,'maingo']]],
diff --git a/doc/html/search/all_17.html b/doc/html/search/all_17.html
index a364f6fa762bba73a2bfbe31f410822dca708dde..f1e14b6352cd19106e2dc9cac82d947f82fb7190 100644
--- a/doc/html/search/all_17.html
+++ b/doc/html/search/all_17.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_17.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/all_17.js b/doc/html/search/all_17.js
index 18b3c61bb01cd95c856f9a8f8062ce2d5fe166b8..b701c92d7cbdc2f18a1d2f9d2eace840c8369a31 100644
--- a/doc/html/search/all_17.js
+++ b/doc/html/search/all_17.js
@@ -8,13 +8,14 @@ var searchData=
   ['wasbranchedup',['wasBranchedUp',['../structbab_base_1_1_branching_history_info.html#a0692c234f3dd6f32552a5c04519fb489abd06fe7dd930fd19a43a4313735a71cd',1,'babBase::BranchingHistoryInfo']]],
   ['wasnotbranched',['wasNotBranched',['../structbab_base_1_1_branching_history_info.html#a0692c234f3dd6f32552a5c04519fb489a65bddc0563e821bec242c776bac8e1da',1,'babBase::BranchingHistoryInfo']]],
   ['watson_5fdhvap',['watson_dhvap',['../function_wrapper_8h.html#a194545da47bf162f208d599f4e460017',1,'watson_dhvap(const mc::FFVar &amp;T, const double Tc, const double a, const double b, const double T1, const double dHT1):&#160;functionWrapper.h'],['../function_wrapper_8h.html#ab37b968c39c60ec673af52218aa7ffa0',1,'watson_dhvap(const mc::FFVar &amp;T, const std::vector&lt; double &gt; p):&#160;functionWrapper.h']]],
-  ['what',['what',['../classmaingo_1_1_m_ai_n_g_o_exception.html#a382a9c1299485b028ea4a82afe5c1952',1,'maingo::MAiNGOException::what()'],['../classbab_base_1_1_branch_and_bound_base_exception.html#a91e5a78198bf8ef94f140a9ac5978d05',1,'babBase::BranchAndBoundBaseException::what()']]],
-  ['write_5fall_5fiterations_5fto_5fcsv',['write_all_iterations_to_csv',['../classmaingo_1_1_logger.html#aa557a6ff14dbd38ab4b251c56caa0f37',1,'maingo::Logger']]],
-  ['write_5fall_5flines_5fto_5flog',['write_all_lines_to_log',['../classmaingo_1_1_logger.html#a99d59c1e627c16bfa155803f42cf28e7',1,'maingo::Logger']]],
+  ['what',['what',['../classmaingo_1_1_m_ai_n_g_o_exception.html#a07682a0877265a921df4401bb1dbb3f6',1,'maingo::MAiNGOException::what()'],['../classbab_base_1_1_branch_and_bound_base_exception.html#a91e5a78198bf8ef94f140a9ac5978d05',1,'babBase::BranchAndBoundBaseException::what()']]],
+  ['write_5fall_5fiterations_5fto_5fcsv',['write_all_iterations_to_csv',['../classmaingo_1_1_logger.html#a17570df4a0a318ddf4e186a4fc66f476',1,'maingo::Logger']]],
+  ['write_5fall_5flines_5fto_5flog',['write_all_lines_to_log',['../classmaingo_1_1_logger.html#a3134c2ef11ad7c45c3c8467421966021',1,'maingo::Logger']]],
+  ['write_5fmodel_5fto_5ffile_5fin_5fother_5flanguage',['write_model_to_file_in_other_language',['../classmaingo_1_1_m_ai_n_g_o.html#a8acf1fc912457043365faabd54861d50',1,'maingo::MAiNGO']]],
   ['writecsv',['writeCsv',['../structmaingo_1_1_settings.html#a6fb19c2296412e1143f77fd7b949e7e3',1,'maingo::Settings::writeCsv()'],['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5b17de1dc9ac64cce8a5bacab3dc8f5c',1,'maingo::WRITECSV()']]],
   ['writejson',['writeJson',['../structmaingo_1_1_settings.html#a891666257be2a508061697ea80a01ada',1,'maingo::Settings::writeJson()'],['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a20e6a32ee584c3187610f95ea83e1354',1,'maingo::WRITEJSON()']]],
-  ['writelog',['writeLog',['../structmaingo_1_1_settings.html#acec36c3b03a651632336594c40d5026a',1,'maingo::Settings::writeLog()'],['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a67dd1fb20241b26b7ac93714b8b0aae1',1,'maingo::WRITELOG()']]],
-  ['writeresfile',['writeResFile',['../structmaingo_1_1_settings.html#a6d6da9a089684ecd8eb3dc560e14c0ca',1,'maingo::Settings::writeResFile()'],['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ad208395baa4232a0d2e525d3ae4246cc',1,'maingo::WRITERESFILE()']]],
+  ['writeresultfile',['writeResultFile',['../structmaingo_1_1_settings.html#a56d7d3b6246ae45af98b44102edbb28b',1,'maingo::Settings::writeResultFile()'],['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a7e60bfc3f9fd67b15a9f9f78d9512d69',1,'maingo::writeResultFile()']]],
   ['writetologsec',['writeToLogSec',['../structmaingo_1_1_settings.html#aa0a8bf977559001dd0a4cda0d7908ebb',1,'maingo::Settings::writeToLogSec()'],['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aaed1ec51d45446a3609dff1a0551116d',1,'maingo::WRITETOLOGSEC()']]],
-  ['writetootherlanguage',['writeToOtherLanguage',['../structmaingo_1_1_settings.html#a440a841800111853d7366c1626242de6',1,'maingo::Settings::writeToOtherLanguage()'],['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a70b90d0f834b991c2bdba8a75d240769',1,'maingo::WRITETOOTHERLANGUAGE()']]]
+  ['writetootherlanguage',['WRITETOOTHERLANGUAGE',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a70b90d0f834b991c2bdba8a75d240769',1,'maingo']]],
+  ['writing_5flanguage',['WRITING_LANGUAGE',['../namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39a',1,'maingo']]]
 ];
diff --git a/doc/html/search/all_18.html b/doc/html/search/all_18.html
index 3dff8af24e3b03fa316fa72e404cfb84d1e651b5..2a00902546eaca90971a34b79e3f0d548fc1f3fc 100644
--- a/doc/html/search/all_18.html
+++ b/doc/html/search/all_18.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_18.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/all_19.html b/doc/html/search/all_19.html
index 22294bd31edb27e49bf55ed12bcf9adeb66f7cc6..4e5b9451707c96017618546f26405302d86d8841 100644
--- a/doc/html/search/all_19.html
+++ b/doc/html/search/all_19.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_19.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/all_1a.html b/doc/html/search/all_1a.html
index 7a81902013a7433284e50457af714f1c1323494d..984ffe1779adce9b4e0c9c3a363ee2589835cefc 100644
--- a/doc/html/search/all_1a.html
+++ b/doc/html/search/all_1a.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_1a.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/all_1a.js b/doc/html/search/all_1a.js
index bd090386ad3b3661469c9aa4a19effefba4df046..3c1598c13583342d92e9b2e292b43c8570c1db3a 100644
--- a/doc/html/search/all_1a.js
+++ b/doc/html/search/all_1a.js
@@ -1,7 +1,7 @@
 var searchData=
 [
   ['_7ebabtree',['~BabTree',['../classbab_base_1_1_bab_tree.html#a55a52c08fcb2eb8a59aa7b4b770ffb03',1,'babBase::BabTree']]],
-  ['_7ebranchandbound',['~BranchAndBound',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a7db5251fcd9ad3ca2892a9b17cb7b197',1,'maingo::bab::BranchAndBound::~BranchAndBound()'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a7db5251fcd9ad3ca2892a9b17cb7b197',1,'maingo::bab::BranchAndBound::~BranchAndBound()']]],
+  ['_7ebranchandbound',['~BranchAndBound',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a7db5251fcd9ad3ca2892a9b17cb7b197',1,'maingo::bab::BranchAndBound']]],
   ['_7ebrancher',['~Brancher',['../classbab_base_1_1_brancher.html#a7ed3656c248fc5438ebd4cfe15fd95e7',1,'babBase::Brancher']]],
   ['_7eipoptproblem',['~IpoptProblem',['../classmaingo_1_1ubp_1_1_ipopt_problem.html#a83ab40c3ed93a2ec0d23a3e62d3eb92f',1,'maingo::ubp::IpoptProblem']]],
   ['_7eknitroproblem',['~KnitroProblem',['../classmaingo_1_1ubp_1_1_knitro_problem.html#a5aafe97d4cd0294ca5998f7973a79bfe',1,'maingo::ubp::KnitroProblem']]],
@@ -10,9 +10,11 @@ var searchData=
   ['_7elogger',['~Logger',['../classmaingo_1_1_logger.html#a31cae103ef08470e0db45f01c0360eed',1,'maingo::Logger']]],
   ['_7elowerboundingsolver',['~LowerBoundingSolver',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae45e85f9c8bc19bba1510e89b0698a97',1,'maingo::lbp::LowerBoundingSolver']]],
   ['_7emaingo',['~MAiNGO',['../classmaingo_1_1_m_ai_n_g_o.html#aa50b9f4993a803eb7ac98dee8ea2fcf1',1,'maingo::MAiNGO']]],
+  ['_7emaingoexception',['~MAiNGOException',['../classmaingo_1_1_m_ai_n_g_o_exception.html#a2bddf4891f256ffd2f7395626412568a',1,'maingo::MAiNGOException']]],
   ['_7emaingomodel',['~MAiNGOmodel',['../classmaingo_1_1_m_ai_n_g_omodel.html#ac1ff18446d407e6f663d4bf41fdb1003',1,'maingo::MAiNGOmodel']]],
   ['_7emaingomodelepscon',['~MAiNGOmodelEpsCon',['../classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a0024c407e035cdadcf47b27e862b27ae',1,'maingo::MAiNGOmodelEpsCon']]],
-  ['_7emodelfunction',['~modelFunction',['../structmaingo_1_1model_function.html#a8b288537eb4166adf7ffb65456bee18e',1,'maingo::modelFunction']]],
+  ['_7emodelfunction',['~ModelFunction',['../structmaingo_1_1_model_function.html#af5cbeca4a2b4e75d111e6073e9351a8b',1,'maingo::ModelFunction']]],
+  ['_7eoutputvariable',['~OutputVariable',['../structmaingo_1_1_output_variable.html#a09d1a2a865522f69c19cb057bc95f03f',1,'maingo::OutputVariable']]],
   ['_7eubpcplex',['~UbpCplex',['../classmaingo_1_1ubp_1_1_ubp_cplex.html#ada023ef9d9bd4904e5e47e2181d38ab9',1,'maingo::ubp::UbpCplex']]],
   ['_7eubpknitro',['~UbpKnitro',['../classmaingo_1_1ubp_1_1_ubp_knitro.html#a0ebc116dd3ddaea32fb9330ee725295d',1,'maingo::ubp::UbpKnitro']]],
   ['_7eupperboundingsolver',['~UpperBoundingSolver',['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa17ca0c5dbf33219148dc2fff3446357',1,'maingo::ubp::UpperBoundingSolver']]]
diff --git a/doc/html/search/all_2.html b/doc/html/search/all_2.html
index 4c33d85574a614977e50b78fb110145282e259e8..2f17735ef0d2569ce4048ad92cf0c91203322998 100644
--- a/doc/html/search/all_2.html
+++ b/doc/html/search/all_2.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_2.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/all_2.js b/doc/html/search/all_2.js
index 299086ee9f94d79dbc6649134522b5bfc18df145..2458e33fc0c2b6920571c206b0271bfc112629ca 100644
--- a/doc/html/search/all_2.js
+++ b/doc/html/search/all_2.js
@@ -15,6 +15,7 @@ var searchData=
   ['bab_5fretcode',['BAB_RETCODE',['../namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2',1,'babBase::enums']]],
   ['bab_5fverbosity',['BAB_verbosity',['../structmaingo_1_1_settings.html#a635996885baa7cb82d4f5cf91c2921bc',1,'maingo::Settings::BAB_verbosity()'],['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aabadb050f3c17bb4bf6ec8d949e9b036',1,'maingo::BAB_VERBOSITY()']]],
   ['babbase',['babBase',['../namespacebab_base.html',1,'']]],
+  ['babbounds_2eh',['babBounds.h',['../bab_bounds_8h.html',1,'']]],
   ['babbrancher_2ecpp',['babBrancher.cpp',['../bab_brancher_8cpp.html',1,'']]],
   ['babbrancher_2eh',['babBrancher.h',['../bab_brancher_8h.html',1,'']]],
   ['babexception_2eh',['babException.h',['../bab_exception_8h.html',1,'']]],
@@ -31,15 +32,13 @@ var searchData=
   ['babtree_2ecpp',['babTree.cpp',['../bab_tree_8cpp.html',1,'']]],
   ['babtree_2eh',['babTree.h',['../bab_tree_8h.html',1,'']]],
   ['babutils_2eh',['babUtils.h',['../bab_utils_8h.html',1,'']]],
-  ['babwall_2ecpp',['babWALL.cpp',['../bab_w_a_l_l_8cpp.html',1,'']]],
-  ['babwall_2eh',['babWALL.h',['../bab_w_a_l_l_8h.html',1,'']]],
-  ['baron',['BARON',['../namespacemaingo.html#a7fda513a30bb172152b96406e370299aa6b23681db7db1db0a27cb2007620056e',1,'maingo']]],
   ['bilinear',['BILINEAR',['../namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592aaee4ec0f6a2b7adb51f538e7b9c1cf5a',1,'maingo']]],
   ['bound_5ftargets',['BOUND_TARGETS',['../namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aaf98d82cf90c120cbada0db438cba6518',1,'maingo']]],
   ['bounding_5ffunc',['bounding_func',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ae1eab66656e68a802a2d5a9a5aeb893e',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
-  ['bounds',['Bounds',['../structbab_base_1_1_bounds.html',1,'babBase::Bounds'],['../structbab_base_1_1_bounds.html#a143d3617a4792c4ab189e372e8e0b681',1,'babBase::Bounds::Bounds(const double lowerIn, const double upperIn)'],['../structbab_base_1_1_bounds.html#a58871ce4b6cf44aa16f6dd240fdeb295',1,'babBase::Bounds::Bounds(Bounds &amp;&amp;)=default'],['../structbab_base_1_1_bounds.html#af1d929f0940ec89277c8813e9f6e32eb',1,'babBase::Bounds::Bounds(const Bounds &amp;)=default'],['../namespacemaingo.html#a56be7240143795082f52dcb10cb2d1ba',1,'maingo::Bounds()']]],
+  ['bounds',['Bounds',['../structbab_base_1_1_bounds.html',1,'babBase::Bounds'],['../structbab_base_1_1_bounds.html#a143d3617a4792c4ab189e372e8e0b681',1,'babBase::Bounds::Bounds()'],['../namespacemaingo.html#a56be7240143795082f52dcb10cb2d1ba',1,'maingo::Bounds()']]],
+  ['bounds_5fchanged_5ffrom_5fuser_5finput',['bounds_changed_from_user_input',['../classbab_base_1_1_optimization_variable.html#ad2f581a8c131d5381232bce213e60823',1,'babBase::OptimizationVariable']]],
   ['branch_5fon_5fnode',['branch_on_node',['../classbab_base_1_1_brancher.html#ac0128b99d5fdfc973298293f5913e729',1,'babBase::Brancher']]],
-  ['branchandbound',['BranchAndBound',['../classmaingo_1_1bab_1_1_branch_and_bound.html',1,'maingo::bab::BranchAndBound'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a0795ab80ed85f416a1834c2bc62f2d88',1,'maingo::bab::BranchAndBound::BranchAndBound(const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, std::shared_ptr&lt; lbp::LowerBoundingSolver &gt; LBSIn, std::shared_ptr&lt; ubp::UpperBoundingSolver &gt; UBSIn, Settings *settingsIn, Logger *loggerIn, const unsigned nvarWOaux)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a2d88760ca48bcea923ba4e868d5bdf43',1,'maingo::bab::BranchAndBound::BranchAndBound(const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, std::shared_ptr&lt; lbp::LowerBoundingSolver &gt; LBSIn, std::shared_ptr&lt; ubp::UpperBoundingSolver &gt; UBSIn, Settings *settingsIn, Logger *loggerIn, const unsigned nvarWOaux)']]],
+  ['branchandbound',['BranchAndBound',['../classmaingo_1_1bab_1_1_branch_and_bound.html',1,'maingo::bab::BranchAndBound'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#ab1e963d56b3adc807decb6e4dc1bee85',1,'maingo::bab::BranchAndBound::BranchAndBound()']]],
   ['branchandboundbaseexception',['BranchAndBoundBaseException',['../classbab_base_1_1_branch_and_bound_base_exception.html',1,'babBase::BranchAndBoundBaseException'],['../classbab_base_1_1_branch_and_bound_base_exception.html#a88e91f98099cf5db2b7365e13c9f0c3c',1,'babBase::BranchAndBoundBaseException::BranchAndBoundBaseException()'],['../classbab_base_1_1_branch_and_bound_base_exception.html#ad4101cc86f164c33d7c65dd0f297e156',1,'babBase::BranchAndBoundBaseException::BranchAndBoundBaseException(const std::string &amp;arg)'],['../classbab_base_1_1_branch_and_bound_base_exception.html#a5e7b4d42142131b575e574f3ebd52f1e',1,'babBase::BranchAndBoundBaseException::BranchAndBoundBaseException(const std::string &amp;arg, const babBase::BabNode &amp;node)'],['../classbab_base_1_1_branch_and_bound_base_exception.html#a71f28b078d7768229740454c289a99fe',1,'babBase::BranchAndBoundBaseException::BranchAndBoundBaseException(const std::string &amp;arg, const std::exception &amp;e)'],['../classbab_base_1_1_branch_and_bound_base_exception.html#a6d0ede19ef9bd580ca1a2d3dcfdbced6',1,'babBase::BranchAndBoundBaseException::BranchAndBoundBaseException(const std::string &amp;arg, const std::exception &amp;e, const babBase::BabNode &amp;node)'],['../classbab_base_1_1_branch_and_bound_base_exception.html#accd49c50678ca442ea7a7f90d9ca10f0',1,'babBase::BranchAndBoundBaseException::BranchAndBoundBaseException(const std::string &amp;arg, const std::exception *e, const babBase::BabNode *node)']]],
   ['brancher',['Brancher',['../classbab_base_1_1_brancher.html',1,'babBase::Brancher'],['../classbab_base_1_1_brancher.html#a05da26d4f5c313167569a1b23eb4539d',1,'babBase::Brancher::Brancher(const std::vector&lt; OptimizationVariable &gt; &amp;variables)'],['../classbab_base_1_1_brancher.html#af9dc4eaddda3e1818ed6340be4353448',1,'babBase::Brancher::Brancher(const Brancher &amp;)=default'],['../classbab_base_1_1_brancher.html#ac0238943a7feb7c455d68e83f491f5ff',1,'babBase::Brancher::Brancher(Brancher &amp;&amp;)=default']]],
   ['branchinghistoryinfo',['BranchingHistoryInfo',['../structbab_base_1_1_branching_history_info.html',1,'babBase']]],
diff --git a/doc/html/search/all_3.html b/doc/html/search/all_3.html
index b634070bc727268b5df07cf78569fe35f3afbd26..a3e6f7dbbea4a37606a2540fa2deff4ace269b2f 100644
--- a/doc/html/search/all_3.html
+++ b/doc/html/search/all_3.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_3.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/all_3.js b/doc/html/search/all_3.js
index cf8663f65d43df098171361662cc79c9bc0de9d1..bc69e266942cfb4f4067125d6fa3e84203a5ce6b 100644
--- a/doc/html/search/all_3.js
+++ b/doc/html/search/all_3.js
@@ -1,16 +1,14 @@
 var searchData=
 [
   ['calculate_5fpseudocost_5fmultipliers_5fminus_5fand_5fplus',['calculate_pseudocost_multipliers_minus_and_plus',['../namespacebab_base.html#ad18c8a7d403193113c3d6c4ecef067c3',1,'babBase']]],
-  ['changedbounds',['ChangedBounds',['../structbab_base_1_1_optimization_variable_1_1_changed_bounds.html',1,'babBase::OptimizationVariable::ChangedBounds'],['../classbab_base_1_1_optimization_variable.html#a66fdae5945a00647d5dce7ba4750ae89',1,'babBase::OptimizationVariable::changedBounds()']]],
   ['cheb',['cheb',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ad9a450d917deff7d35dcbc47b952c528',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['check_5ffeasibility',['check_feasibility',['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#af057bf3a184ca83102a6237bb83dd261',1,'maingo::ubp::UpperBoundingSolver']]],
   ['chosenlinpoints',['chosenLinPoints',['../structmaingo_1_1lbp_1_1_dag_obj.html#abfef6333d33007bac6f1c1236fba3979',1,'maingo::lbp::DagObj']]],
-  ['clear',['clear',['../structmaingo_1_1model_function.html#ac410fafee15b027dc87007207aca4fe0',1,'maingo::modelFunction::clear()'],['../structmaingo_1_1_evaluation_container.html#ab9eb3ecf31c9d5d48ccb04880a635819',1,'maingo::EvaluationContainer::clear()'],['../classmaingo_1_1_logger.html#ad63939a5c0535c5abb8e59024b0ca6d4',1,'maingo::Logger::clear()'],['../structbab_base_1_1_bab_log.html#a0128ab65edc7360210dd3a183f44e9d9',1,'babBase::BabLog::clear()']]],
+  ['clear',['clear',['../structmaingo_1_1_model_function.html#aadda375307d57abd5a7e1c3f8fee2289',1,'maingo::ModelFunction::clear()'],['../structmaingo_1_1_evaluation_container.html#ab9eb3ecf31c9d5d48ccb04880a635819',1,'maingo::EvaluationContainer::clear()'],['../classmaingo_1_1_logger.html#ad63939a5c0535c5abb8e59024b0ca6d4',1,'maingo::Logger::clear()'],['../structbab_base_1_1_bab_log.html#a0128ab65edc7360210dd3a183f44e9d9',1,'babBase::BabLog::clear()']]],
   ['coeffslin',['coeffsLin',['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244',1,'maingo::ubp::UbpQuadExpr']]],
   ['coeffsquad',['coeffsQuad',['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721',1,'maingo::ubp::UbpQuadExpr']]],
   ['concave',['CONCAVE',['../namespacemaingo.html#a5adb287f73598fd8ec0928c8f3d127a5a4a5f73483bf025f9060c8ae1c39f2e8a',1,'maingo']]],
   ['confirmtermination',['confirmTermination',['../structmaingo_1_1_settings.html#a2442c5741a3601880b2903b69d32bbb9',1,'maingo::Settings::confirmTermination()'],['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a77dddf14689e6d132028adfd53e48d7d',1,'maingo::CONFIRMTERMINATION()']]],
-  ['consistent',['consistent',['../structbab_base_1_1_bounds.html#a4b1a985eba004ed91b8383d2dde6224e',1,'babBase::Bounds']]],
   ['constant',['constant',['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d',1,'maingo::ubp::UbpQuadExpr']]],
   ['constantvalue',['constantValue',['../structmaingo_1_1_constraint.html#ab73c06d8bf9488187e23e4ae1df6d317',1,'maingo::Constraint']]],
   ['constraint',['Constraint',['../structmaingo_1_1_constraint.html',1,'maingo::Constraint'],['../structmaingo_1_1_constraint.html#ad56325852b641d2f3eb557b0f6f161a6',1,'maingo::Constraint::Constraint()'],['../structmaingo_1_1_constraint.html#a5d45d01e07187f636bf0b381c460d32e',1,'maingo::Constraint::Constraint(const CONSTRAINT_TYPE typeIn, const unsigned indexOriginalIn, const unsigned indexTypeIn, const unsigned indexNonconstantIn, const unsigned indexTypeNonconstantIn, const std::string &amp;nameIn=&quot;&quot;)'],['../structmaingo_1_1_constraint.html#a472c03a2d70a7547d9307daf622ddda9',1,'maingo::Constraint::Constraint(const CONSTRAINT_TYPE typeIn, const unsigned indexOriginalIn, const unsigned indexTypeIn, const unsigned indexConstantIn, const unsigned indexTypeConstantIn, const bool isConstantIn, const bool isFeasibleIn, const double valueIn, const std::string &amp;nameIn=&quot;&quot;)'],['../structmaingo_1_1_constraint.html#aae18f66e85bbadc497876478786b50f6',1,'maingo::Constraint::Constraint(const Constraint &amp;)=default']]],
@@ -39,10 +37,9 @@ var searchData=
   ['cplxmodel',['cplxModel',['../classmaingo_1_1lbp_1_1_lbp_cplex.html#a951643df3f751b62c79f476a0ea3c608',1,'maingo::lbp::LbpCplex::cplxModel()'],['../classmaingo_1_1ubp_1_1_ubp_cplex.html#a3028cd7ab01046cd3a1eec23a4db55a1',1,'maingo::ubp::UbpCplex::cplxModel()']]],
   ['cplxobjective',['cplxObjective',['../classmaingo_1_1lbp_1_1_lbp_cplex.html#ac88cac7557fd9ba8a903ce0f8bec2aa1',1,'maingo::lbp::LbpCplex']]],
   ['cplxvars',['cplxVars',['../classmaingo_1_1lbp_1_1_lbp_cplex.html#ab051569370a1f5574a9e4b2049d7f91c',1,'maingo::lbp::LbpCplex::cplxVars()'],['../classmaingo_1_1ubp_1_1_ubp_cplex.html#a30c83b32af454645ccc8ad302377ce3f',1,'maingo::ubp::UbpCplex::cplxVars()']]],
-  ['create_5fcsv_5ffiles',['create_csv_files',['../classmaingo_1_1_logger.html#a5776c77c4580d822350dc88225e46061',1,'maingo::Logger']]],
-  ['create_5fjson_5ffile',['create_json_file',['../classmaingo_1_1_logger.html#ab4926dc6a379823a0ece98e30f6a384f',1,'maingo::Logger']]],
-  ['create_5flog_5ffile',['create_log_file',['../classmaingo_1_1_logger.html#aa6c83f95144d085092f854d64b9c1e2f',1,'maingo::Logger']]],
-  ['csvgeneralname',['csvGeneralName',['../classmaingo_1_1_logger.html#a36f4bdb8cdcf58504dc06abd6d4e6725',1,'maingo::Logger::csvGeneralName()'],['../structbab_base_1_1_bab_log.html#a9b82e62a143f47a6fb85ec884fe1cf27',1,'babBase::BabLog::csvGeneralName()']]],
+  ['create_5fiterations_5fcsv_5ffile',['create_iterations_csv_file',['../classmaingo_1_1_logger.html#a168a8239c87de32a540c9fdcb6a54ff7',1,'maingo::Logger']]],
+  ['create_5flog_5ffile',['create_log_file',['../classmaingo_1_1_logger.html#af67b92595cd069c402df9a448cd784a3',1,'maingo::Logger']]],
+  ['csvgeneralname',['csvGeneralName',['../structbab_base_1_1_bab_log.html#a9b82e62a143f47a6fb85ec884fe1cf27',1,'babBase::BabLog']]],
   ['csviterationsname',['csvIterationsName',['../classmaingo_1_1_logger.html#a11f3a05f451f1d7f6f52081b971b5724',1,'maingo::Logger::csvIterationsName()'],['../structbab_base_1_1_bab_log.html#a5fe069f633ab86b5fb1df9cbfa89216a',1,'babBase::BabLog::csvIterationsName()']]],
   ['curlb',['curLB',['../structbab_base_1_1_bab_log.html#a5ae6c872100ac962e8ac72b52d4fa8ea',1,'babBase::BabLog']]],
   ['currentintervals',['currentIntervals',['../structmaingo_1_1lbp_1_1_dag_obj.html#af5c84556b2dcec10b61dfaf09d8e57e3',1,'maingo::lbp::DagObj']]]
diff --git a/doc/html/search/all_4.html b/doc/html/search/all_4.html
index dd062aeaeed1812cf81a1b380ce312fcfa4913ec..6452295dceb69603d947b17bcb4c0fdcaed713e3 100644
--- a/doc/html/search/all_4.html
+++ b/doc/html/search/all_4.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_4.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/all_4.js b/doc/html/search/all_4.js
index fd9616007b4e92dc67d23ad992bf048be7a1dd81..89c7e26d554e2eba8edf475030d00533f7db99dc 100644
--- a/doc/html/search/all_4.js
+++ b/doc/html/search/all_4.js
@@ -1,7 +1,7 @@
 var searchData=
 [
   ['dag',['DAG',['../structmaingo_1_1lbp_1_1_dag_obj.html#ac3f57f81e20ba26fe667dc3b1d970e65',1,'maingo::lbp::DagObj::DAG()'],['../structmaingo_1_1ubp_1_1_dag_obj.html#a5782efab4dab2431bd571bd62d0c1fd5',1,'maingo::ubp::DagObj::DAG()']]],
-  ['dagobj',['DagObj',['../structmaingo_1_1lbp_1_1_dag_obj.html',1,'maingo::lbp::DagObj'],['../structmaingo_1_1ubp_1_1_dag_obj.html',1,'maingo::ubp::DagObj'],['../structmaingo_1_1lbp_1_1_dag_obj.html#afb7fb4ac1246771689f6e244e4777b06',1,'maingo::lbp::DagObj::DagObj()'],['../structmaingo_1_1ubp_1_1_dag_obj.html#a38d4d4e046f3eea00ef8dce95ad36337',1,'maingo::ubp::DagObj::DagObj()']]],
+  ['dagobj',['DagObj',['../structmaingo_1_1lbp_1_1_dag_obj.html',1,'maingo::lbp::DagObj'],['../structmaingo_1_1ubp_1_1_dag_obj.html',1,'maingo::ubp::DagObj'],['../structmaingo_1_1lbp_1_1_dag_obj.html#a03d316c8bf417fbb010961bb31d7cdbc',1,'maingo::lbp::DagObj::DagObj()'],['../structmaingo_1_1ubp_1_1_dag_obj.html#a33f13fd662a2603c031c7284cd1ca098',1,'maingo::ubp::DagObj::DagObj()']]],
   ['decr',['DECR',['../namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556a776a6ea773b9bf563eec732a7c59ce78',1,'maingo']]],
   ['decrease_5fpruning_5fscore_5fthreshold_5fto',['decrease_pruning_score_threshold_to',['../classbab_base_1_1_brancher.html#af8c884a0262c7719aa832d2ed8761ea7',1,'babBase::Brancher']]],
   ['delete_5felement',['delete_element',['../classbab_base_1_1_bab_tree.html#a0d63f7d99cc24bac3d632d53517939bf',1,'babBase::BabTree']]],
diff --git a/doc/html/search/all_5.html b/doc/html/search/all_5.html
index f0780fdd34885b6ac6853d8d1ff64541586d26ab..e59e1d5363678265ca4c681044aa76d5384532d7 100644
--- a/doc/html/search/all_5.html
+++ b/doc/html/search/all_5.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_5.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/all_5.js b/doc/html/search/all_5.js
index e3a081b43490438de694b6d7581eabc8c16e4205..3d54c9c9959e2e2d5f300ea04c7783a903184383 100644
--- a/doc/html/search/all_5.js
+++ b/doc/html/search/all_5.js
@@ -5,9 +5,9 @@ var searchData=
   ['enthalpy_5fof_5fvaporization',['enthalpy_of_vaporization',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a101a89f16caa51f964e600e0a6b9bc23',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['epsilona',['epsilonA',['../structmaingo_1_1_settings.html#a7b899b964718fb9e7a95459026faf6aa',1,'maingo::Settings::epsilonA()'],['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a628b6ac17d71d1b9df088ef94f8352f4',1,'maingo::EPSILONA()']]],
   ['epsilonr',['epsilonR',['../structmaingo_1_1_settings.html#a013779523888ede06a29eb507b22d139',1,'maingo::Settings::epsilonR()'],['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5d25a3bfa50688065e53fbdcf97bcde6',1,'maingo::EPSILONR()']]],
-  ['eq',['eq',['../structmaingo_1_1_evaluation_container.html#a9c91e67852946ccb7381351512875a06',1,'maingo::EvaluationContainer::eq()'],['../structmaingo_1_1_constraint_container.html#ad875878c83b9f5e2ab0ff68c7452a53e',1,'maingo::ConstraintContainer::eq()'],['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a052639fdb63ad1b89ffeda209f67a4f1',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::eq()'],['../namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa5f02b52b5b416052d5545294adb30288',1,'maingo::EQ()']]],
+  ['eq',['eq',['../structmaingo_1_1_evaluation_container.html#ad71555eb350bbd6deb14d47559a6fa6d',1,'maingo::EvaluationContainer::eq()'],['../structmaingo_1_1_constraint_container.html#ad875878c83b9f5e2ab0ff68c7452a53e',1,'maingo::ConstraintContainer::eq()'],['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a052639fdb63ad1b89ffeda209f67a4f1',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::eq()'],['../namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa5f02b52b5b416052d5545294adb30288',1,'maingo::EQ()']]],
   ['eq_5frel_5fonly',['EQ_REL_ONLY',['../namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffab931d88f14bc394968ab9e43265b58db',1,'maingo']]],
-  ['eqrelaxationonly',['eqRelaxationOnly',['../structmaingo_1_1_evaluation_container.html#afd4671f76d0f58502f7f8a36bc574642',1,'maingo::EvaluationContainer']]],
+  ['eqrelaxationonly',['eqRelaxationOnly',['../structmaingo_1_1_evaluation_container.html#a564d618660f9675c33900127aa686f38',1,'maingo::EvaluationContainer']]],
   ['erf',['erf',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a53999c0ccd04a819391c96726db8c98c',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['erfc',['erfc',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8a959dfd152b52a68467983060f7c94a',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['eta',['eta',['../classmaingo_1_1lbp_1_1_lbp_cplex.html#aeb417aefdc41100afb0e2909b89c48de',1,'maingo::lbp::LbpCplex']]],
@@ -18,11 +18,15 @@ var searchData=
   ['eval_5fgrad_5ff',['eval_grad_f',['../classmaingo_1_1ubp_1_1_ipopt_problem.html#a724a9a70c286024101d8bcbe0ee1f054',1,'maingo::ubp::IpoptProblem']]],
   ['eval_5fh',['eval_h',['../classmaingo_1_1ubp_1_1_ipopt_problem.html#af839069f9d7a1d29e7a0298fdd4cc8c1',1,'maingo::ubp::IpoptProblem']]],
   ['eval_5fjac_5fg',['eval_jac_g',['../classmaingo_1_1ubp_1_1_ipopt_problem.html#ac97f040e982cca72af0203b014638f4a',1,'maingo::ubp::IpoptProblem']]],
-  ['evaluate',['evaluate',['../classmaingo_1_1_ale_model.html#a3ef454e2c543640ff4f77217396019f2',1,'maingo::AleModel::evaluate()'],['../classmaingo_1_1_m_ai_n_g_omodel.html#a7a50f1c3477c117936d2b59876e608d6',1,'maingo::MAiNGOmodel::evaluate()'],['../classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#aa52fe81513f6d8f35020b3c492a5837d',1,'maingo::MAiNGOmodelEpsCon::evaluate()']]],
+  ['evaluate',['evaluate',['../classmaingo_1_1_ale_model.html#a3ef454e2c543640ff4f77217396019f2',1,'maingo::AleModel::evaluate()'],['../classmaingo_1_1_m_ai_n_g_omodel.html#a7a50f1c3477c117936d2b59876e608d6',1,'maingo::MAiNGOmodel::evaluate()'],['../classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#aa52fe81513f6d8f35020b3c492a5837d',1,'maingo::MAiNGOmodelEpsCon::evaluate()'],['../class_py_m_ai_n_g_omodel.html#abdc36fa738c77f0e2c35f009ae35852b',1,'PyMAiNGOmodel::evaluate()']]],
+  ['evaluate_5fadditional_5foutputs_5fat_5fpoint',['evaluate_additional_outputs_at_point',['../classmaingo_1_1_m_ai_n_g_o.html#adeef2c9d324fa8f9a26819b3a3307ad7',1,'maingo::MAiNGO']]],
+  ['evaluate_5fadditional_5foutputs_5fat_5fsolution_5fpoint',['evaluate_additional_outputs_at_solution_point',['../classmaingo_1_1_m_ai_n_g_o.html#a5ee95afece75a72e91aff11274eda43a',1,'maingo::MAiNGO']]],
   ['evaluate_5fconstraints',['evaluate_constraints',['../namespacemaingo_1_1ubp.html#a4ef3bf44064e577cc0e845c66ea24b2d',1,'maingo::ubp']]],
   ['evaluate_5fequalities',['evaluate_equalities',['../namespacemaingo_1_1ubp.html#afeb581ccb97ca939b4689b62064cca07',1,'maingo::ubp']]],
   ['evaluate_5fhessian',['evaluate_hessian',['../namespacemaingo_1_1ubp.html#af36f6b98ee45ef4b3a1faf7365d437dc',1,'maingo::ubp']]],
   ['evaluate_5finequalities',['evaluate_inequalities',['../namespacemaingo_1_1ubp.html#a2ccec3ae42538f85eeb00df11bb81dbd',1,'maingo::ubp']]],
+  ['evaluate_5fmodel_5fat_5fpoint',['evaluate_model_at_point',['../classmaingo_1_1_m_ai_n_g_o.html#aaaa69dd8b526f0d9966ce35bd102601f',1,'maingo::MAiNGO']]],
+  ['evaluate_5fmodel_5fat_5fsolution_5fpoint',['evaluate_model_at_solution_point',['../classmaingo_1_1_m_ai_n_g_o.html#acd561f4e9560a6a5c501bdf444f581b8',1,'maingo::MAiNGO']]],
   ['evaluate_5fobjective',['evaluate_objective',['../namespacemaingo_1_1ubp.html#a932143bfce70a96fb11115c09792a93d',1,'maingo::ubp']]],
   ['evaluate_5fproblem',['evaluate_problem',['../namespacemaingo_1_1ubp.html#a749bd699d767cf5682bc2cc9af1a8ba2',1,'maingo::ubp']]],
   ['evaluate_5fuser_5fmodel',['evaluate_user_model',['../classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a2f0d0fb0d9bc6abc37e3ba544612ef98',1,'maingo::MAiNGOmodelEpsCon']]],
@@ -31,7 +35,6 @@ var searchData=
   ['evaluatehess',['evaluateHess',['../classmaingo_1_1ubp_1_1_knitro_problem.html#a8cd4079344ccbac5828fbd998d333f8f',1,'maingo::ubp::KnitroProblem']]],
   ['evaluationcontainer',['EvaluationContainer',['../structmaingo_1_1_evaluation_container.html',1,'maingo']]],
   ['evaluationcontainer_2eh',['evaluationContainer.h',['../evaluation_container_8h.html',1,'']]],
-  ['exceptions_2eh',['exceptions.h',['../exceptions_8h.html',1,'']]],
   ['exp',['exp',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8e8a7fb977a2e9a256fb854557db87a7',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['expx_5ftimes_5fy',['expx_times_y',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a9968bf71e7888784e28962227f2fd80e',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['ext_5fantoine_5fpsat',['ext_antoine_psat',['../function_wrapper_8h.html#a9a44539ac75362fa5edc574e56600b38',1,'ext_antoine_psat(const mc::FFVar &amp;T, const double p1, const double p2, const double p3, const double p4, const double p5, const double p6, const double p7):&#160;functionWrapper.h'],['../function_wrapper_8h.html#aa3ab279e543c72aa1697767729714744',1,'ext_antoine_psat(const mc::FFVar &amp;T, const std::vector&lt; double &gt; p):&#160;functionWrapper.h']]]
diff --git a/doc/html/search/all_6.html b/doc/html/search/all_6.html
index 39b0f555ce45504d6f0ac1cbd5502e0ef13c1fc3..f75a754e92d9d6db610bf30d356c525ca23af90a 100644
--- a/doc/html/search/all_6.html
+++ b/doc/html/search/all_6.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_6.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/all_7.html b/doc/html/search/all_7.html
index 9cd0196e7782ff83fd7212fa9f1a1cd874742b39..88acd946639ea217f361bb1122328d965e19b27f 100644
--- a/doc/html/search/all_7.html
+++ b/doc/html/search/all_7.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_7.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/all_7.js b/doc/html/search/all_7.js
index 832548f916b6eb731adf46e3662e2ec43486421b..8d082ea9d5ddd806b33ebec41d6ce6ca6664d6b4 100644
--- a/doc/html/search/all_7.js
+++ b/doc/html/search/all_7.js
@@ -1,38 +1,33 @@
 var searchData=
 [
-  ['gams',['GAMS',['../namespacemaingo.html#a7fda513a30bb172152b96406e370299aa14773b3cb5be6b7a031e2648f1edb27a',1,'maingo']]],
   ['gaussian_5fprobability_5fdensity_5ffunction',['gaussian_probability_density_function',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a37b2c10d1369ec2f610743339a132903',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['ge',['ge',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a33c000da2ea95bd0cc39aa2352344142',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['get',['get',['../classbab_base_1_1_out_var.html#aa2878f955a6fca58b597161aff4964a8',1,'babBase::OutVar']]],
-  ['get_5fadditional_5foutputs_5fat_5fpoint',['get_additional_outputs_at_point',['../classmaingo_1_1_m_ai_n_g_o.html#a52df8cc85640aaee13afb5cd5748dbcc',1,'maingo::MAiNGO']]],
-  ['get_5fadditional_5foutputs_5fat_5fsolution_5fpoint',['get_additional_outputs_at_solution_point',['../classmaingo_1_1_m_ai_n_g_o.html#afd0f8acfe45a05c077810ef75b8d71dd',1,'maingo::MAiNGO']]],
   ['get_5fall_5fnodes_5ffrom_5fstrong_5fbranching',['get_all_nodes_from_strong_branching',['../classbab_base_1_1_brancher.html#a2fa6eaac5e68dfde2de07ad72e74c906',1,'babBase::Brancher']]],
   ['get_5fbounds_5finfo',['get_bounds_info',['../classmaingo_1_1ubp_1_1_ipopt_problem.html#af731836f6f8a2bde2029be27b2c3e94f',1,'maingo::ubp::IpoptProblem']]],
   ['get_5fbranching_5fpriority',['get_branching_priority',['../classbab_base_1_1_optimization_variable.html#a9a19896c3ebd06e0f7a371e336d78434',1,'babBase::OptimizationVariable']]],
   ['get_5fcpu_5fsolution_5ftime',['get_cpu_solution_time',['../classmaingo_1_1_m_ai_n_g_o.html#a0c15524b2884d3604fc0a5d4b40bcccb',1,'maingo::MAiNGO']]],
   ['get_5fcpu_5ftime',['get_cpu_time',['../namespacemaingo.html#aac4ba5374ae7ff2bdca5126fd30b7f55',1,'maingo']]],
   ['get_5fdepth',['get_depth',['../classbab_base_1_1_bab_node.html#a63bb749d97a5a1ef6d5dde70ed9d4184',1,'babBase::BabNode']]],
-  ['get_5ffinal_5fabs_5fgap',['get_final_abs_gap',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a4b993e6ced9b383b2ec2e3b4e617009a',1,'maingo::bab::BranchAndBound::get_final_abs_gap()'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a4b993e6ced9b383b2ec2e3b4e617009a',1,'maingo::bab::BranchAndBound::get_final_abs_gap()'],['../classmaingo_1_1_m_ai_n_g_o.html#a0ec7e9601a2a5c8cc2f2bcb8d79c66a5',1,'maingo::MAiNGO::get_final_abs_gap()']]],
-  ['get_5ffinal_5flbd',['get_final_LBD',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a2a6ba10d4cba3be0656bdc1f434b796d',1,'maingo::bab::BranchAndBound::get_final_LBD()'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a2a6ba10d4cba3be0656bdc1f434b796d',1,'maingo::bab::BranchAndBound::get_final_LBD()'],['../classmaingo_1_1_m_ai_n_g_o.html#ace8e13bdb04862efd560c8d0d80950b4',1,'maingo::MAiNGO::get_final_LBD()']]],
-  ['get_5ffinal_5frel_5fgap',['get_final_rel_gap',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a18915a6568908d9aba4e09f1d2d8b23c',1,'maingo::bab::BranchAndBound::get_final_rel_gap()'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a18915a6568908d9aba4e09f1d2d8b23c',1,'maingo::bab::BranchAndBound::get_final_rel_gap()'],['../classmaingo_1_1_m_ai_n_g_o.html#aa244aaeeb4a93592821ab741010df615',1,'maingo::MAiNGO::get_final_rel_gap()']]],
-  ['get_5ffirst_5ffound',['get_first_found',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a63faf2c1a9fa6aaa062a271455813c01',1,'maingo::bab::BranchAndBound::get_first_found()'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a63faf2c1a9fa6aaa062a271455813c01',1,'maingo::bab::BranchAndBound::get_first_found()']]],
+  ['get_5ffinal_5fabs_5fgap',['get_final_abs_gap',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a4b993e6ced9b383b2ec2e3b4e617009a',1,'maingo::bab::BranchAndBound::get_final_abs_gap()'],['../classmaingo_1_1_m_ai_n_g_o.html#a0ec7e9601a2a5c8cc2f2bcb8d79c66a5',1,'maingo::MAiNGO::get_final_abs_gap()']]],
+  ['get_5ffinal_5flbd',['get_final_LBD',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a2a6ba10d4cba3be0656bdc1f434b796d',1,'maingo::bab::BranchAndBound::get_final_LBD()'],['../classmaingo_1_1_m_ai_n_g_o.html#ace8e13bdb04862efd560c8d0d80950b4',1,'maingo::MAiNGO::get_final_LBD()']]],
+  ['get_5ffinal_5frel_5fgap',['get_final_rel_gap',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a18915a6568908d9aba4e09f1d2d8b23c',1,'maingo::bab::BranchAndBound::get_final_rel_gap()'],['../classmaingo_1_1_m_ai_n_g_o.html#aa244aaeeb4a93592821ab741010df615',1,'maingo::MAiNGO::get_final_rel_gap()']]],
+  ['get_5ffirst_5ffound',['get_first_found',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a63faf2c1a9fa6aaa062a271455813c01',1,'maingo::bab::BranchAndBound']]],
   ['get_5fid',['get_ID',['../classbab_base_1_1_bab_node.html#a12e23225255660e57238ecb0820ea420',1,'babBase::BabNode::get_ID()'],['../classbab_base_1_1_bab_node_with_info.html#a944cee8a402dd5e3d4f8a2950eae15f2',1,'babBase::BabNodeWithInfo::get_ID()']]],
-  ['get_5finitial_5fpoint',['get_initial_point',['../classmaingo_1_1_ale_model.html#ad16d625c2b0ab88cdf8c200680477510',1,'maingo::AleModel::get_initial_point()'],['../classmaingo_1_1_m_ai_n_g_omodel.html#a929215d08a5412b014d39fcda6e5d62a',1,'maingo::MAiNGOmodel::get_initial_point()'],['../classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#af97462f303e12760d3bff115983515d4',1,'maingo::MAiNGOmodelEpsCon::get_initial_point()']]],
-  ['get_5fiterations',['get_iterations',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a90cf43573f5755481bdd020dcaa7d351',1,'maingo::bab::BranchAndBound::get_iterations()'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a90cf43573f5755481bdd020dcaa7d351',1,'maingo::bab::BranchAndBound::get_iterations()'],['../classmaingo_1_1_m_ai_n_g_o.html#a5922fb929208ad9341446f05683555f9',1,'maingo::MAiNGO::get_iterations()']]],
-  ['get_5flbp_5fcount',['get_LBP_count',['../classmaingo_1_1bab_1_1_branch_and_bound.html#af593cef9ed1bcfa512f7302732b9a614',1,'maingo::bab::BranchAndBound::get_LBP_count()'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#af593cef9ed1bcfa512f7302732b9a614',1,'maingo::bab::BranchAndBound::get_LBP_count()'],['../classmaingo_1_1_m_ai_n_g_o.html#a30f5390432b5701f3ae3b7ff3b0ae680',1,'maingo::MAiNGO::get_LBP_count()']]],
+  ['get_5finitial_5fpoint',['get_initial_point',['../classmaingo_1_1_ale_model.html#ad16d625c2b0ab88cdf8c200680477510',1,'maingo::AleModel::get_initial_point()'],['../classmaingo_1_1_m_ai_n_g_omodel.html#a929215d08a5412b014d39fcda6e5d62a',1,'maingo::MAiNGOmodel::get_initial_point()'],['../classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#af97462f303e12760d3bff115983515d4',1,'maingo::MAiNGOmodelEpsCon::get_initial_point()'],['../class_py_m_ai_n_g_omodel.html#adf3fcc040878469f11236e47066fc923',1,'PyMAiNGOmodel::get_initial_point()']]],
+  ['get_5fiterations',['get_iterations',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a90cf43573f5755481bdd020dcaa7d351',1,'maingo::bab::BranchAndBound::get_iterations()'],['../classmaingo_1_1_m_ai_n_g_o.html#a5922fb929208ad9341446f05683555f9',1,'maingo::MAiNGO::get_iterations()']]],
+  ['get_5flbp_5fcount',['get_LBP_count',['../classmaingo_1_1bab_1_1_branch_and_bound.html#af593cef9ed1bcfa512f7302732b9a614',1,'maingo::bab::BranchAndBound::get_LBP_count()'],['../classmaingo_1_1_m_ai_n_g_o.html#a30f5390432b5701f3ae3b7ff3b0ae680',1,'maingo::MAiNGO::get_LBP_count()']]],
   ['get_5flower_5fbound',['get_lower_bound',['../classbab_base_1_1_optimization_variable.html#ab76a8e196cf00c22e3a1d308fa1cd01e',1,'babBase::OptimizationVariable']]],
   ['get_5flower_5fbounds',['get_lower_bounds',['../classbab_base_1_1_bab_node.html#a00e68c3242d5180d302cf5c8e1f8de2c',1,'babBase::BabNode']]],
   ['get_5flowest_5fpruning_5fscore',['get_lowest_pruning_score',['../classbab_base_1_1_brancher.html#ab01c4af73b4c9489cf9780bccfa73739',1,'babBase::Brancher::get_lowest_pruning_score()'],['../classbab_base_1_1_bab_tree.html#ab57edc600a99a8da34df3d50398b7b98',1,'babBase::BabTree::get_lowest_pruning_score()']]],
-  ['get_5fmax_5fnodes_5fin_5fmemory',['get_max_nodes_in_memory',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a668165551fb2c2cc69a05b1956755147',1,'maingo::bab::BranchAndBound::get_max_nodes_in_memory()'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a668165551fb2c2cc69a05b1956755147',1,'maingo::bab::BranchAndBound::get_max_nodes_in_memory()'],['../classmaingo_1_1_m_ai_n_g_o.html#a22af1a970a5fd23eb347a655c8ae549a',1,'maingo::MAiNGO::get_max_nodes_in_memory()']]],
+  ['get_5fmax_5fnodes_5fin_5fmemory',['get_max_nodes_in_memory',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a668165551fb2c2cc69a05b1956755147',1,'maingo::bab::BranchAndBound::get_max_nodes_in_memory()'],['../classmaingo_1_1_m_ai_n_g_o.html#a22af1a970a5fd23eb347a655c8ae549a',1,'maingo::MAiNGO::get_max_nodes_in_memory()']]],
   ['get_5fmid',['get_mid',['../classbab_base_1_1_optimization_variable.html#aa62b8c28d96fbcb03b8890081fb31cde',1,'babBase::OptimizationVariable']]],
-  ['get_5fmodel_5fat_5fpoint',['get_model_at_point',['../classmaingo_1_1_m_ai_n_g_o.html#abd17e0e2d436da88f15738e8e0218ac8',1,'maingo::MAiNGO']]],
-  ['get_5fmodel_5fat_5fsolution_5fpoint',['get_model_at_solution_point',['../classmaingo_1_1_m_ai_n_g_o.html#a50df488dd7b110d7e4ebc137a8949696',1,'maingo::MAiNGO']]],
   ['get_5fname',['get_name',['../classbab_base_1_1_optimization_variable.html#a4b419fcf5d8b88a6d48f3f8beec1c509',1,'babBase::OptimizationVariable']]],
   ['get_5fnext_5fnode',['get_next_node',['../classbab_base_1_1_brancher.html#ab4a30a04b14b4b0e88956d53963f1fcb',1,'babBase::Brancher']]],
   ['get_5fnlp_5finfo',['get_nlp_info',['../classmaingo_1_1ubp_1_1_ipopt_problem.html#a0350b0b316d335dc27f4f5d1350771be',1,'maingo::ubp::IpoptProblem']]],
   ['get_5fnode_5fselection_5fscore',['get_node_selection_score',['../classbab_base_1_1_bab_node_with_info.html#a33be0940f65782c7845e3a5d5803e422',1,'babBase::BabNodeWithInfo']]],
   ['get_5fnodes_5fin_5ftree',['get_nodes_in_tree',['../classbab_base_1_1_brancher.html#a9b2a948ff522a40e63f90956a0b0c01d',1,'babBase::Brancher']]],
-  ['get_5fnodes_5fleft',['get_nodes_left',['../classmaingo_1_1bab_1_1_branch_and_bound.html#ae420e5187f1c1595d132a27bdc656529',1,'maingo::bab::BranchAndBound::get_nodes_left()'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#ae420e5187f1c1595d132a27bdc656529',1,'maingo::bab::BranchAndBound::get_nodes_left()'],['../classbab_base_1_1_bab_tree.html#aaa3be3d14946afcacef5079b3b0e812c',1,'babBase::BabTree::get_nodes_left()']]],
+  ['get_5fnodes_5fleft',['get_nodes_left',['../classmaingo_1_1bab_1_1_branch_and_bound.html#ae420e5187f1c1595d132a27bdc656529',1,'maingo::bab::BranchAndBound::get_nodes_left()'],['../classbab_base_1_1_bab_tree.html#aaa3be3d14946afcacef5079b3b0e812c',1,'babBase::BabTree::get_nodes_left()']]],
   ['get_5fobjective_5fvalue',['get_objective_value',['../classmaingo_1_1_m_ai_n_g_o.html#a6f3727adfe69c95ac8e0ca41a7b73fa6',1,'maingo::MAiNGO']]],
   ['get_5fpositions',['get_positions',['../classmaingo_1_1_ale_model.html#a0a095d7223a77ebb198bfe6f910bd376',1,'maingo::AleModel']]],
   ['get_5fpruning_5fscore',['get_pruning_score',['../classbab_base_1_1_bab_node.html#a7b99992c4fb98f8086a3cf09ab8d96ad',1,'babBase::BabNode::get_pruning_score()'],['../classbab_base_1_1_bab_node_with_info.html#afec4f9666432de68b443e4013ea5fb9e',1,'babBase::BabNodeWithInfo::get_pruning_score()']]],
@@ -42,12 +37,14 @@ var searchData=
   ['get_5fsolution_5fpoint',['get_solution_point',['../classmaingo_1_1_m_ai_n_g_o.html#a7821624172735057f67471776a8d4aa1',1,'maingo::MAiNGO']]],
   ['get_5fstarting_5fpoint',['get_starting_point',['../classmaingo_1_1ubp_1_1_ipopt_problem.html#a02f91f4b0962c2c77ab5f2c91891a806',1,'maingo::ubp::IpoptProblem']]],
   ['get_5fstatus',['get_status',['../classmaingo_1_1_m_ai_n_g_o.html#a16e579b3026a722169cf0f8819ac1ec5',1,'maingo::MAiNGO']]],
-  ['get_5fubp_5fcount',['get_UBP_count',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a3da7e60c4fad8100f38732fc06d2547c',1,'maingo::bab::BranchAndBound::get_UBP_count()'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a3da7e60c4fad8100f38732fc06d2547c',1,'maingo::bab::BranchAndBound::get_UBP_count()'],['../classmaingo_1_1_m_ai_n_g_o.html#a7f8fb94bcf60d8e2ff8a943c12459061',1,'maingo::MAiNGO::get_UBP_count()']]],
+  ['get_5fubp_5fcount',['get_UBP_count',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a3da7e60c4fad8100f38732fc06d2547c',1,'maingo::bab::BranchAndBound::get_UBP_count()'],['../classmaingo_1_1_m_ai_n_g_o.html#a7f8fb94bcf60d8e2ff8a943c12459061',1,'maingo::MAiNGO::get_UBP_count()']]],
   ['get_5fupper_5fbound',['get_upper_bound',['../classbab_base_1_1_optimization_variable.html#ad01e5fd245987423c73719114c307a84',1,'babBase::OptimizationVariable']]],
   ['get_5fupper_5fbounds',['get_upper_bounds',['../classbab_base_1_1_bab_node.html#a2a0922468fbfe492d9d70231c54c4bf9',1,'babBase::BabNode']]],
+  ['get_5fuser_5flower_5fbound',['get_user_lower_bound',['../classbab_base_1_1_optimization_variable.html#a74e9435f5bcfa900c9304ceda8f05be5',1,'babBase::OptimizationVariable']]],
+  ['get_5fuser_5fupper_5fbound',['get_user_upper_bound',['../classbab_base_1_1_optimization_variable.html#adf64e2c7687fce1a063b7a4a46a2e212',1,'babBase::OptimizationVariable']]],
   ['get_5fvalid_5fid',['get_valid_id',['../classbab_base_1_1_bab_tree.html#a931d3afc91a3c6011e9921cbfe09d0a2',1,'babBase::BabTree']]],
   ['get_5fvariable_5ftype',['get_variable_type',['../classbab_base_1_1_optimization_variable.html#a4b56db1c40da9ceb5f0179a7660336ce',1,'babBase::OptimizationVariable']]],
-  ['get_5fvariables',['get_variables',['../classmaingo_1_1_ale_model.html#a9d29639440ec6fae90238a0a6d32ab53',1,'maingo::AleModel::get_variables()'],['../classmaingo_1_1_m_ai_n_g_omodel.html#a9faead087bd24822a0d249e257b4df8d',1,'maingo::MAiNGOmodel::get_variables()'],['../classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a5829ce6c25e38821c747faf90c5ffbbe',1,'maingo::MAiNGOmodelEpsCon::get_variables()']]],
+  ['get_5fvariables',['get_variables',['../classmaingo_1_1_ale_model.html#a9d29639440ec6fae90238a0a6d32ab53',1,'maingo::AleModel::get_variables()'],['../classmaingo_1_1_m_ai_n_g_omodel.html#a9faead087bd24822a0d249e257b4df8d',1,'maingo::MAiNGOmodel::get_variables()'],['../classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a5829ce6c25e38821c747faf90c5ffbbe',1,'maingo::MAiNGOmodelEpsCon::get_variables()'],['../class_py_m_ai_n_g_omodel.html#aa21e4c1906ec1a7b299de5f30e43a182',1,'PyMAiNGOmodel::get_variables()']]],
   ['get_5fwall_5ftime',['get_wall_time',['../namespacemaingo.html#a9b8e20d235728ad79d9d23746aadaf15',1,'maingo']]],
   ['get_5fwallclock_5fsolution_5ftime',['get_wallclock_solution_time',['../classmaingo_1_1_m_ai_n_g_o.html#ae1bfc496de0e05575a8f9ad290bd2b58',1,'maingo::MAiNGO']]],
   ['gettime_2ecpp',['getTime.cpp',['../get_time_8cpp.html',1,'']]],
diff --git a/doc/html/search/all_8.html b/doc/html/search/all_8.html
index 1e8fb9ceb31c80ac43367832af3b0f6fdf1f867b..b74d5fd807b3f51ed43ec91d0e0124bfdc83b9b5 100644
--- a/doc/html/search/all_8.html
+++ b/doc/html/search/all_8.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_8.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/all_9.html b/doc/html/search/all_9.html
index 27df366b257d3329e22a01c72698ef60e171ebdf..95e88dd25c9424e5a160e786b08645107048f259 100644
--- a/doc/html/search/all_9.html
+++ b/doc/html/search/all_9.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_9.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/all_9.js b/doc/html/search/all_9.js
index b83553f760c414e709400290033e54127d3b3a6c..5ac3e75bd5679c1a060dd1132811a6c7318aae17 100644
--- a/doc/html/search/all_9.js
+++ b/doc/html/search/all_9.js
@@ -1,6 +1,6 @@
 var searchData=
 [
-  ['i',['I',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a157695047ca0cea633aebe7a89d83129',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::I()'],['../interval_library_8h.html#a719e28aa7350b1ab0efe53725d78a54f',1,'I():&#160;intervalLibrary.h']]],
+  ['i',['I',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a157695047ca0cea633aebe7a89d83129',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::I()'],['../interval_library_8h.html#a752577663acb2d105778a51e93452c1a',1,'I():&#160;intervalLibrary.h']]],
   ['iapws',['iapws',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a5cbe6a20c3bcda77397c91a8656038fe',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::iapws(const QE &amp;x, const double type)'],['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ae6ae73bd314ea55c0a23fb45bb4c4bdf',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::iapws(const QE &amp;x, const QE &amp;y, const double type)']]],
   ['ideal_5fgas_5fenthalpy',['ideal_gas_enthalpy',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a7ed010559aebb792e65c224fe998b689',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['ik_5fcape_5fpsat',['ik_cape_psat',['../function_wrapper_8h.html#a60722162735fd25cb427d126ab74e9f3',1,'ik_cape_psat(const mc::FFVar &amp;T, const double p1, const double p2, const double p3, const double p4, const double p5, const double p6, const double p7, const double p8, const double p9, const double p10):&#160;functionWrapper.h'],['../function_wrapper_8h.html#aff78d3d42f157cad660af05d00bd0112',1,'ik_cape_psat(const mc::FFVar &amp;T, const std::vector&lt; double &gt; p):&#160;functionWrapper.h']]],
@@ -14,24 +14,23 @@ var searchData=
   ['indextype',['indexType',['../structmaingo_1_1_constraint.html#a0737a38df2e9e635c200f6b7fa284dc9',1,'maingo::Constraint']]],
   ['indextypeconstant',['indexTypeConstant',['../structmaingo_1_1_constraint.html#a53aa15e45bc19a32d03d11449b8608e3',1,'maingo::Constraint']]],
   ['indextypenonconstant',['indexTypeNonconstant',['../structmaingo_1_1_constraint.html#a35f780dfe5b201d6fb8b9e475ef69901',1,'maingo::Constraint']]],
-  ['ineq',['ineq',['../structmaingo_1_1_evaluation_container.html#a6871b7430185e5c4152b941720b606f3',1,'maingo::EvaluationContainer::ineq()'],['../structmaingo_1_1_constraint_container.html#ac1b8182544f5f0fe5357d748b690dab2',1,'maingo::ConstraintContainer::ineq()'],['../namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa2a2d5953a4091c4c7a47698a5a5bbfaa',1,'maingo::INEQ()']]],
+  ['ineq',['ineq',['../structmaingo_1_1_evaluation_container.html#af3256dbd0be5bea52c3a994da7082ea4',1,'maingo::EvaluationContainer::ineq()'],['../structmaingo_1_1_constraint_container.html#ac1b8182544f5f0fe5357d748b690dab2',1,'maingo::ConstraintContainer::ineq()'],['../namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa2a2d5953a4091c4c7a47698a5a5bbfaa',1,'maingo::INEQ()']]],
   ['ineq_5frel_5fonly',['INEQ_REL_ONLY',['../namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffabcfee51ddb6ed7d3c74ba9aa6f11fc96',1,'maingo']]],
   ['ineq_5fsquash',['INEQ_SQUASH',['../namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffacaec66b04e8cec2efaf72c40f4d4d60d',1,'maingo']]],
-  ['ineqrelaxationonly',['ineqRelaxationOnly',['../structmaingo_1_1_evaluation_container.html#af754c93b79ce6fa668c17d2fd26c812b',1,'maingo::EvaluationContainer']]],
-  ['ineqsquash',['ineqSquash',['../structmaingo_1_1_evaluation_container.html#aa40bfc61f94bf6850d3ee53db7e2afeb',1,'maingo::EvaluationContainer']]],
+  ['ineqrelaxationonly',['ineqRelaxationOnly',['../structmaingo_1_1_evaluation_container.html#acf712256b2506b6388af16e648a04fae',1,'maingo::EvaluationContainer']]],
+  ['ineqsquash',['ineqSquash',['../structmaingo_1_1_evaluation_container.html#af9572d873db6d0ebd0402cbc3539e8ee',1,'maingo::EvaluationContainer']]],
   ['infeasible',['INFEASIBLE',['../namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aaaf4c1f773e7ed997a752e9fc46f31da9',1,'maingo::INFEASIBLE()'],['../namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a6bad01cb747eb4dc29ad78da2ebbf56a',1,'babBase::enums::INFEASIBLE()']]],
   ['infinity',['infinity',['../structmaingo_1_1_settings.html#a998dbf62d78386f5c7161b82ed37acbe',1,'maingo::Settings']]],
   ['infinitymc',['infinityMC',['../structmaingo_1_1lbp_1_1_dag_obj.html#a035f243e17df5931b5c12a003cb09b0d',1,'maingo::lbp::DagObj']]],
   ['infty',['INFTY',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a44ea7382567c49c39d5ffbd545b0451c',1,'maingo']]],
   ['initialize_5fvmccormick',['initialize_vMcCormick',['../structmaingo_1_1lbp_1_1_dag_obj.html#afdac6172a450f8b76c8323b9ee88905a',1,'maingo::lbp::DagObj']]],
   ['insert_5froot_5fnode',['insert_root_node',['../classbab_base_1_1_brancher.html#a4d546d676bac7c0bde9ec3ac1f3c1adb',1,'babBase::Brancher']]],
-  ['installing_20and_20executing_20maingo',['Installing and Executing MAiNGO',['../install.html',1,'index']]],
   ['inter',['inter',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#acc1b11c33a232b16420b1cd78dc5b0c8',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['intervalarray',['intervalArray',['../structmaingo_1_1lbp_1_1_dag_obj.html#ae58400f843a41b78fa38b70d22ccc5c0',1,'maingo::lbp::DagObj']]],
   ['intervallibrary_2eh',['intervalLibrary.h',['../interval_library_8h.html',1,'']]],
   ['intervals_5falready_5fcomputed',['intervals_already_computed',['../structmaingo_1_1lbp_1_1_dag_obj.html#a1f775701cf6bd72a47813a9557d02b19',1,'maingo::lbp::DagObj']]],
   ['inv',['inv',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a7f9ead00fc41293e4f6e223bcc7e3842',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
-  ['ipoptproblem',['IpoptProblem',['../classmaingo_1_1ubp_1_1_ipopt_problem.html',1,'maingo::ubp::IpoptProblem'],['../classmaingo_1_1ubp_1_1_ipopt_problem.html#aff434ac6d45f748ead8315abcc825bed',1,'maingo::ubp::IpoptProblem::IpoptProblem()'],['../classmaingo_1_1ubp_1_1_ipopt_problem.html#a986a798fcfb41ccf30a4e21dece92dbf',1,'maingo::ubp::IpoptProblem::IpoptProblem(unsigned nvarIn, unsigned neqIn, unsigned nineqIn, unsigned nineqSquashIn, UbpStructure *structureIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, std::shared_ptr&lt; DagObj &gt; dagObj)'],['../classmaingo_1_1ubp_1_1_ipopt_problem.html#aa2beb96149ad4140eef75964e0297125',1,'maingo::ubp::IpoptProblem::IpoptProblem(const IpoptProblem &amp;)']]],
+  ['ipoptproblem',['IpoptProblem',['../classmaingo_1_1ubp_1_1_ipopt_problem.html',1,'maingo::ubp::IpoptProblem'],['../classmaingo_1_1ubp_1_1_ipopt_problem.html#aff434ac6d45f748ead8315abcc825bed',1,'maingo::ubp::IpoptProblem::IpoptProblem()'],['../classmaingo_1_1ubp_1_1_ipopt_problem.html#a62bc2a5c3d02532a6fc568f704177264',1,'maingo::ubp::IpoptProblem::IpoptProblem(unsigned nvarIn, unsigned neqIn, unsigned nineqIn, unsigned nineqSquashIn, UbpStructure *structureIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, std::shared_ptr&lt; DagObj &gt; dagObj)'],['../classmaingo_1_1ubp_1_1_ipopt_problem.html#aa2beb96149ad4140eef75964e0297125',1,'maingo::ubp::IpoptProblem::IpoptProblem(const IpoptProblem &amp;)']]],
   ['ipoptproblem_2ecpp',['ipoptProblem.cpp',['../ipopt_problem_8cpp.html',1,'']]],
   ['ipoptproblem_2eh',['ipoptProblem.h',['../ipopt_problem_8h.html',1,'']]],
   ['isconstant',['isConstant',['../structmaingo_1_1_constraint.html#aee74bed061fd79bcd83099f3628659a4',1,'maingo::Constraint']]],
diff --git a/doc/html/search/all_a.html b/doc/html/search/all_a.html
index 63f9254d825055cb7b199157c18a50dd1ca5bdd2..3148a8e513e553cdd599882b45f2e67780c6e9e6 100644
--- a/doc/html/search/all_a.html
+++ b/doc/html/search/all_a.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_a.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/all_a.js b/doc/html/search/all_a.js
index 0f880f0bcf514e2a0bd0dca4597c731753999ac1..0089f2fa7f08698f3d32dd358d401764733ddcb9 100644
--- a/doc/html/search/all_a.js
+++ b/doc/html/search/all_a.js
@@ -1,6 +1,5 @@
 var searchData=
 [
   ['jacproperties',['jacProperties',['../structmaingo_1_1ubp_1_1_ubp_structure.html#af049943a023a5d094c469fb65aa9a3c5',1,'maingo::ubp::UbpStructure']]],
-  ['jsonfilename',['jsonFileName',['../classmaingo_1_1_logger.html#a55590e7a2d77ea9fd85512b17f02bffa',1,'maingo::Logger']]],
   ['just_5fa_5fworker_5fdont_5fask_5fme',['JUST_A_WORKER_DONT_ASK_ME',['../namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aae3d35953836c7ec16f1503239ed7972c',1,'maingo']]]
 ];
diff --git a/doc/html/search/all_b.html b/doc/html/search/all_b.html
index 44ae3e475b0a9320d84d24baa3c18ce0b7706e17..f2a3c8d0e31b76675edcd072e5ddc9b35c87a62c 100644
--- a/doc/html/search/all_b.html
+++ b/doc/html/search/all_b.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_b.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/all_b.js b/doc/html/search/all_b.js
index 9fd841573ccb293cec1fc8baea6164404a8e7108..6592dfb6bdaea1e78bb1a562277ff09c16a40c8b 100644
--- a/doc/html/search/all_b.js
+++ b/doc/html/search/all_b.js
@@ -1,6 +1,6 @@
 var searchData=
 [
-  ['knitroproblem',['KnitroProblem',['../classmaingo_1_1ubp_1_1_knitro_problem.html',1,'maingo::ubp::KnitroProblem'],['../classmaingo_1_1ubp_1_1_knitro_problem.html#a01412351da813879180374f925289e14',1,'maingo::ubp::KnitroProblem::KnitroProblem(unsigned nvarIn, unsigned neqIn, unsigned nineqIn, const unsigned nineqSquashIn, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, UbpStructure *structureIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, std::shared_ptr&lt; DagObj &gt; dagObj)'],['../classmaingo_1_1ubp_1_1_knitro_problem.html#aeee41f6f83fe4abfc075ded564a767ee',1,'maingo::ubp::KnitroProblem::KnitroProblem(const KnitroProblem &amp;)']]],
+  ['knitroproblem',['KnitroProblem',['../classmaingo_1_1ubp_1_1_knitro_problem.html',1,'maingo::ubp::KnitroProblem'],['../classmaingo_1_1ubp_1_1_knitro_problem.html#af6bc2325caaf7ab6e70eb032669208e7',1,'maingo::ubp::KnitroProblem::KnitroProblem(unsigned nvarIn, unsigned neqIn, unsigned nineqIn, const unsigned nineqSquashIn, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, UbpStructure *structureIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, std::shared_ptr&lt; DagObj &gt; dagObj)'],['../classmaingo_1_1ubp_1_1_knitro_problem.html#aeee41f6f83fe4abfc075ded564a767ee',1,'maingo::ubp::KnitroProblem::KnitroProblem(const KnitroProblem &amp;)']]],
   ['knitroproblem_2ecpp',['knitroProblem.cpp',['../knitro_problem_8cpp.html',1,'']]],
   ['knitroproblem_2eh',['knitroProblem.h',['../knitro_problem_8h.html',1,'']]]
 ];
diff --git a/doc/html/search/all_c.html b/doc/html/search/all_c.html
index 3de15867d40c9115390e84fea81c31af455be704..637681075bab0793b41bd395b4cb10a6407b4ee4 100644
--- a/doc/html/search/all_c.html
+++ b/doc/html/search/all_c.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_c.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/all_c.js b/doc/html/search/all_c.js
index 58d9bea4aba596cb451325363ac9906aee1b221e..ca163ff50f85dfe0215b48a8c66db1dc28959505 100644
--- a/doc/html/search/all_c.js
+++ b/doc/html/search/all_c.js
@@ -1,7 +1,9 @@
 var searchData=
 [
   ['l',['l',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a6f1b459f0497dcbb9b27c15a3da93679',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
-  ['lang_5fnone',['LANG_NONE',['../namespacemaingo.html#a7fda513a30bb172152b96406e370299aacd2ad11121ce71554943363ac99cd0c8',1,'maingo']]],
+  ['lang_5fale',['LANG_ALE',['../namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39aa1b0686f8505e989428b2edbc77249953',1,'maingo']]],
+  ['lang_5fgams',['LANG_GAMS',['../namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39aa8baf6445b690d1592e58cf697ced3bfe',1,'maingo']]],
+  ['lang_5fnone',['LANG_NONE',['../namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39aacd2ad11121ce71554943363ac99cd0c8',1,'maingo']]],
   ['larger_5for_5fequal_5fwithin_5frel_5fand_5fabs_5ftolerance',['larger_or_equal_within_rel_and_abs_tolerance',['../namespacebab_base.html#a257f505cb4d7319956918abc4f14ab2d',1,'babBase']]],
   ['larger_5for_5fequal_5fwithin_5ftolerance',['larger_or_equal_within_tolerance',['../namespacemaingo.html#ab36b1ec6df5374d8caba1bae5495df5d',1,'maingo']]],
   ['lb_5ffunc',['lb_func',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a2cfbd58e1ce450b19c8329113b9654b6',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
@@ -15,19 +17,23 @@ var searchData=
   ['lbp_5fminfactorsforaux',['LBP_minFactorsForAux',['../structmaingo_1_1_settings.html#ac91eb2c4778d67abdc5b797c3a8d1b3f',1,'maingo::Settings::LBP_minFactorsForAux()'],['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aa871804ddb83a6d0f59637e3ff59c790',1,'maingo::LBP_MINFACTORSFORAUX()']]],
   ['lbp_5fobbtminimprovement',['LBP_obbtMinImprovement',['../structmaingo_1_1_settings.html#ad537d2e602f8eccbbaa1b3c4d0f3a135',1,'maingo::Settings::LBP_obbtMinImprovement()'],['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ae7c7534e21e3333500fa3f6a834587c8',1,'maingo::LBP_OBBTMINIMPROVEMENT()']]],
   ['lbp_5fsolver',['LBP_solver',['../structmaingo_1_1_settings.html#a3e066fd5fb513813ec370f23a1cf5332',1,'maingo::Settings::LBP_solver()'],['../namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4be',1,'maingo::lbp::LBP_SOLVER()'],['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a71bd48756db5177b75b58c18c293de76',1,'maingo::LBP_SOLVER()']]],
+  ['lbp_5fsolver_5fclp',['LBP_SOLVER_CLP',['../namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea9c0bfb2a028e4a3ab6011619009d62d9',1,'maingo::lbp']]],
+  ['lbp_5fsolver_5fcplex',['LBP_SOLVER_CPLEX',['../namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea016b6bae02feefafd679a8d57149aff5',1,'maingo::lbp']]],
+  ['lbp_5fsolver_5finterval',['LBP_SOLVER_INTERVAL',['../namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4beafc7bfbfe657af2fff8e3800860388f89',1,'maingo::lbp']]],
+  ['lbp_5fsolver_5fmaingo',['LBP_SOLVER_MAiNGO',['../namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea32fa8aaeff8ed8f41d95ce72acc04ce1',1,'maingo::lbp']]],
   ['lbp_5fsubgradientintervals',['LBP_subgradientIntervals',['../structmaingo_1_1_settings.html#a4ea318d33514aecb909d04ac014dec5c',1,'maingo::Settings::LBP_subgradientIntervals()'],['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a09a491a6e7f617cd50a7060c552cce4e',1,'maingo::LBP_SUBGRADIENTINTERVALS()']]],
   ['lbp_5fverbosity',['LBP_verbosity',['../structmaingo_1_1_settings.html#a3bca851ad2486ec398bf0cff511fb805',1,'maingo::Settings::LBP_verbosity()'],['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6afce3b85b57cf0619c91b21fc7f85d25f',1,'maingo::LBP_VERBOSITY()']]],
-  ['lbpclp',['LbpClp',['../classmaingo_1_1lbp_1_1_lbp_clp.html',1,'maingo::lbp::LbpClp'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#ab7e8f8e062116c53497ed6884529a2a3',1,'maingo::lbp::LbpClp::LbpClp()']]],
+  ['lbpclp',['LbpClp',['../classmaingo_1_1lbp_1_1_lbp_clp.html',1,'maingo::lbp::LbpClp'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#a9e39ab1a9b491aa0d71efbaf3467c19d',1,'maingo::lbp::LbpClp::LbpClp()']]],
   ['lbpclp_2ecpp',['lbpClp.cpp',['../lbp_clp_8cpp.html',1,'']]],
   ['lbpclp_2eh',['lbpClp.h',['../lbp_clp_8h.html',1,'']]],
-  ['lbpcplex',['LbpCplex',['../classmaingo_1_1lbp_1_1_lbp_cplex.html',1,'maingo::lbp::LbpCplex'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#ae9d2adeabbd07038fd8a27192548ebef',1,'maingo::lbp::LbpCplex::LbpCplex()']]],
+  ['lbpcplex',['LbpCplex',['../classmaingo_1_1lbp_1_1_lbp_cplex.html',1,'maingo::lbp::LbpCplex'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#ac3a9c29513f616834eb0cd0cddf08b0c',1,'maingo::lbp::LbpCplex::LbpCplex()']]],
   ['lbpcplex_2ecpp',['lbpCplex.cpp',['../lbp_cplex_8cpp.html',1,'']]],
   ['lbpcplex_2eh',['lbpCplex.h',['../lbp_cplex_8h.html',1,'']]],
   ['lbpdagobj_2ecpp',['lbpDagObj.cpp',['../lbp_dag_obj_8cpp.html',1,'']]],
   ['lbpdagobj_2eh',['lbpDagObj.h',['../lbp_dag_obj_8h.html',1,'']]],
   ['lbpdualinfo',['LbpDualInfo',['../structmaingo_1_1lbp_1_1_lbp_dual_info.html',1,'maingo::lbp']]],
   ['lbpfactory_2ecpp',['lbpFactory.cpp',['../lbp_factory_8cpp.html',1,'']]],
-  ['lbpinterval',['LbpInterval',['../classmaingo_1_1lbp_1_1_lbp_interval.html',1,'maingo::lbp::LbpInterval'],['../classmaingo_1_1lbp_1_1_lbp_interval.html#ae0c855db98ba9a8c6e32500e1efcbbe7',1,'maingo::lbp::LbpInterval::LbpInterval()']]],
+  ['lbpinterval',['LbpInterval',['../classmaingo_1_1lbp_1_1_lbp_interval.html',1,'maingo::lbp::LbpInterval'],['../classmaingo_1_1lbp_1_1_lbp_interval.html#a42f6c355cd7752a138f96614bb401491',1,'maingo::lbp::LbpInterval::LbpInterval()']]],
   ['lbpinterval_2ecpp',['lbpInterval.cpp',['../lbp_interval_8cpp.html',1,'']]],
   ['lbpinterval_2eh',['lbpInterval.h',['../lbp_interval_8h.html',1,'']]],
   ['lbplinearizationstrats_2ecpp',['lbpLinearizationStrats.cpp',['../lbp_linearization_strats_8cpp.html',1,'']]],
@@ -55,14 +61,19 @@ var searchData=
   ['lmtd',['lmtd',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a4f99f7a6c7d498a2bdee55459ac4b27f',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['log',['log',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ae697c1fcc04bff4b2893b51ce170fb08',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['logfilename',['logFileName',['../classmaingo_1_1_logger.html#a70f564ada7c6d7167bfc908096476996',1,'maingo::Logger::logFileName()'],['../structbab_base_1_1_bab_log.html#a8a9df98b271e44b196dcbee8bc19cf16',1,'babBase::BabLog::logFileName()']]],
-  ['logger',['Logger',['../classmaingo_1_1_logger.html',1,'maingo::Logger'],['../structmaingo_1_1ubp_1_1_dag_obj.html#a61dda650b1a25155e541c4607fb7b82c',1,'maingo::ubp::DagObj::logger()'],['../classmaingo_1_1_logger.html#a4d8782e6212a58c9ba6bd8f2317669d9',1,'maingo::Logger::Logger()'],['../classmaingo_1_1_logger.html#ae677d6c6ce87b2484d82a493ac649ec3',1,'maingo::Logger::Logger(const Logger &amp;)=default']]],
+  ['logger',['Logger',['../classmaingo_1_1_logger.html',1,'maingo::Logger'],['../classmaingo_1_1_logger.html#a4d8782e6212a58c9ba6bd8f2317669d9',1,'maingo::Logger::Logger()'],['../classmaingo_1_1_logger.html#ae677d6c6ce87b2484d82a493ac649ec3',1,'maingo::Logger::Logger(const Logger &amp;)=default'],['../structmaingo_1_1ubp_1_1_dag_obj.html#a6e462e78027d46af3239c0463b7c9249',1,'maingo::ubp::DagObj::logger()']]],
   ['logger_2ecpp',['logger.cpp',['../logger_8cpp.html',1,'']]],
   ['logger_2eh',['logger.h',['../logger_8h.html',1,'']]],
+  ['logging_5fdestination',['LOGGING_DESTINATION',['../namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4',1,'maingo']]],
+  ['logging_5ffile',['LOGGING_FILE',['../namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4a335b5d0a5d8ddae15c4f4dc56ff437c1',1,'maingo']]],
+  ['logging_5ffile_5fand_5fstream',['LOGGING_FILE_AND_STREAM',['../namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4aaeb2ef5d2157419a5fe03924e9fbb714',1,'maingo']]],
+  ['logging_5fnone',['LOGGING_NONE',['../namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4a5ba5670261ac104d957be08824b10fda',1,'maingo']]],
+  ['logging_5foutstream',['LOGGING_OUTSTREAM',['../namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4afb969130cbbe60ea7ede72325e349fbe',1,'maingo']]],
+  ['loggingdestination',['loggingDestination',['../structmaingo_1_1_settings.html#ad665aeee888f2746d7892ffc66bd5340',1,'maingo::Settings']]],
   ['low_5fid_5ffirst',['low_id_first',['../namespacebab_base.html#ab8f1d614e5625322fd3e196bd4d985b4',1,'babBase']]],
   ['low_5fpruning_5fscore_5ffirst',['low_pruning_score_first',['../namespacebab_base.html#ab748ef40ab06d5cfe2a2280d66f19bb9',1,'babBase']]],
-  ['lower',['lower',['../structbab_base_1_1_bounds.html#a41752124aaf238c73255f1941c861ce8',1,'babBase::Bounds']]],
-  ['lowerboundchanged',['lowerBoundChanged',['../structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#a4ecf97573227d863a88a44747125aeb0',1,'babBase::OptimizationVariable::ChangedBounds']]],
-  ['lowerboundingsolver',['LowerBoundingSolver',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html',1,'maingo::lbp::LowerBoundingSolver'],['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a31416f2224eea283c3ae280ed3beb497',1,'maingo::lbp::LowerBoundingSolver::LowerBoundingSolver(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn)'],['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae097029abb950c0838bab24ef4bc360f',1,'maingo::lbp::LowerBoundingSolver::LowerBoundingSolver(const LowerBoundingSolver &amp;)']]],
+  ['lower',['lower',['../structbab_base_1_1_bounds.html#ac371c3147b5737af08e1c03daf413c05',1,'babBase::Bounds']]],
+  ['lowerboundingsolver',['LowerBoundingSolver',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html',1,'maingo::lbp::LowerBoundingSolver'],['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9680e92120bb8a0693095f965421d7d7',1,'maingo::lbp::LowerBoundingSolver::LowerBoundingSolver(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn)'],['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae097029abb950c0838bab24ef4bc360f',1,'maingo::lbp::LowerBoundingSolver::LowerBoundingSolver(const LowerBoundingSolver &amp;)']]],
   ['lp',['LP',['../namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea6ef20a631ab5ecf8ea394e3fac0da92b',1,'maingo']]],
   ['lp_5f_5foptimality_5fcheck',['LP__OPTIMALITY_CHECK',['../_m_ai_n_g_odebug_8h.html#a2426c899a5c3a34bfa2fb0f61f6dcaf5',1,'MAiNGOdebug.h']]],
   ['lp_5finfeasible',['LP_INFEASIBLE',['../namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90afd0d8d28a60075d7c218ac487f16edb8',1,'maingo::lbp']]],
diff --git a/doc/html/search/all_d.html b/doc/html/search/all_d.html
index a2d5bd7ed5e0a4414ca19eaa9d7b07474f465e08..cc52c79fb2fe5e0a8d9b4647eea5bc13521839ab 100644
--- a/doc/html/search/all_d.html
+++ b/doc/html/search/all_d.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_d.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/all_d.js b/doc/html/search/all_d.js
index a08dcf5c16d1a3c85108de31d308d6a1ebac219a..c3dcad9c8cb34cd731390b0fbebfabdce91de69a 100644
--- a/doc/html/search/all_d.js
+++ b/doc/html/search/all_d.js
@@ -13,27 +13,31 @@ var searchData=
   ['maingo_5fif_5fbab_5fworker',['MAiNGO_IF_BAB_WORKER',['../mpi_utilities_8h.html#a9f6c0adaeeb5cca048c69a61b146d2ed',1,'mpiUtilities.h']]],
   ['maingo_5fmpi_5fbarrier',['MAiNGO_MPI_BARRIER',['../mpi_utilities_8h.html#a8f1c8431cb29b8b2a94c0af1bc63de5e',1,'mpiUtilities.h']]],
   ['maingo_5fmpi_5ffinalize',['MAiNGO_MPI_FINALIZE',['../mpi_utilities_8h.html#a39e8f48c47d82dc275f1f5e32de92d2a',1,'mpiUtilities.h']]],
-  ['maingo_20output',['MAiNGO output',['../maingo_output.html',1,'index']]],
+  ['maingo_20output',['MAiNGO Output',['../maingo_output.html',1,'index']]],
   ['maingo_20settings',['MAiNGO Settings',['../maingo_settings.html',1,'index']]],
   ['maingodebug_2eh',['MAiNGOdebug.h',['../_m_ai_n_g_odebug_8h.html',1,'']]],
+  ['maingoevaluationfunctions_2ecpp',['MAiNGOevaluationFunctions.cpp',['../_m_ai_n_g_oevaluation_functions_8cpp.html',1,'']]],
   ['maingoevaluator',['MaingoEvaluator',['../classmaingo_1_1_maingo_evaluator.html',1,'maingo::MaingoEvaluator'],['../classmaingo_1_1_maingo_evaluator.html#aba0042d5950c2d3af0e2a2b721bc5a93',1,'maingo::MaingoEvaluator::MaingoEvaluator()']]],
   ['maingoevaluator_2eh',['MAiNGOevaluator.h',['../_m_ai_n_g_oevaluator_8h.html',1,'']]],
-  ['maingoexception',['MAiNGOException',['../classmaingo_1_1_m_ai_n_g_o_exception.html',1,'maingo::MAiNGOException'],['../classmaingo_1_1_m_ai_n_g_o_exception.html#a8c2f79d79aaa741fa4c0f5d7b5148a92',1,'maingo::MAiNGOException::MAiNGOException()'],['../classmaingo_1_1_m_ai_n_g_o_exception.html#ab39f701c53e41a4c7f43ef44e8c275d8',1,'maingo::MAiNGOException::MAiNGOException(const std::string &amp;arg)'],['../classmaingo_1_1_m_ai_n_g_o_exception.html#afe2216a07a8ecaf41c1c4b8b10e1ec35',1,'maingo::MAiNGOException::MAiNGOException(const std::string &amp;arg, const babBase::BabNode &amp;node)'],['../classmaingo_1_1_m_ai_n_g_o_exception.html#afc29a64faad1be34d8b70205b3391910',1,'maingo::MAiNGOException::MAiNGOException(const std::string &amp;arg, const std::exception &amp;e)'],['../classmaingo_1_1_m_ai_n_g_o_exception.html#a2486a525e721a25110fc12c5224c1f10',1,'maingo::MAiNGOException::MAiNGOException(const std::string &amp;arg, const std::exception &amp;e, const babBase::BabNode &amp;node)'],['../classmaingo_1_1_m_ai_n_g_o_exception.html#a21341b7dfc5884b912383906b5f9828c',1,'maingo::MAiNGOException::MAiNGOException(const std::string &amp;arg, const std::exception *e, const babBase::BabNode *node)']]],
+  ['maingoexception',['MAiNGOException',['../classmaingo_1_1_m_ai_n_g_o_exception.html',1,'maingo::MAiNGOException'],['../classmaingo_1_1_m_ai_n_g_o_exception.html#ae27b9410e3135e7784dae78c11e682f6',1,'maingo::MAiNGOException::MAiNGOException()=delete'],['../classmaingo_1_1_m_ai_n_g_o_exception.html#aa5597f9379d8be919d8b4ae58030fac4',1,'maingo::MAiNGOException::MAiNGOException(const MAiNGOException &amp;)=default'],['../classmaingo_1_1_m_ai_n_g_o_exception.html#aa5c3aeb963e328dedab7bf51e953f863',1,'maingo::MAiNGOException::MAiNGOException(MAiNGOException &amp;&amp;)=default'],['../classmaingo_1_1_m_ai_n_g_o_exception.html#a61855f24f971602b43e26c16b0593e4f',1,'maingo::MAiNGOException::MAiNGOException(const std::string &amp;errorMessage)'],['../classmaingo_1_1_m_ai_n_g_o_exception.html#a6f3fb2a660e871f2949a18b4a6986019',1,'maingo::MAiNGOException::MAiNGOException(const std::string &amp;errorMessage, const babBase::BabNode &amp;nodeThatErrorOccurredIn)'],['../classmaingo_1_1_m_ai_n_g_o_exception.html#a457b8be0f33fcfeb9ab096345e60b75c',1,'maingo::MAiNGOException::MAiNGOException(const std::string &amp;errorMessage, const std::exception &amp;originalException)'],['../classmaingo_1_1_m_ai_n_g_o_exception.html#af37f598a1339901938a6bbf3b67a3247',1,'maingo::MAiNGOException::MAiNGOException(const std::string &amp;errorMessage, const std::exception &amp;originalException, const babBase::BabNode &amp;nodeThatErrorOccurredIn)']]],
+  ['maingoexception_2eh',['MAiNGOException.h',['../_m_ai_n_g_o_exception_8h.html',1,'']]],
   ['maingogetterfunctions_2ecpp',['MAiNGOgetterFunctions.cpp',['../_m_ai_n_g_ogetter_functions_8cpp.html',1,'']]],
   ['maingomodel',['MAiNGOmodel',['../classmaingo_1_1_m_ai_n_g_omodel.html',1,'maingo']]],
   ['maingomodel_2eh',['MAiNGOmodel.h',['../_m_ai_n_g_omodel_8h.html',1,'']]],
   ['maingomodelepscon',['MAiNGOmodelEpsCon',['../classmaingo_1_1_m_ai_n_g_omodel_eps_con.html',1,'maingo']]],
   ['maingomodelepscon_2ecpp',['MAiNGOmodelEpsCon.cpp',['../_m_ai_n_g_omodel_eps_con_8cpp.html',1,'']]],
   ['maingomodelepscon_2eh',['MAiNGOmodelEpsCon.h',['../_m_ai_n_g_omodel_eps_con_8h.html',1,'']]],
+  ['maingompiexception_2eh',['MAiNGOMpiException.h',['../_m_ai_n_g_o_mpi_exception_8h.html',1,'']]],
   ['maingoprintingfunctions_2ecpp',['MAiNGOprintingFunctions.cpp',['../_m_ai_n_g_oprinting_functions_8cpp.html',1,'']]],
-  ['maingosettings',['maingoSettings',['../structmaingo_1_1ubp_1_1_dag_obj.html#a4a939be99d5fff95ef5bd169d46fe205',1,'maingo::ubp::DagObj']]],
+  ['maingoreadsettings_2ecpp',['MAiNGOreadSettings.cpp',['../_m_ai_n_g_oread_settings_8cpp.html',1,'']]],
+  ['maingosetoption_2ecpp',['MAiNGOsetOption.cpp',['../_m_ai_n_g_oset_option_8cpp.html',1,'']]],
+  ['maingosettings',['maingoSettings',['../structmaingo_1_1ubp_1_1_dag_obj.html#a8bebd0e09ae8e79b0826bb93cba34ffa',1,'maingo::ubp::DagObj']]],
   ['maingotootherlanguage_2ecpp',['MAiNGOtoOtherLanguage.cpp',['../_m_ai_n_g_oto_other_language_8cpp.html',1,'']]],
-  ['maingowall_2ecpp',['MAiNGOWALL.cpp',['../_m_ai_n_g_o_w_a_l_l_8cpp.html',1,'']]],
   ['maingowritingfunctions_2ecpp',['MAiNGOwritingFunctions.cpp',['../_m_ai_n_g_owriting_functions_8cpp.html',1,'']]],
-  ['make_5flbp_5fsolver',['make_lbp_solver',['../namespacemaingo_1_1lbp.html#af2ff1a689d340482f4575c0507b4fa56',1,'maingo::lbp']]],
-  ['make_5fubp_5fsolver',['make_ubp_solver',['../namespacemaingo_1_1ubp.html#ac4a3034b115744514ad64d9c150713ea',1,'maingo::ubp']]],
+  ['make_5flbp_5fsolver',['make_lbp_solver',['../namespacemaingo_1_1lbp.html#aa50d84ff66f4ea911a333eb047a8b6ea',1,'maingo::lbp']]],
+  ['make_5fubp_5fsolver',['make_ubp_solver',['../namespacemaingo_1_1ubp.html#ab62ff87d8caba41740160a8d488b133d',1,'maingo::ubp']]],
   ['make_5fvariables',['make_variables',['../classmaingo_1_1_ale_model.html#aa779cdbfe41d12b35cf6b5fa7581782a',1,'maingo::AleModel']]],
-  ['manual_2eh',['manual.h',['../manual_8h.html',1,'']]],
+  ['manual_2edox',['manual.dox',['../manual_8dox.html',1,'']]],
   ['max',['max',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#abddc035b2216d9ea039ce7215ca76bc4',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['max_5fiterations',['MAX_ITERATIONS',['../namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a116bcdc14fb64222c56311ce39bcaa43',1,'babBase::enums']]],
   ['max_5fnodes',['MAX_NODES',['../namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a236554198ce651d6f716fdfe3e110d21',1,'babBase::enums']]],
@@ -53,8 +57,9 @@ var searchData=
   ['minlp',['MINLP',['../namespacemaingo.html#af7f79f3a80779720285a182fb0fd4eceae2416015e6faafb64141704d46b3336d',1,'maingo']]],
   ['mip',['MIP',['../namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea42d41aaf63d0c23502e376644eee9488',1,'maingo']]],
   ['miqp',['MIQP',['../namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea0bfa87ed0fa2108171fba8ee039617da',1,'maingo']]],
-  ['mobjective',['mObjective',['../structmaingo_1_1_program.html#a91830e99c06a7bd5c40a95a4038bae7b',1,'maingo::Program']]],
-  ['modelfunction',['modelFunction',['../structmaingo_1_1model_function.html',1,'maingo::modelFunction'],['../structmaingo_1_1model_function.html#a6c599ca9d697a04a892ec228b88b7b02',1,'maingo::modelFunction::modelFunction()'],['../structmaingo_1_1model_function.html#ac08320da20704d3bec91fb2540dfa12f',1,'maingo::modelFunction::modelFunction(const mc::FFVar var)'],['../structmaingo_1_1model_function.html#a43527d838950718179d9055ae7aeb96c',1,'maingo::modelFunction::modelFunction(const mc::FFVar var, const std::string &amp;str)']]],
+  ['mobjective',['mObjective',['../structmaingo_1_1_program.html#ac8bcb8f9940fb42b8818612b837a3cc3',1,'maingo::Program']]],
+  ['modelfunction',['ModelFunction',['../structmaingo_1_1_model_function.html',1,'maingo::ModelFunction'],['../structmaingo_1_1_model_function.html#a59519941d0bb502f58c197894c6a0d2a',1,'maingo::ModelFunction::ModelFunction()=default'],['../structmaingo_1_1_model_function.html#a6ac6b2b399d045f9a4178db4a4a4b212',1,'maingo::ModelFunction::ModelFunction(const ModelFunction &amp;)=default'],['../structmaingo_1_1_model_function.html#a51752162c6f7c51938623341c9d92f50',1,'maingo::ModelFunction::ModelFunction(ModelFunction &amp;&amp;)=default'],['../structmaingo_1_1_model_function.html#a2a99a82296b2b73f9375c1396d40d2b4',1,'maingo::ModelFunction::ModelFunction(const mc::FFVar var)'],['../structmaingo_1_1_model_function.html#a99dfad4b58342d3f6bf80813369f079e',1,'maingo::ModelFunction::ModelFunction(const mc::FFVar var, const std::string &amp;str)'],['../structmaingo_1_1_model_function.html#a643e6d2e6cb1a5d78eae384361be9d72',1,'maingo::ModelFunction::ModelFunction(const std::vector&lt; mc::FFVar &gt; &amp;vars)']]],
+  ['modelwritinglanguage',['modelWritingLanguage',['../structmaingo_1_1_settings.html#a5d637f32b3496797a5a327fba9b2589a',1,'maingo::Settings']]],
   ['mon_5fnone',['MON_NONE',['../namespacemaingo.html#ad9c47002281f89b9efdfaa30e672c556a3d1967d1d7970d402f5e5ab65b6506f3',1,'maingo']]],
   ['monom',['monom',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#af4ef04f795e24dc93ee86751d647b889',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['monotonicity',['monotonicity',['../structmaingo_1_1_constraint.html#a90ed0a8aa176f6311588abe5af0a2581',1,'maingo::Constraint']]],
diff --git a/doc/html/search/all_e.html b/doc/html/search/all_e.html
index f9a056dcd562cf840e91b94e8ef219afec2ad147..85b39bd48491ef5243d680fe5787216ba65dc2e0 100644
--- a/doc/html/search/all_e.html
+++ b/doc/html/search/all_e.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_e.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/all_e.js b/doc/html/search/all_e.js
index b063bf6223da61148a3c7af5abb2e503fb159408..9ed49e3a4870c6c81c9243eb342e1ce3c24125cc 100644
--- a/doc/html/search/all_e.js
+++ b/doc/html/search/all_e.js
@@ -1,11 +1,10 @@
 var searchData=
 [
-  ['name',['name',['../structmaingo_1_1_constraint.html#a1965d26e79a4537ff38947721b4761a3',1,'maingo::Constraint::name()'],['../structmaingo_1_1model_function.html#a602058ed28dc600017e666b82faf43b6',1,'maingo::modelFunction::name()']]],
+  ['name',['name',['../structmaingo_1_1_constraint.html#a1965d26e79a4537ff38947721b4761a3',1,'maingo::Constraint::name()'],['../structmaingo_1_1_model_function.html#acb85f5084123b7d4d42c2d0e03b3e7c6',1,'maingo::ModelFunction::name()']]],
   ['nasa9_5fhig',['nasa9_hig',['../function_wrapper_8h.html#ad3d1dc943fd39eef8ee229ae74b6d9f3',1,'nasa9_hig(const mc::FFVar &amp;T, const double T0, const double p1, const double p2, const double p3, const double p4, const double p5, const double p6, const double p7):&#160;functionWrapper.h'],['../function_wrapper_8h.html#ad44d270287c3d5c476ba3504e3e7fc84',1,'nasa9_hig(const mc::FFVar &amp;T, const double T0, const std::vector&lt; double &gt; p):&#160;functionWrapper.h']]],
   ['ne',['ne',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a28f4df31ca38d0899de9c5688ad20599',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['neg',['neg',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a674ef91ce7ee31d7d9f914d06ca30804',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['nlp',['NLP',['../namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea0d7b1cf896f4e2740742df1df01bd4e6',1,'maingo']]],
-  ['nlp_5flang',['NLP_LANG',['../namespacemaingo.html#a7fda513a30bb172152b96406e370299aabb1dae9f397b7c971de9be182a505616',1,'maingo']]],
   ['nnonzerohessian',['nnonZeroHessian',['../structmaingo_1_1ubp_1_1_ubp_structure.html#a68a011bb8bf1e4e94a413eec37035a27',1,'maingo::ubp::UbpStructure']]],
   ['nnonzerojac',['nnonZeroJac',['../structmaingo_1_1ubp_1_1_ubp_structure.html#aeab128be4235ec4091c98e8e777a74a6',1,'maingo::ubp::UbpStructure']]],
   ['no_5ffeasible_5fpoint_5ffound',['NO_FEASIBLE_POINT_FOUND',['../namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aa546bea660c686f2af0e496cf20782f4b',1,'maingo']]],
diff --git a/doc/html/search/all_f.html b/doc/html/search/all_f.html
index f6997fa5fb627f21fd2d76bffcceec17227ba410..89fa15a652a0ae4f91164779ea6d54d2c4e3e94b 100644
--- a/doc/html/search/all_f.html
+++ b/doc/html/search/all_f.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="all_f.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/all_f.js b/doc/html/search/all_f.js
index 5d687d8d66794c562be46aff858c0e7401287366..8fc3d3aca72fd0538297fd7bec286716555de7f6 100644
--- a/doc/html/search/all_f.js
+++ b/doc/html/search/all_f.js
@@ -1,37 +1,35 @@
 var searchData=
 [
+  ['obtaining_2c_20building_2c_20and_20executing_20maingo',['Obtaining, Building, and Executing MAiNGO',['../install.html',1,'index']]],
   ['obbt',['OBBT',['../namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8',1,'maingo::lbp']]],
   ['obbt_5ffeas',['OBBT_FEAS',['../namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8a739b073ddf68d60146dfb7b8f3b24c0c',1,'maingo::lbp']]],
   ['obbt_5ffeasopt',['OBBT_FEASOPT',['../namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8a207bbc0e97b4a6f7598b447f8b8c8b89',1,'maingo::lbp']]],
   ['obj',['OBJ',['../namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa19ac253da82c7f431e902e1be9cc236d',1,'maingo']]],
-  ['objective',['objective',['../structmaingo_1_1_evaluation_container.html#af0c40f10ae5192b4bb6478138c6ad1a0',1,'maingo::EvaluationContainer']]],
+  ['objective',['objective',['../structmaingo_1_1_evaluation_container.html#ac13bde03d078f5c9402cce551a161024',1,'maingo::EvaluationContainer']]],
   ['objrowfilled',['objRowFilled',['../structmaingo_1_1lbp_1_1_dag_obj.html#aafb406768277c0b3935a707000b0e2a5',1,'maingo::lbp::DagObj']]],
   ['op_3c_20maingo_3a_3aubp_3a_3aubpquadexpr_20_3e',['Op&lt; maingo::ubp::UbpQuadExpr &gt;',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html',1,'mc']]],
-  ['operator_20_2a',['operator *',['../namespacemaingo_1_1ubp.html#a5c67ac181e81a6949e8ecb8a870782e2',1,'maingo::ubp::operator *(const std::vector&lt; double &gt; &amp;in1, const double in2)'],['../namespacemaingo_1_1ubp.html#ad3cba31c2697ea5b09bacbd997c9f296',1,'maingo::ubp::operator *(const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;in1, const double in2)'],['../namespacemaingo_1_1ubp.html#ab613e54b12d7fb8a43156f91aa434402',1,'maingo::ubp::operator *(const UbpQuadExpr &amp;in1, const UbpQuadExpr &amp;in2)'],['../namespacemaingo_1_1ubp.html#a478444c21260358392dd33b31f713a9c',1,'maingo::ubp::operator *(const UbpQuadExpr &amp;in1, const double in2)'],['../namespacemaingo_1_1ubp.html#aac1334d57e5f2540b7bfa6cd37693205',1,'maingo::ubp::operator *(const UbpQuadExpr &amp;in1, const int in2)'],['../namespacemaingo_1_1ubp.html#ac90c68b5af595a7612a1149d2cc0c9b9',1,'maingo::ubp::operator *(const double in1, const UbpQuadExpr &amp;in2)'],['../namespacemaingo_1_1ubp.html#a0e92f83ac29ec3f83eeb2efe88f556c3',1,'maingo::ubp::operator *(const int in1, const UbpQuadExpr &amp;in2)']]],
-  ['operator_20_2a_3d',['operator *=',['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a0f9dba9a22cd1bad6d7920742a46785c',1,'maingo::ubp::UbpQuadExpr::operator *=(const UbpQuadExpr &amp;in)'],['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a192f82e999323888394268882f22e3f1',1,'maingo::ubp::UbpQuadExpr::operator *=(const double in)'],['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a664fcf4c3b9097e2c8ef0c3fd655b53d',1,'maingo::ubp::UbpQuadExpr::operator *=(const int in)']]],
   ['operator_20babnode_20_26_26',['operator BabNode &amp;&amp;',['../classbab_base_1_1_bab_node_with_info.html#aa21366a28ecacce7ee7cb231408f38b2',1,'babBase::BabNodeWithInfo']]],
   ['operator_20babnode_20const_20_26',['operator BabNode const &amp;',['../classbab_base_1_1_bab_node_with_info.html#ab64329ad707a6b9914be851b784dba50',1,'babBase::BabNodeWithInfo']]],
-  ['operator_20t_20_26',['operator T &amp;',['../classbab_base_1_1_out_var.html#a7442f2a80f303c64467428a80f3cb8b9',1,'babBase::OutVar']]],
+  ['operator_20t_20_26',['operator T &amp;',['../classbab_base_1_1_out_var.html#add7057afa563a0adeba7d7e77d717690',1,'babBase::OutVar']]],
+  ['operator_21_3d',['operator!=',['../namespacebab_base.html#a6d2be1c108f096eff60042aa02e3781e',1,'babBase']]],
   ['operator_28_29',['operator()',['../classmaingo_1_1_maingo_evaluator.html#a16353f72cbe6a6857f94eeb0a2a8ca2e',1,'maingo::MaingoEvaluator::operator()(constant_node&lt; real&lt; IDim &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#aebe214bf52d3d9054561dbd279ea630e',1,'maingo::MaingoEvaluator::operator()(constant_node&lt; real&lt; 0 &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#a1eb1cdd102a6fdbefefa99006bb14d98',1,'maingo::MaingoEvaluator::operator()(constant_node&lt; boolean&lt; 0 &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#a232490b0b1f7b0601343ec002fd461fb',1,'maingo::MaingoEvaluator::operator()(parameter_node&lt; real&lt; IDim &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#a632562f52010db675b32172ba9b8f9f8',1,'maingo::MaingoEvaluator::operator()(parameter_node&lt; real&lt; 0 &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#a8db905522b621724e056807193a361ed',1,'maingo::MaingoEvaluator::operator()(parameter_node&lt; boolean&lt; 0 &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#ae64d0f887011fb7b2f45f904b651212d',1,'maingo::MaingoEvaluator::operator()(parameter_symbol&lt; real&lt; IDim &gt;&gt; *sym)'],['../classmaingo_1_1_maingo_evaluator.html#a313d06a1b681bda32d1baaf73b4c1ae0',1,'maingo::MaingoEvaluator::operator()(parameter_symbol&lt; real&lt; 0 &gt;&gt; *sym)'],['../classmaingo_1_1_maingo_evaluator.html#a4f675a797c18eaf2fd523a4f559313d9',1,'maingo::MaingoEvaluator::operator()(variable_symbol&lt; real&lt; IDim &gt;&gt; *sym)'],['../classmaingo_1_1_maingo_evaluator.html#ad4281e7a946eb516f8e361be386226ad',1,'maingo::MaingoEvaluator::operator()(variable_symbol&lt; real&lt; 0 &gt;&gt; *sym)'],['../classmaingo_1_1_maingo_evaluator.html#ab699cabd08e37c8f90b253b8410f3e03',1,'maingo::MaingoEvaluator::operator()(expression_symbol&lt; real&lt; 0 &gt;&gt; *sym)'],['../classmaingo_1_1_maingo_evaluator.html#a1120421ca19b8fefd77ad0c67149ef5a',1,'maingo::MaingoEvaluator::operator()(expression_symbol&lt; boolean&lt; 0 &gt;&gt; *sym)'],['../classmaingo_1_1_maingo_evaluator.html#ac806eb4a69b3d31ee8930c575f9b5405',1,'maingo::MaingoEvaluator::operator()(entry_node&lt; real&lt; IDim &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#a0ba00f6e3f0c57560cc4385382f90041',1,'maingo::MaingoEvaluator::operator()(entry_node&lt; real&lt; 0 &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#a31bd4e5857f2eeb30cc919dfdda17bf8',1,'maingo::MaingoEvaluator::operator()(minus_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a2c93ca479683e45af6dc24953434cf05',1,'maingo::MaingoEvaluator::operator()(inverse_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a14d44b2a4bfbb0a7c8abe784707c03d8',1,'maingo::MaingoEvaluator::operator()(addition_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#aef325a790e281683bfe3e17160a07495',1,'maingo::MaingoEvaluator::operator()(sum_div_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a7529b1ae0a3303aaa6ccb92c6f67b08a',1,'maingo::MaingoEvaluator::operator()(xlog_sum_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a9a60a214575eb25ae40706df9577dfcd',1,'maingo::MaingoEvaluator::operator()(multiplication_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#aa7d7c8734d8a04afbad0c3dcccc0248c',1,'maingo::MaingoEvaluator::operator()(exponentiation_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a8ad6bd708e1a633daf74931f0f2b6b13',1,'maingo::MaingoEvaluator::operator()(min_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#ad02f330ab99494a3d3ede57d86626f5d',1,'maingo::MaingoEvaluator::operator()(max_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a9e5dbc374f5bd51ce3b4c7d00cdfa5f8',1,'maingo::MaingoEvaluator::operator()(set_min_node&lt; TType &gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#ac1d0e8fb250f926a2d2af2211de283d3',1,'maingo::MaingoEvaluator::operator()(set_max_node&lt; TType &gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#ac24478492893dbb5575bfae77ad2e3d6',1,'maingo::MaingoEvaluator::operator()(exp_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a741318a5ea6c313146b9370e5a77741f',1,'maingo::MaingoEvaluator::operator()(log_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a24dab2d1d77aebdf8732fb679ab20a6c',1,'maingo::MaingoEvaluator::operator()(sqrt_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#aa01d67f98a790198ae94253cdac6663d',1,'maingo::MaingoEvaluator::operator()(sin_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a6c4708474d08fcb76fd7dfce2a1a03cb',1,'maingo::MaingoEvaluator::operator()(asin_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#aaaf0982bff30d6d269a986aa1f8d5fd3',1,'maingo::MaingoEvaluator::operator()(cos_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a10b29d970cca4412cdf09ee3d38bbf3a',1,'maingo::MaingoEvaluator::operator()(acos_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a21b576ce22533cc7cd433a5110e7d3e5',1,'maingo::MaingoEvaluator::operator()(tan_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a1027a0674db3d2b20cb8b5a3e8175468',1,'maingo::MaingoEvaluator::operator()(atan_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a704a43ae1089dabde8ae3fedb4e7e91c',1,'maingo::MaingoEvaluator::operator()(lmtd_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a72f7201c2d261bd4a9848567bc15b82e',1,'maingo::MaingoEvaluator::operator()(xexpax_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#aa268019790af86f24dd20e117e53601d',1,'maingo::MaingoEvaluator::operator()(arh_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#acd5e6660b34c3fb57dc4e4a597cc3246',1,'maingo::MaingoEvaluator::operator()(lb_func_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#ae93e844c247f347914f8745238d9f12f',1,'maingo::MaingoEvaluator::operator()(ub_func_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a8580e54b758078f424368157c9998177',1,'maingo::MaingoEvaluator::operator()(bounding_func_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a0d18706b8c5403a359ae4fb3c4535dd8',1,'maingo::MaingoEvaluator::operator()(ale::squash_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a97099c993ba68c78fcda43917a89d6aa',1,'maingo::MaingoEvaluator::operator()(ale::af_lcb_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a1fd539de40d9a846e3bc1a8d7319cd3c',1,'maingo::MaingoEvaluator::operator()(ale::af_ei_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a11edbd2e3bfa2eb751ad55d0676630a6',1,'maingo::MaingoEvaluator::operator()(ale::af_pi_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a51dbeb4db4c48128191a4850893e54ec',1,'maingo::MaingoEvaluator::operator()(ale::regnormal_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a94eb83d21f8727c36807e91b786e7ed0',1,'maingo::MaingoEvaluator::operator()(nrtl_dtau_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a6fc97c4d18c62acaba6353636a277fcf',1,'maingo::MaingoEvaluator::operator()(ext_antoine_psat_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a77f9255d62b085460410be784cbc9029',1,'maingo::MaingoEvaluator::operator()(antoine_psat_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#aeed3a236612945d6ccc2918b4b200485',1,'maingo::MaingoEvaluator::operator()(wagner_psat_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a2a8d0c06f3f8c10c75f83fdfa4d5864f',1,'maingo::MaingoEvaluator::operator()(ik_cape_psat_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#ae707063e517fbc96144557e22a18c2bd',1,'maingo::MaingoEvaluator::operator()(aspen_hig_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#af8a35b9814e04b03b506911e89117630',1,'maingo::MaingoEvaluator::operator()(nasa9_hig_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a1d42b0997bcaebb756c432f50ab6d408',1,'maingo::MaingoEvaluator::operator()(dippr107_hig_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a6d55b4a02a1dfddc06cb0f394184063f',1,'maingo::MaingoEvaluator::operator()(dippr127_hig_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#ab6c947dfb36b02d479c6aa3e68a062bb',1,'maingo::MaingoEvaluator::operator()(antoine_tsat_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a4f5be3d4ae94197d759efb3cea878f66',1,'maingo::MaingoEvaluator::operator()(watson_dhvap_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#af3ca56408e5353f5034379f22e9c5f27',1,'maingo::MaingoEvaluator::operator()(dippr106_dhvap_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a6b720b79afa07ec215ff2ae7c8f6e37e',1,'maingo::MaingoEvaluator::operator()(cost_turton_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a1551aa4a7ce3f452f8635618a49a5266',1,'maingo::MaingoEvaluator::operator()(covar_matern_1_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a0dc466bd95d72232cac6ee6bf8728a2e',1,'maingo::MaingoEvaluator::operator()(covar_matern_3_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a4c67cfa8ca5bf2793ef3b81e37853427',1,'maingo::MaingoEvaluator::operator()(covar_matern_5_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a27403d7ebd0ba9c1c3763bd92bf76dd0',1,'maingo::MaingoEvaluator::operator()(covar_sqrexp_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#aa308ce0ebbd92b2d9a499c352248e54b',1,'maingo::MaingoEvaluator::operator()(gpdf_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#aa7a1e7a8b70cb171f020cb61e7ef007a',1,'maingo::MaingoEvaluator::operator()(nrtl_tau_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a031c984312a092292ba8e5faab96615f',1,'maingo::MaingoEvaluator::operator()(nrtl_g_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a2c96bb53c78b614fa21f09b34b06a240',1,'maingo::MaingoEvaluator::operator()(nrtl_gtau_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#ab5756cf7f7eaf69bc3aba7e98bf5cb2f',1,'maingo::MaingoEvaluator::operator()(nrtl_gdtau_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a1e9902a05a7ab138bcf8afbfe8f3b38c',1,'maingo::MaingoEvaluator::operator()(nrtl_dgtau_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#aa260a715d85bede7bf1358216a5612e5',1,'maingo::MaingoEvaluator::operator()(norm2_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#afeccf82551359ea4fd78e0421d5b0d9d',1,'maingo::MaingoEvaluator::operator()(abs_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a35b02acae9a26d0ce4582c6563bf4dcf',1,'maingo::MaingoEvaluator::operator()(xabsx_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a61a1564a2c7d7c6c2b35c310eaec9194',1,'maingo::MaingoEvaluator::operator()(xlogx_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a2dbaa9c47035a9150d8c442ea7e90b1b',1,'maingo::MaingoEvaluator::operator()(cosh_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a283892ea852d019132ca549048dc8ae9',1,'maingo::MaingoEvaluator::operator()(sinh_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#abc322bed0d4f468566f79debecc7ad6a',1,'maingo::MaingoEvaluator::operator()(tanh_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a163893d7e2595d48b90be04de44c7061',1,'maingo::MaingoEvaluator::operator()(coth_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a6517c3ebb6d059284d6ecaf7840d29ba',1,'maingo::MaingoEvaluator::operator()(acosh_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#ab341ee757f15b233e9e0f660c34db0da',1,'maingo::MaingoEvaluator::operator()(asinh_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a08711d8a2b9de11b55a06d1eb2f42878',1,'maingo::MaingoEvaluator::operator()(atanh_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a348178557f010db15a6eded737e23c89',1,'maingo::MaingoEvaluator::operator()(acoth_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#aebc25e0d2231b4302278caa9aab888c3',1,'maingo::MaingoEvaluator::operator()(erf_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a7673de1c345b61081ed47433f9b08af0',1,'maingo::MaingoEvaluator::operator()(erfc_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a714981c9af175ff13728dbaa38cf77f5',1,'maingo::MaingoEvaluator::operator()(pos_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a7b33a9063bc3277ebf7cbe26a40eed33',1,'maingo::MaingoEvaluator::operator()(neg_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#ae71759bc3c5007aa5c5c5b2ebea96fde',1,'maingo::MaingoEvaluator::operator()(rlmtd_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a6925f0560f9a7fe3420eae4b24bea451',1,'maingo::MaingoEvaluator::operator()(xexpy_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a6ef677783d508a5856fe2096fa5d8770',1,'maingo::MaingoEvaluator::operator()(schroeder_ethanol_p_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#ae6b3e2f4fa022cf02999b702886d31fc',1,'maingo::MaingoEvaluator::operator()(schroeder_ethanol_rhovap_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a0e56aaa973cca94ba40aaa36a46762c6',1,'maingo::MaingoEvaluator::operator()(schroeder_ethanol_rholiq_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#ac91a3285778e063fbfd98473222aeb1a',1,'maingo::MaingoEvaluator::operator()(mid_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#aedadd4c9d55f27225e84c41b5e34a8c8',1,'maingo::MaingoEvaluator::operator()(sum_node&lt; TType &gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#a258bac7136624bc05fc9aad23fcd2bae',1,'maingo::MaingoEvaluator::operator()(negation_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#ad498ec5587d1e19ebf6cf9984e46b7ce',1,'maingo::MaingoEvaluator::operator()(equal_node&lt; real&lt; 0 &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#a84a7e6ac759e75188dcd33fed310f627',1,'maingo::MaingoEvaluator::operator()(less_node&lt; real&lt; 0 &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#ac6be9f2eb4e5a95173b9990cf1d76ade',1,'maingo::MaingoEvaluator::operator()(less_equal_node&lt; real&lt; 0 &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#ac958f70dbd1204a83b603ea0fde2c3eb',1,'maingo::MaingoEvaluator::operator()(greater_node&lt; real&lt; 0 &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#aced0f321eb6c52625eaaf23ec1860c21',1,'maingo::MaingoEvaluator::operator()(greater_equal_node&lt; real&lt; 0 &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#a95861005344bd24f1d6fa640ff3f1705',1,'maingo::MaingoEvaluator::operator()(equal_node&lt; ale::index&lt; 0 &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#a51845deccf33ee00ecac24bfb23536cd',1,'maingo::MaingoEvaluator::operator()(less_node&lt; ale::index&lt; 0 &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#ac486f0a11622d88874ad9dbc32f7c199',1,'maingo::MaingoEvaluator::operator()(less_equal_node&lt; ale::index&lt; 0 &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#affaae2ae54803baa45024d31b05eec55',1,'maingo::MaingoEvaluator::operator()(greater_node&lt; ale::index&lt; 0 &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#aa85cfa020de772e6baefcd3f966531bb',1,'maingo::MaingoEvaluator::operator()(greater_equal_node&lt; ale::index&lt; 0 &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#a778b2f802db3ec8a15162c834f9cd24c',1,'maingo::MaingoEvaluator::operator()(disjunction_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a9744f02a6a480e828154bc92af6e5a89',1,'maingo::MaingoEvaluator::operator()(conjunction_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a49f0a248a70b10ca4b9024b211b65a88',1,'maingo::MaingoEvaluator::operator()(element_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#aa80cc4ed77e60745a289c4a7754d1aba',1,'maingo::MaingoEvaluator::operator()(forall_node&lt; TType &gt; *node)'],['../classmaingo_1_1_variable_lister.html#a388010bf972557bb263e804184fd68d8',1,'maingo::VariableLister::operator()(value_symbol&lt; TType &gt; *sym)'],['../classmaingo_1_1_variable_lister.html#af4841887f3cb320059cce7dcf1c1723e',1,'maingo::VariableLister::operator()(value_symbol&lt; real&lt; IDim &gt;&gt; *sym)'],['../classmaingo_1_1_variable_lister.html#aba8c441cff84cc626c64f7363389b349',1,'maingo::VariableLister::operator()(parameter_symbol&lt; real&lt; IDim &gt;&gt; *sym)'],['../classmaingo_1_1_variable_lister.html#a9da7e334ca36edf25d15913427238957',1,'maingo::VariableLister::operator()(expression_symbol&lt; real&lt; IDim &gt;&gt; *sym)'],['../classmaingo_1_1_variable_lister.html#a96e82077a5785647fbd87a9d918e4867',1,'maingo::VariableLister::operator()(variable_symbol&lt; real&lt; IDim &gt;&gt; *sym)'],['../classmaingo_1_1_variable_lister.html#a936ec1aaa564849fe32e22833c8d5fc0',1,'maingo::VariableLister::operator()(variable_symbol&lt; real&lt; 0 &gt;&gt; *sym)'],['../structbab_base_1_1_node_priority_comparator.html#a046f2155e1e85bd556686c212ff44506',1,'babBase::NodePriorityComparator::operator()()'],['../structbab_base_1_1_pruning_score_comparator.html#a32adb58b8c8c680fbb87c9837ecf88c9',1,'babBase::PruningScoreComparator::operator()()']]],
+  ['operator_2a',['operator*',['../namespacemaingo_1_1ubp.html#a63efcd0b2ad1996c20545e1481f0835a',1,'maingo::ubp::operator*(const std::vector&lt; double &gt; &amp;in1, const double in2)'],['../namespacemaingo_1_1ubp.html#aa896d2608e6152fd66b0ec6031a083ef',1,'maingo::ubp::operator*(const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;in1, const double in2)'],['../namespacemaingo_1_1ubp.html#a7731fb6c5c16ba843f8b36512c3f7f0c',1,'maingo::ubp::operator*(const UbpQuadExpr &amp;in1, const UbpQuadExpr &amp;in2)'],['../namespacemaingo_1_1ubp.html#aa3340e4491d298e5f1388853c9c183db',1,'maingo::ubp::operator*(const UbpQuadExpr &amp;in1, const double in2)'],['../namespacemaingo_1_1ubp.html#aac93aa0207fe1de9f3a73b4985f96343',1,'maingo::ubp::operator*(const UbpQuadExpr &amp;in1, const int in2)'],['../namespacemaingo_1_1ubp.html#a7d5d0a8e327941d11246bfdb428239e7',1,'maingo::ubp::operator*(const double in1, const UbpQuadExpr &amp;in2)'],['../namespacemaingo_1_1ubp.html#a4e5d8a29639dd84a703944c7489b0b84',1,'maingo::ubp::operator*(const int in1, const UbpQuadExpr &amp;in2)']]],
+  ['operator_2a_3d',['operator*=',['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a24790536a92c354b15430c00b0258c40',1,'maingo::ubp::UbpQuadExpr::operator*=(const UbpQuadExpr &amp;in)'],['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a791a3261856056f2303dd574eb3f6dd3',1,'maingo::ubp::UbpQuadExpr::operator*=(const double in)'],['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a4be525c49a8d761438570a34a09d6077',1,'maingo::ubp::UbpQuadExpr::operator*=(const int in)']]],
   ['operator_2b',['operator+',['../namespacemaingo_1_1ubp.html#a10c5d0d8fe3f2daa26131fe923cdd9bc',1,'maingo::ubp::operator+(const std::vector&lt; double &gt; &amp;in1, const std::vector&lt; double &gt; &amp;in2)'],['../namespacemaingo_1_1ubp.html#aa428e1d300a34bef5231c161b0e08597',1,'maingo::ubp::operator+(const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;in1, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;in2)'],['../namespacemaingo_1_1ubp.html#a34d96b5d5baa870bf3c50543044f17fa',1,'maingo::ubp::operator+(const UbpQuadExpr &amp;in)'],['../namespacemaingo_1_1ubp.html#a71bc9598739d457c38b6c8620fa70e6a',1,'maingo::ubp::operator+(const UbpQuadExpr &amp;in1, const UbpQuadExpr &amp;in2)'],['../namespacemaingo_1_1ubp.html#a5d61a1b0104c207a63c55da96bbe28bf',1,'maingo::ubp::operator+(const UbpQuadExpr &amp;in1, const double &amp;in2)'],['../namespacemaingo_1_1ubp.html#ad836c3ed6766c075161c027b5eca6e25',1,'maingo::ubp::operator+(const UbpQuadExpr &amp;in1, const int &amp;in2)'],['../namespacemaingo_1_1ubp.html#ad4f8e6ebfcd8fc7e3fc7e7b4926892ac',1,'maingo::ubp::operator+(const double &amp;in1, const UbpQuadExpr &amp;in2)'],['../namespacemaingo_1_1ubp.html#a8f178973e405455b0384fd128b3f1be7',1,'maingo::ubp::operator+(const int &amp;in1, const UbpQuadExpr &amp;in2)']]],
   ['operator_2b_3d',['operator+=',['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a1cd55371cff5dac0174d8d37ceba6c5d',1,'maingo::ubp::UbpQuadExpr::operator+=(const UbpQuadExpr &amp;in)'],['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a561bcf6912a9390cf05b7c8c5c0755a5',1,'maingo::ubp::UbpQuadExpr::operator+=(const double in)'],['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a7634e17e6d08c10571dbca448506e95e',1,'maingo::ubp::UbpQuadExpr::operator+=(const int in)']]],
   ['operator_2d',['operator-',['../namespacemaingo_1_1ubp.html#a7c723688f344053b4a3d7e0ba2e4c144',1,'maingo::ubp::operator-(const std::vector&lt; double &gt; &amp;in)'],['../namespacemaingo_1_1ubp.html#ae0d200ca4c3aa81516b03974aaa7e8b2',1,'maingo::ubp::operator-(const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;in)'],['../namespacemaingo_1_1ubp.html#aa60e9a98c38d0c5836692f82c46f7408',1,'maingo::ubp::operator-(const std::vector&lt; double &gt; &amp;in1, const std::vector&lt; double &gt; &amp;in2)'],['../namespacemaingo_1_1ubp.html#a742b207c46fd0870d53d6d13366e8ebc',1,'maingo::ubp::operator-(const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;in1, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;in2)'],['../namespacemaingo_1_1ubp.html#ac85543a4274998b12aca4e184764a4a1',1,'maingo::ubp::operator-(const UbpQuadExpr &amp;in)'],['../namespacemaingo_1_1ubp.html#ac33b3f1dcbbfc89678ddd9d83b12c33e',1,'maingo::ubp::operator-(const UbpQuadExpr &amp;in1, const UbpQuadExpr &amp;in2)'],['../namespacemaingo_1_1ubp.html#ac39deeba0da11c5b6460085c0d9e699c',1,'maingo::ubp::operator-(const UbpQuadExpr &amp;in1, const double &amp;in2)'],['../namespacemaingo_1_1ubp.html#aa6cf0d34878dfbcc39ede6d5e3911612',1,'maingo::ubp::operator-(const UbpQuadExpr &amp;in1, const int &amp;in2)'],['../namespacemaingo_1_1ubp.html#a32aa5e9142e01cdd969ed7bc97324a6f',1,'maingo::ubp::operator-(const double &amp;in1, const UbpQuadExpr &amp;in2)'],['../namespacemaingo_1_1ubp.html#ab9fceb07e4c759872241321cdd48e269',1,'maingo::ubp::operator-(const int &amp;in1, const UbpQuadExpr &amp;in2)']]],
   ['operator_2d_3d',['operator-=',['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#aec88997480bed8057176853cfd2c7aaf',1,'maingo::ubp::UbpQuadExpr::operator-=(const UbpQuadExpr &amp;in)'],['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a53ba87d0f920df7610866e1bcfe1ed5e',1,'maingo::ubp::UbpQuadExpr::operator-=(const double in)'],['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#ac3ad5400183945189193f674f876c774',1,'maingo::ubp::UbpQuadExpr::operator-=(const int in)']]],
   ['operator_2f',['operator/',['../namespacemaingo_1_1ubp.html#ad3f555c68f9b3ae1ad075e914317afd5',1,'maingo::ubp::operator/(const UbpQuadExpr &amp;in1, const UbpQuadExpr &amp;in2)'],['../namespacemaingo_1_1ubp.html#a1bdea6d9e43b0b3b4950db2888f59180',1,'maingo::ubp::operator/(const UbpQuadExpr &amp;in1, const double in2)'],['../namespacemaingo_1_1ubp.html#a5854670509a4af23a920acce4f19748c',1,'maingo::ubp::operator/(const UbpQuadExpr &amp;in1, const int in2)'],['../namespacemaingo_1_1ubp.html#ae7c5689bc8931b7ae4216f810dddb5d3',1,'maingo::ubp::operator/(const double in1, const UbpQuadExpr &amp;in2)'],['../namespacemaingo_1_1ubp.html#aefd918702d5ff67b444a1b5184a2ba78',1,'maingo::ubp::operator/(const int in1, const UbpQuadExpr &amp;in2)']]],
   ['operator_2f_3d',['operator/=',['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2e8b906b6e8ea5c22c4534e85cbbeac7',1,'maingo::ubp::UbpQuadExpr::operator/=(const UbpQuadExpr &amp;in)'],['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2a7ead5761ea56126a45479935588b06',1,'maingo::ubp::UbpQuadExpr::operator/=(const double in)'],['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#ae1b5456347b2bcb76260813e446c1ba9',1,'maingo::ubp::UbpQuadExpr::operator/=(const int in)']]],
-  ['operator_3c_3c',['operator&lt;&lt;',['../classbab_base_1_1_bab_node.html#a0af68006f01d42b3f593fe2a6709f407',1,'babBase::BabNode::operator&lt;&lt;()'],['../structbab_base_1_1_bounds.html#a674305fe2e7e8b2f777cb32a1b9c28f7',1,'babBase::Bounds::operator&lt;&lt;()'],['../classbab_base_1_1_optimization_variable.html#aeb17c4ac5c23141e9acc87c5b1453605',1,'babBase::OptimizationVariable::operator&lt;&lt;()'],['../namespacebab_base.html#a8bfa85e64a4cf9554eec367d08122be9',1,'babBase::operator&lt;&lt;()']]],
-  ['operator_3d',['operator=',['../structmaingo_1_1_constraint.html#a8dd2c5a8ca4f6978f6643b3212698852',1,'maingo::Constraint::operator=()'],['../structmaingo_1_1model_function.html#acfa12e44318f039d4dd7b62d6da21996',1,'maingo::modelFunction::operator=()'],['../classmaingo_1_1ubp_1_1_ipopt_problem.html#a0ab5a8e212575c185980cb7c6eed2ceb',1,'maingo::ubp::IpoptProblem::operator=()'],['../classmaingo_1_1ubp_1_1_knitro_problem.html#a62c8ad5120c5b5f4ca0df3773364077a',1,'maingo::ubp::KnitroProblem::operator=()'],['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7a7062b87f2074558f67c7cbbe397b58',1,'maingo::lbp::LowerBoundingSolver::operator=()'],['../classmaingo_1_1_logger.html#a82f7d5b5cb8e33d894f7e17e38d6dbcd',1,'maingo::Logger::operator=()'],['../classmaingo_1_1_m_ai_n_g_o.html#a9d035ded892ca2fd6a0151f6ea761d54',1,'maingo::MAiNGO::operator=()'],['../structmaingo_1_1_output_variable.html#a1187fff45ba11b8a8c98a117000893a8',1,'maingo::OutputVariable::operator=()'],['../structmaingo_1_1_settings.html#a5e9afadd1d866d01c96a114686b32672',1,'maingo::Settings::operator=()'],['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#afa9dca36d7987121ddc0327e62dfdcf2',1,'maingo::ubp::UpperBoundingSolver::operator=()'],['../classmaingo_1_1ubp_1_1_ubp_clp.html#a0f3faa3937a515be22cff1913eda1b06',1,'maingo::ubp::UbpClp::operator=()'],['../classmaingo_1_1ubp_1_1_ubp_cplex.html#a944ac3f482c2db599bd0c0cfdd76b868',1,'maingo::ubp::UbpCplex::operator=()'],['../classmaingo_1_1ubp_1_1_ubp_ipopt.html#ad12c30c11fb6ef915670ffd51bf5f860',1,'maingo::ubp::UbpIpopt::operator=()'],['../classmaingo_1_1ubp_1_1_ubp_knitro.html#ad05c1f048da57b4af99fd5cd8b7c2cdb',1,'maingo::ubp::UbpKnitro::operator=()'],['../classmaingo_1_1ubp_1_1_ubp_n_lopt.html#ac2fe06860e2c920acf0b7f8304a99d54',1,'maingo::ubp::UbpNLopt::operator=()'],['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#acce2c14abe3accaee53ea03f84c19734',1,'maingo::ubp::UbpQuadExpr::operator=(const double in)'],['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af72e66c0a04b6fa8d25d89351473abe4',1,'maingo::ubp::UbpQuadExpr::operator=(const int in)'],['../classbab_base_1_1_brancher.html#aa0aa0586d60d2e945161128325e4a462',1,'babBase::Brancher::operator=(Brancher &amp;)=default'],['../classbab_base_1_1_brancher.html#a70be52acd8e06764d607a1bf9eeb6660',1,'babBase::Brancher::operator=(Brancher &amp;&amp;)=default'],['../structbab_base_1_1_bounds.html#a415e0920d82d09ffc5798edb59e89093',1,'babBase::Bounds::operator=()'],['../classbab_base_1_1_optimization_variable.html#a51e6b16ace22f32f96a27af09358a695',1,'babBase::OptimizationVariable::operator=()'],['../classbab_base_1_1_bab_tree.html#a9da3ce58d47965be2f5c5f04ad2871d9',1,'babBase::BabTree::operator=(BabTree &amp;)=default'],['../classbab_base_1_1_bab_tree.html#a023025fa4f0f81187611785df898758e',1,'babBase::BabTree::operator=(BabTree &amp;&amp;)=default'],['../classbab_base_1_1_out_var.html#aced8949099673a72ab3b436272f114e6',1,'babBase::OutVar::operator=()']]],
-  ['operator_5b_5d',['operator[]',['../structmaingo_1_1model_function.html#a97f49921923957ca2170e5ab65959fbb',1,'maingo::modelFunction']]],
-  ['optimizationvariable',['OptimizationVariable',['../classbab_base_1_1_optimization_variable.html',1,'babBase::OptimizationVariable'],['../classbab_base_1_1_optimization_variable.html#a4d4a26193d51f99dc5982c86855998a9',1,'babBase::OptimizationVariable::OptimizationVariable(const Bounds &amp;variableBoundsIn, const enums::VT variableType, const unsigned branchingPriority, const std::string nameIn)'],['../classbab_base_1_1_optimization_variable.html#a4edfe0fa4db6c3f25da68d3d81f48c4d',1,'babBase::OptimizationVariable::OptimizationVariable(const Bounds &amp;variableBoundsIn, const enums::VT variableType, const unsigned branchingPriority)'],['../classbab_base_1_1_optimization_variable.html#aeb89a3476698252593c116992b887320',1,'babBase::OptimizationVariable::OptimizationVariable(const Bounds &amp;variableBoundsIn, const enums::VT variableType, const std::string nameIn)'],['../classbab_base_1_1_optimization_variable.html#ad14f10b3fbbfd01a61adac7114670fb4',1,'babBase::OptimizationVariable::OptimizationVariable(const Bounds &amp;variableBoundsIn, const unsigned branchingPriority, const std::string nameIn)'],['../classbab_base_1_1_optimization_variable.html#a65c124f424b4d2dcf0916bdc19fb055f',1,'babBase::OptimizationVariable::OptimizationVariable(const Bounds &amp;variableBoundsIn, const enums::VT variableType)'],['../classbab_base_1_1_optimization_variable.html#a0540b4fc9482daba6ed171e3fa50cccc',1,'babBase::OptimizationVariable::OptimizationVariable(const Bounds &amp;variableBoundsIn, const unsigned branchingPriority)'],['../classbab_base_1_1_optimization_variable.html#af172ca283de8b5159d998a5fe24ad697',1,'babBase::OptimizationVariable::OptimizationVariable(const Bounds &amp;variableBoundsIn, const std::string nameIn)'],['../classbab_base_1_1_optimization_variable.html#a70eb28c9c674d0bd7340266b04f23f1d',1,'babBase::OptimizationVariable::OptimizationVariable(const Bounds &amp;variableBoundsIn)'],['../classbab_base_1_1_optimization_variable.html#a2de71b2cc31ffb891c13a81c37f49596',1,'babBase::OptimizationVariable::OptimizationVariable(const enums::VT variableType, const unsigned branchingPriority, const std::string nameIn)'],['../classbab_base_1_1_optimization_variable.html#a0e7bb183fe70a0312b6efa4f90c96919',1,'babBase::OptimizationVariable::OptimizationVariable(const enums::VT variableType, const unsigned branchingPriority)'],['../classbab_base_1_1_optimization_variable.html#a79789dc4e3c9eca3ef6e4aaa9d1e30f8',1,'babBase::OptimizationVariable::OptimizationVariable(const enums::VT variableType, const std::string nameIn)'],['../classbab_base_1_1_optimization_variable.html#ab11172755c1f597f5409edb49a869189',1,'babBase::OptimizationVariable::OptimizationVariable(const unsigned branchingPriority, const std::string nameIn)'],['../classbab_base_1_1_optimization_variable.html#a2808b6549fa71332930783d874459461',1,'babBase::OptimizationVariable::OptimizationVariable(const enums::VT variableType)'],['../classbab_base_1_1_optimization_variable.html#ab27fdd3e7f17dc5864b5297d8d60896a',1,'babBase::OptimizationVariable::OptimizationVariable(const unsigned branchingPriority)'],['../classbab_base_1_1_optimization_variable.html#ac772e0bfa985c6ba946bd795b85399fa',1,'babBase::OptimizationVariable::OptimizationVariable(const std::string nameIn)'],['../classbab_base_1_1_optimization_variable.html#a38218ac69635c8134dd342d608315293',1,'babBase::OptimizationVariable::OptimizationVariable(const OptimizationVariable &amp;variableIn)'],['../namespacemaingo.html#adf4533c14585b7b44a5849066d6637cc',1,'maingo::OptimizationVariable()']]],
+  ['operator_3c_3c',['operator&lt;&lt;',['../classbab_base_1_1_bab_node.html#a0af68006f01d42b3f593fe2a6709f407',1,'babBase::BabNode::operator&lt;&lt;()'],['../classbab_base_1_1_optimization_variable.html#a14ab145b3997ff567e535665c30d5138',1,'babBase::OptimizationVariable::operator&lt;&lt;()'],['../namespacebab_base.html#ace0cd5136bac463b84cdd69b51be9f49',1,'babBase::operator&lt;&lt;(std::ostream &amp;os, const Bounds &amp;b)'],['../namespacebab_base.html#a8bfa85e64a4cf9554eec367d08122be9',1,'babBase::operator&lt;&lt;(std::ostream &amp;out, const BabNode &amp;node)']]],
+  ['operator_3d',['operator=',['../structmaingo_1_1_constraint.html#a8dd2c5a8ca4f6978f6643b3212698852',1,'maingo::Constraint::operator=()'],['../structmaingo_1_1_model_function.html#a2dad7f76d791717fc532cd4e1eab37b2',1,'maingo::ModelFunction::operator=(const ModelFunction &amp;)=default'],['../structmaingo_1_1_model_function.html#a1575a658d24ba107ff73f583e7c4eaca',1,'maingo::ModelFunction::operator=(ModelFunction &amp;&amp;)=default'],['../structmaingo_1_1_model_function.html#a93e188a00ecf49b5dc85f9a58ab7c9f7',1,'maingo::ModelFunction::operator=(const mc::FFVar var)'],['../classmaingo_1_1ubp_1_1_ipopt_problem.html#a0ab5a8e212575c185980cb7c6eed2ceb',1,'maingo::ubp::IpoptProblem::operator=()'],['../classmaingo_1_1ubp_1_1_knitro_problem.html#a62c8ad5120c5b5f4ca0df3773364077a',1,'maingo::ubp::KnitroProblem::operator=()'],['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7a7062b87f2074558f67c7cbbe397b58',1,'maingo::lbp::LowerBoundingSolver::operator=()'],['../classmaingo_1_1_logger.html#a82f7d5b5cb8e33d894f7e17e38d6dbcd',1,'maingo::Logger::operator=()'],['../classmaingo_1_1_m_ai_n_g_o.html#a9d035ded892ca2fd6a0151f6ea761d54',1,'maingo::MAiNGO::operator=()'],['../classmaingo_1_1_m_ai_n_g_o_exception.html#aa38305aacfa2e2ebce4c5067dee75df9',1,'maingo::MAiNGOException::operator=(const MAiNGOException &amp;)=default'],['../classmaingo_1_1_m_ai_n_g_o_exception.html#a781b7f59163bbc21dd5d3485f73f157a',1,'maingo::MAiNGOException::operator=(MAiNGOException &amp;&amp;)=default'],['../structmaingo_1_1_output_variable.html#ab80383105b9791c367311daf64618890',1,'maingo::OutputVariable::operator=(const OutputVariable &amp;variableIn)=default'],['../structmaingo_1_1_output_variable.html#ac513acc754eba158a496c3c4d2f4cc2b',1,'maingo::OutputVariable::operator=(OutputVariable &amp;&amp;variableIn)=default'],['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#afa9dca36d7987121ddc0327e62dfdcf2',1,'maingo::ubp::UpperBoundingSolver::operator=()'],['../classmaingo_1_1ubp_1_1_ubp_clp.html#a0f3faa3937a515be22cff1913eda1b06',1,'maingo::ubp::UbpClp::operator=()'],['../classmaingo_1_1ubp_1_1_ubp_cplex.html#a944ac3f482c2db599bd0c0cfdd76b868',1,'maingo::ubp::UbpCplex::operator=()'],['../classmaingo_1_1ubp_1_1_ubp_ipopt.html#ad12c30c11fb6ef915670ffd51bf5f860',1,'maingo::ubp::UbpIpopt::operator=()'],['../classmaingo_1_1ubp_1_1_ubp_knitro.html#ad05c1f048da57b4af99fd5cd8b7c2cdb',1,'maingo::ubp::UbpKnitro::operator=()'],['../classmaingo_1_1ubp_1_1_ubp_n_lopt.html#ac2fe06860e2c920acf0b7f8304a99d54',1,'maingo::ubp::UbpNLopt::operator=()'],['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#acce2c14abe3accaee53ea03f84c19734',1,'maingo::ubp::UbpQuadExpr::operator=(const double in)'],['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af72e66c0a04b6fa8d25d89351473abe4',1,'maingo::ubp::UbpQuadExpr::operator=(const int in)'],['../classbab_base_1_1_brancher.html#aa0aa0586d60d2e945161128325e4a462',1,'babBase::Brancher::operator=(Brancher &amp;)=default'],['../classbab_base_1_1_brancher.html#a70be52acd8e06764d607a1bf9eeb6660',1,'babBase::Brancher::operator=(Brancher &amp;&amp;)=default'],['../classbab_base_1_1_bab_tree.html#a9da3ce58d47965be2f5c5f04ad2871d9',1,'babBase::BabTree::operator=(BabTree &amp;)=default'],['../classbab_base_1_1_bab_tree.html#a023025fa4f0f81187611785df898758e',1,'babBase::BabTree::operator=(BabTree &amp;&amp;)=default'],['../classbab_base_1_1_out_var.html#aced8949099673a72ab3b436272f114e6',1,'babBase::OutVar::operator=()']]],
+  ['operator_3d_3d',['operator==',['../structmaingo_1_1_model_function.html#a2cd284c38a9f30f487ad0481fcfaa363',1,'maingo::ModelFunction::operator==()'],['../structmaingo_1_1_output_variable.html#a46108bea6aa824e9138db071db917035',1,'maingo::OutputVariable::operator==()'],['../namespacebab_base.html#aa4d99f78f3dad3b027ca3cf5f9cf4478',1,'babBase::operator==()']]],
+  ['operator_5b_5d',['operator[]',['../structmaingo_1_1_model_function.html#a28a2c95923dee0d58ca16ba62b02e10a',1,'maingo::ModelFunction']]],
+  ['optimizationvariable',['OptimizationVariable',['../classbab_base_1_1_optimization_variable.html',1,'babBase::OptimizationVariable'],['../classbab_base_1_1_optimization_variable.html#a4d4a26193d51f99dc5982c86855998a9',1,'babBase::OptimizationVariable::OptimizationVariable(const Bounds &amp;variableBoundsIn, const enums::VT variableType, const unsigned branchingPriority, const std::string nameIn)'],['../classbab_base_1_1_optimization_variable.html#a4edfe0fa4db6c3f25da68d3d81f48c4d',1,'babBase::OptimizationVariable::OptimizationVariable(const Bounds &amp;variableBoundsIn, const enums::VT variableType, const unsigned branchingPriority)'],['../classbab_base_1_1_optimization_variable.html#aeb89a3476698252593c116992b887320',1,'babBase::OptimizationVariable::OptimizationVariable(const Bounds &amp;variableBoundsIn, const enums::VT variableType, const std::string nameIn)'],['../classbab_base_1_1_optimization_variable.html#ad14f10b3fbbfd01a61adac7114670fb4',1,'babBase::OptimizationVariable::OptimizationVariable(const Bounds &amp;variableBoundsIn, const unsigned branchingPriority, const std::string nameIn)'],['../classbab_base_1_1_optimization_variable.html#a65c124f424b4d2dcf0916bdc19fb055f',1,'babBase::OptimizationVariable::OptimizationVariable(const Bounds &amp;variableBoundsIn, const enums::VT variableType)'],['../classbab_base_1_1_optimization_variable.html#a0540b4fc9482daba6ed171e3fa50cccc',1,'babBase::OptimizationVariable::OptimizationVariable(const Bounds &amp;variableBoundsIn, const unsigned branchingPriority)'],['../classbab_base_1_1_optimization_variable.html#af172ca283de8b5159d998a5fe24ad697',1,'babBase::OptimizationVariable::OptimizationVariable(const Bounds &amp;variableBoundsIn, const std::string nameIn)'],['../classbab_base_1_1_optimization_variable.html#a70eb28c9c674d0bd7340266b04f23f1d',1,'babBase::OptimizationVariable::OptimizationVariable(const Bounds &amp;variableBoundsIn)'],['../classbab_base_1_1_optimization_variable.html#ade910a2427a58d6bc025d8a3e2141283',1,'babBase::OptimizationVariable::OptimizationVariable(const enums::VT variableType, const unsigned branchingPriority, const std::string nameIn)'],['../classbab_base_1_1_optimization_variable.html#aacf17553e632e11f46ac1ff16a04e543',1,'babBase::OptimizationVariable::OptimizationVariable(const enums::VT variableType, const unsigned branchingPriority)'],['../classbab_base_1_1_optimization_variable.html#a3b4e892b107015b4f503a24ad9214e46',1,'babBase::OptimizationVariable::OptimizationVariable(const enums::VT variableType, const std::string nameIn)'],['../classbab_base_1_1_optimization_variable.html#a907f527439f197b391b10173a8cb763c',1,'babBase::OptimizationVariable::OptimizationVariable(const enums::VT variableType)'],['../classbab_base_1_1_optimization_variable.html#ab11172755c1f597f5409edb49a869189',1,'babBase::OptimizationVariable::OptimizationVariable(const unsigned branchingPriority, const std::string nameIn)'],['../classbab_base_1_1_optimization_variable.html#ab27fdd3e7f17dc5864b5297d8d60896a',1,'babBase::OptimizationVariable::OptimizationVariable(const unsigned branchingPriority)'],['../classbab_base_1_1_optimization_variable.html#ac772e0bfa985c6ba946bd795b85399fa',1,'babBase::OptimizationVariable::OptimizationVariable(const std::string nameIn)'],['../classbab_base_1_1_optimization_variable.html#acb8b4452071c493bfe746485f18654be',1,'babBase::OptimizationVariable::OptimizationVariable()'],['../namespacemaingo.html#adf4533c14585b7b44a5849066d6637cc',1,'maingo::OptimizationVariable()']]],
   ['out_5fpar',['out_par',['../namespacebab_base.html#a5366d466e365a73e1f3fc2800d64b776',1,'babBase']]],
   ['output',['output',['../structmaingo_1_1_evaluation_container.html#a86a57d19de362bd56b022103b14bd793',1,'maingo::EvaluationContainer::output()'],['../namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa58dc28c036216f9a14e602b625c1b500',1,'maingo::OUTPUT()']]],
-  ['outputvariable',['OutputVariable',['../structmaingo_1_1_output_variable.html',1,'maingo::OutputVariable'],['../structmaingo_1_1_output_variable.html#a5444c9dfb8eb89b4a2ddd679ff819322',1,'maingo::OutputVariable::OutputVariable(const std::string descIn, const mc::FFVar valueIn)'],['../structmaingo_1_1_output_variable.html#a4bbebaf4d5245bad6a7038087948b49c',1,'maingo::OutputVariable::OutputVariable(const mc::FFVar valueIn, const std::string descIn)'],['../structmaingo_1_1_output_variable.html#aa21e6b3349541ef65b14e8385e15c516',1,'maingo::OutputVariable::OutputVariable(const OutputVariable &amp;variableIn)']]],
+  ['outputvariable',['OutputVariable',['../structmaingo_1_1_output_variable.html',1,'maingo::OutputVariable'],['../structmaingo_1_1_output_variable.html#a5444c9dfb8eb89b4a2ddd679ff819322',1,'maingo::OutputVariable::OutputVariable(const std::string descIn, const mc::FFVar valueIn)'],['../structmaingo_1_1_output_variable.html#a4bbebaf4d5245bad6a7038087948b49c',1,'maingo::OutputVariable::OutputVariable(const mc::FFVar valueIn, const std::string descIn)'],['../structmaingo_1_1_output_variable.html#a9d13cfce0e3a1142c7f14d5b84d58028',1,'maingo::OutputVariable::OutputVariable(const std::tuple&lt; mc::FFVar, std::string &gt; inTuple)'],['../structmaingo_1_1_output_variable.html#af468c75f57d9d2debe8e3e3ecf8aa480',1,'maingo::OutputVariable::OutputVariable(const std::tuple&lt; std::string, mc::FFVar &gt; inTuple)'],['../structmaingo_1_1_output_variable.html#ab1e29a6ed63df8c8c92f500dac6b8187',1,'maingo::OutputVariable::OutputVariable(const OutputVariable &amp;variableIn)=default'],['../structmaingo_1_1_output_variable.html#a263debc4a6d2b559f48c5e359f59885a',1,'maingo::OutputVariable::OutputVariable(OutputVariable &amp;&amp;variableIn)=default']]],
   ['outputvariable_2eh',['outputVariable.h',['../output_variable_8h.html',1,'']]],
-  ['outstream_5fboth',['OUTSTREAM_BOTH',['../namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0a585dae7be6c02c38889b2be3e16fd2fb',1,'maingo']]],
-  ['outstream_5flog',['OUTSTREAM_LOG',['../namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0aeafd0b37169b3bd9330488dfff7713b7',1,'maingo']]],
-  ['outstream_5fnone',['OUTSTREAM_NONE',['../namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0a11b0a1dd952da50747424243c027c808',1,'maingo']]],
-  ['outstream_5foutstream',['OUTSTREAM_OUTSTREAM',['../namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0a52f5f76af1455b5ee7ad085be3dbb0ed',1,'maingo']]],
-  ['outstream_5fverb',['OUTSTREAM_VERB',['../namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0',1,'maingo']]],
-  ['outstreamverbosity',['outstreamVerbosity',['../structmaingo_1_1_settings.html#a63963398865197f332049e6a247bcb35',1,'maingo::Settings::outstreamVerbosity()'],['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a6717bbec3198ea15d4f818af79374f09',1,'maingo::OUTSTREAMVERBOSITY()']]],
+  ['outstreamverbosity',['OUTSTREAMVERBOSITY',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a6717bbec3198ea15d4f818af79374f09',1,'maingo']]],
   ['outvar',['OutVar',['../classbab_base_1_1_out_var.html',1,'babBase::OutVar&lt; T &gt;'],['../classbab_base_1_1_out_var.html#a81e7174faa0d0aa69a9e17fea6158a4a',1,'babBase::OutVar::OutVar(T &amp;ref) noexcept'],['../classbab_base_1_1_out_var.html#a31ed18d3d1831c15ebc166a6135a217f',1,'babBase::OutVar::OutVar(T &amp;&amp;)=delete'],['../classbab_base_1_1_out_var.html#a86b5336a40127a5a12fd4766986673b7',1,'babBase::OutVar::OutVar(const OutVar &amp;) noexcept=default']]]
 ];
diff --git a/doc/html/search/classes_0.html b/doc/html/search/classes_0.html
index b3c6ec6af3ec1e40d80c36e9f7d50dd88d134bb4..e935fdf727c8482dca1198756fa67bf898f2567a 100644
--- a/doc/html/search/classes_0.html
+++ b/doc/html/search/classes_0.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="classes_0.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/classes_1.html b/doc/html/search/classes_1.html
index b744c4d15f69fa15e3f1511126c32d9a81f83332..3df6e80acf590e44fa2fe9a3e20a5d654a6558b8 100644
--- a/doc/html/search/classes_1.html
+++ b/doc/html/search/classes_1.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="classes_1.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/classes_2.html b/doc/html/search/classes_2.html
index 7878acb4fe41360c48c8b30c8c85054bc391000f..028694ffaaf62591b98fee00f8b0cf21376f1c77 100644
--- a/doc/html/search/classes_2.html
+++ b/doc/html/search/classes_2.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="classes_2.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/classes_2.js b/doc/html/search/classes_2.js
index 31401c3c71a7ead446b99aadfecab8c877329c5f..fc4fab5ec42f5b55b0b82884960ca3aae94e0124 100644
--- a/doc/html/search/classes_2.js
+++ b/doc/html/search/classes_2.js
@@ -1,6 +1,5 @@
 var searchData=
 [
-  ['changedbounds',['ChangedBounds',['../structbab_base_1_1_optimization_variable_1_1_changed_bounds.html',1,'babBase::OptimizationVariable']]],
   ['constraint',['Constraint',['../structmaingo_1_1_constraint.html',1,'maingo']]],
   ['constraintcontainer',['ConstraintContainer',['../structmaingo_1_1_constraint_container.html',1,'maingo']]]
 ];
diff --git a/doc/html/search/classes_3.html b/doc/html/search/classes_3.html
index c231d86f0f6cd5e4366e76eed747acd1bd0968c6..2b1abe383a503bcd6aac86cdb063fed01a42ddc9 100644
--- a/doc/html/search/classes_3.html
+++ b/doc/html/search/classes_3.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="classes_3.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/classes_4.html b/doc/html/search/classes_4.html
index 86dd4384f5165303fe4f970722c0e83f8adc06ae..8735214942441ce30e71bbe850c578156497d3ff 100644
--- a/doc/html/search/classes_4.html
+++ b/doc/html/search/classes_4.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="classes_4.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/classes_5.html b/doc/html/search/classes_5.html
index 7aaef4df313c0b2a0b421889554dc4602cfc38b4..ba8b1c69bf17b9a8ebaa1c76a428cd24218c4996 100644
--- a/doc/html/search/classes_5.html
+++ b/doc/html/search/classes_5.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="classes_5.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/classes_6.html b/doc/html/search/classes_6.html
index aad7834e8619b502df5971dc9ebd9a00e8f28480..f5850938da763ba76f37558bef47a6fb7da1943b 100644
--- a/doc/html/search/classes_6.html
+++ b/doc/html/search/classes_6.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="classes_6.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/classes_7.html b/doc/html/search/classes_7.html
index 794e3948f2b8299c1be01e87d73a70927d4b846e..6418529c0346433000e470e8aa23ffc09c931e10 100644
--- a/doc/html/search/classes_7.html
+++ b/doc/html/search/classes_7.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="classes_7.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/classes_8.html b/doc/html/search/classes_8.html
index 1ba60c903b6c878c6ce7ed590fddd6cb341467e1..87af6f60170352541b0948294e1bfaf54aaf7c24 100644
--- a/doc/html/search/classes_8.html
+++ b/doc/html/search/classes_8.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="classes_8.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/classes_8.js b/doc/html/search/classes_8.js
index 2abe6d0a80fcffe852b0b27401c7257ebdab3088..af6197edfd3f6f9d175a084532f0db042629aeee 100644
--- a/doc/html/search/classes_8.js
+++ b/doc/html/search/classes_8.js
@@ -5,5 +5,5 @@ var searchData=
   ['maingoexception',['MAiNGOException',['../classmaingo_1_1_m_ai_n_g_o_exception.html',1,'maingo']]],
   ['maingomodel',['MAiNGOmodel',['../classmaingo_1_1_m_ai_n_g_omodel.html',1,'maingo']]],
   ['maingomodelepscon',['MAiNGOmodelEpsCon',['../classmaingo_1_1_m_ai_n_g_omodel_eps_con.html',1,'maingo']]],
-  ['modelfunction',['modelFunction',['../structmaingo_1_1model_function.html',1,'maingo']]]
+  ['modelfunction',['ModelFunction',['../structmaingo_1_1_model_function.html',1,'maingo']]]
 ];
diff --git a/doc/html/search/classes_9.html b/doc/html/search/classes_9.html
index 565e7d7a066a8c43ea34cf0362c05fe7db2b8914..f830ae04b4196f8e342d91e3934125739e5fb198 100644
--- a/doc/html/search/classes_9.html
+++ b/doc/html/search/classes_9.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="classes_9.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/classes_a.html b/doc/html/search/classes_a.html
index ca7479a3dde7daa4cf473b719bdec321676e997a..0fd3b7ac36cfca0a2b2359be5f669ae356caa102 100644
--- a/doc/html/search/classes_a.html
+++ b/doc/html/search/classes_a.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="classes_a.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/classes_b.html b/doc/html/search/classes_b.html
index ef84802062f0d5ebfaa719881fa956f4b04f683f..886abdfcd0969021536e4622d70c4ee5ba767bb3 100644
--- a/doc/html/search/classes_b.html
+++ b/doc/html/search/classes_b.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="classes_b.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/classes_b.js b/doc/html/search/classes_b.js
index cadef1ad2d2333bbd880895e0e4dc88320d1d03f..df0845aaa26f3d47d42750976be2bcea776524b4 100644
--- a/doc/html/search/classes_b.js
+++ b/doc/html/search/classes_b.js
@@ -2,5 +2,6 @@ var searchData=
 [
   ['program',['Program',['../structmaingo_1_1_program.html',1,'maingo']]],
   ['programparser',['ProgramParser',['../classmaingo_1_1_program_parser.html',1,'maingo']]],
-  ['pruningscorecomparator',['PruningScoreComparator',['../structbab_base_1_1_pruning_score_comparator.html',1,'babBase']]]
+  ['pruningscorecomparator',['PruningScoreComparator',['../structbab_base_1_1_pruning_score_comparator.html',1,'babBase']]],
+  ['pymaingomodel',['PyMAiNGOmodel',['../class_py_m_ai_n_g_omodel.html',1,'']]]
 ];
diff --git a/doc/html/search/classes_c.html b/doc/html/search/classes_c.html
index 052ea3c7932afa7aea2a0def1612b63a32a3b7ee..52ec2676348d33473a06c0d5ae858d4e92587743 100644
--- a/doc/html/search/classes_c.html
+++ b/doc/html/search/classes_c.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="classes_c.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/classes_d.html b/doc/html/search/classes_d.html
index de68b5ab8d67a176df3911fda1a608d72ef529bf..652508df3d7a3b7fa73c953196f8afa68ef0c590 100644
--- a/doc/html/search/classes_d.html
+++ b/doc/html/search/classes_d.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="classes_d.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/classes_e.html b/doc/html/search/classes_e.html
index 4ba8b8292d9714942c19f39260448cd26ab6ef9d..7d4e9a5631e2a3256c42d1ecc2f19a535ee366bf 100644
--- a/doc/html/search/classes_e.html
+++ b/doc/html/search/classes_e.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="classes_e.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/defines_0.html b/doc/html/search/defines_0.html
index dbe0642eff3be97707ab0e3903c755aec6fe424d..3bffafa9b8cb8ab9071ad7393bc3fe5b32c62b8d 100644
--- a/doc/html/search/defines_0.html
+++ b/doc/html/search/defines_0.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="defines_0.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/defines_1.html b/doc/html/search/defines_1.html
index 7af932407adcb176b0265c49b2720e10443eebd4..ca5bb94e30c517091d3f7a0dcc6ddc35bfa0f231 100644
--- a/doc/html/search/defines_1.html
+++ b/doc/html/search/defines_1.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="defines_1.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/defines_2.html b/doc/html/search/defines_2.html
index 462922115eb3ef6fc40cf8a8863c4b5296e12bba..7cc1a74c0a62a3b190626cd282b118011cf51a62 100644
--- a/doc/html/search/defines_2.html
+++ b/doc/html/search/defines_2.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="defines_2.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/enums_0.html b/doc/html/search/enums_0.html
index 7040a9c5d4fb5ceddb36cd9022dbfa8ec16f77ae..9efcd1b75eced1e7d81228d53d64d48bc1fa4891 100644
--- a/doc/html/search/enums_0.html
+++ b/doc/html/search/enums_0.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="enums_0.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/enums_0.js b/doc/html/search/enums_0.js
index 46b06c15ab41915ed015ee161e8f79b1bf1c3c4b..189e8b31d296c486a6c9807c5a3b3bd0befaca53 100644
--- a/doc/html/search/enums_0.js
+++ b/doc/html/search/enums_0.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['_5ftermination_5ftype',['_TERMINATION_TYPE',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1',1,'maingo::bab::BranchAndBound::_TERMINATION_TYPE()'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1',1,'maingo::bab::BranchAndBound::_TERMINATION_TYPE()']]]
+  ['_5ftermination_5ftype',['_TERMINATION_TYPE',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1',1,'maingo::bab::BranchAndBound']]]
 ];
diff --git a/doc/html/search/enums_1.html b/doc/html/search/enums_1.html
index 0c65c0e09cceaf7e0394d4190c90b6503fb3cf3f..0edd7796ee966ca1b557f31e1e7108ff6885c3bf 100644
--- a/doc/html/search/enums_1.html
+++ b/doc/html/search/enums_1.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="enums_1.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/enums_2.html b/doc/html/search/enums_2.html
index 4250446db5ba072e11b8fc874a26eccd842f266a..2b851b64e124ed7459759b0b19ff9ebbc2ac9524 100644
--- a/doc/html/search/enums_2.html
+++ b/doc/html/search/enums_2.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="enums_2.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/enums_3.html b/doc/html/search/enums_3.html
index b118cca0ca8d43a577f208b8f692b54415ab6e64..b29d31c26d1dc4dbc2e5f412eb59d7f7480a144f 100644
--- a/doc/html/search/enums_3.html
+++ b/doc/html/search/enums_3.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="enums_3.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/enums_3.js b/doc/html/search/enums_3.js
index f805e1d49ea3ca28253f2a11a5cb46597615aef1..4980762981f7c65867f957e21f77eccd89be3d42 100644
--- a/doc/html/search/enums_3.js
+++ b/doc/html/search/enums_3.js
@@ -3,5 +3,6 @@ var searchData=
   ['lbp_5fsolver',['LBP_SOLVER',['../namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4be',1,'maingo::lbp']]],
   ['linearization_5fretcode',['LINEARIZATION_RETCODE',['../namespacemaingo_1_1lbp.html#a1f86fef63c4930e5c519b2ca288d824e',1,'maingo::lbp']]],
   ['linp',['LINP',['../namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2',1,'maingo::lbp']]],
+  ['logging_5fdestination',['LOGGING_DESTINATION',['../namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4',1,'maingo']]],
   ['lp_5fretcode',['LP_RETCODE',['../namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90',1,'maingo::lbp']]]
 ];
diff --git a/doc/html/search/enums_4.html b/doc/html/search/enums_4.html
index 2795d4b145fc3f463c31bdeb51e7bc65426647a4..ad9ec5e9f6504471b5b91d20fb4e5f1fddb7ddf3 100644
--- a/doc/html/search/enums_4.html
+++ b/doc/html/search/enums_4.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="enums_4.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/enums_5.html b/doc/html/search/enums_5.html
index ab40bbd19225aa26154c1a10a53e5f4035e43f3e..3b863957322177a0fb7a069c96f0871c16fc237c 100644
--- a/doc/html/search/enums_5.html
+++ b/doc/html/search/enums_5.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="enums_5.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/enums_5.js b/doc/html/search/enums_5.js
index 37ee4a3358d71b5d5d7d8e5950e0a08e9b09222a..81f72d5ca4a52f9d78201f5af93a47188aaf4d04 100644
--- a/doc/html/search/enums_5.js
+++ b/doc/html/search/enums_5.js
@@ -1,5 +1,4 @@
 var searchData=
 [
-  ['obbt',['OBBT',['../namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8',1,'maingo::lbp']]],
-  ['outstream_5fverb',['OUTSTREAM_VERB',['../namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0',1,'maingo']]]
+  ['obbt',['OBBT',['../namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8',1,'maingo::lbp']]]
 ];
diff --git a/doc/html/search/enums_6.html b/doc/html/search/enums_6.html
index f32ac36818c77164763174b29bc7184b2ec876ff..acd7a54247411d0f7c0cc953b6af8980c353a91d 100644
--- a/doc/html/search/enums_6.html
+++ b/doc/html/search/enums_6.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="enums_6.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/enums_6.js b/doc/html/search/enums_6.js
index 17211005381d77fa093e3a8145f7a0e72137d649..5809064f0cdc42a8526eea10ae3f3d681de2d27e 100644
--- a/doc/html/search/enums_6.js
+++ b/doc/html/search/enums_6.js
@@ -1,5 +1,4 @@
 var searchData=
 [
-  ['parsing_5flanguage',['PARSING_LANGUAGE',['../namespacemaingo.html#a7fda513a30bb172152b96406e370299a',1,'maingo']]],
   ['problem_5fstructure',['PROBLEM_STRUCTURE',['../namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ece',1,'maingo']]]
 ];
diff --git a/doc/html/search/enums_7.html b/doc/html/search/enums_7.html
index 7a25d5903661e8d0110b79df279308df1a5af3ea..ee24b455c1e8bde7bb68a4259a63ef34e1ddcb73 100644
--- a/doc/html/search/enums_7.html
+++ b/doc/html/search/enums_7.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="enums_7.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/enums_8.html b/doc/html/search/enums_8.html
index 03c3de22e2a1c163ff790f65ba0cf3d09824833a..c6b4d24a689d8b104a57370e6f5eb7d7db0cfc03 100644
--- a/doc/html/search/enums_8.html
+++ b/doc/html/search/enums_8.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="enums_8.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/enums_9.html b/doc/html/search/enums_9.html
index 41e9d0d1f0021414a488cc0bcaf4d59d5feb013b..c7438683be30100692cfa9e3bacdf4a1897ef8ca 100644
--- a/doc/html/search/enums_9.html
+++ b/doc/html/search/enums_9.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="enums_9.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/enums_a.html b/doc/html/search/enums_a.html
index d701fcb192f86e79cfd27c7c1f5ebb818421f09f..58694efdad25accdd1a0a107fb5e91631f2de435 100644
--- a/doc/html/search/enums_a.html
+++ b/doc/html/search/enums_a.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="enums_a.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/enums_b.html b/doc/html/search/enums_b.html
index b4d016509dcba5765b41067d3193e7be01cf50cf..738b359c1c0f945b3a6e5b4bcfe1d4d0f82886f6 100644
--- a/doc/html/search/enums_b.html
+++ b/doc/html/search/enums_b.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="enums_b.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/enums_c.html b/doc/html/search/enums_c.html
new file mode 100644
index 0000000000000000000000000000000000000000..593438a2c5c7e7a86342dc9a8f20893f8372cf1e
--- /dev/null
+++ b/doc/html/search/enums_c.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enums_c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/enums_c.js b/doc/html/search/enums_c.js
new file mode 100644
index 0000000000000000000000000000000000000000..ed3b67b7fa4c16f1dface26aded4ae99397ab376
--- /dev/null
+++ b/doc/html/search/enums_c.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['writing_5flanguage',['WRITING_LANGUAGE',['../namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39a',1,'maingo']]]
+];
diff --git a/doc/html/search/enumvalues_0.html b/doc/html/search/enumvalues_0.html
index 78895c79bcc01a4e9fe240c48404b93ac3b3682f..03fdfad99d2f2077fb5f48e4fac1e1c04c9e83bf 100644
--- a/doc/html/search/enumvalues_0.html
+++ b/doc/html/search/enumvalues_0.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="enumvalues_0.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/enumvalues_0.js b/doc/html/search/enumvalues_0.js
index 57289cf2bba532ce782cd9f844604cee5b82acd1..aa6c97f3423cc0dbceb39a13c5526b8c2ad80b63 100644
--- a/doc/html/search/enumvalues_0.js
+++ b/doc/html/search/enumvalues_0.js
@@ -1,6 +1,6 @@
 var searchData=
 [
-  ['_5fnot_5fterminated',['_NOT_TERMINATED',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a244a114749491f6b442fd2563fefbc5e',1,'maingo::bab::BranchAndBound']]],
-  ['_5fterminated',['_TERMINATED',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ac0b46b223d15cc2e3851dcaf961b9e7a',1,'maingo::bab::BranchAndBound']]],
-  ['_5fterminated_5fworkers_5factive',['_TERMINATED_WORKERS_ACTIVE',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1ab77e9f73c90db0ea95610d8103738966',1,'maingo::bab::BranchAndBound']]]
+  ['_5fnot_5fterminated',['_NOT_TERMINATED',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a4606d4d76cdd55c82480e7e28a65d67a',1,'maingo::bab::BranchAndBound']]],
+  ['_5fterminated',['_TERMINATED',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a1a904c0cb2e9786677bfd0c13951dec7',1,'maingo::bab::BranchAndBound']]],
+  ['_5fterminated_5fworkers_5factive',['_TERMINATED_WORKERS_ACTIVE',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a07ba7b9ae290bc913f2d2ca19c7c49e1a803a5e6c3589e7407f7993fff57c30dd',1,'maingo::bab::BranchAndBound']]]
 ];
diff --git a/doc/html/search/enumvalues_1.html b/doc/html/search/enumvalues_1.html
index 9b02a4b38104448e28de657d40629271b59c0454..abeea5641819b67b65af8d418a8b420285bd0a5d 100644
--- a/doc/html/search/enumvalues_1.html
+++ b/doc/html/search/enumvalues_1.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="enumvalues_1.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/enumvalues_1.js b/doc/html/search/enumvalues_1.js
index 705d2913e8034572fa9f57de8991207e907789bc..3798cfa1db6490a0f43dfbde4bd2654f73d2847f 100644
--- a/doc/html/search/enumvalues_1.js
+++ b/doc/html/search/enumvalues_1.js
@@ -1,6 +1,4 @@
 var searchData=
 [
-  ['ale',['ALE',['../namespacemaingo.html#a7fda513a30bb172152b96406e370299aa8476f2061be97a547db8d42808fa4369',1,'maingo']]],
-  ['ampl',['AMPL',['../namespacemaingo.html#a7fda513a30bb172152b96406e370299aa6005851459ecd1476b128baad46d46e6',1,'maingo']]],
   ['aux_5feq_5frel_5fonly',['AUX_EQ_REL_ONLY',['../namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa3f418251b7df4d1f7abae45ec2c7120e',1,'maingo']]]
 ];
diff --git a/doc/html/search/enumvalues_10.html b/doc/html/search/enumvalues_10.html
index bf46a654fbb77729f1c7bdd7e8cfd090e9f06908..f6a557e8b36518b8a624264fe2d0885d71dc3709 100644
--- a/doc/html/search/enumvalues_10.html
+++ b/doc/html/search/enumvalues_10.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="enumvalues_10.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/enumvalues_11.html b/doc/html/search/enumvalues_11.html
index 276341c97d1553b8394410ff06236ea462998d72..12dad5fcc4526a1b10f2d949b875df22334125ae 100644
--- a/doc/html/search/enumvalues_11.html
+++ b/doc/html/search/enumvalues_11.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="enumvalues_11.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/enumvalues_11.js b/doc/html/search/enumvalues_11.js
index 2e90d8ed78d03e1caae1d1e7529e999c523f280a..a42b9a1ce1262ccde7325bc11a5f8470e98ce15f 100644
--- a/doc/html/search/enumvalues_11.js
+++ b/doc/html/search/enumvalues_11.js
@@ -1,16 +1,5 @@
 var searchData=
 [
-  ['solver_5fbobyqa',['SOLVER_BOBYQA',['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da54ed347065f9c65c37a71a3cb4db7451',1,'maingo::ubp']]],
-  ['solver_5fclp',['SOLVER_CLP',['../namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea0a3210e4f9065f1ead5177bfdfbc27d1',1,'maingo::lbp::SOLVER_CLP()'],['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da995e3c0356133ed4320ffa4111536e10',1,'maingo::ubp::SOLVER_CLP()']]],
-  ['solver_5fcobyla',['SOLVER_COBYLA',['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac5701f2847e960c47f46914beac6a128',1,'maingo::ubp']]],
-  ['solver_5fcplex',['SOLVER_CPLEX',['../namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea7461c27f75e0601f39252dd553b686e6',1,'maingo::lbp::SOLVER_CPLEX()'],['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da64db5861bc8d36e7cb00978e72af8408',1,'maingo::ubp::SOLVER_CPLEX()']]],
-  ['solver_5feval',['SOLVER_EVAL',['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac9dd69c054981d95b5633af8eada06b7',1,'maingo::ubp']]],
-  ['solver_5finterval',['SOLVER_INTERVAL',['../namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4beabbf2c359f240461a8859bea8b628179d',1,'maingo::lbp']]],
-  ['solver_5fipopt',['SOLVER_IPOPT',['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac449153333e544edc3b78977ab02ea20',1,'maingo::ubp']]],
-  ['solver_5fknitro',['SOLVER_KNITRO',['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da6cc859f77befbec62acf36cb2ef82683',1,'maingo::ubp']]],
-  ['solver_5flbfgs',['SOLVER_LBFGS',['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da816c98ce5f16248a60f78e76bc534823',1,'maingo::ubp']]],
-  ['solver_5fmaingo',['SOLVER_MAiNGO',['../namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4beab21ba68ca9d31ece2a6ac8006b39027e',1,'maingo::lbp']]],
-  ['solver_5fslsqp',['SOLVER_SLSQP',['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da24b4fd10f12919d2825cb493c71d3cf8',1,'maingo::ubp']]],
   ['subsolver_5ffeasible',['SUBSOLVER_FEASIBLE',['../namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020a86709a3b1272bcb98c34b5965aadc7ef',1,'maingo']]],
   ['subsolver_5finfeasible',['SUBSOLVER_INFEASIBLE',['../namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020ac3bc5625b59fcd46e85cb8b0b29170e7',1,'maingo']]]
 ];
diff --git a/doc/html/search/enumvalues_12.html b/doc/html/search/enumvalues_12.html
index 884a369a8d6013d0179888ff508745a067f0c6c4..e0464c6864a7fec49ea344765dda000cf77c79e7 100644
--- a/doc/html/search/enumvalues_12.html
+++ b/doc/html/search/enumvalues_12.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="enumvalues_12.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/enumvalues_13.html b/doc/html/search/enumvalues_13.html
index f96f0969d2b2137b58e8904ea262fba3713f22d7..38f0e6c21a64d1a7e70d838e1cdf0645e46d29f9 100644
--- a/doc/html/search/enumvalues_13.html
+++ b/doc/html/search/enumvalues_13.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="enumvalues_13.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/enumvalues_13.js b/doc/html/search/enumvalues_13.js
index 3ae2655b7be4b6c166f2cebac3735583975641d9..db86b7ca4aed755a113d5763dd408b4f729cffc5 100644
--- a/doc/html/search/enumvalues_13.js
+++ b/doc/html/search/enumvalues_13.js
@@ -5,6 +5,15 @@ var searchData=
   ['ubp_5fmaxstepspre',['UBP_MAXSTEPSPRE',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a17042c71f65219621bd0df75e80122f4',1,'maingo']]],
   ['ubp_5fmaxtimebab',['UBP_MAXTIMEBAB',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a8694b1f3b18e7fc861df9d94b5aced1e',1,'maingo']]],
   ['ubp_5fmaxtimepre',['UBP_MAXTIMEPRE',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a60152ee26df4e219f935ef6dd5a10e43',1,'maingo']]],
+  ['ubp_5fsolver_5fbobyqa',['UBP_SOLVER_BOBYQA',['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da16910a5ab42fd9bcd71489c0f07d7791',1,'maingo::ubp']]],
+  ['ubp_5fsolver_5fclp',['UBP_SOLVER_CLP',['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dab4e7e171165eb64a246e2e7b7e2ea352',1,'maingo::ubp']]],
+  ['ubp_5fsolver_5fcobyla',['UBP_SOLVER_COBYLA',['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9daaff3b4a7dfedf2a8f66396d01c4e1645',1,'maingo::ubp']]],
+  ['ubp_5fsolver_5fcplex',['UBP_SOLVER_CPLEX',['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da9537df8ae6b66b2b07f2a31d7258c98f',1,'maingo::ubp']]],
+  ['ubp_5fsolver_5feval',['UBP_SOLVER_EVAL',['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da15b7028091e5f95408a2a26e643cb972',1,'maingo::ubp']]],
+  ['ubp_5fsolver_5fipopt',['UBP_SOLVER_IPOPT',['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da3d2c4a7fd42fd747fe825ec8f0b1a1ad',1,'maingo::ubp']]],
+  ['ubp_5fsolver_5fknitro',['UBP_SOLVER_KNITRO',['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da019153052e3b77622e3f2a7f0ce339e8',1,'maingo::ubp']]],
+  ['ubp_5fsolver_5flbfgs',['UBP_SOLVER_LBFGS',['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac4da4292c1a20fb6a199fc7b540bc2d3',1,'maingo::ubp']]],
+  ['ubp_5fsolver_5fslsqp',['UBP_SOLVER_SLSQP',['../namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da5e8733223dd08864a8d5effbb341992a',1,'maingo::ubp']]],
   ['ubp_5fsolverbab',['UBP_SOLVERBAB',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a6d522f8c5fdacf5e00e987fc6f49727a',1,'maingo']]],
   ['ubp_5fsolverpre',['UBP_SOLVERPRE',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a0df2d001081c4bd3b1d9c1cb9101d648',1,'maingo']]],
   ['ubp_5fverbosity',['UBP_VERBOSITY',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a8cdec043d63c92ac7a4aaf7be4598f62',1,'maingo']]],
diff --git a/doc/html/search/enumvalues_14.html b/doc/html/search/enumvalues_14.html
index eb962baea229f6ab7f9e1d84157c2edfdf5e371d..5e1a6eec8b53a641d600f1d0f9987807f3b72662 100644
--- a/doc/html/search/enumvalues_14.html
+++ b/doc/html/search/enumvalues_14.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="enumvalues_14.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/enumvalues_15.html b/doc/html/search/enumvalues_15.html
index dad266317f9291fa9a8701d43aeafa95da8106be..a92e5199f5b39de7833b2bacc1d81736197ce544 100644
--- a/doc/html/search/enumvalues_15.html
+++ b/doc/html/search/enumvalues_15.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="enumvalues_15.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/enumvalues_15.js b/doc/html/search/enumvalues_15.js
index 271bcc9619e7e817190d96149a800154e69a6fae..65c27bd9bb5ef25c644e069cbfe05bfac8628aff 100644
--- a/doc/html/search/enumvalues_15.js
+++ b/doc/html/search/enumvalues_15.js
@@ -5,8 +5,7 @@ var searchData=
   ['wasnotbranched',['wasNotBranched',['../structbab_base_1_1_branching_history_info.html#a0692c234f3dd6f32552a5c04519fb489a65bddc0563e821bec242c776bac8e1da',1,'babBase::BranchingHistoryInfo']]],
   ['writecsv',['WRITECSV',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5b17de1dc9ac64cce8a5bacab3dc8f5c',1,'maingo']]],
   ['writejson',['WRITEJSON',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a20e6a32ee584c3187610f95ea83e1354',1,'maingo']]],
-  ['writelog',['WRITELOG',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a67dd1fb20241b26b7ac93714b8b0aae1',1,'maingo']]],
-  ['writeresfile',['WRITERESFILE',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ad208395baa4232a0d2e525d3ae4246cc',1,'maingo']]],
+  ['writeresultfile',['writeResultFile',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a7e60bfc3f9fd67b15a9f9f78d9512d69',1,'maingo']]],
   ['writetologsec',['WRITETOLOGSEC',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aaed1ec51d45446a3609dff1a0551116d',1,'maingo']]],
   ['writetootherlanguage',['WRITETOOTHERLANGUAGE',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a70b90d0f834b991c2bdba8a75d240769',1,'maingo']]]
 ];
diff --git a/doc/html/search/enumvalues_2.html b/doc/html/search/enumvalues_2.html
index 2482854d90f89d188b5ac3aca70d436f06b3ad70..90289986a1cc03e8577495fa5c6d86d7e24d9087 100644
--- a/doc/html/search/enumvalues_2.html
+++ b/doc/html/search/enumvalues_2.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="enumvalues_2.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/enumvalues_2.js b/doc/html/search/enumvalues_2.js
index 62348b21a3f3c6e26d7538c29ab71f99b53d72b7..f1329cbe7078ef85b54e2874ab26fe591e5da6c7 100644
--- a/doc/html/search/enumvalues_2.js
+++ b/doc/html/search/enumvalues_2.js
@@ -11,7 +11,6 @@ var searchData=
   ['bab_5fprintfreq',['BAB_PRINTFREQ',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a59bd95b4e1b3948bf713750d91992bb6',1,'maingo']]],
   ['bab_5fprobing',['BAB_PROBING',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aff3c4437dc0be83ba5de7ed23ce39018',1,'maingo']]],
   ['bab_5fverbosity',['BAB_VERBOSITY',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aabadb050f3c17bb4bf6ec8d949e9b036',1,'maingo']]],
-  ['baron',['BARON',['../namespacemaingo.html#a7fda513a30bb172152b96406e370299aa6b23681db7db1db0a27cb2007620056e',1,'maingo']]],
   ['bilinear',['BILINEAR',['../namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592aaee4ec0f6a2b7adb51f538e7b9c1cf5a',1,'maingo']]],
   ['bound_5ftargets',['BOUND_TARGETS',['../namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aaf98d82cf90c120cbada0db438cba6518',1,'maingo']]],
   ['bv_5fabsdiam',['BV_ABSDIAM',['../namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81aa13a34cdb88ece361804590b6418371f',1,'babBase::enums']]],
diff --git a/doc/html/search/enumvalues_3.html b/doc/html/search/enumvalues_3.html
index e6124b947134393ab6d55da6525eb26d5a0a1565..b152efcb570fe50fd070d17b149740a9b48686ad 100644
--- a/doc/html/search/enumvalues_3.html
+++ b/doc/html/search/enumvalues_3.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="enumvalues_3.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/enumvalues_4.html b/doc/html/search/enumvalues_4.html
index 8d234cfc19134e47ce876d89476f84f5c7f71533..3f50abb8be9e8f22f8d17a98f6ea2cb59ee74f6d 100644
--- a/doc/html/search/enumvalues_4.html
+++ b/doc/html/search/enumvalues_4.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="enumvalues_4.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/enumvalues_5.html b/doc/html/search/enumvalues_5.html
index d16ee24bef66bed24af352e488a79f5ab760fd36..b6f20f2922e7321d73045ef0c961d510fb131924 100644
--- a/doc/html/search/enumvalues_5.html
+++ b/doc/html/search/enumvalues_5.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="enumvalues_5.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/enumvalues_6.html b/doc/html/search/enumvalues_6.html
index c39f086580c8fa6721087c2da53c8051d50043c9..93be12950884e5bd04e1472c12b65e558856b5a9 100644
--- a/doc/html/search/enumvalues_6.html
+++ b/doc/html/search/enumvalues_6.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="enumvalues_6.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/enumvalues_7.html b/doc/html/search/enumvalues_7.html
index f75419fec08a9e2eaba2fa73fcf3d850b521b07b..9fefbd651de69b33faaaa5c3e592ac3c7ecc0ca2 100644
--- a/doc/html/search/enumvalues_7.html
+++ b/doc/html/search/enumvalues_7.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="enumvalues_7.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/enumvalues_7.js b/doc/html/search/enumvalues_7.js
index 65a314a6af42289f115486465f0931ee9834be7e..b7152619f92111e781b45f1ca03316f301da2d6b 100644
--- a/doc/html/search/enumvalues_7.js
+++ b/doc/html/search/enumvalues_7.js
@@ -1,6 +1,5 @@
 var searchData=
 [
-  ['gams',['GAMS',['../namespacemaingo.html#a7fda513a30bb172152b96406e370299aa14773b3cb5be6b7a031e2648f1edb27a',1,'maingo']]],
   ['global_5fmin_5fnode_5fsize',['GLOBAL_MIN_NODE_SIZE',['../namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2aa7172d473042d0a9008897a8831ee7df',1,'babBase::enums']]],
   ['globally_5foptimal',['GLOBALLY_OPTIMAL',['../namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aab0c34908a36a1229a2d2fb1038ead0cd',1,'maingo::GLOBALLY_OPTIMAL()'],['../namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2aeda7ce29d59dc3b2f91a477578cc211d',1,'babBase::enums::GLOBALLY_OPTIMAL()']]]
 ];
diff --git a/doc/html/search/enumvalues_8.html b/doc/html/search/enumvalues_8.html
index 96b5b73e79153c96fbd58421868dc6697b17c3c6..03f17f8659825a00bd3f27950be010ea8493c924 100644
--- a/doc/html/search/enumvalues_8.html
+++ b/doc/html/search/enumvalues_8.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="enumvalues_8.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/enumvalues_9.html b/doc/html/search/enumvalues_9.html
index 2e532f48f34ddd8cf056da1fc571ca355c6561ee..e60fe2726df72905927a27295d9ab9cae5e94526 100644
--- a/doc/html/search/enumvalues_9.html
+++ b/doc/html/search/enumvalues_9.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="enumvalues_9.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/enumvalues_a.html b/doc/html/search/enumvalues_a.html
index 848615891ebb8f2e9d203fa14653a070cdcc8be6..1ec3a2a87a4ec56d8b4e281685fbcf26c9856b81 100644
--- a/doc/html/search/enumvalues_a.html
+++ b/doc/html/search/enumvalues_a.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="enumvalues_a.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/enumvalues_a.js b/doc/html/search/enumvalues_a.js
index f7e51968426afe25520d70475d3a1b3bdee0a688..1dde911c4499b447e31ba652605b78978f721ada 100644
--- a/doc/html/search/enumvalues_a.js
+++ b/doc/html/search/enumvalues_a.js
@@ -1,6 +1,8 @@
 var searchData=
 [
-  ['lang_5fnone',['LANG_NONE',['../namespacemaingo.html#a7fda513a30bb172152b96406e370299aacd2ad11121ce71554943363ac99cd0c8',1,'maingo']]],
+  ['lang_5fale',['LANG_ALE',['../namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39aa1b0686f8505e989428b2edbc77249953',1,'maingo']]],
+  ['lang_5fgams',['LANG_GAMS',['../namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39aa8baf6445b690d1592e58cf697ced3bfe',1,'maingo']]],
+  ['lang_5fnone',['LANG_NONE',['../namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39aacd2ad11121ce71554943363ac99cd0c8',1,'maingo']]],
   ['lbp_5factivatemorescaling',['LBP_ACTIVATEMORESCALING',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a89f8c3fb4d69e351baae115325a9e67f',1,'maingo']]],
   ['lbp_5faddauxiliaryvars',['LBP_ADDAUXILIARYVARS',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a6c9981b7a50dafa4510ae5a161f715cd',1,'maingo']]],
   ['lbp_5flinpoints',['LBP_LINPOINTS',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a3137a2b2e76434c605b08fb9ceb63f91',1,'maingo']]],
@@ -8,6 +10,10 @@ var searchData=
   ['lbp_5fminfactorsforaux',['LBP_MINFACTORSFORAUX',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6aa871804ddb83a6d0f59637e3ff59c790',1,'maingo']]],
   ['lbp_5fobbtminimprovement',['LBP_OBBTMINIMPROVEMENT',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ae7c7534e21e3333500fa3f6a834587c8',1,'maingo']]],
   ['lbp_5fsolver',['LBP_SOLVER',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a71bd48756db5177b75b58c18c293de76',1,'maingo']]],
+  ['lbp_5fsolver_5fclp',['LBP_SOLVER_CLP',['../namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea9c0bfb2a028e4a3ab6011619009d62d9',1,'maingo::lbp']]],
+  ['lbp_5fsolver_5fcplex',['LBP_SOLVER_CPLEX',['../namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea016b6bae02feefafd679a8d57149aff5',1,'maingo::lbp']]],
+  ['lbp_5fsolver_5finterval',['LBP_SOLVER_INTERVAL',['../namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4beafc7bfbfe657af2fff8e3800860388f89',1,'maingo::lbp']]],
+  ['lbp_5fsolver_5fmaingo',['LBP_SOLVER_MAiNGO',['../namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea32fa8aaeff8ed8f41d95ce72acc04ce1',1,'maingo::lbp']]],
   ['lbp_5fsubgradientintervals',['LBP_SUBGRADIENTINTERVALS',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a09a491a6e7f617cd50a7060c552cce4e',1,'maingo']]],
   ['lbp_5fverbosity',['LBP_VERBOSITY',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6afce3b85b57cf0619c91b21fc7f85d25f',1,'maingo']]],
   ['linear',['LINEAR',['../namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592a548bd51fa74da094234483596a6b0933',1,'maingo']]],
@@ -20,6 +26,10 @@ var searchData=
   ['linp_5fmid',['LINP_MID',['../namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a5c70e54dadb090b3234669343d814e3a',1,'maingo::lbp']]],
   ['linp_5frandom',['LINP_RANDOM',['../namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a6e05ea1a421a5bfe21ff3044b03a0b18',1,'maingo::lbp']]],
   ['linp_5fsimplex',['LINP_SIMPLEX',['../namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2af60eacc8183e3e5080cb19d89f15c598',1,'maingo::lbp']]],
+  ['logging_5ffile',['LOGGING_FILE',['../namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4a335b5d0a5d8ddae15c4f4dc56ff437c1',1,'maingo']]],
+  ['logging_5ffile_5fand_5fstream',['LOGGING_FILE_AND_STREAM',['../namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4aaeb2ef5d2157419a5fe03924e9fbb714',1,'maingo']]],
+  ['logging_5fnone',['LOGGING_NONE',['../namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4a5ba5670261ac104d957be08824b10fda',1,'maingo']]],
+  ['logging_5foutstream',['LOGGING_OUTSTREAM',['../namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4afb969130cbbe60ea7ede72325e349fbe',1,'maingo']]],
   ['lp',['LP',['../namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea6ef20a631ab5ecf8ea394e3fac0da92b',1,'maingo']]],
   ['lp_5finfeasible',['LP_INFEASIBLE',['../namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90afd0d8d28a60075d7c218ac487f16edb8',1,'maingo::lbp']]],
   ['lp_5foptimal',['LP_OPTIMAL',['../namespacemaingo_1_1lbp.html#a4e2b70fda6e64add2c6ad1a9c4a42c90aade235ddb528425c3feab4d25c3bb7fe',1,'maingo::lbp']]],
diff --git a/doc/html/search/enumvalues_b.html b/doc/html/search/enumvalues_b.html
index 3ac456a6efee7c4fbf3cf8b20214091aa71e9117..bfc2bf3f48b5cd8e6d04795d46f697b870a8074a 100644
--- a/doc/html/search/enumvalues_b.html
+++ b/doc/html/search/enumvalues_b.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="enumvalues_b.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/enumvalues_c.html b/doc/html/search/enumvalues_c.html
index 0f797453313b96be8e8a56d90b46a223f3b6fa43..36070b87e8eb15351ba8cba64d7d891dcda40b46 100644
--- a/doc/html/search/enumvalues_c.html
+++ b/doc/html/search/enumvalues_c.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="enumvalues_c.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/enumvalues_c.js b/doc/html/search/enumvalues_c.js
index bc2823b995a9174e788eb48edecc50e877794fd8..13ab6bc7241d6c63c3e222bdc8d3fc8670009a34 100644
--- a/doc/html/search/enumvalues_c.js
+++ b/doc/html/search/enumvalues_c.js
@@ -1,7 +1,6 @@
 var searchData=
 [
   ['nlp',['NLP',['../namespacemaingo.html#af7f79f3a80779720285a182fb0fd4ecea0d7b1cf896f4e2740742df1df01bd4e6',1,'maingo']]],
-  ['nlp_5flang',['NLP_LANG',['../namespacemaingo.html#a7fda513a30bb172152b96406e370299aabb1dae9f397b7c971de9be182a505616',1,'maingo']]],
   ['no_5ffeasible_5fpoint_5ffound',['NO_FEASIBLE_POINT_FOUND',['../namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aa546bea660c686f2af0e496cf20782f4b',1,'maingo']]],
   ['nonlinear',['NONLINEAR',['../namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592ae5fc3c0c5d379b66525987200d425036',1,'maingo']]],
   ['not_5fsolved_5fyet',['NOT_SOLVED_YET',['../namespacemaingo.html#ae85bf383216b1907f0021c60fa20621aa2a167aa4d367dd77f9d996cb8e720fe7',1,'maingo::NOT_SOLVED_YET()'],['../namespacebab_base_1_1enums.html#a2c4d021a83d3363ae57623c7376761d2a60a3c1228978b153df4b58c224793750',1,'babBase::enums::NOT_SOLVED_YET()']]],
diff --git a/doc/html/search/enumvalues_d.html b/doc/html/search/enumvalues_d.html
index ea3e08f022d9a2d2ff3e5fb8baebd7572710c766..e15d8c99230929159c214ef7634e126d94cf4b72 100644
--- a/doc/html/search/enumvalues_d.html
+++ b/doc/html/search/enumvalues_d.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="enumvalues_d.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/enumvalues_d.js b/doc/html/search/enumvalues_d.js
index 4b0a10bb17f6401630a3a8838b1b076f5a733802..147e12d48b4609e010e25bb756ad7d7df5805155 100644
--- a/doc/html/search/enumvalues_d.js
+++ b/doc/html/search/enumvalues_d.js
@@ -4,9 +4,5 @@ var searchData=
   ['obbt_5ffeasopt',['OBBT_FEASOPT',['../namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8a207bbc0e97b4a6f7598b447f8b8c8b89',1,'maingo::lbp']]],
   ['obj',['OBJ',['../namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa19ac253da82c7f431e902e1be9cc236d',1,'maingo']]],
   ['output',['OUTPUT',['../namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa58dc28c036216f9a14e602b625c1b500',1,'maingo']]],
-  ['outstream_5fboth',['OUTSTREAM_BOTH',['../namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0a585dae7be6c02c38889b2be3e16fd2fb',1,'maingo']]],
-  ['outstream_5flog',['OUTSTREAM_LOG',['../namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0aeafd0b37169b3bd9330488dfff7713b7',1,'maingo']]],
-  ['outstream_5fnone',['OUTSTREAM_NONE',['../namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0a11b0a1dd952da50747424243c027c808',1,'maingo']]],
-  ['outstream_5foutstream',['OUTSTREAM_OUTSTREAM',['../namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0a52f5f76af1455b5ee7ad085be3dbb0ed',1,'maingo']]],
   ['outstreamverbosity',['OUTSTREAMVERBOSITY',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a6717bbec3198ea15d4f818af79374f09',1,'maingo']]]
 ];
diff --git a/doc/html/search/enumvalues_e.html b/doc/html/search/enumvalues_e.html
index fcadce69e01c3f80c1628ad5779798b3a6a924d7..1b3e388be7ad159db226409c2bb5f8300f659ed8 100644
--- a/doc/html/search/enumvalues_e.html
+++ b/doc/html/search/enumvalues_e.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="enumvalues_e.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/enumvalues_e.js b/doc/html/search/enumvalues_e.js
index b5a8c6cec81642abb2f85b194ec57d61b399ae9d..4613066fc6d25d520b9c83890720905936f065f9 100644
--- a/doc/html/search/enumvalues_e.js
+++ b/doc/html/search/enumvalues_e.js
@@ -4,6 +4,5 @@ var searchData=
   ['pre_5fmaxlocalsearches',['PRE_MAXLOCALSEARCHES',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6af81a6ea821fd200739e5e21c88f5ce20',1,'maingo']]],
   ['pre_5fobbtmaxrounds',['PRE_OBBTMAXROUNDS',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6acaa3429ee948f690dc11c72c2df7bd26',1,'maingo']]],
   ['pre_5fprinteverylocalsearch',['PRE_PRINTEVERYLOCALSEARCH',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6a5c772c254a5883d4c978284aa125c432',1,'maingo']]],
-  ['pre_5fpuremultistart',['PRE_PUREMULTISTART',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ae4d7bcb01c294a5428bbea31972573ec',1,'maingo']]],
-  ['pyomo',['PYOMO',['../namespacemaingo.html#a7fda513a30bb172152b96406e370299aad139485466768f0cb2bc590af41f84fe',1,'maingo']]]
+  ['pre_5fpuremultistart',['PRE_PUREMULTISTART',['../namespacemaingo.html#a630ee8293fceda07f0cb639d0cf78cf6ae4d7bcb01c294a5428bbea31972573ec',1,'maingo']]]
 ];
diff --git a/doc/html/search/enumvalues_f.html b/doc/html/search/enumvalues_f.html
index 73c9882c1003635298f867f2f909d47bd93f660e..eb1f3db3ae5fffb08be2973024f7f059eca8cf0f 100644
--- a/doc/html/search/enumvalues_f.html
+++ b/doc/html/search/enumvalues_f.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="enumvalues_f.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/files_0.html b/doc/html/search/files_0.html
index 40cd4554390821f622e682e89088a9114a4b22dc..49606c82c6577ecbab51d6f5095d3cceb78e5349 100644
--- a/doc/html/search/files_0.html
+++ b/doc/html/search/files_0.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="files_0.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/files_0.js b/doc/html/search/files_0.js
index 80ccc73b299e419b82db8d831dfe0f1eefccd7f0..ead46c9502fbd6a092005c07c755dd633ffb7db0 100644
--- a/doc/html/search/files_0.js
+++ b/doc/html/search/files_0.js
@@ -1,5 +1,5 @@
 var searchData=
 [
-  ['alemodel_2ecpp',['aleModel.cpp',['../ale_model_8cpp.html',1,'']]],
-  ['alemodel_2eh',['aleModel.h',['../ale_model_8h.html',1,'']]]
+  ['_5f_5finit_5f_5f_2epy',['__init__.py',['../____init_____8py.html',1,'']]],
+  ['_5fpymaingo_2ecpp',['_pymaingo.cpp',['../__pymaingo_8cpp.html',1,'']]]
 ];
diff --git a/doc/html/search/files_1.html b/doc/html/search/files_1.html
index 646d1f4cc552e09bc89f57073aa189ea1b7bc75b..c8871748e236331c35c130388bbcce0cbfbc07a0 100644
--- a/doc/html/search/files_1.html
+++ b/doc/html/search/files_1.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="files_1.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/files_1.js b/doc/html/search/files_1.js
index 7c20a06c69289c26e37f8b8f98437fdb84031689..80ccc73b299e419b82db8d831dfe0f1eefccd7f0 100644
--- a/doc/html/search/files_1.js
+++ b/doc/html/search/files_1.js
@@ -1,17 +1,5 @@
 var searchData=
 [
-  ['bab_2ecpp',['bab.cpp',['../bab_8cpp.html',1,'']]],
-  ['bab_2eh',['bab.h',['../bab_8h.html',1,'']]],
-  ['babbrancher_2ecpp',['babBrancher.cpp',['../bab_brancher_8cpp.html',1,'']]],
-  ['babbrancher_2eh',['babBrancher.h',['../bab_brancher_8h.html',1,'']]],
-  ['babexception_2eh',['babException.h',['../bab_exception_8h.html',1,'']]],
-  ['babmpi_2ecpp',['babMpi.cpp',['../bab_mpi_8cpp.html',1,'']]],
-  ['babnode_2eh',['babNode.h',['../bab_node_8h.html',1,'']]],
-  ['baboptvar_2ecpp',['babOptVar.cpp',['../bab_opt_var_8cpp.html',1,'']]],
-  ['baboptvar_2eh',['babOptVar.h',['../bab_opt_var_8h.html',1,'']]],
-  ['babtree_2ecpp',['babTree.cpp',['../bab_tree_8cpp.html',1,'']]],
-  ['babtree_2eh',['babTree.h',['../bab_tree_8h.html',1,'']]],
-  ['babutils_2eh',['babUtils.h',['../bab_utils_8h.html',1,'']]],
-  ['babwall_2ecpp',['babWALL.cpp',['../bab_w_a_l_l_8cpp.html',1,'']]],
-  ['babwall_2eh',['babWALL.h',['../bab_w_a_l_l_8h.html',1,'']]]
+  ['alemodel_2ecpp',['aleModel.cpp',['../ale_model_8cpp.html',1,'']]],
+  ['alemodel_2eh',['aleModel.h',['../ale_model_8h.html',1,'']]]
 ];
diff --git a/doc/html/search/files_10.html b/doc/html/search/files_10.html
new file mode 100644
index 0000000000000000000000000000000000000000..0ffd7bf01ad064f2b55f7cceb4d0097551cfeb70
--- /dev/null
+++ b/doc/html/search/files_10.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_10.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/files_10.js b/doc/html/search/files_10.js
new file mode 100644
index 0000000000000000000000000000000000000000..2b1bedcbd0169406f346979c10dc1dbf4e871def
--- /dev/null
+++ b/doc/html/search/files_10.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['variablelister_2eh',['variableLister.h',['../variable_lister_8h.html',1,'']]]
+];
diff --git a/doc/html/search/files_2.html b/doc/html/search/files_2.html
index 9e47a77a27e23ac42a40071e4836287f0f9cdc69..99bdf21c8c2f1f1169d62ae4a356525ab3a27720 100644
--- a/doc/html/search/files_2.html
+++ b/doc/html/search/files_2.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="files_2.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/files_2.js b/doc/html/search/files_2.js
index 214ed4acd63ac5e503a9513910a6f3487c62d7fb..86c1f21b22db065486ae6a6a43d5d0e8725b4109 100644
--- a/doc/html/search/files_2.js
+++ b/doc/html/search/files_2.js
@@ -1,4 +1,16 @@
 var searchData=
 [
-  ['constraint_2eh',['constraint.h',['../constraint_8h.html',1,'']]]
+  ['bab_2ecpp',['bab.cpp',['../bab_8cpp.html',1,'']]],
+  ['bab_2eh',['bab.h',['../bab_8h.html',1,'']]],
+  ['babbounds_2eh',['babBounds.h',['../bab_bounds_8h.html',1,'']]],
+  ['babbrancher_2ecpp',['babBrancher.cpp',['../bab_brancher_8cpp.html',1,'']]],
+  ['babbrancher_2eh',['babBrancher.h',['../bab_brancher_8h.html',1,'']]],
+  ['babexception_2eh',['babException.h',['../bab_exception_8h.html',1,'']]],
+  ['babmpi_2ecpp',['babMpi.cpp',['../bab_mpi_8cpp.html',1,'']]],
+  ['babnode_2eh',['babNode.h',['../bab_node_8h.html',1,'']]],
+  ['baboptvar_2ecpp',['babOptVar.cpp',['../bab_opt_var_8cpp.html',1,'']]],
+  ['baboptvar_2eh',['babOptVar.h',['../bab_opt_var_8h.html',1,'']]],
+  ['babtree_2ecpp',['babTree.cpp',['../bab_tree_8cpp.html',1,'']]],
+  ['babtree_2eh',['babTree.h',['../bab_tree_8h.html',1,'']]],
+  ['babutils_2eh',['babUtils.h',['../bab_utils_8h.html',1,'']]]
 ];
diff --git a/doc/html/search/files_3.html b/doc/html/search/files_3.html
index 167679b4dfaa1670fb20aa23a6ef2674d07ac967..f8e543a84bbde6e333722641b22fae0f1652766a 100644
--- a/doc/html/search/files_3.html
+++ b/doc/html/search/files_3.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="files_3.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/files_3.js b/doc/html/search/files_3.js
index cb8772fcd46720f7d50f68bba2d04a1ab53e68e8..214ed4acd63ac5e503a9513910a6f3487c62d7fb 100644
--- a/doc/html/search/files_3.js
+++ b/doc/html/search/files_3.js
@@ -1,5 +1,4 @@
 var searchData=
 [
-  ['evaluationcontainer_2eh',['evaluationContainer.h',['../evaluation_container_8h.html',1,'']]],
-  ['exceptions_2eh',['exceptions.h',['../exceptions_8h.html',1,'']]]
+  ['constraint_2eh',['constraint.h',['../constraint_8h.html',1,'']]]
 ];
diff --git a/doc/html/search/files_4.html b/doc/html/search/files_4.html
index 0eaa44a4ed5ba6e9267237c7ee7b4751c7b97aa4..2ebb46c7e70881a6ec2621bb8948a8db8403d327 100644
--- a/doc/html/search/files_4.html
+++ b/doc/html/search/files_4.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="files_4.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/files_4.js b/doc/html/search/files_4.js
index bccfdb4638d0afa7a0a09c58d57a0f20c0be6731..6e2495dc5c944c5ba4f895854a07decd24142aa4 100644
--- a/doc/html/search/files_4.js
+++ b/doc/html/search/files_4.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['functionwrapper_2eh',['functionWrapper.h',['../function_wrapper_8h.html',1,'']]]
+  ['evaluationcontainer_2eh',['evaluationContainer.h',['../evaluation_container_8h.html',1,'']]]
 ];
diff --git a/doc/html/search/files_5.html b/doc/html/search/files_5.html
index 25316a5ad5d791718e53c039c1586706e0dcf604..268b7eb539de139f558ede42e0d9048c0e48dac0 100644
--- a/doc/html/search/files_5.html
+++ b/doc/html/search/files_5.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="files_5.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/files_5.js b/doc/html/search/files_5.js
index 3fcd6aa2927f485c3c7dcc26dc64d86cef5f307c..bccfdb4638d0afa7a0a09c58d57a0f20c0be6731 100644
--- a/doc/html/search/files_5.js
+++ b/doc/html/search/files_5.js
@@ -1,5 +1,4 @@
 var searchData=
 [
-  ['gettime_2ecpp',['getTime.cpp',['../get_time_8cpp.html',1,'']]],
-  ['gettime_2eh',['getTime.h',['../get_time_8h.html',1,'']]]
+  ['functionwrapper_2eh',['functionWrapper.h',['../function_wrapper_8h.html',1,'']]]
 ];
diff --git a/doc/html/search/files_6.html b/doc/html/search/files_6.html
index 6f326f5f7b1d528d5634f49e0ddfc3a176528166..98fc6666c2d4a7a9fece11e45110475e297ef831 100644
--- a/doc/html/search/files_6.html
+++ b/doc/html/search/files_6.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="files_6.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/files_6.js b/doc/html/search/files_6.js
index 8fec69426c6d7e926d74b867512463f36b4047fd..3fcd6aa2927f485c3c7dcc26dc64d86cef5f307c 100644
--- a/doc/html/search/files_6.js
+++ b/doc/html/search/files_6.js
@@ -1,6 +1,5 @@
 var searchData=
 [
-  ['intervallibrary_2eh',['intervalLibrary.h',['../interval_library_8h.html',1,'']]],
-  ['ipoptproblem_2ecpp',['ipoptProblem.cpp',['../ipopt_problem_8cpp.html',1,'']]],
-  ['ipoptproblem_2eh',['ipoptProblem.h',['../ipopt_problem_8h.html',1,'']]]
+  ['gettime_2ecpp',['getTime.cpp',['../get_time_8cpp.html',1,'']]],
+  ['gettime_2eh',['getTime.h',['../get_time_8h.html',1,'']]]
 ];
diff --git a/doc/html/search/files_7.html b/doc/html/search/files_7.html
index 53e39bfd1c1bbd51d811b1d37a943a6cbacdcf73..49507dedbd1ae7b6145ed02911f8c645d2c36032 100644
--- a/doc/html/search/files_7.html
+++ b/doc/html/search/files_7.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="files_7.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/files_7.js b/doc/html/search/files_7.js
index fa01718ff5c39823d151ede7a6f1eb1e928e3ed8..8fec69426c6d7e926d74b867512463f36b4047fd 100644
--- a/doc/html/search/files_7.js
+++ b/doc/html/search/files_7.js
@@ -1,5 +1,6 @@
 var searchData=
 [
-  ['knitroproblem_2ecpp',['knitroProblem.cpp',['../knitro_problem_8cpp.html',1,'']]],
-  ['knitroproblem_2eh',['knitroProblem.h',['../knitro_problem_8h.html',1,'']]]
+  ['intervallibrary_2eh',['intervalLibrary.h',['../interval_library_8h.html',1,'']]],
+  ['ipoptproblem_2ecpp',['ipoptProblem.cpp',['../ipopt_problem_8cpp.html',1,'']]],
+  ['ipoptproblem_2eh',['ipoptProblem.h',['../ipopt_problem_8h.html',1,'']]]
 ];
diff --git a/doc/html/search/files_8.html b/doc/html/search/files_8.html
index 861a02cd4b543678cb247f341231ad6e5bd835fe..12c6630be3f0d3e5bfcab37052589e3060fecd27 100644
--- a/doc/html/search/files_8.html
+++ b/doc/html/search/files_8.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="files_8.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/files_8.js b/doc/html/search/files_8.js
index e5d5dae53224570fec2446a0b496a533db3eb328..fa01718ff5c39823d151ede7a6f1eb1e928e3ed8 100644
--- a/doc/html/search/files_8.js
+++ b/doc/html/search/files_8.js
@@ -1,17 +1,5 @@
 var searchData=
 [
-  ['lbp_2ecpp',['lbp.cpp',['../lbp_8cpp.html',1,'']]],
-  ['lbp_2eh',['lbp.h',['../lbp_8h.html',1,'']]],
-  ['lbpclp_2ecpp',['lbpClp.cpp',['../lbp_clp_8cpp.html',1,'']]],
-  ['lbpclp_2eh',['lbpClp.h',['../lbp_clp_8h.html',1,'']]],
-  ['lbpcplex_2ecpp',['lbpCplex.cpp',['../lbp_cplex_8cpp.html',1,'']]],
-  ['lbpcplex_2eh',['lbpCplex.h',['../lbp_cplex_8h.html',1,'']]],
-  ['lbpdagobj_2ecpp',['lbpDagObj.cpp',['../lbp_dag_obj_8cpp.html',1,'']]],
-  ['lbpdagobj_2eh',['lbpDagObj.h',['../lbp_dag_obj_8h.html',1,'']]],
-  ['lbpfactory_2ecpp',['lbpFactory.cpp',['../lbp_factory_8cpp.html',1,'']]],
-  ['lbpinterval_2ecpp',['lbpInterval.cpp',['../lbp_interval_8cpp.html',1,'']]],
-  ['lbpinterval_2eh',['lbpInterval.h',['../lbp_interval_8h.html',1,'']]],
-  ['lbplinearizationstrats_2ecpp',['lbpLinearizationStrats.cpp',['../lbp_linearization_strats_8cpp.html',1,'']]],
-  ['logger_2ecpp',['logger.cpp',['../logger_8cpp.html',1,'']]],
-  ['logger_2eh',['logger.h',['../logger_8h.html',1,'']]]
+  ['knitroproblem_2ecpp',['knitroProblem.cpp',['../knitro_problem_8cpp.html',1,'']]],
+  ['knitroproblem_2eh',['knitroProblem.h',['../knitro_problem_8h.html',1,'']]]
 ];
diff --git a/doc/html/search/files_9.html b/doc/html/search/files_9.html
index 020cb091e660f373bd7fbed50284ae6228ce6976..cabcae2f885fae362f989418300e730d8fad9f78 100644
--- a/doc/html/search/files_9.html
+++ b/doc/html/search/files_9.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="files_9.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/files_9.js b/doc/html/search/files_9.js
index d5b932762a4425d561470200023efe812c2cad8a..e5d5dae53224570fec2446a0b496a533db3eb328 100644
--- a/doc/html/search/files_9.js
+++ b/doc/html/search/files_9.js
@@ -1,18 +1,17 @@
 var searchData=
 [
-  ['maingo_2ecpp',['MAiNGO.cpp',['../_m_ai_n_g_o_8cpp.html',1,'']]],
-  ['maingo_2eh',['MAiNGO.h',['../_m_ai_n_g_o_8h.html',1,'']]],
-  ['maingodebug_2eh',['MAiNGOdebug.h',['../_m_ai_n_g_odebug_8h.html',1,'']]],
-  ['maingoevaluator_2eh',['MAiNGOevaluator.h',['../_m_ai_n_g_oevaluator_8h.html',1,'']]],
-  ['maingogetterfunctions_2ecpp',['MAiNGOgetterFunctions.cpp',['../_m_ai_n_g_ogetter_functions_8cpp.html',1,'']]],
-  ['maingomodel_2eh',['MAiNGOmodel.h',['../_m_ai_n_g_omodel_8h.html',1,'']]],
-  ['maingomodelepscon_2ecpp',['MAiNGOmodelEpsCon.cpp',['../_m_ai_n_g_omodel_eps_con_8cpp.html',1,'']]],
-  ['maingomodelepscon_2eh',['MAiNGOmodelEpsCon.h',['../_m_ai_n_g_omodel_eps_con_8h.html',1,'']]],
-  ['maingoprintingfunctions_2ecpp',['MAiNGOprintingFunctions.cpp',['../_m_ai_n_g_oprinting_functions_8cpp.html',1,'']]],
-  ['maingotootherlanguage_2ecpp',['MAiNGOtoOtherLanguage.cpp',['../_m_ai_n_g_oto_other_language_8cpp.html',1,'']]],
-  ['maingowall_2ecpp',['MAiNGOWALL.cpp',['../_m_ai_n_g_o_w_a_l_l_8cpp.html',1,'']]],
-  ['maingowritingfunctions_2ecpp',['MAiNGOwritingFunctions.cpp',['../_m_ai_n_g_owriting_functions_8cpp.html',1,'']]],
-  ['manual_2eh',['manual.h',['../manual_8h.html',1,'']]],
-  ['mcforward_2eh',['mcForward.h',['../mc_forward_8h.html',1,'']]],
-  ['mpiutilities_2eh',['mpiUtilities.h',['../mpi_utilities_8h.html',1,'']]]
+  ['lbp_2ecpp',['lbp.cpp',['../lbp_8cpp.html',1,'']]],
+  ['lbp_2eh',['lbp.h',['../lbp_8h.html',1,'']]],
+  ['lbpclp_2ecpp',['lbpClp.cpp',['../lbp_clp_8cpp.html',1,'']]],
+  ['lbpclp_2eh',['lbpClp.h',['../lbp_clp_8h.html',1,'']]],
+  ['lbpcplex_2ecpp',['lbpCplex.cpp',['../lbp_cplex_8cpp.html',1,'']]],
+  ['lbpcplex_2eh',['lbpCplex.h',['../lbp_cplex_8h.html',1,'']]],
+  ['lbpdagobj_2ecpp',['lbpDagObj.cpp',['../lbp_dag_obj_8cpp.html',1,'']]],
+  ['lbpdagobj_2eh',['lbpDagObj.h',['../lbp_dag_obj_8h.html',1,'']]],
+  ['lbpfactory_2ecpp',['lbpFactory.cpp',['../lbp_factory_8cpp.html',1,'']]],
+  ['lbpinterval_2ecpp',['lbpInterval.cpp',['../lbp_interval_8cpp.html',1,'']]],
+  ['lbpinterval_2eh',['lbpInterval.h',['../lbp_interval_8h.html',1,'']]],
+  ['lbplinearizationstrats_2ecpp',['lbpLinearizationStrats.cpp',['../lbp_linearization_strats_8cpp.html',1,'']]],
+  ['logger_2ecpp',['logger.cpp',['../logger_8cpp.html',1,'']]],
+  ['logger_2eh',['logger.h',['../logger_8h.html',1,'']]]
 ];
diff --git a/doc/html/search/files_a.html b/doc/html/search/files_a.html
index d7549b7d5eaef5330ade1d923060a0cb4a202935..f7402215c55859816e3ed957f24ce2299fd33779 100644
--- a/doc/html/search/files_a.html
+++ b/doc/html/search/files_a.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="files_a.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/files_a.js b/doc/html/search/files_a.js
index bb6eecbc8a8043a07f4d1dfe7b40537f737a9c09..220c04c50c0571a2353a5c33cb2aed48e1f586a6 100644
--- a/doc/html/search/files_a.js
+++ b/doc/html/search/files_a.js
@@ -1,4 +1,22 @@
 var searchData=
 [
-  ['outputvariable_2eh',['outputVariable.h',['../output_variable_8h.html',1,'']]]
+  ['maingo_2ecpp',['MAiNGO.cpp',['../_m_ai_n_g_o_8cpp.html',1,'']]],
+  ['maingo_2eh',['MAiNGO.h',['../_m_ai_n_g_o_8h.html',1,'']]],
+  ['maingodebug_2eh',['MAiNGOdebug.h',['../_m_ai_n_g_odebug_8h.html',1,'']]],
+  ['maingoevaluationfunctions_2ecpp',['MAiNGOevaluationFunctions.cpp',['../_m_ai_n_g_oevaluation_functions_8cpp.html',1,'']]],
+  ['maingoevaluator_2eh',['MAiNGOevaluator.h',['../_m_ai_n_g_oevaluator_8h.html',1,'']]],
+  ['maingoexception_2eh',['MAiNGOException.h',['../_m_ai_n_g_o_exception_8h.html',1,'']]],
+  ['maingogetterfunctions_2ecpp',['MAiNGOgetterFunctions.cpp',['../_m_ai_n_g_ogetter_functions_8cpp.html',1,'']]],
+  ['maingomodel_2eh',['MAiNGOmodel.h',['../_m_ai_n_g_omodel_8h.html',1,'']]],
+  ['maingomodelepscon_2ecpp',['MAiNGOmodelEpsCon.cpp',['../_m_ai_n_g_omodel_eps_con_8cpp.html',1,'']]],
+  ['maingomodelepscon_2eh',['MAiNGOmodelEpsCon.h',['../_m_ai_n_g_omodel_eps_con_8h.html',1,'']]],
+  ['maingompiexception_2eh',['MAiNGOMpiException.h',['../_m_ai_n_g_o_mpi_exception_8h.html',1,'']]],
+  ['maingoprintingfunctions_2ecpp',['MAiNGOprintingFunctions.cpp',['../_m_ai_n_g_oprinting_functions_8cpp.html',1,'']]],
+  ['maingoreadsettings_2ecpp',['MAiNGOreadSettings.cpp',['../_m_ai_n_g_oread_settings_8cpp.html',1,'']]],
+  ['maingosetoption_2ecpp',['MAiNGOsetOption.cpp',['../_m_ai_n_g_oset_option_8cpp.html',1,'']]],
+  ['maingotootherlanguage_2ecpp',['MAiNGOtoOtherLanguage.cpp',['../_m_ai_n_g_oto_other_language_8cpp.html',1,'']]],
+  ['maingowritingfunctions_2ecpp',['MAiNGOwritingFunctions.cpp',['../_m_ai_n_g_owriting_functions_8cpp.html',1,'']]],
+  ['manual_2edox',['manual.dox',['../manual_8dox.html',1,'']]],
+  ['mcforward_2eh',['mcForward.h',['../mc_forward_8h.html',1,'']]],
+  ['mpiutilities_2eh',['mpiUtilities.h',['../mpi_utilities_8h.html',1,'']]]
 ];
diff --git a/doc/html/search/files_b.html b/doc/html/search/files_b.html
index a761fc229aae0abacb9391d9c2f75f0aabacd010..7be1003070f357d4f75220dd9be62a505eb8ba5f 100644
--- a/doc/html/search/files_b.html
+++ b/doc/html/search/files_b.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="files_b.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/files_b.js b/doc/html/search/files_b.js
index eb949baa7800eb34610bb6104088f7265b3f3f0e..bb6eecbc8a8043a07f4d1dfe7b40537f737a9c09 100644
--- a/doc/html/search/files_b.js
+++ b/doc/html/search/files_b.js
@@ -1,6 +1,4 @@
 var searchData=
 [
-  ['program_2eh',['program.h',['../program_8h.html',1,'']]],
-  ['programparser_2ecpp',['programParser.cpp',['../program_parser_8cpp.html',1,'']]],
-  ['programparser_2eh',['programParser.h',['../program_parser_8h.html',1,'']]]
+  ['outputvariable_2eh',['outputVariable.h',['../output_variable_8h.html',1,'']]]
 ];
diff --git a/doc/html/search/files_c.html b/doc/html/search/files_c.html
index 1411ec6d8a89eaf8d9bf8e7b1dc06253b825b393..c769b49bd6e922a5161215de8f1c93083d449786 100644
--- a/doc/html/search/files_c.html
+++ b/doc/html/search/files_c.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="files_c.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/files_c.js b/doc/html/search/files_c.js
index d7e84dd2b90b17fed2ff15f421f80b3efc85aa85..eb949baa7800eb34610bb6104088f7265b3f3f0e 100644
--- a/doc/html/search/files_c.js
+++ b/doc/html/search/files_c.js
@@ -1,4 +1,6 @@
 var searchData=
 [
-  ['returncodes_2eh',['returnCodes.h',['../return_codes_8h.html',1,'']]]
+  ['program_2eh',['program.h',['../program_8h.html',1,'']]],
+  ['programparser_2ecpp',['programParser.cpp',['../program_parser_8cpp.html',1,'']]],
+  ['programparser_2eh',['programParser.h',['../program_parser_8h.html',1,'']]]
 ];
diff --git a/doc/html/search/files_d.html b/doc/html/search/files_d.html
index 6e7e505adeccdd845eb432b0f96219c1ba03a362..54e39775bdee520afb1eba6242fc8420bec36c5c 100644
--- a/doc/html/search/files_d.html
+++ b/doc/html/search/files_d.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="files_d.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/files_d.js b/doc/html/search/files_d.js
index 9837af1cf012b565650c0df8dc394dc974cf0fbc..d7e84dd2b90b17fed2ff15f421f80b3efc85aa85 100644
--- a/doc/html/search/files_d.js
+++ b/doc/html/search/files_d.js
@@ -1,5 +1,4 @@
 var searchData=
 [
-  ['settings_2ecpp',['settings.cpp',['../settings_8cpp.html',1,'']]],
-  ['settings_2eh',['settings.h',['../settings_8h.html',1,'']]]
+  ['returncodes_2eh',['returnCodes.h',['../return_codes_8h.html',1,'']]]
 ];
diff --git a/doc/html/search/files_e.html b/doc/html/search/files_e.html
index 4bfc8dd53198a2a6b1a1eb9bfe6a26d0823416dd..febb549419740e4db269d1ed94f8de2c5cc8b3f8 100644
--- a/doc/html/search/files_e.html
+++ b/doc/html/search/files_e.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="files_e.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/files_e.js b/doc/html/search/files_e.js
index a5d0c3e6e709d05c106c6952eab9a59cdf46ae8e..f3b1f3d5c6322ae6622e14df5e56aaf75072b58a 100644
--- a/doc/html/search/files_e.js
+++ b/doc/html/search/files_e.js
@@ -1,21 +1,4 @@
 var searchData=
 [
-  ['ubp_2ecpp',['ubp.cpp',['../ubp_8cpp.html',1,'']]],
-  ['ubp_2eh',['ubp.h',['../ubp_8h.html',1,'']]],
-  ['ubpclp_2ecpp',['ubpClp.cpp',['../ubp_clp_8cpp.html',1,'']]],
-  ['ubpclp_2eh',['ubpClp.h',['../ubp_clp_8h.html',1,'']]],
-  ['ubpcplex_2ecpp',['ubpCplex.cpp',['../ubp_cplex_8cpp.html',1,'']]],
-  ['ubpcplex_2eh',['ubpCplex.h',['../ubp_cplex_8h.html',1,'']]],
-  ['ubpdagobj_2eh',['ubpDagObj.h',['../ubp_dag_obj_8h.html',1,'']]],
-  ['ubpevaluators_2eh',['ubpEvaluators.h',['../ubp_evaluators_8h.html',1,'']]],
-  ['ubpfactory_2ecpp',['ubpFactory.cpp',['../ubp_factory_8cpp.html',1,'']]],
-  ['ubpipopt_2ecpp',['ubpIpopt.cpp',['../ubp_ipopt_8cpp.html',1,'']]],
-  ['ubpipopt_2eh',['ubpIpopt.h',['../ubp_ipopt_8h.html',1,'']]],
-  ['ubpknitro_2ecpp',['ubpKnitro.cpp',['../ubp_knitro_8cpp.html',1,'']]],
-  ['ubpknitro_2eh',['ubpKnitro.h',['../ubp_knitro_8h.html',1,'']]],
-  ['ubpnlopt_2ecpp',['ubpNLopt.cpp',['../ubp_n_lopt_8cpp.html',1,'']]],
-  ['ubpnlopt_2eh',['ubpNLopt.h',['../ubp_n_lopt_8h.html',1,'']]],
-  ['ubpquadexpr_2eh',['ubpQuadExpr.h',['../ubp_quad_expr_8h.html',1,'']]],
-  ['ubpstructure_2eh',['ubpStructure.h',['../ubp_structure_8h.html',1,'']]],
-  ['utilities_2eh',['utilities.h',['../utilities_8h.html',1,'']]]
+  ['settings_2eh',['settings.h',['../settings_8h.html',1,'']]]
 ];
diff --git a/doc/html/search/files_f.html b/doc/html/search/files_f.html
index f5e13b567ac5243f2d9d76c799a495aef78c8328..30cd09be234c8fdb3684b75bed9dd1e24c7e0b1b 100644
--- a/doc/html/search/files_f.html
+++ b/doc/html/search/files_f.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="files_f.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/files_f.js b/doc/html/search/files_f.js
index 2b1bedcbd0169406f346979c10dc1dbf4e871def..a5d0c3e6e709d05c106c6952eab9a59cdf46ae8e 100644
--- a/doc/html/search/files_f.js
+++ b/doc/html/search/files_f.js
@@ -1,4 +1,21 @@
 var searchData=
 [
-  ['variablelister_2eh',['variableLister.h',['../variable_lister_8h.html',1,'']]]
+  ['ubp_2ecpp',['ubp.cpp',['../ubp_8cpp.html',1,'']]],
+  ['ubp_2eh',['ubp.h',['../ubp_8h.html',1,'']]],
+  ['ubpclp_2ecpp',['ubpClp.cpp',['../ubp_clp_8cpp.html',1,'']]],
+  ['ubpclp_2eh',['ubpClp.h',['../ubp_clp_8h.html',1,'']]],
+  ['ubpcplex_2ecpp',['ubpCplex.cpp',['../ubp_cplex_8cpp.html',1,'']]],
+  ['ubpcplex_2eh',['ubpCplex.h',['../ubp_cplex_8h.html',1,'']]],
+  ['ubpdagobj_2eh',['ubpDagObj.h',['../ubp_dag_obj_8h.html',1,'']]],
+  ['ubpevaluators_2eh',['ubpEvaluators.h',['../ubp_evaluators_8h.html',1,'']]],
+  ['ubpfactory_2ecpp',['ubpFactory.cpp',['../ubp_factory_8cpp.html',1,'']]],
+  ['ubpipopt_2ecpp',['ubpIpopt.cpp',['../ubp_ipopt_8cpp.html',1,'']]],
+  ['ubpipopt_2eh',['ubpIpopt.h',['../ubp_ipopt_8h.html',1,'']]],
+  ['ubpknitro_2ecpp',['ubpKnitro.cpp',['../ubp_knitro_8cpp.html',1,'']]],
+  ['ubpknitro_2eh',['ubpKnitro.h',['../ubp_knitro_8h.html',1,'']]],
+  ['ubpnlopt_2ecpp',['ubpNLopt.cpp',['../ubp_n_lopt_8cpp.html',1,'']]],
+  ['ubpnlopt_2eh',['ubpNLopt.h',['../ubp_n_lopt_8h.html',1,'']]],
+  ['ubpquadexpr_2eh',['ubpQuadExpr.h',['../ubp_quad_expr_8h.html',1,'']]],
+  ['ubpstructure_2eh',['ubpStructure.h',['../ubp_structure_8h.html',1,'']]],
+  ['utilities_2eh',['utilities.h',['../utilities_8h.html',1,'']]]
 ];
diff --git a/doc/html/search/functions_0.html b/doc/html/search/functions_0.html
index bc73761f526691046ebe143ee37064bd3c9937f4..0539c8cede156c763e37612f804c40c8b16cbc68 100644
--- a/doc/html/search/functions_0.html
+++ b/doc/html/search/functions_0.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_0.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/functions_0.js b/doc/html/search/functions_0.js
index c0174103f58af856f2c1d14dbfae59e6d3e42959..e9b0e4b699bd4d600a7009895ad120438d9a6a62 100644
--- a/doc/html/search/functions_0.js
+++ b/doc/html/search/functions_0.js
@@ -3,24 +3,27 @@ var searchData=
   ['_5fadd_5fauxiliary_5fvariables_5fto_5flbd_5fdag',['_add_auxiliary_variables_to_lbd_dag',['../classmaingo_1_1_m_ai_n_g_o.html#af0fdf26f6ae26288a121e6912f0f1023',1,'maingo::MAiNGO']]],
   ['_5fadd_5flinebreaks_5fto_5fgams_5fstring',['_add_linebreaks_to_gams_string',['../classmaingo_1_1_m_ai_n_g_o.html#ac99ef891ef04bb26071bf37ba510ebfc',1,'maingo::MAiNGO']]],
   ['_5fanalyze_5fand_5fsolve_5fproblem',['_analyze_and_solve_problem',['../classmaingo_1_1_m_ai_n_g_o.html#a271c14d25b5423c7c077f8ea206f2818',1,'maingo::MAiNGO']]],
+  ['_5fappend_5fcurrent_5ferror_5fmessage_5fto_5fmessage',['_append_current_error_message_to_message',['../classmaingo_1_1_m_ai_n_g_o_exception.html#a978212ab50e44b92bc27cb853df35733',1,'maingo::MAiNGOException']]],
+  ['_5fappend_5fnode_5finfo_5fto_5fmessage',['_append_node_info_to_message',['../classmaingo_1_1_m_ai_n_g_o_exception.html#a78cc259eb3c775814b2214262f026b8a',1,'maingo::MAiNGOException']]],
+  ['_5fappend_5foriginal_5fexception_5finfo_5fto_5fmessage',['_append_original_exception_info_to_message',['../classmaingo_1_1_m_ai_n_g_o_exception.html#a9cd783e2e9ac6fcaf813bd8f94f2300d',1,'maingo::MAiNGOException']]],
   ['_5fcalculate_5fbranching_5fpoint',['_calculate_branching_point',['../classbab_base_1_1_brancher.html#aee381075df2a3f5dfbf54ba6dadc4584',1,'babBase::Brancher']]],
   ['_5fcheck_5fbounds',['_check_bounds',['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2f7fe42bb11f791fc34c33f60ac057fc',1,'maingo::ubp::UpperBoundingSolver']]],
-  ['_5fcheck_5fdiscrete_5fbounds',['_check_discrete_bounds',['../classbab_base_1_1_optimization_variable.html#a73cc92c1533194998ebee64ff851b5da',1,'babBase::OptimizationVariable']]],
   ['_5fcheck_5feq',['_check_eq',['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a8e0390a65c638a359c0fd4aca45898b6',1,'maingo::ubp::UpperBoundingSolver']]],
   ['_5fcheck_5ffeasibility',['_check_feasibility',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2fa3ad57113343a493feac9a5f4c2667',1,'maingo::lbp::LowerBoundingSolver::_check_feasibility()'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#ad1ca347dd4c44d58cbc0acef37b20ac2',1,'maingo::lbp::LbpClp::_check_feasibility()'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#aa4b86f37a78b5f8ce2ac3abdbd6e3a74',1,'maingo::lbp::LbpCplex::_check_feasibility()'],['../classmaingo_1_1lbp_1_1_lbp_interval.html#aae0fb055173014b96398727f31cf8138',1,'maingo::lbp::LbpInterval::_check_feasibility()']]],
   ['_5fcheck_5ffeasibility_5fof_5frelaxation_5fonly_5fconstraints',['_check_feasibility_of_relaxation_only_constraints',['../classmaingo_1_1_m_ai_n_g_o.html#abad3366b86f460d436d3c13bfecb147b',1,'maingo::MAiNGO']]],
   ['_5fcheck_5ffor_5fhidden_5fzero_5fconstraints',['_check_for_hidden_zero_constraints',['../classmaingo_1_1_m_ai_n_g_o.html#a9ad31f08fce43a453e9f8e1e39c889bb',1,'maingo::MAiNGO']]],
   ['_5fcheck_5fif_5flp_5freally_5finfeasible',['_check_if_LP_really_infeasible',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2237722d9bd7702a7eeb0b2620110bca',1,'maingo::lbp::LowerBoundingSolver::_check_if_LP_really_infeasible()'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#aa4482d8e03130757248872892e2fcb2b',1,'maingo::lbp::LbpClp::_check_if_LP_really_infeasible()'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#a325f7fbdb9704f99fc46b5e26d84558f',1,'maingo::lbp::LbpCplex::_check_if_LP_really_infeasible()']]],
-  ['_5fcheck_5fif_5fmore_5fscaling_5fneeded',['_check_if_more_scaling_needed',['../classmaingo_1_1bab_1_1_branch_and_bound.html#ad5e5e8e1a0f2a3dda0a6deac59409fd6',1,'maingo::bab::BranchAndBound::_check_if_more_scaling_needed()'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a60c5f5d7ae8fab91f990846207e88144',1,'maingo::bab::BranchAndBound::_check_if_more_scaling_needed()']]],
+  ['_5fcheck_5fif_5fmore_5fscaling_5fneeded',['_check_if_more_scaling_needed',['../classmaingo_1_1bab_1_1_branch_and_bound.html#ad5e5e8e1a0f2a3dda0a6deac59409fd6',1,'maingo::bab::BranchAndBound']]],
   ['_5fcheck_5fineq',['_check_ineq',['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ae20cc817f6ec888d8a9e7a9723cfe0b7',1,'maingo::ubp::UpperBoundingSolver']]],
   ['_5fcheck_5fineq_5fsquash',['_check_ineq_squash',['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa40b7dc4622a4ffed899195174f3fda7',1,'maingo::ubp::UpperBoundingSolver']]],
   ['_5fcheck_5finfeasibility',['_check_infeasibility',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a805403d014eefe22b8312c4c1b80a877',1,'maingo::lbp::LowerBoundingSolver::_check_infeasibility()'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#aa66812cce01044ba578222dcfb4ed68a',1,'maingo::lbp::LbpClp::_check_infeasibility()'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#a198a548602ac6a18bd5bc453ec305200',1,'maingo::lbp::LbpCplex::_check_infeasibility()'],['../classmaingo_1_1lbp_1_1_lbp_interval.html#a5ec0a4dc7543d432fe2c44892469c959',1,'maingo::lbp::LbpInterval::_check_infeasibility()']]],
   ['_5fcheck_5fintegrality',['_check_integrality',['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac1124e613e46e59fb88415116e08e326',1,'maingo::ubp::UpperBoundingSolver']]],
   ['_5fcheck_5foptimality',['_check_optimality',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a761787f1ad3ef2c3c7b8d4e5986e0a47',1,'maingo::lbp::LowerBoundingSolver::_check_optimality()'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#af820f00e82a69189bbff37a027f366df',1,'maingo::lbp::LbpClp::_check_optimality()'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#ae3bf7a1bba331fef4de0c2793a311229',1,'maingo::lbp::LbpCplex::_check_optimality()'],['../classmaingo_1_1lbp_1_1_lbp_interval.html#a5a44a19b7c78a6235abd0e44f9de71b7',1,'maingo::lbp::LbpInterval::_check_optimality()']]],
-  ['_5fcheck_5ftermination',['_check_termination',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a535696550d694df9bc017ef6cd144a58',1,'maingo::bab::BranchAndBound::_check_termination()'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a18cf39c5def55fea60f33438b77fece2',1,'maingo::bab::BranchAndBound::_check_termination()']]],
+  ['_5fcheck_5ftermination',['_check_termination',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a535696550d694df9bc017ef6cd144a58',1,'maingo::bab::BranchAndBound']]],
   ['_5fchoose_5fgood_5flin_5fpoints',['_choose_good_lin_points',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a13d16bea111e56762479856995fe8435',1,'maingo::lbp::LowerBoundingSolver']]],
-  ['_5fclassify_5fconstraints',['_classify_constraints',['../classmaingo_1_1_m_ai_n_g_o.html#a874e8de2f4daafb262380b882a3d3553',1,'maingo::MAiNGO']]],
+  ['_5fclassify_5fobjective_5fand_5fconstraints',['_classify_objective_and_constraints',['../classmaingo_1_1_m_ai_n_g_o.html#a803800682d25b4edc28a3536faba2380',1,'maingo::MAiNGO']]],
   ['_5fcompute_5fand_5frotate_5fsimplex',['_compute_and_rotate_simplex',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4dd432d487c2099767f0d6de64711bb9',1,'maingo::lbp::LowerBoundingSolver']]],
+  ['_5fconstruct_5fcomplete_5ferror_5fmessage',['_construct_complete_error_message',['../classmaingo_1_1_m_ai_n_g_o_exception.html#a5cc5c15e7cb9d14f7877731fabb46189',1,'maingo::MAiNGOException']]],
   ['_5fconstruct_5fdag',['_construct_DAG',['../classmaingo_1_1_m_ai_n_g_o.html#a9908a4661a24667409c0a0fd5c06fe9f',1,'maingo::MAiNGO']]],
   ['_5fcreate_5fchildren',['_create_children',['../classbab_base_1_1_brancher.html#a72a36fe9f0f5eac9a351d30fc2a4f0d3',1,'babBase::Brancher']]],
   ['_5fcreate_5fnode_5fwith_5finfo_5ffrom_5fnode',['_create_node_with_info_from_node',['../classbab_base_1_1_brancher.html#a53d5b740ed9e0ad82601b59c941e21f5',1,'babBase::Brancher']]],
@@ -28,19 +31,21 @@ var searchData=
   ['_5fdetermine_5fsparsity_5fhessian',['_determine_sparsity_hessian',['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#afce03a4f45462c5afb5af2146ddd7e78',1,'maingo::ubp::UpperBoundingSolver']]],
   ['_5fdetermine_5fsparsity_5fjacobian',['_determine_sparsity_jacobian',['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a04b6d46cf762e76a70611b9c9e54f71d',1,'maingo::ubp::UpperBoundingSolver']]],
   ['_5fdetermine_5fstructure',['_determine_structure',['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a566cab6bf72ec7da46a8e42d63378d02',1,'maingo::ubp::UpperBoundingSolver']]],
-  ['_5fdisplay_5fand_5flog_5fprogress',['_display_and_log_progress',['../classmaingo_1_1bab_1_1_branch_and_bound.html#ad2b56f40c7255d731c196b1661cee2d4',1,'maingo::bab::BranchAndBound::_display_and_log_progress(const double currentNodeLBD, const babBase::BabNode &amp;currentNode)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#af04b0ab5a5979ba684b4edf2a223d5ec',1,'maingo::bab::BranchAndBound::_display_and_log_progress(const double currentNodeLBD, const babBase::BabNode &amp;currentNode)']]],
+  ['_5fdisplay_5fand_5flog_5fprogress',['_display_and_log_progress',['../classmaingo_1_1bab_1_1_branch_and_bound.html#ad2b56f40c7255d731c196b1661cee2d4',1,'maingo::bab::BranchAndBound']]],
+  ['_5fensure_5fvalid_5fobjective_5ffunction_5fusing_5fdummy_5fvariable',['_ensure_valid_objective_function_using_dummy_variable',['../classmaingo_1_1_m_ai_n_g_o.html#a56d30ff7a1a221550e6c7c045e5c6feb',1,'maingo::MAiNGO']]],
   ['_5fequilibrate_5fand_5frelax',['_equilibrate_and_relax',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a77e97f9255980d5edaadd9da571b078f',1,'maingo::lbp::LowerBoundingSolver']]],
+  ['_5fevaluate_5fadditional_5foutputs_5fat_5fpoint',['_evaluate_additional_outputs_at_point',['../classmaingo_1_1_m_ai_n_g_o.html#a92cbd5e8a92e5c335d57bb23574cf6b2',1,'maingo::MAiNGO']]],
+  ['_5fevaluate_5fmodel_5fat_5fpoint',['_evaluate_model_at_point',['../classmaingo_1_1_m_ai_n_g_o.html#a241496b3e71881ee3cb7b8be661b44d4',1,'maingo::MAiNGO']]],
   ['_5ffallback_5fto_5fintervals',['_fallback_to_intervals',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aafadf6738f60cca6831074ae54f0647d',1,'maingo::lbp::LowerBoundingSolver']]],
   ['_5ffathom_5fnodes_5fexceeding_5fpruning_5fthreshold',['_fathom_nodes_exceeding_pruning_threshold',['../classbab_base_1_1_bab_tree.html#a9dd406c60d514814311c4c9d4d8bd83e',1,'babBase::BabTree']]],
   ['_5ffix_5fvariable',['_fix_variable',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8cd8dd30cb32a2fdf90930acf1a98f69',1,'maingo::lbp::LowerBoundingSolver::_fix_variable()'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#ab8b1ff5aae11dd1ae23b260be58a39f2',1,'maingo::lbp::LbpClp::_fix_variable()'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#a6f17d0771ce88fdaecfe4399759afc36',1,'maingo::lbp::LbpCplex::_fix_variable()']]],
   ['_5fgenerate_5fmultistart_5fpoint',['_generate_multistart_point',['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a88f6a1e58a7274d44f6c9513581a6f4b',1,'maingo::ubp::UpperBoundingSolver']]],
-  ['_5fget_5fadditional_5foutputs',['_get_additional_outputs',['../classmaingo_1_1_m_ai_n_g_o.html#a14ac25981c3df0f6317418c8b9f4857c',1,'maingo::MAiNGO']]],
   ['_5fget_5flp_5fstatus',['_get_LP_status',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4fd9a52441b77eff552c9034ae0fb76d',1,'maingo::lbp::LowerBoundingSolver::_get_LP_status()'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#a3e27387ed8c32d6a7a82477c19e99f29',1,'maingo::lbp::LbpClp::_get_LP_status()'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#a5fc72422c29fbfba6710f9f2e244b28c',1,'maingo::lbp::LbpCplex::_get_LP_status()']]],
-  ['_5fget_5fmodel_5fat_5fpoint',['_get_model_at_point',['../classmaingo_1_1_m_ai_n_g_o.html#a0d372af3e069f9ff12f09936aa9099c0',1,'maingo::MAiNGO']]],
   ['_5fget_5fmultipliers',['_get_multipliers',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ac3fddd3adb6e1db739d3377fb1bf3f1f',1,'maingo::lbp::LowerBoundingSolver::_get_multipliers()'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#af53e6dc42f11d7c5f5ac55e91414762e',1,'maingo::lbp::LbpClp::_get_multipliers()'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#a8e70de9d87020368dab0536c183d1fbb',1,'maingo::lbp::LbpCplex::_get_multipliers()']]],
   ['_5fget_5fobjective_5fvalue',['_get_objective_value',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6343f649f960195fc3783b5c0da3a59e',1,'maingo::lbp::LowerBoundingSolver']]],
   ['_5fget_5fobjective_5fvalue_5fsolver',['_get_objective_value_solver',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#abd9daa889433074171373fe2e59df217',1,'maingo::lbp::LowerBoundingSolver::_get_objective_value_solver()'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#af9c4aa5ee358ed1bbee6203b2ea21e0c',1,'maingo::lbp::LbpClp::_get_objective_value_solver()'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#a4e3ab5943005e5287d047361b8b32985',1,'maingo::lbp::LbpCplex::_get_objective_value_solver()']]],
   ['_5fget_5fsolution_5fpoint',['_get_solution_point',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af4e0c02718f150532912a15c213e608d',1,'maingo::lbp::LowerBoundingSolver::_get_solution_point()'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#a43e3cd8415b88cbdc4352948f2677cd5',1,'maingo::lbp::LbpClp::_get_solution_point()'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#ab1306509036c3a0063f66bbcf8e8333e',1,'maingo::lbp::LbpCplex::_get_solution_point()']]],
+  ['_5finfer_5fand_5fset_5fbounds_5for_5fthrow',['_infer_and_set_bounds_or_throw',['../classbab_base_1_1_optimization_variable.html#a0678dfc3a0ca4daf488e40b1a0568f66',1,'babBase::OptimizationVariable']]],
   ['_5finitialize_5fmatrix',['_initialize_matrix',['../classmaingo_1_1lbp_1_1_lbp_clp.html#a4ba899146b3421853e50e87560e4cc05',1,'maingo::lbp::LbpClp']]],
   ['_5finitialize_5fsolve',['_initialize_solve',['../classmaingo_1_1_m_ai_n_g_o.html#acdc8a1d98aa50ee3d76dc4873dda787f',1,'maingo::MAiNGO']]],
   ['_5flinearization_5fpoints_5fkelley',['_linearization_points_Kelley',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a4ce48185a33ab3815913f44b823352bb',1,'maingo::lbp::LowerBoundingSolver']]],
@@ -55,19 +60,19 @@ var searchData=
   ['_5fnlopt_5fget_5feq',['_NLopt_get_eq',['../classmaingo_1_1ubp_1_1_ubp_n_lopt.html#ae6382f3f5e4d846488b69e89251fad27',1,'maingo::ubp::UbpNLopt']]],
   ['_5fnlopt_5fget_5fineq',['_NLopt_get_ineq',['../classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a467b38de92e6e595a43f9aae2169bc7a',1,'maingo::ubp::UbpNLopt']]],
   ['_5fnlopt_5fget_5fobjective',['_NLopt_get_objective',['../classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a291c6c030054f97796aaada1f924073e',1,'maingo::ubp::UbpNLopt']]],
-  ['_5fpostprocess_5fnode',['_postprocess_node',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a29001119914eca2657390048e11db609',1,'maingo::bab::BranchAndBound::_postprocess_node(babBase::BabNode &amp;currentNodeInOut, const std::vector&lt; double &gt; &amp;lbpSolutionPoint, const lbp::LbpDualInfo &amp;dualInfo)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#aa35b55427764ada3cba0b0a74adafe0e',1,'maingo::bab::BranchAndBound::_postprocess_node(babBase::BabNode &amp;currentNodeInOut, const std::vector&lt; double &gt; &amp;lbpSolutionPoint, const lbp::LbpDualInfo &amp;dualInfo)']]],
-  ['_5fpreprocess_5fnode',['_preprocess_node',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a990927b31d0abc3c0df5ab3883c12de1',1,'maingo::bab::BranchAndBound::_preprocess_node(babBase::BabNode &amp;currentNodeInOut)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a6ab1475deadb8906e5d680911e747469',1,'maingo::bab::BranchAndBound::_preprocess_node(babBase::BabNode &amp;currentNodeInOut)']]],
+  ['_5fpostprocess_5fnode',['_postprocess_node',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a29001119914eca2657390048e11db609',1,'maingo::bab::BranchAndBound']]],
+  ['_5fpreprocess_5fnode',['_preprocess_node',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a990927b31d0abc3c0df5ab3883c12de1',1,'maingo::bab::BranchAndBound']]],
   ['_5fprint_5fadditional_5foutput',['_print_additional_output',['../classmaingo_1_1_m_ai_n_g_o.html#a1056041b9ace71cfbf3807ec436cd80b',1,'maingo::MAiNGO']]],
   ['_5fprint_5flp',['_print_LP',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ad73a525d4fbef8238e26dd95890f2b2b',1,'maingo::lbp::LowerBoundingSolver']]],
   ['_5fprint_5fmaingo_5fheader',['_print_MAiNGO_header',['../classmaingo_1_1_m_ai_n_g_o.html#a585967bc628b31b1fbba2105be7d36a2',1,'maingo::MAiNGO']]],
-  ['_5fprint_5fmaingo_5fheader_5ffor_5fother_5fmodeling_5flanguage',['_print_MAiNGO_header_for_other_modeling_language',['../classmaingo_1_1_m_ai_n_g_o.html#a93a8eadb777ce6ff95072f16dc6ef762',1,'maingo::MAiNGO']]],
+  ['_5fprint_5fmaingo_5fheader_5ffor_5fother_5fmodeling_5flanguage',['_print_MAiNGO_header_for_other_modeling_language',['../classmaingo_1_1_m_ai_n_g_o.html#a1eeb14c069d224846f7684d95a90ed04',1,'maingo::MAiNGO']]],
   ['_5fprint_5fmessage',['_print_message',['../classmaingo_1_1_m_ai_n_g_o.html#a0a8c5d381ad5818cec8624db717de73a',1,'maingo::MAiNGO']]],
-  ['_5fprint_5fone_5fnode',['_print_one_node',['../classmaingo_1_1bab_1_1_branch_and_bound.html#ad1c6f9191a7ab197f5a48ea554594462',1,'maingo::bab::BranchAndBound::_print_one_node(const double theLBD, const int ID, const std::vector&lt; double &gt; lowerVarBounds, const std::vector&lt; double &gt; upperVarBounds)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a01acae40320149ecfef11bda53350b3c',1,'maingo::bab::BranchAndBound::_print_one_node(const double theLBD, const int ID, const std::vector&lt; double &gt; lowerVarBounds, const std::vector&lt; double &gt; upperVarBounds, std::ostream &amp;outstream)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a1f542019964ce925a4d19eb951049da7',1,'maingo::bab::BranchAndBound::_print_one_node(const double theLBD, const babBase::BabNode &amp;theNode)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#ad301660df21f804bccefa3da694aa743',1,'maingo::bab::BranchAndBound::_print_one_node(const double theLBD, const babBase::BabNode &amp;theNode, std::ostream &amp;outstream)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a3250e84e0547b8de82d91fe929c0e8d9',1,'maingo::bab::BranchAndBound::_print_one_node(const double theLBD, const int ID, const std::vector&lt; double &gt; lowerVarBounds, const std::vector&lt; double &gt; upperVarBounds)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a202477d2ba7c16bf7d39dc4f77034c67',1,'maingo::bab::BranchAndBound::_print_one_node(const double theLBD, const int ID, const std::vector&lt; double &gt; lowerVarBounds, const std::vector&lt; double &gt; upperVarBounds, std::ostream &amp;outstream)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a1f542019964ce925a4d19eb951049da7',1,'maingo::bab::BranchAndBound::_print_one_node(const double theLBD, const babBase::BabNode &amp;theNode)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#ad301660df21f804bccefa3da694aa743',1,'maingo::bab::BranchAndBound::_print_one_node(const double theLBD, const babBase::BabNode &amp;theNode, std::ostream &amp;outstream)']]],
+  ['_5fprint_5fone_5fnode',['_print_one_node',['../classmaingo_1_1bab_1_1_branch_and_bound.html#ad1c6f9191a7ab197f5a48ea554594462',1,'maingo::bab::BranchAndBound::_print_one_node(const double theLBD, const int ID, const std::vector&lt; double &gt; lowerVarBounds, const std::vector&lt; double &gt; upperVarBounds)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a01acae40320149ecfef11bda53350b3c',1,'maingo::bab::BranchAndBound::_print_one_node(const double theLBD, const int ID, const std::vector&lt; double &gt; lowerVarBounds, const std::vector&lt; double &gt; upperVarBounds, std::ostream &amp;outstream)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a1f542019964ce925a4d19eb951049da7',1,'maingo::bab::BranchAndBound::_print_one_node(const double theLBD, const babBase::BabNode &amp;theNode)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#ad301660df21f804bccefa3da694aa743',1,'maingo::bab::BranchAndBound::_print_one_node(const double theLBD, const babBase::BabNode &amp;theNode, std::ostream &amp;outstream)']]],
   ['_5fprint_5fsolution',['_print_solution',['../classmaingo_1_1_m_ai_n_g_o.html#a4919a41d851f89b85fbd2646d878a6b0',1,'maingo::MAiNGO']]],
   ['_5fprint_5fstatistics',['_print_statistics',['../classmaingo_1_1_m_ai_n_g_o.html#a108919c79fc8d5fd6e0389ce7b242acb',1,'maingo::MAiNGO']]],
-  ['_5fprint_5ftermination',['_print_termination',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a80be7a4efd5e0f39765c635d6be13116',1,'maingo::bab::BranchAndBound::_print_termination(std::string message)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a4cab2a79ab0b12b712e7e45852be4a21',1,'maingo::bab::BranchAndBound::_print_termination(std::string message)']]],
+  ['_5fprint_5ftermination',['_print_termination',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a80be7a4efd5e0f39765c635d6be13116',1,'maingo::bab::BranchAndBound']]],
   ['_5fprint_5ftime',['_print_time',['../classmaingo_1_1_m_ai_n_g_o.html#ab5ac4bb96785ca26617e81b55d9a5996',1,'maingo::MAiNGO']]],
-  ['_5fprocess_5fnode',['_process_node',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a15520696d8e8e38197992c71ffd91c53',1,'maingo::bab::BranchAndBound::_process_node(babBase::BabNode &amp;currentNodeInOut)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a1a78374e95574fbe731cdd0d2dae7b53',1,'maingo::bab::BranchAndBound::_process_node(babBase::BabNode &amp;currentNodeInOut)']]],
+  ['_5fprocess_5fnode',['_process_node',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a15520696d8e8e38197992c71ffd91c53',1,'maingo::bab::BranchAndBound']]],
   ['_5frecognize_5fstructure',['_recognize_structure',['../classmaingo_1_1_m_ai_n_g_o.html#ab57d5aa6e5abb14b5d2bea4063f8db5e',1,'maingo::MAiNGO']]],
   ['_5freset_5flp',['_reset_LP',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af8be99dda0a3968034aed1c5a0d9fba4',1,'maingo::lbp::LowerBoundingSolver']]],
   ['_5frestore_5flp_5fcoefficients_5fafter_5fobbt',['_restore_LP_coefficients_after_OBBT',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9ee38ffd8ce3d627bfd70c195f9be58d',1,'maingo::lbp::LowerBoundingSolver::_restore_LP_coefficients_after_OBBT()'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#aa0964fe28a1d7c5b3095821749792a7b',1,'maingo::lbp::LbpClp::_restore_LP_coefficients_after_OBBT()'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#aa9d3a01d31337a11c0e74e9883597d99',1,'maingo::lbp::LbpCplex::_restore_LP_coefficients_after_OBBT()']]],
@@ -75,6 +80,7 @@ var searchData=
   ['_5froot_5fmultistart',['_root_multistart',['../classmaingo_1_1_m_ai_n_g_o.html#aa5d43df52f00ec1b854f0bf4e67d20de',1,'maingo::MAiNGO']]],
   ['_5froot_5fobbt_5ffeasibility',['_root_obbt_feasibility',['../classmaingo_1_1_m_ai_n_g_o.html#ae8688dd8669b0231af0fcedfaefab02c',1,'maingo::MAiNGO']]],
   ['_5froot_5fobbt_5ffeasibility_5foptimality',['_root_obbt_feasibility_optimality',['../classmaingo_1_1_m_ai_n_g_o.html#ac685bcf7b2be55e2d689941c1b90fa72',1,'maingo::MAiNGO']]],
+  ['_5fround_5fand_5fcheck_5fdiscrete_5fbounds',['_round_and_check_discrete_bounds',['../classbab_base_1_1_optimization_variable.html#ace610f731e7f44a53dbf4003ffe9f8d0',1,'babBase::OptimizationVariable']]],
   ['_5fselect_5fbranching_5fdimension_5fpseudo_5fcosts',['_select_branching_dimension_pseudo_costs',['../classbab_base_1_1_brancher.html#adc6989ca24a46718549abe6ae0a507a8',1,'babBase::Brancher']]],
   ['_5fset_5fconstraint_5fproperties',['_set_constraint_properties',['../classmaingo_1_1_m_ai_n_g_o.html#a6c09add60cfffb752582cf21182a786d',1,'maingo::MAiNGO']]],
   ['_5fset_5fnumber_5fof_5flinpoints',['_set_number_of_linpoints',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a0fa8b386f6bd8a3803e1c8fbfbde6e64',1,'maingo::lbp::LowerBoundingSolver']]],
@@ -84,19 +90,19 @@ var searchData=
   ['_5fsetderivativeproperties',['_setDerivativeProperties',['../classmaingo_1_1ubp_1_1_knitro_problem.html#a4816dc9edd532a51645e689f803a616a',1,'maingo::ubp::KnitroProblem']]],
   ['_5fsetobjectiveproperties',['_setObjectiveProperties',['../classmaingo_1_1ubp_1_1_knitro_problem.html#a484febbf4f1c5393efc46c2207d8f3ad',1,'maingo::ubp::KnitroProblem']]],
   ['_5fsetvariableproperties',['_setVariableProperties',['../classmaingo_1_1ubp_1_1_knitro_problem.html#a64c0490d313ba65bb3bf740b1c59043c',1,'maingo::ubp::KnitroProblem']]],
-  ['_5fsolve_5flbp',['_solve_LBP',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a969736750315215126c3bad4b398d2e9',1,'maingo::bab::BranchAndBound::_solve_LBP(const babBase::BabNode &amp;currentNode)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a3d09b996010632d9f782e9d7e5926e80',1,'maingo::bab::BranchAndBound::_solve_LBP(const babBase::BabNode &amp;currentNode)']]],
+  ['_5fsolve_5flbp',['_solve_LBP',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a969736750315215126c3bad4b398d2e9',1,'maingo::bab::BranchAndBound']]],
   ['_5fsolve_5flp',['_solve_LP',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aaa7dbb4ba6ef927a0889233378725089',1,'maingo::lbp::LowerBoundingSolver::_solve_LP()'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#a3423814b107c872de9f6c7b877546d78',1,'maingo::lbp::LbpClp::_solve_LP()'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#a1dec750f6f585a7ec3887d8786747104',1,'maingo::lbp::LbpCplex::_solve_LP()'],['../classmaingo_1_1lbp_1_1_lbp_interval.html#ac28a50c89f88e52c1af7af2ed5104bdb',1,'maingo::lbp::LbpInterval::_solve_LP()']]],
   ['_5fsolve_5fminlp',['_solve_MINLP',['../classmaingo_1_1_m_ai_n_g_o.html#ab2b58e658363c359a205cbd435f1f3d3',1,'maingo::MAiNGO']]],
   ['_5fsolve_5fmiqp',['_solve_MIQP',['../classmaingo_1_1_m_ai_n_g_o.html#a9f726a054960d563d59032b8067701b2',1,'maingo::MAiNGO']]],
   ['_5fsolve_5fnlp',['_solve_nlp',['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa61f6cbf0485f37b2ad7a73b18aa6521',1,'maingo::ubp::UpperBoundingSolver::_solve_nlp()'],['../classmaingo_1_1ubp_1_1_ubp_clp.html#ab24d1e766d5bbc32fdaab11dbdd05ef2',1,'maingo::ubp::UbpClp::_solve_nlp()'],['../classmaingo_1_1ubp_1_1_ubp_cplex.html#a6ddfc769b26441e3712ec56c5dcec7ba',1,'maingo::ubp::UbpCplex::_solve_nlp()'],['../classmaingo_1_1ubp_1_1_ubp_ipopt.html#a1d566d058e7134be0305fed79d25be08',1,'maingo::ubp::UbpIpopt::_solve_nlp()'],['../classmaingo_1_1ubp_1_1_ubp_knitro.html#a25aec304d6681184a572778f8a8c8379',1,'maingo::ubp::UbpKnitro::_solve_nlp()'],['../classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a07be0f105dd3dbd86e6e91ccea83ce20',1,'maingo::ubp::UbpNLopt::_solve_nlp()']]],
   ['_5fsolve_5fprobing_5flbp',['_solve_probing_LBP',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a124cee8eb569d80dbe8c162e412906d8',1,'maingo::lbp::LowerBoundingSolver']]],
-  ['_5fsolve_5fubp',['_solve_UBP',['../classmaingo_1_1bab_1_1_branch_and_bound.html#acab7696c07ae41c7a9296c0977359b1e',1,'maingo::bab::BranchAndBound::_solve_UBP(const babBase::BabNode &amp;currentNode, std::vector&lt; double &gt; &amp;ubpSolutionPoint, const double currentLBD)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#ab2bb968cb7c8aba14c9d42268fbb63e1',1,'maingo::bab::BranchAndBound::_solve_UBP(const babBase::BabNode &amp;currentNode, std::vector&lt; double &gt; &amp;ubpSolutionPoint, const double currentLBD)']]],
+  ['_5fsolve_5fubp',['_solve_UBP',['../classmaingo_1_1bab_1_1_branch_and_bound.html#acab7696c07ae41c7a9296c0977359b1e',1,'maingo::bab::BranchAndBound']]],
   ['_5fterminate_5fclp',['_terminate_Clp',['../classmaingo_1_1lbp_1_1_lbp_clp.html#a584ba5226cae8fee0db0cb043a4f08a3',1,'maingo::lbp::LbpClp']]],
   ['_5fterminate_5fcplex',['_terminate_cplex',['../classmaingo_1_1lbp_1_1_lbp_cplex.html#a08adc9be917d4a13774634695cf59065',1,'maingo::lbp::LbpCplex::_terminate_cplex()'],['../classmaingo_1_1ubp_1_1_ubp_cplex.html#a224b13053d2fdcaff567757fc3b4316e',1,'maingo::ubp::UbpCplex::_terminate_cplex()']]],
   ['_5ftruncate_5fvalue',['_truncate_value',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a456cbe28fac6fbf3508b09b04d1ea846',1,'maingo::lbp::LowerBoundingSolver']]],
   ['_5fturn_5foff_5fspecific_5foptions',['_turn_off_specific_options',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9f37648a18e394088679dc92701dd76f',1,'maingo::lbp::LowerBoundingSolver::_turn_off_specific_options()'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#ada95cd9dabecd558b31f2bdc4c26e8e4',1,'maingo::lbp::LbpClp::_turn_off_specific_options()'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#a792aea9d68cf82b893b5ed1ca0d439b5',1,'maingo::lbp::LbpCplex::_turn_off_specific_options()'],['../classmaingo_1_1lbp_1_1_lbp_interval.html#a2a9d6be191c080861b7ae9de9ca46f98',1,'maingo::lbp::LbpInterval::_turn_off_specific_options()']]],
-  ['_5fupdate_5fincumbent_5fand_5ffathom',['_update_incumbent_and_fathom',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a13e706473cf2f26ac9b3d20344270aaa',1,'maingo::bab::BranchAndBound::_update_incumbent_and_fathom(const double solval, const std::vector&lt; double &gt; sol, const unsigned int currentNodeID)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a0608306463120a72b9ec32395044470f',1,'maingo::bab::BranchAndBound::_update_incumbent_and_fathom(const double solval, const std::vector&lt; double &gt; sol, const unsigned int currentNodeID)']]],
-  ['_5fupdate_5flowest_5flbd',['_update_lowest_lbd',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a5cbefb1e86ca300d67ae3c65eab1099b',1,'maingo::bab::BranchAndBound::_update_lowest_lbd()'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#ac6de991f9fa810bc93ed5ce47577e210',1,'maingo::bab::BranchAndBound::_update_lowest_lbd()']]],
+  ['_5fupdate_5fincumbent_5fand_5ffathom',['_update_incumbent_and_fathom',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a13e706473cf2f26ac9b3d20344270aaa',1,'maingo::bab::BranchAndBound']]],
+  ['_5fupdate_5flowest_5flbd',['_update_lowest_lbd',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a5cbefb1e86ca300d67ae3c65eab1099b',1,'maingo::bab::BranchAndBound']]],
   ['_5fupdate_5flp',['_update_LP',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a018fd682b724900df5060adfd73a953b',1,'maingo::lbp::LowerBoundingSolver::_update_LP()'],['../classmaingo_1_1lbp_1_1_lbp_interval.html#a70bb4b9bda381f7e2f1e49b66be863c2',1,'maingo::lbp::LbpInterval::_update_LP()']]],
   ['_5fupdate_5flp_5feq',['_update_LP_eq',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1aec7459f261f58b6e476fd7eae99581',1,'maingo::lbp::LowerBoundingSolver::_update_LP_eq(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEq)'],['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a40d9842e7d85a37376bd3bf51761b315',1,'maingo::lbp::LowerBoundingSolver::_update_LP_eq(const vMC &amp;resultRelaxationCvVMC, const vMC &amp;resultRelaxationCcVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iEq)'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#a52de428ac88f082ffc3cfe4c9ec0ca84',1,'maingo::lbp::LbpClp::_update_LP_eq(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEq)'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#a14ab839fae5a1d3370c5431b665d542e',1,'maingo::lbp::LbpClp::_update_LP_eq(const vMC &amp;resultRelaxationCvVMC, const vMC &amp;resultRelaxationCcVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iEq)'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#ab05713911aef1c8aac1d4da8f8d1faac',1,'maingo::lbp::LbpCplex::_update_LP_eq(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEq)'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#a64e1ffb352c8b5cb3ff2d349ae95dc40',1,'maingo::lbp::LbpCplex::_update_LP_eq(const vMC &amp;resultRelaxationCvVMC, const vMC &amp;resultRelaxationCcVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iEq)'],['../classmaingo_1_1lbp_1_1_lbp_interval.html#a274c50b0ce633cb4b9616f9ec737bbae',1,'maingo::lbp::LbpInterval::_update_LP_eq()']]],
   ['_5fupdate_5flp_5feqrelaxationonly',['_update_LP_eqRelaxationOnly',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a59a4631f9fbe8e1a568fd2a36fac31e2',1,'maingo::lbp::LowerBoundingSolver::_update_LP_eqRelaxationOnly(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEqRelaxationOnly)'],['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ad3893a30edf38b7801801e754773e8da',1,'maingo::lbp::LowerBoundingSolver::_update_LP_eqRelaxationOnly(const vMC &amp;resultRelaxationCvVMC, const vMC &amp;resultRelaxationCcVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iEqRelaxationOnly)'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#a09930dee52d992c1aeab1e8a6f32ef59',1,'maingo::lbp::LbpClp::_update_LP_eqRelaxationOnly(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEqRelaxationOnly)'],['../classmaingo_1_1lbp_1_1_lbp_clp.html#abda27bf8bd56a6870d43acc6ff9d7f81',1,'maingo::lbp::LbpClp::_update_LP_eqRelaxationOnly(const vMC &amp;resultRelaxationCvVMC, const vMC &amp;resultRelaxationCcVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iEqRelaxationOnly)'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#a84205c27db34dc362f0ac7302d2cecbc',1,'maingo::lbp::LbpCplex::_update_LP_eqRelaxationOnly(const MC &amp;resultRelaxationCv, const MC &amp;resultRelaxationCc, const std::vector&lt; double &gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iLin, unsigned const &amp;iEqRelaxationOnly)'],['../classmaingo_1_1lbp_1_1_lbp_cplex.html#a2ece08fdba41c3234cf486328cb270f3',1,'maingo::lbp::LbpCplex::_update_LP_eqRelaxationOnly(const vMC &amp;resultRelaxationCvVMC, const vMC &amp;resultRelaxationCcVMC, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;linearizationPoint, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, unsigned const &amp;iEqRelaxationOnly)'],['../classmaingo_1_1lbp_1_1_lbp_interval.html#aea1859e400fedef26c0391fe3d2262e0',1,'maingo::lbp::LbpInterval::_update_LP_eqRelaxationOnly()']]],
@@ -112,14 +118,14 @@ var searchData=
   ['_5fwrite_5fale_5ffunctions',['_write_ale_functions',['../classmaingo_1_1_m_ai_n_g_o.html#a20c235755de9f0c15ea62c28ae9e2ac8',1,'maingo::MAiNGO']]],
   ['_5fwrite_5fale_5foptions',['_write_ale_options',['../classmaingo_1_1_m_ai_n_g_o.html#a4681879414746b1ac89b905479d6fa1d',1,'maingo::MAiNGO']]],
   ['_5fwrite_5fale_5fvariables',['_write_ale_variables',['../classmaingo_1_1_m_ai_n_g_o.html#a6d10798d58ceeac812fb853ca7eccf5c',1,'maingo::MAiNGO']]],
-  ['_5fwrite_5fcsv_5fgeneral',['_write_csv_general',['../classmaingo_1_1_m_ai_n_g_o.html#a2287a4b633fd59097ce44a74e15f6660',1,'maingo::MAiNGO']]],
   ['_5fwrite_5fepsilon_5fconstraint_5fresult',['_write_epsilon_constraint_result',['../classmaingo_1_1_m_ai_n_g_o.html#a40c4e33f9034542409daa1f0497c776f',1,'maingo::MAiNGO']]],
   ['_5fwrite_5ffiles',['_write_files',['../classmaingo_1_1_m_ai_n_g_o.html#acb69025e90c11f757a3f74c9b37daacd',1,'maingo::MAiNGO']]],
-  ['_5fwrite_5ffiles_5ferror',['_write_files_error',['../classmaingo_1_1_m_ai_n_g_o.html#a72b6d958b300d7fc886b74790b001aeb',1,'maingo::MAiNGO']]],
+  ['_5fwrite_5ffiles_5ferror',['_write_files_error',['../classmaingo_1_1_m_ai_n_g_o.html#a7ff011bd8ce28c9dc2e2d24c350698e1',1,'maingo::MAiNGO']]],
   ['_5fwrite_5fgams_5ffile',['_write_gams_file',['../classmaingo_1_1_m_ai_n_g_o.html#af7aec196a4987e5f38ed642b21400aa9',1,'maingo::MAiNGO']]],
   ['_5fwrite_5fgams_5ffunctions',['_write_gams_functions',['../classmaingo_1_1_m_ai_n_g_o.html#a0d24d4e085f56925079399567cdf70eb',1,'maingo::MAiNGO']]],
   ['_5fwrite_5fgams_5foptions',['_write_gams_options',['../classmaingo_1_1_m_ai_n_g_o.html#aa3b2c105e3ebff61b3416c9cdd8bd964',1,'maingo::MAiNGO']]],
   ['_5fwrite_5fgams_5fvariables',['_write_gams_variables',['../classmaingo_1_1_m_ai_n_g_o.html#a1aff8d80ad642d24966454b8ef35e34a',1,'maingo::MAiNGO']]],
   ['_5fwrite_5fjson_5ffile',['_write_json_file',['../classmaingo_1_1_m_ai_n_g_o.html#a9d8ceaac941b738db96be2326e4db27a',1,'maingo::MAiNGO']]],
-  ['_5fwrite_5fres_5ffile',['_write_res_file',['../classmaingo_1_1_m_ai_n_g_o.html#a76ffecbb5590c1dd40ec896059af4fda',1,'maingo::MAiNGO']]]
+  ['_5fwrite_5fresult_5ffile',['_write_result_file',['../classmaingo_1_1_m_ai_n_g_o.html#a83da0fbc8eeb9b2f336cd5d41707fbaf',1,'maingo::MAiNGO']]],
+  ['_5fwrite_5fsolution_5fand_5fstatistics_5fcsv',['_write_solution_and_statistics_csv',['../classmaingo_1_1_m_ai_n_g_o.html#ab894162dd5074eea1d5dd153e4f72d9e',1,'maingo::MAiNGO']]]
 ];
diff --git a/doc/html/search/functions_1.html b/doc/html/search/functions_1.html
index bfcf880be9e64711e057e7a7b5b4aa4532eea22f..4878b3d12deab5874217ba6453ed1cd9db83cac4 100644
--- a/doc/html/search/functions_1.html
+++ b/doc/html/search/functions_1.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_1.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/functions_1.js b/doc/html/search/functions_1.js
index 95c31a5b5899eef93946799e802d03e78d157953..51dfe3affa054356466c99f324a5d9f44a7c9382 100644
--- a/doc/html/search/functions_1.js
+++ b/doc/html/search/functions_1.js
@@ -14,11 +14,12 @@ var searchData=
   ['almost_5fequal',['almost_equal',['../namespacebab_base.html#a3b9c69d27eaa95bab37d3340bac0afc5',1,'babBase']]],
   ['antoine_5fpsat',['antoine_psat',['../function_wrapper_8h.html#a29383bf7dba49ebb8215a2ae142bf950',1,'antoine_psat(const mc::FFVar &amp;T, const double p1, const double p2, const double p3):&#160;functionWrapper.h'],['../function_wrapper_8h.html#a62500f93eb2b51c22286f30417435a72',1,'antoine_psat(const mc::FFVar &amp;T, const std::vector&lt; double &gt; p):&#160;functionWrapper.h']]],
   ['antoine_5ftsat',['antoine_tsat',['../function_wrapper_8h.html#a3eb8125b56fd6ae41720d1bc3ebe56d3',1,'antoine_tsat(const mc::FFVar &amp;T, const double p1, const double p2, const double p3):&#160;functionWrapper.h'],['../function_wrapper_8h.html#a23169e33bacd55bca6e0d043b84495ac',1,'antoine_tsat(const mc::FFVar &amp;T, const std::vector&lt; double &gt; p):&#160;functionWrapper.h']]],
+  ['are_5fconsistent',['are_consistent',['../structbab_base_1_1_bounds.html#aac75f501a93c1ba546d9e9d2263ad2f4',1,'babBase::Bounds']]],
   ['arh',['arh',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ac3c457143c6f4a4400194ccf44f82c54',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['asin',['asin',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ab2149dbee115f2ec2ba436df75ec297a',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['asinh',['asinh',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a0343beb7d475418ad9443de3dc486c2f',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['aspen_5fhig',['aspen_hig',['../function_wrapper_8h.html#a4b958aea1a60205b1399fd0686a36793',1,'aspen_hig(const mc::FFVar &amp;T, const double T0, const double p1, const double p2, const double p3, const double p4, const double p5, const double p6):&#160;functionWrapper.h'],['../function_wrapper_8h.html#a9ed331d9b129728e9845de34796fc57c',1,'aspen_hig(const mc::FFVar &amp;T, const double T0, const std::vector&lt; double &gt; p):&#160;functionWrapper.h']]],
-  ['at',['at',['../structmaingo_1_1model_function.html#a53bb709db5915f9762d84b3a160c549e',1,'maingo::modelFunction']]],
+  ['at',['at',['../structmaingo_1_1_model_function.html#ac53aa934e420edd2363328a685a35170',1,'maingo::ModelFunction']]],
   ['atan',['atan',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ae746ea045da4196e833c652a6264a126',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['atanh',['atanh',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a4854e83ee269e6b6db03e7a8f9258df5',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]]
 ];
diff --git a/doc/html/search/functions_10.html b/doc/html/search/functions_10.html
index d69badf9e50819b676bf6b4bb25ce992f4b5e3a1..6f6fbae23f7d8435c23073cfece5a399ed665760 100644
--- a/doc/html/search/functions_10.html
+++ b/doc/html/search/functions_10.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_10.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/functions_10.js b/doc/html/search/functions_10.js
index fcc5cb67d146d2ae6250623dd00cc3c8c0c5a683..a5e614b59091bd2586271c2ddb3966f6468c7e30 100644
--- a/doc/html/search/functions_10.js
+++ b/doc/html/search/functions_10.js
@@ -1,12 +1,12 @@
 var searchData=
 [
-  ['read_5fsettings',['read_settings',['../classmaingo_1_1_m_ai_n_g_o.html#a9d2cbee1f5ecf3321e2e5334e70757fe',1,'maingo::MAiNGO']]],
+  ['read_5fsettings',['read_settings',['../classmaingo_1_1_m_ai_n_g_o.html#a0728bb641f5f269763663ce89280bd4f',1,'maingo::MAiNGO']]],
   ['recover_5fblock',['recover_block',['../classmaingo_1_1_program_parser.html#af10f0318985e4aee4fb7da75614daad8',1,'maingo::ProgramParser']]],
   ['register_5fnode_5fchange',['register_node_change',['../classbab_base_1_1_brancher.html#a9751c79dcbf4b2ad67a549f5bfa6e5d3',1,'babBase::Brancher']]],
   ['regnormal',['regnormal',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ac9cf7b4edf54c33450cf0bb2f46b178d',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['relative_5fdistance_5fto_5fclosest_5fbound',['relative_distance_to_closest_bound',['../namespacebab_base.html#a4d2b6b4a6ab2a3676a6a1ec734be6b6b',1,'babBase']]],
   ['remove_5fhas_5fincumbent_5ffrom_5fall_5fnodes',['remove_has_incumbent_from_all_nodes',['../classbab_base_1_1_bab_tree.html#a13e9545dba8eb0600f0f41b5a682081b',1,'babBase::BabTree']]],
-  ['resize',['resize',['../structmaingo_1_1model_function.html#a3ccf2b6601e828e0fff4f27356d78f8a',1,'maingo::modelFunction']]],
+  ['resize',['resize',['../structmaingo_1_1_model_function.html#a925155d044f3f8e24cd55150bb668683',1,'maingo::ModelFunction']]],
   ['rho_5fliq_5fsat_5fethanol_5fschroeder',['rho_liq_sat_ethanol_schroeder',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ac59db4469292d72c052f4da427a50f3d',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['rho_5fvap_5fsat_5fethanol_5fschroeder',['rho_vap_sat_ethanol_schroeder',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a86dd68715ebcdbf9e5dac0bb7338f605',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['rlmtd',['rlmtd',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8074e42997b5850d3078c7b4d70c0ea2',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]]
diff --git a/doc/html/search/functions_11.html b/doc/html/search/functions_11.html
index 2c143588ef613a3c22185aa053f21c9d3728280a..dd88d8b7e6ad3da2062592fb92725554d206b5e3 100644
--- a/doc/html/search/functions_11.html
+++ b/doc/html/search/functions_11.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_11.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/functions_11.js b/doc/html/search/functions_11.js
index b772d2f45fd178a6352898260354498684f98215..0f1d3568a3644a80a9892e69094d3e8120bb5219 100644
--- a/doc/html/search/functions_11.js
+++ b/doc/html/search/functions_11.js
@@ -1,8 +1,8 @@
 var searchData=
 [
   ['saturation_5ftemperature',['saturation_temperature',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a5426d1dd5c4adaf426119c168bee4e4e',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
-  ['save_5fsetting',['save_setting',['../classmaingo_1_1_logger.html#ab14611926d783106de661c1c7221f5c3',1,'maingo::Logger']]],
-  ['save_5fsettings_5ffile_5fname',['save_settings_file_name',['../classmaingo_1_1_logger.html#accfbe2523be1fb7e14f30fd9b4c5031a',1,'maingo::Logger']]],
+  ['save_5fsetting',['save_setting',['../classmaingo_1_1_logger.html#a69e487a988a594016c12a7c919570f04',1,'maingo::Logger']]],
+  ['save_5fsettings_5ffile_5fname',['save_settings_file_name',['../classmaingo_1_1_logger.html#af1f4a383ab2f26319ae4da895d30aa2d',1,'maingo::Logger']]],
   ['schroeder_5fethanol_5fp',['schroeder_ethanol_p',['../function_wrapper_8h.html#a7b4403422eeebdd9b79d3a24b7d9f910',1,'functionWrapper.h']]],
   ['schroeder_5fethanol_5frholiq',['schroeder_ethanol_rholiq',['../function_wrapper_8h.html#a1250c885b8251f1cd8938e1c669b8dee',1,'functionWrapper.h']]],
   ['schroeder_5fethanol_5frhovap',['schroeder_ethanol_rhovap',['../function_wrapper_8h.html#a307d5d824ec8da405242f672377a689b',1,'functionWrapper.h']]],
@@ -13,32 +13,32 @@ var searchData=
   ['select_5fnode_5fhighest_5fpriority',['select_node_highest_priority',['../namespacebab_base.html#a7023aaaa7bf22bf1c3717cfa070f4e69',1,'babBase']]],
   ['set_5fbounds_5fand_5fstarting_5fpoint',['set_bounds_and_starting_point',['../classmaingo_1_1ubp_1_1_ipopt_problem.html#ad44bb659518b5e9d4a0362a477d46164',1,'maingo::ubp::IpoptProblem']]],
   ['set_5fbranching_5fdimension_5fselection_5fstrategy',['set_branching_dimension_selection_strategy',['../classbab_base_1_1_brancher.html#af9b60e80a40637b8aea84fab03cc665f',1,'babBase::Brancher']]],
-  ['set_5fcsv_5ffile_5fname',['set_csv_file_name',['../classmaingo_1_1_m_ai_n_g_o.html#a530c347d65ac74a1cf871e385ec18cc4',1,'maingo::MAiNGO']]],
   ['set_5fepsilon',['set_epsilon',['../classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a5999eaab9bb4b9c7dba95ed6553da048',1,'maingo::MAiNGOmodelEpsCon']]],
   ['set_5fholds_5fincumbent',['set_holds_incumbent',['../classbab_base_1_1_bab_node.html#a70530169b115d733df41aaafd449b23e',1,'babBase::BabNode']]],
-  ['set_5fjson_5ffile_5fname',['set_json_file_name',['../classmaingo_1_1_m_ai_n_g_o.html#a755f6652395b3bad73976a26fa4243f9',1,'maingo::MAiNGO']]],
-  ['set_5flog_5ffile_5fname',['set_log_file_name',['../classmaingo_1_1_m_ai_n_g_o.html#ae99518c0b699295565d25c76b0187c58',1,'maingo::MAiNGO']]],
+  ['set_5fiterations_5fcsv_5ffile_5fname',['set_iterations_csv_file_name',['../classmaingo_1_1_m_ai_n_g_o.html#abe4f3a7b42c05c07e7962be17de02ed3',1,'maingo::MAiNGO']]],
+  ['set_5fjson_5ffile_5fname',['set_json_file_name',['../classmaingo_1_1_m_ai_n_g_o.html#a3caca275897742b038011e6fd00b2bdc',1,'maingo::MAiNGO']]],
+  ['set_5flog_5ffile_5fname',['set_log_file_name',['../classmaingo_1_1_m_ai_n_g_o.html#a450f5ac09e6afa9e34dc86b59359ae20',1,'maingo::MAiNGO']]],
   ['set_5flower_5fbound',['set_lower_bound',['../classbab_base_1_1_bab_node.html#a04b7b97d9b302cf99808e0301272d740',1,'babBase::BabNode::set_lower_bound(const std::vector&lt; double &gt; lowerBounds)'],['../classbab_base_1_1_bab_node.html#aa0027fd7c95a73e253aeb383b9e8468a',1,'babBase::BabNode::set_lower_bound(const unsigned iVar, const double value)']]],
   ['set_5fmodel',['set_model',['../classmaingo_1_1_m_ai_n_g_o.html#a1fe4e8690548362eb1ec74fb052a424e',1,'maingo::MAiNGO']]],
-  ['set_5fname',['set_name',['../structmaingo_1_1model_function.html#ae27a8eb161619cea1e29a6df0d38c3d7',1,'maingo::modelFunction']]],
+  ['set_5fname',['set_name',['../structmaingo_1_1_model_function.html#a77f51cfc74b6f5dc0b1a8919b01f3333',1,'maingo::ModelFunction']]],
   ['set_5fnew_5fincumbent_5fpoint',['set_new_incumbent_point',['../classbab_base_1_1_brancher.html#a657a3dc42d1a34b8a04e9e9d9c699ff6',1,'babBase::Brancher']]],
   ['set_5fnode_5fselection_5fscore',['set_node_selection_score',['../classbab_base_1_1_bab_node_with_info.html#aae390aed47e097508887f3df907c88ae',1,'babBase::BabNodeWithInfo']]],
   ['set_5fnode_5fselection_5fscore_5ffunction',['set_node_selection_score_function',['../classbab_base_1_1_brancher.html#aea9a04b2eef42673d67e0e8340d8bcfe',1,'babBase::Brancher']]],
   ['set_5fnode_5fselection_5fstrategy',['set_node_selection_strategy',['../classbab_base_1_1_brancher.html#af9d7e5d2ea87c0a161e6719188b8c745',1,'babBase::Brancher::set_node_selection_strategy()'],['../classbab_base_1_1_bab_tree.html#a58f93eb766b7a68e9d88699e267fdd0e',1,'babBase::BabTree::set_node_selection_strategy()']]],
   ['set_5fobjective_5findex',['set_objective_index',['../classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#aef1305b0d90fe52fdd99b6545cf77755',1,'maingo::MAiNGOmodelEpsCon']]],
-  ['set_5foption',['set_option',['../classmaingo_1_1_m_ai_n_g_o.html#a383bc41aef21457041b6a79d0a376bed',1,'maingo::MAiNGO']]],
-  ['set_5foutput_5fstream',['set_output_stream',['../classmaingo_1_1_logger.html#ab4c18700b160cbe53b4e59069e7fcedd',1,'maingo::Logger::set_output_stream()'],['../classmaingo_1_1_m_ai_n_g_o.html#a66b60c8b60e9525e96e4d2dbb6398f88',1,'maingo::MAiNGO::set_output_stream()']]],
+  ['set_5foption',['set_option',['../classmaingo_1_1_m_ai_n_g_o.html#ae2bc7507ee0341d7b0a8ac06702ca964',1,'maingo::MAiNGO::set_option(const std::string &amp;option, const double value)'],['../classmaingo_1_1_m_ai_n_g_o.html#a21ee05457f51d5b22853d10cb4114b96',1,'maingo::MAiNGO::set_option(const std::string &amp;option, const bool value)'],['../classmaingo_1_1_m_ai_n_g_o.html#a1f8ea652c3ae60bad558c3aeb66f1085',1,'maingo::MAiNGO::set_option(const std::string &amp;option, const int value)']]],
+  ['set_5foutput_5fstream',['set_output_stream',['../classmaingo_1_1_logger.html#ae5cb965f581d2940eea1730a5e7a1f06',1,'maingo::Logger::set_output_stream()'],['../classmaingo_1_1_m_ai_n_g_o.html#a1a4ba608b818d6a2e303b836505e0234',1,'maingo::MAiNGO::set_output_stream()']]],
   ['set_5fpruning_5fscore',['set_pruning_score',['../classbab_base_1_1_bab_node.html#a747d334dcf93c85f9e2bd234b875486a',1,'babBase::BabNode']]],
   ['set_5fpruning_5fscore_5fthreshold',['set_pruning_score_threshold',['../classbab_base_1_1_bab_tree.html#a49521ddbee9e1d7e2a2b494d2ad5c4f5',1,'babBase::BabTree']]],
-  ['set_5fres_5ffile_5fname',['set_res_file_name',['../classmaingo_1_1_m_ai_n_g_o.html#ade7741b5e86018f3167c9f34622a2733',1,'maingo::MAiNGO']]],
+  ['set_5fresult_5ffile_5fname',['set_result_file_name',['../classmaingo_1_1_m_ai_n_g_o.html#a4dc94835e031b37290f96814486c2903',1,'maingo::MAiNGO']]],
   ['set_5fsingle_5fobjective',['set_single_objective',['../classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a20ba39ce81ad97f3c58e1fa78c0356af',1,'maingo::MAiNGOmodelEpsCon']]],
+  ['set_5fsolution_5fand_5fstatistics_5fcsv_5ffile_5fname',['set_solution_and_statistics_csv_file_name',['../classmaingo_1_1_m_ai_n_g_o.html#a0157c25ef59573826a916e301e836330',1,'maingo::MAiNGO']]],
   ['set_5fupper_5fbound',['set_upper_bound',['../classbab_base_1_1_bab_node.html#a78cfcab15536723a4e2e0ee40c316167',1,'babBase::BabNode::set_upper_bound(const std::vector&lt; double &gt; upperBounds)'],['../classbab_base_1_1_bab_node.html#a2de1be347ecc66acf68ff816e2df0508',1,'babBase::BabNode::set_upper_bound(const unsigned iVar, const double value)']]],
-  ['set_5fvalue',['set_value',['../structmaingo_1_1model_function.html#ac7ccbc9aabfa39f93e01e706f74f649e',1,'maingo::modelFunction']]],
-  ['settings',['Settings',['../structmaingo_1_1_settings.html#ab7169a6eefce79566dd07db3b1e5e967',1,'maingo::Settings::Settings()'],['../structmaingo_1_1_settings.html#a74c2b2798213ed88903b13e8d9ca14e2',1,'maingo::Settings::Settings(const Settings &amp;)=default']]],
+  ['set_5fvalue',['set_value',['../structmaingo_1_1_model_function.html#a0af1f22b1bc87961451c52913567a4fd',1,'maingo::ModelFunction']]],
   ['sin',['sin',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#acf627d293021a04bb8ba547ad6349437',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['sinh',['sinh',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a060be08bd96d38d7b7f64823fb843cff',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
-  ['size',['size',['../structmaingo_1_1model_function.html#a6625f2f7e468b0d5b1590284826e355a',1,'maingo::modelFunction']]],
-  ['solve',['solve',['../classmaingo_1_1bab_1_1_branch_and_bound.html#afbbe46b34b476fa5b54c5faa112581b6',1,'maingo::bab::BranchAndBound::solve(babBase::BabNode &amp;rootNodeIn, double &amp;solutionValue, std::vector&lt; double &gt; &amp;solutionPoint, const double preprocessTime, double &amp;timePassed)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a44ead97b56cfae660cbe695ef8dffb38',1,'maingo::bab::BranchAndBound::solve(babBase::BabNode &amp;rootNodeIn, double &amp;solutionValue, std::vector&lt; double &gt; &amp;solutionPoint, const double preprocessTime, double &amp;timePassed)'],['../classmaingo_1_1_m_ai_n_g_o.html#a50062c75f198aab4cd975f34fdef1506',1,'maingo::MAiNGO::solve()'],['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4ac108083fde6741e77d7c0b231bd610',1,'maingo::ubp::UpperBoundingSolver::solve()']]],
+  ['size',['size',['../structmaingo_1_1_model_function.html#a8c2f2e692410848475b8c5caffcf5e51',1,'maingo::ModelFunction']]],
+  ['solve',['solve',['../classmaingo_1_1bab_1_1_branch_and_bound.html#afbbe46b34b476fa5b54c5faa112581b6',1,'maingo::bab::BranchAndBound::solve()'],['../classmaingo_1_1_m_ai_n_g_o.html#a50062c75f198aab4cd975f34fdef1506',1,'maingo::MAiNGO::solve()'],['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4ac108083fde6741e77d7c0b231bd610',1,'maingo::ubp::UpperBoundingSolver::solve()']]],
   ['solve_5fepsilon_5fconstraint',['solve_epsilon_constraint',['../classmaingo_1_1_m_ai_n_g_o.html#a4cf012860282bcaff9890e182f4b6886',1,'maingo::MAiNGO']]],
   ['solve_5flbp',['solve_LBP',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1bd1db09ee19b087b11a761d41dc195d',1,'maingo::lbp::LowerBoundingSolver']]],
   ['solve_5fobbt',['solve_OBBT',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a51baac566450ca4b94cd715b57c38752',1,'maingo::lbp::LowerBoundingSolver']]],
diff --git a/doc/html/search/functions_12.html b/doc/html/search/functions_12.html
index 3235f8dcd25f2f2f086bf07e9281e77e433e8920..7093d19fe3d5cc9c1ab86ae46e048bfaaa98e2c6 100644
--- a/doc/html/search/functions_12.html
+++ b/doc/html/search/functions_12.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_12.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/functions_13.html b/doc/html/search/functions_13.html
index dce66cc4edb4c1def5dbc2b3f02a32a86b4af0c0..051a1eb820517a7a01ed41d9517e605ba038970b 100644
--- a/doc/html/search/functions_13.html
+++ b/doc/html/search/functions_13.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_13.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/functions_13.js b/doc/html/search/functions_13.js
index 183059aadbd8c66c1c1c063660723aafe554d4bb..ee05420a77fd2f6268f0cba7710c3f20abb32228 100644
--- a/doc/html/search/functions_13.js
+++ b/doc/html/search/functions_13.js
@@ -2,12 +2,12 @@ var searchData=
 [
   ['u',['u',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ade6ffcc7987d0baac66bc5f08fdd6d91',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['ub_5ffunc',['ub_func',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a85b7c9efebaa4cf91b58f633079754f0',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
-  ['ubpclp',['UbpClp',['../classmaingo_1_1ubp_1_1_ubp_clp.html#acffeaea83adc9f0e61e3998fab15cf6f',1,'maingo::ubp::UbpClp::UbpClp(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, UBS_USE useIn)'],['../classmaingo_1_1ubp_1_1_ubp_clp.html#add6af506f65cb501373ca1c57e51b82c',1,'maingo::ubp::UbpClp::UbpClp(const UbpClp &amp;)']]],
-  ['ubpcplex',['UbpCplex',['../classmaingo_1_1ubp_1_1_ubp_cplex.html#a151f2ced79870ee59b168cdcaaf34bff',1,'maingo::ubp::UbpCplex::UbpCplex(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, UBS_USE useIn)'],['../classmaingo_1_1ubp_1_1_ubp_cplex.html#a080f171542c7ad6ffb84762238bdb816',1,'maingo::ubp::UbpCplex::UbpCplex(const UbpCplex &amp;)']]],
-  ['ubpipopt',['UbpIpopt',['../classmaingo_1_1ubp_1_1_ubp_ipopt.html#a3b4a6331fd9876205ae349bdc95d06a4',1,'maingo::ubp::UbpIpopt::UbpIpopt(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, UBS_USE useIn)'],['../classmaingo_1_1ubp_1_1_ubp_ipopt.html#a452dbba117fa1b3edd676f31c04258fe',1,'maingo::ubp::UbpIpopt::UbpIpopt(const UbpIpopt &amp;)']]],
-  ['ubpknitro',['UbpKnitro',['../classmaingo_1_1ubp_1_1_ubp_knitro.html#ac916b5455e5ae20c5d9dd9a4006d0482',1,'maingo::ubp::UbpKnitro::UbpKnitro(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, UBS_USE useIn)'],['../classmaingo_1_1ubp_1_1_ubp_knitro.html#a76b1d3d5ca75b9d7b12015482fae7aa5',1,'maingo::ubp::UbpKnitro::UbpKnitro(const UbpKnitro &amp;)']]],
-  ['ubpnlopt',['UbpNLopt',['../classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a84e83af5033d99a79f1fd1d65f6b8b7f',1,'maingo::ubp::UbpNLopt::UbpNLopt(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, UBS_USE useIn)'],['../classmaingo_1_1ubp_1_1_ubp_n_lopt.html#aa41c03634188b349a77fa5b33f987bd4',1,'maingo::ubp::UbpNLopt::UbpNLopt(const UbpNLopt &amp;)']]],
+  ['ubpclp',['UbpClp',['../classmaingo_1_1ubp_1_1_ubp_clp.html#a2ff59fcf2223f5851ec4fffa59299656',1,'maingo::ubp::UbpClp::UbpClp(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, UBS_USE useIn)'],['../classmaingo_1_1ubp_1_1_ubp_clp.html#add6af506f65cb501373ca1c57e51b82c',1,'maingo::ubp::UbpClp::UbpClp(const UbpClp &amp;)']]],
+  ['ubpcplex',['UbpCplex',['../classmaingo_1_1ubp_1_1_ubp_cplex.html#aa7a3ededf743a2cde154b5c267cf26d6',1,'maingo::ubp::UbpCplex::UbpCplex(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, UBS_USE useIn)'],['../classmaingo_1_1ubp_1_1_ubp_cplex.html#a080f171542c7ad6ffb84762238bdb816',1,'maingo::ubp::UbpCplex::UbpCplex(const UbpCplex &amp;)']]],
+  ['ubpipopt',['UbpIpopt',['../classmaingo_1_1ubp_1_1_ubp_ipopt.html#acd84ac4a7669c214242419ee880426fa',1,'maingo::ubp::UbpIpopt::UbpIpopt(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, UBS_USE useIn)'],['../classmaingo_1_1ubp_1_1_ubp_ipopt.html#a452dbba117fa1b3edd676f31c04258fe',1,'maingo::ubp::UbpIpopt::UbpIpopt(const UbpIpopt &amp;)']]],
+  ['ubpknitro',['UbpKnitro',['../classmaingo_1_1ubp_1_1_ubp_knitro.html#a94a323841bca8d54129aa85fad4ce06c',1,'maingo::ubp::UbpKnitro::UbpKnitro(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, UBS_USE useIn)'],['../classmaingo_1_1ubp_1_1_ubp_knitro.html#a76b1d3d5ca75b9d7b12015482fae7aa5',1,'maingo::ubp::UbpKnitro::UbpKnitro(const UbpKnitro &amp;)']]],
+  ['ubpnlopt',['UbpNLopt',['../classmaingo_1_1ubp_1_1_ubp_n_lopt.html#ae5c7ea9072ed95c5521916c756be3f0f',1,'maingo::ubp::UbpNLopt::UbpNLopt(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, UBS_USE useIn)'],['../classmaingo_1_1ubp_1_1_ubp_n_lopt.html#aa41c03634188b349a77fa5b33f987bd4',1,'maingo::ubp::UbpNLopt::UbpNLopt(const UbpNLopt &amp;)']]],
   ['ubpquadexpr',['UbpQuadExpr',['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#ab448dba7b8e6123194c9cf88ae2f2b65',1,'maingo::ubp::UbpQuadExpr::UbpQuadExpr()'],['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a44b8597bd206f1afad3abfe8de039716',1,'maingo::ubp::UbpQuadExpr::UbpQuadExpr(const size_t nvarIn)'],['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a44586840f98d6fa9e24fa04e67b7fea4',1,'maingo::ubp::UbpQuadExpr::UbpQuadExpr(const size_t nvarIn, const size_t iLin)'],['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a6a7b56e39550931c2feb3bad0a801c38',1,'maingo::ubp::UbpQuadExpr::UbpQuadExpr(const double in)']]],
   ['update_5fincumbent_5flbp',['update_incumbent_LBP',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2f1320936ed40642c7cf4cf0fe31d14f',1,'maingo::lbp::LowerBoundingSolver']]],
-  ['upperboundingsolver',['UpperBoundingSolver',['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a9ce3a82556ab016cdff94f032b19d6af',1,'maingo::ubp::UpperBoundingSolver::UpperBoundingSolver(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, UBS_USE useIn)'],['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ae75dea5b3107d53e3ffec3b0c18d7749',1,'maingo::ubp::UpperBoundingSolver::UpperBoundingSolver()'],['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1c0659fdddc86e0528771ce8dd977f7e',1,'maingo::ubp::UpperBoundingSolver::UpperBoundingSolver(const UpperBoundingSolver &amp;)']]]
+  ['upperboundingsolver',['UpperBoundingSolver',['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ad9c2c0ae5e137605da0f9588df694a52',1,'maingo::ubp::UpperBoundingSolver::UpperBoundingSolver(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, UBS_USE useIn)'],['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ae75dea5b3107d53e3ffec3b0c18d7749',1,'maingo::ubp::UpperBoundingSolver::UpperBoundingSolver()'],['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1c0659fdddc86e0528771ce8dd977f7e',1,'maingo::ubp::UpperBoundingSolver::UpperBoundingSolver(const UpperBoundingSolver &amp;)']]]
 ];
diff --git a/doc/html/search/functions_14.html b/doc/html/search/functions_14.html
index 4c663fa5a0f98a920c42b3dbe923574f9ac617c0..d5fdbda44e849ed5e755f724603d997446a58c69 100644
--- a/doc/html/search/functions_14.html
+++ b/doc/html/search/functions_14.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_14.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/functions_15.html b/doc/html/search/functions_15.html
index 071f6c4f7b36d73526e73164bc1e4827158dfd7f..546d13e65409b8aa0a639bd8c0ab9d92961c84e4 100644
--- a/doc/html/search/functions_15.html
+++ b/doc/html/search/functions_15.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_15.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/functions_15.js b/doc/html/search/functions_15.js
index db2ad7723560ebc9fc92f6c9c4109bd92718a582..bb436f3219529ff098a4894811af9817dc0ebee0 100644
--- a/doc/html/search/functions_15.js
+++ b/doc/html/search/functions_15.js
@@ -2,7 +2,8 @@ var searchData=
 [
   ['wagner_5fpsat',['wagner_psat',['../function_wrapper_8h.html#a65b26fb0e0072635c113609dee611e6e',1,'wagner_psat(const mc::FFVar &amp;Var, const double p1, const double p2, const double p3, const double p4, const double Tc, const double p6):&#160;functionWrapper.h'],['../function_wrapper_8h.html#a86b8d89d4aece6d081f111422079ea88',1,'wagner_psat(const mc::FFVar &amp;T, const std::vector&lt; double &gt; p):&#160;functionWrapper.h']]],
   ['watson_5fdhvap',['watson_dhvap',['../function_wrapper_8h.html#a194545da47bf162f208d599f4e460017',1,'watson_dhvap(const mc::FFVar &amp;T, const double Tc, const double a, const double b, const double T1, const double dHT1):&#160;functionWrapper.h'],['../function_wrapper_8h.html#ab37b968c39c60ec673af52218aa7ffa0',1,'watson_dhvap(const mc::FFVar &amp;T, const std::vector&lt; double &gt; p):&#160;functionWrapper.h']]],
-  ['what',['what',['../classmaingo_1_1_m_ai_n_g_o_exception.html#a382a9c1299485b028ea4a82afe5c1952',1,'maingo::MAiNGOException::what()'],['../classbab_base_1_1_branch_and_bound_base_exception.html#a91e5a78198bf8ef94f140a9ac5978d05',1,'babBase::BranchAndBoundBaseException::what()']]],
-  ['write_5fall_5fiterations_5fto_5fcsv',['write_all_iterations_to_csv',['../classmaingo_1_1_logger.html#aa557a6ff14dbd38ab4b251c56caa0f37',1,'maingo::Logger']]],
-  ['write_5fall_5flines_5fto_5flog',['write_all_lines_to_log',['../classmaingo_1_1_logger.html#a99d59c1e627c16bfa155803f42cf28e7',1,'maingo::Logger']]]
+  ['what',['what',['../classmaingo_1_1_m_ai_n_g_o_exception.html#a07682a0877265a921df4401bb1dbb3f6',1,'maingo::MAiNGOException::what()'],['../classbab_base_1_1_branch_and_bound_base_exception.html#a91e5a78198bf8ef94f140a9ac5978d05',1,'babBase::BranchAndBoundBaseException::what()']]],
+  ['write_5fall_5fiterations_5fto_5fcsv',['write_all_iterations_to_csv',['../classmaingo_1_1_logger.html#a17570df4a0a318ddf4e186a4fc66f476',1,'maingo::Logger']]],
+  ['write_5fall_5flines_5fto_5flog',['write_all_lines_to_log',['../classmaingo_1_1_logger.html#a3134c2ef11ad7c45c3c8467421966021',1,'maingo::Logger']]],
+  ['write_5fmodel_5fto_5ffile_5fin_5fother_5flanguage',['write_model_to_file_in_other_language',['../classmaingo_1_1_m_ai_n_g_o.html#a8acf1fc912457043365faabd54861d50',1,'maingo::MAiNGO']]]
 ];
diff --git a/doc/html/search/functions_16.html b/doc/html/search/functions_16.html
index 185f971028999952a491476143267d6d4d02d205..b3e771acd0cc7dc989939dca8fa7699c147916ad 100644
--- a/doc/html/search/functions_16.html
+++ b/doc/html/search/functions_16.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_16.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/functions_17.html b/doc/html/search/functions_17.html
index 6f92cf7ad88a261d8dcb32b47c0b0422db6fb580..a7b9068756350e16226da9b661d316ec5aa6df7f 100644
--- a/doc/html/search/functions_17.html
+++ b/doc/html/search/functions_17.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_17.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/functions_18.html b/doc/html/search/functions_18.html
index 9552ba8c8390f43cd4df6fc4e07db7690f762b7c..c9d8f4c2c2fde8419f1a3e0a90a7b8f9272f20e7 100644
--- a/doc/html/search/functions_18.html
+++ b/doc/html/search/functions_18.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_18.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/functions_18.js b/doc/html/search/functions_18.js
index bd090386ad3b3661469c9aa4a19effefba4df046..3c1598c13583342d92e9b2e292b43c8570c1db3a 100644
--- a/doc/html/search/functions_18.js
+++ b/doc/html/search/functions_18.js
@@ -1,7 +1,7 @@
 var searchData=
 [
   ['_7ebabtree',['~BabTree',['../classbab_base_1_1_bab_tree.html#a55a52c08fcb2eb8a59aa7b4b770ffb03',1,'babBase::BabTree']]],
-  ['_7ebranchandbound',['~BranchAndBound',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a7db5251fcd9ad3ca2892a9b17cb7b197',1,'maingo::bab::BranchAndBound::~BranchAndBound()'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a7db5251fcd9ad3ca2892a9b17cb7b197',1,'maingo::bab::BranchAndBound::~BranchAndBound()']]],
+  ['_7ebranchandbound',['~BranchAndBound',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a7db5251fcd9ad3ca2892a9b17cb7b197',1,'maingo::bab::BranchAndBound']]],
   ['_7ebrancher',['~Brancher',['../classbab_base_1_1_brancher.html#a7ed3656c248fc5438ebd4cfe15fd95e7',1,'babBase::Brancher']]],
   ['_7eipoptproblem',['~IpoptProblem',['../classmaingo_1_1ubp_1_1_ipopt_problem.html#a83ab40c3ed93a2ec0d23a3e62d3eb92f',1,'maingo::ubp::IpoptProblem']]],
   ['_7eknitroproblem',['~KnitroProblem',['../classmaingo_1_1ubp_1_1_knitro_problem.html#a5aafe97d4cd0294ca5998f7973a79bfe',1,'maingo::ubp::KnitroProblem']]],
@@ -10,9 +10,11 @@ var searchData=
   ['_7elogger',['~Logger',['../classmaingo_1_1_logger.html#a31cae103ef08470e0db45f01c0360eed',1,'maingo::Logger']]],
   ['_7elowerboundingsolver',['~LowerBoundingSolver',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae45e85f9c8bc19bba1510e89b0698a97',1,'maingo::lbp::LowerBoundingSolver']]],
   ['_7emaingo',['~MAiNGO',['../classmaingo_1_1_m_ai_n_g_o.html#aa50b9f4993a803eb7ac98dee8ea2fcf1',1,'maingo::MAiNGO']]],
+  ['_7emaingoexception',['~MAiNGOException',['../classmaingo_1_1_m_ai_n_g_o_exception.html#a2bddf4891f256ffd2f7395626412568a',1,'maingo::MAiNGOException']]],
   ['_7emaingomodel',['~MAiNGOmodel',['../classmaingo_1_1_m_ai_n_g_omodel.html#ac1ff18446d407e6f663d4bf41fdb1003',1,'maingo::MAiNGOmodel']]],
   ['_7emaingomodelepscon',['~MAiNGOmodelEpsCon',['../classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a0024c407e035cdadcf47b27e862b27ae',1,'maingo::MAiNGOmodelEpsCon']]],
-  ['_7emodelfunction',['~modelFunction',['../structmaingo_1_1model_function.html#a8b288537eb4166adf7ffb65456bee18e',1,'maingo::modelFunction']]],
+  ['_7emodelfunction',['~ModelFunction',['../structmaingo_1_1_model_function.html#af5cbeca4a2b4e75d111e6073e9351a8b',1,'maingo::ModelFunction']]],
+  ['_7eoutputvariable',['~OutputVariable',['../structmaingo_1_1_output_variable.html#a09d1a2a865522f69c19cb057bc95f03f',1,'maingo::OutputVariable']]],
   ['_7eubpcplex',['~UbpCplex',['../classmaingo_1_1ubp_1_1_ubp_cplex.html#ada023ef9d9bd4904e5e47e2181d38ab9',1,'maingo::ubp::UbpCplex']]],
   ['_7eubpknitro',['~UbpKnitro',['../classmaingo_1_1ubp_1_1_ubp_knitro.html#a0ebc116dd3ddaea32fb9330ee725295d',1,'maingo::ubp::UbpKnitro']]],
   ['_7eupperboundingsolver',['~UpperBoundingSolver',['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa17ca0c5dbf33219148dc2fff3446357',1,'maingo::ubp::UpperBoundingSolver']]]
diff --git a/doc/html/search/functions_2.html b/doc/html/search/functions_2.html
index 2b44474ed7f8fdcf10acf158442766b3fb5d8945..67d2a392cb0b10d81bcb63286ae53d6c1194ee3b 100644
--- a/doc/html/search/functions_2.html
+++ b/doc/html/search/functions_2.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_2.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/functions_2.js b/doc/html/search/functions_2.js
index b77437e399657c5b48f0ad1ecc54595c7815f45d..031199bf8584dba23a70151bc64c2c7789d798d6 100644
--- a/doc/html/search/functions_2.js
+++ b/doc/html/search/functions_2.js
@@ -4,9 +4,10 @@ var searchData=
   ['babnodewithinfo',['BabNodeWithInfo',['../classbab_base_1_1_bab_node_with_info.html#aa8a0898f9749b240c21468fe50f7209d',1,'babBase::BabNodeWithInfo']]],
   ['babtree',['BabTree',['../classbab_base_1_1_bab_tree.html#a67b93250145e013dfa036ba6a4fa6d2f',1,'babBase::BabTree::BabTree()'],['../classbab_base_1_1_bab_tree.html#af3c54f4e2ab1fe4c29e7792884d5c13e',1,'babBase::BabTree::BabTree(const BabTree &amp;)=default'],['../classbab_base_1_1_bab_tree.html#a04098727fb3f1d1f292e64775d530975',1,'babBase::BabTree::BabTree(BabTree &amp;&amp;)=default']]],
   ['bounding_5ffunc',['bounding_func',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ae1eab66656e68a802a2d5a9a5aeb893e',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
-  ['bounds',['Bounds',['../structbab_base_1_1_bounds.html#a143d3617a4792c4ab189e372e8e0b681',1,'babBase::Bounds::Bounds(const double lowerIn, const double upperIn)'],['../structbab_base_1_1_bounds.html#a58871ce4b6cf44aa16f6dd240fdeb295',1,'babBase::Bounds::Bounds(Bounds &amp;&amp;)=default'],['../structbab_base_1_1_bounds.html#af1d929f0940ec89277c8813e9f6e32eb',1,'babBase::Bounds::Bounds(const Bounds &amp;)=default']]],
+  ['bounds',['Bounds',['../structbab_base_1_1_bounds.html#a143d3617a4792c4ab189e372e8e0b681',1,'babBase::Bounds']]],
+  ['bounds_5fchanged_5ffrom_5fuser_5finput',['bounds_changed_from_user_input',['../classbab_base_1_1_optimization_variable.html#ad2f581a8c131d5381232bce213e60823',1,'babBase::OptimizationVariable']]],
   ['branch_5fon_5fnode',['branch_on_node',['../classbab_base_1_1_brancher.html#ac0128b99d5fdfc973298293f5913e729',1,'babBase::Brancher']]],
-  ['branchandbound',['BranchAndBound',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a0795ab80ed85f416a1834c2bc62f2d88',1,'maingo::bab::BranchAndBound::BranchAndBound(const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, std::shared_ptr&lt; lbp::LowerBoundingSolver &gt; LBSIn, std::shared_ptr&lt; ubp::UpperBoundingSolver &gt; UBSIn, Settings *settingsIn, Logger *loggerIn, const unsigned nvarWOaux)'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a2d88760ca48bcea923ba4e868d5bdf43',1,'maingo::bab::BranchAndBound::BranchAndBound(const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, std::shared_ptr&lt; lbp::LowerBoundingSolver &gt; LBSIn, std::shared_ptr&lt; ubp::UpperBoundingSolver &gt; UBSIn, Settings *settingsIn, Logger *loggerIn, const unsigned nvarWOaux)']]],
+  ['branchandbound',['BranchAndBound',['../classmaingo_1_1bab_1_1_branch_and_bound.html#ab1e963d56b3adc807decb6e4dc1bee85',1,'maingo::bab::BranchAndBound']]],
   ['branchandboundbaseexception',['BranchAndBoundBaseException',['../classbab_base_1_1_branch_and_bound_base_exception.html#a88e91f98099cf5db2b7365e13c9f0c3c',1,'babBase::BranchAndBoundBaseException::BranchAndBoundBaseException()'],['../classbab_base_1_1_branch_and_bound_base_exception.html#ad4101cc86f164c33d7c65dd0f297e156',1,'babBase::BranchAndBoundBaseException::BranchAndBoundBaseException(const std::string &amp;arg)'],['../classbab_base_1_1_branch_and_bound_base_exception.html#a5e7b4d42142131b575e574f3ebd52f1e',1,'babBase::BranchAndBoundBaseException::BranchAndBoundBaseException(const std::string &amp;arg, const babBase::BabNode &amp;node)'],['../classbab_base_1_1_branch_and_bound_base_exception.html#a71f28b078d7768229740454c289a99fe',1,'babBase::BranchAndBoundBaseException::BranchAndBoundBaseException(const std::string &amp;arg, const std::exception &amp;e)'],['../classbab_base_1_1_branch_and_bound_base_exception.html#a6d0ede19ef9bd580ca1a2d3dcfdbced6',1,'babBase::BranchAndBoundBaseException::BranchAndBoundBaseException(const std::string &amp;arg, const std::exception &amp;e, const babBase::BabNode &amp;node)'],['../classbab_base_1_1_branch_and_bound_base_exception.html#accd49c50678ca442ea7a7f90d9ca10f0',1,'babBase::BranchAndBoundBaseException::BranchAndBoundBaseException(const std::string &amp;arg, const std::exception *e, const babBase::BabNode *node)']]],
   ['brancher',['Brancher',['../classbab_base_1_1_brancher.html#a05da26d4f5c313167569a1b23eb4539d',1,'babBase::Brancher::Brancher(const std::vector&lt; OptimizationVariable &gt; &amp;variables)'],['../classbab_base_1_1_brancher.html#af9dc4eaddda3e1818ed6340be4353448',1,'babBase::Brancher::Brancher(const Brancher &amp;)=default'],['../classbab_base_1_1_brancher.html#ac0238943a7feb7c455d68e83f491f5ff',1,'babBase::Brancher::Brancher(Brancher &amp;&amp;)=default']]],
   ['bstep',['bstep',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a4ee526b8aee72df2eec3366b9be4037e',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]]
diff --git a/doc/html/search/functions_3.html b/doc/html/search/functions_3.html
index 3dca36715cc7dec091c41375e25183e9f14176b8..1f0eedb334b08114a461b901e165270ecc4d5829 100644
--- a/doc/html/search/functions_3.html
+++ b/doc/html/search/functions_3.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_3.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/functions_3.js b/doc/html/search/functions_3.js
index 4a93e6033cc4833a83a983803a7c6f87523e2a00..704d46210b30e6d03a07adaedd53215e2ac624fa 100644
--- a/doc/html/search/functions_3.js
+++ b/doc/html/search/functions_3.js
@@ -3,7 +3,7 @@ var searchData=
   ['calculate_5fpseudocost_5fmultipliers_5fminus_5fand_5fplus',['calculate_pseudocost_multipliers_minus_and_plus',['../namespacebab_base.html#ad18c8a7d403193113c3d6c4ecef067c3',1,'babBase']]],
   ['cheb',['cheb',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ad9a450d917deff7d35dcbc47b952c528',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['check_5ffeasibility',['check_feasibility',['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#af057bf3a184ca83102a6237bb83dd261',1,'maingo::ubp::UpperBoundingSolver']]],
-  ['clear',['clear',['../structmaingo_1_1model_function.html#ac410fafee15b027dc87007207aca4fe0',1,'maingo::modelFunction::clear()'],['../structmaingo_1_1_evaluation_container.html#ab9eb3ecf31c9d5d48ccb04880a635819',1,'maingo::EvaluationContainer::clear()'],['../classmaingo_1_1_logger.html#ad63939a5c0535c5abb8e59024b0ca6d4',1,'maingo::Logger::clear()'],['../structbab_base_1_1_bab_log.html#a0128ab65edc7360210dd3a183f44e9d9',1,'babBase::BabLog::clear()']]],
+  ['clear',['clear',['../structmaingo_1_1_model_function.html#aadda375307d57abd5a7e1c3f8fee2289',1,'maingo::ModelFunction::clear()'],['../structmaingo_1_1_evaluation_container.html#ab9eb3ecf31c9d5d48ccb04880a635819',1,'maingo::EvaluationContainer::clear()'],['../classmaingo_1_1_logger.html#ad63939a5c0535c5abb8e59024b0ca6d4',1,'maingo::Logger::clear()'],['../structbab_base_1_1_bab_log.html#a0128ab65edc7360210dd3a183f44e9d9',1,'babBase::BabLog::clear()']]],
   ['constraint',['Constraint',['../structmaingo_1_1_constraint.html#ad56325852b641d2f3eb557b0f6f161a6',1,'maingo::Constraint::Constraint()'],['../structmaingo_1_1_constraint.html#a5d45d01e07187f636bf0b381c460d32e',1,'maingo::Constraint::Constraint(const CONSTRAINT_TYPE typeIn, const unsigned indexOriginalIn, const unsigned indexTypeIn, const unsigned indexNonconstantIn, const unsigned indexTypeNonconstantIn, const std::string &amp;nameIn=&quot;&quot;)'],['../structmaingo_1_1_constraint.html#a472c03a2d70a7547d9307daf622ddda9',1,'maingo::Constraint::Constraint(const CONSTRAINT_TYPE typeIn, const unsigned indexOriginalIn, const unsigned indexTypeIn, const unsigned indexConstantIn, const unsigned indexTypeConstantIn, const bool isConstantIn, const bool isFeasibleIn, const double valueIn, const std::string &amp;nameIn=&quot;&quot;)'],['../structmaingo_1_1_constraint.html#aae18f66e85bbadc497876478786b50f6',1,'maingo::Constraint::Constraint(const Constraint &amp;)=default']]],
   ['cos',['cos',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a10e1f863003795a5e2eaabcc49772c3c',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['cosh',['cosh',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ac069ad54ff97a3a223fc69a07e9da183',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
@@ -15,7 +15,6 @@ var searchData=
   ['covar_5fmatern_5f5',['covar_matern_5',['../function_wrapper_8h.html#acb14288e216211260fde8ff031a8deec',1,'functionWrapper.h']]],
   ['covar_5fsqrexp',['covar_sqrexp',['../function_wrapper_8h.html#a5a3858fb864d7372bea4eec87c99c2c7',1,'functionWrapper.h']]],
   ['covariance_5ffunction',['covariance_function',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a7e6b2880426b3aaf6ad0406c588d5ed2',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
-  ['create_5fcsv_5ffiles',['create_csv_files',['../classmaingo_1_1_logger.html#a5776c77c4580d822350dc88225e46061',1,'maingo::Logger']]],
-  ['create_5fjson_5ffile',['create_json_file',['../classmaingo_1_1_logger.html#ab4926dc6a379823a0ece98e30f6a384f',1,'maingo::Logger']]],
-  ['create_5flog_5ffile',['create_log_file',['../classmaingo_1_1_logger.html#aa6c83f95144d085092f854d64b9c1e2f',1,'maingo::Logger']]]
+  ['create_5fiterations_5fcsv_5ffile',['create_iterations_csv_file',['../classmaingo_1_1_logger.html#a168a8239c87de32a540c9fdcb6a54ff7',1,'maingo::Logger']]],
+  ['create_5flog_5ffile',['create_log_file',['../classmaingo_1_1_logger.html#af67b92595cd069c402df9a448cd784a3',1,'maingo::Logger']]]
 ];
diff --git a/doc/html/search/functions_4.html b/doc/html/search/functions_4.html
index e713f286700b6c851fec649ccb943df2e54f0bb6..c5bf87a47351d65e4613c72a3d39aeb810149a20 100644
--- a/doc/html/search/functions_4.html
+++ b/doc/html/search/functions_4.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_4.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/functions_4.js b/doc/html/search/functions_4.js
index ef07cfdbdfc704aac9f4a30513042b04094dfb26..b885e4fad23194515d7a638aa96d685d2da1a448 100644
--- a/doc/html/search/functions_4.js
+++ b/doc/html/search/functions_4.js
@@ -1,6 +1,6 @@
 var searchData=
 [
-  ['dagobj',['DagObj',['../structmaingo_1_1lbp_1_1_dag_obj.html#afb7fb4ac1246771689f6e244e4777b06',1,'maingo::lbp::DagObj::DagObj()'],['../structmaingo_1_1ubp_1_1_dag_obj.html#a38d4d4e046f3eea00ef8dce95ad36337',1,'maingo::ubp::DagObj::DagObj()']]],
+  ['dagobj',['DagObj',['../structmaingo_1_1lbp_1_1_dag_obj.html#a03d316c8bf417fbb010961bb31d7cdbc',1,'maingo::lbp::DagObj::DagObj()'],['../structmaingo_1_1ubp_1_1_dag_obj.html#a33f13fd662a2603c031c7284cd1ca098',1,'maingo::ubp::DagObj::DagObj()']]],
   ['decrease_5fpruning_5fscore_5fthreshold_5fto',['decrease_pruning_score_threshold_to',['../classbab_base_1_1_brancher.html#af8c884a0262c7719aa832d2ed8761ea7',1,'babBase::Brancher']]],
   ['delete_5felement',['delete_element',['../classbab_base_1_1_bab_tree.html#a0d63f7d99cc24bac3d632d53517939bf',1,'babBase::BabTree']]],
   ['diam',['diam',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a580343aaf00d1a8e833792805b5be075',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
diff --git a/doc/html/search/functions_5.html b/doc/html/search/functions_5.html
index cfe6b17d97bd88851e9bdac31880b509d73ee2a0..a34446ce73bbe0927dbf74dd846e9434ff4409eb 100644
--- a/doc/html/search/functions_5.html
+++ b/doc/html/search/functions_5.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_5.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/functions_5.js b/doc/html/search/functions_5.js
index 0d79b2f8c050f6d181c1724e8c8817aa10474095..f0bfd049153642963af4935d7f9cf61077024494 100644
--- a/doc/html/search/functions_5.js
+++ b/doc/html/search/functions_5.js
@@ -11,11 +11,15 @@ var searchData=
   ['eval_5fgrad_5ff',['eval_grad_f',['../classmaingo_1_1ubp_1_1_ipopt_problem.html#a724a9a70c286024101d8bcbe0ee1f054',1,'maingo::ubp::IpoptProblem']]],
   ['eval_5fh',['eval_h',['../classmaingo_1_1ubp_1_1_ipopt_problem.html#af839069f9d7a1d29e7a0298fdd4cc8c1',1,'maingo::ubp::IpoptProblem']]],
   ['eval_5fjac_5fg',['eval_jac_g',['../classmaingo_1_1ubp_1_1_ipopt_problem.html#ac97f040e982cca72af0203b014638f4a',1,'maingo::ubp::IpoptProblem']]],
-  ['evaluate',['evaluate',['../classmaingo_1_1_ale_model.html#a3ef454e2c543640ff4f77217396019f2',1,'maingo::AleModel::evaluate()'],['../classmaingo_1_1_m_ai_n_g_omodel.html#a7a50f1c3477c117936d2b59876e608d6',1,'maingo::MAiNGOmodel::evaluate()'],['../classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#aa52fe81513f6d8f35020b3c492a5837d',1,'maingo::MAiNGOmodelEpsCon::evaluate()']]],
+  ['evaluate',['evaluate',['../classmaingo_1_1_ale_model.html#a3ef454e2c543640ff4f77217396019f2',1,'maingo::AleModel::evaluate()'],['../classmaingo_1_1_m_ai_n_g_omodel.html#a7a50f1c3477c117936d2b59876e608d6',1,'maingo::MAiNGOmodel::evaluate()'],['../classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#aa52fe81513f6d8f35020b3c492a5837d',1,'maingo::MAiNGOmodelEpsCon::evaluate()'],['../class_py_m_ai_n_g_omodel.html#abdc36fa738c77f0e2c35f009ae35852b',1,'PyMAiNGOmodel::evaluate()']]],
+  ['evaluate_5fadditional_5foutputs_5fat_5fpoint',['evaluate_additional_outputs_at_point',['../classmaingo_1_1_m_ai_n_g_o.html#adeef2c9d324fa8f9a26819b3a3307ad7',1,'maingo::MAiNGO']]],
+  ['evaluate_5fadditional_5foutputs_5fat_5fsolution_5fpoint',['evaluate_additional_outputs_at_solution_point',['../classmaingo_1_1_m_ai_n_g_o.html#a5ee95afece75a72e91aff11274eda43a',1,'maingo::MAiNGO']]],
   ['evaluate_5fconstraints',['evaluate_constraints',['../namespacemaingo_1_1ubp.html#a4ef3bf44064e577cc0e845c66ea24b2d',1,'maingo::ubp']]],
   ['evaluate_5fequalities',['evaluate_equalities',['../namespacemaingo_1_1ubp.html#afeb581ccb97ca939b4689b62064cca07',1,'maingo::ubp']]],
   ['evaluate_5fhessian',['evaluate_hessian',['../namespacemaingo_1_1ubp.html#af36f6b98ee45ef4b3a1faf7365d437dc',1,'maingo::ubp']]],
   ['evaluate_5finequalities',['evaluate_inequalities',['../namespacemaingo_1_1ubp.html#a2ccec3ae42538f85eeb00df11bb81dbd',1,'maingo::ubp']]],
+  ['evaluate_5fmodel_5fat_5fpoint',['evaluate_model_at_point',['../classmaingo_1_1_m_ai_n_g_o.html#aaaa69dd8b526f0d9966ce35bd102601f',1,'maingo::MAiNGO']]],
+  ['evaluate_5fmodel_5fat_5fsolution_5fpoint',['evaluate_model_at_solution_point',['../classmaingo_1_1_m_ai_n_g_o.html#acd561f4e9560a6a5c501bdf444f581b8',1,'maingo::MAiNGO']]],
   ['evaluate_5fobjective',['evaluate_objective',['../namespacemaingo_1_1ubp.html#a932143bfce70a96fb11115c09792a93d',1,'maingo::ubp']]],
   ['evaluate_5fproblem',['evaluate_problem',['../namespacemaingo_1_1ubp.html#a749bd699d767cf5682bc2cc9af1a8ba2',1,'maingo::ubp']]],
   ['evaluate_5fuser_5fmodel',['evaluate_user_model',['../classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a2f0d0fb0d9bc6abc37e3ba544612ef98',1,'maingo::MAiNGOmodelEpsCon']]],
diff --git a/doc/html/search/functions_6.html b/doc/html/search/functions_6.html
index a78ec13f19cf461243d0a75705c4a9cdaa6a9633..6fd4b1f3739bccac2d8a421922afbbaa84e6bdb5 100644
--- a/doc/html/search/functions_6.html
+++ b/doc/html/search/functions_6.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_6.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/functions_7.html b/doc/html/search/functions_7.html
index 7842361ff526d4fe86960d750f2770efa3509796..6e09abf1b2aee23737c5aa102dc8f0d9906ef7b6 100644
--- a/doc/html/search/functions_7.html
+++ b/doc/html/search/functions_7.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_7.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/functions_7.js b/doc/html/search/functions_7.js
index 14ba67d06772b86e005fd2568643e48fbb212047..a32040cc14f102d962b847c27019eee95f44b00c 100644
--- a/doc/html/search/functions_7.js
+++ b/doc/html/search/functions_7.js
@@ -3,35 +3,31 @@ var searchData=
   ['gaussian_5fprobability_5fdensity_5ffunction',['gaussian_probability_density_function',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a37b2c10d1369ec2f610743339a132903',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['ge',['ge',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a33c000da2ea95bd0cc39aa2352344142',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['get',['get',['../classbab_base_1_1_out_var.html#aa2878f955a6fca58b597161aff4964a8',1,'babBase::OutVar']]],
-  ['get_5fadditional_5foutputs_5fat_5fpoint',['get_additional_outputs_at_point',['../classmaingo_1_1_m_ai_n_g_o.html#a52df8cc85640aaee13afb5cd5748dbcc',1,'maingo::MAiNGO']]],
-  ['get_5fadditional_5foutputs_5fat_5fsolution_5fpoint',['get_additional_outputs_at_solution_point',['../classmaingo_1_1_m_ai_n_g_o.html#afd0f8acfe45a05c077810ef75b8d71dd',1,'maingo::MAiNGO']]],
   ['get_5fall_5fnodes_5ffrom_5fstrong_5fbranching',['get_all_nodes_from_strong_branching',['../classbab_base_1_1_brancher.html#a2fa6eaac5e68dfde2de07ad72e74c906',1,'babBase::Brancher']]],
   ['get_5fbounds_5finfo',['get_bounds_info',['../classmaingo_1_1ubp_1_1_ipopt_problem.html#af731836f6f8a2bde2029be27b2c3e94f',1,'maingo::ubp::IpoptProblem']]],
   ['get_5fbranching_5fpriority',['get_branching_priority',['../classbab_base_1_1_optimization_variable.html#a9a19896c3ebd06e0f7a371e336d78434',1,'babBase::OptimizationVariable']]],
   ['get_5fcpu_5fsolution_5ftime',['get_cpu_solution_time',['../classmaingo_1_1_m_ai_n_g_o.html#a0c15524b2884d3604fc0a5d4b40bcccb',1,'maingo::MAiNGO']]],
   ['get_5fcpu_5ftime',['get_cpu_time',['../namespacemaingo.html#aac4ba5374ae7ff2bdca5126fd30b7f55',1,'maingo']]],
   ['get_5fdepth',['get_depth',['../classbab_base_1_1_bab_node.html#a63bb749d97a5a1ef6d5dde70ed9d4184',1,'babBase::BabNode']]],
-  ['get_5ffinal_5fabs_5fgap',['get_final_abs_gap',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a4b993e6ced9b383b2ec2e3b4e617009a',1,'maingo::bab::BranchAndBound::get_final_abs_gap()'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a4b993e6ced9b383b2ec2e3b4e617009a',1,'maingo::bab::BranchAndBound::get_final_abs_gap()'],['../classmaingo_1_1_m_ai_n_g_o.html#a0ec7e9601a2a5c8cc2f2bcb8d79c66a5',1,'maingo::MAiNGO::get_final_abs_gap()']]],
-  ['get_5ffinal_5flbd',['get_final_LBD',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a2a6ba10d4cba3be0656bdc1f434b796d',1,'maingo::bab::BranchAndBound::get_final_LBD()'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a2a6ba10d4cba3be0656bdc1f434b796d',1,'maingo::bab::BranchAndBound::get_final_LBD()'],['../classmaingo_1_1_m_ai_n_g_o.html#ace8e13bdb04862efd560c8d0d80950b4',1,'maingo::MAiNGO::get_final_LBD()']]],
-  ['get_5ffinal_5frel_5fgap',['get_final_rel_gap',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a18915a6568908d9aba4e09f1d2d8b23c',1,'maingo::bab::BranchAndBound::get_final_rel_gap()'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a18915a6568908d9aba4e09f1d2d8b23c',1,'maingo::bab::BranchAndBound::get_final_rel_gap()'],['../classmaingo_1_1_m_ai_n_g_o.html#aa244aaeeb4a93592821ab741010df615',1,'maingo::MAiNGO::get_final_rel_gap()']]],
-  ['get_5ffirst_5ffound',['get_first_found',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a63faf2c1a9fa6aaa062a271455813c01',1,'maingo::bab::BranchAndBound::get_first_found()'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a63faf2c1a9fa6aaa062a271455813c01',1,'maingo::bab::BranchAndBound::get_first_found()']]],
+  ['get_5ffinal_5fabs_5fgap',['get_final_abs_gap',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a4b993e6ced9b383b2ec2e3b4e617009a',1,'maingo::bab::BranchAndBound::get_final_abs_gap()'],['../classmaingo_1_1_m_ai_n_g_o.html#a0ec7e9601a2a5c8cc2f2bcb8d79c66a5',1,'maingo::MAiNGO::get_final_abs_gap()']]],
+  ['get_5ffinal_5flbd',['get_final_LBD',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a2a6ba10d4cba3be0656bdc1f434b796d',1,'maingo::bab::BranchAndBound::get_final_LBD()'],['../classmaingo_1_1_m_ai_n_g_o.html#ace8e13bdb04862efd560c8d0d80950b4',1,'maingo::MAiNGO::get_final_LBD()']]],
+  ['get_5ffinal_5frel_5fgap',['get_final_rel_gap',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a18915a6568908d9aba4e09f1d2d8b23c',1,'maingo::bab::BranchAndBound::get_final_rel_gap()'],['../classmaingo_1_1_m_ai_n_g_o.html#aa244aaeeb4a93592821ab741010df615',1,'maingo::MAiNGO::get_final_rel_gap()']]],
+  ['get_5ffirst_5ffound',['get_first_found',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a63faf2c1a9fa6aaa062a271455813c01',1,'maingo::bab::BranchAndBound']]],
   ['get_5fid',['get_ID',['../classbab_base_1_1_bab_node.html#a12e23225255660e57238ecb0820ea420',1,'babBase::BabNode::get_ID()'],['../classbab_base_1_1_bab_node_with_info.html#a944cee8a402dd5e3d4f8a2950eae15f2',1,'babBase::BabNodeWithInfo::get_ID()']]],
-  ['get_5finitial_5fpoint',['get_initial_point',['../classmaingo_1_1_ale_model.html#ad16d625c2b0ab88cdf8c200680477510',1,'maingo::AleModel::get_initial_point()'],['../classmaingo_1_1_m_ai_n_g_omodel.html#a929215d08a5412b014d39fcda6e5d62a',1,'maingo::MAiNGOmodel::get_initial_point()'],['../classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#af97462f303e12760d3bff115983515d4',1,'maingo::MAiNGOmodelEpsCon::get_initial_point()']]],
-  ['get_5fiterations',['get_iterations',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a90cf43573f5755481bdd020dcaa7d351',1,'maingo::bab::BranchAndBound::get_iterations()'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a90cf43573f5755481bdd020dcaa7d351',1,'maingo::bab::BranchAndBound::get_iterations()'],['../classmaingo_1_1_m_ai_n_g_o.html#a5922fb929208ad9341446f05683555f9',1,'maingo::MAiNGO::get_iterations()']]],
-  ['get_5flbp_5fcount',['get_LBP_count',['../classmaingo_1_1bab_1_1_branch_and_bound.html#af593cef9ed1bcfa512f7302732b9a614',1,'maingo::bab::BranchAndBound::get_LBP_count()'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#af593cef9ed1bcfa512f7302732b9a614',1,'maingo::bab::BranchAndBound::get_LBP_count()'],['../classmaingo_1_1_m_ai_n_g_o.html#a30f5390432b5701f3ae3b7ff3b0ae680',1,'maingo::MAiNGO::get_LBP_count()']]],
+  ['get_5finitial_5fpoint',['get_initial_point',['../classmaingo_1_1_ale_model.html#ad16d625c2b0ab88cdf8c200680477510',1,'maingo::AleModel::get_initial_point()'],['../classmaingo_1_1_m_ai_n_g_omodel.html#a929215d08a5412b014d39fcda6e5d62a',1,'maingo::MAiNGOmodel::get_initial_point()'],['../classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#af97462f303e12760d3bff115983515d4',1,'maingo::MAiNGOmodelEpsCon::get_initial_point()'],['../class_py_m_ai_n_g_omodel.html#adf3fcc040878469f11236e47066fc923',1,'PyMAiNGOmodel::get_initial_point()']]],
+  ['get_5fiterations',['get_iterations',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a90cf43573f5755481bdd020dcaa7d351',1,'maingo::bab::BranchAndBound::get_iterations()'],['../classmaingo_1_1_m_ai_n_g_o.html#a5922fb929208ad9341446f05683555f9',1,'maingo::MAiNGO::get_iterations()']]],
+  ['get_5flbp_5fcount',['get_LBP_count',['../classmaingo_1_1bab_1_1_branch_and_bound.html#af593cef9ed1bcfa512f7302732b9a614',1,'maingo::bab::BranchAndBound::get_LBP_count()'],['../classmaingo_1_1_m_ai_n_g_o.html#a30f5390432b5701f3ae3b7ff3b0ae680',1,'maingo::MAiNGO::get_LBP_count()']]],
   ['get_5flower_5fbound',['get_lower_bound',['../classbab_base_1_1_optimization_variable.html#ab76a8e196cf00c22e3a1d308fa1cd01e',1,'babBase::OptimizationVariable']]],
   ['get_5flower_5fbounds',['get_lower_bounds',['../classbab_base_1_1_bab_node.html#a00e68c3242d5180d302cf5c8e1f8de2c',1,'babBase::BabNode']]],
   ['get_5flowest_5fpruning_5fscore',['get_lowest_pruning_score',['../classbab_base_1_1_brancher.html#ab01c4af73b4c9489cf9780bccfa73739',1,'babBase::Brancher::get_lowest_pruning_score()'],['../classbab_base_1_1_bab_tree.html#ab57edc600a99a8da34df3d50398b7b98',1,'babBase::BabTree::get_lowest_pruning_score()']]],
-  ['get_5fmax_5fnodes_5fin_5fmemory',['get_max_nodes_in_memory',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a668165551fb2c2cc69a05b1956755147',1,'maingo::bab::BranchAndBound::get_max_nodes_in_memory()'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a668165551fb2c2cc69a05b1956755147',1,'maingo::bab::BranchAndBound::get_max_nodes_in_memory()'],['../classmaingo_1_1_m_ai_n_g_o.html#a22af1a970a5fd23eb347a655c8ae549a',1,'maingo::MAiNGO::get_max_nodes_in_memory()']]],
+  ['get_5fmax_5fnodes_5fin_5fmemory',['get_max_nodes_in_memory',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a668165551fb2c2cc69a05b1956755147',1,'maingo::bab::BranchAndBound::get_max_nodes_in_memory()'],['../classmaingo_1_1_m_ai_n_g_o.html#a22af1a970a5fd23eb347a655c8ae549a',1,'maingo::MAiNGO::get_max_nodes_in_memory()']]],
   ['get_5fmid',['get_mid',['../classbab_base_1_1_optimization_variable.html#aa62b8c28d96fbcb03b8890081fb31cde',1,'babBase::OptimizationVariable']]],
-  ['get_5fmodel_5fat_5fpoint',['get_model_at_point',['../classmaingo_1_1_m_ai_n_g_o.html#abd17e0e2d436da88f15738e8e0218ac8',1,'maingo::MAiNGO']]],
-  ['get_5fmodel_5fat_5fsolution_5fpoint',['get_model_at_solution_point',['../classmaingo_1_1_m_ai_n_g_o.html#a50df488dd7b110d7e4ebc137a8949696',1,'maingo::MAiNGO']]],
   ['get_5fname',['get_name',['../classbab_base_1_1_optimization_variable.html#a4b419fcf5d8b88a6d48f3f8beec1c509',1,'babBase::OptimizationVariable']]],
   ['get_5fnext_5fnode',['get_next_node',['../classbab_base_1_1_brancher.html#ab4a30a04b14b4b0e88956d53963f1fcb',1,'babBase::Brancher']]],
   ['get_5fnlp_5finfo',['get_nlp_info',['../classmaingo_1_1ubp_1_1_ipopt_problem.html#a0350b0b316d335dc27f4f5d1350771be',1,'maingo::ubp::IpoptProblem']]],
   ['get_5fnode_5fselection_5fscore',['get_node_selection_score',['../classbab_base_1_1_bab_node_with_info.html#a33be0940f65782c7845e3a5d5803e422',1,'babBase::BabNodeWithInfo']]],
   ['get_5fnodes_5fin_5ftree',['get_nodes_in_tree',['../classbab_base_1_1_brancher.html#a9b2a948ff522a40e63f90956a0b0c01d',1,'babBase::Brancher']]],
-  ['get_5fnodes_5fleft',['get_nodes_left',['../classmaingo_1_1bab_1_1_branch_and_bound.html#ae420e5187f1c1595d132a27bdc656529',1,'maingo::bab::BranchAndBound::get_nodes_left()'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#ae420e5187f1c1595d132a27bdc656529',1,'maingo::bab::BranchAndBound::get_nodes_left()'],['../classbab_base_1_1_bab_tree.html#aaa3be3d14946afcacef5079b3b0e812c',1,'babBase::BabTree::get_nodes_left()']]],
+  ['get_5fnodes_5fleft',['get_nodes_left',['../classmaingo_1_1bab_1_1_branch_and_bound.html#ae420e5187f1c1595d132a27bdc656529',1,'maingo::bab::BranchAndBound::get_nodes_left()'],['../classbab_base_1_1_bab_tree.html#aaa3be3d14946afcacef5079b3b0e812c',1,'babBase::BabTree::get_nodes_left()']]],
   ['get_5fobjective_5fvalue',['get_objective_value',['../classmaingo_1_1_m_ai_n_g_o.html#a6f3727adfe69c95ac8e0ca41a7b73fa6',1,'maingo::MAiNGO']]],
   ['get_5fpositions',['get_positions',['../classmaingo_1_1_ale_model.html#a0a095d7223a77ebb198bfe6f910bd376',1,'maingo::AleModel']]],
   ['get_5fpruning_5fscore',['get_pruning_score',['../classbab_base_1_1_bab_node.html#a7b99992c4fb98f8086a3cf09ab8d96ad',1,'babBase::BabNode::get_pruning_score()'],['../classbab_base_1_1_bab_node_with_info.html#afec4f9666432de68b443e4013ea5fb9e',1,'babBase::BabNodeWithInfo::get_pruning_score()']]],
@@ -41,12 +37,14 @@ var searchData=
   ['get_5fsolution_5fpoint',['get_solution_point',['../classmaingo_1_1_m_ai_n_g_o.html#a7821624172735057f67471776a8d4aa1',1,'maingo::MAiNGO']]],
   ['get_5fstarting_5fpoint',['get_starting_point',['../classmaingo_1_1ubp_1_1_ipopt_problem.html#a02f91f4b0962c2c77ab5f2c91891a806',1,'maingo::ubp::IpoptProblem']]],
   ['get_5fstatus',['get_status',['../classmaingo_1_1_m_ai_n_g_o.html#a16e579b3026a722169cf0f8819ac1ec5',1,'maingo::MAiNGO']]],
-  ['get_5fubp_5fcount',['get_UBP_count',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a3da7e60c4fad8100f38732fc06d2547c',1,'maingo::bab::BranchAndBound::get_UBP_count()'],['../classmaingo_1_1bab_1_1_branch_and_bound.html#a3da7e60c4fad8100f38732fc06d2547c',1,'maingo::bab::BranchAndBound::get_UBP_count()'],['../classmaingo_1_1_m_ai_n_g_o.html#a7f8fb94bcf60d8e2ff8a943c12459061',1,'maingo::MAiNGO::get_UBP_count()']]],
+  ['get_5fubp_5fcount',['get_UBP_count',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a3da7e60c4fad8100f38732fc06d2547c',1,'maingo::bab::BranchAndBound::get_UBP_count()'],['../classmaingo_1_1_m_ai_n_g_o.html#a7f8fb94bcf60d8e2ff8a943c12459061',1,'maingo::MAiNGO::get_UBP_count()']]],
   ['get_5fupper_5fbound',['get_upper_bound',['../classbab_base_1_1_optimization_variable.html#ad01e5fd245987423c73719114c307a84',1,'babBase::OptimizationVariable']]],
   ['get_5fupper_5fbounds',['get_upper_bounds',['../classbab_base_1_1_bab_node.html#a2a0922468fbfe492d9d70231c54c4bf9',1,'babBase::BabNode']]],
+  ['get_5fuser_5flower_5fbound',['get_user_lower_bound',['../classbab_base_1_1_optimization_variable.html#a74e9435f5bcfa900c9304ceda8f05be5',1,'babBase::OptimizationVariable']]],
+  ['get_5fuser_5fupper_5fbound',['get_user_upper_bound',['../classbab_base_1_1_optimization_variable.html#adf64e2c7687fce1a063b7a4a46a2e212',1,'babBase::OptimizationVariable']]],
   ['get_5fvalid_5fid',['get_valid_id',['../classbab_base_1_1_bab_tree.html#a931d3afc91a3c6011e9921cbfe09d0a2',1,'babBase::BabTree']]],
   ['get_5fvariable_5ftype',['get_variable_type',['../classbab_base_1_1_optimization_variable.html#a4b56db1c40da9ceb5f0179a7660336ce',1,'babBase::OptimizationVariable']]],
-  ['get_5fvariables',['get_variables',['../classmaingo_1_1_ale_model.html#a9d29639440ec6fae90238a0a6d32ab53',1,'maingo::AleModel::get_variables()'],['../classmaingo_1_1_m_ai_n_g_omodel.html#a9faead087bd24822a0d249e257b4df8d',1,'maingo::MAiNGOmodel::get_variables()'],['../classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a5829ce6c25e38821c747faf90c5ffbbe',1,'maingo::MAiNGOmodelEpsCon::get_variables()']]],
+  ['get_5fvariables',['get_variables',['../classmaingo_1_1_ale_model.html#a9d29639440ec6fae90238a0a6d32ab53',1,'maingo::AleModel::get_variables()'],['../classmaingo_1_1_m_ai_n_g_omodel.html#a9faead087bd24822a0d249e257b4df8d',1,'maingo::MAiNGOmodel::get_variables()'],['../classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#a5829ce6c25e38821c747faf90c5ffbbe',1,'maingo::MAiNGOmodelEpsCon::get_variables()'],['../class_py_m_ai_n_g_omodel.html#aa21e4c1906ec1a7b299de5f30e43a182',1,'PyMAiNGOmodel::get_variables()']]],
   ['get_5fwall_5ftime',['get_wall_time',['../namespacemaingo.html#a9b8e20d235728ad79d9d23746aadaf15',1,'maingo']]],
   ['get_5fwallclock_5fsolution_5ftime',['get_wallclock_solution_time',['../classmaingo_1_1_m_ai_n_g_o.html#ae1bfc496de0e05575a8f9ad290bd2b58',1,'maingo::MAiNGO']]],
   ['gpdf',['gpdf',['../function_wrapper_8h.html#afab03d3ca78008087d0864bf50985edc',1,'functionWrapper.h']]],
diff --git a/doc/html/search/functions_8.html b/doc/html/search/functions_8.html
index 48feafe560b166d441696c6055bae5cbd605144f..d59ea971982729f475d91089ce033fc9b915cbca 100644
--- a/doc/html/search/functions_8.html
+++ b/doc/html/search/functions_8.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_8.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/functions_9.html b/doc/html/search/functions_9.html
index 0f05a8ba45ceef9400dac54e05ab97bf2befdf45..5ccec42917aaf8b165c32ba640f3af65b3afd220 100644
--- a/doc/html/search/functions_9.html
+++ b/doc/html/search/functions_9.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_9.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/functions_9.js b/doc/html/search/functions_9.js
index 2c86e26627251f0e262fffb76711c4e59d091d48..d1cd2afd1e2d2cc392ffcc037dfc9333101c0a43 100644
--- a/doc/html/search/functions_9.js
+++ b/doc/html/search/functions_9.js
@@ -8,6 +8,6 @@ var searchData=
   ['insert_5froot_5fnode',['insert_root_node',['../classbab_base_1_1_brancher.html#a4d546d676bac7c0bde9ec3ac1f3c1adb',1,'babBase::Brancher']]],
   ['inter',['inter',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#acc1b11c33a232b16420b1cd78dc5b0c8',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['inv',['inv',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a7f9ead00fc41293e4f6e223bcc7e3842',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
-  ['ipoptproblem',['IpoptProblem',['../classmaingo_1_1ubp_1_1_ipopt_problem.html#aff434ac6d45f748ead8315abcc825bed',1,'maingo::ubp::IpoptProblem::IpoptProblem()'],['../classmaingo_1_1ubp_1_1_ipopt_problem.html#a986a798fcfb41ccf30a4e21dece92dbf',1,'maingo::ubp::IpoptProblem::IpoptProblem(unsigned nvarIn, unsigned neqIn, unsigned nineqIn, unsigned nineqSquashIn, UbpStructure *structureIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, std::shared_ptr&lt; DagObj &gt; dagObj)'],['../classmaingo_1_1ubp_1_1_ipopt_problem.html#aa2beb96149ad4140eef75964e0297125',1,'maingo::ubp::IpoptProblem::IpoptProblem(const IpoptProblem &amp;)']]],
+  ['ipoptproblem',['IpoptProblem',['../classmaingo_1_1ubp_1_1_ipopt_problem.html#aff434ac6d45f748ead8315abcc825bed',1,'maingo::ubp::IpoptProblem::IpoptProblem()'],['../classmaingo_1_1ubp_1_1_ipopt_problem.html#a62bc2a5c3d02532a6fc568f704177264',1,'maingo::ubp::IpoptProblem::IpoptProblem(unsigned nvarIn, unsigned neqIn, unsigned nineqIn, unsigned nineqSquashIn, UbpStructure *structureIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, std::shared_ptr&lt; DagObj &gt; dagObj)'],['../classmaingo_1_1ubp_1_1_ipopt_problem.html#aa2beb96149ad4140eef75964e0297125',1,'maingo::ubp::IpoptProblem::IpoptProblem(const IpoptProblem &amp;)']]],
   ['isequal',['isequal',['../namespacemc.html#a8581fc8211bcb47503faef73e2dcfcaa',1,'mc']]]
 ];
diff --git a/doc/html/search/functions_a.html b/doc/html/search/functions_a.html
index 03faad22fa1131e0e0c53eb4788e24549d0fb22e..3958eb7b9ad0f1d8ad8fa7b04fc20017b8fb9f8b 100644
--- a/doc/html/search/functions_a.html
+++ b/doc/html/search/functions_a.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_a.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/functions_a.js b/doc/html/search/functions_a.js
index 429b7a956da02dcc9c01172f73f3583810581b7a..7706e0d87278ee64333784bafc0a3bfc7eba21ca 100644
--- a/doc/html/search/functions_a.js
+++ b/doc/html/search/functions_a.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['knitroproblem',['KnitroProblem',['../classmaingo_1_1ubp_1_1_knitro_problem.html#a01412351da813879180374f925289e14',1,'maingo::ubp::KnitroProblem::KnitroProblem(unsigned nvarIn, unsigned neqIn, unsigned nineqIn, const unsigned nineqSquashIn, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, UbpStructure *structureIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, std::shared_ptr&lt; DagObj &gt; dagObj)'],['../classmaingo_1_1ubp_1_1_knitro_problem.html#aeee41f6f83fe4abfc075ded564a767ee',1,'maingo::ubp::KnitroProblem::KnitroProblem(const KnitroProblem &amp;)']]]
+  ['knitroproblem',['KnitroProblem',['../classmaingo_1_1ubp_1_1_knitro_problem.html#af6bc2325caaf7ab6e70eb032669208e7',1,'maingo::ubp::KnitroProblem::KnitroProblem(unsigned nvarIn, unsigned neqIn, unsigned nineqIn, const unsigned nineqSquashIn, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, UbpStructure *structureIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, std::shared_ptr&lt; DagObj &gt; dagObj)'],['../classmaingo_1_1ubp_1_1_knitro_problem.html#aeee41f6f83fe4abfc075ded564a767ee',1,'maingo::ubp::KnitroProblem::KnitroProblem(const KnitroProblem &amp;)']]]
 ];
diff --git a/doc/html/search/functions_b.html b/doc/html/search/functions_b.html
index c690013ae42b1febbb8371f4c8dae36ad3ed98c2..b99b702d28bc6787c5a1caac7cf4e99f36fed4c9 100644
--- a/doc/html/search/functions_b.html
+++ b/doc/html/search/functions_b.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_b.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/functions_b.js b/doc/html/search/functions_b.js
index ddff396017b9732edc01485398f51a0ee04aeefa..ca2dab284b4b34bd4e9bea57fafcd5c38e2f1f6c 100644
--- a/doc/html/search/functions_b.js
+++ b/doc/html/search/functions_b.js
@@ -4,15 +4,15 @@ var searchData=
   ['larger_5for_5fequal_5fwithin_5frel_5fand_5fabs_5ftolerance',['larger_or_equal_within_rel_and_abs_tolerance',['../namespacebab_base.html#a257f505cb4d7319956918abc4f14ab2d',1,'babBase']]],
   ['larger_5for_5fequal_5fwithin_5ftolerance',['larger_or_equal_within_tolerance',['../namespacemaingo.html#ab36b1ec6df5374d8caba1bae5495df5d',1,'maingo']]],
   ['lb_5ffunc',['lb_func',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a2cfbd58e1ce450b19c8329113b9654b6',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
-  ['lbpclp',['LbpClp',['../classmaingo_1_1lbp_1_1_lbp_clp.html#ab7e8f8e062116c53497ed6884529a2a3',1,'maingo::lbp::LbpClp']]],
-  ['lbpcplex',['LbpCplex',['../classmaingo_1_1lbp_1_1_lbp_cplex.html#ae9d2adeabbd07038fd8a27192548ebef',1,'maingo::lbp::LbpCplex']]],
-  ['lbpinterval',['LbpInterval',['../classmaingo_1_1lbp_1_1_lbp_interval.html#ae0c855db98ba9a8c6e32500e1efcbbe7',1,'maingo::lbp::LbpInterval']]],
+  ['lbpclp',['LbpClp',['../classmaingo_1_1lbp_1_1_lbp_clp.html#a9e39ab1a9b491aa0d71efbaf3467c19d',1,'maingo::lbp::LbpClp']]],
+  ['lbpcplex',['LbpCplex',['../classmaingo_1_1lbp_1_1_lbp_cplex.html#ac3a9c29513f616834eb0cd0cddf08b0c',1,'maingo::lbp::LbpCplex']]],
+  ['lbpinterval',['LbpInterval',['../classmaingo_1_1lbp_1_1_lbp_interval.html#a42f6c355cd7752a138f96614bb401491',1,'maingo::lbp::LbpInterval']]],
   ['le',['le',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a300c2a2c5eb7685e91ac7ae9228b66a1',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['lmtd',['lmtd',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a4f99f7a6c7d498a2bdee55459ac4b27f',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['log',['log',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ae697c1fcc04bff4b2893b51ce170fb08',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['logger',['Logger',['../classmaingo_1_1_logger.html#a4d8782e6212a58c9ba6bd8f2317669d9',1,'maingo::Logger::Logger()'],['../classmaingo_1_1_logger.html#ae677d6c6ce87b2484d82a493ac649ec3',1,'maingo::Logger::Logger(const Logger &amp;)=default']]],
   ['low_5fid_5ffirst',['low_id_first',['../namespacebab_base.html#ab8f1d614e5625322fd3e196bd4d985b4',1,'babBase']]],
   ['low_5fpruning_5fscore_5ffirst',['low_pruning_score_first',['../namespacebab_base.html#ab748ef40ab06d5cfe2a2280d66f19bb9',1,'babBase']]],
-  ['lowerboundingsolver',['LowerBoundingSolver',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a31416f2224eea283c3ae280ed3beb497',1,'maingo::lbp::LowerBoundingSolver::LowerBoundingSolver(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn)'],['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae097029abb950c0838bab24ef4bc360f',1,'maingo::lbp::LowerBoundingSolver::LowerBoundingSolver(const LowerBoundingSolver &amp;)']]],
+  ['lowerboundingsolver',['LowerBoundingSolver',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9680e92120bb8a0693095f965421d7d7',1,'maingo::lbp::LowerBoundingSolver::LowerBoundingSolver(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn)'],['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae097029abb950c0838bab24ef4bc360f',1,'maingo::lbp::LowerBoundingSolver::LowerBoundingSolver(const LowerBoundingSolver &amp;)']]],
   ['lt',['lt',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a151904b8ee5f3035d5cc4c819dd58d95',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]]
 ];
diff --git a/doc/html/search/functions_c.html b/doc/html/search/functions_c.html
index 3b2976a0492c6c12b4624e07658a9f0700c37533..3a33d874d6fc47a6d37a689665363257cc2a714e 100644
--- a/doc/html/search/functions_c.html
+++ b/doc/html/search/functions_c.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_c.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/functions_c.js b/doc/html/search/functions_c.js
index d7481306f8667847666bd95e95ff717d0bd0089e..3a608b3ca003a8f445e62babb8c56e2a7fe6af0f 100644
--- a/doc/html/search/functions_c.js
+++ b/doc/html/search/functions_c.js
@@ -3,15 +3,15 @@ var searchData=
   ['machprec',['machprec',['../namespacemc.html#a38d812b6e163b42939e3f2c5b0fdf70f',1,'mc']]],
   ['maingo',['MAiNGO',['../classmaingo_1_1_m_ai_n_g_o.html#ae5ca384e27b075702ab9f2161fe2ae82',1,'maingo::MAiNGO::MAiNGO(std::shared_ptr&lt; MAiNGOmodel &gt; myModel)'],['../classmaingo_1_1_m_ai_n_g_o.html#ab4d0923334ce1323a91389117560a271',1,'maingo::MAiNGO::MAiNGO()'],['../classmaingo_1_1_m_ai_n_g_o.html#a0d030db9a3c13e9420ca4dc7f7346183',1,'maingo::MAiNGO::MAiNGO(const MAiNGO &amp;)']]],
   ['maingoevaluator',['MaingoEvaluator',['../classmaingo_1_1_maingo_evaluator.html#aba0042d5950c2d3af0e2a2b721bc5a93',1,'maingo::MaingoEvaluator']]],
-  ['maingoexception',['MAiNGOException',['../classmaingo_1_1_m_ai_n_g_o_exception.html#a8c2f79d79aaa741fa4c0f5d7b5148a92',1,'maingo::MAiNGOException::MAiNGOException()'],['../classmaingo_1_1_m_ai_n_g_o_exception.html#ab39f701c53e41a4c7f43ef44e8c275d8',1,'maingo::MAiNGOException::MAiNGOException(const std::string &amp;arg)'],['../classmaingo_1_1_m_ai_n_g_o_exception.html#afe2216a07a8ecaf41c1c4b8b10e1ec35',1,'maingo::MAiNGOException::MAiNGOException(const std::string &amp;arg, const babBase::BabNode &amp;node)'],['../classmaingo_1_1_m_ai_n_g_o_exception.html#afc29a64faad1be34d8b70205b3391910',1,'maingo::MAiNGOException::MAiNGOException(const std::string &amp;arg, const std::exception &amp;e)'],['../classmaingo_1_1_m_ai_n_g_o_exception.html#a2486a525e721a25110fc12c5224c1f10',1,'maingo::MAiNGOException::MAiNGOException(const std::string &amp;arg, const std::exception &amp;e, const babBase::BabNode &amp;node)'],['../classmaingo_1_1_m_ai_n_g_o_exception.html#a21341b7dfc5884b912383906b5f9828c',1,'maingo::MAiNGOException::MAiNGOException(const std::string &amp;arg, const std::exception *e, const babBase::BabNode *node)']]],
-  ['make_5flbp_5fsolver',['make_lbp_solver',['../namespacemaingo_1_1lbp.html#af2ff1a689d340482f4575c0507b4fa56',1,'maingo::lbp']]],
-  ['make_5fubp_5fsolver',['make_ubp_solver',['../namespacemaingo_1_1ubp.html#ac4a3034b115744514ad64d9c150713ea',1,'maingo::ubp']]],
+  ['maingoexception',['MAiNGOException',['../classmaingo_1_1_m_ai_n_g_o_exception.html#ae27b9410e3135e7784dae78c11e682f6',1,'maingo::MAiNGOException::MAiNGOException()=delete'],['../classmaingo_1_1_m_ai_n_g_o_exception.html#aa5597f9379d8be919d8b4ae58030fac4',1,'maingo::MAiNGOException::MAiNGOException(const MAiNGOException &amp;)=default'],['../classmaingo_1_1_m_ai_n_g_o_exception.html#aa5c3aeb963e328dedab7bf51e953f863',1,'maingo::MAiNGOException::MAiNGOException(MAiNGOException &amp;&amp;)=default'],['../classmaingo_1_1_m_ai_n_g_o_exception.html#a61855f24f971602b43e26c16b0593e4f',1,'maingo::MAiNGOException::MAiNGOException(const std::string &amp;errorMessage)'],['../classmaingo_1_1_m_ai_n_g_o_exception.html#a6f3fb2a660e871f2949a18b4a6986019',1,'maingo::MAiNGOException::MAiNGOException(const std::string &amp;errorMessage, const babBase::BabNode &amp;nodeThatErrorOccurredIn)'],['../classmaingo_1_1_m_ai_n_g_o_exception.html#a457b8be0f33fcfeb9ab096345e60b75c',1,'maingo::MAiNGOException::MAiNGOException(const std::string &amp;errorMessage, const std::exception &amp;originalException)'],['../classmaingo_1_1_m_ai_n_g_o_exception.html#af37f598a1339901938a6bbf3b67a3247',1,'maingo::MAiNGOException::MAiNGOException(const std::string &amp;errorMessage, const std::exception &amp;originalException, const babBase::BabNode &amp;nodeThatErrorOccurredIn)']]],
+  ['make_5flbp_5fsolver',['make_lbp_solver',['../namespacemaingo_1_1lbp.html#aa50d84ff66f4ea911a333eb047a8b6ea',1,'maingo::lbp']]],
+  ['make_5fubp_5fsolver',['make_ubp_solver',['../namespacemaingo_1_1ubp.html#ab62ff87d8caba41740160a8d488b133d',1,'maingo::ubp']]],
   ['make_5fvariables',['make_variables',['../classmaingo_1_1_ale_model.html#aa779cdbfe41d12b35cf6b5fa7581782a',1,'maingo::AleModel']]],
   ['max',['max',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#abddc035b2216d9ea039ce7215ca76bc4',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['mc_5fprint',['mc_print',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a62da96c6aefdddf79e2a09cfeee78716',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['mid',['mid',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aa96ebcb4ea989f485c06d119e24532d3',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['min',['min',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aef9780ca1ffdd1463312ecf3616fb1e4',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
-  ['modelfunction',['modelFunction',['../structmaingo_1_1model_function.html#a6c599ca9d697a04a892ec228b88b7b02',1,'maingo::modelFunction::modelFunction()'],['../structmaingo_1_1model_function.html#ac08320da20704d3bec91fb2540dfa12f',1,'maingo::modelFunction::modelFunction(const mc::FFVar var)'],['../structmaingo_1_1model_function.html#a43527d838950718179d9055ae7aeb96c',1,'maingo::modelFunction::modelFunction(const mc::FFVar var, const std::string &amp;str)']]],
+  ['modelfunction',['ModelFunction',['../structmaingo_1_1_model_function.html#a59519941d0bb502f58c197894c6a0d2a',1,'maingo::ModelFunction::ModelFunction()=default'],['../structmaingo_1_1_model_function.html#a6ac6b2b399d045f9a4178db4a4a4b212',1,'maingo::ModelFunction::ModelFunction(const ModelFunction &amp;)=default'],['../structmaingo_1_1_model_function.html#a51752162c6f7c51938623341c9d92f50',1,'maingo::ModelFunction::ModelFunction(ModelFunction &amp;&amp;)=default'],['../structmaingo_1_1_model_function.html#a2a99a82296b2b73f9375c1396d40d2b4',1,'maingo::ModelFunction::ModelFunction(const mc::FFVar var)'],['../structmaingo_1_1_model_function.html#a99dfad4b58342d3f6bf80813369f079e',1,'maingo::ModelFunction::ModelFunction(const mc::FFVar var, const std::string &amp;str)'],['../structmaingo_1_1_model_function.html#a643e6d2e6cb1a5d78eae384361be9d72',1,'maingo::ModelFunction::ModelFunction(const std::vector&lt; mc::FFVar &gt; &amp;vars)']]],
   ['monom',['monom',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#af4ef04f795e24dc93ee86751d647b889',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['multistart',['multistart',['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac291c925f9007b90cbf09497a93d8239',1,'maingo::ubp::UpperBoundingSolver']]]
 ];
diff --git a/doc/html/search/functions_d.html b/doc/html/search/functions_d.html
index 0c542463fb331bc4ac59fc3e2d13f81523fd4537..31b75b88905b52ad038cfd0af2a34682a98506b4 100644
--- a/doc/html/search/functions_d.html
+++ b/doc/html/search/functions_d.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_d.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/functions_e.html b/doc/html/search/functions_e.html
index c1bd8701e90b723222c0a331a46413b927525e6c..cddb9bb58624e0c688033ec019dba0459286db6a 100644
--- a/doc/html/search/functions_e.html
+++ b/doc/html/search/functions_e.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_e.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/functions_e.js b/doc/html/search/functions_e.js
index 0e9ff7bcc184a2cfcaf290db525fa6b806c7d333..b9d10da170741fbdfe998c3d517b578c07453138 100644
--- a/doc/html/search/functions_e.js
+++ b/doc/html/search/functions_e.js
@@ -1,22 +1,24 @@
 var searchData=
 [
-  ['operator_20_2a',['operator *',['../namespacemaingo_1_1ubp.html#a5c67ac181e81a6949e8ecb8a870782e2',1,'maingo::ubp::operator *(const std::vector&lt; double &gt; &amp;in1, const double in2)'],['../namespacemaingo_1_1ubp.html#ad3cba31c2697ea5b09bacbd997c9f296',1,'maingo::ubp::operator *(const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;in1, const double in2)'],['../namespacemaingo_1_1ubp.html#ab613e54b12d7fb8a43156f91aa434402',1,'maingo::ubp::operator *(const UbpQuadExpr &amp;in1, const UbpQuadExpr &amp;in2)'],['../namespacemaingo_1_1ubp.html#a478444c21260358392dd33b31f713a9c',1,'maingo::ubp::operator *(const UbpQuadExpr &amp;in1, const double in2)'],['../namespacemaingo_1_1ubp.html#aac1334d57e5f2540b7bfa6cd37693205',1,'maingo::ubp::operator *(const UbpQuadExpr &amp;in1, const int in2)'],['../namespacemaingo_1_1ubp.html#ac90c68b5af595a7612a1149d2cc0c9b9',1,'maingo::ubp::operator *(const double in1, const UbpQuadExpr &amp;in2)'],['../namespacemaingo_1_1ubp.html#a0e92f83ac29ec3f83eeb2efe88f556c3',1,'maingo::ubp::operator *(const int in1, const UbpQuadExpr &amp;in2)']]],
-  ['operator_20_2a_3d',['operator *=',['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a0f9dba9a22cd1bad6d7920742a46785c',1,'maingo::ubp::UbpQuadExpr::operator *=(const UbpQuadExpr &amp;in)'],['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a192f82e999323888394268882f22e3f1',1,'maingo::ubp::UbpQuadExpr::operator *=(const double in)'],['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a664fcf4c3b9097e2c8ef0c3fd655b53d',1,'maingo::ubp::UbpQuadExpr::operator *=(const int in)']]],
   ['operator_20babnode_20_26_26',['operator BabNode &amp;&amp;',['../classbab_base_1_1_bab_node_with_info.html#aa21366a28ecacce7ee7cb231408f38b2',1,'babBase::BabNodeWithInfo']]],
   ['operator_20babnode_20const_20_26',['operator BabNode const &amp;',['../classbab_base_1_1_bab_node_with_info.html#ab64329ad707a6b9914be851b784dba50',1,'babBase::BabNodeWithInfo']]],
-  ['operator_20t_20_26',['operator T &amp;',['../classbab_base_1_1_out_var.html#a7442f2a80f303c64467428a80f3cb8b9',1,'babBase::OutVar']]],
+  ['operator_20t_20_26',['operator T &amp;',['../classbab_base_1_1_out_var.html#add7057afa563a0adeba7d7e77d717690',1,'babBase::OutVar']]],
+  ['operator_21_3d',['operator!=',['../namespacebab_base.html#a6d2be1c108f096eff60042aa02e3781e',1,'babBase']]],
   ['operator_28_29',['operator()',['../classmaingo_1_1_maingo_evaluator.html#a16353f72cbe6a6857f94eeb0a2a8ca2e',1,'maingo::MaingoEvaluator::operator()(constant_node&lt; real&lt; IDim &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#aebe214bf52d3d9054561dbd279ea630e',1,'maingo::MaingoEvaluator::operator()(constant_node&lt; real&lt; 0 &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#a1eb1cdd102a6fdbefefa99006bb14d98',1,'maingo::MaingoEvaluator::operator()(constant_node&lt; boolean&lt; 0 &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#a232490b0b1f7b0601343ec002fd461fb',1,'maingo::MaingoEvaluator::operator()(parameter_node&lt; real&lt; IDim &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#a632562f52010db675b32172ba9b8f9f8',1,'maingo::MaingoEvaluator::operator()(parameter_node&lt; real&lt; 0 &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#a8db905522b621724e056807193a361ed',1,'maingo::MaingoEvaluator::operator()(parameter_node&lt; boolean&lt; 0 &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#ae64d0f887011fb7b2f45f904b651212d',1,'maingo::MaingoEvaluator::operator()(parameter_symbol&lt; real&lt; IDim &gt;&gt; *sym)'],['../classmaingo_1_1_maingo_evaluator.html#a313d06a1b681bda32d1baaf73b4c1ae0',1,'maingo::MaingoEvaluator::operator()(parameter_symbol&lt; real&lt; 0 &gt;&gt; *sym)'],['../classmaingo_1_1_maingo_evaluator.html#a4f675a797c18eaf2fd523a4f559313d9',1,'maingo::MaingoEvaluator::operator()(variable_symbol&lt; real&lt; IDim &gt;&gt; *sym)'],['../classmaingo_1_1_maingo_evaluator.html#ad4281e7a946eb516f8e361be386226ad',1,'maingo::MaingoEvaluator::operator()(variable_symbol&lt; real&lt; 0 &gt;&gt; *sym)'],['../classmaingo_1_1_maingo_evaluator.html#ab699cabd08e37c8f90b253b8410f3e03',1,'maingo::MaingoEvaluator::operator()(expression_symbol&lt; real&lt; 0 &gt;&gt; *sym)'],['../classmaingo_1_1_maingo_evaluator.html#a1120421ca19b8fefd77ad0c67149ef5a',1,'maingo::MaingoEvaluator::operator()(expression_symbol&lt; boolean&lt; 0 &gt;&gt; *sym)'],['../classmaingo_1_1_maingo_evaluator.html#ac806eb4a69b3d31ee8930c575f9b5405',1,'maingo::MaingoEvaluator::operator()(entry_node&lt; real&lt; IDim &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#a0ba00f6e3f0c57560cc4385382f90041',1,'maingo::MaingoEvaluator::operator()(entry_node&lt; real&lt; 0 &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#a31bd4e5857f2eeb30cc919dfdda17bf8',1,'maingo::MaingoEvaluator::operator()(minus_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a2c93ca479683e45af6dc24953434cf05',1,'maingo::MaingoEvaluator::operator()(inverse_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a14d44b2a4bfbb0a7c8abe784707c03d8',1,'maingo::MaingoEvaluator::operator()(addition_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#aef325a790e281683bfe3e17160a07495',1,'maingo::MaingoEvaluator::operator()(sum_div_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a7529b1ae0a3303aaa6ccb92c6f67b08a',1,'maingo::MaingoEvaluator::operator()(xlog_sum_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a9a60a214575eb25ae40706df9577dfcd',1,'maingo::MaingoEvaluator::operator()(multiplication_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#aa7d7c8734d8a04afbad0c3dcccc0248c',1,'maingo::MaingoEvaluator::operator()(exponentiation_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a8ad6bd708e1a633daf74931f0f2b6b13',1,'maingo::MaingoEvaluator::operator()(min_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#ad02f330ab99494a3d3ede57d86626f5d',1,'maingo::MaingoEvaluator::operator()(max_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a9e5dbc374f5bd51ce3b4c7d00cdfa5f8',1,'maingo::MaingoEvaluator::operator()(set_min_node&lt; TType &gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#ac1d0e8fb250f926a2d2af2211de283d3',1,'maingo::MaingoEvaluator::operator()(set_max_node&lt; TType &gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#ac24478492893dbb5575bfae77ad2e3d6',1,'maingo::MaingoEvaluator::operator()(exp_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a741318a5ea6c313146b9370e5a77741f',1,'maingo::MaingoEvaluator::operator()(log_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a24dab2d1d77aebdf8732fb679ab20a6c',1,'maingo::MaingoEvaluator::operator()(sqrt_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#aa01d67f98a790198ae94253cdac6663d',1,'maingo::MaingoEvaluator::operator()(sin_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a6c4708474d08fcb76fd7dfce2a1a03cb',1,'maingo::MaingoEvaluator::operator()(asin_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#aaaf0982bff30d6d269a986aa1f8d5fd3',1,'maingo::MaingoEvaluator::operator()(cos_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a10b29d970cca4412cdf09ee3d38bbf3a',1,'maingo::MaingoEvaluator::operator()(acos_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a21b576ce22533cc7cd433a5110e7d3e5',1,'maingo::MaingoEvaluator::operator()(tan_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a1027a0674db3d2b20cb8b5a3e8175468',1,'maingo::MaingoEvaluator::operator()(atan_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a704a43ae1089dabde8ae3fedb4e7e91c',1,'maingo::MaingoEvaluator::operator()(lmtd_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a72f7201c2d261bd4a9848567bc15b82e',1,'maingo::MaingoEvaluator::operator()(xexpax_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#aa268019790af86f24dd20e117e53601d',1,'maingo::MaingoEvaluator::operator()(arh_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#acd5e6660b34c3fb57dc4e4a597cc3246',1,'maingo::MaingoEvaluator::operator()(lb_func_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#ae93e844c247f347914f8745238d9f12f',1,'maingo::MaingoEvaluator::operator()(ub_func_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a8580e54b758078f424368157c9998177',1,'maingo::MaingoEvaluator::operator()(bounding_func_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a0d18706b8c5403a359ae4fb3c4535dd8',1,'maingo::MaingoEvaluator::operator()(ale::squash_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a97099c993ba68c78fcda43917a89d6aa',1,'maingo::MaingoEvaluator::operator()(ale::af_lcb_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a1fd539de40d9a846e3bc1a8d7319cd3c',1,'maingo::MaingoEvaluator::operator()(ale::af_ei_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a11edbd2e3bfa2eb751ad55d0676630a6',1,'maingo::MaingoEvaluator::operator()(ale::af_pi_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a51dbeb4db4c48128191a4850893e54ec',1,'maingo::MaingoEvaluator::operator()(ale::regnormal_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a94eb83d21f8727c36807e91b786e7ed0',1,'maingo::MaingoEvaluator::operator()(nrtl_dtau_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a6fc97c4d18c62acaba6353636a277fcf',1,'maingo::MaingoEvaluator::operator()(ext_antoine_psat_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a77f9255d62b085460410be784cbc9029',1,'maingo::MaingoEvaluator::operator()(antoine_psat_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#aeed3a236612945d6ccc2918b4b200485',1,'maingo::MaingoEvaluator::operator()(wagner_psat_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a2a8d0c06f3f8c10c75f83fdfa4d5864f',1,'maingo::MaingoEvaluator::operator()(ik_cape_psat_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#ae707063e517fbc96144557e22a18c2bd',1,'maingo::MaingoEvaluator::operator()(aspen_hig_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#af8a35b9814e04b03b506911e89117630',1,'maingo::MaingoEvaluator::operator()(nasa9_hig_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a1d42b0997bcaebb756c432f50ab6d408',1,'maingo::MaingoEvaluator::operator()(dippr107_hig_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a6d55b4a02a1dfddc06cb0f394184063f',1,'maingo::MaingoEvaluator::operator()(dippr127_hig_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#ab6c947dfb36b02d479c6aa3e68a062bb',1,'maingo::MaingoEvaluator::operator()(antoine_tsat_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a4f5be3d4ae94197d759efb3cea878f66',1,'maingo::MaingoEvaluator::operator()(watson_dhvap_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#af3ca56408e5353f5034379f22e9c5f27',1,'maingo::MaingoEvaluator::operator()(dippr106_dhvap_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a6b720b79afa07ec215ff2ae7c8f6e37e',1,'maingo::MaingoEvaluator::operator()(cost_turton_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a1551aa4a7ce3f452f8635618a49a5266',1,'maingo::MaingoEvaluator::operator()(covar_matern_1_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a0dc466bd95d72232cac6ee6bf8728a2e',1,'maingo::MaingoEvaluator::operator()(covar_matern_3_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a4c67cfa8ca5bf2793ef3b81e37853427',1,'maingo::MaingoEvaluator::operator()(covar_matern_5_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a27403d7ebd0ba9c1c3763bd92bf76dd0',1,'maingo::MaingoEvaluator::operator()(covar_sqrexp_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#aa308ce0ebbd92b2d9a499c352248e54b',1,'maingo::MaingoEvaluator::operator()(gpdf_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#aa7a1e7a8b70cb171f020cb61e7ef007a',1,'maingo::MaingoEvaluator::operator()(nrtl_tau_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a031c984312a092292ba8e5faab96615f',1,'maingo::MaingoEvaluator::operator()(nrtl_g_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a2c96bb53c78b614fa21f09b34b06a240',1,'maingo::MaingoEvaluator::operator()(nrtl_gtau_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#ab5756cf7f7eaf69bc3aba7e98bf5cb2f',1,'maingo::MaingoEvaluator::operator()(nrtl_gdtau_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a1e9902a05a7ab138bcf8afbfe8f3b38c',1,'maingo::MaingoEvaluator::operator()(nrtl_dgtau_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#aa260a715d85bede7bf1358216a5612e5',1,'maingo::MaingoEvaluator::operator()(norm2_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#afeccf82551359ea4fd78e0421d5b0d9d',1,'maingo::MaingoEvaluator::operator()(abs_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a35b02acae9a26d0ce4582c6563bf4dcf',1,'maingo::MaingoEvaluator::operator()(xabsx_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a61a1564a2c7d7c6c2b35c310eaec9194',1,'maingo::MaingoEvaluator::operator()(xlogx_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a2dbaa9c47035a9150d8c442ea7e90b1b',1,'maingo::MaingoEvaluator::operator()(cosh_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a283892ea852d019132ca549048dc8ae9',1,'maingo::MaingoEvaluator::operator()(sinh_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#abc322bed0d4f468566f79debecc7ad6a',1,'maingo::MaingoEvaluator::operator()(tanh_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a163893d7e2595d48b90be04de44c7061',1,'maingo::MaingoEvaluator::operator()(coth_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a6517c3ebb6d059284d6ecaf7840d29ba',1,'maingo::MaingoEvaluator::operator()(acosh_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#ab341ee757f15b233e9e0f660c34db0da',1,'maingo::MaingoEvaluator::operator()(asinh_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a08711d8a2b9de11b55a06d1eb2f42878',1,'maingo::MaingoEvaluator::operator()(atanh_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a348178557f010db15a6eded737e23c89',1,'maingo::MaingoEvaluator::operator()(acoth_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#aebc25e0d2231b4302278caa9aab888c3',1,'maingo::MaingoEvaluator::operator()(erf_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a7673de1c345b61081ed47433f9b08af0',1,'maingo::MaingoEvaluator::operator()(erfc_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a714981c9af175ff13728dbaa38cf77f5',1,'maingo::MaingoEvaluator::operator()(pos_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a7b33a9063bc3277ebf7cbe26a40eed33',1,'maingo::MaingoEvaluator::operator()(neg_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#ae71759bc3c5007aa5c5c5b2ebea96fde',1,'maingo::MaingoEvaluator::operator()(rlmtd_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a6925f0560f9a7fe3420eae4b24bea451',1,'maingo::MaingoEvaluator::operator()(xexpy_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a6ef677783d508a5856fe2096fa5d8770',1,'maingo::MaingoEvaluator::operator()(schroeder_ethanol_p_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#ae6b3e2f4fa022cf02999b702886d31fc',1,'maingo::MaingoEvaluator::operator()(schroeder_ethanol_rhovap_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a0e56aaa973cca94ba40aaa36a46762c6',1,'maingo::MaingoEvaluator::operator()(schroeder_ethanol_rholiq_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#ac91a3285778e063fbfd98473222aeb1a',1,'maingo::MaingoEvaluator::operator()(mid_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#aedadd4c9d55f27225e84c41b5e34a8c8',1,'maingo::MaingoEvaluator::operator()(sum_node&lt; TType &gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#a258bac7136624bc05fc9aad23fcd2bae',1,'maingo::MaingoEvaluator::operator()(negation_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#ad498ec5587d1e19ebf6cf9984e46b7ce',1,'maingo::MaingoEvaluator::operator()(equal_node&lt; real&lt; 0 &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#a84a7e6ac759e75188dcd33fed310f627',1,'maingo::MaingoEvaluator::operator()(less_node&lt; real&lt; 0 &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#ac6be9f2eb4e5a95173b9990cf1d76ade',1,'maingo::MaingoEvaluator::operator()(less_equal_node&lt; real&lt; 0 &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#ac958f70dbd1204a83b603ea0fde2c3eb',1,'maingo::MaingoEvaluator::operator()(greater_node&lt; real&lt; 0 &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#aced0f321eb6c52625eaaf23ec1860c21',1,'maingo::MaingoEvaluator::operator()(greater_equal_node&lt; real&lt; 0 &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#a95861005344bd24f1d6fa640ff3f1705',1,'maingo::MaingoEvaluator::operator()(equal_node&lt; ale::index&lt; 0 &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#a51845deccf33ee00ecac24bfb23536cd',1,'maingo::MaingoEvaluator::operator()(less_node&lt; ale::index&lt; 0 &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#ac486f0a11622d88874ad9dbc32f7c199',1,'maingo::MaingoEvaluator::operator()(less_equal_node&lt; ale::index&lt; 0 &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#affaae2ae54803baa45024d31b05eec55',1,'maingo::MaingoEvaluator::operator()(greater_node&lt; ale::index&lt; 0 &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#aa85cfa020de772e6baefcd3f966531bb',1,'maingo::MaingoEvaluator::operator()(greater_equal_node&lt; ale::index&lt; 0 &gt;&gt; *node)'],['../classmaingo_1_1_maingo_evaluator.html#a778b2f802db3ec8a15162c834f9cd24c',1,'maingo::MaingoEvaluator::operator()(disjunction_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a9744f02a6a480e828154bc92af6e5a89',1,'maingo::MaingoEvaluator::operator()(conjunction_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#a49f0a248a70b10ca4b9024b211b65a88',1,'maingo::MaingoEvaluator::operator()(element_node *node)'],['../classmaingo_1_1_maingo_evaluator.html#aa80cc4ed77e60745a289c4a7754d1aba',1,'maingo::MaingoEvaluator::operator()(forall_node&lt; TType &gt; *node)'],['../classmaingo_1_1_variable_lister.html#a388010bf972557bb263e804184fd68d8',1,'maingo::VariableLister::operator()(value_symbol&lt; TType &gt; *sym)'],['../classmaingo_1_1_variable_lister.html#af4841887f3cb320059cce7dcf1c1723e',1,'maingo::VariableLister::operator()(value_symbol&lt; real&lt; IDim &gt;&gt; *sym)'],['../classmaingo_1_1_variable_lister.html#aba8c441cff84cc626c64f7363389b349',1,'maingo::VariableLister::operator()(parameter_symbol&lt; real&lt; IDim &gt;&gt; *sym)'],['../classmaingo_1_1_variable_lister.html#a9da7e334ca36edf25d15913427238957',1,'maingo::VariableLister::operator()(expression_symbol&lt; real&lt; IDim &gt;&gt; *sym)'],['../classmaingo_1_1_variable_lister.html#a96e82077a5785647fbd87a9d918e4867',1,'maingo::VariableLister::operator()(variable_symbol&lt; real&lt; IDim &gt;&gt; *sym)'],['../classmaingo_1_1_variable_lister.html#a936ec1aaa564849fe32e22833c8d5fc0',1,'maingo::VariableLister::operator()(variable_symbol&lt; real&lt; 0 &gt;&gt; *sym)'],['../structbab_base_1_1_node_priority_comparator.html#a046f2155e1e85bd556686c212ff44506',1,'babBase::NodePriorityComparator::operator()()'],['../structbab_base_1_1_pruning_score_comparator.html#a32adb58b8c8c680fbb87c9837ecf88c9',1,'babBase::PruningScoreComparator::operator()()']]],
+  ['operator_2a',['operator*',['../namespacemaingo_1_1ubp.html#a63efcd0b2ad1996c20545e1481f0835a',1,'maingo::ubp::operator*(const std::vector&lt; double &gt; &amp;in1, const double in2)'],['../namespacemaingo_1_1ubp.html#aa896d2608e6152fd66b0ec6031a083ef',1,'maingo::ubp::operator*(const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;in1, const double in2)'],['../namespacemaingo_1_1ubp.html#a7731fb6c5c16ba843f8b36512c3f7f0c',1,'maingo::ubp::operator*(const UbpQuadExpr &amp;in1, const UbpQuadExpr &amp;in2)'],['../namespacemaingo_1_1ubp.html#aa3340e4491d298e5f1388853c9c183db',1,'maingo::ubp::operator*(const UbpQuadExpr &amp;in1, const double in2)'],['../namespacemaingo_1_1ubp.html#aac93aa0207fe1de9f3a73b4985f96343',1,'maingo::ubp::operator*(const UbpQuadExpr &amp;in1, const int in2)'],['../namespacemaingo_1_1ubp.html#a7d5d0a8e327941d11246bfdb428239e7',1,'maingo::ubp::operator*(const double in1, const UbpQuadExpr &amp;in2)'],['../namespacemaingo_1_1ubp.html#a4e5d8a29639dd84a703944c7489b0b84',1,'maingo::ubp::operator*(const int in1, const UbpQuadExpr &amp;in2)']]],
+  ['operator_2a_3d',['operator*=',['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a24790536a92c354b15430c00b0258c40',1,'maingo::ubp::UbpQuadExpr::operator*=(const UbpQuadExpr &amp;in)'],['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a791a3261856056f2303dd574eb3f6dd3',1,'maingo::ubp::UbpQuadExpr::operator*=(const double in)'],['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a4be525c49a8d761438570a34a09d6077',1,'maingo::ubp::UbpQuadExpr::operator*=(const int in)']]],
   ['operator_2b',['operator+',['../namespacemaingo_1_1ubp.html#a10c5d0d8fe3f2daa26131fe923cdd9bc',1,'maingo::ubp::operator+(const std::vector&lt; double &gt; &amp;in1, const std::vector&lt; double &gt; &amp;in2)'],['../namespacemaingo_1_1ubp.html#aa428e1d300a34bef5231c161b0e08597',1,'maingo::ubp::operator+(const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;in1, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;in2)'],['../namespacemaingo_1_1ubp.html#a34d96b5d5baa870bf3c50543044f17fa',1,'maingo::ubp::operator+(const UbpQuadExpr &amp;in)'],['../namespacemaingo_1_1ubp.html#a71bc9598739d457c38b6c8620fa70e6a',1,'maingo::ubp::operator+(const UbpQuadExpr &amp;in1, const UbpQuadExpr &amp;in2)'],['../namespacemaingo_1_1ubp.html#a5d61a1b0104c207a63c55da96bbe28bf',1,'maingo::ubp::operator+(const UbpQuadExpr &amp;in1, const double &amp;in2)'],['../namespacemaingo_1_1ubp.html#ad836c3ed6766c075161c027b5eca6e25',1,'maingo::ubp::operator+(const UbpQuadExpr &amp;in1, const int &amp;in2)'],['../namespacemaingo_1_1ubp.html#ad4f8e6ebfcd8fc7e3fc7e7b4926892ac',1,'maingo::ubp::operator+(const double &amp;in1, const UbpQuadExpr &amp;in2)'],['../namespacemaingo_1_1ubp.html#a8f178973e405455b0384fd128b3f1be7',1,'maingo::ubp::operator+(const int &amp;in1, const UbpQuadExpr &amp;in2)']]],
   ['operator_2b_3d',['operator+=',['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a1cd55371cff5dac0174d8d37ceba6c5d',1,'maingo::ubp::UbpQuadExpr::operator+=(const UbpQuadExpr &amp;in)'],['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a561bcf6912a9390cf05b7c8c5c0755a5',1,'maingo::ubp::UbpQuadExpr::operator+=(const double in)'],['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a7634e17e6d08c10571dbca448506e95e',1,'maingo::ubp::UbpQuadExpr::operator+=(const int in)']]],
   ['operator_2d',['operator-',['../namespacemaingo_1_1ubp.html#a7c723688f344053b4a3d7e0ba2e4c144',1,'maingo::ubp::operator-(const std::vector&lt; double &gt; &amp;in)'],['../namespacemaingo_1_1ubp.html#ae0d200ca4c3aa81516b03974aaa7e8b2',1,'maingo::ubp::operator-(const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;in)'],['../namespacemaingo_1_1ubp.html#aa60e9a98c38d0c5836692f82c46f7408',1,'maingo::ubp::operator-(const std::vector&lt; double &gt; &amp;in1, const std::vector&lt; double &gt; &amp;in2)'],['../namespacemaingo_1_1ubp.html#a742b207c46fd0870d53d6d13366e8ebc',1,'maingo::ubp::operator-(const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;in1, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;in2)'],['../namespacemaingo_1_1ubp.html#ac85543a4274998b12aca4e184764a4a1',1,'maingo::ubp::operator-(const UbpQuadExpr &amp;in)'],['../namespacemaingo_1_1ubp.html#ac33b3f1dcbbfc89678ddd9d83b12c33e',1,'maingo::ubp::operator-(const UbpQuadExpr &amp;in1, const UbpQuadExpr &amp;in2)'],['../namespacemaingo_1_1ubp.html#ac39deeba0da11c5b6460085c0d9e699c',1,'maingo::ubp::operator-(const UbpQuadExpr &amp;in1, const double &amp;in2)'],['../namespacemaingo_1_1ubp.html#aa6cf0d34878dfbcc39ede6d5e3911612',1,'maingo::ubp::operator-(const UbpQuadExpr &amp;in1, const int &amp;in2)'],['../namespacemaingo_1_1ubp.html#a32aa5e9142e01cdd969ed7bc97324a6f',1,'maingo::ubp::operator-(const double &amp;in1, const UbpQuadExpr &amp;in2)'],['../namespacemaingo_1_1ubp.html#ab9fceb07e4c759872241321cdd48e269',1,'maingo::ubp::operator-(const int &amp;in1, const UbpQuadExpr &amp;in2)']]],
   ['operator_2d_3d',['operator-=',['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#aec88997480bed8057176853cfd2c7aaf',1,'maingo::ubp::UbpQuadExpr::operator-=(const UbpQuadExpr &amp;in)'],['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a53ba87d0f920df7610866e1bcfe1ed5e',1,'maingo::ubp::UbpQuadExpr::operator-=(const double in)'],['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#ac3ad5400183945189193f674f876c774',1,'maingo::ubp::UbpQuadExpr::operator-=(const int in)']]],
   ['operator_2f',['operator/',['../namespacemaingo_1_1ubp.html#ad3f555c68f9b3ae1ad075e914317afd5',1,'maingo::ubp::operator/(const UbpQuadExpr &amp;in1, const UbpQuadExpr &amp;in2)'],['../namespacemaingo_1_1ubp.html#a1bdea6d9e43b0b3b4950db2888f59180',1,'maingo::ubp::operator/(const UbpQuadExpr &amp;in1, const double in2)'],['../namespacemaingo_1_1ubp.html#a5854670509a4af23a920acce4f19748c',1,'maingo::ubp::operator/(const UbpQuadExpr &amp;in1, const int in2)'],['../namespacemaingo_1_1ubp.html#ae7c5689bc8931b7ae4216f810dddb5d3',1,'maingo::ubp::operator/(const double in1, const UbpQuadExpr &amp;in2)'],['../namespacemaingo_1_1ubp.html#aefd918702d5ff67b444a1b5184a2ba78',1,'maingo::ubp::operator/(const int in1, const UbpQuadExpr &amp;in2)']]],
   ['operator_2f_3d',['operator/=',['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2e8b906b6e8ea5c22c4534e85cbbeac7',1,'maingo::ubp::UbpQuadExpr::operator/=(const UbpQuadExpr &amp;in)'],['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2a7ead5761ea56126a45479935588b06',1,'maingo::ubp::UbpQuadExpr::operator/=(const double in)'],['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#ae1b5456347b2bcb76260813e446c1ba9',1,'maingo::ubp::UbpQuadExpr::operator/=(const int in)']]],
-  ['operator_3c_3c',['operator&lt;&lt;',['../namespacebab_base.html#a8bfa85e64a4cf9554eec367d08122be9',1,'babBase']]],
-  ['operator_3d',['operator=',['../structmaingo_1_1_constraint.html#a8dd2c5a8ca4f6978f6643b3212698852',1,'maingo::Constraint::operator=()'],['../structmaingo_1_1model_function.html#acfa12e44318f039d4dd7b62d6da21996',1,'maingo::modelFunction::operator=()'],['../classmaingo_1_1ubp_1_1_ipopt_problem.html#a0ab5a8e212575c185980cb7c6eed2ceb',1,'maingo::ubp::IpoptProblem::operator=()'],['../classmaingo_1_1ubp_1_1_knitro_problem.html#a62c8ad5120c5b5f4ca0df3773364077a',1,'maingo::ubp::KnitroProblem::operator=()'],['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7a7062b87f2074558f67c7cbbe397b58',1,'maingo::lbp::LowerBoundingSolver::operator=()'],['../classmaingo_1_1_logger.html#a82f7d5b5cb8e33d894f7e17e38d6dbcd',1,'maingo::Logger::operator=()'],['../classmaingo_1_1_m_ai_n_g_o.html#a9d035ded892ca2fd6a0151f6ea761d54',1,'maingo::MAiNGO::operator=()'],['../structmaingo_1_1_output_variable.html#a1187fff45ba11b8a8c98a117000893a8',1,'maingo::OutputVariable::operator=()'],['../structmaingo_1_1_settings.html#a5e9afadd1d866d01c96a114686b32672',1,'maingo::Settings::operator=()'],['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#afa9dca36d7987121ddc0327e62dfdcf2',1,'maingo::ubp::UpperBoundingSolver::operator=()'],['../classmaingo_1_1ubp_1_1_ubp_clp.html#a0f3faa3937a515be22cff1913eda1b06',1,'maingo::ubp::UbpClp::operator=()'],['../classmaingo_1_1ubp_1_1_ubp_cplex.html#a944ac3f482c2db599bd0c0cfdd76b868',1,'maingo::ubp::UbpCplex::operator=()'],['../classmaingo_1_1ubp_1_1_ubp_ipopt.html#ad12c30c11fb6ef915670ffd51bf5f860',1,'maingo::ubp::UbpIpopt::operator=()'],['../classmaingo_1_1ubp_1_1_ubp_knitro.html#ad05c1f048da57b4af99fd5cd8b7c2cdb',1,'maingo::ubp::UbpKnitro::operator=()'],['../classmaingo_1_1ubp_1_1_ubp_n_lopt.html#ac2fe06860e2c920acf0b7f8304a99d54',1,'maingo::ubp::UbpNLopt::operator=()'],['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#acce2c14abe3accaee53ea03f84c19734',1,'maingo::ubp::UbpQuadExpr::operator=(const double in)'],['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af72e66c0a04b6fa8d25d89351473abe4',1,'maingo::ubp::UbpQuadExpr::operator=(const int in)'],['../classbab_base_1_1_brancher.html#aa0aa0586d60d2e945161128325e4a462',1,'babBase::Brancher::operator=(Brancher &amp;)=default'],['../classbab_base_1_1_brancher.html#a70be52acd8e06764d607a1bf9eeb6660',1,'babBase::Brancher::operator=(Brancher &amp;&amp;)=default'],['../structbab_base_1_1_bounds.html#a415e0920d82d09ffc5798edb59e89093',1,'babBase::Bounds::operator=()'],['../classbab_base_1_1_optimization_variable.html#a51e6b16ace22f32f96a27af09358a695',1,'babBase::OptimizationVariable::operator=()'],['../classbab_base_1_1_bab_tree.html#a9da3ce58d47965be2f5c5f04ad2871d9',1,'babBase::BabTree::operator=(BabTree &amp;)=default'],['../classbab_base_1_1_bab_tree.html#a023025fa4f0f81187611785df898758e',1,'babBase::BabTree::operator=(BabTree &amp;&amp;)=default'],['../classbab_base_1_1_out_var.html#aced8949099673a72ab3b436272f114e6',1,'babBase::OutVar::operator=()']]],
-  ['operator_5b_5d',['operator[]',['../structmaingo_1_1model_function.html#a97f49921923957ca2170e5ab65959fbb',1,'maingo::modelFunction']]],
-  ['optimizationvariable',['OptimizationVariable',['../classbab_base_1_1_optimization_variable.html#a4d4a26193d51f99dc5982c86855998a9',1,'babBase::OptimizationVariable::OptimizationVariable(const Bounds &amp;variableBoundsIn, const enums::VT variableType, const unsigned branchingPriority, const std::string nameIn)'],['../classbab_base_1_1_optimization_variable.html#a4edfe0fa4db6c3f25da68d3d81f48c4d',1,'babBase::OptimizationVariable::OptimizationVariable(const Bounds &amp;variableBoundsIn, const enums::VT variableType, const unsigned branchingPriority)'],['../classbab_base_1_1_optimization_variable.html#aeb89a3476698252593c116992b887320',1,'babBase::OptimizationVariable::OptimizationVariable(const Bounds &amp;variableBoundsIn, const enums::VT variableType, const std::string nameIn)'],['../classbab_base_1_1_optimization_variable.html#ad14f10b3fbbfd01a61adac7114670fb4',1,'babBase::OptimizationVariable::OptimizationVariable(const Bounds &amp;variableBoundsIn, const unsigned branchingPriority, const std::string nameIn)'],['../classbab_base_1_1_optimization_variable.html#a65c124f424b4d2dcf0916bdc19fb055f',1,'babBase::OptimizationVariable::OptimizationVariable(const Bounds &amp;variableBoundsIn, const enums::VT variableType)'],['../classbab_base_1_1_optimization_variable.html#a0540b4fc9482daba6ed171e3fa50cccc',1,'babBase::OptimizationVariable::OptimizationVariable(const Bounds &amp;variableBoundsIn, const unsigned branchingPriority)'],['../classbab_base_1_1_optimization_variable.html#af172ca283de8b5159d998a5fe24ad697',1,'babBase::OptimizationVariable::OptimizationVariable(const Bounds &amp;variableBoundsIn, const std::string nameIn)'],['../classbab_base_1_1_optimization_variable.html#a70eb28c9c674d0bd7340266b04f23f1d',1,'babBase::OptimizationVariable::OptimizationVariable(const Bounds &amp;variableBoundsIn)'],['../classbab_base_1_1_optimization_variable.html#a2de71b2cc31ffb891c13a81c37f49596',1,'babBase::OptimizationVariable::OptimizationVariable(const enums::VT variableType, const unsigned branchingPriority, const std::string nameIn)'],['../classbab_base_1_1_optimization_variable.html#a0e7bb183fe70a0312b6efa4f90c96919',1,'babBase::OptimizationVariable::OptimizationVariable(const enums::VT variableType, const unsigned branchingPriority)'],['../classbab_base_1_1_optimization_variable.html#a79789dc4e3c9eca3ef6e4aaa9d1e30f8',1,'babBase::OptimizationVariable::OptimizationVariable(const enums::VT variableType, const std::string nameIn)'],['../classbab_base_1_1_optimization_variable.html#ab11172755c1f597f5409edb49a869189',1,'babBase::OptimizationVariable::OptimizationVariable(const unsigned branchingPriority, const std::string nameIn)'],['../classbab_base_1_1_optimization_variable.html#a2808b6549fa71332930783d874459461',1,'babBase::OptimizationVariable::OptimizationVariable(const enums::VT variableType)'],['../classbab_base_1_1_optimization_variable.html#ab27fdd3e7f17dc5864b5297d8d60896a',1,'babBase::OptimizationVariable::OptimizationVariable(const unsigned branchingPriority)'],['../classbab_base_1_1_optimization_variable.html#ac772e0bfa985c6ba946bd795b85399fa',1,'babBase::OptimizationVariable::OptimizationVariable(const std::string nameIn)'],['../classbab_base_1_1_optimization_variable.html#a38218ac69635c8134dd342d608315293',1,'babBase::OptimizationVariable::OptimizationVariable(const OptimizationVariable &amp;variableIn)']]],
+  ['operator_3c_3c',['operator&lt;&lt;',['../namespacebab_base.html#ace0cd5136bac463b84cdd69b51be9f49',1,'babBase::operator&lt;&lt;(std::ostream &amp;os, const Bounds &amp;b)'],['../namespacebab_base.html#a8bfa85e64a4cf9554eec367d08122be9',1,'babBase::operator&lt;&lt;(std::ostream &amp;out, const BabNode &amp;node)']]],
+  ['operator_3d',['operator=',['../structmaingo_1_1_constraint.html#a8dd2c5a8ca4f6978f6643b3212698852',1,'maingo::Constraint::operator=()'],['../structmaingo_1_1_model_function.html#a2dad7f76d791717fc532cd4e1eab37b2',1,'maingo::ModelFunction::operator=(const ModelFunction &amp;)=default'],['../structmaingo_1_1_model_function.html#a1575a658d24ba107ff73f583e7c4eaca',1,'maingo::ModelFunction::operator=(ModelFunction &amp;&amp;)=default'],['../structmaingo_1_1_model_function.html#a93e188a00ecf49b5dc85f9a58ab7c9f7',1,'maingo::ModelFunction::operator=(const mc::FFVar var)'],['../classmaingo_1_1ubp_1_1_ipopt_problem.html#a0ab5a8e212575c185980cb7c6eed2ceb',1,'maingo::ubp::IpoptProblem::operator=()'],['../classmaingo_1_1ubp_1_1_knitro_problem.html#a62c8ad5120c5b5f4ca0df3773364077a',1,'maingo::ubp::KnitroProblem::operator=()'],['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7a7062b87f2074558f67c7cbbe397b58',1,'maingo::lbp::LowerBoundingSolver::operator=()'],['../classmaingo_1_1_logger.html#a82f7d5b5cb8e33d894f7e17e38d6dbcd',1,'maingo::Logger::operator=()'],['../classmaingo_1_1_m_ai_n_g_o.html#a9d035ded892ca2fd6a0151f6ea761d54',1,'maingo::MAiNGO::operator=()'],['../classmaingo_1_1_m_ai_n_g_o_exception.html#aa38305aacfa2e2ebce4c5067dee75df9',1,'maingo::MAiNGOException::operator=(const MAiNGOException &amp;)=default'],['../classmaingo_1_1_m_ai_n_g_o_exception.html#a781b7f59163bbc21dd5d3485f73f157a',1,'maingo::MAiNGOException::operator=(MAiNGOException &amp;&amp;)=default'],['../structmaingo_1_1_output_variable.html#ab80383105b9791c367311daf64618890',1,'maingo::OutputVariable::operator=(const OutputVariable &amp;variableIn)=default'],['../structmaingo_1_1_output_variable.html#ac513acc754eba158a496c3c4d2f4cc2b',1,'maingo::OutputVariable::operator=(OutputVariable &amp;&amp;variableIn)=default'],['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#afa9dca36d7987121ddc0327e62dfdcf2',1,'maingo::ubp::UpperBoundingSolver::operator=()'],['../classmaingo_1_1ubp_1_1_ubp_clp.html#a0f3faa3937a515be22cff1913eda1b06',1,'maingo::ubp::UbpClp::operator=()'],['../classmaingo_1_1ubp_1_1_ubp_cplex.html#a944ac3f482c2db599bd0c0cfdd76b868',1,'maingo::ubp::UbpCplex::operator=()'],['../classmaingo_1_1ubp_1_1_ubp_ipopt.html#ad12c30c11fb6ef915670ffd51bf5f860',1,'maingo::ubp::UbpIpopt::operator=()'],['../classmaingo_1_1ubp_1_1_ubp_knitro.html#ad05c1f048da57b4af99fd5cd8b7c2cdb',1,'maingo::ubp::UbpKnitro::operator=()'],['../classmaingo_1_1ubp_1_1_ubp_n_lopt.html#ac2fe06860e2c920acf0b7f8304a99d54',1,'maingo::ubp::UbpNLopt::operator=()'],['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#acce2c14abe3accaee53ea03f84c19734',1,'maingo::ubp::UbpQuadExpr::operator=(const double in)'],['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af72e66c0a04b6fa8d25d89351473abe4',1,'maingo::ubp::UbpQuadExpr::operator=(const int in)'],['../classbab_base_1_1_brancher.html#aa0aa0586d60d2e945161128325e4a462',1,'babBase::Brancher::operator=(Brancher &amp;)=default'],['../classbab_base_1_1_brancher.html#a70be52acd8e06764d607a1bf9eeb6660',1,'babBase::Brancher::operator=(Brancher &amp;&amp;)=default'],['../classbab_base_1_1_bab_tree.html#a9da3ce58d47965be2f5c5f04ad2871d9',1,'babBase::BabTree::operator=(BabTree &amp;)=default'],['../classbab_base_1_1_bab_tree.html#a023025fa4f0f81187611785df898758e',1,'babBase::BabTree::operator=(BabTree &amp;&amp;)=default'],['../classbab_base_1_1_out_var.html#aced8949099673a72ab3b436272f114e6',1,'babBase::OutVar::operator=()']]],
+  ['operator_3d_3d',['operator==',['../structmaingo_1_1_model_function.html#a2cd284c38a9f30f487ad0481fcfaa363',1,'maingo::ModelFunction::operator==()'],['../structmaingo_1_1_output_variable.html#a46108bea6aa824e9138db071db917035',1,'maingo::OutputVariable::operator==()'],['../namespacebab_base.html#aa4d99f78f3dad3b027ca3cf5f9cf4478',1,'babBase::operator==()']]],
+  ['operator_5b_5d',['operator[]',['../structmaingo_1_1_model_function.html#a28a2c95923dee0d58ca16ba62b02e10a',1,'maingo::ModelFunction']]],
+  ['optimizationvariable',['OptimizationVariable',['../classbab_base_1_1_optimization_variable.html#a4d4a26193d51f99dc5982c86855998a9',1,'babBase::OptimizationVariable::OptimizationVariable(const Bounds &amp;variableBoundsIn, const enums::VT variableType, const unsigned branchingPriority, const std::string nameIn)'],['../classbab_base_1_1_optimization_variable.html#a4edfe0fa4db6c3f25da68d3d81f48c4d',1,'babBase::OptimizationVariable::OptimizationVariable(const Bounds &amp;variableBoundsIn, const enums::VT variableType, const unsigned branchingPriority)'],['../classbab_base_1_1_optimization_variable.html#aeb89a3476698252593c116992b887320',1,'babBase::OptimizationVariable::OptimizationVariable(const Bounds &amp;variableBoundsIn, const enums::VT variableType, const std::string nameIn)'],['../classbab_base_1_1_optimization_variable.html#ad14f10b3fbbfd01a61adac7114670fb4',1,'babBase::OptimizationVariable::OptimizationVariable(const Bounds &amp;variableBoundsIn, const unsigned branchingPriority, const std::string nameIn)'],['../classbab_base_1_1_optimization_variable.html#a65c124f424b4d2dcf0916bdc19fb055f',1,'babBase::OptimizationVariable::OptimizationVariable(const Bounds &amp;variableBoundsIn, const enums::VT variableType)'],['../classbab_base_1_1_optimization_variable.html#a0540b4fc9482daba6ed171e3fa50cccc',1,'babBase::OptimizationVariable::OptimizationVariable(const Bounds &amp;variableBoundsIn, const unsigned branchingPriority)'],['../classbab_base_1_1_optimization_variable.html#af172ca283de8b5159d998a5fe24ad697',1,'babBase::OptimizationVariable::OptimizationVariable(const Bounds &amp;variableBoundsIn, const std::string nameIn)'],['../classbab_base_1_1_optimization_variable.html#a70eb28c9c674d0bd7340266b04f23f1d',1,'babBase::OptimizationVariable::OptimizationVariable(const Bounds &amp;variableBoundsIn)'],['../classbab_base_1_1_optimization_variable.html#ade910a2427a58d6bc025d8a3e2141283',1,'babBase::OptimizationVariable::OptimizationVariable(const enums::VT variableType, const unsigned branchingPriority, const std::string nameIn)'],['../classbab_base_1_1_optimization_variable.html#aacf17553e632e11f46ac1ff16a04e543',1,'babBase::OptimizationVariable::OptimizationVariable(const enums::VT variableType, const unsigned branchingPriority)'],['../classbab_base_1_1_optimization_variable.html#a3b4e892b107015b4f503a24ad9214e46',1,'babBase::OptimizationVariable::OptimizationVariable(const enums::VT variableType, const std::string nameIn)'],['../classbab_base_1_1_optimization_variable.html#a907f527439f197b391b10173a8cb763c',1,'babBase::OptimizationVariable::OptimizationVariable(const enums::VT variableType)'],['../classbab_base_1_1_optimization_variable.html#ab11172755c1f597f5409edb49a869189',1,'babBase::OptimizationVariable::OptimizationVariable(const unsigned branchingPriority, const std::string nameIn)'],['../classbab_base_1_1_optimization_variable.html#ab27fdd3e7f17dc5864b5297d8d60896a',1,'babBase::OptimizationVariable::OptimizationVariable(const unsigned branchingPriority)'],['../classbab_base_1_1_optimization_variable.html#ac772e0bfa985c6ba946bd795b85399fa',1,'babBase::OptimizationVariable::OptimizationVariable(const std::string nameIn)'],['../classbab_base_1_1_optimization_variable.html#acb8b4452071c493bfe746485f18654be',1,'babBase::OptimizationVariable::OptimizationVariable()']]],
   ['out_5fpar',['out_par',['../namespacebab_base.html#a5366d466e365a73e1f3fc2800d64b776',1,'babBase']]],
-  ['outputvariable',['OutputVariable',['../structmaingo_1_1_output_variable.html#a5444c9dfb8eb89b4a2ddd679ff819322',1,'maingo::OutputVariable::OutputVariable(const std::string descIn, const mc::FFVar valueIn)'],['../structmaingo_1_1_output_variable.html#a4bbebaf4d5245bad6a7038087948b49c',1,'maingo::OutputVariable::OutputVariable(const mc::FFVar valueIn, const std::string descIn)'],['../structmaingo_1_1_output_variable.html#aa21e6b3349541ef65b14e8385e15c516',1,'maingo::OutputVariable::OutputVariable(const OutputVariable &amp;variableIn)']]],
+  ['outputvariable',['OutputVariable',['../structmaingo_1_1_output_variable.html#a5444c9dfb8eb89b4a2ddd679ff819322',1,'maingo::OutputVariable::OutputVariable(const std::string descIn, const mc::FFVar valueIn)'],['../structmaingo_1_1_output_variable.html#a4bbebaf4d5245bad6a7038087948b49c',1,'maingo::OutputVariable::OutputVariable(const mc::FFVar valueIn, const std::string descIn)'],['../structmaingo_1_1_output_variable.html#a9d13cfce0e3a1142c7f14d5b84d58028',1,'maingo::OutputVariable::OutputVariable(const std::tuple&lt; mc::FFVar, std::string &gt; inTuple)'],['../structmaingo_1_1_output_variable.html#af468c75f57d9d2debe8e3e3ecf8aa480',1,'maingo::OutputVariable::OutputVariable(const std::tuple&lt; std::string, mc::FFVar &gt; inTuple)'],['../structmaingo_1_1_output_variable.html#ab1e29a6ed63df8c8c92f500dac6b8187',1,'maingo::OutputVariable::OutputVariable(const OutputVariable &amp;variableIn)=default'],['../structmaingo_1_1_output_variable.html#a263debc4a6d2b559f48c5e359f59885a',1,'maingo::OutputVariable::OutputVariable(OutputVariable &amp;&amp;variableIn)=default']]],
   ['outvar',['OutVar',['../classbab_base_1_1_out_var.html#a81e7174faa0d0aa69a9e17fea6158a4a',1,'babBase::OutVar::OutVar(T &amp;ref) noexcept'],['../classbab_base_1_1_out_var.html#a31ed18d3d1831c15ebc166a6135a217f',1,'babBase::OutVar::OutVar(T &amp;&amp;)=delete'],['../classbab_base_1_1_out_var.html#a86b5336a40127a5a12fd4766986673b7',1,'babBase::OutVar::OutVar(const OutVar &amp;) noexcept=default']]]
 ];
diff --git a/doc/html/search/functions_f.html b/doc/html/search/functions_f.html
index 38b6e817c8a45914d5c34469d4fa884df61657ce..4967292615c2c9cda237b9ee3741ec1cf0ea71d7 100644
--- a/doc/html/search/functions_f.html
+++ b/doc/html/search/functions_f.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="functions_f.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/functions_f.js b/doc/html/search/functions_f.js
index adb7d7ab47e75150c8610d9c64976cd8aaa1ce7a..3a2aeb7b284e41aae9d44f2eb64cf67340e3d50f 100644
--- a/doc/html/search/functions_f.js
+++ b/doc/html/search/functions_f.js
@@ -4,7 +4,6 @@ var searchData=
   ['parse',['parse',['../classmaingo_1_1_program_parser.html#ae4d58b1181c60c3f2bee2e19f0cf0a4d',1,'maingo::ProgramParser']]],
   ['parse_5fconstraints',['parse_constraints',['../classmaingo_1_1_program_parser.html#a5ef4bf8a9a2932fba2436581417777ca',1,'maingo::ProgramParser']]],
   ['parse_5fdefinitions',['parse_definitions',['../classmaingo_1_1_program_parser.html#a0e51ca5ae8eacb0f46dad2d6f044a4ae',1,'maingo::ProgramParser']]],
-  ['parse_5fmaingo_5fto_5fother_5flanguage',['parse_maingo_to_other_language',['../classmaingo_1_1_m_ai_n_g_o.html#a4f888ef8f672e6ee7602951cd4b2c7a9',1,'maingo::MAiNGO']]],
   ['parse_5fobjective',['parse_objective',['../classmaingo_1_1_program_parser.html#ac3c4fcd63f8f1792a4e34a2fe3ddc5ab',1,'maingo::ProgramParser']]],
   ['parse_5foutputs',['parse_outputs',['../classmaingo_1_1_program_parser.html#a7b3ac04936f2bc7a4f4e536b93f52d6e',1,'maingo::ProgramParser']]],
   ['parse_5frelaxations',['parse_relaxations',['../classmaingo_1_1_program_parser.html#a3b1515bd940df78bb3a2605cb8f019b7',1,'maingo::ProgramParser']]],
@@ -15,11 +14,12 @@ var searchData=
   ['pow',['pow',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a1f2039b54ef15f2e194f90d97047dbf8',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::pow(const QE &amp;x, const int n)'],['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a195d98248e0ba84680048c2611e60004',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::pow(const QE &amp;x, const double a)'],['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a05ef1af5ad24b4baa6dfec609bd542db',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::pow(const QE &amp;x, const QE &amp;y)'],['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a246ae6c1ea943858ac55205e9cb26690',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::pow(const double x, const QE &amp;y)'],['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a11c7c90a5cb3bb191af49d3e5c374eaf',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::pow(const int x, const QE &amp;y)']]],
   ['preprocessor_5fcheck_5foptions',['preprocessor_check_options',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a75d8c7d165cc917a455243f528ea23df',1,'maingo::lbp::LowerBoundingSolver']]],
   ['print_5fmaingo',['print_MAiNGO',['../classmaingo_1_1_m_ai_n_g_o.html#a1a9fa4c0ae0a91178836350b5f5c22d3',1,'maingo::MAiNGO']]],
-  ['print_5fmessage',['print_message',['../classmaingo_1_1_logger.html#a85ebbae4b7d372e8ee4fc6df802d9621',1,'maingo::Logger']]],
-  ['print_5fmessage_5fto_5fstream_5fonly',['print_message_to_stream_only',['../classmaingo_1_1_logger.html#a60d49f911f24c66da289da2dbccc35e2',1,'maingo::Logger']]],
-  ['print_5fsettings',['print_settings',['../classmaingo_1_1_logger.html#af4fdb40b8636eff018c56e45c293de7f',1,'maingo::Logger']]],
+  ['print_5fmessage',['print_message',['../classmaingo_1_1_logger.html#afaa00650854698ce5bbde8fee9db7e0e',1,'maingo::Logger']]],
+  ['print_5fmessage_5fto_5fstream_5fonly',['print_message_to_stream_only',['../classmaingo_1_1_logger.html#a0df484648655184edbbd4bcb6531558f',1,'maingo::Logger']]],
+  ['print_5fsettings',['print_settings',['../classmaingo_1_1_logger.html#a1397947c86bde896214c7b77d4be6517',1,'maingo::Logger']]],
   ['print_5fversion',['print_version',['../namespacemaingo.html#aff818a6a6eca6dcfa6cc89a8c32c6f39',1,'maingo']]],
   ['prod',['prod',['../structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a7c36b5f1e9e15a63b53482a96238dfde',1,'mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;']]],
   ['programparser',['ProgramParser',['../classmaingo_1_1_program_parser.html#a63f53f3900dc996ca94137a017805f63',1,'maingo::ProgramParser']]],
-  ['push_5fback',['push_back',['../structmaingo_1_1model_function.html#aea4187e90212d71b2f368711cc5ee4cb',1,'maingo::modelFunction::push_back(const mc::FFVar var)'],['../structmaingo_1_1model_function.html#a4acc3cdbd96f5b6b5b4e803ee1dbf369',1,'maingo::modelFunction::push_back(const mc::FFVar var, const std::string &amp;str)'],['../structmaingo_1_1model_function.html#ab7c7f3001efc0df4c1fca1dba56dcf45',1,'maingo::modelFunction::push_back(const std::vector&lt; mc::FFVar &gt; &amp;vars)'],['../structmaingo_1_1model_function.html#a67d7053072c5d28e36f91ec598a09011',1,'maingo::modelFunction::push_back(const std::vector&lt; mc::FFVar &gt; &amp;vars, const std::string &amp;baseName)']]]
+  ['push_5fback',['push_back',['../structmaingo_1_1_model_function.html#a351a87d89c0212305c3e477d692aedbb',1,'maingo::ModelFunction::push_back(const mc::FFVar var)'],['../structmaingo_1_1_model_function.html#af1e48836d22ea8f0dcc46d8622800058',1,'maingo::ModelFunction::push_back(const mc::FFVar var, const std::string &amp;str)'],['../structmaingo_1_1_model_function.html#af7fe04e13594b729a7fe3cde9caedbc3',1,'maingo::ModelFunction::push_back(const std::vector&lt; mc::FFVar &gt; &amp;vars)'],['../structmaingo_1_1_model_function.html#ad07bf75626a6914c9f15b23fa5ec518e',1,'maingo::ModelFunction::push_back(const std::vector&lt; mc::FFVar &gt; &amp;vars, const std::string &amp;baseName)']]],
+  ['pybind11_5fmodule',['PYBIND11_MODULE',['../__pymaingo_8cpp.html#a75e1ee573073a440d528a799ccd1e331',1,'_pymaingo.cpp']]]
 ];
diff --git a/doc/html/search/mag_sel.png b/doc/html/search/mag_sel.png
index 39c0ed52a25dd9d080ee0d42ae6c6042bdfa04d7..81f6040a2092402b4d98f9ffa8855d12a0d4ca17 100644
Binary files a/doc/html/search/mag_sel.png and b/doc/html/search/mag_sel.png differ
diff --git a/doc/html/search/namespaces_0.html b/doc/html/search/namespaces_0.html
index c5345379184faece58c8c484e919df4e4d4ee0af..f55ca63aa22610d74dd01ee029df5bda1ba7ac72 100644
--- a/doc/html/search/namespaces_0.html
+++ b/doc/html/search/namespaces_0.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="namespaces_0.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/namespaces_1.html b/doc/html/search/namespaces_1.html
index 8b44a3c9b435769277a15b6145a09916e00d4d7e..37c816cc45bbc7b40cee439f6ced457500ecbaac 100644
--- a/doc/html/search/namespaces_1.html
+++ b/doc/html/search/namespaces_1.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="namespaces_1.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/namespaces_2.html b/doc/html/search/namespaces_2.html
new file mode 100644
index 0000000000000000000000000000000000000000..0a91674600e3e5235ffa7a1f17b0b048a8419765
--- /dev/null
+++ b/doc/html/search/namespaces_2.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="namespaces_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doc/html/search/namespaces_2.js b/doc/html/search/namespaces_2.js
new file mode 100644
index 0000000000000000000000000000000000000000..31b11f0b57f6fb3c49b5512006bf5d309da3f99b
--- /dev/null
+++ b/doc/html/search/namespaces_2.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['pymaingo',['pymaingo',['../namespacepymaingo.html',1,'']]]
+];
diff --git a/doc/html/search/nomatches.html b/doc/html/search/nomatches.html
index 4377320895b9a5b98e140ebf2f76ec09158d1156..b1ded27e9ad6af3a2ac11e6b21ce159dcaf87e0c 100644
--- a/doc/html/search/nomatches.html
+++ b/doc/html/search/nomatches.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
diff --git a/doc/html/search/pages_0.html b/doc/html/search/pages_0.html
index 3d06b05219c77abd3e143fb989de383d982975ca..d7528582dc195f417703fdd6e38476533084cd00 100644
--- a/doc/html/search/pages_0.html
+++ b/doc/html/search/pages_0.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="pages_0.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/pages_1.html b/doc/html/search/pages_1.html
index 06f1e40f078104b254f6982fd1f51264525cb8c7..924fb482e78a47d902bab366b192b9483e1322d8 100644
--- a/doc/html/search/pages_1.html
+++ b/doc/html/search/pages_1.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="pages_1.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/pages_1.js b/doc/html/search/pages_1.js
index e356dceb531e99a24c3321b8d838876f0cd20473..7928b6c7d25d756001cae7a9ba5a81834c90b4e8 100644
--- a/doc/html/search/pages_1.js
+++ b/doc/html/search/pages_1.js
@@ -1,4 +1,8 @@
 var searchData=
 [
-  ['installing_20and_20executing_20maingo',['Installing and Executing MAiNGO',['../install.html',1,'index']]]
+  ['mccormick_2dbased_20algorithm_20for_20mixed_2dinteger_20nonlinear_20global_20optimization',['McCormick-based Algorithm for mixed-integer Nonlinear Global Optimization',['../index.html',1,'']]],
+  ['maingo_20output',['MAiNGO Output',['../maingo_output.html',1,'index']]],
+  ['maingo_20settings',['MAiNGO Settings',['../maingo_settings.html',1,'index']]],
+  ['maingo_20_2d_20parallel_20version',['MAiNGO - Parallel Version',['../parallel_version.html',1,'index']]],
+  ['modeling_20in_20maingo',['Modeling in MAiNGO',['../writing_problem.html',1,'index']]]
 ];
diff --git a/doc/html/search/pages_2.html b/doc/html/search/pages_2.html
index 703f781bd4fc84d6efce09c9a88372f595032990..ffc6d9295dd0e70479391bfd98c3b321460e08d7 100644
--- a/doc/html/search/pages_2.html
+++ b/doc/html/search/pages_2.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="pages_2.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/pages_2.js b/doc/html/search/pages_2.js
index 47160c90823a41897cf12d3f4caa1bc58de60ea7..a4043c1a2a452f534e6ccd28e1eef27e1595dc05 100644
--- a/doc/html/search/pages_2.js
+++ b/doc/html/search/pages_2.js
@@ -1,8 +1,4 @@
 var searchData=
 [
-  ['mccormick_2dbased_20algorithm_20for_20mixed_2dinteger_20nonlinear_20global_20optimization',['McCormick-based Algorithm for mixed-integer Nonlinear Global Optimization',['../index.html',1,'']]],
-  ['maingo_20output',['MAiNGO output',['../maingo_output.html',1,'index']]],
-  ['maingo_20settings',['MAiNGO Settings',['../maingo_settings.html',1,'index']]],
-  ['maingo_20_2d_20parallel_20version',['MAiNGO - Parallel Version',['../parallel_version.html',1,'index']]],
-  ['modeling_20in_20maingo',['Modeling in MAiNGO',['../writing_problem.html',1,'index']]]
+  ['obtaining_2c_20building_2c_20and_20executing_20maingo',['Obtaining, Building, and Executing MAiNGO',['../install.html',1,'index']]]
 ];
diff --git a/doc/html/search/pages_3.html b/doc/html/search/pages_3.html
index 299228a4000858021c9c4dd5f8d5985652be0ff5..f3746246fa9813ec02adc9fd8dfc9b5ea2368b26 100644
--- a/doc/html/search/pages_3.html
+++ b/doc/html/search/pages_3.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="pages_3.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/pages_4.html b/doc/html/search/pages_4.html
index 021d277a49f3c6d6620431ff61ae659b614d7c18..593494e9ecb90bc4644f4c1dd63aa34f081a867c 100644
--- a/doc/html/search/pages_4.html
+++ b/doc/html/search/pages_4.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="pages_4.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/pages_5.html b/doc/html/search/pages_5.html
index f57b34353bdf826a090c0442dc14c6364f2219b9..7033bd6df2fc02cf6b9db881bcfb9c84dce094e1 100644
--- a/doc/html/search/pages_5.html
+++ b/doc/html/search/pages_5.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="pages_5.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/related_0.html b/doc/html/search/related_0.html
index 8ee34ff8cecc1d02e9d542d2dbfa9e7e32f6602c..575b0401b0dfc3f02ad57668e8ce2d8e50d3a549 100644
--- a/doc/html/search/related_0.html
+++ b/doc/html/search/related_0.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="related_0.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/related_0.js b/doc/html/search/related_0.js
index 7803546cf481e2d4f4abea836ab1a13f966f70a7..6496d0c6d81d6c54dc5de305d191b5e5186a3048 100644
--- a/doc/html/search/related_0.js
+++ b/doc/html/search/related_0.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['operator_3c_3c',['operator&lt;&lt;',['../classbab_base_1_1_bab_node.html#a0af68006f01d42b3f593fe2a6709f407',1,'babBase::BabNode::operator&lt;&lt;()'],['../structbab_base_1_1_bounds.html#a674305fe2e7e8b2f777cb32a1b9c28f7',1,'babBase::Bounds::operator&lt;&lt;()'],['../classbab_base_1_1_optimization_variable.html#aeb17c4ac5c23141e9acc87c5b1453605',1,'babBase::OptimizationVariable::operator&lt;&lt;()']]]
+  ['operator_3c_3c',['operator&lt;&lt;',['../classbab_base_1_1_bab_node.html#a0af68006f01d42b3f593fe2a6709f407',1,'babBase::BabNode::operator&lt;&lt;()'],['../classbab_base_1_1_optimization_variable.html#a14ab145b3997ff567e535665c30d5138',1,'babBase::OptimizationVariable::operator&lt;&lt;()']]]
 ];
diff --git a/doc/html/search/search_l.png b/doc/html/search/search_l.png
index fd5f7daa41a4c79b4ae9bea5aa7bdfb94e14084b..c872f4da4a01d0754f923e6c94fd8159c0621bd1 100644
Binary files a/doc/html/search/search_l.png and b/doc/html/search/search_l.png differ
diff --git a/doc/html/search/search_r.png b/doc/html/search/search_r.png
index 1af5d21ee13e070d7600f1c4657fde843b953a69..97ee8b439687084201b79c6f776a41f495c6392a 100644
Binary files a/doc/html/search/search_r.png and b/doc/html/search/search_r.png differ
diff --git a/doc/html/search/searchdata.js b/doc/html/search/searchdata.js
index 2b674499f2976ff80a3fec5b6731f538a1c948f7..d3942dd9d7e56fbda35e3a887dfee66551d3969f 100644
--- a/doc/html/search/searchdata.js
+++ b/doc/html/search/searchdata.js
@@ -2,16 +2,16 @@ var indexSectionsWithContent =
 {
   0: "_abcdefghijklmnopqrstuvwxz~",
   1: "abcdeiklmnopsuv",
-  2: "bm",
-  3: "abcefgiklmoprsuv",
+  2: "bmp",
+  3: "_abcefgiklmoprsuv",
   4: "_abcdefghiklmnoprstuvwxz~",
   5: "_abcdefhijlmnoprstuvw",
   6: "bimoqtv",
-  7: "_bclnoprstuv",
+  7: "_bclnoprstuvw",
   8: "_abcdefgijlmnopqrstuvw",
   9: "o",
   10: "hlm",
-  11: "himsuw"
+  11: "hmosuw"
 };
 
 var indexSectionNames =
diff --git a/doc/html/search/typedefs_0.html b/doc/html/search/typedefs_0.html
index 3848b20e9c8f1076923cce3419babb793dc1f3a1..2a284a9499d842049798c08946d1668596b189be 100644
--- a/doc/html/search/typedefs_0.html
+++ b/doc/html/search/typedefs_0.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="typedefs_0.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/typedefs_1.html b/doc/html/search/typedefs_1.html
index c8a026857ad8cb57d20f046c9ff58e686eae10d0..7af807db41ba46b9222821ce2211976d58947fd1 100644
--- a/doc/html/search/typedefs_1.html
+++ b/doc/html/search/typedefs_1.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="typedefs_1.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/typedefs_1.js b/doc/html/search/typedefs_1.js
index 5ba50b6c128979da2e58b457f5aefc2fd50f54e3..8c7f99b9e05765c8b6ba8d0f17d7d827d12d66c2 100644
--- a/doc/html/search/typedefs_1.js
+++ b/doc/html/search/typedefs_1.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['i',['I',['../interval_library_8h.html#a719e28aa7350b1ab0efe53725d78a54f',1,'intervalLibrary.h']]]
+  ['i',['I',['../interval_library_8h.html#a752577663acb2d105778a51e93452c1a',1,'intervalLibrary.h']]]
 ];
diff --git a/doc/html/search/typedefs_2.html b/doc/html/search/typedefs_2.html
index 86a91955e05a9e5e7dbf110b4d6855a551675873..745d076c80860abbb66b4f8e15f65cc2ee9f66f6 100644
--- a/doc/html/search/typedefs_2.html
+++ b/doc/html/search/typedefs_2.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="typedefs_2.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/typedefs_3.html b/doc/html/search/typedefs_3.html
index 2f813884537ff4acd5258db518b9d68ad0f43755..def60a5bec8944745e52ab0f21e5f1b32333f5c0 100644
--- a/doc/html/search/typedefs_3.html
+++ b/doc/html/search/typedefs_3.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="typedefs_3.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/typedefs_4.html b/doc/html/search/typedefs_4.html
index ac1372ac9bed5e3026ca9589448a4467d1d666ea..ef733ad27677eefe1463f240bf136c4979c3d26f 100644
--- a/doc/html/search/typedefs_4.html
+++ b/doc/html/search/typedefs_4.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="typedefs_4.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/typedefs_5.html b/doc/html/search/typedefs_5.html
index 77b3890cd2b19024535603b7b12711fe531a5d55..94db6d21e5d9eb69ca603bf7f741174b2e5e6ebf 100644
--- a/doc/html/search/typedefs_5.html
+++ b/doc/html/search/typedefs_5.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="typedefs_5.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/typedefs_6.html b/doc/html/search/typedefs_6.html
index 978358fce9ed708b0f6cf220a0e864670fa002f9..bda8ea1c5c3d1ee52c4c0fdcaa832131d4a7cb95 100644
--- a/doc/html/search/typedefs_6.html
+++ b/doc/html/search/typedefs_6.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="typedefs_6.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/variables_0.html b/doc/html/search/variables_0.html
index 12104bcb5f353e0b3de82e8ca3cd030d75c61a69..51f7bd6bcc759bf7d924dedd664843b13ba6850a 100644
--- a/doc/html/search/variables_0.html
+++ b/doc/html/search/variables_0.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="variables_0.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/variables_0.js b/doc/html/search/variables_0.js
index f5af190c219a41f58693da32b1d50abdeca86a1f..e555314eb144cf7047063870c8ccca6ba3bebf2c 100644
--- a/doc/html/search/variables_0.js
+++ b/doc/html/search/variables_0.js
@@ -4,14 +4,16 @@ var searchData=
   ['_5fbabstatus',['_babStatus',['../classmaingo_1_1_m_ai_n_g_o.html#a8fe800a4fd347fc64b3f26de987c13f5',1,'maingo::MAiNGO']]],
   ['_5fbabtime',['_babTime',['../classmaingo_1_1_m_ai_n_g_o.html#a917d78c01e2442296f829977491e6107',1,'maingo::MAiNGO']]],
   ['_5fbestlbdfathomed',['_bestLbdFathomed',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a8855b78bf4580af1d40f463eb88f9883',1,'maingo::bab::BranchAndBound']]],
-  ['_5fbrancher',['_brancher',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a88d35fc68351774dadb831c38ffd93ee',1,'maingo::bab::BranchAndBound']]],
+  ['_5fbounds',['_bounds',['../classbab_base_1_1_optimization_variable.html#acd60b14930c0261628aae974e42fe954',1,'babBase::OptimizationVariable']]],
+  ['_5fbrancher',['_brancher',['../classmaingo_1_1bab_1_1_branch_and_bound.html#ae1454635b53b98cc4e395fd3ed7faca0',1,'maingo::bab::BranchAndBound']]],
   ['_5fbranchingpriority',['_branchingPriority',['../classbab_base_1_1_optimization_variable.html#a7b9ecadcd824e5d73ffc0358aad8d35b',1,'babBase::OptimizationVariable']]],
   ['_5fclp',['_clp',['../classmaingo_1_1lbp_1_1_lbp_clp.html#aa2b757fbec54c610ba3d9fe8ba35b67e',1,'maingo::lbp::LbpClp::_clp()'],['../classmaingo_1_1ubp_1_1_ubp_clp.html#ae2d176177a7821c5532fb229f04577c9',1,'maingo::ubp::UbpClp::_clp()']]],
   ['_5fcomputationtol',['_computationTol',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#aaa92d78b7ce6a1b2939131063bd6f68a',1,'maingo::lbp::LowerBoundingSolver']]],
-  ['_5fconstantconstraints',['_constantConstraints',['../classmaingo_1_1_m_ai_n_g_o.html#a6094a619e5202a347ad3b755a0f13fe7',1,'maingo::MAiNGO']]],
+  ['_5fconstantconstraints',['_constantConstraints',['../classmaingo_1_1_m_ai_n_g_o.html#abb011b283ec6da5387c24804ba59ff6d',1,'maingo::MAiNGO']]],
   ['_5fconstantconstraintsfeasible',['_constantConstraintsFeasible',['../classmaingo_1_1_m_ai_n_g_o.html#af917f2f3529a7c92bb0b972607c1e8df',1,'maingo::MAiNGO']]],
-  ['_5fconstantoutputs',['_constantOutputs',['../classmaingo_1_1_m_ai_n_g_o.html#a9393fdd939148611496b665d537ca6cb',1,'maingo::MAiNGO']]],
-  ['_5fconstraintproperties',['_constraintProperties',['../classmaingo_1_1ubp_1_1_ipopt_problem.html#aa7b6d4e92ccd5f357728d82baec6cf59',1,'maingo::ubp::IpoptProblem::_constraintProperties()'],['../classmaingo_1_1ubp_1_1_knitro_problem.html#a0bd778c8b72652bafe429d874cba73af',1,'maingo::ubp::KnitroProblem::_constraintProperties()'],['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1b23a7c1621517ac4506bd043d43950e',1,'maingo::lbp::LowerBoundingSolver::_constraintProperties()'],['../structmaingo_1_1lbp_1_1_dag_obj.html#a83cea7e83eb4744af421af42ab4c5cdb',1,'maingo::lbp::DagObj::_constraintProperties()'],['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aae0c39f4b14cfb8a3c70a57b49f15e67',1,'maingo::ubp::UpperBoundingSolver::_constraintProperties()']]],
+  ['_5fconstantoutputs',['_constantOutputs',['../classmaingo_1_1_m_ai_n_g_o.html#aded61d763cefceab6bf099cf9d891cff',1,'maingo::MAiNGO']]],
+  ['_5fconstraintproperties',['_constraintProperties',['../classmaingo_1_1ubp_1_1_ipopt_problem.html#a1e56ab6219a4daa52c5cbbcd6548a603',1,'maingo::ubp::IpoptProblem::_constraintProperties()'],['../classmaingo_1_1ubp_1_1_knitro_problem.html#adfd54311b1a62a9cb423071ce1c436eb',1,'maingo::ubp::KnitroProblem::_constraintProperties()'],['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a701c19e247fa6e9791313252084b770a',1,'maingo::lbp::LowerBoundingSolver::_constraintProperties()'],['../structmaingo_1_1lbp_1_1_dag_obj.html#af2ba1ac965bfc48025172b978cbee2c6',1,'maingo::lbp::DagObj::_constraintProperties()'],['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a633d6c072f7388ade44ccebf3fa3c935',1,'maingo::ubp::UpperBoundingSolver::_constraintProperties()']]],
+  ['_5fcsvsolutionstatisticsname',['_csvSolutionStatisticsName',['../classmaingo_1_1_m_ai_n_g_o.html#a689902b992cca417907471e82b9526b1',1,'maingo::MAiNGO']]],
   ['_5fdag',['_DAG',['../classmaingo_1_1_m_ai_n_g_o.html#a54d978f1329af4acf801108591eea1f5',1,'maingo::MAiNGO']]],
   ['_5fdagconstructed',['_DAGconstructed',['../classmaingo_1_1_m_ai_n_g_o.html#a5d59280b371782eaeaf887073ae7b77a',1,'maingo::MAiNGO']]],
   ['_5fdagfunctions',['_DAGfunctions',['../classmaingo_1_1_m_ai_n_g_o.html#aa5de85da627e5dbdf3c6bf6be2ddad26',1,'maingo::MAiNGO']]],
@@ -34,8 +36,10 @@ var searchData=
   ['_5fdualvalsineqsquash',['_dualValsIneqSquash',['../classmaingo_1_1lbp_1_1_lbp_clp.html#a6b2afd1c10a6f2c1519575802f0236d9',1,'maingo::lbp::LbpClp']]],
   ['_5fdualvalsobj',['_dualValsObj',['../classmaingo_1_1lbp_1_1_lbp_clp.html#ab49912af5fed8f32b703cb246b402272',1,'maingo::lbp::LbpClp']]],
   ['_5fepsilon',['_epsilon',['../classmaingo_1_1_m_ai_n_g_omodel_eps_con.html#aee5a75bf580e8f53812e4698e9876b89',1,'maingo::MAiNGOmodelEpsCon']]],
+  ['_5ferrormessage',['_errorMessage',['../classmaingo_1_1_m_ai_n_g_o_exception.html#ac3cd87bc11baff35170096a9a4fd8007',1,'maingo::MAiNGOException']]],
   ['_5feta',['_eta',['../classmaingo_1_1lbp_1_1_lbp_clp.html#a77dabe29a0aaf2ff45e1f966eef1c585',1,'maingo::lbp::LbpClp']]],
   ['_5fetacoeff',['_etaCoeff',['../classmaingo_1_1lbp_1_1_lbp_clp.html#a0108d59ae1bc4fc86d91c414b4f33b36',1,'maingo::lbp::LbpClp']]],
+  ['_5ffeasibilityproblem',['_feasibilityProblem',['../classmaingo_1_1_m_ai_n_g_o.html#a8b2bcd5e079464178341f24169e45bbc',1,'maingo::MAiNGO']]],
   ['_5ffeasible',['_feasible',['../classbab_base_1_1_optimization_variable.html#a7f00570cb2e44f165e2aa3028d215bc3',1,'babBase::OptimizationVariable']]],
   ['_5ffeasibleatroot',['_feasibleAtRoot',['../classmaingo_1_1_m_ai_n_g_o.html#ae51edfeecb90cf3be1d6cabf9d18c9eb',1,'maingo::MAiNGO']]],
   ['_5ffirstfound',['_firstFound',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a88880806d0ddfe42862a876ca961cbf6',1,'maingo::bab::BranchAndBound']]],
@@ -45,11 +49,11 @@ var searchData=
   ['_5fiarray',['_Iarray',['../classmaingo_1_1lbp_1_1_lbp_interval.html#aef1c4f8ac1b79c59562f10d2e87f4a6a',1,'maingo::lbp::LbpInterval']]],
   ['_5fid',['_Id',['../classbab_base_1_1_bab_tree.html#aad75c9a8cb31642d172e39d64f260789',1,'babBase::BabTree']]],
   ['_5fidnumber',['_idNumber',['../classbab_base_1_1_bab_node.html#a7d45d49a15377c4f03bf4c670ebb0f6b',1,'babBase::BabNode']]],
-  ['_5fincumbent',['_incumbent',['../classmaingo_1_1bab_1_1_branch_and_bound.html#ac3e65fd10f0294c31f8428330e517f85',1,'maingo::bab::BranchAndBound::_incumbent()'],['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6a6c925badc9b14fb61232aceb859b9c',1,'maingo::lbp::LowerBoundingSolver::_incumbent()']]],
+  ['_5fincumbent',['_incumbent',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a2685cdd222deff1b30e3b83c7b4bb259',1,'maingo::bab::BranchAndBound::_incumbent()'],['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a6a6c925badc9b14fb61232aceb859b9c',1,'maingo::lbp::LowerBoundingSolver::_incumbent()']]],
   ['_5fincumbentnodeid',['_incumbentNodeId',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a2defed7ca937feacb124cc97b8f7915f',1,'maingo::bab::BranchAndBound']]],
   ['_5fincumbentsolutionpoint',['_incumbentSolutionPoint',['../classbab_base_1_1_brancher.html#a0ac6e7605a51a64ec4f5449a219f64a5',1,'babBase::Brancher']]],
   ['_5finfeasiblevariables',['_infeasibleVariables',['../classmaingo_1_1_m_ai_n_g_o.html#a49594efef0db3f36efcf342acf7c7525',1,'maingo::MAiNGO']]],
-  ['_5finitialpoint',['_initialPoint',['../classmaingo_1_1bab_1_1_branch_and_bound.html#acc2f5918ff76d313d9f0d9eae3c749cd',1,'maingo::bab::BranchAndBound::_initialPoint()'],['../classmaingo_1_1_m_ai_n_g_o.html#a6624f898a20299ccfa4a8fa2f8f7dd28',1,'maingo::MAiNGO::_initialPoint()']]],
+  ['_5finitialpoint',['_initialPoint',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a1f509aa5a3de69ff00e8d2c31b654d48',1,'maingo::bab::BranchAndBound::_initialPoint()'],['../classmaingo_1_1_m_ai_n_g_o.html#a6624f898a20299ccfa4a8fa2f8f7dd28',1,'maingo::MAiNGO::_initialPoint()']]],
   ['_5finitialpointfeasible',['_initialPointFeasible',['../classmaingo_1_1_m_ai_n_g_o.html#a7e35d3a30d8a5eab184d18fe256ffc57',1,'maingo::MAiNGO']]],
   ['_5finitialpointoriginal',['_initialPointOriginal',['../classmaingo_1_1_m_ai_n_g_o.html#a66df665b487a9136ff45a8e8a76c739c',1,'maingo::MAiNGO']]],
   ['_5finitials',['_initials',['../classmaingo_1_1_ale_model.html#aa3d5f1a6297be3f397256bc1321d9053',1,'maingo::AleModel::_initials()'],['../classmaingo_1_1_variable_lister.html#a8f7746fa9dd30da09b19b04a92f86b05',1,'maingo::VariableLister::_initials()']]],
@@ -60,22 +64,22 @@ var searchData=
   ['_5fipopt',['_Ipopt',['../classmaingo_1_1ubp_1_1_ubp_ipopt.html#a6a7bbb8629378389e64679418ffab50d',1,'maingo::ubp::UbpIpopt']]],
   ['_5fiterations',['_iterations',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a3b90d97c448a84541e48eeb4388358a9',1,'maingo::bab::BranchAndBound']]],
   ['_5fiterationsgap',['_iterationsgap',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a4d1d7552bc0294281b7453a757a5b1c4',1,'maingo::bab::BranchAndBound']]],
+  ['_5fjsonfilename',['_jsonFileName',['../classmaingo_1_1_m_ai_n_g_o.html#a0dffde2ace38c3fad7a6cfb38f0f374c',1,'maingo::MAiNGO']]],
   ['_5fknitro',['_Knitro',['../classmaingo_1_1ubp_1_1_ubp_knitro.html#ae54f2f80561a3f03efbdb107b03d93eb',1,'maingo::ubp::UbpKnitro']]],
   ['_5flbd',['_lbd',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a7329b6c29c7a8686f7b417f3cfe93026',1,'maingo::bab::BranchAndBound']]],
   ['_5flbdcnt',['_lbdcnt',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a278e8c37f4d71abed1e0cb62b6366e5e',1,'maingo::bab::BranchAndBound']]],
   ['_5flbdnotchanged',['_lbdNotChanged',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a67bce3a5b8585ec930b305d9a77a3d47',1,'maingo::bab::BranchAndBound']]],
   ['_5flbdold',['_lbdOld',['../classmaingo_1_1bab_1_1_branch_and_bound.html#adaeb5fb5c51be07833bf51f921ce2e65',1,'maingo::bab::BranchAndBound']]],
-  ['_5flbs',['_LBS',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a16bbea3c96042145acc5df3830cd72b4',1,'maingo::bab::BranchAndBound']]],
+  ['_5flbs',['_LBS',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a4a63abd1f85d04b411bd3f46c95c994b',1,'maingo::bab::BranchAndBound']]],
   ['_5flinesprinted',['_linesprinted',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a46473e89580e44ef3576e9040e469478',1,'maingo::bab::BranchAndBound']]],
-  ['_5flogger',['_logger',['../classmaingo_1_1bab_1_1_branch_and_bound.html#aaf1e5ea028afe7d2700a6cc573d67674',1,'maingo::bab::BranchAndBound::_logger()'],['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ac82365b8f4f2d24466e60bbf01042142',1,'maingo::lbp::LowerBoundingSolver::_logger()'],['../classmaingo_1_1_m_ai_n_g_o.html#a96f1a3a2a8c24cdca954e63fdc155e01',1,'maingo::MAiNGO::_logger()'],['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab436cb85b75f92ef42ca46adb87b83c0',1,'maingo::ubp::UpperBoundingSolver::_logger()']]],
-  ['_5flowerbound',['_lowerBound',['../classbab_base_1_1_optimization_variable.html#aefe950aa38fa5908dbdc2b34477c2bb2',1,'babBase::OptimizationVariable']]],
+  ['_5flogger',['_logger',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a7bd1a5254c74b3adac3b74712d92257e',1,'maingo::bab::BranchAndBound::_logger()'],['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a9ec401321cfa9eda2672c9a65b6ba11d',1,'maingo::lbp::LowerBoundingSolver::_logger()'],['../classmaingo_1_1_m_ai_n_g_o.html#aad666fe69213402bdba8b9972a5985b3',1,'maingo::MAiNGO::_logger()'],['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab76a699684d09100c63ec4ddcaa10456',1,'maingo::ubp::UpperBoundingSolver::_logger()']]],
   ['_5flowerbounds',['_lowerBounds',['../classbab_base_1_1_bab_node.html#a7d1097fbd9ec6c1d7468eb8ca3532707',1,'babBase::BabNode']]],
   ['_5flowerrowbounds',['_lowerRowBounds',['../classmaingo_1_1lbp_1_1_lbp_clp.html#ab38029cc0d0963194ac6ca8c4e7c6632',1,'maingo::lbp::LbpClp::_lowerRowBounds()'],['../classmaingo_1_1ubp_1_1_ubp_clp.html#a3073de5a0fbe6fa5632a9090f1b056ef',1,'maingo::ubp::UbpClp::_lowerRowBounds()']]],
   ['_5flowervarbounds',['_lowerVarBounds',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#af0baca6c1bd4847c2c3ab98e3c6c4adb',1,'maingo::lbp::LowerBoundingSolver::_lowerVarBounds()'],['../classmaingo_1_1ubp_1_1_ubp_clp.html#a377da5ab602aaf0ad0d53ea444dce938',1,'maingo::ubp::UbpClp::_lowerVarBounds()']]],
-  ['_5flowervarboundsorig',['_lowerVarBoundsOrig',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a0a241298a1b0f9b0707386e9143e0186',1,'maingo::bab::BranchAndBound']]],
+  ['_5flowervarboundsorig',['_lowerVarBoundsOrig',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a9836ba957bbfd2acace285065fe81710',1,'maingo::bab::BranchAndBound']]],
   ['_5flpstatus',['_LPstatus',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7952199940d657eed365a660f4538527',1,'maingo::lbp::LowerBoundingSolver']]],
   ['_5fmaingooriginalsettings',['_maingoOriginalSettings',['../classmaingo_1_1_m_ai_n_g_o.html#a020f2b61ca2d2baabf16031f078c2ddd',1,'maingo::MAiNGO']]],
-  ['_5fmaingosettings',['_maingoSettings',['../classmaingo_1_1bab_1_1_branch_and_bound.html#acca388f26f5e0c94b58643b566b8a235',1,'maingo::bab::BranchAndBound::_maingoSettings()'],['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a2277a8ee8f3f41a9498c43add63835c4',1,'maingo::lbp::LowerBoundingSolver::_maingoSettings()'],['../classmaingo_1_1_m_ai_n_g_o.html#abdcc6fb032878028956050dcba5c9405',1,'maingo::MAiNGO::_maingoSettings()'],['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1b4e1d2ce3d3413c1c5d509d13ec752e',1,'maingo::ubp::UpperBoundingSolver::_maingoSettings()']]],
+  ['_5fmaingosettings',['_maingoSettings',['../classmaingo_1_1bab_1_1_branch_and_bound.html#abb34f49557e1d417e5a87a467cee2ec8',1,'maingo::bab::BranchAndBound::_maingoSettings()'],['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a1b4b4c6e80d76f83bb5a2a7f7d2f165c',1,'maingo::lbp::LowerBoundingSolver::_maingoSettings()'],['../classmaingo_1_1_m_ai_n_g_o.html#acdbebd94e2fcccad46515741516799de',1,'maingo::MAiNGO::_maingoSettings()'],['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4d7aaa4de8e2e6633b9064568961bc72',1,'maingo::ubp::UpperBoundingSolver::_maingoSettings()']]],
   ['_5fmaingostatus',['_maingoStatus',['../classmaingo_1_1_m_ai_n_g_o.html#ace36a8a82262f885ae5f87be65d868db',1,'maingo::MAiNGO']]],
   ['_5fmatrix',['_matrix',['../classmaingo_1_1lbp_1_1_lbp_clp.html#ad98f31f435d1a770ea2df783c84b40c2',1,'maingo::lbp::LbpClp::_matrix()'],['../classmaingo_1_1ubp_1_1_ubp_clp.html#a52188ee77b0ac7ba4bf8215d8fac556e',1,'maingo::ubp::UbpClp::_matrix()']]],
   ['_5fmatrixeq1',['_matrixEq1',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a8ef7d876bfe5e621b0d9dce7e00f4e8f',1,'maingo::lbp::LowerBoundingSolver']]],
@@ -90,7 +94,7 @@ var searchData=
   ['_5fmiqpstatus',['_miqpStatus',['../classmaingo_1_1_m_ai_n_g_o.html#a31692cc54ec24e14fbd7bfccda000d16',1,'maingo::MAiNGO']]],
   ['_5fmodeloutput',['_modelOutput',['../classmaingo_1_1_m_ai_n_g_o.html#aa19003266d3acb3b042f282e8bf1e575',1,'maingo::MAiNGO']]],
   ['_5fmorescalingactivated',['_moreScalingActivated',['../classmaingo_1_1bab_1_1_branch_and_bound.html#acc9b140b91203d6ca5d45f84b697be42',1,'maingo::bab::BranchAndBound']]],
-  ['_5fmsg',['_msg',['../classmaingo_1_1_m_ai_n_g_o_exception.html#a9e405ac624e18ae108f3474e4c8284d4',1,'maingo::MAiNGOException::_msg()'],['../classbab_base_1_1_branch_and_bound_base_exception.html#ad7fa9d844b7264c7251488ecc1e69482',1,'babBase::BranchAndBoundBaseException::_msg()']]],
+  ['_5fmsg',['_msg',['../classbab_base_1_1_branch_and_bound_base_exception.html#ad7fa9d844b7264c7251488ecc1e69482',1,'babBase::BranchAndBoundBaseException']]],
   ['_5fmultipliers',['_multipliers',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ad1db6e887f8b891d267b0347f17fe8db',1,'maingo::lbp::LowerBoundingSolver']]],
   ['_5fmybab',['_myBaB',['../classmaingo_1_1_m_ai_n_g_o.html#ab11fb623cd53b982490aa87f7f7da9e7',1,'maingo::MAiNGO']]],
   ['_5fmyffvarmodel',['_myFFVARmodel',['../classmaingo_1_1_m_ai_n_g_o.html#a690afb91dfea9350cd401dc4c9390c4a',1,'maingo::MAiNGO']]],
@@ -128,9 +132,9 @@ var searchData=
   ['_5fnodesleft',['_nodesLeft',['../classbab_base_1_1_bab_tree.html#aad690dae7eda8bd3e178f2341b5a1076',1,'babBase::BabTree']]],
   ['_5fnodeswaitingforresponse',['_nodesWaitingForResponse',['../classbab_base_1_1_brancher.html#a2452291823286a68da8b1ad1cefa3d84',1,'babBase::Brancher']]],
   ['_5fnodevector',['_nodeVector',['../classbab_base_1_1_bab_tree.html#a766066afd3863ebc1f9025d2e1200e20',1,'babBase::BabTree']]],
-  ['_5fnonconstantconstraints',['_nonconstantConstraints',['../classmaingo_1_1_m_ai_n_g_o.html#a92badf4c34413612706e7aeaefebe95a',1,'maingo::MAiNGO']]],
-  ['_5fnonconstantconstraintsubp',['_nonconstantConstraintsUBP',['../classmaingo_1_1_m_ai_n_g_o.html#a7bce17d744313c9b489b19179eb0b4f0',1,'maingo::MAiNGO']]],
-  ['_5fnonconstantoutputs',['_nonconstantOutputs',['../classmaingo_1_1_m_ai_n_g_o.html#ace95ba4340090ffaafec40a30504ccb4',1,'maingo::MAiNGO']]],
+  ['_5fnonconstantconstraints',['_nonconstantConstraints',['../classmaingo_1_1_m_ai_n_g_o.html#a8dacc1f270014ea3c70dee5451abae62',1,'maingo::MAiNGO']]],
+  ['_5fnonconstantconstraintsubp',['_nonconstantConstraintsUBP',['../classmaingo_1_1_m_ai_n_g_o.html#a0d1cde74073424f84d8b4692a8406101',1,'maingo::MAiNGO']]],
+  ['_5fnonconstantoutputs',['_nonconstantOutputs',['../classmaingo_1_1_m_ai_n_g_o.html#ae1bb7b84481f6f827f61d84601fe9869',1,'maingo::MAiNGO']]],
   ['_5fnoutputvariables',['_noutputVariables',['../classmaingo_1_1_m_ai_n_g_o.html#ae90a5539fd3c1790b49289c919948da7',1,'maingo::MAiNGO']]],
   ['_5fnsettingfiles',['_nSettingFiles',['../classmaingo_1_1_logger.html#a60676efa35ed66a5c90d10412698fc81',1,'maingo::Logger']]],
   ['_5fnumber_5fof_5ftrials_5fdown',['_number_of_trials_down',['../classbab_base_1_1_brancher.html#abbbc54933302ab1b407ec237aa1e0ff8',1,'babBase::Brancher']]],
@@ -151,11 +155,12 @@ var searchData=
   ['_5fobjectivesatroot',['_objectivesAtRoot',['../classmaingo_1_1_m_ai_n_g_o.html#a11b956f66ea516b6951abe9dd2410484',1,'maingo::MAiNGO']]],
   ['_5fobjectivescalingfactors',['_objectiveScalingFactors',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a67b22b446040aa9148dbbd411ad928bb',1,'maingo::lbp::LowerBoundingSolver']]],
   ['_5fobjectivevalue',['_objectiveValue',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ab2c6d75aa915dd5e3296b0873d39acfd',1,'maingo::lbp::LowerBoundingSolver']]],
+  ['_5fonlyboxconstraints',['_onlyBoxConstraints',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a44e1d78a441997c6fced40f8c91c8043',1,'maingo::lbp::LowerBoundingSolver']]],
   ['_5foptimizationvariables',['_optimizationVariables',['../classmaingo_1_1ubp_1_1_knitro_problem.html#a06238fa671eeb532dcfac051beeff95f',1,'maingo::ubp::KnitroProblem']]],
-  ['_5foriginalconstraints',['_originalConstraints',['../classmaingo_1_1_m_ai_n_g_o.html#a0314c3c342e0483b85692344d79d8486',1,'maingo::MAiNGO']]],
+  ['_5foriginalconstraints',['_originalConstraints',['../classmaingo_1_1_m_ai_n_g_o.html#a88c7a2689b32500ebf09bf37de06d47f',1,'maingo::MAiNGO']]],
   ['_5foriginallowerbounds',['_originalLowerBounds',['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2eaaa9feb9ad231209cb01a29a76b5e4',1,'maingo::ubp::UpperBoundingSolver']]],
   ['_5foriginalupperbounds',['_originalUpperBounds',['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a9c95129dc31203f436aec2d4e71e0dc2',1,'maingo::ubp::UpperBoundingSolver']]],
-  ['_5foriginalvariables',['_originalVariables',['../classmaingo_1_1bab_1_1_branch_and_bound.html#aa47a427d6c433a26a35b5882e54480e4',1,'maingo::bab::BranchAndBound::_originalVariables()'],['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a39ef7296e50fb200934ff74a017e43bf',1,'maingo::lbp::LowerBoundingSolver::_originalVariables()'],['../classmaingo_1_1_m_ai_n_g_o.html#adf764bba4c067716ca0d9948eca504a8',1,'maingo::MAiNGO::_originalVariables()'],['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a05f3d0a48a4c425ac11035a76426a184',1,'maingo::ubp::UpperBoundingSolver::_originalVariables()']]],
+  ['_5foriginalvariables',['_originalVariables',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a54fa45d1751c9a81b346bd7cd1f5969c',1,'maingo::bab::BranchAndBound::_originalVariables()'],['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a39ef7296e50fb200934ff74a017e43bf',1,'maingo::lbp::LowerBoundingSolver::_originalVariables()'],['../classmaingo_1_1_m_ai_n_g_o.html#adf764bba4c067716ca0d9948eca504a8',1,'maingo::MAiNGO::_originalVariables()'],['../classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a05f3d0a48a4c425ac11035a76426a184',1,'maingo::ubp::UpperBoundingSolver::_originalVariables()']]],
   ['_5foutputnames',['_outputNames',['../classmaingo_1_1_m_ai_n_g_o.html#a5cbd854078dc3fbef193c14af2e7a11d',1,'maingo::MAiNGO']]],
   ['_5foutputtime',['_outputTime',['../classmaingo_1_1_m_ai_n_g_o.html#a101ac517abb98426ff61a29feb27e7a1',1,'maingo::MAiNGO']]],
   ['_5foutstream',['_outStream',['../classmaingo_1_1_logger.html#a19b41b5d24dd8694b51ff0caaf56a0b4',1,'maingo::Logger']]],
@@ -172,6 +177,7 @@ var searchData=
   ['_5freadytosolve',['_readyToSolve',['../classmaingo_1_1_m_ai_n_g_o.html#a9c4f03e80eafd073264fb0d2f186dc81',1,'maingo::MAiNGO']]],
   ['_5frelpruningtol',['_relPruningTol',['../classbab_base_1_1_bab_tree.html#aa0c6599b79fd5a94a232f64cd33060de',1,'babBase::BabTree']]],
   ['_5fremovedvariables',['_removedVariables',['../classmaingo_1_1_m_ai_n_g_o.html#abb425f08ebe9b1d4a71d6b455cd656b9',1,'maingo::MAiNGO']]],
+  ['_5fresultfilename',['_resultFileName',['../classmaingo_1_1_m_ai_n_g_o.html#a0a9de764a3521782c3f6e3dc68f01324',1,'maingo::MAiNGO']]],
   ['_5fresultinterval',['_resultInterval',['../classmaingo_1_1lbp_1_1_lbp_interval.html#ac7defcd5788a9a9d5e6808a153befe3c',1,'maingo::lbp::LbpInterval']]],
   ['_5fresultvars',['_resultVars',['../classmaingo_1_1_m_ai_n_g_o.html#aa6a02b134e037806dea96aab029ff908',1,'maingo::MAiNGO']]],
   ['_5frhseq1',['_rhsEq1',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#a7d227b1709674b820d8bc7c0466aaa13',1,'maingo::lbp::LowerBoundingSolver']]],
@@ -205,20 +211,19 @@ var searchData=
   ['_5ftimepreprocess',['_timePreprocess',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a17af9af1c4195bb491a0624d3a4edb36',1,'maingo::bab::BranchAndBound']]],
   ['_5fubd',['_ubd',['../classmaingo_1_1bab_1_1_branch_and_bound.html#adf8377615ee4d86485f589700902126c',1,'maingo::bab::BranchAndBound']]],
   ['_5fubdcnt',['_ubdcnt',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a85091bc9965339278cc9c02b2baf354b',1,'maingo::bab::BranchAndBound']]],
-  ['_5fubs',['_UBS',['../classmaingo_1_1bab_1_1_branch_and_bound.html#af1853b2ef51e8bddd0a9ab2404340037',1,'maingo::bab::BranchAndBound']]],
+  ['_5fubs',['_UBS',['../classmaingo_1_1bab_1_1_branch_and_bound.html#aba6e92ef8af1e76b62a543e1334b4948',1,'maingo::bab::BranchAndBound']]],
   ['_5funiquenames',['_uniqueNames',['../classmaingo_1_1_m_ai_n_g_o.html#a4151ba2d1c6b6965001dbf7fc1a7c122',1,'maingo::MAiNGO']]],
   ['_5funiquenamesoriginal',['_uniqueNamesOriginal',['../classmaingo_1_1_m_ai_n_g_o.html#a805b901f0e2e25ee5910b2b0e6a7c99a',1,'maingo::MAiNGO']]],
-  ['_5fupperbound',['_upperBound',['../classbab_base_1_1_optimization_variable.html#a31a22d0b8661eb373ce5dbd72aedc819',1,'babBase::OptimizationVariable']]],
   ['_5fupperbounds',['_upperBounds',['../classbab_base_1_1_bab_node.html#ad98784ad49fb92d9dc13bfb4faf1561f',1,'babBase::BabNode']]],
   ['_5fupperrowbounds',['_upperRowBounds',['../classmaingo_1_1lbp_1_1_lbp_clp.html#a92aff88ba6eff7858852ad88c7545f80',1,'maingo::lbp::LbpClp::_upperRowBounds()'],['../classmaingo_1_1ubp_1_1_ubp_clp.html#a57127186a8c3cfa2eca5a84de10d5461',1,'maingo::ubp::UbpClp::_upperRowBounds()']]],
   ['_5fuppervarbounds',['_upperVarBounds',['../classmaingo_1_1lbp_1_1_lower_bounding_solver.html#ae8e6470d9c422e32457e7dd7e7a8cc50',1,'maingo::lbp::LowerBoundingSolver::_upperVarBounds()'],['../classmaingo_1_1ubp_1_1_ubp_clp.html#a08203d67961695155e95c8941b75477a',1,'maingo::ubp::UbpClp::_upperVarBounds()']]],
-  ['_5fuppervarboundsorig',['_upperVarBoundsOrig',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a5bd0987c7dde438e8d52af87421d78c5',1,'maingo::bab::BranchAndBound']]],
+  ['_5fuppervarboundsorig',['_upperVarBoundsOrig',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a6087a84349286d46bfc4a6633f5c881b',1,'maingo::bab::BranchAndBound']]],
   ['_5fusersetsettings',['_userSetSettings',['../classmaingo_1_1_logger.html#ab9bc94904f592f8dad7532e140fe9394',1,'maingo::Logger']]],
+  ['_5fuserspecifiedbounds',['_userSpecifiedBounds',['../classbab_base_1_1_optimization_variable.html#af0837b061723724dcb61543724f36d11',1,'babBase::OptimizationVariable']]],
   ['_5fvariables',['_variables',['../classmaingo_1_1_ale_model.html#a8074ec7e8aa37574089920ad172ae964',1,'maingo::AleModel::_variables()'],['../classmaingo_1_1_m_ai_n_g_o.html#a179c701e7f310080876879df45571aae',1,'maingo::MAiNGO::_variables()'],['../classmaingo_1_1_maingo_evaluator.html#a857486607beb96bd9688982671f260aa',1,'maingo::MaingoEvaluator::_variables()'],['../classmaingo_1_1_variable_lister.html#a852d79de9046af5bfa1c4bff86ce39f6',1,'maingo::VariableLister::_variables()']]],
   ['_5fvariablesfeasible',['_variablesFeasible',['../classmaingo_1_1_m_ai_n_g_o.html#aeae47f2ca5ba67f042e035711690fec1',1,'maingo::MAiNGO']]],
   ['_5fvariableslbd',['_variablesLbd',['../classmaingo_1_1_m_ai_n_g_o.html#a3bfd617c12d3ee731e314f8f806b4da0',1,'maingo::MAiNGO']]],
   ['_5fvariabletype',['_variableType',['../classbab_base_1_1_optimization_variable.html#afc0c39334eb14efb70055d5cf518b0a9',1,'babBase::OptimizationVariable']]],
-  ['_5fwallpassed',['_wallPassed',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a2845411391c8498e7eece2e2e3ba073b',1,'maingo::bab::BranchAndBound']]],
   ['_5fwritetologeverysec',['_writeToLogEverySec',['../classmaingo_1_1bab_1_1_branch_and_bound.html#a193f594912e00a2c4d8cacfd4efbdfd5',1,'maingo::bab::BranchAndBound']]],
   ['_5fxl',['_xL',['../classmaingo_1_1ubp_1_1_ipopt_problem.html#a05145891e0b75e9163d3f1bb4ae81f42',1,'maingo::ubp::IpoptProblem']]],
   ['_5fxstart',['_xStart',['../classmaingo_1_1ubp_1_1_ipopt_problem.html#afba1afdcac5ee3d6f2a05ff9911c017e',1,'maingo::ubp::IpoptProblem']]],
diff --git a/doc/html/search/variables_1.html b/doc/html/search/variables_1.html
index b784017a1ab24592168ff054f3fdb3f075a5e1f1..f46154d8bc397f644993ff883b6d879a907ff068 100644
--- a/doc/html/search/variables_1.html
+++ b/doc/html/search/variables_1.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="variables_1.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/variables_10.html b/doc/html/search/variables_10.html
index 308afd51e6c9f04df1c892e84b31965c74574e5f..b62b717e912c5d34ff3bd790a2458a86a7c5c2f7 100644
--- a/doc/html/search/variables_10.html
+++ b/doc/html/search/variables_10.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="variables_10.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/variables_11.html b/doc/html/search/variables_11.html
index c27682770179391bc84362f24bec6eed9a8f57fb..2ce8561a1fc969d6f5aece6b0f404b2af3b3c79f 100644
--- a/doc/html/search/variables_11.html
+++ b/doc/html/search/variables_11.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="variables_11.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/variables_12.html b/doc/html/search/variables_12.html
index bad4c794f43ad9be27d530f8f5bcaacab49920fc..bba5857f56126d98d5feced58dbd94268b6005b9 100644
--- a/doc/html/search/variables_12.html
+++ b/doc/html/search/variables_12.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="variables_12.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/variables_12.js b/doc/html/search/variables_12.js
index 7662a87e23eb08234648ee1256e43f801415674d..931e35e02c09c39eb51c91a5faeeac2e69bc73cd 100644
--- a/doc/html/search/variables_12.js
+++ b/doc/html/search/variables_12.js
@@ -9,8 +9,5 @@ var searchData=
   ['ubp_5fsolverbab',['UBP_solverBab',['../structmaingo_1_1_settings.html#acef4fa75216bfea7bd19dbb9d226320f',1,'maingo::Settings']]],
   ['ubp_5fsolverpreprocessing',['UBP_solverPreprocessing',['../structmaingo_1_1_settings.html#a50403ef83f8de6e5a774825a56715012',1,'maingo::Settings']]],
   ['ubp_5fverbosity',['UBP_verbosity',['../structmaingo_1_1_settings.html#af98e35447c8568c1613daf7447a30307',1,'maingo::Settings']]],
-  ['upper',['upper',['../structbab_base_1_1_bounds.html#a275ca3ce07d64ce43824d7e673cfee6b',1,'babBase::Bounds']]],
-  ['upperboundchanged',['upperBoundChanged',['../structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#a4ec809446af63cecb30c9359c89cdf40',1,'babBase::OptimizationVariable::ChangedBounds']]],
-  ['userlowerbound',['userLowerBound',['../structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#aba91eb7f14a3c3da0e12a8e77e0d98d2',1,'babBase::OptimizationVariable::ChangedBounds']]],
-  ['userupperbound',['userUpperBound',['../structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#a29e404e5263dc06f9e24e5719a53dea8',1,'babBase::OptimizationVariable::ChangedBounds']]]
+  ['upper',['upper',['../structbab_base_1_1_bounds.html#a9f4758be8a66b8e7b034af1f04e19d1d',1,'babBase::Bounds']]]
 ];
diff --git a/doc/html/search/variables_13.html b/doc/html/search/variables_13.html
index ef6d36cf330df3d81c5f547f5cf0b0de907d61f0..c92cbcc31c57ff15137f02d05d13155c59eddb84 100644
--- a/doc/html/search/variables_13.html
+++ b/doc/html/search/variables_13.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="variables_13.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/variables_13.js b/doc/html/search/variables_13.js
index 3e2c621f07ed1b1d7ee269ca5ae5eebedcb40a43..5cdd69563952eabd96e5029e9ecc0e2d641dec91 100644
--- a/doc/html/search/variables_13.js
+++ b/doc/html/search/variables_13.js
@@ -1,7 +1,7 @@
 var searchData=
 [
   ['validintervallowerbound',['validIntervalLowerBound',['../structmaingo_1_1lbp_1_1_dag_obj.html#a09fb67cc9c686600e7aa47f2780dfca5',1,'maingo::lbp::DagObj']]],
-  ['value',['value',['../structmaingo_1_1model_function.html#ad32e16eebdef8b4e555417cc514c43c0',1,'maingo::modelFunction::value()'],['../structmaingo_1_1_output_variable.html#acd79e28304c45ee43806093b857489f2',1,'maingo::OutputVariable::value()']]],
+  ['value',['value',['../structmaingo_1_1_model_function.html#a3468e730a934be8be5bf5ee2f84aacc7',1,'maingo::ModelFunction::value()'],['../structmaingo_1_1_output_variable.html#acd79e28304c45ee43806093b857489f2',1,'maingo::OutputVariable::value()']]],
   ['vars',['vars',['../structmaingo_1_1lbp_1_1_dag_obj.html#af45a858d3e9f5c34aea23e182a56aa80',1,'maingo::lbp::DagObj::vars()'],['../structmaingo_1_1ubp_1_1_dag_obj.html#a82247c4c22164ea742e7635cbf1b804c',1,'maingo::ubp::DagObj::vars()']]],
   ['vmcarray',['vMCarray',['../structmaingo_1_1lbp_1_1_dag_obj.html#a1612e267cb6ae7781a857a48e5d23df2',1,'maingo::lbp::DagObj']]],
   ['vmcpoint',['vMcPoint',['../structmaingo_1_1lbp_1_1_dag_obj.html#a5b1b4d6a673c6e3092264d6dceabdece',1,'maingo::lbp::DagObj']]],
diff --git a/doc/html/search/variables_14.html b/doc/html/search/variables_14.html
index 305ea5376deccad31650e331c1188a1ccf1cbd12..2c462043825d1f5355c641183b29f2881ea1c9a4 100644
--- a/doc/html/search/variables_14.html
+++ b/doc/html/search/variables_14.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="variables_14.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/variables_14.js b/doc/html/search/variables_14.js
index f64f2f0f939ccf4bfa4004029bd5d724dbfba2a8..1f8a964ce43ccd9244970c29ba3ced9d454b70c3 100644
--- a/doc/html/search/variables_14.js
+++ b/doc/html/search/variables_14.js
@@ -3,8 +3,6 @@ var searchData=
   ['warningflag',['warningFlag',['../structmaingo_1_1ubp_1_1_dag_obj.html#a29fc29042fab2e29d8cf3e8270d1400e',1,'maingo::ubp::DagObj']]],
   ['writecsv',['writeCsv',['../structmaingo_1_1_settings.html#a6fb19c2296412e1143f77fd7b949e7e3',1,'maingo::Settings']]],
   ['writejson',['writeJson',['../structmaingo_1_1_settings.html#a891666257be2a508061697ea80a01ada',1,'maingo::Settings']]],
-  ['writelog',['writeLog',['../structmaingo_1_1_settings.html#acec36c3b03a651632336594c40d5026a',1,'maingo::Settings']]],
-  ['writeresfile',['writeResFile',['../structmaingo_1_1_settings.html#a6d6da9a089684ecd8eb3dc560e14c0ca',1,'maingo::Settings']]],
-  ['writetologsec',['writeToLogSec',['../structmaingo_1_1_settings.html#aa0a8bf977559001dd0a4cda0d7908ebb',1,'maingo::Settings']]],
-  ['writetootherlanguage',['writeToOtherLanguage',['../structmaingo_1_1_settings.html#a440a841800111853d7366c1626242de6',1,'maingo::Settings']]]
+  ['writeresultfile',['writeResultFile',['../structmaingo_1_1_settings.html#a56d7d3b6246ae45af98b44102edbb28b',1,'maingo::Settings']]],
+  ['writetologsec',['writeToLogSec',['../structmaingo_1_1_settings.html#aa0a8bf977559001dd0a4cda0d7908ebb',1,'maingo::Settings']]]
 ];
diff --git a/doc/html/search/variables_2.html b/doc/html/search/variables_2.html
index 0cb98d30572d327010d02331478a7e4b3fab59e3..15275b7a9af37eacb665fbfc2a965b5a74166592 100644
--- a/doc/html/search/variables_2.html
+++ b/doc/html/search/variables_2.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="variables_2.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/variables_3.html b/doc/html/search/variables_3.html
index 1e83bf5a9f85974b64ef52f50bb291d1b94830a6..fbc36712ffb617b367d4502a330c906d616679df 100644
--- a/doc/html/search/variables_3.html
+++ b/doc/html/search/variables_3.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="variables_3.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/variables_3.js b/doc/html/search/variables_3.js
index d695811307d642d07edae1a3d2006565723e56c3..e9b5d19724e2d9fde7c909cae626f3f6fbb76e51 100644
--- a/doc/html/search/variables_3.js
+++ b/doc/html/search/variables_3.js
@@ -1,11 +1,9 @@
 var searchData=
 [
-  ['changedbounds',['changedBounds',['../classbab_base_1_1_optimization_variable.html#a66fdae5945a00647d5dce7ba4750ae89',1,'babBase::OptimizationVariable']]],
   ['chosenlinpoints',['chosenLinPoints',['../structmaingo_1_1lbp_1_1_dag_obj.html#abfef6333d33007bac6f1c1236fba3979',1,'maingo::lbp::DagObj']]],
   ['coeffslin',['coeffsLin',['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244',1,'maingo::ubp::UbpQuadExpr']]],
   ['coeffsquad',['coeffsQuad',['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721',1,'maingo::ubp::UbpQuadExpr']]],
   ['confirmtermination',['confirmTermination',['../structmaingo_1_1_settings.html#a2442c5741a3601880b2903b69d32bbb9',1,'maingo::Settings']]],
-  ['consistent',['consistent',['../structbab_base_1_1_bounds.html#a4b1a985eba004ed91b8383d2dde6224e',1,'babBase::Bounds']]],
   ['constant',['constant',['../structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d',1,'maingo::ubp::UbpQuadExpr']]],
   ['constantvalue',['constantValue',['../structmaingo_1_1_constraint.html#ab73c06d8bf9488187e23e4ae1df6d317',1,'maingo::Constraint']]],
   ['constraintintervals',['constraintIntervals',['../structmaingo_1_1lbp_1_1_dag_obj.html#adb5408c4f27e5267ba0086a2df4b29fa',1,'maingo::lbp::DagObj']]],
@@ -15,7 +13,7 @@ var searchData=
   ['cplxmodel',['cplxModel',['../classmaingo_1_1lbp_1_1_lbp_cplex.html#a951643df3f751b62c79f476a0ea3c608',1,'maingo::lbp::LbpCplex::cplxModel()'],['../classmaingo_1_1ubp_1_1_ubp_cplex.html#a3028cd7ab01046cd3a1eec23a4db55a1',1,'maingo::ubp::UbpCplex::cplxModel()']]],
   ['cplxobjective',['cplxObjective',['../classmaingo_1_1lbp_1_1_lbp_cplex.html#ac88cac7557fd9ba8a903ce0f8bec2aa1',1,'maingo::lbp::LbpCplex']]],
   ['cplxvars',['cplxVars',['../classmaingo_1_1lbp_1_1_lbp_cplex.html#ab051569370a1f5574a9e4b2049d7f91c',1,'maingo::lbp::LbpCplex::cplxVars()'],['../classmaingo_1_1ubp_1_1_ubp_cplex.html#a30c83b32af454645ccc8ad302377ce3f',1,'maingo::ubp::UbpCplex::cplxVars()']]],
-  ['csvgeneralname',['csvGeneralName',['../classmaingo_1_1_logger.html#a36f4bdb8cdcf58504dc06abd6d4e6725',1,'maingo::Logger::csvGeneralName()'],['../structbab_base_1_1_bab_log.html#a9b82e62a143f47a6fb85ec884fe1cf27',1,'babBase::BabLog::csvGeneralName()']]],
+  ['csvgeneralname',['csvGeneralName',['../structbab_base_1_1_bab_log.html#a9b82e62a143f47a6fb85ec884fe1cf27',1,'babBase::BabLog']]],
   ['csviterationsname',['csvIterationsName',['../classmaingo_1_1_logger.html#a11f3a05f451f1d7f6f52081b971b5724',1,'maingo::Logger::csvIterationsName()'],['../structbab_base_1_1_bab_log.html#a5fe069f633ab86b5fb1df9cbfa89216a',1,'babBase::BabLog::csvIterationsName()']]],
   ['curlb',['curLB',['../structbab_base_1_1_bab_log.html#a5ae6c872100ac962e8ac72b52d4fa8ea',1,'babBase::BabLog']]],
   ['currentintervals',['currentIntervals',['../structmaingo_1_1lbp_1_1_dag_obj.html#af5c84556b2dcec10b61dfaf09d8e57e3',1,'maingo::lbp::DagObj']]]
diff --git a/doc/html/search/variables_4.html b/doc/html/search/variables_4.html
index 39883bd6055b097460e887e4ca9148b6ca4c48cc..8067e67f8fca2ff596efa776931d0a28f7ff14fd 100644
--- a/doc/html/search/variables_4.html
+++ b/doc/html/search/variables_4.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="variables_4.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/variables_5.html b/doc/html/search/variables_5.html
index f25879c02b870e94538ac1f4981edb4e06ee307b..7e95e946f8c9387b9007dc22225eddf1f5497da9 100644
--- a/doc/html/search/variables_5.html
+++ b/doc/html/search/variables_5.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="variables_5.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/variables_5.js b/doc/html/search/variables_5.js
index 28495061c172a6b04dc0f15049506f3e838db82a..de560ec6ac527b136aa82fd352ad6df1d2978810 100644
--- a/doc/html/search/variables_5.js
+++ b/doc/html/search/variables_5.js
@@ -3,8 +3,8 @@ var searchData=
   ['ec_5fnpoints',['EC_nPoints',['../structmaingo_1_1_settings.html#ae41b9a39dbcf2adf4891a414333145bd',1,'maingo::Settings']]],
   ['epsilona',['epsilonA',['../structmaingo_1_1_settings.html#a7b899b964718fb9e7a95459026faf6aa',1,'maingo::Settings']]],
   ['epsilonr',['epsilonR',['../structmaingo_1_1_settings.html#a013779523888ede06a29eb507b22d139',1,'maingo::Settings']]],
-  ['eq',['eq',['../structmaingo_1_1_evaluation_container.html#a9c91e67852946ccb7381351512875a06',1,'maingo::EvaluationContainer::eq()'],['../structmaingo_1_1_constraint_container.html#ad875878c83b9f5e2ab0ff68c7452a53e',1,'maingo::ConstraintContainer::eq()']]],
-  ['eqrelaxationonly',['eqRelaxationOnly',['../structmaingo_1_1_evaluation_container.html#afd4671f76d0f58502f7f8a36bc574642',1,'maingo::EvaluationContainer']]],
+  ['eq',['eq',['../structmaingo_1_1_evaluation_container.html#ad71555eb350bbd6deb14d47559a6fa6d',1,'maingo::EvaluationContainer::eq()'],['../structmaingo_1_1_constraint_container.html#ad875878c83b9f5e2ab0ff68c7452a53e',1,'maingo::ConstraintContainer::eq()']]],
+  ['eqrelaxationonly',['eqRelaxationOnly',['../structmaingo_1_1_evaluation_container.html#a564d618660f9675c33900127aa686f38',1,'maingo::EvaluationContainer']]],
   ['eta',['eta',['../classmaingo_1_1lbp_1_1_lbp_cplex.html#aeb417aefdc41100afb0e2909b89c48de',1,'maingo::lbp::LbpCplex']]],
   ['etacoeff',['etaCoeff',['../classmaingo_1_1lbp_1_1_lbp_cplex.html#a597ef61cfc52812826709ac4cbd03e69',1,'maingo::lbp::LbpCplex']]]
 ];
diff --git a/doc/html/search/variables_6.html b/doc/html/search/variables_6.html
index 0fcd6c2f8aa7e4d41a72a4f49e3270398a4a1b19..3d398e6286be71e978fde8b43ede843d727b956d 100644
--- a/doc/html/search/variables_6.html
+++ b/doc/html/search/variables_6.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="variables_6.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/variables_7.html b/doc/html/search/variables_7.html
index ad2fa37a5deb631e16f56a5decdf9bf124bc6eb5..7b791460aeef62e99ad6e5913b40e6f61b2f1d78 100644
--- a/doc/html/search/variables_7.html
+++ b/doc/html/search/variables_7.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="variables_7.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/variables_8.html b/doc/html/search/variables_8.html
index 23887d77b92ee8b6e634f373243b6cdb952fbef3..8ebc5f6b772eb61fa51b92bc8cf17cf8be6bdd9f 100644
--- a/doc/html/search/variables_8.html
+++ b/doc/html/search/variables_8.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="variables_8.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/variables_8.js b/doc/html/search/variables_8.js
index 24f6841f0db55aeb0a710d7c29a8a9c2d7a0a0be..e550acb8c4f9acea76d4c38fb1db1eb0b2f94e8f 100644
--- a/doc/html/search/variables_8.js
+++ b/doc/html/search/variables_8.js
@@ -9,9 +9,9 @@ var searchData=
   ['indextype',['indexType',['../structmaingo_1_1_constraint.html#a0737a38df2e9e635c200f6b7fa284dc9',1,'maingo::Constraint']]],
   ['indextypeconstant',['indexTypeConstant',['../structmaingo_1_1_constraint.html#a53aa15e45bc19a32d03d11449b8608e3',1,'maingo::Constraint']]],
   ['indextypenonconstant',['indexTypeNonconstant',['../structmaingo_1_1_constraint.html#a35f780dfe5b201d6fb8b9e475ef69901',1,'maingo::Constraint']]],
-  ['ineq',['ineq',['../structmaingo_1_1_evaluation_container.html#a6871b7430185e5c4152b941720b606f3',1,'maingo::EvaluationContainer::ineq()'],['../structmaingo_1_1_constraint_container.html#ac1b8182544f5f0fe5357d748b690dab2',1,'maingo::ConstraintContainer::ineq()']]],
-  ['ineqrelaxationonly',['ineqRelaxationOnly',['../structmaingo_1_1_evaluation_container.html#af754c93b79ce6fa668c17d2fd26c812b',1,'maingo::EvaluationContainer']]],
-  ['ineqsquash',['ineqSquash',['../structmaingo_1_1_evaluation_container.html#aa40bfc61f94bf6850d3ee53db7e2afeb',1,'maingo::EvaluationContainer']]],
+  ['ineq',['ineq',['../structmaingo_1_1_evaluation_container.html#af3256dbd0be5bea52c3a994da7082ea4',1,'maingo::EvaluationContainer::ineq()'],['../structmaingo_1_1_constraint_container.html#ac1b8182544f5f0fe5357d748b690dab2',1,'maingo::ConstraintContainer::ineq()']]],
+  ['ineqrelaxationonly',['ineqRelaxationOnly',['../structmaingo_1_1_evaluation_container.html#acf712256b2506b6388af16e648a04fae',1,'maingo::EvaluationContainer']]],
+  ['ineqsquash',['ineqSquash',['../structmaingo_1_1_evaluation_container.html#af9572d873db6d0ebd0402cbc3539e8ee',1,'maingo::EvaluationContainer']]],
   ['infinity',['infinity',['../structmaingo_1_1_settings.html#a998dbf62d78386f5c7161b82ed37acbe',1,'maingo::Settings']]],
   ['infinitymc',['infinityMC',['../structmaingo_1_1lbp_1_1_dag_obj.html#a035f243e17df5931b5c12a003cb09b0d',1,'maingo::lbp::DagObj']]],
   ['intervalarray',['intervalArray',['../structmaingo_1_1lbp_1_1_dag_obj.html#ae58400f843a41b78fa38b70d22ccc5c0',1,'maingo::lbp::DagObj']]],
diff --git a/doc/html/search/variables_9.html b/doc/html/search/variables_9.html
index f44664990b88636966d644d2d6d5d318bb0831d7..12136613ec3da3ff75ceaa8206b92cf0321f407f 100644
--- a/doc/html/search/variables_9.html
+++ b/doc/html/search/variables_9.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="variables_9.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/variables_9.js b/doc/html/search/variables_9.js
index 963b401b800e409ecf9af16c39c8c3d3ca0a0893..5e66847e6e17918676270fc2258a42e26dce0562 100644
--- a/doc/html/search/variables_9.js
+++ b/doc/html/search/variables_9.js
@@ -1,5 +1,4 @@
 var searchData=
 [
-  ['jacproperties',['jacProperties',['../structmaingo_1_1ubp_1_1_ubp_structure.html#af049943a023a5d094c469fb65aa9a3c5',1,'maingo::ubp::UbpStructure']]],
-  ['jsonfilename',['jsonFileName',['../classmaingo_1_1_logger.html#a55590e7a2d77ea9fd85512b17f02bffa',1,'maingo::Logger']]]
+  ['jacproperties',['jacProperties',['../structmaingo_1_1ubp_1_1_ubp_structure.html#af049943a023a5d094c469fb65aa9a3c5',1,'maingo::ubp::UbpStructure']]]
 ];
diff --git a/doc/html/search/variables_a.html b/doc/html/search/variables_a.html
index 59633b35760fdaff118db33a11a04faca2224f35..24819a377bf3f94bb803f803b332e2ccc6d77e00 100644
--- a/doc/html/search/variables_a.html
+++ b/doc/html/search/variables_a.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="variables_a.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/variables_a.js b/doc/html/search/variables_a.js
index 8ba0827fdc91b93410164fd90ca170e8cdb1a8ed..f75f9697bf606a0ced969cb120493bf66082b7e3 100644
--- a/doc/html/search/variables_a.js
+++ b/doc/html/search/variables_a.js
@@ -19,8 +19,8 @@ var searchData=
   ['linineqsquash',['linIneqSquash',['../classmaingo_1_1lbp_1_1_lbp_cplex.html#a6d3ad23f21da9a7e0c6b714b90f3d024',1,'maingo::lbp::LbpCplex']]],
   ['linobj',['linObj',['../classmaingo_1_1lbp_1_1_lbp_cplex.html#a25db11157597f82460caa11b4eaef535',1,'maingo::lbp::LbpCplex']]],
   ['logfilename',['logFileName',['../classmaingo_1_1_logger.html#a70f564ada7c6d7167bfc908096476996',1,'maingo::Logger::logFileName()'],['../structbab_base_1_1_bab_log.html#a8a9df98b271e44b196dcbee8bc19cf16',1,'babBase::BabLog::logFileName()']]],
-  ['logger',['logger',['../structmaingo_1_1ubp_1_1_dag_obj.html#a61dda650b1a25155e541c4607fb7b82c',1,'maingo::ubp::DagObj']]],
-  ['lower',['lower',['../structbab_base_1_1_bounds.html#a41752124aaf238c73255f1941c861ce8',1,'babBase::Bounds']]],
-  ['lowerboundchanged',['lowerBoundChanged',['../structbab_base_1_1_optimization_variable_1_1_changed_bounds.html#a4ecf97573227d863a88a44747125aeb0',1,'babBase::OptimizationVariable::ChangedBounds']]],
+  ['logger',['logger',['../structmaingo_1_1ubp_1_1_dag_obj.html#a6e462e78027d46af3239c0463b7c9249',1,'maingo::ubp::DagObj']]],
+  ['loggingdestination',['loggingDestination',['../structmaingo_1_1_settings.html#ad665aeee888f2746d7892ffc66bd5340',1,'maingo::Settings']]],
+  ['lower',['lower',['../structbab_base_1_1_bounds.html#ac371c3147b5737af08e1c03daf413c05',1,'babBase::Bounds']]],
   ['lplowerbound',['lpLowerBound',['../structmaingo_1_1lbp_1_1_lbp_dual_info.html#a2ea74da7d73d5e4c01340cfe486b5597',1,'maingo::lbp::LbpDualInfo']]]
 ];
diff --git a/doc/html/search/variables_b.html b/doc/html/search/variables_b.html
index 17216090f2ce96e6fd206c11eb348608bc8d35ba..b306931e2e3ec9e94b6e4022d58d87c410900d8b 100644
--- a/doc/html/search/variables_b.html
+++ b/doc/html/search/variables_b.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="variables_b.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/variables_b.js b/doc/html/search/variables_b.js
index 99d30a4bbb0e35145883ee56e0580f6cf3aacc1b..ae73df4937c735d5ac9c9b3f23fa16acf0bd9302 100644
--- a/doc/html/search/variables_b.js
+++ b/doc/html/search/variables_b.js
@@ -1,6 +1,6 @@
 var searchData=
 [
-  ['maingosettings',['maingoSettings',['../structmaingo_1_1ubp_1_1_dag_obj.html#a4a939be99d5fff95ef5bd169d46fe205',1,'maingo::ubp::DagObj']]],
+  ['maingosettings',['maingoSettings',['../structmaingo_1_1ubp_1_1_dag_obj.html#a8bebd0e09ae8e79b0826bb93cba34ffa',1,'maingo::ubp::DagObj']]],
   ['maxtime',['maxTime',['../structmaingo_1_1_settings.html#a97970d98cd9d1d8972cc048d339b53dc',1,'maingo::Settings']]],
   ['mc_5fenveltol',['MC_envelTol',['../structmaingo_1_1_settings.html#a6a33331a9a865594b6698fb770687f8f',1,'maingo::Settings']]],
   ['mc_5fmvcomptol',['MC_mvcompTol',['../structmaingo_1_1_settings.html#aec5925d3412be881fb7fac711718e7e4',1,'maingo::Settings']]],
@@ -8,7 +8,8 @@ var searchData=
   ['mcarray',['MCarray',['../structmaingo_1_1lbp_1_1_dag_obj.html#a4b66f6a2a3f9e82321e23c25c1ea5110',1,'maingo::lbp::DagObj']]],
   ['mconstraints',['mConstraints',['../structmaingo_1_1_program.html#a5066677b6079a978930b7d582eaf1f72',1,'maingo::Program']]],
   ['mcpoint',['McPoint',['../structmaingo_1_1lbp_1_1_dag_obj.html#a41db90b4bf5aef1e6a1660ac36c63d5c',1,'maingo::lbp::DagObj']]],
-  ['mobjective',['mObjective',['../structmaingo_1_1_program.html#a91830e99c06a7bd5c40a95a4038bae7b',1,'maingo::Program']]],
+  ['mobjective',['mObjective',['../structmaingo_1_1_program.html#ac8bcb8f9940fb42b8818612b837a3cc3',1,'maingo::Program']]],
+  ['modelwritinglanguage',['modelWritingLanguage',['../structmaingo_1_1_settings.html#a5d637f32b3496797a5a327fba9b2589a',1,'maingo::Settings']]],
   ['monotonicity',['monotonicity',['../structmaingo_1_1_constraint.html#a90ed0a8aa176f6311588abe5af0a2581',1,'maingo::Constraint']]],
   ['moutputs',['mOutputs',['../structmaingo_1_1_program.html#aa9dd284c244d4f9c1470b1d1bbd791d1',1,'maingo::Program']]],
   ['mrelaxations',['mRelaxations',['../structmaingo_1_1_program.html#a7d49b5c89b54392bd35f6ac64c9d4b40',1,'maingo::Program']]],
diff --git a/doc/html/search/variables_c.html b/doc/html/search/variables_c.html
index 78e211ac15e2ceaa4ed3ff01ac855c56c9c01164..75709df8f5022383c84065c2c38c8b9ff90e4b3d 100644
--- a/doc/html/search/variables_c.html
+++ b/doc/html/search/variables_c.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="variables_c.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/variables_c.js b/doc/html/search/variables_c.js
index f17948f7dbe8a37c3b62e5bbcf07bc930429a8a6..dc64a17eb312f39bb78e8d970488f83cda5b6ed0 100644
--- a/doc/html/search/variables_c.js
+++ b/doc/html/search/variables_c.js
@@ -1,6 +1,6 @@
 var searchData=
 [
-  ['name',['name',['../structmaingo_1_1_constraint.html#a1965d26e79a4537ff38947721b4761a3',1,'maingo::Constraint::name()'],['../structmaingo_1_1model_function.html#a602058ed28dc600017e666b82faf43b6',1,'maingo::modelFunction::name()']]],
+  ['name',['name',['../structmaingo_1_1_constraint.html#a1965d26e79a4537ff38947721b4761a3',1,'maingo::Constraint::name()'],['../structmaingo_1_1_model_function.html#acb85f5084123b7d4d42c2d0e03b3e7c6',1,'maingo::ModelFunction::name()']]],
   ['nnonzerohessian',['nnonZeroHessian',['../structmaingo_1_1ubp_1_1_ubp_structure.html#a68a011bb8bf1e4e94a413eec37035a27',1,'maingo::ubp::UbpStructure']]],
   ['nnonzerojac',['nnonZeroJac',['../structmaingo_1_1ubp_1_1_ubp_structure.html#aeab128be4235ec4091c98e8e777a74a6',1,'maingo::ubp::UbpStructure']]],
   ['node',['node',['../classbab_base_1_1_bab_node_with_info.html#a650c3ccb6c41e2a8571992c4e711282a',1,'babBase::BabNodeWithInfo']]],
diff --git a/doc/html/search/variables_d.html b/doc/html/search/variables_d.html
index bd27a70be4729b67c06f2830018457c8036cb72b..34c80a4863bd85b7aec43d3dc5d8f3ec95adaea3 100644
--- a/doc/html/search/variables_d.html
+++ b/doc/html/search/variables_d.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="variables_d.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/variables_d.js b/doc/html/search/variables_d.js
index 07e188472161beade5307939648544df6ca175b2..d68fc3be13398ab2fb73176df3a84a5f1ed5fbb2 100644
--- a/doc/html/search/variables_d.js
+++ b/doc/html/search/variables_d.js
@@ -1,7 +1,6 @@
 var searchData=
 [
-  ['objective',['objective',['../structmaingo_1_1_evaluation_container.html#af0c40f10ae5192b4bb6478138c6ad1a0',1,'maingo::EvaluationContainer']]],
+  ['objective',['objective',['../structmaingo_1_1_evaluation_container.html#ac13bde03d078f5c9402cce551a161024',1,'maingo::EvaluationContainer']]],
   ['objrowfilled',['objRowFilled',['../structmaingo_1_1lbp_1_1_dag_obj.html#aafb406768277c0b3935a707000b0e2a5',1,'maingo::lbp::DagObj']]],
-  ['output',['output',['../structmaingo_1_1_evaluation_container.html#a86a57d19de362bd56b022103b14bd793',1,'maingo::EvaluationContainer']]],
-  ['outstreamverbosity',['outstreamVerbosity',['../structmaingo_1_1_settings.html#a63963398865197f332049e6a247bcb35',1,'maingo::Settings']]]
+  ['output',['output',['../structmaingo_1_1_evaluation_container.html#a86a57d19de362bd56b022103b14bd793',1,'maingo::EvaluationContainer']]]
 ];
diff --git a/doc/html/search/variables_e.html b/doc/html/search/variables_e.html
index f2130e01ba0a364b2c291617eb4a9700b36e9646..4a1c8a614c778cbfa31da79570f74e1a6cdb2dba 100644
--- a/doc/html/search/variables_e.html
+++ b/doc/html/search/variables_e.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="variables_e.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/variables_f.html b/doc/html/search/variables_f.html
index d66069769617adbc662f0a4de0fa9fdb3dd651af..cc86fb590c45b3d4ed66cd8e33a1a5b6319089f4 100644
--- a/doc/html/search/variables_f.html
+++ b/doc/html/search/variables_f.html
@@ -1,7 +1,7 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head><title></title>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <link rel="stylesheet" type="text/css" href="search.css"/>
 <script type="text/javascript" src="variables_f.js"></script>
 <script type="text/javascript" src="search.js"></script>
diff --git a/doc/html/search/variables_f.js b/doc/html/search/variables_f.js
index 0cc63d6612276361c20f679a18824c05a074ebbe..54b09de349fa2ac3b3a74c39be4ca559f76b62e9 100644
--- a/doc/html/search/variables_f.js
+++ b/doc/html/search/variables_f.js
@@ -4,7 +4,6 @@ var searchData=
   ['relaxationsolutionpointforbranchingvariable',['relaxationSolutionPointForBranchingVariable',['../structbab_base_1_1_branching_history_info.html#a560c2b8ee36448c5f4e458d6d50b55d1',1,'babBase::BranchingHistoryInfo']]],
   ['relgap',['relGap',['../structbab_base_1_1_bab_log.html#ac484020a1f529d739c78fe6e8a1ce43c',1,'babBase::BabLog']]],
   ['relnodetol',['relNodeTol',['../structmaingo_1_1_settings.html#a11905b6d9a1d4bcbe320d7fd6f3e4a71',1,'maingo::Settings']]],
-  ['resfilename',['resFileName',['../classmaingo_1_1_logger.html#a09a06a9baaf4765d8af2d9baea602962',1,'maingo::Logger']]],
   ['resultad',['resultAD',['../structmaingo_1_1ubp_1_1_dag_obj.html#adf62f216e68f2545bff7ca8c2380de9d',1,'maingo::ubp::DagObj']]],
   ['resultad2ndorder',['resultAD2ndOrder',['../structmaingo_1_1ubp_1_1_dag_obj.html#afb24a800ca2cfab6f0e89caa4e821294',1,'maingo::ubp::DagObj']]],
   ['resultadeq',['resultADeq',['../structmaingo_1_1ubp_1_1_dag_obj.html#adbdafa51a0de03a4d21425704bb7fd1b',1,'maingo::ubp::DagObj']]],
diff --git a/doc/html/settings_8h.html b/doc/html/settings_8h.html
index 0d1db09ee3f47c5f4a692f80aad41c8927921023..87fb94db93f7ce4b715ba71f47fbb02678485bdd 100644
--- a/doc/html/settings_8h.html
+++ b/doc/html/settings_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/settings.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/settings.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -124,38 +124,26 @@ Enumerations</h2></td></tr>
  }</td></tr>
 <tr class="memdesc:a53603cf77a4aab12b16a3cce79b991be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enum for controlling the output level of solvers (i.e., how much should be printed on the screen and, possibly, to the log file).  <a href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">More...</a><br /></td></tr>
 <tr class="separator:a53603cf77a4aab12b16a3cce79b991be"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3d9300c6853caaf91b0afc24d3dd1ae0"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0">maingo::OUTSTREAM_VERB</a> { <a class="el" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0a11b0a1dd952da50747424243c027c808">maingo::OUTSTREAM_NONE</a> = 0, 
-<a class="el" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0a52f5f76af1455b5ee7ad085be3dbb0ed">maingo::OUTSTREAM_OUTSTREAM</a>, 
-<a class="el" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0aeafd0b37169b3bd9330488dfff7713b7">maingo::OUTSTREAM_LOG</a>, 
-<a class="el" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0a585dae7be6c02c38889b2be3e16fd2fb">maingo::OUTSTREAM_BOTH</a>
+<tr class="memitem:aed64ab21c095ed6882ea61128addd7a4"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4">maingo::LOGGING_DESTINATION</a> { <a class="el" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4a5ba5670261ac104d957be08824b10fda">maingo::LOGGING_NONE</a> = 0, 
+<a class="el" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4afb969130cbbe60ea7ede72325e349fbe">maingo::LOGGING_OUTSTREAM</a>, 
+<a class="el" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4a335b5d0a5d8ddae15c4f4dc56ff437c1">maingo::LOGGING_FILE</a>, 
+<a class="el" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4aaeb2ef5d2157419a5fe03924e9fbb714">maingo::LOGGING_FILE_AND_STREAM</a>
  }</td></tr>
-<tr class="memdesc:a3d9300c6853caaf91b0afc24d3dd1ae0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enum for controlling the output and writing level of MAiNGO (i.e., where should the output be written to, outstream and/or log)  <a href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0">More...</a><br /></td></tr>
-<tr class="separator:a3d9300c6853caaf91b0afc24d3dd1ae0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7fda513a30bb172152b96406e370299a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299a">maingo::PARSING_LANGUAGE</a> { <br />
-&#160;&#160;<a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aacd2ad11121ce71554943363ac99cd0c8">maingo::LANG_NONE</a> = -1, 
-<a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aa6005851459ecd1476b128baad46d46e6">maingo::AMPL</a>, 
-<a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aa8476f2061be97a547db8d42808fa4369">maingo::ALE</a>, 
-<a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aa6b23681db7db1db0a27cb2007620056e">maingo::BARON</a>, 
-<br />
-&#160;&#160;<a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aa14773b3cb5be6b7a031e2648f1edb27a">maingo::GAMS</a>, 
-<a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aad139485466768f0cb2bc590af41f84fe">maingo::PYOMO</a>, 
-<a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aabb1dae9f397b7c971de9be182a505616">maingo::NLP_LANG</a>
-<br />
+<tr class="memdesc:aed64ab21c095ed6882ea61128addd7a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enum for controlling where logging information of MAiNGO should be written.  <a href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4">More...</a><br /></td></tr>
+<tr class="separator:aed64ab21c095ed6882ea61128addd7a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a76021544553e05d3b4de6cbcf58db39a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39a">maingo::WRITING_LANGUAGE</a> { <a class="el" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39aacd2ad11121ce71554943363ac99cd0c8">maingo::LANG_NONE</a> = 0, 
+<a class="el" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39aa1b0686f8505e989428b2edbc77249953">maingo::LANG_ALE</a>, 
+<a class="el" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39aa8baf6445b690d1592e58cf697ced3bfe">maingo::LANG_GAMS</a>
  }</td></tr>
-<tr class="memdesc:a7fda513a30bb172152b96406e370299a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enum for representing possible modeling language for parsing a MAiNGO model to.  <a href="namespacemaingo.html#a7fda513a30bb172152b96406e370299a">More...</a><br /></td></tr>
-<tr class="separator:a7fda513a30bb172152b96406e370299a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a93b68678c7bf3f3767b5ac7adf55a4be"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4be">maingo::lbp::LBP_SOLVER</a> { <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4beab21ba68ca9d31ece2a6ac8006b39027e">maingo::lbp::SOLVER_MAiNGO</a> = 0, 
-<a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4beabbf2c359f240461a8859bea8b628179d">maingo::lbp::SOLVER_INTERVAL</a> = 1, 
-<a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea7461c27f75e0601f39252dd553b686e6">maingo::lbp::SOLVER_CPLEX</a> = 2, 
-<a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea0a3210e4f9065f1ead5177bfdfbc27d1">maingo::lbp::SOLVER_CLP</a> = 3
+<tr class="memdesc:a76021544553e05d3b4de6cbcf58db39a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enum for representing the modeling language in which MAiNGO is supposed to write the current model to a file.  <a href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39a">More...</a><br /></td></tr>
+<tr class="separator:a76021544553e05d3b4de6cbcf58db39a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93b68678c7bf3f3767b5ac7adf55a4be"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4be">maingo::lbp::LBP_SOLVER</a> { <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea32fa8aaeff8ed8f41d95ce72acc04ce1">maingo::lbp::LBP_SOLVER_MAiNGO</a> = 0, 
+<a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4beafc7bfbfe657af2fff8e3800860388f89">maingo::lbp::LBP_SOLVER_INTERVAL</a>, 
+<a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea016b6bae02feefafd679a8d57149aff5">maingo::lbp::LBP_SOLVER_CPLEX</a>, 
+<a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea9c0bfb2a028e4a3ab6011619009d62d9">maingo::lbp::LBP_SOLVER_CLP</a>
  }</td></tr>
 <tr class="memdesc:a93b68678c7bf3f3767b5ac7adf55a4be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enum for selecting the STRATegy so be used for solving the lower bounding problems.  <a href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4be">More...</a><br /></td></tr>
 <tr class="separator:a93b68678c7bf3f3767b5ac7adf55a4be"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad19f1469072a948e0678836725b1d3e8"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8">maingo::lbp::OBBT</a> { <a class="el" href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8a739b073ddf68d60146dfb7b8f3b24c0c">maingo::lbp::OBBT_FEAS</a> = 0, 
-<a class="el" href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8a207bbc0e97b4a6f7598b447f8b8c8b89">maingo::lbp::OBBT_FEASOPT</a>
- }</td></tr>
-<tr class="memdesc:ad19f1469072a948e0678836725b1d3e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enum for communicating whether Optimization-Based Bound Tightening should consider only feasibility or also optimality.  <a href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8">More...</a><br /></td></tr>
-<tr class="separator:ad19f1469072a948e0678836725b1d3e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:addd00d5f7ff74c4721070d8dd76f93a2"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2">maingo::lbp::LINP</a> { <br />
 &#160;&#160;<a class="el" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a5c70e54dadb090b3234669343d814e3a">maingo::lbp::LINP_MID</a> = 0, 
 <a class="el" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a6f6fc41c94ae0797af701d329a74a277">maingo::lbp::LINP_INCUMBENT</a>, 
@@ -169,17 +157,17 @@ Enumerations</h2></td></tr>
 <tr class="memdesc:addd00d5f7ff74c4721070d8dd76f93a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enum for selecting the Linearization Points to be used in constructing affine relaxations.  <a href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2">More...</a><br /></td></tr>
 <tr class="separator:addd00d5f7ff74c4721070d8dd76f93a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:acc8477a9a8bca6eb434b2bd647f62f9d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9d">maingo::ubp::UBP_SOLVER</a> { <br />
-&#160;&#160;<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac9dd69c054981d95b5633af8eada06b7">maingo::ubp::SOLVER_EVAL</a> = 0, 
-<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac5701f2847e960c47f46914beac6a128">maingo::ubp::SOLVER_COBYLA</a>, 
-<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da54ed347065f9c65c37a71a3cb4db7451">maingo::ubp::SOLVER_BOBYQA</a>, 
-<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da816c98ce5f16248a60f78e76bc534823">maingo::ubp::SOLVER_LBFGS</a>, 
+&#160;&#160;<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da15b7028091e5f95408a2a26e643cb972">maingo::ubp::UBP_SOLVER_EVAL</a> = 0, 
+<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9daaff3b4a7dfedf2a8f66396d01c4e1645">maingo::ubp::UBP_SOLVER_COBYLA</a>, 
+<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da16910a5ab42fd9bcd71489c0f07d7791">maingo::ubp::UBP_SOLVER_BOBYQA</a>, 
+<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac4da4292c1a20fb6a199fc7b540bc2d3">maingo::ubp::UBP_SOLVER_LBFGS</a>, 
 <br />
-&#160;&#160;<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da24b4fd10f12919d2825cb493c71d3cf8">maingo::ubp::SOLVER_SLSQP</a>, 
-<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac449153333e544edc3b78977ab02ea20">maingo::ubp::SOLVER_IPOPT</a>, 
-<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da6cc859f77befbec62acf36cb2ef82683">maingo::ubp::SOLVER_KNITRO</a>, 
-<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da64db5861bc8d36e7cb00978e72af8408">maingo::ubp::SOLVER_CPLEX</a> = 42, 
+&#160;&#160;<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da5e8733223dd08864a8d5effbb341992a">maingo::ubp::UBP_SOLVER_SLSQP</a>, 
+<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da3d2c4a7fd42fd747fe825ec8f0b1a1ad">maingo::ubp::UBP_SOLVER_IPOPT</a>, 
+<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da019153052e3b77622e3f2a7f0ce339e8">maingo::ubp::UBP_SOLVER_KNITRO</a>, 
+<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da9537df8ae6b66b2b07f2a31d7258c98f">maingo::ubp::UBP_SOLVER_CPLEX</a> = 42, 
 <br />
-&#160;&#160;<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da995e3c0356133ed4320ffa4111536e10">maingo::ubp::SOLVER_CLP</a>
+&#160;&#160;<a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dab4e7e171165eb64a246e2e7b7e2ea352">maingo::ubp::UBP_SOLVER_CLP</a>
 <br />
  }</td></tr>
 <tr class="memdesc:acc8477a9a8bca6eb434b2bd647f62f9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enum for selecting the STRATegy so be used for solving the upper bounding problems.  <a href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9d">More...</a><br /></td></tr>
@@ -193,7 +181,7 @@ Enumerations</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="settings_8h.html">settings.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/settings_8h.js b/doc/html/settings_8h.js
index 640f606fb2bacf255090aaea86a30117077dd39b..40a59af167056f0ca92f60bdbb36fcac4a601fc9 100644
--- a/doc/html/settings_8h.js
+++ b/doc/html/settings_8h.js
@@ -2,10 +2,10 @@ var settings_8h =
 [
     [ "Settings", "structmaingo_1_1_settings.html", "structmaingo_1_1_settings" ],
     [ "LBP_SOLVER", "settings_8h.html#a93b68678c7bf3f3767b5ac7adf55a4be", [
-      [ "SOLVER_MAiNGO", "settings_8h.html#a93b68678c7bf3f3767b5ac7adf55a4beab21ba68ca9d31ece2a6ac8006b39027e", null ],
-      [ "SOLVER_INTERVAL", "settings_8h.html#a93b68678c7bf3f3767b5ac7adf55a4beabbf2c359f240461a8859bea8b628179d", null ],
-      [ "SOLVER_CPLEX", "settings_8h.html#a93b68678c7bf3f3767b5ac7adf55a4bea7461c27f75e0601f39252dd553b686e6", null ],
-      [ "SOLVER_CLP", "settings_8h.html#a93b68678c7bf3f3767b5ac7adf55a4bea0a3210e4f9065f1ead5177bfdfbc27d1", null ]
+      [ "LBP_SOLVER_MAiNGO", "settings_8h.html#a93b68678c7bf3f3767b5ac7adf55a4bea32fa8aaeff8ed8f41d95ce72acc04ce1", null ],
+      [ "LBP_SOLVER_INTERVAL", "settings_8h.html#a93b68678c7bf3f3767b5ac7adf55a4beafc7bfbfe657af2fff8e3800860388f89", null ],
+      [ "LBP_SOLVER_CPLEX", "settings_8h.html#a93b68678c7bf3f3767b5ac7adf55a4bea016b6bae02feefafd679a8d57149aff5", null ],
+      [ "LBP_SOLVER_CLP", "settings_8h.html#a93b68678c7bf3f3767b5ac7adf55a4bea9c0bfb2a028e4a3ab6011619009d62d9", null ]
     ] ],
     [ "LINP", "settings_8h.html#addd00d5f7ff74c4721070d8dd76f93a2", [
       [ "LINP_MID", "settings_8h.html#addd00d5f7ff74c4721070d8dd76f93a2a5c70e54dadb090b3234669343d814e3a", null ],
@@ -15,39 +15,31 @@ var settings_8h =
       [ "LINP_RANDOM", "settings_8h.html#addd00d5f7ff74c4721070d8dd76f93a2a6e05ea1a421a5bfe21ff3044b03a0b18", null ],
       [ "LINP_KELLEY_SIMPLEX", "settings_8h.html#addd00d5f7ff74c4721070d8dd76f93a2a5b84f41c3cd21549f844b70dab1f8e49", null ]
     ] ],
-    [ "OBBT", "settings_8h.html#ad19f1469072a948e0678836725b1d3e8", [
-      [ "OBBT_FEAS", "settings_8h.html#ad19f1469072a948e0678836725b1d3e8a739b073ddf68d60146dfb7b8f3b24c0c", null ],
-      [ "OBBT_FEASOPT", "settings_8h.html#ad19f1469072a948e0678836725b1d3e8a207bbc0e97b4a6f7598b447f8b8c8b89", null ]
-    ] ],
-    [ "OUTSTREAM_VERB", "settings_8h.html#a3d9300c6853caaf91b0afc24d3dd1ae0", [
-      [ "OUTSTREAM_NONE", "settings_8h.html#a3d9300c6853caaf91b0afc24d3dd1ae0a11b0a1dd952da50747424243c027c808", null ],
-      [ "OUTSTREAM_OUTSTREAM", "settings_8h.html#a3d9300c6853caaf91b0afc24d3dd1ae0a52f5f76af1455b5ee7ad085be3dbb0ed", null ],
-      [ "OUTSTREAM_LOG", "settings_8h.html#a3d9300c6853caaf91b0afc24d3dd1ae0aeafd0b37169b3bd9330488dfff7713b7", null ],
-      [ "OUTSTREAM_BOTH", "settings_8h.html#a3d9300c6853caaf91b0afc24d3dd1ae0a585dae7be6c02c38889b2be3e16fd2fb", null ]
-    ] ],
-    [ "PARSING_LANGUAGE", "settings_8h.html#a7fda513a30bb172152b96406e370299a", [
-      [ "LANG_NONE", "settings_8h.html#a7fda513a30bb172152b96406e370299aacd2ad11121ce71554943363ac99cd0c8", null ],
-      [ "AMPL", "settings_8h.html#a7fda513a30bb172152b96406e370299aa6005851459ecd1476b128baad46d46e6", null ],
-      [ "ALE", "settings_8h.html#a7fda513a30bb172152b96406e370299aa8476f2061be97a547db8d42808fa4369", null ],
-      [ "BARON", "settings_8h.html#a7fda513a30bb172152b96406e370299aa6b23681db7db1db0a27cb2007620056e", null ],
-      [ "GAMS", "settings_8h.html#a7fda513a30bb172152b96406e370299aa14773b3cb5be6b7a031e2648f1edb27a", null ],
-      [ "PYOMO", "settings_8h.html#a7fda513a30bb172152b96406e370299aad139485466768f0cb2bc590af41f84fe", null ],
-      [ "NLP_LANG", "settings_8h.html#a7fda513a30bb172152b96406e370299aabb1dae9f397b7c971de9be182a505616", null ]
+    [ "LOGGING_DESTINATION", "settings_8h.html#aed64ab21c095ed6882ea61128addd7a4", [
+      [ "LOGGING_NONE", "settings_8h.html#aed64ab21c095ed6882ea61128addd7a4a5ba5670261ac104d957be08824b10fda", null ],
+      [ "LOGGING_OUTSTREAM", "settings_8h.html#aed64ab21c095ed6882ea61128addd7a4afb969130cbbe60ea7ede72325e349fbe", null ],
+      [ "LOGGING_FILE", "settings_8h.html#aed64ab21c095ed6882ea61128addd7a4a335b5d0a5d8ddae15c4f4dc56ff437c1", null ],
+      [ "LOGGING_FILE_AND_STREAM", "settings_8h.html#aed64ab21c095ed6882ea61128addd7a4aaeb2ef5d2157419a5fe03924e9fbb714", null ]
     ] ],
     [ "UBP_SOLVER", "settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9d", [
-      [ "SOLVER_EVAL", "settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9dac9dd69c054981d95b5633af8eada06b7", null ],
-      [ "SOLVER_COBYLA", "settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9dac5701f2847e960c47f46914beac6a128", null ],
-      [ "SOLVER_BOBYQA", "settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9da54ed347065f9c65c37a71a3cb4db7451", null ],
-      [ "SOLVER_LBFGS", "settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9da816c98ce5f16248a60f78e76bc534823", null ],
-      [ "SOLVER_SLSQP", "settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9da24b4fd10f12919d2825cb493c71d3cf8", null ],
-      [ "SOLVER_IPOPT", "settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9dac449153333e544edc3b78977ab02ea20", null ],
-      [ "SOLVER_KNITRO", "settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9da6cc859f77befbec62acf36cb2ef82683", null ],
-      [ "SOLVER_CPLEX", "settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9da64db5861bc8d36e7cb00978e72af8408", null ],
-      [ "SOLVER_CLP", "settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9da995e3c0356133ed4320ffa4111536e10", null ]
+      [ "UBP_SOLVER_EVAL", "settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9da15b7028091e5f95408a2a26e643cb972", null ],
+      [ "UBP_SOLVER_COBYLA", "settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9daaff3b4a7dfedf2a8f66396d01c4e1645", null ],
+      [ "UBP_SOLVER_BOBYQA", "settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9da16910a5ab42fd9bcd71489c0f07d7791", null ],
+      [ "UBP_SOLVER_LBFGS", "settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9dac4da4292c1a20fb6a199fc7b540bc2d3", null ],
+      [ "UBP_SOLVER_SLSQP", "settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9da5e8733223dd08864a8d5effbb341992a", null ],
+      [ "UBP_SOLVER_IPOPT", "settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9da3d2c4a7fd42fd747fe825ec8f0b1a1ad", null ],
+      [ "UBP_SOLVER_KNITRO", "settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9da019153052e3b77622e3f2a7f0ce339e8", null ],
+      [ "UBP_SOLVER_CPLEX", "settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9da9537df8ae6b66b2b07f2a31d7258c98f", null ],
+      [ "UBP_SOLVER_CLP", "settings_8h.html#acc8477a9a8bca6eb434b2bd647f62f9dab4e7e171165eb64a246e2e7b7e2ea352", null ]
     ] ],
     [ "VERB", "settings_8h.html#a53603cf77a4aab12b16a3cce79b991be", [
       [ "VERB_NONE", "settings_8h.html#a53603cf77a4aab12b16a3cce79b991bea564fb96cc42aa72474169a9d7e3fd844", null ],
       [ "VERB_NORMAL", "settings_8h.html#a53603cf77a4aab12b16a3cce79b991bea46b5de1abddbaba6cf2a9b54852c0a6c", null ],
       [ "VERB_ALL", "settings_8h.html#a53603cf77a4aab12b16a3cce79b991bea492f57f7be5a28760409792b99e09bd8", null ]
+    ] ],
+    [ "WRITING_LANGUAGE", "settings_8h.html#a76021544553e05d3b4de6cbcf58db39a", [
+      [ "LANG_NONE", "settings_8h.html#a76021544553e05d3b4de6cbcf58db39aacd2ad11121ce71554943363ac99cd0c8", null ],
+      [ "LANG_ALE", "settings_8h.html#a76021544553e05d3b4de6cbcf58db39aa1b0686f8505e989428b2edbc77249953", null ],
+      [ "LANG_GAMS", "settings_8h.html#a76021544553e05d3b4de6cbcf58db39aa8baf6445b690d1592e58cf697ced3bfe", null ]
     ] ]
 ];
\ No newline at end of file
diff --git a/doc/html/settings_8h_source.html b/doc/html/settings_8h_source.html
index 11d0f8140bf6977a9c822c1ede9862409e3d471b..e8b072c695e6e787b00b165b6ed40f928a9c6d93 100644
--- a/doc/html/settings_8h_source.html
+++ b/doc/html/settings_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/settings.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/settings.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,109 +90,101 @@ $(document).ready(function(){initNavTree('settings_8h_source.html','');});
 <div class="title">settings.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="settings_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file settings.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing declarations of everything needed to specify settings</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *        for MAiNGO.</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_utils_8h.html">babUtils.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">   33</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a> {</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991bea564fb96cc42aa72474169a9d7e3fd844">   34</a></span>&#160;    <a class="code" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991bea564fb96cc42aa72474169a9d7e3fd844">VERB_NONE</a> = 0, </div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991bea46b5de1abddbaba6cf2a9b54852c0a6c">   35</a></span>&#160;    <a class="code" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991bea46b5de1abddbaba6cf2a9b54852c0a6c">VERB_NORMAL</a>,   </div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991bea492f57f7be5a28760409792b99e09bd8">   36</a></span>&#160;    <a class="code" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991bea492f57f7be5a28760409792b99e09bd8">VERB_ALL</a>       </div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;};</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0">   44</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0">OUTSTREAM_VERB</a> {</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0a11b0a1dd952da50747424243c027c808">   45</a></span>&#160;    <a class="code" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0a11b0a1dd952da50747424243c027c808">OUTSTREAM_NONE</a> = 0,  </div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0a52f5f76af1455b5ee7ad085be3dbb0ed">   46</a></span>&#160;    <a class="code" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0a52f5f76af1455b5ee7ad085be3dbb0ed">OUTSTREAM_OUTSTREAM</a>, </div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0aeafd0b37169b3bd9330488dfff7713b7">   47</a></span>&#160;    <a class="code" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0aeafd0b37169b3bd9330488dfff7713b7">OUTSTREAM_LOG</a>,       </div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0a585dae7be6c02c38889b2be3e16fd2fb">   48</a></span>&#160;    <a class="code" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0a585dae7be6c02c38889b2be3e16fd2fb">OUTSTREAM_BOTH</a>       </div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;};</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299a">   56</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299a">PARSING_LANGUAGE</a> {</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aacd2ad11121ce71554943363ac99cd0c8">   57</a></span>&#160;    <a class="code" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aacd2ad11121ce71554943363ac99cd0c8">LANG_NONE</a> = -1,    </div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aa6005851459ecd1476b128baad46d46e6">   58</a></span>&#160;    <a class="code" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aa6005851459ecd1476b128baad46d46e6">AMPL</a>,              </div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aa8476f2061be97a547db8d42808fa4369">   59</a></span>&#160;    <a class="code" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aa8476f2061be97a547db8d42808fa4369">ALE</a>,               </div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aa6b23681db7db1db0a27cb2007620056e">   60</a></span>&#160;    <a class="code" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aa6b23681db7db1db0a27cb2007620056e">BARON</a>,             </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aa14773b3cb5be6b7a031e2648f1edb27a">   61</a></span>&#160;    <a class="code" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aa14773b3cb5be6b7a031e2648f1edb27a">GAMS</a>,              </div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aad139485466768f0cb2bc590af41f84fe">   62</a></span>&#160;    <a class="code" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aad139485466768f0cb2bc590af41f84fe">PYOMO</a>,             </div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aabb1dae9f397b7c971de9be182a505616">   63</a></span>&#160;    <a class="code" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aabb1dae9f397b7c971de9be182a505616">NLP_LANG</a>           </div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;};</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="keyword">namespace </span>lbp {</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4be">   78</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4be">LBP_SOLVER</a> {</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4beab21ba68ca9d31ece2a6ac8006b39027e">   79</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4beab21ba68ca9d31ece2a6ac8006b39027e">SOLVER_MAiNGO</a>   = 0, </div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4beabbf2c359f240461a8859bea8b628179d">   80</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4beabbf2c359f240461a8859bea8b628179d">SOLVER_INTERVAL</a> = 1, </div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea7461c27f75e0601f39252dd553b686e6">   81</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea7461c27f75e0601f39252dd553b686e6">SOLVER_CPLEX</a>    = 2, </div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea0a3210e4f9065f1ead5177bfdfbc27d1">   82</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea0a3210e4f9065f1ead5177bfdfbc27d1">SOLVER_CLP</a>      = 3  </div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;};</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8">   89</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8">OBBT</a> {</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8a739b073ddf68d60146dfb7b8f3b24c0c">   90</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8a739b073ddf68d60146dfb7b8f3b24c0c">OBBT_FEAS</a> = 0, </div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8a207bbc0e97b4a6f7598b447f8b8c8b89">   91</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8a207bbc0e97b4a6f7598b447f8b8c8b89">OBBT_FEASOPT</a>   </div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;};</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2">   98</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2">LINP</a> {</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a5c70e54dadb090b3234669343d814e3a">   99</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a5c70e54dadb090b3234669343d814e3a">LINP_MID</a> = 0,       </div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a6f6fc41c94ae0797af701d329a74a277">  100</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a6f6fc41c94ae0797af701d329a74a277">LINP_INCUMBENT</a>,     </div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a2646c5b7bcb159ca8436c7a813e8b783">  101</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a2646c5b7bcb159ca8436c7a813e8b783">LINP_KELLEY</a>,        </div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2af60eacc8183e3e5080cb19d89f15c598">  102</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2af60eacc8183e3e5080cb19d89f15c598">LINP_SIMPLEX</a>,       </div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a6e05ea1a421a5bfe21ff3044b03a0b18">  103</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a6e05ea1a421a5bfe21ff3044b03a0b18">LINP_RANDOM</a>,        </div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a5b84f41c3cd21549f844b70dab1f8e49">  104</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a5b84f41c3cd21549f844b70dab1f8e49">LINP_KELLEY_SIMPLEX</a> </div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;};</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;}    <span class="comment">// end namespace lbp</span></div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;<span class="keyword">namespace </span>ubp {</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9d">  120</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9d">UBP_SOLVER</a> {</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac9dd69c054981d95b5633af8eada06b7">  121</a></span>&#160;    <a class="code" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac9dd69c054981d95b5633af8eada06b7">SOLVER_EVAL</a> = 0,   </div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac5701f2847e960c47f46914beac6a128">  122</a></span>&#160;    <a class="code" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac5701f2847e960c47f46914beac6a128">SOLVER_COBYLA</a>,     </div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da54ed347065f9c65c37a71a3cb4db7451">  123</a></span>&#160;    <a class="code" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da54ed347065f9c65c37a71a3cb4db7451">SOLVER_BOBYQA</a>,     </div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da816c98ce5f16248a60f78e76bc534823">  124</a></span>&#160;    <a class="code" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da816c98ce5f16248a60f78e76bc534823">SOLVER_LBFGS</a>,      </div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da24b4fd10f12919d2825cb493c71d3cf8">  125</a></span>&#160;    <a class="code" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da24b4fd10f12919d2825cb493c71d3cf8">SOLVER_SLSQP</a>,      </div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac449153333e544edc3b78977ab02ea20">  126</a></span>&#160;    <a class="code" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac449153333e544edc3b78977ab02ea20">SOLVER_IPOPT</a>,      </div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da6cc859f77befbec62acf36cb2ef82683">  127</a></span>&#160;    <a class="code" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da6cc859f77befbec62acf36cb2ef82683">SOLVER_KNITRO</a>,     </div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da64db5861bc8d36e7cb00978e72af8408">  128</a></span>&#160;    <a class="code" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da64db5861bc8d36e7cb00978e72af8408">SOLVER_CPLEX</a> = 42, </div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da995e3c0356133ed4320ffa4111536e10">  129</a></span>&#160;    <a class="code" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da995e3c0356133ed4320ffa4111536e10">SOLVER_CLP</a>         </div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;};</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;}    <span class="comment">// end namespace ubp</span></div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html">  143</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmaingo_1_1_settings.html">Settings</a> {</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    <a class="code" href="structmaingo_1_1_settings.html#ab7169a6eefce79566dd07db3b1e5e967">Settings</a>();</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <a class="code" href="structmaingo_1_1_settings.html#ab7169a6eefce79566dd07db3b1e5e967">Settings</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1_settings.html">Settings</a>&amp;) = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    <a class="code" href="structmaingo_1_1_settings.html">Settings</a>&amp; <a class="code" href="structmaingo_1_1_settings.html#a5e9afadd1d866d01c96a114686b32672">operator=</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1_settings.html">Settings</a>&amp;) = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a7b899b964718fb9e7a95459026faf6aa">  164</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structmaingo_1_1_settings.html#a7b899b964718fb9e7a95459026faf6aa">epsilonA</a>;      </div><div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a013779523888ede06a29eb507b22d139">  165</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structmaingo_1_1_settings.html#a013779523888ede06a29eb507b22d139">epsilonR</a>;      </div><div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#af995a33f43f5609d3e941cbdf72a94de">  166</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structmaingo_1_1_settings.html#af995a33f43f5609d3e941cbdf72a94de">deltaIneq</a>;     </div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a4152b7df19df2bfd3b4e43d13aea1841">  167</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structmaingo_1_1_settings.html#a4152b7df19df2bfd3b4e43d13aea1841">deltaEq</a>;       </div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a11905b6d9a1d4bcbe320d7fd6f3e4a71">  168</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structmaingo_1_1_settings.html#a11905b6d9a1d4bcbe320d7fd6f3e4a71">relNodeTol</a>;    </div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#acbc8b6cea8fdfd9db25f805b25d9bd43">  170</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="structmaingo_1_1_settings.html#acbc8b6cea8fdfd9db25f805b25d9bd43">BAB_maxNodes</a>;            </div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a93335d6322c7df74c4ffd387941379be">  171</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="structmaingo_1_1_settings.html#a93335d6322c7df74c4ffd387941379be">BAB_maxIterations</a>;       </div><div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a97970d98cd9d1d8972cc048d339b53dc">  172</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="structmaingo_1_1_settings.html#a97970d98cd9d1d8972cc048d339b53dc">maxTime</a>;                 </div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a2442c5741a3601880b2903b69d32bbb9">  173</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_settings.html#a2442c5741a3601880b2903b69d32bbb9">confirmTermination</a>;          </div><div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#ad7cad6ff794ba09b57b3c22733b44f58">  174</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_settings.html#ad7cad6ff794ba09b57b3c22733b44f58">terminateOnFeasiblePoint</a>;    </div><div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#aec0786e196d9432a636fc741e0fbeec3">  175</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structmaingo_1_1_settings.html#aec0786e196d9432a636fc741e0fbeec3">targetLowerBound</a>;          </div><div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a46aef5290b25ae54af6dba81d896fcbc">  176</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structmaingo_1_1_settings.html#a46aef5290b25ae54af6dba81d896fcbc">targetUpperBound</a>;          </div><div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a998dbf62d78386f5c7161b82ed37acbe">  177</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structmaingo_1_1_settings.html#a998dbf62d78386f5c7161b82ed37acbe">infinity</a>;                  </div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a3003863167eab673fbeae391bfeb802b">  184</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="structmaingo_1_1_settings.html#a3003863167eab673fbeae391bfeb802b">PRE_maxLocalSearches</a>;    </div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a34c3073ced91a6837df66cfddd3a74ee">  185</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="structmaingo_1_1_settings.html#a34c3073ced91a6837df66cfddd3a74ee">PRE_obbtMaxRounds</a>;       </div><div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#af507cbfa73588513df3746e104c76c01">  186</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_settings.html#af507cbfa73588513df3746e104c76c01">PRE_pureMultistart</a>;          </div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a6faf13db475d6e05fac1783a8f7ed805">  193</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5">babBase::enums::NS</a> <a class="code" href="structmaingo_1_1_settings.html#a6faf13db475d6e05fac1783a8f7ed805">BAB_nodeSelection</a>;     </div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#ae9318c3868a221c8cb642e8c9f413dc2">  194</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81">babBase::enums::BV</a> <a class="code" href="structmaingo_1_1_settings.html#ae9318c3868a221c8cb642e8c9f413dc2">BAB_branchVariable</a>;    </div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a8fd91a3766129137cae15447565e7923">  195</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_settings.html#a8fd91a3766129137cae15447565e7923">BAB_alwaysSolveObbt</a>;                 </div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a5e457d44f0301389da787556d4e9aebe">  196</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_settings.html#a5e457d44f0301389da787556d4e9aebe">BAB_dbbt</a>;                            </div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a11c405acd744c079b1cb57c71fe1b5dc">  197</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_settings.html#a11c405acd744c079b1cb57c71fe1b5dc">BAB_probing</a>;                         </div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a774378c7d329fb73be3cbb765f035cb6">  198</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_settings.html#a774378c7d329fb73be3cbb765f035cb6">BAB_constraintPropagation</a>;           </div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a3e066fd5fb513813ec370f23a1cf5332">  205</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4be">lbp::LBP_SOLVER</a> <a class="code" href="structmaingo_1_1_settings.html#a3e066fd5fb513813ec370f23a1cf5332">LBP_solver</a>;              </div><div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a33a203b4798d1c1ca0897fe897f86e5e">  206</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2">lbp::LINP</a> <a class="code" href="structmaingo_1_1_settings.html#a33a203b4798d1c1ca0897fe897f86e5e">LBP_linPoints</a>;                 </div><div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a4ea318d33514aecb909d04ac014dec5c">  207</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_settings.html#a4ea318d33514aecb909d04ac014dec5c">LBP_subgradientIntervals</a>;           </div><div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#ad537d2e602f8eccbbaa1b3c4d0f3a135">  208</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structmaingo_1_1_settings.html#ad537d2e602f8eccbbaa1b3c4d0f3a135">LBP_obbtMinImprovement</a>;           </div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a1ef0c321a726544d68a6f82ebe0f3ce1">  209</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="structmaingo_1_1_settings.html#a1ef0c321a726544d68a6f82ebe0f3ce1">LBP_activateMoreScaling</a>;        </div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a8d340ab819d3da6d5378765c1699dad2">  210</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_settings.html#a8d340ab819d3da6d5378765c1699dad2">LBP_addAuxiliaryVars</a>;               </div><div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#ac91eb2c4778d67abdc5b797c3a8d1b3f">  211</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="structmaingo_1_1_settings.html#ac91eb2c4778d67abdc5b797c3a8d1b3f">LBP_minFactorsForAux</a>;           </div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#acccf69351b29a42f528c9e892cb4d8c5">  212</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="structmaingo_1_1_settings.html#acccf69351b29a42f528c9e892cb4d8c5">LBP_maxNumberOfAddedFactors</a>;    </div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#ae7029d17219326a8cbf366f214bb4706">  219</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_settings.html#ae7029d17219326a8cbf366f214bb4706">MC_mvcompUse</a>;      </div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#aec5925d3412be881fb7fac711718e7e4">  220</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structmaingo_1_1_settings.html#aec5925d3412be881fb7fac711718e7e4">MC_mvcompTol</a>;    </div><div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a6a33331a9a865594b6698fb770687f8f">  221</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structmaingo_1_1_settings.html#a6a33331a9a865594b6698fb770687f8f">MC_envelTol</a>;     </div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a50403ef83f8de6e5a774825a56715012">  228</a></span>&#160;    <a class="code" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9d">ubp::UBP_SOLVER</a> <a class="code" href="structmaingo_1_1_settings.html#a50403ef83f8de6e5a774825a56715012">UBP_solverPreprocessing</a>;    </div><div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#aa85263531e27b4569555b7b78aa15440">  229</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="structmaingo_1_1_settings.html#aa85263531e27b4569555b7b78aa15440">UBP_maxStepsPreprocessing</a>;         </div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a8a932699c21f3dfc85317ce9cdc8943f">  230</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structmaingo_1_1_settings.html#a8a932699c21f3dfc85317ce9cdc8943f">UBP_maxTimePreprocessing</a>;            </div><div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#acef4fa75216bfea7bd19dbb9d226320f">  231</a></span>&#160;    <a class="code" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9d">ubp::UBP_SOLVER</a> <a class="code" href="structmaingo_1_1_settings.html#acef4fa75216bfea7bd19dbb9d226320f">UBP_solverBab</a>;              </div><div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a930df85d476b40ebf1dd43b024e1b001">  232</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="structmaingo_1_1_settings.html#a930df85d476b40ebf1dd43b024e1b001">UBP_maxStepsBab</a>;                   </div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a3e8739c5895cf3ae9122d22531161e46">  233</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structmaingo_1_1_settings.html#a3e8739c5895cf3ae9122d22531161e46">UBP_maxTimeBab</a>;                      </div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a95ee7f86cbeb604a7640cc01530b278a">  234</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_settings.html#a95ee7f86cbeb604a7640cc01530b278a">UBP_ignoreNodeBounds</a>;                  </div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#ae41b9a39dbcf2adf4891a414333145bd">  241</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="structmaingo_1_1_settings.html#ae41b9a39dbcf2adf4891a414333145bd">EC_nPoints</a>;    </div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a635996885baa7cb82d4f5cf91c2921bc">  248</a></span>&#160;    <a class="code" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a> <a class="code" href="structmaingo_1_1_settings.html#a635996885baa7cb82d4f5cf91c2921bc">BAB_verbosity</a>;                       </div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a3bca851ad2486ec398bf0cff511fb805">  249</a></span>&#160;    <a class="code" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a> <a class="code" href="structmaingo_1_1_settings.html#a3bca851ad2486ec398bf0cff511fb805">LBP_verbosity</a>;                       </div><div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#af98e35447c8568c1613daf7447a30307">  250</a></span>&#160;    <a class="code" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a> <a class="code" href="structmaingo_1_1_settings.html#af98e35447c8568c1613daf7447a30307">UBP_verbosity</a>;                       </div><div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a151445349406eb6567b9ef0930b94a57">  251</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="structmaingo_1_1_settings.html#a151445349406eb6567b9ef0930b94a57">BAB_printFreq</a>;                   </div><div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#ae0e50e9403f37080cd79667947af8c1b">  252</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="structmaingo_1_1_settings.html#ae0e50e9403f37080cd79667947af8c1b">BAB_logFreq</a>;                     </div><div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a63963398865197f332049e6a247bcb35">  253</a></span>&#160;    <a class="code" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0">OUTSTREAM_VERB</a> <a class="code" href="structmaingo_1_1_settings.html#a63963398865197f332049e6a247bcb35">outstreamVerbosity</a>;        </div><div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#acec36c3b03a651632336594c40d5026a">  254</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_settings.html#acec36c3b03a651632336594c40d5026a">writeLog</a>;                            </div><div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#aa0a8bf977559001dd0a4cda0d7908ebb">  255</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="structmaingo_1_1_settings.html#aa0a8bf977559001dd0a4cda0d7908ebb">writeToLogSec</a>;                   </div><div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a6d6da9a089684ecd8eb3dc560e14c0ca">  256</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_settings.html#a6d6da9a089684ecd8eb3dc560e14c0ca">writeResFile</a>;                        </div><div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a6fb19c2296412e1143f77fd7b949e7e3">  257</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_settings.html#a6fb19c2296412e1143f77fd7b949e7e3">writeCsv</a>;                            </div><div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a891666257be2a508061697ea80a01ada">  258</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_settings.html#a891666257be2a508061697ea80a01ada">writeJson</a>;                           </div><div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#aed67a51e2390de794d1e7e98a1a90206">  259</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_settings.html#aed67a51e2390de794d1e7e98a1a90206">PRE_printEveryLocalSearch</a>;           </div><div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a440a841800111853d7366c1626242de6">  260</a></span>&#160;    <a class="code" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299a">PARSING_LANGUAGE</a> <a class="code" href="structmaingo_1_1_settings.html#a440a841800111853d7366c1626242de6">writeToOtherLanguage</a>;    </div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;};</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="structmaingo_1_1_settings_html_a151445349406eb6567b9ef0930b94a57"><div class="ttname"><a href="structmaingo_1_1_settings.html#a151445349406eb6567b9ef0930b94a57">maingo::Settings::BAB_printFreq</a></div><div class="ttdeci">unsigned BAB_printFreq</div><div class="ttdoc">After how many iterations to print progress on screen (additionally, a line is printed when a new inc...</div><div class="ttdef"><b>Definition:</b> settings.h:251</div></div>
-<div class="ttc" id="namespacemaingo_1_1ubp_html_acc8477a9a8bca6eb434b2bd647f62f9da24b4fd10f12919d2825cb493c71d3cf8"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da24b4fd10f12919d2825cb493c71d3cf8">maingo::ubp::SOLVER_SLSQP</a></div><div class="ttdef"><b>Definition:</b> settings.h:125</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_a6a33331a9a865594b6698fb770687f8f"><div class="ttname"><a href="structmaingo_1_1_settings.html#a6a33331a9a865594b6698fb770687f8f">maingo::Settings::MC_envelTol</a></div><div class="ttdeci">double MC_envelTol</div><div class="ttdoc">(see MC++ documentation for details)</div><div class="ttdef"><b>Definition:</b> settings.h:221</div></div>
+<a href="settings_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_utils_8h.html">babUtils.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">   28</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a> {</div><div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991bea564fb96cc42aa72474169a9d7e3fd844">   29</a></span>&#160;    <a class="code" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991bea564fb96cc42aa72474169a9d7e3fd844">VERB_NONE</a> = 0,    </div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991bea46b5de1abddbaba6cf2a9b54852c0a6c">   30</a></span>&#160;    <a class="code" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991bea46b5de1abddbaba6cf2a9b54852c0a6c">VERB_NORMAL</a>,      </div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991bea492f57f7be5a28760409792b99e09bd8">   31</a></span>&#160;    <a class="code" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991bea492f57f7be5a28760409792b99e09bd8">VERB_ALL</a>          </div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;};</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4">   38</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4">LOGGING_DESTINATION</a> {</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4a5ba5670261ac104d957be08824b10fda">   39</a></span>&#160;    <a class="code" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4a5ba5670261ac104d957be08824b10fda">LOGGING_NONE</a> = 0,          </div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4afb969130cbbe60ea7ede72325e349fbe">   40</a></span>&#160;    <a class="code" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4afb969130cbbe60ea7ede72325e349fbe">LOGGING_OUTSTREAM</a>,         </div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4a335b5d0a5d8ddae15c4f4dc56ff437c1">   41</a></span>&#160;    <a class="code" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4a335b5d0a5d8ddae15c4f4dc56ff437c1">LOGGING_FILE</a>,              </div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4aaeb2ef5d2157419a5fe03924e9fbb714">   42</a></span>&#160;    <a class="code" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4aaeb2ef5d2157419a5fe03924e9fbb714">LOGGING_FILE_AND_STREAM</a>    </div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;};</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39a">   49</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39a">WRITING_LANGUAGE</a> {</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39aacd2ad11121ce71554943363ac99cd0c8">   50</a></span>&#160;    <a class="code" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39aacd2ad11121ce71554943363ac99cd0c8">LANG_NONE</a> = 0,    </div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39aa1b0686f8505e989428b2edbc77249953">   51</a></span>&#160;    <a class="code" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39aa1b0686f8505e989428b2edbc77249953">LANG_ALE</a>,         </div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39aa8baf6445b690d1592e58cf697ced3bfe">   52</a></span>&#160;    <a class="code" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39aa8baf6445b690d1592e58cf697ced3bfe">LANG_GAMS</a>         </div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;};</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="keyword">namespace </span>lbp {</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4be">   67</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4be">LBP_SOLVER</a> {</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea32fa8aaeff8ed8f41d95ce72acc04ce1">   68</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea32fa8aaeff8ed8f41d95ce72acc04ce1">LBP_SOLVER_MAiNGO</a> = 0,    </div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4beafc7bfbfe657af2fff8e3800860388f89">   69</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4beafc7bfbfe657af2fff8e3800860388f89">LBP_SOLVER_INTERVAL</a>,      </div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea016b6bae02feefafd679a8d57149aff5">   70</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea016b6bae02feefafd679a8d57149aff5">LBP_SOLVER_CPLEX</a>,         </div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea9c0bfb2a028e4a3ab6011619009d62d9">   71</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea9c0bfb2a028e4a3ab6011619009d62d9">LBP_SOLVER_CLP</a>            </div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;};</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2">   78</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2">LINP</a> {</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a5c70e54dadb090b3234669343d814e3a">   79</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a5c70e54dadb090b3234669343d814e3a">LINP_MID</a> = 0,          </div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a6f6fc41c94ae0797af701d329a74a277">   80</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a6f6fc41c94ae0797af701d329a74a277">LINP_INCUMBENT</a>,        </div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a2646c5b7bcb159ca8436c7a813e8b783">   81</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a2646c5b7bcb159ca8436c7a813e8b783">LINP_KELLEY</a>,           </div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2af60eacc8183e3e5080cb19d89f15c598">   82</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2af60eacc8183e3e5080cb19d89f15c598">LINP_SIMPLEX</a>,          </div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a6e05ea1a421a5bfe21ff3044b03a0b18">   83</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a6e05ea1a421a5bfe21ff3044b03a0b18">LINP_RANDOM</a>,           </div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a5b84f41c3cd21549f844b70dab1f8e49">   84</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a5b84f41c3cd21549f844b70dab1f8e49">LINP_KELLEY_SIMPLEX</a>    </div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;};</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;}    <span class="comment">// end namespace lbp</span></div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;<span class="keyword">namespace </span>ubp {</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9d">  102</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9d">UBP_SOLVER</a> {</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da15b7028091e5f95408a2a26e643cb972">  103</a></span>&#160;    <a class="code" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da15b7028091e5f95408a2a26e643cb972">UBP_SOLVER_EVAL</a> = 0,      </div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9daaff3b4a7dfedf2a8f66396d01c4e1645">  104</a></span>&#160;    <a class="code" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9daaff3b4a7dfedf2a8f66396d01c4e1645">UBP_SOLVER_COBYLA</a>,        </div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da16910a5ab42fd9bcd71489c0f07d7791">  105</a></span>&#160;    <a class="code" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da16910a5ab42fd9bcd71489c0f07d7791">UBP_SOLVER_BOBYQA</a>,        </div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac4da4292c1a20fb6a199fc7b540bc2d3">  106</a></span>&#160;    <a class="code" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac4da4292c1a20fb6a199fc7b540bc2d3">UBP_SOLVER_LBFGS</a>,         </div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da5e8733223dd08864a8d5effbb341992a">  107</a></span>&#160;    <a class="code" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da5e8733223dd08864a8d5effbb341992a">UBP_SOLVER_SLSQP</a>,         </div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da3d2c4a7fd42fd747fe825ec8f0b1a1ad">  108</a></span>&#160;    <a class="code" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da3d2c4a7fd42fd747fe825ec8f0b1a1ad">UBP_SOLVER_IPOPT</a>,         </div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da019153052e3b77622e3f2a7f0ce339e8">  109</a></span>&#160;    <a class="code" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da019153052e3b77622e3f2a7f0ce339e8">UBP_SOLVER_KNITRO</a>,        </div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da9537df8ae6b66b2b07f2a31d7258c98f">  110</a></span>&#160;    <a class="code" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da9537df8ae6b66b2b07f2a31d7258c98f">UBP_SOLVER_CPLEX</a> = 42,    </div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dab4e7e171165eb64a246e2e7b7e2ea352">  111</a></span>&#160;    <a class="code" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dab4e7e171165eb64a246e2e7b7e2ea352">UBP_SOLVER_CLP</a>            </div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;};</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;}    <span class="comment">// end namespace ubp</span></div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html">  125</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmaingo_1_1_settings.html">Settings</a> {</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a7b899b964718fb9e7a95459026faf6aa">  131</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structmaingo_1_1_settings.html#a7b899b964718fb9e7a95459026faf6aa">epsilonA</a>   = 1.0e-2;    </div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a013779523888ede06a29eb507b22d139">  132</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structmaingo_1_1_settings.html#a013779523888ede06a29eb507b22d139">epsilonR</a>   = 1.0e-2;    </div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#af995a33f43f5609d3e941cbdf72a94de">  133</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structmaingo_1_1_settings.html#af995a33f43f5609d3e941cbdf72a94de">deltaIneq</a>  = 1.0e-6;    </div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a4152b7df19df2bfd3b4e43d13aea1841">  134</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structmaingo_1_1_settings.html#a4152b7df19df2bfd3b4e43d13aea1841">deltaEq</a>    = 1.0e-6;    </div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a11905b6d9a1d4bcbe320d7fd6f3e4a71">  135</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structmaingo_1_1_settings.html#a11905b6d9a1d4bcbe320d7fd6f3e4a71">relNodeTol</a> = 1.0e-9;    </div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#acbc8b6cea8fdfd9db25f805b25d9bd43">  142</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="structmaingo_1_1_settings.html#acbc8b6cea8fdfd9db25f805b25d9bd43">BAB_maxNodes</a>         = std::numeric_limits&lt;unsigned&gt;::max();    </div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a93335d6322c7df74c4ffd387941379be">  143</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="structmaingo_1_1_settings.html#a93335d6322c7df74c4ffd387941379be">BAB_maxIterations</a>    = std::numeric_limits&lt;unsigned&gt;::max();    </div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a97970d98cd9d1d8972cc048d339b53dc">  144</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="structmaingo_1_1_settings.html#a97970d98cd9d1d8972cc048d339b53dc">maxTime</a>              = 86400 <span class="comment">/*=24h*/</span>;                          </div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a2442c5741a3601880b2903b69d32bbb9">  145</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_settings.html#a2442c5741a3601880b2903b69d32bbb9">confirmTermination</a>       = <span class="keyword">false</span>;                                   </div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#ad7cad6ff794ba09b57b3c22733b44f58">  146</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_settings.html#ad7cad6ff794ba09b57b3c22733b44f58">terminateOnFeasiblePoint</a> = <span class="keyword">false</span>;                                   </div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#aec0786e196d9432a636fc741e0fbeec3">  147</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structmaingo_1_1_settings.html#aec0786e196d9432a636fc741e0fbeec3">targetLowerBound</a>       = std::numeric_limits&lt;double&gt;::max();      </div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a46aef5290b25ae54af6dba81d896fcbc">  148</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structmaingo_1_1_settings.html#a46aef5290b25ae54af6dba81d896fcbc">targetUpperBound</a>       = -std::numeric_limits&lt;double&gt;::max();     </div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a998dbf62d78386f5c7161b82ed37acbe">  149</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structmaingo_1_1_settings.html#a998dbf62d78386f5c7161b82ed37acbe">infinity</a>               = std::numeric_limits&lt;double&gt;::max();      </div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a635996885baa7cb82d4f5cf91c2921bc">  156</a></span>&#160;    <a class="code" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a> <a class="code" href="structmaingo_1_1_settings.html#a635996885baa7cb82d4f5cf91c2921bc">BAB_verbosity</a>                     = <a class="code" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991bea46b5de1abddbaba6cf2a9b54852c0a6c">VERB_NORMAL</a>;                </div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a3bca851ad2486ec398bf0cff511fb805">  157</a></span>&#160;    <a class="code" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a> <a class="code" href="structmaingo_1_1_settings.html#a3bca851ad2486ec398bf0cff511fb805">LBP_verbosity</a>                     = <a class="code" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991bea46b5de1abddbaba6cf2a9b54852c0a6c">VERB_NORMAL</a>;                </div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#af98e35447c8568c1613daf7447a30307">  158</a></span>&#160;    <a class="code" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a> <a class="code" href="structmaingo_1_1_settings.html#af98e35447c8568c1613daf7447a30307">UBP_verbosity</a>                     = <a class="code" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991bea46b5de1abddbaba6cf2a9b54852c0a6c">VERB_NORMAL</a>;                </div><div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a151445349406eb6567b9ef0930b94a57">  159</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="structmaingo_1_1_settings.html#a151445349406eb6567b9ef0930b94a57">BAB_printFreq</a>                 = 100;                        </div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#ae0e50e9403f37080cd79667947af8c1b">  160</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="structmaingo_1_1_settings.html#ae0e50e9403f37080cd79667947af8c1b">BAB_logFreq</a>                   = 100;                        </div><div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#ad665aeee888f2746d7892ffc66bd5340">  161</a></span>&#160;    <a class="code" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4">LOGGING_DESTINATION</a> <a class="code" href="structmaingo_1_1_settings.html#ad665aeee888f2746d7892ffc66bd5340">loggingDestination</a> = <a class="code" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4aaeb2ef5d2157419a5fe03924e9fbb714">LOGGING_FILE_AND_STREAM</a>;    </div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#aa0a8bf977559001dd0a4cda0d7908ebb">  162</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="structmaingo_1_1_settings.html#aa0a8bf977559001dd0a4cda0d7908ebb">writeToLogSec</a>                 = 1800;                       </div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a56d7d3b6246ae45af98b44102edbb28b">  163</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_settings.html#a56d7d3b6246ae45af98b44102edbb28b">writeResultFile</a>                   = <span class="keyword">true</span>;                       </div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a6fb19c2296412e1143f77fd7b949e7e3">  164</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_settings.html#a6fb19c2296412e1143f77fd7b949e7e3">writeCsv</a>                          = <span class="keyword">false</span>;                      </div><div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a891666257be2a508061697ea80a01ada">  165</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_settings.html#a891666257be2a508061697ea80a01ada">writeJson</a>                         = <span class="keyword">false</span>;                      </div><div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#aed67a51e2390de794d1e7e98a1a90206">  166</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_settings.html#aed67a51e2390de794d1e7e98a1a90206">PRE_printEveryLocalSearch</a>         = <span class="keyword">false</span>;                      </div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a5d637f32b3496797a5a327fba9b2589a">  167</a></span>&#160;    <a class="code" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39a">WRITING_LANGUAGE</a> <a class="code" href="structmaingo_1_1_settings.html#a5d637f32b3496797a5a327fba9b2589a">modelWritingLanguage</a>  = <a class="code" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39aacd2ad11121ce71554943363ac99cd0c8">LANG_NONE</a>;                  </div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a3003863167eab673fbeae391bfeb802b">  174</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="structmaingo_1_1_settings.html#a3003863167eab673fbeae391bfeb802b">PRE_maxLocalSearches</a> = 3;        </div><div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a34c3073ced91a6837df66cfddd3a74ee">  175</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="structmaingo_1_1_settings.html#a34c3073ced91a6837df66cfddd3a74ee">PRE_obbtMaxRounds</a>    = 10;       </div><div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#af507cbfa73588513df3746e104c76c01">  176</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_settings.html#af507cbfa73588513df3746e104c76c01">PRE_pureMultistart</a>       = <span class="keyword">false</span>;    </div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a6faf13db475d6e05fac1783a8f7ed805">  183</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5">babBase::enums::NS</a> <a class="code" href="structmaingo_1_1_settings.html#a6faf13db475d6e05fac1783a8f7ed805">BAB_nodeSelection</a>  = <a class="code" href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5a27cb24b7ae25692a53e21298b16223b5">babBase::enums::NS_BESTBOUND</a>;    </div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#ae9318c3868a221c8cb642e8c9f413dc2">  184</a></span>&#160;    <a class="code" href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81">babBase::enums::BV</a> <a class="code" href="structmaingo_1_1_settings.html#ae9318c3868a221c8cb642e8c9f413dc2">BAB_branchVariable</a> = <a class="code" href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81aca8ab66cf77eb113aa470aa08459b5e3">babBase::enums::BV_RELDIAM</a>;      </div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a8fd91a3766129137cae15447565e7923">  191</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_settings.html#a8fd91a3766129137cae15447565e7923">BAB_alwaysSolveObbt</a>       = <span class="keyword">true</span>;     </div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a5e457d44f0301389da787556d4e9aebe">  192</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_settings.html#a5e457d44f0301389da787556d4e9aebe">BAB_dbbt</a>                  = <span class="keyword">true</span>;     </div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a11c405acd744c079b1cb57c71fe1b5dc">  193</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_settings.html#a11c405acd744c079b1cb57c71fe1b5dc">BAB_probing</a>               = <span class="keyword">false</span>;    </div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a774378c7d329fb73be3cbb765f035cb6">  194</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_settings.html#a774378c7d329fb73be3cbb765f035cb6">BAB_constraintPropagation</a> = <span class="keyword">true</span>;     </div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;<span class="preprocessor">#ifdef HAVE_CPLEX</span></div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4be">lbp::LBP_SOLVER</a> <a class="code" href="structmaingo_1_1_settings.html#a3e066fd5fb513813ec370f23a1cf5332">LBP_solver</a> = <a class="code" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea016b6bae02feefafd679a8d57149aff5">lbp::LBP_SOLVER_CPLEX</a>;    </div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a3e066fd5fb513813ec370f23a1cf5332">  204</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4be">lbp::LBP_SOLVER</a> <a class="code" href="structmaingo_1_1_settings.html#a3e066fd5fb513813ec370f23a1cf5332">LBP_solver</a> = <a class="code" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea9c0bfb2a028e4a3ab6011619009d62d9">lbp::LBP_SOLVER_CLP</a>;    </div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a33a203b4798d1c1ca0897fe897f86e5e">  206</a></span>&#160;    <a class="code" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2">lbp::LINP</a> <a class="code" href="structmaingo_1_1_settings.html#a33a203b4798d1c1ca0897fe897f86e5e">LBP_linPoints</a>              = <a class="code" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a5c70e54dadb090b3234669343d814e3a">lbp::LINP_MID</a>;    </div><div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a4ea318d33514aecb909d04ac014dec5c">  207</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_settings.html#a4ea318d33514aecb909d04ac014dec5c">LBP_subgradientIntervals</a>        = <span class="keyword">true</span>;             </div><div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#ad537d2e602f8eccbbaa1b3c4d0f3a135">  208</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structmaingo_1_1_settings.html#ad537d2e602f8eccbbaa1b3c4d0f3a135">LBP_obbtMinImprovement</a>        = 0.01;             </div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a1ef0c321a726544d68a6f82ebe0f3ce1">  209</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="structmaingo_1_1_settings.html#a1ef0c321a726544d68a6f82ebe0f3ce1">LBP_activateMoreScaling</a>     = 10000;            </div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a8d340ab819d3da6d5378765c1699dad2">  210</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_settings.html#a8d340ab819d3da6d5378765c1699dad2">LBP_addAuxiliaryVars</a>            = <span class="keyword">false</span>;            </div><div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#ac91eb2c4778d67abdc5b797c3a8d1b3f">  211</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="structmaingo_1_1_settings.html#ac91eb2c4778d67abdc5b797c3a8d1b3f">LBP_minFactorsForAux</a>        = 2;                </div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#acccf69351b29a42f528c9e892cb4d8c5">  212</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="structmaingo_1_1_settings.html#acccf69351b29a42f528c9e892cb4d8c5">LBP_maxNumberOfAddedFactors</a> = 1;                </div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#ae7029d17219326a8cbf366f214bb4706">  219</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_settings.html#ae7029d17219326a8cbf366f214bb4706">MC_mvcompUse</a>   = <span class="keyword">true</span>;      </div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#aec5925d3412be881fb7fac711718e7e4">  220</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structmaingo_1_1_settings.html#aec5925d3412be881fb7fac711718e7e4">MC_mvcompTol</a> = 1.0e-9;    </div><div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a6a33331a9a865594b6698fb770687f8f">  221</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structmaingo_1_1_settings.html#a6a33331a9a865594b6698fb770687f8f">MC_envelTol</a>  = 1.0e-9;    </div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a50403ef83f8de6e5a774825a56715012">  228</a></span>&#160;    <a class="code" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9d">ubp::UBP_SOLVER</a> <a class="code" href="structmaingo_1_1_settings.html#a50403ef83f8de6e5a774825a56715012">UBP_solverPreprocessing</a> = <a class="code" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da3d2c4a7fd42fd747fe825ec8f0b1a1ad">ubp::UBP_SOLVER_IPOPT</a>;    </div><div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#aa85263531e27b4569555b7b78aa15440">  229</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="structmaingo_1_1_settings.html#aa85263531e27b4569555b7b78aa15440">UBP_maxStepsPreprocessing</a>      = 3000;                     </div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a8a932699c21f3dfc85317ce9cdc8943f">  230</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structmaingo_1_1_settings.html#a8a932699c21f3dfc85317ce9cdc8943f">UBP_maxTimePreprocessing</a>         = 100.0;                    </div><div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#acef4fa75216bfea7bd19dbb9d226320f">  231</a></span>&#160;    <a class="code" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9d">ubp::UBP_SOLVER</a> <a class="code" href="structmaingo_1_1_settings.html#acef4fa75216bfea7bd19dbb9d226320f">UBP_solverBab</a>           = <a class="code" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da5e8733223dd08864a8d5effbb341992a">ubp::UBP_SOLVER_SLSQP</a>;    </div><div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a930df85d476b40ebf1dd43b024e1b001">  232</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="structmaingo_1_1_settings.html#a930df85d476b40ebf1dd43b024e1b001">UBP_maxStepsBab</a>                = 3;                        </div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a3e8739c5895cf3ae9122d22531161e46">  233</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structmaingo_1_1_settings.html#a3e8739c5895cf3ae9122d22531161e46">UBP_maxTimeBab</a>                   = 10.0;                     </div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#a95ee7f86cbeb604a7640cc01530b278a">  234</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1_settings.html#a95ee7f86cbeb604a7640cc01530b278a">UBP_ignoreNodeBounds</a>               = <span class="keyword">false</span>;                    </div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="structmaingo_1_1_settings.html#ae41b9a39dbcf2adf4891a414333145bd">  241</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="structmaingo_1_1_settings.html#ae41b9a39dbcf2adf4891a414333145bd">EC_nPoints</a> = 10;    </div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;};</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="namespacemaingo_html_aed64ab21c095ed6882ea61128addd7a4"><div class="ttname"><a href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4">maingo::LOGGING_DESTINATION</a></div><div class="ttdeci">LOGGING_DESTINATION</div><div class="ttdoc">Enum for controlling where logging information of MAiNGO should be written. </div><div class="ttdef"><b>Definition:</b> settings.h:38</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_a151445349406eb6567b9ef0930b94a57"><div class="ttname"><a href="structmaingo_1_1_settings.html#a151445349406eb6567b9ef0930b94a57">maingo::Settings::BAB_printFreq</a></div><div class="ttdeci">unsigned BAB_printFreq</div><div class="ttdoc">After how many iterations to print progress on screen (additionally, a line is printed when a new inc...</div><div class="ttdef"><b>Definition:</b> settings.h:159</div></div>
+<div class="ttc" id="namespacemaingo_1_1ubp_html_acc8477a9a8bca6eb434b2bd647f62f9dab4e7e171165eb64a246e2e7b7e2ea352"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dab4e7e171165eb64a246e2e7b7e2ea352">maingo::ubp::UBP_SOLVER_CLP</a></div><div class="ttdoc">(=43): optimization using CLP. Called only for LPs. </div><div class="ttdef"><b>Definition:</b> settings.h:111</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_a6a33331a9a865594b6698fb770687f8f"><div class="ttname"><a href="structmaingo_1_1_settings.html#a6a33331a9a865594b6698fb770687f8f">maingo::Settings::MC_envelTol</a></div><div class="ttdeci">double MC_envelTol</div><div class="ttdoc">Tolerance for computing the envelopes of intrinsic functions (see MC++ documentation for details) ...</div><div class="ttdef"><b>Definition:</b> settings.h:221</div></div>
 <div class="ttc" id="structmaingo_1_1_settings_html_aa85263531e27b4569555b7b78aa15440"><div class="ttname"><a href="structmaingo_1_1_settings.html#aa85263531e27b4569555b7b78aa15440">maingo::Settings::UBP_maxStepsPreprocessing</a></div><div class="ttdeci">unsigned UBP_maxStepsPreprocessing</div><div class="ttdoc">Maximum number of steps the local solver is allowed to take in each local run during multistart in pr...</div><div class="ttdef"><b>Definition:</b> settings.h:229</div></div>
 <div class="ttc" id="structmaingo_1_1_settings_html_a95ee7f86cbeb604a7640cc01530b278a"><div class="ttname"><a href="structmaingo_1_1_settings.html#a95ee7f86cbeb604a7640cc01530b278a">maingo::Settings::UBP_ignoreNodeBounds</a></div><div class="ttdeci">bool UBP_ignoreNodeBounds</div><div class="ttdoc">Flag indicating whether the UBP solvers should ignore the box constraints of the current node during ...</div><div class="ttdef"><b>Definition:</b> settings.h:234</div></div>
-<div class="ttc" id="namespacemaingo_1_1lbp_html_ad19f1469072a948e0678836725b1d3e8a739b073ddf68d60146dfb7b8f3b24c0c"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8a739b073ddf68d60146dfb7b8f3b24c0c">maingo::lbp::OBBT_FEAS</a></div><div class="ttdef"><b>Definition:</b> settings.h:90</div></div>
-<div class="ttc" id="namespacemaingo_1_1lbp_html_addd00d5f7ff74c4721070d8dd76f93a2af60eacc8183e3e5080cb19d89f15c598"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2af60eacc8183e3e5080cb19d89f15c598">maingo::lbp::LINP_SIMPLEX</a></div><div class="ttdef"><b>Definition:</b> settings.h:102</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_a5e9afadd1d866d01c96a114686b32672"><div class="ttname"><a href="structmaingo_1_1_settings.html#a5e9afadd1d866d01c96a114686b32672">maingo::Settings::operator=</a></div><div class="ttdeci">Settings &amp; operator=(const Settings &amp;)=default</div><div class="ttdoc">Default copy assignment.</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_a3bca851ad2486ec398bf0cff511fb805"><div class="ttname"><a href="structmaingo_1_1_settings.html#a3bca851ad2486ec398bf0cff511fb805">maingo::Settings::LBP_verbosity</a></div><div class="ttdeci">VERB LBP_verbosity</div><div class="ttdoc">How much output to print from Lower Bounding Solver. Possible values are VERB_NONE (=0),...</div><div class="ttdef"><b>Definition:</b> settings.h:249</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_a46aef5290b25ae54af6dba81d896fcbc"><div class="ttname"><a href="structmaingo_1_1_settings.html#a46aef5290b25ae54af6dba81d896fcbc">maingo::Settings::targetUpperBound</a></div><div class="ttdeci">double targetUpperBound</div><div class="ttdoc">Target value for the upper bound on the optimal objective. MAiNGO terminates once UBD&lt;=targetUpperBou...</div><div class="ttdef"><b>Definition:</b> settings.h:176</div></div>
-<div class="ttc" id="namespacebab_base_1_1enums_html_a02e97c49bffe195071c83aa097a8dde5"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5">babBase::enums::NS</a></div><div class="ttdeci">NS</div><div class="ttdoc">Enum for selecting the Node Selection heuristic.</div><div class="ttdef"><b>Definition:</b> babUtils.h:143</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_acec36c3b03a651632336594c40d5026a"><div class="ttname"><a href="structmaingo_1_1_settings.html#acec36c3b03a651632336594c40d5026a">maingo::Settings::writeLog</a></div><div class="ttdeci">bool writeLog</div><div class="ttdoc">Whether to write a log file (named bab.log)</div><div class="ttdef"><b>Definition:</b> settings.h:254</div></div>
-<div class="ttc" id="namespacemaingo_1_1lbp_html_addd00d5f7ff74c4721070d8dd76f93a2a6e05ea1a421a5bfe21ff3044b03a0b18"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a6e05ea1a421a5bfe21ff3044b03a0b18">maingo::lbp::LINP_RANDOM</a></div><div class="ttdef"><b>Definition:</b> settings.h:103</div></div>
-<div class="ttc" id="namespacemaingo_1_1lbp_html_ad19f1469072a948e0678836725b1d3e8"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8">maingo::lbp::OBBT</a></div><div class="ttdeci">OBBT</div><div class="ttdoc">Enum for communicating whether Optimization-Based Bound Tightening should consider only feasibility o...</div><div class="ttdef"><b>Definition:</b> settings.h:89</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_a2442c5741a3601880b2903b69d32bbb9"><div class="ttname"><a href="structmaingo_1_1_settings.html#a2442c5741a3601880b2903b69d32bbb9">maingo::Settings::confirmTermination</a></div><div class="ttdeci">bool confirmTermination</div><div class="ttdoc">Whether to ask the user before terminating when reaching time, node, or iteration limits.</div><div class="ttdef"><b>Definition:</b> settings.h:173</div></div>
-<div class="ttc" id="namespacemaingo_1_1lbp_html_addd00d5f7ff74c4721070d8dd76f93a2"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2">maingo::lbp::LINP</a></div><div class="ttdeci">LINP</div><div class="ttdoc">Enum for selecting the Linearization Points to be used in constructing affine relaxations.</div><div class="ttdef"><b>Definition:</b> settings.h:98</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_a774378c7d329fb73be3cbb765f035cb6"><div class="ttname"><a href="structmaingo_1_1_settings.html#a774378c7d329fb73be3cbb765f035cb6">maingo::Settings::BAB_constraintPropagation</a></div><div class="ttdeci">bool BAB_constraintPropagation</div><div class="ttdoc">Whether to do constraint propagation. If false, no constraint propagation is executed.</div><div class="ttdef"><b>Definition:</b> settings.h:198</div></div>
+<div class="ttc" id="namespacemaingo_1_1lbp_html_addd00d5f7ff74c4721070d8dd76f93a2af60eacc8183e3e5080cb19d89f15c598"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2af60eacc8183e3e5080cb19d89f15c598">maingo::lbp::LINP_SIMPLEX</a></div><div class="ttdoc">(=3) : Linearize at mid point + (n+1)/2 points given as vertices of the (n+1) simplex where n is the ...</div><div class="ttdef"><b>Definition:</b> settings.h:82</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_a3bca851ad2486ec398bf0cff511fb805"><div class="ttname"><a href="structmaingo_1_1_settings.html#a3bca851ad2486ec398bf0cff511fb805">maingo::Settings::LBP_verbosity</a></div><div class="ttdeci">VERB LBP_verbosity</div><div class="ttdoc">How much output to print from Lower Bounding Solver. See documentation of maingo::VERB for possible v...</div><div class="ttdef"><b>Definition:</b> settings.h:157</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_a46aef5290b25ae54af6dba81d896fcbc"><div class="ttname"><a href="structmaingo_1_1_settings.html#a46aef5290b25ae54af6dba81d896fcbc">maingo::Settings::targetUpperBound</a></div><div class="ttdeci">double targetUpperBound</div><div class="ttdoc">Target value for the upper bound on the optimal objective. MAiNGO terminates once UBD&lt;=targetUpperBou...</div><div class="ttdef"><b>Definition:</b> settings.h:148</div></div>
+<div class="ttc" id="namespacebab_base_1_1enums_html_a02e97c49bffe195071c83aa097a8dde5"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5">babBase::enums::NS</a></div><div class="ttdeci">NS</div><div class="ttdoc">Enum for selecting the Node Selection heuristic. </div><div class="ttdef"><b>Definition:</b> babUtils.h:143</div></div>
+<div class="ttc" id="namespacemaingo_1_1lbp_html_addd00d5f7ff74c4721070d8dd76f93a2a6e05ea1a421a5bfe21ff3044b03a0b18"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a6e05ea1a421a5bfe21ff3044b03a0b18">maingo::lbp::LINP_RANDOM</a></div><div class="ttdoc">(=4) : Linearize at mid point + (n+1)/2 random points </div><div class="ttdef"><b>Definition:</b> settings.h:83</div></div>
+<div class="ttc" id="namespacemaingo_html_a76021544553e05d3b4de6cbcf58db39aacd2ad11121ce71554943363ac99cd0c8"><div class="ttname"><a href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39aacd2ad11121ce71554943363ac99cd0c8">maingo::LANG_NONE</a></div><div class="ttdoc">(=0): Do not write the current model to a file </div><div class="ttdef"><b>Definition:</b> settings.h:50</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_a2442c5741a3601880b2903b69d32bbb9"><div class="ttname"><a href="structmaingo_1_1_settings.html#a2442c5741a3601880b2903b69d32bbb9">maingo::Settings::confirmTermination</a></div><div class="ttdeci">bool confirmTermination</div><div class="ttdoc">Whether to ask the user before terminating when reaching time, node, or iteration limits...</div><div class="ttdef"><b>Definition:</b> settings.h:145</div></div>
+<div class="ttc" id="namespacemaingo_1_1lbp_html_addd00d5f7ff74c4721070d8dd76f93a2"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2">maingo::lbp::LINP</a></div><div class="ttdeci">LINP</div><div class="ttdoc">Enum for selecting the Linearization Points to be used in constructing affine relaxations. </div><div class="ttdef"><b>Definition:</b> settings.h:78</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_a774378c7d329fb73be3cbb765f035cb6"><div class="ttname"><a href="structmaingo_1_1_settings.html#a774378c7d329fb73be3cbb765f035cb6">maingo::Settings::BAB_constraintPropagation</a></div><div class="ttdeci">bool BAB_constraintPropagation</div><div class="ttdoc">Whether to do constraint propagation. If false, no constraint propagation is executed. </div><div class="ttdef"><b>Definition:</b> settings.h:194</div></div>
 <div class="ttc" id="structmaingo_1_1_settings_html_a3e8739c5895cf3ae9122d22531161e46"><div class="ttname"><a href="structmaingo_1_1_settings.html#a3e8739c5895cf3ae9122d22531161e46">maingo::Settings::UBP_maxTimeBab</a></div><div class="ttdeci">double UBP_maxTimeBab</div><div class="ttdoc">Maximum CPU time the local solver is allowed to take at each BaB node. Usually, this should only be a...</div><div class="ttdef"><b>Definition:</b> settings.h:233</div></div>
-<div class="ttc" id="namespacemaingo_html_a3d9300c6853caaf91b0afc24d3dd1ae0a11b0a1dd952da50747424243c027c808"><div class="ttname"><a href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0a11b0a1dd952da50747424243c027c808">maingo::OUTSTREAM_NONE</a></div><div class="ttdef"><b>Definition:</b> settings.h:45</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_a8d340ab819d3da6d5378765c1699dad2"><div class="ttname"><a href="structmaingo_1_1_settings.html#a8d340ab819d3da6d5378765c1699dad2">maingo::Settings::LBP_addAuxiliaryVars</a></div><div class="ttdeci">bool LBP_addAuxiliaryVars</div><div class="ttdoc">Whether to add auxiliary variables for common factors in the lower bounding DAG/problem.</div><div class="ttdef"><b>Definition:</b> settings.h:210</div></div>
-<div class="ttc" id="namespacemaingo_html_a3d9300c6853caaf91b0afc24d3dd1ae0aeafd0b37169b3bd9330488dfff7713b7"><div class="ttname"><a href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0aeafd0b37169b3bd9330488dfff7713b7">maingo::OUTSTREAM_LOG</a></div><div class="ttdef"><b>Definition:</b> settings.h:47</div></div>
-<div class="ttc" id="namespacemaingo_1_1ubp_html_acc8477a9a8bca6eb434b2bd647f62f9dac5701f2847e960c47f46914beac6a128"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac5701f2847e960c47f46914beac6a128">maingo::ubp::SOLVER_COBYLA</a></div><div class="ttdef"><b>Definition:</b> settings.h:122</div></div>
-<div class="ttc" id="namespacemaingo_html_a7fda513a30bb172152b96406e370299aa6005851459ecd1476b128baad46d46e6"><div class="ttname"><a href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aa6005851459ecd1476b128baad46d46e6">maingo::AMPL</a></div><div class="ttdoc">AMPL.</div><div class="ttdef"><b>Definition:</b> settings.h:58</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_a8d340ab819d3da6d5378765c1699dad2"><div class="ttname"><a href="structmaingo_1_1_settings.html#a8d340ab819d3da6d5378765c1699dad2">maingo::Settings::LBP_addAuxiliaryVars</a></div><div class="ttdeci">bool LBP_addAuxiliaryVars</div><div class="ttdoc">Whether to add auxiliary variables for common factors in the lower bounding DAG/problem. </div><div class="ttdef"><b>Definition:</b> settings.h:210</div></div>
 <div class="ttc" id="structmaingo_1_1_settings_html_a4ea318d33514aecb909d04ac014dec5c"><div class="ttname"><a href="structmaingo_1_1_settings.html#a4ea318d33514aecb909d04ac014dec5c">maingo::Settings::LBP_subgradientIntervals</a></div><div class="ttdeci">bool LBP_subgradientIntervals</div><div class="ttdoc">Whether to use the heuristic to improve McCormick relaxations by tightening the range of each factor ...</div><div class="ttdef"><b>Definition:</b> settings.h:207</div></div>
-<div class="ttc" id="namespacemaingo_1_1lbp_html_a93b68678c7bf3f3767b5ac7adf55a4be"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4be">maingo::lbp::LBP_SOLVER</a></div><div class="ttdeci">LBP_SOLVER</div><div class="ttdoc">Enum for selecting the STRATegy so be used for solving the lower bounding problems.</div><div class="ttdef"><b>Definition:</b> settings.h:78</div></div>
-<div class="ttc" id="namespacemaingo_html_a3d9300c6853caaf91b0afc24d3dd1ae0a52f5f76af1455b5ee7ad085be3dbb0ed"><div class="ttname"><a href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0a52f5f76af1455b5ee7ad085be3dbb0ed">maingo::OUTSTREAM_OUTSTREAM</a></div><div class="ttdef"><b>Definition:</b> settings.h:46</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_ae0e50e9403f37080cd79667947af8c1b"><div class="ttname"><a href="structmaingo_1_1_settings.html#ae0e50e9403f37080cd79667947af8c1b">maingo::Settings::BAB_logFreq</a></div><div class="ttdeci">unsigned BAB_logFreq</div><div class="ttdoc">Like BAB_printFreq, but for log.</div><div class="ttdef"><b>Definition:</b> settings.h:252</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_a8fd91a3766129137cae15447565e7923"><div class="ttname"><a href="structmaingo_1_1_settings.html#a8fd91a3766129137cae15447565e7923">maingo::Settings::BAB_alwaysSolveObbt</a></div><div class="ttdeci">bool BAB_alwaysSolveObbt</div><div class="ttdoc">Whether to solve OBBT (feasibility- and, once a feasible point has been found, also optimality-based)...</div><div class="ttdef"><b>Definition:</b> settings.h:195</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html"><div class="ttname"><a href="structmaingo_1_1_settings.html">maingo::Settings</a></div><div class="ttdoc">Struct for storing settings for MAiNGO.</div><div class="ttdef"><b>Definition:</b> settings.h:143</div></div>
-<div class="ttc" id="namespacebab_base_1_1enums_html_a5563ee1434fe76d1f65565afe896cb81"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81">babBase::enums::BV</a></div><div class="ttdeci">BV</div><div class="ttdoc">Enum for selecting the Branching Variable selection heuristic.</div><div class="ttdef"><b>Definition:</b> babUtils.h:153</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_a440a841800111853d7366c1626242de6"><div class="ttname"><a href="structmaingo_1_1_settings.html#a440a841800111853d7366c1626242de6">maingo::Settings::writeToOtherLanguage</a></div><div class="ttdeci">PARSING_LANGUAGE writeToOtherLanguage</div><div class="ttdoc">Write to a file in a different modeling language.</div><div class="ttdef"><b>Definition:</b> settings.h:260</div></div>
-<div class="ttc" id="namespacemaingo_html_a7fda513a30bb172152b96406e370299aa8476f2061be97a547db8d42808fa4369"><div class="ttname"><a href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aa8476f2061be97a547db8d42808fa4369">maingo::ALE</a></div><div class="ttdoc">ALE.</div><div class="ttdef"><b>Definition:</b> settings.h:59</div></div>
-<div class="ttc" id="namespacemaingo_html_a3d9300c6853caaf91b0afc24d3dd1ae0"><div class="ttname"><a href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0">maingo::OUTSTREAM_VERB</a></div><div class="ttdeci">OUTSTREAM_VERB</div><div class="ttdoc">Enum for controlling the output and writing level of MAiNGO (i.e., where should the output be written...</div><div class="ttdef"><b>Definition:</b> settings.h:44</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_ad7cad6ff794ba09b57b3c22733b44f58"><div class="ttname"><a href="structmaingo_1_1_settings.html#ad7cad6ff794ba09b57b3c22733b44f58">maingo::Settings::terminateOnFeasiblePoint</a></div><div class="ttdeci">bool terminateOnFeasiblePoint</div><div class="ttdoc">Whether to terminate as soon as the first feasible point was found (no guarantee of global or local o...</div><div class="ttdef"><b>Definition:</b> settings.h:174</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_ab7169a6eefce79566dd07db3b1e5e967"><div class="ttname"><a href="structmaingo_1_1_settings.html#ab7169a6eefce79566dd07db3b1e5e967">maingo::Settings::Settings</a></div><div class="ttdeci">Settings()</div><div class="ttdoc">Constructor, sets default values (cf. settings.cpp).</div><div class="ttdef"><b>Definition:</b> settings.cpp:27</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_a63963398865197f332049e6a247bcb35"><div class="ttname"><a href="structmaingo_1_1_settings.html#a63963398865197f332049e6a247bcb35">maingo::Settings::outstreamVerbosity</a></div><div class="ttdeci">OUTSTREAM_VERB outstreamVerbosity</div><div class="ttdoc">Where to print or write the output. Possible values are OUTSTREAM_NONE (=0), OUTSTREAM_OUTSTREAM (=1)...</div><div class="ttdef"><b>Definition:</b> settings.h:253</div></div>
-<div class="ttc" id="namespacemaingo_1_1lbp_html_addd00d5f7ff74c4721070d8dd76f93a2a5c70e54dadb090b3234669343d814e3a"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a5c70e54dadb090b3234669343d814e3a">maingo::lbp::LINP_MID</a></div><div class="ttdef"><b>Definition:</b> settings.h:99</div></div>
-<div class="ttc" id="namespacemaingo_1_1ubp_html_acc8477a9a8bca6eb434b2bd647f62f9dac449153333e544edc3b78977ab02ea20"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac449153333e544edc3b78977ab02ea20">maingo::ubp::SOLVER_IPOPT</a></div><div class="ttdef"><b>Definition:</b> settings.h:126</div></div>
-<div class="ttc" id="namespacemaingo_html_a7fda513a30bb172152b96406e370299aacd2ad11121ce71554943363ac99cd0c8"><div class="ttname"><a href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aacd2ad11121ce71554943363ac99cd0c8">maingo::LANG_NONE</a></div><div class="ttdoc">A different parsing language is not set.</div><div class="ttdef"><b>Definition:</b> settings.h:57</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_a998dbf62d78386f5c7161b82ed37acbe"><div class="ttname"><a href="structmaingo_1_1_settings.html#a998dbf62d78386f5c7161b82ed37acbe">maingo::Settings::infinity</a></div><div class="ttdeci">double infinity</div><div class="ttdoc">User definition of infinity (used to initialize UBD and LBD) [currently cannot be set by the user via...</div><div class="ttdef"><b>Definition:</b> settings.h:177</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_aec0786e196d9432a636fc741e0fbeec3"><div class="ttname"><a href="structmaingo_1_1_settings.html#aec0786e196d9432a636fc741e0fbeec3">maingo::Settings::targetLowerBound</a></div><div class="ttdeci">double targetLowerBound</div><div class="ttdoc">Target value for the lower bound on the optimal objective. MAiNGO terminates once LBD&gt;=targetLowerBou...</div><div class="ttdef"><b>Definition:</b> settings.h:175</div></div>
+<div class="ttc" id="namespacemaingo_1_1lbp_html_a93b68678c7bf3f3767b5ac7adf55a4be"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4be">maingo::lbp::LBP_SOLVER</a></div><div class="ttdeci">LBP_SOLVER</div><div class="ttdoc">Enum for selecting the STRATegy so be used for solving the lower bounding problems. </div><div class="ttdef"><b>Definition:</b> settings.h:67</div></div>
+<div class="ttc" id="namespacemaingo_1_1ubp_html_acc8477a9a8bca6eb434b2bd647f62f9da16910a5ab42fd9bcd71489c0f07d7791"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da16910a5ab42fd9bcd71489c0f07d7791">maingo::ubp::UBP_SOLVER_BOBYQA</a></div><div class="ttdoc">(=2): local optimization using BOBYQA (derivative free unconstrained solver in NLopt, constructs quadratic approximations; constraints are moved to the objective via augmented Lagrangian method) </div><div class="ttdef"><b>Definition:</b> settings.h:105</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_ae0e50e9403f37080cd79667947af8c1b"><div class="ttname"><a href="structmaingo_1_1_settings.html#ae0e50e9403f37080cd79667947af8c1b">maingo::Settings::BAB_logFreq</a></div><div class="ttdeci">unsigned BAB_logFreq</div><div class="ttdoc">Like BAB_printFreq, but for log. </div><div class="ttdef"><b>Definition:</b> settings.h:160</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_a8fd91a3766129137cae15447565e7923"><div class="ttname"><a href="structmaingo_1_1_settings.html#a8fd91a3766129137cae15447565e7923">maingo::Settings::BAB_alwaysSolveObbt</a></div><div class="ttdeci">bool BAB_alwaysSolveObbt</div><div class="ttdoc">Whether to solve OBBT (feasibility- and, once a feasible point has been found, also optimality-based)...</div><div class="ttdef"><b>Definition:</b> settings.h:191</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html"><div class="ttname"><a href="structmaingo_1_1_settings.html">maingo::Settings</a></div><div class="ttdoc">Struct for storing settings for MAiNGO. </div><div class="ttdef"><b>Definition:</b> settings.h:125</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_a5d637f32b3496797a5a327fba9b2589a"><div class="ttname"><a href="structmaingo_1_1_settings.html#a5d637f32b3496797a5a327fba9b2589a">maingo::Settings::modelWritingLanguage</a></div><div class="ttdeci">WRITING_LANGUAGE modelWritingLanguage</div><div class="ttdoc">In what modeling language to write the current model to a file in. See documentation of maingo::WRITI...</div><div class="ttdef"><b>Definition:</b> settings.h:167</div></div>
+<div class="ttc" id="namespacebab_base_1_1enums_html_a5563ee1434fe76d1f65565afe896cb81"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81">babBase::enums::BV</a></div><div class="ttdeci">BV</div><div class="ttdoc">Enum for selecting the Branching Variable selection heuristic. </div><div class="ttdef"><b>Definition:</b> babUtils.h:153</div></div>
+<div class="ttc" id="namespacemaingo_html_aed64ab21c095ed6882ea61128addd7a4a5ba5670261ac104d957be08824b10fda"><div class="ttname"><a href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4a5ba5670261ac104d957be08824b10fda">maingo::LOGGING_NONE</a></div><div class="ttdoc">(=0): Do not print or write any logging information </div><div class="ttdef"><b>Definition:</b> settings.h:39</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_ad7cad6ff794ba09b57b3c22733b44f58"><div class="ttname"><a href="structmaingo_1_1_settings.html#ad7cad6ff794ba09b57b3c22733b44f58">maingo::Settings::terminateOnFeasiblePoint</a></div><div class="ttdeci">bool terminateOnFeasiblePoint</div><div class="ttdoc">Whether to terminate as soon as the first feasible point was found (no guarantee of global or local o...</div><div class="ttdef"><b>Definition:</b> settings.h:146</div></div>
+<div class="ttc" id="namespacemaingo_1_1lbp_html_a93b68678c7bf3f3767b5ac7adf55a4beafc7bfbfe657af2fff8e3800860388f89"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4beafc7bfbfe657af2fff8e3800860388f89">maingo::lbp::LBP_SOLVER_INTERVAL</a></div><div class="ttdoc">(=1): solution of lower bounding problems using only interval based relaxations </div><div class="ttdef"><b>Definition:</b> settings.h:69</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_a56d7d3b6246ae45af98b44102edbb28b"><div class="ttname"><a href="structmaingo_1_1_settings.html#a56d7d3b6246ae45af98b44102edbb28b">maingo::Settings::writeResultFile</a></div><div class="ttdeci">bool writeResultFile</div><div class="ttdoc">Whether to write an additional file containing non-standard information about the solved model...</div><div class="ttdef"><b>Definition:</b> settings.h:163</div></div>
+<div class="ttc" id="namespacemaingo_1_1ubp_html_acc8477a9a8bca6eb434b2bd647f62f9da019153052e3b77622e3f2a7f0ce339e8"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da019153052e3b77622e3f2a7f0ce339e8">maingo::ubp::UBP_SOLVER_KNITRO</a></div><div class="ttdoc">(=6): local optimization using Knitro (using the exact Hessian) </div><div class="ttdef"><b>Definition:</b> settings.h:109</div></div>
+<div class="ttc" id="namespacemaingo_1_1lbp_html_addd00d5f7ff74c4721070d8dd76f93a2a5c70e54dadb090b3234669343d814e3a"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a5c70e54dadb090b3234669343d814e3a">maingo::lbp::LINP_MID</a></div><div class="ttdoc">(=0) : Linearize only at the midpoint of the current node */ </div><div class="ttdef"><b>Definition:</b> settings.h:79</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_a998dbf62d78386f5c7161b82ed37acbe"><div class="ttname"><a href="structmaingo_1_1_settings.html#a998dbf62d78386f5c7161b82ed37acbe">maingo::Settings::infinity</a></div><div class="ttdeci">double infinity</div><div class="ttdoc">User definition of infinity (used to initialize UBD and LBD) [currently cannot be set by the user via...</div><div class="ttdef"><b>Definition:</b> settings.h:149</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_aec0786e196d9432a636fc741e0fbeec3"><div class="ttname"><a href="structmaingo_1_1_settings.html#aec0786e196d9432a636fc741e0fbeec3">maingo::Settings::targetLowerBound</a></div><div class="ttdeci">double targetLowerBound</div><div class="ttdoc">Target value for the lower bound on the optimal objective. MAiNGO terminates once LBD&gt;=targetLowerBou...</div><div class="ttdef"><b>Definition:</b> settings.h:147</div></div>
 <div class="ttc" id="structmaingo_1_1_settings_html_a8a932699c21f3dfc85317ce9cdc8943f"><div class="ttname"><a href="structmaingo_1_1_settings.html#a8a932699c21f3dfc85317ce9cdc8943f">maingo::Settings::UBP_maxTimePreprocessing</a></div><div class="ttdeci">double UBP_maxTimePreprocessing</div><div class="ttdoc">Maximum CPU time the local solver is allowed to take in each local run during multistart in pre-proce...</div><div class="ttdef"><b>Definition:</b> settings.h:230</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_a34c3073ced91a6837df66cfddd3a74ee"><div class="ttname"><a href="structmaingo_1_1_settings.html#a34c3073ced91a6837df66cfddd3a74ee">maingo::Settings::PRE_obbtMaxRounds</a></div><div class="ttdeci">unsigned PRE_obbtMaxRounds</div><div class="ttdoc">Maximum number of rounds of optimization-based range reduction (OBBT; cf., e.g., Gleixner et al....</div><div class="ttdef"><b>Definition:</b> settings.h:185</div></div>
-<div class="ttc" id="namespacemaingo_1_1lbp_html_addd00d5f7ff74c4721070d8dd76f93a2a2646c5b7bcb159ca8436c7a813e8b783"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a2646c5b7bcb159ca8436c7a813e8b783">maingo::lbp::LINP_KELLEY</a></div><div class="ttdef"><b>Definition:</b> settings.h:101</div></div>
-<div class="ttc" id="namespacemaingo_1_1lbp_html_a93b68678c7bf3f3767b5ac7adf55a4beab21ba68ca9d31ece2a6ac8006b39027e"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4beab21ba68ca9d31ece2a6ac8006b39027e">maingo::lbp::SOLVER_MAiNGO</a></div><div class="ttdef"><b>Definition:</b> settings.h:79</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_a93335d6322c7df74c4ffd387941379be"><div class="ttname"><a href="structmaingo_1_1_settings.html#a93335d6322c7df74c4ffd387941379be">maingo::Settings::BAB_maxIterations</a></div><div class="ttdeci">unsigned BAB_maxIterations</div><div class="ttdoc">Maximum number of iterations (i.e., maximum number of nodes visited in the Branch-and-Bound tree)</div><div class="ttdef"><b>Definition:</b> settings.h:171</div></div>
-<div class="ttc" id="namespacemaingo_html_a53603cf77a4aab12b16a3cce79b991bea46b5de1abddbaba6cf2a9b54852c0a6c"><div class="ttname"><a href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991bea46b5de1abddbaba6cf2a9b54852c0a6c">maingo::VERB_NORMAL</a></div><div class="ttdef"><b>Definition:</b> settings.h:35</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_ae9318c3868a221c8cb642e8c9f413dc2"><div class="ttname"><a href="structmaingo_1_1_settings.html#ae9318c3868a221c8cb642e8c9f413dc2">maingo::Settings::BAB_branchVariable</a></div><div class="ttdeci">babBase::enums::BV BAB_branchVariable</div><div class="ttdoc">Which dimension to branch in for the current node. See documentation of babBase::enums::BV for possib...</div><div class="ttdef"><b>Definition:</b> settings.h:194</div></div>
-<div class="ttc" id="namespacemaingo_html_a7fda513a30bb172152b96406e370299aa14773b3cb5be6b7a031e2648f1edb27a"><div class="ttname"><a href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aa14773b3cb5be6b7a031e2648f1edb27a">maingo::GAMS</a></div><div class="ttdoc">GAMS.</div><div class="ttdef"><b>Definition:</b> settings.h:61</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_acef4fa75216bfea7bd19dbb9d226320f"><div class="ttname"><a href="structmaingo_1_1_settings.html#acef4fa75216bfea7bd19dbb9d226320f">maingo::Settings::UBP_solverBab</a></div><div class="ttdeci">ubp::UBP_SOLVER UBP_solverBab</div><div class="ttdoc">Solver to be used during Branch-and-Bound. See documentation of ubp::UBP_SOLVER for possible values.</div><div class="ttdef"><b>Definition:</b> settings.h:231</div></div>
-<div class="ttc" id="namespacemaingo_1_1ubp_html_acc8477a9a8bca6eb434b2bd647f62f9da54ed347065f9c65c37a71a3cb4db7451"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da54ed347065f9c65c37a71a3cb4db7451">maingo::ubp::SOLVER_BOBYQA</a></div><div class="ttdef"><b>Definition:</b> settings.h:123</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_a11c405acd744c079b1cb57c71fe1b5dc"><div class="ttname"><a href="structmaingo_1_1_settings.html#a11c405acd744c079b1cb57c71fe1b5dc">maingo::Settings::BAB_probing</a></div><div class="ttdeci">bool BAB_probing</div><div class="ttdoc">Whether to do probing (cf. Ryoo&amp;Sahinidis, Comput. Chem. Eng. 19 (1995) 551) at every node (can only ...</div><div class="ttdef"><b>Definition:</b> settings.h:197</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_aec5925d3412be881fb7fac711718e7e4"><div class="ttname"><a href="structmaingo_1_1_settings.html#aec5925d3412be881fb7fac711718e7e4">maingo::Settings::MC_mvcompTol</a></div><div class="ttdeci">double MC_mvcompTol</div><div class="ttdoc">(see MC++ documentation for details)</div><div class="ttdef"><b>Definition:</b> settings.h:220</div></div>
-<div class="ttc" id="namespacemaingo_html_a7fda513a30bb172152b96406e370299aabb1dae9f397b7c971de9be182a505616"><div class="ttname"><a href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aabb1dae9f397b7c971de9be182a505616">maingo::NLP_LANG</a></div><div class="ttdoc">NLP.</div><div class="ttdef"><b>Definition:</b> settings.h:63</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_af98e35447c8568c1613daf7447a30307"><div class="ttname"><a href="structmaingo_1_1_settings.html#af98e35447c8568c1613daf7447a30307">maingo::Settings::UBP_verbosity</a></div><div class="ttdeci">VERB UBP_verbosity</div><div class="ttdoc">How much output to print from Upper Bounding Solver. Possible values are VERB_NONE (=0),...</div><div class="ttdef"><b>Definition:</b> settings.h:250</div></div>
-<div class="ttc" id="namespacemaingo_1_1ubp_html_acc8477a9a8bca6eb434b2bd647f62f9da64db5861bc8d36e7cb00978e72af8408"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da64db5861bc8d36e7cb00978e72af8408">maingo::ubp::SOLVER_CPLEX</a></div><div class="ttdef"><b>Definition:</b> settings.h:128</div></div>
-<div class="ttc" id="namespacemaingo_1_1lbp_html_addd00d5f7ff74c4721070d8dd76f93a2a5b84f41c3cd21549f844b70dab1f8e49"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a5b84f41c3cd21549f844b70dab1f8e49">maingo::lbp::LINP_KELLEY_SIMPLEX</a></div><div class="ttdef"><b>Definition:</b> settings.h:104</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_a930df85d476b40ebf1dd43b024e1b001"><div class="ttname"><a href="structmaingo_1_1_settings.html#a930df85d476b40ebf1dd43b024e1b001">maingo::Settings::UBP_maxStepsBab</a></div><div class="ttdeci">unsigned UBP_maxStepsBab</div><div class="ttdoc">Maximum number of steps the local solver is allowed to take at each BaB node.</div><div class="ttdef"><b>Definition:</b> settings.h:232</div></div>
-<div class="ttc" id="namespacemaingo_1_1ubp_html_acc8477a9a8bca6eb434b2bd647f62f9da995e3c0356133ed4320ffa4111536e10"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da995e3c0356133ed4320ffa4111536e10">maingo::ubp::SOLVER_CLP</a></div><div class="ttdef"><b>Definition:</b> settings.h:129</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_a34c3073ced91a6837df66cfddd3a74ee"><div class="ttname"><a href="structmaingo_1_1_settings.html#a34c3073ced91a6837df66cfddd3a74ee">maingo::Settings::PRE_obbtMaxRounds</a></div><div class="ttdeci">unsigned PRE_obbtMaxRounds</div><div class="ttdoc">Maximum number of rounds of optimization-based range reduction (OBBT; cf., e.g., Gleixner et al...</div><div class="ttdef"><b>Definition:</b> settings.h:175</div></div>
+<div class="ttc" id="namespacemaingo_1_1lbp_html_addd00d5f7ff74c4721070d8dd76f93a2a2646c5b7bcb159ca8436c7a813e8b783"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a2646c5b7bcb159ca8436c7a813e8b783">maingo::lbp::LINP_KELLEY</a></div><div class="ttdoc">(=2) : Linearize at points determined via an adapted version of Kelley&amp;#39;s algorithm, each function is treated individually </div><div class="ttdef"><b>Definition:</b> settings.h:81</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_a93335d6322c7df74c4ffd387941379be"><div class="ttname"><a href="structmaingo_1_1_settings.html#a93335d6322c7df74c4ffd387941379be">maingo::Settings::BAB_maxIterations</a></div><div class="ttdeci">unsigned BAB_maxIterations</div><div class="ttdoc">Maximum number of iterations (i.e., maximum number of nodes visited in the Branch-and-Bound tree) ...</div><div class="ttdef"><b>Definition:</b> settings.h:143</div></div>
+<div class="ttc" id="namespacemaingo_html_a53603cf77a4aab12b16a3cce79b991bea46b5de1abddbaba6cf2a9b54852c0a6c"><div class="ttname"><a href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991bea46b5de1abddbaba6cf2a9b54852c0a6c">maingo::VERB_NORMAL</a></div><div class="ttdoc">(=1): For BranchAndBound, this means that regular output on solution progress is printed according to...</div><div class="ttdef"><b>Definition:</b> settings.h:30</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_ae9318c3868a221c8cb642e8c9f413dc2"><div class="ttname"><a href="structmaingo_1_1_settings.html#ae9318c3868a221c8cb642e8c9f413dc2">maingo::Settings::BAB_branchVariable</a></div><div class="ttdeci">babBase::enums::BV BAB_branchVariable</div><div class="ttdoc">Which dimension to branch in for the current node. See documentation of babBase::enums::BV for possib...</div><div class="ttdef"><b>Definition:</b> settings.h:184</div></div>
+<div class="ttc" id="namespacemaingo_1_1ubp_html_acc8477a9a8bca6eb434b2bd647f62f9da15b7028091e5f95408a2a26e643cb972"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da15b7028091e5f95408a2a26e643cb972">maingo::ubp::UBP_SOLVER_EVAL</a></div><div class="ttdoc">(=0): no optimization, simple function evaluation at solution point of LBP </div><div class="ttdef"><b>Definition:</b> settings.h:103</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_acef4fa75216bfea7bd19dbb9d226320f"><div class="ttname"><a href="structmaingo_1_1_settings.html#acef4fa75216bfea7bd19dbb9d226320f">maingo::Settings::UBP_solverBab</a></div><div class="ttdeci">ubp::UBP_SOLVER UBP_solverBab</div><div class="ttdoc">Solver to be used during Branch-and-Bound. See documentation of ubp::UBP_SOLVER for possible values...</div><div class="ttdef"><b>Definition:</b> settings.h:231</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_a11c405acd744c079b1cb57c71fe1b5dc"><div class="ttname"><a href="structmaingo_1_1_settings.html#a11c405acd744c079b1cb57c71fe1b5dc">maingo::Settings::BAB_probing</a></div><div class="ttdeci">bool BAB_probing</div><div class="ttdoc">Whether to do probing (cf. Ryoo&amp;Sahinidis, Comput. Chem. Eng. 19 (1995) 551) at every node (can only ...</div><div class="ttdef"><b>Definition:</b> settings.h:193</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_aec5925d3412be881fb7fac711718e7e4"><div class="ttname"><a href="structmaingo_1_1_settings.html#aec5925d3412be881fb7fac711718e7e4">maingo::Settings::MC_mvcompTol</a></div><div class="ttdeci">double MC_mvcompTol</div><div class="ttdoc">Tolerance used in the multivariate composition theorem for computing McCormick relaxations (see MC++ ...</div><div class="ttdef"><b>Definition:</b> settings.h:220</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_af98e35447c8568c1613daf7447a30307"><div class="ttname"><a href="structmaingo_1_1_settings.html#af98e35447c8568c1613daf7447a30307">maingo::Settings::UBP_verbosity</a></div><div class="ttdeci">VERB UBP_verbosity</div><div class="ttdoc">How much output to print from Upper Bounding Solver. See documentation of maingo::VERB for possible v...</div><div class="ttdef"><b>Definition:</b> settings.h:158</div></div>
+<div class="ttc" id="namespacemaingo_1_1lbp_html_addd00d5f7ff74c4721070d8dd76f93a2a5b84f41c3cd21549f844b70dab1f8e49"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a5b84f41c3cd21549f844b70dab1f8e49">maingo::lbp::LINP_KELLEY_SIMPLEX</a></div><div class="ttdoc">(=5) : Linearize at mid point + (n+1)/2 points given as vertices of the (n+1) simplex where n is the ...</div><div class="ttdef"><b>Definition:</b> settings.h:84</div></div>
+<div class="ttc" id="namespacemaingo_html_aed64ab21c095ed6882ea61128addd7a4a335b5d0a5d8ddae15c4f4dc56ff437c1"><div class="ttname"><a href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4a335b5d0a5d8ddae15c4f4dc56ff437c1">maingo::LOGGING_FILE</a></div><div class="ttdoc">(=2): Write to a log file only. The log filename can be set via set_log_file_name ...</div><div class="ttdef"><b>Definition:</b> settings.h:41</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_a930df85d476b40ebf1dd43b024e1b001"><div class="ttname"><a href="structmaingo_1_1_settings.html#a930df85d476b40ebf1dd43b024e1b001">maingo::Settings::UBP_maxStepsBab</a></div><div class="ttdeci">unsigned UBP_maxStepsBab</div><div class="ttdoc">Maximum number of steps the local solver is allowed to take at each BaB node. </div><div class="ttdef"><b>Definition:</b> settings.h:232</div></div>
 <div class="ttc" id="structmaingo_1_1_settings_html_a50403ef83f8de6e5a774825a56715012"><div class="ttname"><a href="structmaingo_1_1_settings.html#a50403ef83f8de6e5a774825a56715012">maingo::Settings::UBP_solverPreprocessing</a></div><div class="ttdeci">ubp::UBP_SOLVER UBP_solverPreprocessing</div><div class="ttdoc">Solver to be used during pre-processing (i.e., multistart). See documentation of ubp::UBP_SOLVER for ...</div><div class="ttdef"><b>Definition:</b> settings.h:228</div></div>
-<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO</div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
-<div class="ttc" id="namespacemaingo_1_1ubp_html_acc8477a9a8bca6eb434b2bd647f62f9da6cc859f77befbec62acf36cb2ef82683"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da6cc859f77befbec62acf36cb2ef82683">maingo::ubp::SOLVER_KNITRO</a></div><div class="ttdef"><b>Definition:</b> settings.h:127</div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
 <div class="ttc" id="bab_utils_8h_html"><div class="ttname"><a href="bab_utils_8h.html">babUtils.h</a></div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_aed67a51e2390de794d1e7e98a1a90206"><div class="ttname"><a href="structmaingo_1_1_settings.html#aed67a51e2390de794d1e7e98a1a90206">maingo::Settings::PRE_printEveryLocalSearch</a></div><div class="ttdeci">bool PRE_printEveryLocalSearch</div><div class="ttdoc">Whether to print every run during multistart at the root node.</div><div class="ttdef"><b>Definition:</b> settings.h:259</div></div>
-<div class="ttc" id="namespacemaingo_html_a7fda513a30bb172152b96406e370299aa6b23681db7db1db0a27cb2007620056e"><div class="ttname"><a href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aa6b23681db7db1db0a27cb2007620056e">maingo::BARON</a></div><div class="ttdoc">BARON.</div><div class="ttdef"><b>Definition:</b> settings.h:60</div></div>
-<div class="ttc" id="namespacemaingo_1_1lbp_html_a93b68678c7bf3f3767b5ac7adf55a4beabbf2c359f240461a8859bea8b628179d"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4beabbf2c359f240461a8859bea8b628179d">maingo::lbp::SOLVER_INTERVAL</a></div><div class="ttdef"><b>Definition:</b> settings.h:80</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_a3e066fd5fb513813ec370f23a1cf5332"><div class="ttname"><a href="structmaingo_1_1_settings.html#a3e066fd5fb513813ec370f23a1cf5332">maingo::Settings::LBP_solver</a></div><div class="ttdeci">lbp::LBP_SOLVER LBP_solver</div><div class="ttdoc">Solver for solution of (mixed-integer) linear lower bounding problems. It also sets the solver when s...</div><div class="ttdef"><b>Definition:</b> settings.h:205</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_a7b899b964718fb9e7a95459026faf6aa"><div class="ttname"><a href="structmaingo_1_1_settings.html#a7b899b964718fb9e7a95459026faf6aa">maingo::Settings::epsilonA</a></div><div class="ttdeci">double epsilonA</div><div class="ttdoc">Absolute optimality tolerance, i.e., termination when (UBD-LBD) &lt; BAB_epsilon_a.</div><div class="ttdef"><b>Definition:</b> settings.h:164</div></div>
-<div class="ttc" id="namespacemaingo_1_1ubp_html_acc8477a9a8bca6eb434b2bd647f62f9d"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9d">maingo::ubp::UBP_SOLVER</a></div><div class="ttdeci">UBP_SOLVER</div><div class="ttdoc">Enum for selecting the STRATegy so be used for solving the upper bounding problems.</div><div class="ttdef"><b>Definition:</b> settings.h:120</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_aed67a51e2390de794d1e7e98a1a90206"><div class="ttname"><a href="structmaingo_1_1_settings.html#aed67a51e2390de794d1e7e98a1a90206">maingo::Settings::PRE_printEveryLocalSearch</a></div><div class="ttdeci">bool PRE_printEveryLocalSearch</div><div class="ttdoc">Whether to print every run during multistart at the root node. </div><div class="ttdef"><b>Definition:</b> settings.h:166</div></div>
+<div class="ttc" id="namespacemaingo_1_1lbp_html_a93b68678c7bf3f3767b5ac7adf55a4bea016b6bae02feefafd679a8d57149aff5"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea016b6bae02feefafd679a8d57149aff5">maingo::lbp::LBP_SOLVER_CPLEX</a></div><div class="ttdoc">(=2): solution of lower bounding linear programs using CPLEX </div><div class="ttdef"><b>Definition:</b> settings.h:70</div></div>
+<div class="ttc" id="namespacemaingo_1_1ubp_html_acc8477a9a8bca6eb434b2bd647f62f9da5e8733223dd08864a8d5effbb341992a"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da5e8733223dd08864a8d5effbb341992a">maingo::ubp::UBP_SOLVER_SLSQP</a></div><div class="ttdoc">(=4): local optimization using SLSQP (SQP solver within NLopt) </div><div class="ttdef"><b>Definition:</b> settings.h:107</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_a3e066fd5fb513813ec370f23a1cf5332"><div class="ttname"><a href="structmaingo_1_1_settings.html#a3e066fd5fb513813ec370f23a1cf5332">maingo::Settings::LBP_solver</a></div><div class="ttdeci">lbp::LBP_SOLVER LBP_solver</div><div class="ttdoc">Solver for solution of (mixed-integer) linear lower bounding problems. It also sets the solver when s...</div><div class="ttdef"><b>Definition:</b> settings.h:204</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_a7b899b964718fb9e7a95459026faf6aa"><div class="ttname"><a href="structmaingo_1_1_settings.html#a7b899b964718fb9e7a95459026faf6aa">maingo::Settings::epsilonA</a></div><div class="ttdeci">double epsilonA</div><div class="ttdoc">Absolute optimality tolerance, i.e., termination when (UBD-LBD) &lt; BAB_epsilon_a. </div><div class="ttdef"><b>Definition:</b> settings.h:131</div></div>
+<div class="ttc" id="namespacemaingo_1_1ubp_html_acc8477a9a8bca6eb434b2bd647f62f9d"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9d">maingo::ubp::UBP_SOLVER</a></div><div class="ttdeci">UBP_SOLVER</div><div class="ttdoc">Enum for selecting the STRATegy so be used for solving the upper bounding problems. </div><div class="ttdef"><b>Definition:</b> settings.h:102</div></div>
 <div class="ttc" id="structmaingo_1_1_settings_html_a1ef0c321a726544d68a6f82ebe0f3ce1"><div class="ttname"><a href="structmaingo_1_1_settings.html#a1ef0c321a726544d68a6f82ebe0f3ce1">maingo::Settings::LBP_activateMoreScaling</a></div><div class="ttdeci">unsigned LBP_activateMoreScaling</div><div class="ttdoc">Number of consecutive iterations without LBD improvement needed to activate more aggressive scaling i...</div><div class="ttdef"><b>Definition:</b> settings.h:209</div></div>
-<div class="ttc" id="namespacemaingo_html_a53603cf77a4aab12b16a3cce79b991be"><div class="ttname"><a href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">maingo::VERB</a></div><div class="ttdeci">VERB</div><div class="ttdoc">Enum for controlling the output level of solvers (i.e., how much should be printed on the screen and,...</div><div class="ttdef"><b>Definition:</b> settings.h:33</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_a891666257be2a508061697ea80a01ada"><div class="ttname"><a href="structmaingo_1_1_settings.html#a891666257be2a508061697ea80a01ada">maingo::Settings::writeJson</a></div><div class="ttdeci">bool writeJson</div><div class="ttdoc">Whether to write a json-log file (named bab.json).</div><div class="ttdef"><b>Definition:</b> settings.h:258</div></div>
-<div class="ttc" id="namespacemaingo_html_a53603cf77a4aab12b16a3cce79b991bea492f57f7be5a28760409792b99e09bd8"><div class="ttname"><a href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991bea492f57f7be5a28760409792b99e09bd8">maingo::VERB_ALL</a></div><div class="ttdef"><b>Definition:</b> settings.h:36</div></div>
-<div class="ttc" id="namespacemaingo_1_1ubp_html_acc8477a9a8bca6eb434b2bd647f62f9dac9dd69c054981d95b5633af8eada06b7"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac9dd69c054981d95b5633af8eada06b7">maingo::ubp::SOLVER_EVAL</a></div><div class="ttdef"><b>Definition:</b> settings.h:121</div></div>
-<div class="ttc" id="namespacemaingo_html_a7fda513a30bb172152b96406e370299aad139485466768f0cb2bc590af41f84fe"><div class="ttname"><a href="namespacemaingo.html#a7fda513a30bb172152b96406e370299aad139485466768f0cb2bc590af41f84fe">maingo::PYOMO</a></div><div class="ttdoc">PYOMO.</div><div class="ttdef"><b>Definition:</b> settings.h:62</div></div>
-<div class="ttc" id="namespacemaingo_1_1lbp_html_addd00d5f7ff74c4721070d8dd76f93a2a6f6fc41c94ae0797af701d329a74a277"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a6f6fc41c94ae0797af701d329a74a277">maingo::lbp::LINP_INCUMBENT</a></div><div class="ttdef"><b>Definition:</b> settings.h:100</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_a6faf13db475d6e05fac1783a8f7ed805"><div class="ttname"><a href="structmaingo_1_1_settings.html#a6faf13db475d6e05fac1783a8f7ed805">maingo::Settings::BAB_nodeSelection</a></div><div class="ttdeci">babBase::enums::NS BAB_nodeSelection</div><div class="ttdoc">How to select the next node to process. See documentation of babBase::enums::NS for possible values.</div><div class="ttdef"><b>Definition:</b> settings.h:193</div></div>
+<div class="ttc" id="namespacemaingo_html_a53603cf77a4aab12b16a3cce79b991be"><div class="ttname"><a href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">maingo::VERB</a></div><div class="ttdeci">VERB</div><div class="ttdoc">Enum for controlling the output level of solvers (i.e., how much should be printed on the screen and...</div><div class="ttdef"><b>Definition:</b> settings.h:28</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_a891666257be2a508061697ea80a01ada"><div class="ttname"><a href="structmaingo_1_1_settings.html#a891666257be2a508061697ea80a01ada">maingo::Settings::writeJson</a></div><div class="ttdeci">bool writeJson</div><div class="ttdoc">Whether to write a json-log file (named bab.json). </div><div class="ttdef"><b>Definition:</b> settings.h:165</div></div>
+<div class="ttc" id="namespacemaingo_1_1ubp_html_acc8477a9a8bca6eb434b2bd647f62f9da3d2c4a7fd42fd747fe825ec8f0b1a1ad"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da3d2c4a7fd42fd747fe825ec8f0b1a1ad">maingo::ubp::UBP_SOLVER_IPOPT</a></div><div class="ttdoc">(=5): local optimization using Ipopt (using the exact Hessian for problems with at most 50 variables...</div><div class="ttdef"><b>Definition:</b> settings.h:108</div></div>
+<div class="ttc" id="namespacemaingo_html_a53603cf77a4aab12b16a3cce79b991bea492f57f7be5a28760409792b99e09bd8"><div class="ttname"><a href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991bea492f57f7be5a28760409792b99e09bd8">maingo::VERB_ALL</a></div><div class="ttdoc">(=2): Highest output level (very noisy!). </div><div class="ttdef"><b>Definition:</b> settings.h:31</div></div>
+<div class="ttc" id="namespacemaingo_1_1lbp_html_a93b68678c7bf3f3767b5ac7adf55a4bea9c0bfb2a028e4a3ab6011619009d62d9"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea9c0bfb2a028e4a3ab6011619009d62d9">maingo::lbp::LBP_SOLVER_CLP</a></div><div class="ttdoc">(=3): solution of lower bounding linear programs using CLP </div><div class="ttdef"><b>Definition:</b> settings.h:71</div></div>
+<div class="ttc" id="namespacemaingo_1_1lbp_html_addd00d5f7ff74c4721070d8dd76f93a2a6f6fc41c94ae0797af701d329a74a277"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a6f6fc41c94ae0797af701d329a74a277">maingo::lbp::LINP_INCUMBENT</a></div><div class="ttdoc">(=1) : Linearize at the incumbent value if it is in the current interval, else linearize at mid point...</div><div class="ttdef"><b>Definition:</b> settings.h:80</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_a6faf13db475d6e05fac1783a8f7ed805"><div class="ttname"><a href="structmaingo_1_1_settings.html#a6faf13db475d6e05fac1783a8f7ed805">maingo::Settings::BAB_nodeSelection</a></div><div class="ttdeci">babBase::enums::NS BAB_nodeSelection</div><div class="ttdoc">How to select the next node to process. See documentation of babBase::enums::NS for possible values...</div><div class="ttdef"><b>Definition:</b> settings.h:183</div></div>
 <div class="ttc" id="structmaingo_1_1_settings_html_ae7029d17219326a8cbf366f214bb4706"><div class="ttname"><a href="structmaingo_1_1_settings.html#ae7029d17219326a8cbf366f214bb4706">maingo::Settings::MC_mvcompUse</a></div><div class="ttdeci">bool MC_mvcompUse</div><div class="ttdoc">Whether to use multivariate composition theorem for computing McCormick relaxations (see MC++ documen...</div><div class="ttdef"><b>Definition:</b> settings.h:219</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_a11905b6d9a1d4bcbe320d7fd6f3e4a71"><div class="ttname"><a href="structmaingo_1_1_settings.html#a11905b6d9a1d4bcbe320d7fd6f3e4a71">maingo::Settings::relNodeTol</a></div><div class="ttdeci">double relNodeTol</div><div class="ttdoc">Relative tolerance for minimum node size.</div><div class="ttdef"><b>Definition:</b> settings.h:168</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_aa0a8bf977559001dd0a4cda0d7908ebb"><div class="ttname"><a href="structmaingo_1_1_settings.html#aa0a8bf977559001dd0a4cda0d7908ebb">maingo::Settings::writeToLogSec</a></div><div class="ttdeci">unsigned writeToLogSec</div><div class="ttdoc">Write to log file after a given ammount of CPU seconds.</div><div class="ttdef"><b>Definition:</b> settings.h:255</div></div>
+<div class="ttc" id="namespacemaingo_html_a76021544553e05d3b4de6cbcf58db39a"><div class="ttname"><a href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39a">maingo::WRITING_LANGUAGE</a></div><div class="ttdeci">WRITING_LANGUAGE</div><div class="ttdoc">Enum for representing the modeling language in which MAiNGO is supposed to write the current model to...</div><div class="ttdef"><b>Definition:</b> settings.h:49</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_a11905b6d9a1d4bcbe320d7fd6f3e4a71"><div class="ttname"><a href="structmaingo_1_1_settings.html#a11905b6d9a1d4bcbe320d7fd6f3e4a71">maingo::Settings::relNodeTol</a></div><div class="ttdeci">double relNodeTol</div><div class="ttdoc">Relative tolerance for minimum node size. Nodes are discarded if in every dimension their width gets ...</div><div class="ttdef"><b>Definition:</b> settings.h:135</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_aa0a8bf977559001dd0a4cda0d7908ebb"><div class="ttname"><a href="structmaingo_1_1_settings.html#aa0a8bf977559001dd0a4cda0d7908ebb">maingo::Settings::writeToLogSec</a></div><div class="ttdeci">unsigned writeToLogSec</div><div class="ttdoc">Write to log file after a given ammount of CPU seconds. </div><div class="ttdef"><b>Definition:</b> settings.h:162</div></div>
 <div class="ttc" id="structmaingo_1_1_settings_html_ad537d2e602f8eccbbaa1b3c4d0f3a135"><div class="ttname"><a href="structmaingo_1_1_settings.html#ad537d2e602f8eccbbaa1b3c4d0f3a135">maingo::Settings::LBP_obbtMinImprovement</a></div><div class="ttdeci">double LBP_obbtMinImprovement</div><div class="ttdoc">How much improvement needs to be achievable (relative to initial diameter) to conduct OBBT for a vari...</div><div class="ttdef"><b>Definition:</b> settings.h:208</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_ac91eb2c4778d67abdc5b797c3a8d1b3f"><div class="ttname"><a href="structmaingo_1_1_settings.html#ac91eb2c4778d67abdc5b797c3a8d1b3f">maingo::Settings::LBP_minFactorsForAux</a></div><div class="ttdeci">unsigned LBP_minFactorsForAux</div><div class="ttdoc">Minimum number of common factors to add an auxiliary variable.</div><div class="ttdef"><b>Definition:</b> settings.h:211</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_a6d6da9a089684ecd8eb3dc560e14c0ca"><div class="ttname"><a href="structmaingo_1_1_settings.html#a6d6da9a089684ecd8eb3dc560e14c0ca">maingo::Settings::writeResFile</a></div><div class="ttdeci">bool writeResFile</div><div class="ttdoc">Whether to write an additional file containing non-standard information about the solved model.</div><div class="ttdef"><b>Definition:</b> settings.h:256</div></div>
-<div class="ttc" id="namespacemaingo_html_a3d9300c6853caaf91b0afc24d3dd1ae0a585dae7be6c02c38889b2be3e16fd2fb"><div class="ttname"><a href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0a585dae7be6c02c38889b2be3e16fd2fb">maingo::OUTSTREAM_BOTH</a></div><div class="ttdef"><b>Definition:</b> settings.h:48</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_a635996885baa7cb82d4f5cf91c2921bc"><div class="ttname"><a href="structmaingo_1_1_settings.html#a635996885baa7cb82d4f5cf91c2921bc">maingo::Settings::BAB_verbosity</a></div><div class="ttdeci">VERB BAB_verbosity</div><div class="ttdoc">How much output to print from Branch &amp; Bound solver. Possible values are VERB_NONE (=0),...</div><div class="ttdef"><b>Definition:</b> settings.h:248</div></div>
-<div class="ttc" id="namespacemaingo_html_a53603cf77a4aab12b16a3cce79b991bea564fb96cc42aa72474169a9d7e3fd844"><div class="ttname"><a href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991bea564fb96cc42aa72474169a9d7e3fd844">maingo::VERB_NONE</a></div><div class="ttdef"><b>Definition:</b> settings.h:34</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_a97970d98cd9d1d8972cc048d339b53dc"><div class="ttname"><a href="structmaingo_1_1_settings.html#a97970d98cd9d1d8972cc048d339b53dc">maingo::Settings::maxTime</a></div><div class="ttdeci">unsigned maxTime</div><div class="ttdoc">CPU time limit in seconds.</div><div class="ttdef"><b>Definition:</b> settings.h:172</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_a6fb19c2296412e1143f77fd7b949e7e3"><div class="ttname"><a href="structmaingo_1_1_settings.html#a6fb19c2296412e1143f77fd7b949e7e3">maingo::Settings::writeCsv</a></div><div class="ttdeci">bool writeCsv</div><div class="ttdoc">Whether to write csv-log files (named bab_Report_General.csv and bab_Report_Iterations....</div><div class="ttdef"><b>Definition:</b> settings.h:257</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_ac91eb2c4778d67abdc5b797c3a8d1b3f"><div class="ttname"><a href="structmaingo_1_1_settings.html#ac91eb2c4778d67abdc5b797c3a8d1b3f">maingo::Settings::LBP_minFactorsForAux</a></div><div class="ttdeci">unsigned LBP_minFactorsForAux</div><div class="ttdoc">Minimum number of common factors to add an auxiliary variable. </div><div class="ttdef"><b>Definition:</b> settings.h:211</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_a635996885baa7cb82d4f5cf91c2921bc"><div class="ttname"><a href="structmaingo_1_1_settings.html#a635996885baa7cb82d4f5cf91c2921bc">maingo::Settings::BAB_verbosity</a></div><div class="ttdeci">VERB BAB_verbosity</div><div class="ttdoc">How much output to print from Branch &amp; Bound solver. See documentation of maingo::VERB for possible v...</div><div class="ttdef"><b>Definition:</b> settings.h:156</div></div>
+<div class="ttc" id="namespacemaingo_1_1lbp_html_a93b68678c7bf3f3767b5ac7adf55a4bea32fa8aaeff8ed8f41d95ce72acc04ce1"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea32fa8aaeff8ed8f41d95ce72acc04ce1">maingo::lbp::LBP_SOLVER_MAiNGO</a></div><div class="ttdoc">(=0): MAiNGO internal lower bounding solver consisting of linearizing the objective function at only ...</div><div class="ttdef"><b>Definition:</b> settings.h:68</div></div>
+<div class="ttc" id="namespacemaingo_html_a53603cf77a4aab12b16a3cce79b991bea564fb96cc42aa72474169a9d7e3fd844"><div class="ttname"><a href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991bea564fb96cc42aa72474169a9d7e3fd844">maingo::VERB_NONE</a></div><div class="ttdoc">(=0): Print no output whatsoever. </div><div class="ttdef"><b>Definition:</b> settings.h:29</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_a97970d98cd9d1d8972cc048d339b53dc"><div class="ttname"><a href="structmaingo_1_1_settings.html#a97970d98cd9d1d8972cc048d339b53dc">maingo::Settings::maxTime</a></div><div class="ttdeci">unsigned maxTime</div><div class="ttdoc">CPU time limit in seconds. </div><div class="ttdef"><b>Definition:</b> settings.h:144</div></div>
+<div class="ttc" id="namespacemaingo_1_1ubp_html_acc8477a9a8bca6eb434b2bd647f62f9dac4da4292c1a20fb6a199fc7b540bc2d3"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9dac4da4292c1a20fb6a199fc7b540bc2d3">maingo::ubp::UBP_SOLVER_LBFGS</a></div><div class="ttdoc">(=3): local optimization using LBFGS (lower-storage BFGS algorithm (i.e., gradient-based) for unconst...</div><div class="ttdef"><b>Definition:</b> settings.h:106</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_a6fb19c2296412e1143f77fd7b949e7e3"><div class="ttname"><a href="structmaingo_1_1_settings.html#a6fb19c2296412e1143f77fd7b949e7e3">maingo::Settings::writeCsv</a></div><div class="ttdeci">bool writeCsv</div><div class="ttdoc">Whether to write csv-log files (named bab_statistics.csv and bab_iterations.csv). ...</div><div class="ttdef"><b>Definition:</b> settings.h:164</div></div>
 <div class="ttc" id="structmaingo_1_1_settings_html_a33a203b4798d1c1ca0897fe897f86e5e"><div class="ttname"><a href="structmaingo_1_1_settings.html#a33a203b4798d1c1ca0897fe897f86e5e">maingo::Settings::LBP_linPoints</a></div><div class="ttdeci">lbp::LINP LBP_linPoints</div><div class="ttdoc">At which points to linearize for affine relaxation. See documentation of lbp::LINP for possible value...</div><div class="ttdef"><b>Definition:</b> settings.h:206</div></div>
-<div class="ttc" id="namespacemaingo_1_1ubp_html_acc8477a9a8bca6eb434b2bd647f62f9da816c98ce5f16248a60f78e76bc534823"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da816c98ce5f16248a60f78e76bc534823">maingo::ubp::SOLVER_LBFGS</a></div><div class="ttdef"><b>Definition:</b> settings.h:124</div></div>
-<div class="ttc" id="namespacemaingo_1_1lbp_html_a93b68678c7bf3f3767b5ac7adf55a4bea0a3210e4f9065f1ead5177bfdfbc27d1"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea0a3210e4f9065f1ead5177bfdfbc27d1">maingo::lbp::SOLVER_CLP</a></div><div class="ttdef"><b>Definition:</b> settings.h:82</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_a3003863167eab673fbeae391bfeb802b"><div class="ttname"><a href="structmaingo_1_1_settings.html#a3003863167eab673fbeae391bfeb802b">maingo::Settings::PRE_maxLocalSearches</a></div><div class="ttdeci">unsigned PRE_maxLocalSearches</div><div class="ttdoc">Number of local searches in the multistart heuristic during preprocessing at the root node.</div><div class="ttdef"><b>Definition:</b> settings.h:184</div></div>
-<div class="ttc" id="namespacemaingo_1_1lbp_html_ad19f1469072a948e0678836725b1d3e8a207bbc0e97b4a6f7598b447f8b8c8b89"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#ad19f1469072a948e0678836725b1d3e8a207bbc0e97b4a6f7598b447f8b8c8b89">maingo::lbp::OBBT_FEASOPT</a></div><div class="ttdef"><b>Definition:</b> settings.h:91</div></div>
-<div class="ttc" id="namespacemaingo_1_1lbp_html_a93b68678c7bf3f3767b5ac7adf55a4bea7461c27f75e0601f39252dd553b686e6"><div class="ttname"><a href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea7461c27f75e0601f39252dd553b686e6">maingo::lbp::SOLVER_CPLEX</a></div><div class="ttdef"><b>Definition:</b> settings.h:81</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_acbc8b6cea8fdfd9db25f805b25d9bd43"><div class="ttname"><a href="structmaingo_1_1_settings.html#acbc8b6cea8fdfd9db25f805b25d9bd43">maingo::Settings::BAB_maxNodes</a></div><div class="ttdeci">unsigned BAB_maxNodes</div><div class="ttdoc">Maximum number of nodes (i.e., solver terminates when more than BAB_maxnodes are held in memory; used...</div><div class="ttdef"><b>Definition:</b> settings.h:170</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_acccf69351b29a42f528c9e892cb4d8c5"><div class="ttname"><a href="structmaingo_1_1_settings.html#acccf69351b29a42f528c9e892cb4d8c5">maingo::Settings::LBP_maxNumberOfAddedFactors</a></div><div class="ttdeci">unsigned LBP_maxNumberOfAddedFactors</div><div class="ttdoc">Maximum number of added factor as auxiliaries.</div><div class="ttdef"><b>Definition:</b> settings.h:212</div></div>
-<div class="ttc" id="namespacemaingo_html_a7fda513a30bb172152b96406e370299a"><div class="ttname"><a href="namespacemaingo.html#a7fda513a30bb172152b96406e370299a">maingo::PARSING_LANGUAGE</a></div><div class="ttdeci">PARSING_LANGUAGE</div><div class="ttdoc">Enum for representing possible modeling language for parsing a MAiNGO model to.</div><div class="ttdef"><b>Definition:</b> settings.h:56</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_a4152b7df19df2bfd3b4e43d13aea1841"><div class="ttname"><a href="structmaingo_1_1_settings.html#a4152b7df19df2bfd3b4e43d13aea1841">maingo::Settings::deltaEq</a></div><div class="ttdeci">double deltaEq</div><div class="ttdoc">Absolute feasibility tolerance for equality constraints (i.e., constraint is considered satisfied if ...</div><div class="ttdef"><b>Definition:</b> settings.h:167</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_af507cbfa73588513df3746e104c76c01"><div class="ttname"><a href="structmaingo_1_1_settings.html#af507cbfa73588513df3746e104c76c01">maingo::Settings::PRE_pureMultistart</a></div><div class="ttdeci">bool PRE_pureMultistart</div><div class="ttdoc">Whether to perform a multistart only. A B&amp;B tree will not be constructed and no lower bounding proble...</div><div class="ttdef"><b>Definition:</b> settings.h:186</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_a5e457d44f0301389da787556d4e9aebe"><div class="ttname"><a href="structmaingo_1_1_settings.html#a5e457d44f0301389da787556d4e9aebe">maingo::Settings::BAB_dbbt</a></div><div class="ttdeci">bool BAB_dbbt</div><div class="ttdoc">Whether to do a single round of duality based bound tightening (DBBT, cf. Ryoo&amp;Sahinidis,...</div><div class="ttdef"><b>Definition:</b> settings.h:196</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_a013779523888ede06a29eb507b22d139"><div class="ttname"><a href="structmaingo_1_1_settings.html#a013779523888ede06a29eb507b22d139">maingo::Settings::epsilonR</a></div><div class="ttdeci">double epsilonR</div><div class="ttdoc">Relative optimality tolerance, i.e., termination when (UBD-LBD) &lt; BAB_epsilon_r * UBD.</div><div class="ttdef"><b>Definition:</b> settings.h:165</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_a3003863167eab673fbeae391bfeb802b"><div class="ttname"><a href="structmaingo_1_1_settings.html#a3003863167eab673fbeae391bfeb802b">maingo::Settings::PRE_maxLocalSearches</a></div><div class="ttdeci">unsigned PRE_maxLocalSearches</div><div class="ttdoc">Number of local searches in the multistart heuristic during preprocessing at the root node...</div><div class="ttdef"><b>Definition:</b> settings.h:174</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_acbc8b6cea8fdfd9db25f805b25d9bd43"><div class="ttname"><a href="structmaingo_1_1_settings.html#acbc8b6cea8fdfd9db25f805b25d9bd43">maingo::Settings::BAB_maxNodes</a></div><div class="ttdeci">unsigned BAB_maxNodes</div><div class="ttdoc">Maximum number of nodes (i.e., solver terminates when more than BAB_maxnodes are held in memory; used...</div><div class="ttdef"><b>Definition:</b> settings.h:142</div></div>
+<div class="ttc" id="namespacemaingo_html_a76021544553e05d3b4de6cbcf58db39aa8baf6445b690d1592e58cf697ced3bfe"><div class="ttname"><a href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39aa8baf6445b690d1592e58cf697ced3bfe">maingo::LANG_GAMS</a></div><div class="ttdoc">(=2): Write the current model to a file using GAMS syntax </div><div class="ttdef"><b>Definition:</b> settings.h:52</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_acccf69351b29a42f528c9e892cb4d8c5"><div class="ttname"><a href="structmaingo_1_1_settings.html#acccf69351b29a42f528c9e892cb4d8c5">maingo::Settings::LBP_maxNumberOfAddedFactors</a></div><div class="ttdeci">unsigned LBP_maxNumberOfAddedFactors</div><div class="ttdoc">Maximum number of added factor as auxiliaries. </div><div class="ttdef"><b>Definition:</b> settings.h:212</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_a4152b7df19df2bfd3b4e43d13aea1841"><div class="ttname"><a href="structmaingo_1_1_settings.html#a4152b7df19df2bfd3b4e43d13aea1841">maingo::Settings::deltaEq</a></div><div class="ttdeci">double deltaEq</div><div class="ttdoc">Absolute feasibility tolerance for equality constraints, i.e., constraint is considered satisfied if ...</div><div class="ttdef"><b>Definition:</b> settings.h:134</div></div>
+<div class="ttc" id="namespacebab_base_1_1enums_html_a02e97c49bffe195071c83aa097a8dde5a27cb24b7ae25692a53e21298b16223b5"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5a27cb24b7ae25692a53e21298b16223b5">babBase::enums::NS_BESTBOUND</a></div><div class="ttdef"><b>Definition:</b> babUtils.h:144</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_af507cbfa73588513df3746e104c76c01"><div class="ttname"><a href="structmaingo_1_1_settings.html#af507cbfa73588513df3746e104c76c01">maingo::Settings::PRE_pureMultistart</a></div><div class="ttdeci">bool PRE_pureMultistart</div><div class="ttdoc">Whether to perform a multistart only. A B&amp;B tree will not be constructed and no lower bounding proble...</div><div class="ttdef"><b>Definition:</b> settings.h:176</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_a5e457d44f0301389da787556d4e9aebe"><div class="ttname"><a href="structmaingo_1_1_settings.html#a5e457d44f0301389da787556d4e9aebe">maingo::Settings::BAB_dbbt</a></div><div class="ttdeci">bool BAB_dbbt</div><div class="ttdoc">Whether to do a single round of duality based bound tightening (DBBT, cf. Ryoo&amp;Sahinidis, Comput. Chem. Eng. 19 (1995) 551). If false, no DBBT is used. If true, multipliers from CPLEX are used to tighten bounds (essentially for free). we tried additional rounds but without reasonable improvement. </div><div class="ttdef"><b>Definition:</b> settings.h:192</div></div>
+<div class="ttc" id="namespacemaingo_1_1ubp_html_acc8477a9a8bca6eb434b2bd647f62f9daaff3b4a7dfedf2a8f66396d01c4e1645"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9daaff3b4a7dfedf2a8f66396d01c4e1645">maingo::ubp::UBP_SOLVER_COBYLA</a></div><div class="ttdoc">(=1): local optimization using COBYLA (derivative free solver within NLopt, uses linear approximation...</div><div class="ttdef"><b>Definition:</b> settings.h:104</div></div>
+<div class="ttc" id="namespacemaingo_1_1ubp_html_acc8477a9a8bca6eb434b2bd647f62f9da9537df8ae6b66b2b07f2a31d7258c98f"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da9537df8ae6b66b2b07f2a31d7258c98f">maingo::ubp::UBP_SOLVER_CPLEX</a></div><div class="ttdoc">(=42): optimization using CPLEX. Called only for (MI)LPs and (MI)QCPs. </div><div class="ttdef"><b>Definition:</b> settings.h:110</div></div>
+<div class="ttc" id="namespacebab_base_1_1enums_html_a5563ee1434fe76d1f65565afe896cb81aca8ab66cf77eb113aa470aa08459b5e3"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81aca8ab66cf77eb113aa470aa08459b5e3">babBase::enums::BV_RELDIAM</a></div><div class="ttdef"><b>Definition:</b> babUtils.h:155</div></div>
+<div class="ttc" id="namespacemaingo_html_a76021544553e05d3b4de6cbcf58db39aa1b0686f8505e989428b2edbc77249953"><div class="ttname"><a href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39aa1b0686f8505e989428b2edbc77249953">maingo::LANG_ALE</a></div><div class="ttdoc">(=1): Write the current model to a file using ALE syntax </div><div class="ttdef"><b>Definition:</b> settings.h:51</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_ad665aeee888f2746d7892ffc66bd5340"><div class="ttname"><a href="structmaingo_1_1_settings.html#ad665aeee888f2746d7892ffc66bd5340">maingo::Settings::loggingDestination</a></div><div class="ttdeci">LOGGING_DESTINATION loggingDestination</div><div class="ttdoc">Where to print or write the output. See documentation of maingo::LOGGING_DESTINATION for possible val...</div><div class="ttdef"><b>Definition:</b> settings.h:161</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_a013779523888ede06a29eb507b22d139"><div class="ttname"><a href="structmaingo_1_1_settings.html#a013779523888ede06a29eb507b22d139">maingo::Settings::epsilonR</a></div><div class="ttdeci">double epsilonR</div><div class="ttdoc">Relative optimality tolerance, i.e., termination when (UBD-LBD) &lt; BAB_epsilon_r * UBD...</div><div class="ttdef"><b>Definition:</b> settings.h:132</div></div>
 <div class="ttc" id="structmaingo_1_1_settings_html_ae41b9a39dbcf2adf4891a414333145bd"><div class="ttname"><a href="structmaingo_1_1_settings.html#ae41b9a39dbcf2adf4891a414333145bd">maingo::Settings::EC_nPoints</a></div><div class="ttdeci">unsigned EC_nPoints</div><div class="ttdoc">Number of points on the Pareto front to be computed in epsilon-constraint method (only available via ...</div><div class="ttdef"><b>Definition:</b> settings.h:241</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_af995a33f43f5609d3e941cbdf72a94de"><div class="ttname"><a href="structmaingo_1_1_settings.html#af995a33f43f5609d3e941cbdf72a94de">maingo::Settings::deltaIneq</a></div><div class="ttdeci">double deltaIneq</div><div class="ttdoc">Absolute feasibility tolerance for inequality constraints (i.e., constraint is considered satisfied i...</div><div class="ttdef"><b>Definition:</b> settings.h:166</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_af995a33f43f5609d3e941cbdf72a94de"><div class="ttname"><a href="structmaingo_1_1_settings.html#af995a33f43f5609d3e941cbdf72a94de">maingo::Settings::deltaIneq</a></div><div class="ttdeci">double deltaIneq</div><div class="ttdoc">Absolute feasibility tolerance for inequality constraints, i.e., constraint is considered satisfied i...</div><div class="ttdef"><b>Definition:</b> settings.h:133</div></div>
+<div class="ttc" id="namespacemaingo_html_aed64ab21c095ed6882ea61128addd7a4afb969130cbbe60ea7ede72325e349fbe"><div class="ttname"><a href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4afb969130cbbe60ea7ede72325e349fbe">maingo::LOGGING_OUTSTREAM</a></div><div class="ttdoc">(=1): Print only to selected output stream. The stream can be selected via set_output_stream ...</div><div class="ttdef"><b>Definition:</b> settings.h:40</div></div>
+<div class="ttc" id="namespacemaingo_html_aed64ab21c095ed6882ea61128addd7a4aaeb2ef5d2157419a5fe03924e9fbb714"><div class="ttname"><a href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4aaeb2ef5d2157419a5fe03924e9fbb714">maingo::LOGGING_FILE_AND_STREAM</a></div><div class="ttdoc">(=3): Print to output stream AND write the same information to log file </div><div class="ttdef"><b>Definition:</b> settings.h:42</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -201,7 +193,7 @@ $(document).ready(function(){initNavTree('settings_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="settings_8h.html">settings.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/special_uses.html b/doc/html/special_uses.html
index a629d5f170a08ea1e169aa87849e075e8bec5074..85d4893ed0a2a7ad9924a4f124de987b04eee005 100644
--- a/doc/html/special_uses.html
+++ b/doc/html/special_uses.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Special Uses of MAiNGO</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -85,7 +85,7 @@ $(document).ready(function(){initNavTree('special_uses.html','');});
 </iframe>
 </div>
 
-<div class="PageDoc"><div class="header">
+<div class="header">
   <div class="headertitle">
 <div class="title">Special Uses of MAiNGO </div>  </div>
 </div><!--header-->
@@ -95,18 +95,17 @@ Using MAiNGO as a multi-start local solver:</h1>
 <p>Simply activate the option <a class="el" href="structmaingo_1_1_settings.html#af507cbfa73588513df3746e104c76c01">PRE_pureMultistart</a>, which disables B&amp;B as well as range reduction at the root node, respectively. Set the <a class="el" href="structmaingo_1_1_settings.html#a3003863167eab673fbeae391bfeb802b">number of max local searches</a> to the total number of searches you want to perform, and possibly specify an initial point, see section <a class="el" href="writing_problem.html">Modeling in MAiNGO</a>. Set your local solver using <a class="el" href="structmaingo_1_1_settings.html#a50403ef83f8de6e5a774825a56715012">UBP_solverPreprocessing</a> and make sure that <a class="el" href="structmaingo_1_1_settings.html#aa85263531e27b4569555b7b78aa15440">UBP_maxStepsPreprocessing</a> is not too small. Enable <a class="el" href="structmaingo_1_1_settings.html#aed67a51e2390de794d1e7e98a1a90206">PRE_printEveryLocalSearch</a> to obtain output from every local search. Note that in this case, the returned solution is obviously not guaranteed to be global.</p>
 <h1><a class="anchor" id="maingo_pure_bab"></a>
 Using MAiNGO as a pure B&amp;B Solver:</h1>
-<p>Set <a class="el" href="structmaingo_1_1_settings.html#a34c3073ced91a6837df66cfddd3a74ee">PRE_obbtMaxRounds</a>=0, disable <a class="el" href="structmaingo_1_1_settings.html#a5e457d44f0301389da787556d4e9aebe">BAB_dbbt</a>, <a class="el" href="structmaingo_1_1_settings.html#a11c405acd744c079b1cb57c71fe1b5dc">BAB_probing</a> and <a class="el" href="structmaingo_1_1_settings.html#a8fd91a3766129137cae15447565e7923">BAB_alwaysSolveObbt</a>. If desired, also set <a class="el" href="structmaingo_1_1_settings.html#a3003863167eab673fbeae391bfeb802b">PRE_maxLocalSearches</a>=0 to avoid multi-start at the root node.</p>
+<p>Set <a class="el" href="structmaingo_1_1_settings.html#a34c3073ced91a6837df66cfddd3a74ee">PRE_obbtMaxRounds</a>=0, disable <a class="el" href="structmaingo_1_1_settings.html#a774378c7d329fb73be3cbb765f035cb6">BAB_constraintPropagation</a>, <a class="el" href="structmaingo_1_1_settings.html#a5e457d44f0301389da787556d4e9aebe">BAB_dbbt</a>, <a class="el" href="structmaingo_1_1_settings.html#a11c405acd744c079b1cb57c71fe1b5dc">BAB_probing</a> and <a class="el" href="structmaingo_1_1_settings.html#a8fd91a3766129137cae15447565e7923">BAB_alwaysSolveObbt</a>. If desired, also set <a class="el" href="structmaingo_1_1_settings.html#a3003863167eab673fbeae391bfeb802b">PRE_maxLocalSearches</a>=0 to avoid multi-start at the root node.</p>
 <h1><a class="anchor" id="maingo_feasibility_of_single_point"></a>
 Using MAiNGO to check feasibility of a single point:</h1>
-<p>Set up the optimization problem using arbitrary bounds containing the point of interest. Proceed like for using MAiNGO as a multi-start local solver, but set the <a class="el" href="structmaingo_1_1_settings.html#a3003863167eab673fbeae391bfeb802b">number of local searches</a> to 0. Alternatively, you can use the C++ function <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#abd17e0e2d436da88f15738e8e0218ac8">get_model_at_point</a> function to simply evaluate a point of interest.</p>
+<p>From C++ of Python, simply use the function <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#aaaa69dd8b526f0d9966ce35bd102601f">evaluate_model_at_point</a> to simply evaluate a point of interest. Otherwise, set up the optimization problem using arbitrary bounds containing the point of interest. Proceed like for using MAiNGO as a multi-start local solver, but set <a class="el" href="structmaingo_1_1_settings.html#a3003863167eab673fbeae391bfeb802b">PRE_maxLocalSearches</a> to 0.</p>
 <h1><a class="anchor" id="maingo_epsilon_constraint"></a>
 Using MAiNGO to solve Bi-objective Problems:</h1>
-<p>MAiNGO implements the epsilon-constraint method for bi-objective problems, that is currently available through the C++ API only. In order to define a bi-objective problem, please take a look at the exemplary <code>examples/03_Biobjective/problemEpsCon.h</code> file. The implementation is very similar to the one described in section <a class="el" href="writing_problem.html">Modeling in MAiNGO</a> with the difference that now two objectives are required. In order to solve the bi-objective problem uncomment the appropriate code lines in <code>examples/mainCppApi.cpp</code>.</p>
+<p>MAiNGO implements the epsilon-constraint method for bi-objective problems, that is currently available through the C++ API only. To define a bi-objective problem, please take a look at the exemplary <code>examples/03_Biobjective/problemEpsCon.h</code> file. The implementation is very similar to the one described in section <a class="el" href="writing_problem.html">Modeling in MAiNGO</a> with the difference that now two objectives are required. To solve the bi-objective problem uncomment the appropriate code lines in <code>examples/mainCppApi.cpp</code>.</p>
 <h1><a class="anchor" id="maingo_write_files_to_other_language"></a>
 Using MAiNGO to write Files in other Modeling Languages:</h1>
-<p>The most convenient way is to use the setting <a class="el" href="structmaingo_1_1_settings.html#a440a841800111853d7366c1626242de6">writeToOtherLanguage</a> which will automatically write a parsed file before solving your problem. The more advanced way is to use the C++ function <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a4f888ef8f672e6ee7602951cd4b2c7a9">parse_maingo_to_other_language</a> can be called on your MAiNGO object to automatically write your model into a GAMS or ALE file with more options the when using the setting <a class="el" href="structmaingo_1_1_settings.html#a440a841800111853d7366c1626242de6">writeToOtherLanguage</a>. An example of the usage of the function can be found in the <code>examples/mainCppApi.cpp</code>. The arguments provided to the <code>parse_maingo_to_other_language</code> function are a file name (default is MAiNGO_parsed_file.xxx), a solver (except if parsing to ALE; default is SCIP), whether you want to use the min and max functions or use the equivalent abs-function formulation (default is true, meaning that the min and max functions are written to the file), whether you want to use hyperbolic functions or use equivalent formulations with the exp-function if avaiable (default is true, meaning that the hyperbolic functions are written to the file), whether you want to ignore bounding functions which are available only within MAiNGO, see the <code>doc/implementedFunctions/Implemented_functions.pdf</code> (default is true, meaning that all used bounding functions are ignored when writing files), and whether you want to write all relaxation-only constraints (default is true, meaning that all constraints will be parsed). This function is extremely helpful if you want to do some cross-testing of solvers using the same model formulations. </p>
-</div></div><!-- PageDoc -->
-</div><!-- contents -->
+<p>The most convenient way is to use the setting <a class="el" href="structmaingo_1_1_settings.html#a5d637f32b3496797a5a327fba9b2589a">modelWritingLanguage</a> which will automatically write the current model to a file called <code>MAiNGO_written_model</code> (with a filename extension depending on the chosen language) before solving your problem. The more advanced way is to use the function <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html#a8acf1fc912457043365faabd54861d50">write_model_to_file_in_other_language</a>, which can be called on your MAiNGO object (in C++ or Python) to automatically write your model to a file with more options than when using the setting <a class="el" href="structmaingo_1_1_settings.html#a5d637f32b3496797a5a327fba9b2589a">modelWritingLanguage</a>. An example for the use of this function can be found in the <code>examples/mainCppApi.cpp</code>. This function is extremely helpful if you want to do some cross-testing of solvers using the same model formulations. </p>
+</div></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
@@ -114,7 +113,7 @@ Using MAiNGO to write Files in other Modeling Languages:</h1>
     <li class="navelem"><a class="el" href="index.html">McCormick-based Algorithm for mixed-integer Nonlinear Global Optimization</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/structbab_base_1_1_bab_log-members.html b/doc/html/structbab_base_1_1_bab_log-members.html
index 3ebeb7f09d5950f487d51de9547ed09f7700715f..d928c206cd05a00dd057f2ff6ae0d6c8083ec3ef 100644
--- a/doc/html/structbab_base_1_1_bab_log-members.html
+++ b/doc/html/structbab_base_1_1_bab_log-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -115,7 +115,7 @@ $(document).ready(function(){initNavTree('structbab_base_1_1_bab_log.html','');}
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/structbab_base_1_1_bab_log.html b/doc/html/structbab_base_1_1_bab_log.html
index 2e66202d7b64ef4a9bbbce73abfc55b44d66c9d1..f72abed5bc5f4bad8b6a68059c5b2eaa56283d28 100644
--- a/doc/html/structbab_base_1_1_bab_log.html
+++ b/doc/html/structbab_base_1_1_bab_log.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: babBase::BabLog Struct Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -379,7 +379,7 @@ Public Attributes</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this struct was generated from the following file:<ul>
-<li>C:/Users/dobo01/maingo/dep/babbase/inc/<a class="el" href="bab_utils_8h_source.html">babUtils.h</a></li>
+<li>C:/dobo01/maingo/dep/babbase/inc/<a class="el" href="bab_utils_8h_source.html">babUtils.h</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -389,7 +389,7 @@ Public Attributes</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacebab_base.html">babBase</a></li><li class="navelem"><a class="el" href="structbab_base_1_1_bab_log.html">BabLog</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/structbab_base_1_1_bounds-members.html b/doc/html/structbab_base_1_1_bounds-members.html
index bd3f1f5a3f6b9b4550418bd934def84faec7a8b5..6dd4b2b23593e04d32ea6cc27e5d679740fa1b1e 100644
--- a/doc/html/structbab_base_1_1_bounds-members.html
+++ b/doc/html/structbab_base_1_1_bounds-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -93,14 +93,10 @@ $(document).ready(function(){initNavTree('structbab_base_1_1_bounds.html','');})
 
 <p>This is the complete list of members for <a class="el" href="structbab_base_1_1_bounds.html">babBase::Bounds</a>, including all inherited members.</p>
 <table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="structbab_base_1_1_bounds.html#a143d3617a4792c4ab189e372e8e0b681">Bounds</a>(const double lowerIn, const double upperIn)</td><td class="entry"><a class="el" href="structbab_base_1_1_bounds.html">babBase::Bounds</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="structbab_base_1_1_bounds.html#a58871ce4b6cf44aa16f6dd240fdeb295">Bounds</a>(Bounds &amp;&amp;)=default</td><td class="entry"><a class="el" href="structbab_base_1_1_bounds.html">babBase::Bounds</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structbab_base_1_1_bounds.html#af1d929f0940ec89277c8813e9f6e32eb">Bounds</a>(const Bounds &amp;)=default</td><td class="entry"><a class="el" href="structbab_base_1_1_bounds.html">babBase::Bounds</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structbab_base_1_1_bounds.html#a4b1a985eba004ed91b8383d2dde6224e">consistent</a></td><td class="entry"><a class="el" href="structbab_base_1_1_bounds.html">babBase::Bounds</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structbab_base_1_1_bounds.html#a41752124aaf238c73255f1941c861ce8">lower</a></td><td class="entry"><a class="el" href="structbab_base_1_1_bounds.html">babBase::Bounds</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structbab_base_1_1_bounds.html#a674305fe2e7e8b2f777cb32a1b9c28f7">operator&lt;&lt;</a>(std::ostream &amp;os, Bounds const &amp;b)</td><td class="entry"><a class="el" href="structbab_base_1_1_bounds.html">babBase::Bounds</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structbab_base_1_1_bounds.html#a415e0920d82d09ffc5798edb59e89093">operator=</a>(const Bounds &amp;)</td><td class="entry"><a class="el" href="structbab_base_1_1_bounds.html">babBase::Bounds</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
-  <tr><td class="entry"><a class="el" href="structbab_base_1_1_bounds.html#a275ca3ce07d64ce43824d7e673cfee6b">upper</a></td><td class="entry"><a class="el" href="structbab_base_1_1_bounds.html">babBase::Bounds</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structbab_base_1_1_bounds.html#aac75f501a93c1ba546d9e9d2263ad2f4">are_consistent</a>() const</td><td class="entry"><a class="el" href="structbab_base_1_1_bounds.html">babBase::Bounds</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structbab_base_1_1_bounds.html#a143d3617a4792c4ab189e372e8e0b681">Bounds</a>(const double lowerIn, const double upperIn)</td><td class="entry"><a class="el" href="structbab_base_1_1_bounds.html">babBase::Bounds</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structbab_base_1_1_bounds.html#ac371c3147b5737af08e1c03daf413c05">lower</a></td><td class="entry"><a class="el" href="structbab_base_1_1_bounds.html">babBase::Bounds</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structbab_base_1_1_bounds.html#a9f4758be8a66b8e7b034af1f04e19d1d">upper</a></td><td class="entry"><a class="el" href="structbab_base_1_1_bounds.html">babBase::Bounds</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -108,7 +104,7 @@ $(document).ready(function(){initNavTree('structbab_base_1_1_bounds.html','');})
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/structbab_base_1_1_bounds.html b/doc/html/structbab_base_1_1_bounds.html
index a1864aa37028ca940bc24a2bda07e38b4cca5fa6..0c730e693184e3ee4b6c1bbaf199cd526f9a63a6 100644
--- a/doc/html/structbab_base_1_1_bounds.html
+++ b/doc/html/structbab_base_1_1_bounds.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: babBase::Bounds Struct Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -89,8 +89,6 @@ $(document).ready(function(){initNavTree('structbab_base_1_1_bounds.html','');})
   <div class="summary">
 <a href="#pub-methods">Public Member Functions</a> &#124;
 <a href="#pub-attribs">Public Attributes</a> &#124;
-<a href="#pri-methods">Private Member Functions</a> &#124;
-<a href="#friends">Friends</a> &#124;
 <a href="structbab_base_1_1_bounds-members.html">List of all members</a>  </div>
   <div class="headertitle">
 <div class="title">babBase::Bounds Struct Reference</div>  </div>
@@ -100,44 +98,29 @@ $(document).ready(function(){initNavTree('structbab_base_1_1_bounds.html','');})
 <p>Auxiliary struct for representing bounds on an optimization variable.  
  <a href="structbab_base_1_1_bounds.html#details">More...</a></p>
 
-<p><code>#include &lt;<a class="el" href="bab_opt_var_8h_source.html">babOptVar.h</a>&gt;</code></p>
+<p><code>#include &lt;<a class="el" href="bab_bounds_8h_source.html">babBounds.h</a>&gt;</code></p>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
 <tr class="memitem:a143d3617a4792c4ab189e372e8e0b681"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbab_base_1_1_bounds.html#a143d3617a4792c4ab189e372e8e0b681">Bounds</a> (const double lowerIn, const double upperIn)</td></tr>
-<tr class="memdesc:a143d3617a4792c4ab189e372e8e0b681"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, checks that specified lower bound is smaller than upper bound (this information is only stored, but not acted upon)  <a href="#a143d3617a4792c4ab189e372e8e0b681">More...</a><br /></td></tr>
+<tr class="memdesc:a143d3617a4792c4ab189e372e8e0b681"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a143d3617a4792c4ab189e372e8e0b681">More...</a><br /></td></tr>
 <tr class="separator:a143d3617a4792c4ab189e372e8e0b681"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a58871ce4b6cf44aa16f6dd240fdeb295"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbab_base_1_1_bounds.html#a58871ce4b6cf44aa16f6dd240fdeb295">Bounds</a> (<a class="el" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;&amp;)=default</td></tr>
-<tr class="separator:a58871ce4b6cf44aa16f6dd240fdeb295"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af1d929f0940ec89277c8813e9f6e32eb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbab_base_1_1_bounds.html#af1d929f0940ec89277c8813e9f6e32eb">Bounds</a> (const <a class="el" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;)=default</td></tr>
-<tr class="separator:af1d929f0940ec89277c8813e9f6e32eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aac75f501a93c1ba546d9e9d2263ad2f4"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbab_base_1_1_bounds.html#aac75f501a93c1ba546d9e9d2263ad2f4">are_consistent</a> () const</td></tr>
+<tr class="memdesc:aac75f501a93c1ba546d9e9d2263ad2f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for querying whether the lower bound is less than or equal to the upper bound.  <a href="#aac75f501a93c1ba546d9e9d2263ad2f4">More...</a><br /></td></tr>
+<tr class="separator:aac75f501a93c1ba546d9e9d2263ad2f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
 Public Attributes</h2></td></tr>
-<tr class="memitem:a41752124aaf238c73255f1941c861ce8"><td class="memItemLeft" align="right" valign="top">const double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbab_base_1_1_bounds.html#a41752124aaf238c73255f1941c861ce8">lower</a></td></tr>
-<tr class="separator:a41752124aaf238c73255f1941c861ce8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a275ca3ce07d64ce43824d7e673cfee6b"><td class="memItemLeft" align="right" valign="top">const double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbab_base_1_1_bounds.html#a275ca3ce07d64ce43824d7e673cfee6b">upper</a></td></tr>
-<tr class="separator:a275ca3ce07d64ce43824d7e673cfee6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4b1a985eba004ed91b8383d2dde6224e"><td class="memItemLeft" align="right" valign="top">const double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbab_base_1_1_bounds.html#a4b1a985eba004ed91b8383d2dde6224e">consistent</a></td></tr>
-<tr class="separator:a4b1a985eba004ed91b8383d2dde6224e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
-Private Member Functions</h2></td></tr>
-<tr class="memitem:a415e0920d82d09ffc5798edb59e89093"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbab_base_1_1_bounds.html#a415e0920d82d09ffc5798edb59e89093">operator=</a> (const <a class="el" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;)</td></tr>
-<tr class="separator:a415e0920d82d09ffc5798edb59e89093"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
-Friends</h2></td></tr>
-<tr class="memitem:a674305fe2e7e8b2f777cb32a1b9c28f7"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbab_base_1_1_bounds.html#a674305fe2e7e8b2f777cb32a1b9c28f7">operator&lt;&lt;</a> (std::ostream &amp;os, <a class="el" href="structbab_base_1_1_bounds.html">Bounds</a> const &amp;b)</td></tr>
-<tr class="memdesc:a674305fe2e7e8b2f777cb32a1b9c28f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Overloaded outstream operator for nicer output.  <a href="#a674305fe2e7e8b2f777cb32a1b9c28f7">More...</a><br /></td></tr>
-<tr class="separator:a674305fe2e7e8b2f777cb32a1b9c28f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac371c3147b5737af08e1c03daf413c05"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbab_base_1_1_bounds.html#ac371c3147b5737af08e1c03daf413c05">lower</a></td></tr>
+<tr class="separator:ac371c3147b5737af08e1c03daf413c05"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9f4758be8a66b8e7b034af1f04e19d1d"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbab_base_1_1_bounds.html#a9f4758be8a66b8e7b034af1f04e19d1d">upper</a></td></tr>
+<tr class="separator:a9f4758be8a66b8e7b034af1f04e19d1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><p>Auxiliary struct for representing bounds on an optimization variable. </p>
-<p>This struct is only used to initialize optimization variables </p>
 </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
 <a id="a143d3617a4792c4ab189e372e8e0b681"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a143d3617a4792c4ab189e372e8e0b681">&#9670;&nbsp;</a></span>Bounds() <span class="overload">[1/3]</span></h2>
+<h2 class="memtitle"><span class="permalink"><a href="#a143d3617a4792c4ab189e372e8e0b681">&#9670;&nbsp;</a></span>Bounds()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -170,7 +153,7 @@ Friends</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Constructor, checks that specified lower bound is smaller than upper bound (this information is only stored, but not acted upon) </p>
+<p>Constructor. </p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">lowerIn</td><td>is the specified lower bound on the optimization variable </td></tr>
@@ -179,65 +162,11 @@ Friends</h2></td></tr>
   </dd>
 </dl>
 
-</div>
-</div>
-<a id="a58871ce4b6cf44aa16f6dd240fdeb295"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a58871ce4b6cf44aa16f6dd240fdeb295">&#9670;&nbsp;</a></span>Bounds() <span class="overload">[2/3]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">babBase::Bounds::Bounds </td>
-          <td>(</td>
-          <td class="paramtype"><a class="el" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;&amp;&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">default</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-<p>Default copy constructor </p>
-
-</div>
-</div>
-<a id="af1d929f0940ec89277c8813e9f6e32eb"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#af1d929f0940ec89277c8813e9f6e32eb">&#9670;&nbsp;</a></span>Bounds() <span class="overload">[3/3]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">babBase::Bounds::Bounds </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">default</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-<p>Default copy constructor </p>
-
 </div>
 </div>
 <h2 class="groupheader">Member Function Documentation</h2>
-<a id="a415e0920d82d09ffc5798edb59e89093"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a415e0920d82d09ffc5798edb59e89093">&#9670;&nbsp;</a></span>operator=()</h2>
+<a id="aac75f501a93c1ba546d9e9d2263ad2f4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aac75f501a93c1ba546d9e9d2263ad2f4">&#9670;&nbsp;</a></span>are_consistent()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -246,93 +175,32 @@ Friends</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="structbab_base_1_1_bounds.html">Bounds</a>&amp; babBase::Bounds::operator= </td>
+          <td class="memname">bool babBase::Bounds::are_consistent </td>
           <td>(</td>
-          <td class="paramtype">const <a class="el" href="structbab_base_1_1_bounds.html">Bounds</a> &amp;&#160;</td>
           <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">private</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-<p>default assignment operator declared private to prevent use </p>
-
-</div>
-</div>
-<h2 class="groupheader">Friends And Related Function Documentation</h2>
-<a id="a674305fe2e7e8b2f777cb32a1b9c28f7"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a674305fe2e7e8b2f777cb32a1b9c28f7">&#9670;&nbsp;</a></span>operator&lt;&lt;</h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">std::ostream&amp; operator&lt;&lt; </td>
-          <td>(</td>
-          <td class="paramtype">std::ostream &amp;&#160;</td>
-          <td class="paramname"><em>os</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype"><a class="el" href="structbab_base_1_1_bounds.html">Bounds</a> const &amp;&#160;</td>
-          <td class="paramname"><em>b</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
+          <td> const</td>
         </tr>
       </table>
   </td>
   <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">friend</span></span>  </td>
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
   </tr>
 </table>
 </div><div class="memdoc">
 
-<p>Overloaded outstream operator for nicer output. </p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramdir">[out]</td><td class="paramname">os</td><td>is the outstream to be written to </td></tr>
-    <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>are the bounds to be written </td></tr>
-  </table>
-  </dd>
-</dl>
+<p>Function for querying whether the lower bound is less than or equal to the upper bound. </p>
 
 </div>
 </div>
 <h2 class="groupheader">Member Data Documentation</h2>
-<a id="a4b1a985eba004ed91b8383d2dde6224e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a4b1a985eba004ed91b8383d2dde6224e">&#9670;&nbsp;</a></span>consistent</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">const double babBase::Bounds::consistent</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-<p>Flag indicating whether the bounds are consisten (i.e., lower&lt;=upper) </p>
-
-</div>
-</div>
-<a id="a41752124aaf238c73255f1941c861ce8"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a41752124aaf238c73255f1941c861ce8">&#9670;&nbsp;</a></span>lower</h2>
+<a id="ac371c3147b5737af08e1c03daf413c05"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac371c3147b5737af08e1c03daf413c05">&#9670;&nbsp;</a></span>lower</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">const double babBase::Bounds::lower</td>
+          <td class="memname">double babBase::Bounds::lower</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -340,14 +208,14 @@ Friends</h2></td></tr>
 
 </div>
 </div>
-<a id="a275ca3ce07d64ce43824d7e673cfee6b"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a275ca3ce07d64ce43824d7e673cfee6b">&#9670;&nbsp;</a></span>upper</h2>
+<a id="a9f4758be8a66b8e7b034af1f04e19d1d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9f4758be8a66b8e7b034af1f04e19d1d">&#9670;&nbsp;</a></span>upper</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">const double babBase::Bounds::upper</td>
+          <td class="memname">double babBase::Bounds::upper</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -356,7 +224,7 @@ Friends</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this struct was generated from the following file:<ul>
-<li>C:/Users/dobo01/maingo/dep/babbase/inc/<a class="el" href="bab_opt_var_8h_source.html">babOptVar.h</a></li>
+<li>C:/dobo01/maingo/dep/babbase/inc/<a class="el" href="bab_bounds_8h_source.html">babBounds.h</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -366,7 +234,7 @@ Friends</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacebab_base.html">babBase</a></li><li class="navelem"><a class="el" href="structbab_base_1_1_bounds.html">Bounds</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/structbab_base_1_1_bounds.js b/doc/html/structbab_base_1_1_bounds.js
index f975dacf04c932b7432628de14bf2c657515bfcd..ce7ebcb51f905b04b2a1cd90b6558992cb6d39b2 100644
--- a/doc/html/structbab_base_1_1_bounds.js
+++ b/doc/html/structbab_base_1_1_bounds.js
@@ -1,11 +1,7 @@
 var structbab_base_1_1_bounds =
 [
     [ "Bounds", "structbab_base_1_1_bounds.html#a143d3617a4792c4ab189e372e8e0b681", null ],
-    [ "Bounds", "structbab_base_1_1_bounds.html#a58871ce4b6cf44aa16f6dd240fdeb295", null ],
-    [ "Bounds", "structbab_base_1_1_bounds.html#af1d929f0940ec89277c8813e9f6e32eb", null ],
-    [ "operator=", "structbab_base_1_1_bounds.html#a415e0920d82d09ffc5798edb59e89093", null ],
-    [ "operator<<", "structbab_base_1_1_bounds.html#a674305fe2e7e8b2f777cb32a1b9c28f7", null ],
-    [ "consistent", "structbab_base_1_1_bounds.html#a4b1a985eba004ed91b8383d2dde6224e", null ],
-    [ "lower", "structbab_base_1_1_bounds.html#a41752124aaf238c73255f1941c861ce8", null ],
-    [ "upper", "structbab_base_1_1_bounds.html#a275ca3ce07d64ce43824d7e673cfee6b", null ]
+    [ "are_consistent", "structbab_base_1_1_bounds.html#aac75f501a93c1ba546d9e9d2263ad2f4", null ],
+    [ "lower", "structbab_base_1_1_bounds.html#ac371c3147b5737af08e1c03daf413c05", null ],
+    [ "upper", "structbab_base_1_1_bounds.html#a9f4758be8a66b8e7b034af1f04e19d1d", null ]
 ];
\ No newline at end of file
diff --git a/doc/html/structbab_base_1_1_branching_history_info-members.html b/doc/html/structbab_base_1_1_branching_history_info-members.html
index fd579599927e7e51192e7e786502ddc07fdadcb2..6fa6080fb146c5fd203d6ecc33e0f19973e16906 100644
--- a/doc/html/structbab_base_1_1_branching_history_info-members.html
+++ b/doc/html/structbab_base_1_1_branching_history_info-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -106,7 +106,7 @@ $(document).ready(function(){initNavTree('structbab_base_1_1_branching_history_i
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/structbab_base_1_1_branching_history_info.html b/doc/html/structbab_base_1_1_branching_history_info.html
index 77333757059a94cf5836295773d4cf8c189435e7..7dc495687084512f0f96e1261571aace6df3e672 100644
--- a/doc/html/structbab_base_1_1_branching_history_info.html
+++ b/doc/html/structbab_base_1_1_branching_history_info.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: babBase::BranchingHistoryInfo Struct Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -231,7 +231,7 @@ Public Attributes</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this struct was generated from the following file:<ul>
-<li>C:/Users/dobo01/maingo/dep/babbase/inc/<a class="el" href="bab_tree_8h_source.html">babTree.h</a></li>
+<li>C:/dobo01/maingo/dep/babbase/inc/<a class="el" href="bab_tree_8h_source.html">babTree.h</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -241,7 +241,7 @@ Public Attributes</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacebab_base.html">babBase</a></li><li class="navelem"><a class="el" href="structbab_base_1_1_branching_history_info.html">BranchingHistoryInfo</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/structbab_base_1_1_node_priority_comparator-members.html b/doc/html/structbab_base_1_1_node_priority_comparator-members.html
index 6a0329266760d9a3cddab5d6ba96f3d245aeba71..a37df7283b126fc4d72df6ee63ee834d4a34aaf8 100644
--- a/doc/html/structbab_base_1_1_node_priority_comparator-members.html
+++ b/doc/html/structbab_base_1_1_node_priority_comparator-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -101,7 +101,7 @@ $(document).ready(function(){initNavTree('structbab_base_1_1_node_priority_compa
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/structbab_base_1_1_node_priority_comparator.html b/doc/html/structbab_base_1_1_node_priority_comparator.html
index 12c89c7f01d8c67f3e462dc3f4d20ab3f470803b..7b4184e74486e895b577ce88143e11d34b8589c6 100644
--- a/doc/html/structbab_base_1_1_node_priority_comparator.html
+++ b/doc/html/structbab_base_1_1_node_priority_comparator.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: babBase::NodePriorityComparator Struct Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -156,7 +156,7 @@ Public Member Functions</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this struct was generated from the following file:<ul>
-<li>C:/Users/dobo01/maingo/dep/babbase/inc/<a class="el" href="bab_tree_8h_source.html">babTree.h</a></li>
+<li>C:/dobo01/maingo/dep/babbase/inc/<a class="el" href="bab_tree_8h_source.html">babTree.h</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -166,7 +166,7 @@ Public Member Functions</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacebab_base.html">babBase</a></li><li class="navelem"><a class="el" href="structbab_base_1_1_node_priority_comparator.html">NodePriorityComparator</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/structbab_base_1_1_pruning_score_comparator-members.html b/doc/html/structbab_base_1_1_pruning_score_comparator-members.html
index 421cb10b9c4fa881e7c8bd2ab7bbc7be4b612844..7fd6b364fc4c8e1f300109e654a658326d5ebb40 100644
--- a/doc/html/structbab_base_1_1_pruning_score_comparator-members.html
+++ b/doc/html/structbab_base_1_1_pruning_score_comparator-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -101,7 +101,7 @@ $(document).ready(function(){initNavTree('structbab_base_1_1_pruning_score_compa
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/structbab_base_1_1_pruning_score_comparator.html b/doc/html/structbab_base_1_1_pruning_score_comparator.html
index fb7ae8c6bd4ffea77f7e9918367a6a5b871bc345..182c2db9079c92c0d572d779b154006319cb1056 100644
--- a/doc/html/structbab_base_1_1_pruning_score_comparator.html
+++ b/doc/html/structbab_base_1_1_pruning_score_comparator.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: babBase::PruningScoreComparator Struct Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -156,7 +156,7 @@ Public Member Functions</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this struct was generated from the following file:<ul>
-<li>C:/Users/dobo01/maingo/dep/babbase/inc/<a class="el" href="bab_tree_8h_source.html">babTree.h</a></li>
+<li>C:/dobo01/maingo/dep/babbase/inc/<a class="el" href="bab_tree_8h_source.html">babTree.h</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -166,7 +166,7 @@ Public Member Functions</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacebab_base.html">babBase</a></li><li class="navelem"><a class="el" href="structbab_base_1_1_pruning_score_comparator.html">PruningScoreComparator</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/structmaingo_1_1_constraint-members.html b/doc/html/structmaingo_1_1_constraint-members.html
index e0a1e7ecc6617e2c7fc686cccafdf599a32c2efb..26330c2dcf42de9d5fd434a13adbea3638b023ee 100644
--- a/doc/html/structmaingo_1_1_constraint-members.html
+++ b/doc/html/structmaingo_1_1_constraint-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -124,7 +124,7 @@ $(document).ready(function(){initNavTree('structmaingo_1_1_constraint.html','');
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/structmaingo_1_1_constraint.html b/doc/html/structmaingo_1_1_constraint.html
index dd78d3fad552f13b45fa9f71f0bb80c1aea7307c..6a3314910f1d06471353933e8717b50a306d05d0 100644
--- a/doc/html/structmaingo_1_1_constraint.html
+++ b/doc/html/structmaingo_1_1_constraint.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::Constraint Struct Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -674,7 +674,7 @@ Public Attributes</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this struct was generated from the following file:<ul>
-<li>C:/Users/dobo01/maingo/inc/<a class="el" href="constraint_8h_source.html">constraint.h</a></li>
+<li>C:/dobo01/maingo/inc/<a class="el" href="constraint_8h_source.html">constraint.h</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -684,7 +684,7 @@ Public Attributes</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="structmaingo_1_1_constraint.html">Constraint</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/structmaingo_1_1_constraint_container-members.html b/doc/html/structmaingo_1_1_constraint_container-members.html
index 467d0920a9112711c56efed376a74d2fcd23347f..58d307f76bfab4bc9d27b49ee60748c4d2edd5d0 100644
--- a/doc/html/structmaingo_1_1_constraint_container-members.html
+++ b/doc/html/structmaingo_1_1_constraint_container-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -102,7 +102,7 @@ $(document).ready(function(){initNavTree('structmaingo_1_1_constraint_container.
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/structmaingo_1_1_constraint_container.html b/doc/html/structmaingo_1_1_constraint_container.html
index 778837a6921b4b8f522eaf26bc9c14e14bdb06ec..d977a6b6847c666cafdb7665627f9f6b9ef603ba 100644
--- a/doc/html/structmaingo_1_1_constraint_container.html
+++ b/doc/html/structmaingo_1_1_constraint_container.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::ConstraintContainer Struct Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -140,7 +140,7 @@ Public Attributes</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this struct was generated from the following file:<ul>
-<li>C:/Users/dobo01/maingo/inc/<a class="el" href="_m_ai_n_g_oevaluator_8h_source.html">MAiNGOevaluator.h</a></li>
+<li>C:/dobo01/maingo/inc/<a class="el" href="_m_ai_n_g_oevaluator_8h_source.html">MAiNGOevaluator.h</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -150,7 +150,7 @@ Public Attributes</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="structmaingo_1_1_constraint_container.html">ConstraintContainer</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/structmaingo_1_1_evaluation_container-members.html b/doc/html/structmaingo_1_1_evaluation_container-members.html
index 4804561eadb5408cb223d6b391d9aca31c83d8ba..976f73be7072b74ce0e39c9103873adb3e28e6ae 100644
--- a/doc/html/structmaingo_1_1_evaluation_container-members.html
+++ b/doc/html/structmaingo_1_1_evaluation_container-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -94,12 +94,12 @@ $(document).ready(function(){initNavTree('structmaingo_1_1_evaluation_container.
 <p>This is the complete list of members for <a class="el" href="structmaingo_1_1_evaluation_container.html">maingo::EvaluationContainer</a>, including all inherited members.</p>
 <table class="directory">
   <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_evaluation_container.html#ab9eb3ecf31c9d5d48ccb04880a635819">clear</a>()</td><td class="entry"><a class="el" href="structmaingo_1_1_evaluation_container.html">maingo::EvaluationContainer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="structmaingo_1_1_evaluation_container.html#a9c91e67852946ccb7381351512875a06">eq</a></td><td class="entry"><a class="el" href="structmaingo_1_1_evaluation_container.html">maingo::EvaluationContainer</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_evaluation_container.html#afd4671f76d0f58502f7f8a36bc574642">eqRelaxationOnly</a></td><td class="entry"><a class="el" href="structmaingo_1_1_evaluation_container.html">maingo::EvaluationContainer</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structmaingo_1_1_evaluation_container.html#a6871b7430185e5c4152b941720b606f3">ineq</a></td><td class="entry"><a class="el" href="structmaingo_1_1_evaluation_container.html">maingo::EvaluationContainer</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_evaluation_container.html#af754c93b79ce6fa668c17d2fd26c812b">ineqRelaxationOnly</a></td><td class="entry"><a class="el" href="structmaingo_1_1_evaluation_container.html">maingo::EvaluationContainer</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structmaingo_1_1_evaluation_container.html#aa40bfc61f94bf6850d3ee53db7e2afeb">ineqSquash</a></td><td class="entry"><a class="el" href="structmaingo_1_1_evaluation_container.html">maingo::EvaluationContainer</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_evaluation_container.html#af0c40f10ae5192b4bb6478138c6ad1a0">objective</a></td><td class="entry"><a class="el" href="structmaingo_1_1_evaluation_container.html">maingo::EvaluationContainer</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structmaingo_1_1_evaluation_container.html#ad71555eb350bbd6deb14d47559a6fa6d">eq</a></td><td class="entry"><a class="el" href="structmaingo_1_1_evaluation_container.html">maingo::EvaluationContainer</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_evaluation_container.html#a564d618660f9675c33900127aa686f38">eqRelaxationOnly</a></td><td class="entry"><a class="el" href="structmaingo_1_1_evaluation_container.html">maingo::EvaluationContainer</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structmaingo_1_1_evaluation_container.html#af3256dbd0be5bea52c3a994da7082ea4">ineq</a></td><td class="entry"><a class="el" href="structmaingo_1_1_evaluation_container.html">maingo::EvaluationContainer</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_evaluation_container.html#acf712256b2506b6388af16e648a04fae">ineqRelaxationOnly</a></td><td class="entry"><a class="el" href="structmaingo_1_1_evaluation_container.html">maingo::EvaluationContainer</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structmaingo_1_1_evaluation_container.html#af9572d873db6d0ebd0402cbc3539e8ee">ineqSquash</a></td><td class="entry"><a class="el" href="structmaingo_1_1_evaluation_container.html">maingo::EvaluationContainer</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_evaluation_container.html#ac13bde03d078f5c9402cce551a161024">objective</a></td><td class="entry"><a class="el" href="structmaingo_1_1_evaluation_container.html">maingo::EvaluationContainer</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="structmaingo_1_1_evaluation_container.html#a86a57d19de362bd56b022103b14bd793">output</a></td><td class="entry"><a class="el" href="structmaingo_1_1_evaluation_container.html">maingo::EvaluationContainer</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
@@ -108,7 +108,7 @@ $(document).ready(function(){initNavTree('structmaingo_1_1_evaluation_container.
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/structmaingo_1_1_evaluation_container.html b/doc/html/structmaingo_1_1_evaluation_container.html
index ef14fef1dd2a3f2a0d12905ec81657bfad5ad7ae..beccffde86be52edcfe138ff4cbab808e2eb67e0 100644
--- a/doc/html/structmaingo_1_1_evaluation_container.html
+++ b/doc/html/structmaingo_1_1_evaluation_container.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::EvaluationContainer Struct Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -108,18 +108,18 @@ Public Member Functions</h2></td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
 Public Attributes</h2></td></tr>
-<tr class="memitem:af0c40f10ae5192b4bb6478138c6ad1a0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1model_function.html">modelFunction</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_evaluation_container.html#af0c40f10ae5192b4bb6478138c6ad1a0">objective</a></td></tr>
-<tr class="separator:af0c40f10ae5192b4bb6478138c6ad1a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6871b7430185e5c4152b941720b606f3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1model_function.html">modelFunction</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_evaluation_container.html#a6871b7430185e5c4152b941720b606f3">ineq</a></td></tr>
-<tr class="separator:a6871b7430185e5c4152b941720b606f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9c91e67852946ccb7381351512875a06"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1model_function.html">modelFunction</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_evaluation_container.html#a9c91e67852946ccb7381351512875a06">eq</a></td></tr>
-<tr class="separator:a9c91e67852946ccb7381351512875a06"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af754c93b79ce6fa668c17d2fd26c812b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1model_function.html">modelFunction</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_evaluation_container.html#af754c93b79ce6fa668c17d2fd26c812b">ineqRelaxationOnly</a></td></tr>
-<tr class="separator:af754c93b79ce6fa668c17d2fd26c812b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:afd4671f76d0f58502f7f8a36bc574642"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1model_function.html">modelFunction</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_evaluation_container.html#afd4671f76d0f58502f7f8a36bc574642">eqRelaxationOnly</a></td></tr>
-<tr class="separator:afd4671f76d0f58502f7f8a36bc574642"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa40bfc61f94bf6850d3ee53db7e2afeb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1model_function.html">modelFunction</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_evaluation_container.html#aa40bfc61f94bf6850d3ee53db7e2afeb">ineqSquash</a></td></tr>
-<tr class="separator:aa40bfc61f94bf6850d3ee53db7e2afeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac13bde03d078f5c9402cce551a161024"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1_model_function.html">ModelFunction</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_evaluation_container.html#ac13bde03d078f5c9402cce551a161024">objective</a></td></tr>
+<tr class="separator:ac13bde03d078f5c9402cce551a161024"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af3256dbd0be5bea52c3a994da7082ea4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1_model_function.html">ModelFunction</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_evaluation_container.html#af3256dbd0be5bea52c3a994da7082ea4">ineq</a></td></tr>
+<tr class="separator:af3256dbd0be5bea52c3a994da7082ea4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad71555eb350bbd6deb14d47559a6fa6d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1_model_function.html">ModelFunction</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_evaluation_container.html#ad71555eb350bbd6deb14d47559a6fa6d">eq</a></td></tr>
+<tr class="separator:ad71555eb350bbd6deb14d47559a6fa6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acf712256b2506b6388af16e648a04fae"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1_model_function.html">ModelFunction</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_evaluation_container.html#acf712256b2506b6388af16e648a04fae">ineqRelaxationOnly</a></td></tr>
+<tr class="separator:acf712256b2506b6388af16e648a04fae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a564d618660f9675c33900127aa686f38"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1_model_function.html">ModelFunction</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_evaluation_container.html#a564d618660f9675c33900127aa686f38">eqRelaxationOnly</a></td></tr>
+<tr class="separator:a564d618660f9675c33900127aa686f38"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af9572d873db6d0ebd0402cbc3539e8ee"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1_model_function.html">ModelFunction</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_evaluation_container.html#af9572d873db6d0ebd0402cbc3539e8ee">ineqSquash</a></td></tr>
+<tr class="separator:af9572d873db6d0ebd0402cbc3539e8ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a86a57d19de362bd56b022103b14bd793"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structmaingo_1_1_output_variable.html">OutputVariable</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_evaluation_container.html#a86a57d19de362bd56b022103b14bd793">output</a></td></tr>
 <tr class="separator:a86a57d19de362bd56b022103b14bd793"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
@@ -155,14 +155,14 @@ Public Attributes</h2></td></tr>
 </div>
 </div>
 <h2 class="groupheader">Member Data Documentation</h2>
-<a id="a9c91e67852946ccb7381351512875a06"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a9c91e67852946ccb7381351512875a06">&#9670;&nbsp;</a></span>eq</h2>
+<a id="ad71555eb350bbd6deb14d47559a6fa6d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad71555eb350bbd6deb14d47559a6fa6d">&#9670;&nbsp;</a></span>eq</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="structmaingo_1_1model_function.html">modelFunction</a> maingo::EvaluationContainer::eq</td>
+          <td class="memname"><a class="el" href="structmaingo_1_1_model_function.html">ModelFunction</a> maingo::EvaluationContainer::eq</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -170,14 +170,14 @@ Public Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="afd4671f76d0f58502f7f8a36bc574642"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#afd4671f76d0f58502f7f8a36bc574642">&#9670;&nbsp;</a></span>eqRelaxationOnly</h2>
+<a id="a564d618660f9675c33900127aa686f38"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a564d618660f9675c33900127aa686f38">&#9670;&nbsp;</a></span>eqRelaxationOnly</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="structmaingo_1_1model_function.html">modelFunction</a> maingo::EvaluationContainer::eqRelaxationOnly</td>
+          <td class="memname"><a class="el" href="structmaingo_1_1_model_function.html">ModelFunction</a> maingo::EvaluationContainer::eqRelaxationOnly</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -185,14 +185,14 @@ Public Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="a6871b7430185e5c4152b941720b606f3"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a6871b7430185e5c4152b941720b606f3">&#9670;&nbsp;</a></span>ineq</h2>
+<a id="af3256dbd0be5bea52c3a994da7082ea4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af3256dbd0be5bea52c3a994da7082ea4">&#9670;&nbsp;</a></span>ineq</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="structmaingo_1_1model_function.html">modelFunction</a> maingo::EvaluationContainer::ineq</td>
+          <td class="memname"><a class="el" href="structmaingo_1_1_model_function.html">ModelFunction</a> maingo::EvaluationContainer::ineq</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -200,14 +200,14 @@ Public Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="af754c93b79ce6fa668c17d2fd26c812b"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#af754c93b79ce6fa668c17d2fd26c812b">&#9670;&nbsp;</a></span>ineqRelaxationOnly</h2>
+<a id="acf712256b2506b6388af16e648a04fae"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acf712256b2506b6388af16e648a04fae">&#9670;&nbsp;</a></span>ineqRelaxationOnly</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="structmaingo_1_1model_function.html">modelFunction</a> maingo::EvaluationContainer::ineqRelaxationOnly</td>
+          <td class="memname"><a class="el" href="structmaingo_1_1_model_function.html">ModelFunction</a> maingo::EvaluationContainer::ineqRelaxationOnly</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -215,14 +215,14 @@ Public Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="aa40bfc61f94bf6850d3ee53db7e2afeb"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aa40bfc61f94bf6850d3ee53db7e2afeb">&#9670;&nbsp;</a></span>ineqSquash</h2>
+<a id="af9572d873db6d0ebd0402cbc3539e8ee"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af9572d873db6d0ebd0402cbc3539e8ee">&#9670;&nbsp;</a></span>ineqSquash</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="structmaingo_1_1model_function.html">modelFunction</a> maingo::EvaluationContainer::ineqSquash</td>
+          <td class="memname"><a class="el" href="structmaingo_1_1_model_function.html">ModelFunction</a> maingo::EvaluationContainer::ineqSquash</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -230,14 +230,14 @@ Public Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="af0c40f10ae5192b4bb6478138c6ad1a0"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#af0c40f10ae5192b4bb6478138c6ad1a0">&#9670;&nbsp;</a></span>objective</h2>
+<a id="ac13bde03d078f5c9402cce551a161024"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac13bde03d078f5c9402cce551a161024">&#9670;&nbsp;</a></span>objective</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="structmaingo_1_1model_function.html">modelFunction</a> maingo::EvaluationContainer::objective</td>
+          <td class="memname"><a class="el" href="structmaingo_1_1_model_function.html">ModelFunction</a> maingo::EvaluationContainer::objective</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -261,7 +261,7 @@ Public Attributes</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this struct was generated from the following file:<ul>
-<li>C:/Users/dobo01/maingo/inc/<a class="el" href="evaluation_container_8h_source.html">evaluationContainer.h</a></li>
+<li>C:/dobo01/maingo/inc/<a class="el" href="evaluation_container_8h_source.html">evaluationContainer.h</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -271,7 +271,7 @@ Public Attributes</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="structmaingo_1_1_evaluation_container.html">EvaluationContainer</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/structmaingo_1_1_evaluation_container.js b/doc/html/structmaingo_1_1_evaluation_container.js
index a13bc9f2e79330a8ac54bd77c4b826d50a10817e..4ac6c8bc517f340e67a422b404e52a4f21454e7d 100644
--- a/doc/html/structmaingo_1_1_evaluation_container.js
+++ b/doc/html/structmaingo_1_1_evaluation_container.js
@@ -1,11 +1,11 @@
 var structmaingo_1_1_evaluation_container =
 [
     [ "clear", "structmaingo_1_1_evaluation_container.html#ab9eb3ecf31c9d5d48ccb04880a635819", null ],
-    [ "eq", "structmaingo_1_1_evaluation_container.html#a9c91e67852946ccb7381351512875a06", null ],
-    [ "eqRelaxationOnly", "structmaingo_1_1_evaluation_container.html#afd4671f76d0f58502f7f8a36bc574642", null ],
-    [ "ineq", "structmaingo_1_1_evaluation_container.html#a6871b7430185e5c4152b941720b606f3", null ],
-    [ "ineqRelaxationOnly", "structmaingo_1_1_evaluation_container.html#af754c93b79ce6fa668c17d2fd26c812b", null ],
-    [ "ineqSquash", "structmaingo_1_1_evaluation_container.html#aa40bfc61f94bf6850d3ee53db7e2afeb", null ],
-    [ "objective", "structmaingo_1_1_evaluation_container.html#af0c40f10ae5192b4bb6478138c6ad1a0", null ],
+    [ "eq", "structmaingo_1_1_evaluation_container.html#ad71555eb350bbd6deb14d47559a6fa6d", null ],
+    [ "eqRelaxationOnly", "structmaingo_1_1_evaluation_container.html#a564d618660f9675c33900127aa686f38", null ],
+    [ "ineq", "structmaingo_1_1_evaluation_container.html#af3256dbd0be5bea52c3a994da7082ea4", null ],
+    [ "ineqRelaxationOnly", "structmaingo_1_1_evaluation_container.html#acf712256b2506b6388af16e648a04fae", null ],
+    [ "ineqSquash", "structmaingo_1_1_evaluation_container.html#af9572d873db6d0ebd0402cbc3539e8ee", null ],
+    [ "objective", "structmaingo_1_1_evaluation_container.html#ac13bde03d078f5c9402cce551a161024", null ],
     [ "output", "structmaingo_1_1_evaluation_container.html#a86a57d19de362bd56b022103b14bd793", null ]
 ];
\ No newline at end of file
diff --git a/doc/html/structmaingo_1_1_model_function-members.html b/doc/html/structmaingo_1_1_model_function-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..1e77d9dc24c7876c56bdb463b7a6416fbce92c0d
--- /dev/null
+++ b/doc/html/structmaingo_1_1_model_function-members.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>MAiNGO: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(initResizable);
+/* @license-end */</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><img alt="Logo" src="mango_only.png"/></td>
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">MAiNGO
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(document).ready(function(){initNavTree('structmaingo_1_1_model_function.html','');});
+/* @license-end */
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">maingo::ModelFunction Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="structmaingo_1_1_model_function.html">maingo::ModelFunction</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html#ac53aa934e420edd2363328a685a35170">at</a>(const unsigned int i)</td><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html">maingo::ModelFunction</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html#aadda375307d57abd5a7e1c3f8fee2289">clear</a>()</td><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html">maingo::ModelFunction</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html#a59519941d0bb502f58c197894c6a0d2a">ModelFunction</a>()=default</td><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html">maingo::ModelFunction</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html#a6ac6b2b399d045f9a4178db4a4a4b212">ModelFunction</a>(const ModelFunction &amp;)=default</td><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html">maingo::ModelFunction</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html#a51752162c6f7c51938623341c9d92f50">ModelFunction</a>(ModelFunction &amp;&amp;)=default</td><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html">maingo::ModelFunction</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html#a2a99a82296b2b73f9375c1396d40d2b4">ModelFunction</a>(const mc::FFVar var)</td><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html">maingo::ModelFunction</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html#a99dfad4b58342d3f6bf80813369f079e">ModelFunction</a>(const mc::FFVar var, const std::string &amp;str)</td><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html">maingo::ModelFunction</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html#a643e6d2e6cb1a5d78eae384361be9d72">ModelFunction</a>(const std::vector&lt; mc::FFVar &gt; &amp;vars)</td><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html">maingo::ModelFunction</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html#acb85f5084123b7d4d42c2d0e03b3e7c6">name</a></td><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html">maingo::ModelFunction</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html#a2dad7f76d791717fc532cd4e1eab37b2">operator=</a>(const ModelFunction &amp;)=default</td><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html">maingo::ModelFunction</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html#a1575a658d24ba107ff73f583e7c4eaca">operator=</a>(ModelFunction &amp;&amp;)=default</td><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html">maingo::ModelFunction</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html#a93e188a00ecf49b5dc85f9a58ab7c9f7">operator=</a>(const mc::FFVar var)</td><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html">maingo::ModelFunction</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html#a2cd284c38a9f30f487ad0481fcfaa363">operator==</a>(const ModelFunction &amp;other) const</td><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html">maingo::ModelFunction</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html#a28a2c95923dee0d58ca16ba62b02e10a">operator[]</a>(const unsigned int i)</td><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html">maingo::ModelFunction</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html#a351a87d89c0212305c3e477d692aedbb">push_back</a>(const mc::FFVar var)</td><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html">maingo::ModelFunction</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html#af1e48836d22ea8f0dcc46d8622800058">push_back</a>(const mc::FFVar var, const std::string &amp;str)</td><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html">maingo::ModelFunction</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html#af7fe04e13594b729a7fe3cde9caedbc3">push_back</a>(const std::vector&lt; mc::FFVar &gt; &amp;vars)</td><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html">maingo::ModelFunction</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html#ad07bf75626a6914c9f15b23fa5ec518e">push_back</a>(const std::vector&lt; mc::FFVar &gt; &amp;vars, const std::string &amp;baseName)</td><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html">maingo::ModelFunction</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html#a925155d044f3f8e24cd55150bb668683">resize</a>(const size_t size)</td><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html">maingo::ModelFunction</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html#a77f51cfc74b6f5dc0b1a8919b01f3333">set_name</a>(const std::string str, const unsigned i)</td><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html">maingo::ModelFunction</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html#a0af1f22b1bc87961451c52913567a4fd">set_value</a>(const mc::FFVar var, const unsigned i)</td><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html">maingo::ModelFunction</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html#a8c2f2e692410848475b8c5caffcf5e51">size</a>() const</td><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html">maingo::ModelFunction</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html#a3468e730a934be8be5bf5ee2f84aacc7">value</a></td><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html">maingo::ModelFunction</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html#af5cbeca4a2b4e75d111e6073e9351a8b">~ModelFunction</a>()=default</td><td class="entry"><a class="el" href="structmaingo_1_1_model_function.html">maingo::ModelFunction</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="footer">Generated by
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/doc/html/structmaingo_1_1_model_function.html b/doc/html/structmaingo_1_1_model_function.html
new file mode 100644
index 0000000000000000000000000000000000000000..e592fceee3a2c72db7c7063334957ce81bddcb08
--- /dev/null
+++ b/doc/html/structmaingo_1_1_model_function.html
@@ -0,0 +1,873 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>MAiNGO: maingo::ModelFunction Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+  $(document).ready(initResizable);
+/* @license-end */</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectlogo"><img alt="Logo" src="mango_only.png"/></td>
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">MAiNGO
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(document).ready(function(){initNavTree('structmaingo_1_1_model_function.html','');});
+/* @license-end */
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-attribs">Public Attributes</a> &#124;
+<a href="structmaingo_1_1_model_function-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">maingo::ModelFunction Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Struct for making work with the <a class="el" href="structmaingo_1_1_evaluation_container.html" title="Struct for storing the values returned by model evaluation at the given point &quot;var&quot;. ">EvaluationContainer</a> easier for the user and also to ensure backward compatibility.  
+ <a href="structmaingo_1_1_model_function.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="evaluation_container_8h_source.html">evaluationContainer.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a59519941d0bb502f58c197894c6a0d2a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_model_function.html#a59519941d0bb502f58c197894c6a0d2a">ModelFunction</a> ()=default</td></tr>
+<tr class="separator:a59519941d0bb502f58c197894c6a0d2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5cbeca4a2b4e75d111e6073e9351a8b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_model_function.html#af5cbeca4a2b4e75d111e6073e9351a8b">~ModelFunction</a> ()=default</td></tr>
+<tr class="separator:af5cbeca4a2b4e75d111e6073e9351a8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6ac6b2b399d045f9a4178db4a4a4b212"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_model_function.html#a6ac6b2b399d045f9a4178db4a4a4b212">ModelFunction</a> (const <a class="el" href="structmaingo_1_1_model_function.html">ModelFunction</a> &amp;)=default</td></tr>
+<tr class="separator:a6ac6b2b399d045f9a4178db4a4a4b212"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a51752162c6f7c51938623341c9d92f50"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_model_function.html#a51752162c6f7c51938623341c9d92f50">ModelFunction</a> (<a class="el" href="structmaingo_1_1_model_function.html">ModelFunction</a> &amp;&amp;)=default</td></tr>
+<tr class="separator:a51752162c6f7c51938623341c9d92f50"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2dad7f76d791717fc532cd4e1eab37b2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1_model_function.html">ModelFunction</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_model_function.html#a2dad7f76d791717fc532cd4e1eab37b2">operator=</a> (const <a class="el" href="structmaingo_1_1_model_function.html">ModelFunction</a> &amp;)=default</td></tr>
+<tr class="separator:a2dad7f76d791717fc532cd4e1eab37b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1575a658d24ba107ff73f583e7c4eaca"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1_model_function.html">ModelFunction</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_model_function.html#a1575a658d24ba107ff73f583e7c4eaca">operator=</a> (<a class="el" href="structmaingo_1_1_model_function.html">ModelFunction</a> &amp;&amp;)=default</td></tr>
+<tr class="separator:a1575a658d24ba107ff73f583e7c4eaca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2a99a82296b2b73f9375c1396d40d2b4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_model_function.html#a2a99a82296b2b73f9375c1396d40d2b4">ModelFunction</a> (const mc::FFVar var)</td></tr>
+<tr class="memdesc:a2a99a82296b2b73f9375c1396d40d2b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor with FFVar value only.  <a href="#a2a99a82296b2b73f9375c1396d40d2b4">More...</a><br /></td></tr>
+<tr class="separator:a2a99a82296b2b73f9375c1396d40d2b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a99dfad4b58342d3f6bf80813369f079e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_model_function.html#a99dfad4b58342d3f6bf80813369f079e">ModelFunction</a> (const mc::FFVar var, const std::string &amp;str)</td></tr>
+<tr class="memdesc:a99dfad4b58342d3f6bf80813369f079e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor with FFVar value and a name.  <a href="#a99dfad4b58342d3f6bf80813369f079e">More...</a><br /></td></tr>
+<tr class="separator:a99dfad4b58342d3f6bf80813369f079e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a643e6d2e6cb1a5d78eae384361be9d72"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_model_function.html#a643e6d2e6cb1a5d78eae384361be9d72">ModelFunction</a> (const std::vector&lt; mc::FFVar &gt; &amp;vars)</td></tr>
+<tr class="memdesc:a643e6d2e6cb1a5d78eae384361be9d72"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor with vector of FFVar.  <a href="#a643e6d2e6cb1a5d78eae384361be9d72">More...</a><br /></td></tr>
+<tr class="separator:a643e6d2e6cb1a5d78eae384361be9d72"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aadda375307d57abd5a7e1c3f8fee2289"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_model_function.html#aadda375307d57abd5a7e1c3f8fee2289">clear</a> ()</td></tr>
+<tr class="memdesc:aadda375307d57abd5a7e1c3f8fee2289"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function deleting everything in the model function.  <a href="#aadda375307d57abd5a7e1c3f8fee2289">More...</a><br /></td></tr>
+<tr class="separator:aadda375307d57abd5a7e1c3f8fee2289"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a351a87d89c0212305c3e477d692aedbb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_model_function.html#a351a87d89c0212305c3e477d692aedbb">push_back</a> (const mc::FFVar var)</td></tr>
+<tr class="memdesc:a351a87d89c0212305c3e477d692aedbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for inserting a FFVar value at the end of the value vector.  <a href="#a351a87d89c0212305c3e477d692aedbb">More...</a><br /></td></tr>
+<tr class="separator:a351a87d89c0212305c3e477d692aedbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af1e48836d22ea8f0dcc46d8622800058"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_model_function.html#af1e48836d22ea8f0dcc46d8622800058">push_back</a> (const mc::FFVar var, const std::string &amp;str)</td></tr>
+<tr class="memdesc:af1e48836d22ea8f0dcc46d8622800058"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for inserting a FFVar and a name at the end of the vectors.  <a href="#af1e48836d22ea8f0dcc46d8622800058">More...</a><br /></td></tr>
+<tr class="separator:af1e48836d22ea8f0dcc46d8622800058"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af7fe04e13594b729a7fe3cde9caedbc3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_model_function.html#af7fe04e13594b729a7fe3cde9caedbc3">push_back</a> (const std::vector&lt; mc::FFVar &gt; &amp;vars)</td></tr>
+<tr class="memdesc:af7fe04e13594b729a7fe3cde9caedbc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for inserting a vector of FFVar at the end of the value vector.  <a href="#af7fe04e13594b729a7fe3cde9caedbc3">More...</a><br /></td></tr>
+<tr class="separator:af7fe04e13594b729a7fe3cde9caedbc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad07bf75626a6914c9f15b23fa5ec518e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_model_function.html#ad07bf75626a6914c9f15b23fa5ec518e">push_back</a> (const std::vector&lt; mc::FFVar &gt; &amp;vars, const std::string &amp;baseName)</td></tr>
+<tr class="memdesc:ad07bf75626a6914c9f15b23fa5ec518e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for inserting a vector of FFVar at the end of the value vector with names.  <a href="#ad07bf75626a6914c9f15b23fa5ec518e">More...</a><br /></td></tr>
+<tr class="separator:ad07bf75626a6914c9f15b23fa5ec518e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8c2f2e692410848475b8c5caffcf5e51"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_model_function.html#a8c2f2e692410848475b8c5caffcf5e51">size</a> () const</td></tr>
+<tr class="memdesc:a8c2f2e692410848475b8c5caffcf5e51"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function returning the size of the value vector. Note that value and name vectors have the same size at any time.  <a href="#a8c2f2e692410848475b8c5caffcf5e51">More...</a><br /></td></tr>
+<tr class="separator:a8c2f2e692410848475b8c5caffcf5e51"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a925155d044f3f8e24cd55150bb668683"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_model_function.html#a925155d044f3f8e24cd55150bb668683">resize</a> (const size_t <a class="el" href="structmaingo_1_1_model_function.html#a8c2f2e692410848475b8c5caffcf5e51">size</a>)</td></tr>
+<tr class="memdesc:a925155d044f3f8e24cd55150bb668683"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for resizing of the underlying vectors.  <a href="#a925155d044f3f8e24cd55150bb668683">More...</a><br /></td></tr>
+<tr class="separator:a925155d044f3f8e24cd55150bb668683"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0af1f22b1bc87961451c52913567a4fd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_model_function.html#a0af1f22b1bc87961451c52913567a4fd">set_value</a> (const mc::FFVar var, const unsigned i)</td></tr>
+<tr class="memdesc:a0af1f22b1bc87961451c52913567a4fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for seting FFVar value at a given index.  <a href="#a0af1f22b1bc87961451c52913567a4fd">More...</a><br /></td></tr>
+<tr class="separator:a0af1f22b1bc87961451c52913567a4fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a77f51cfc74b6f5dc0b1a8919b01f3333"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_model_function.html#a77f51cfc74b6f5dc0b1a8919b01f3333">set_name</a> (const std::string str, const unsigned i)</td></tr>
+<tr class="memdesc:a77f51cfc74b6f5dc0b1a8919b01f3333"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for seting name value at a given index.  <a href="#a77f51cfc74b6f5dc0b1a8919b01f3333">More...</a><br /></td></tr>
+<tr class="separator:a77f51cfc74b6f5dc0b1a8919b01f3333"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93e188a00ecf49b5dc85f9a58ab7c9f7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1_model_function.html">ModelFunction</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_model_function.html#a93e188a00ecf49b5dc85f9a58ab7c9f7">operator=</a> (const mc::FFVar var)</td></tr>
+<tr class="memdesc:a93e188a00ecf49b5dc85f9a58ab7c9f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">= operator for backward compatibility  <a href="#a93e188a00ecf49b5dc85f9a58ab7c9f7">More...</a><br /></td></tr>
+<tr class="separator:a93e188a00ecf49b5dc85f9a58ab7c9f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a28a2c95923dee0d58ca16ba62b02e10a"><td class="memItemLeft" align="right" valign="top">mc::FFVar &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_model_function.html#a28a2c95923dee0d58ca16ba62b02e10a">operator[]</a> (const unsigned int i)</td></tr>
+<tr class="memdesc:a28a2c95923dee0d58ca16ba62b02e10a"><td class="mdescLeft">&#160;</td><td class="mdescRight">[] operator for easier access to value vector  <a href="#a28a2c95923dee0d58ca16ba62b02e10a">More...</a><br /></td></tr>
+<tr class="separator:a28a2c95923dee0d58ca16ba62b02e10a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac53aa934e420edd2363328a685a35170"><td class="memItemLeft" align="right" valign="top">mc::FFVar &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_model_function.html#ac53aa934e420edd2363328a685a35170">at</a> (const unsigned int i)</td></tr>
+<tr class="memdesc:ac53aa934e420edd2363328a685a35170"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for accessing elements.  <a href="#ac53aa934e420edd2363328a685a35170">More...</a><br /></td></tr>
+<tr class="separator:ac53aa934e420edd2363328a685a35170"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2cd284c38a9f30f487ad0481fcfaa363"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_model_function.html#a2cd284c38a9f30f487ad0481fcfaa363">operator==</a> (const <a class="el" href="structmaingo_1_1_model_function.html">ModelFunction</a> &amp;other) const</td></tr>
+<tr class="memdesc:a2cd284c38a9f30f487ad0481fcfaa363"><td class="mdescLeft">&#160;</td><td class="mdescRight">Equality comparison operator.  <a href="#a2cd284c38a9f30f487ad0481fcfaa363">More...</a><br /></td></tr>
+<tr class="separator:a2cd284c38a9f30f487ad0481fcfaa363"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr class="memitem:acb85f5084123b7d4d42c2d0e03b3e7c6"><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_model_function.html#acb85f5084123b7d4d42c2d0e03b3e7c6">name</a></td></tr>
+<tr class="separator:acb85f5084123b7d4d42c2d0e03b3e7c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3468e730a934be8be5bf5ee2f84aacc7"><td class="memItemLeft" align="right" valign="top">std::vector&lt; mc::FFVar &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_model_function.html#a3468e730a934be8be5bf5ee2f84aacc7">value</a></td></tr>
+<tr class="separator:a3468e730a934be8be5bf5ee2f84aacc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Struct for making work with the <a class="el" href="structmaingo_1_1_evaluation_container.html" title="Struct for storing the values returned by model evaluation at the given point &quot;var&quot;. ">EvaluationContainer</a> easier for the user and also to ensure backward compatibility. </p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="a59519941d0bb502f58c197894c6a0d2a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a59519941d0bb502f58c197894c6a0d2a">&#9670;&nbsp;</a></span>ModelFunction() <span class="overload">[1/6]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">maingo::ModelFunction::ModelFunction </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">default</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="af5cbeca4a2b4e75d111e6073e9351a8b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af5cbeca4a2b4e75d111e6073e9351a8b">&#9670;&nbsp;</a></span>~ModelFunction()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">maingo::ModelFunction::~ModelFunction </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">default</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a6ac6b2b399d045f9a4178db4a4a4b212"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6ac6b2b399d045f9a4178db4a4a4b212">&#9670;&nbsp;</a></span>ModelFunction() <span class="overload">[2/6]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">maingo::ModelFunction::ModelFunction </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structmaingo_1_1_model_function.html">ModelFunction</a> &amp;&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">default</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a51752162c6f7c51938623341c9d92f50"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a51752162c6f7c51938623341c9d92f50">&#9670;&nbsp;</a></span>ModelFunction() <span class="overload">[3/6]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">maingo::ModelFunction::ModelFunction </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structmaingo_1_1_model_function.html">ModelFunction</a> &amp;&amp;&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">default</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a2a99a82296b2b73f9375c1396d40d2b4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2a99a82296b2b73f9375c1396d40d2b4">&#9670;&nbsp;</a></span>ModelFunction() <span class="overload">[4/6]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">maingo::ModelFunction::ModelFunction </td>
+          <td>(</td>
+          <td class="paramtype">const mc::FFVar&#160;</td>
+          <td class="paramname"><em>var</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Constructor with FFVar value only. </p>
+
+</div>
+</div>
+<a id="a99dfad4b58342d3f6bf80813369f079e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a99dfad4b58342d3f6bf80813369f079e">&#9670;&nbsp;</a></span>ModelFunction() <span class="overload">[5/6]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">maingo::ModelFunction::ModelFunction </td>
+          <td>(</td>
+          <td class="paramtype">const mc::FFVar&#160;</td>
+          <td class="paramname"><em>var</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>str</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Constructor with FFVar value and a name. </p>
+
+</div>
+</div>
+<a id="a643e6d2e6cb1a5d78eae384361be9d72"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a643e6d2e6cb1a5d78eae384361be9d72">&#9670;&nbsp;</a></span>ModelFunction() <span class="overload">[6/6]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">maingo::ModelFunction::ModelFunction </td>
+          <td>(</td>
+          <td class="paramtype">const std::vector&lt; mc::FFVar &gt; &amp;&#160;</td>
+          <td class="paramname"><em>vars</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Constructor with vector of FFVar. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="ac53aa934e420edd2363328a685a35170"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac53aa934e420edd2363328a685a35170">&#9670;&nbsp;</a></span>at()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">mc::FFVar&amp; maingo::ModelFunction::at </td>
+          <td>(</td>
+          <td class="paramtype">const unsigned int&#160;</td>
+          <td class="paramname"><em>i</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Function for accessing elements. </p>
+
+</div>
+</div>
+<a id="aadda375307d57abd5a7e1c3f8fee2289"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aadda375307d57abd5a7e1c3f8fee2289">&#9670;&nbsp;</a></span>clear()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void maingo::ModelFunction::clear </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Function deleting everything in the model function. </p>
+
+</div>
+</div>
+<a id="a2dad7f76d791717fc532cd4e1eab37b2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2dad7f76d791717fc532cd4e1eab37b2">&#9670;&nbsp;</a></span>operator=() <span class="overload">[1/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structmaingo_1_1_model_function.html">ModelFunction</a>&amp; maingo::ModelFunction::operator= </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structmaingo_1_1_model_function.html">ModelFunction</a> &amp;&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">default</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a1575a658d24ba107ff73f583e7c4eaca"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1575a658d24ba107ff73f583e7c4eaca">&#9670;&nbsp;</a></span>operator=() <span class="overload">[2/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structmaingo_1_1_model_function.html">ModelFunction</a>&amp; maingo::ModelFunction::operator= </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structmaingo_1_1_model_function.html">ModelFunction</a> &amp;&amp;&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">default</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a93e188a00ecf49b5dc85f9a58ab7c9f7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a93e188a00ecf49b5dc85f9a58ab7c9f7">&#9670;&nbsp;</a></span>operator=() <span class="overload">[3/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structmaingo_1_1_model_function.html">ModelFunction</a>&amp; maingo::ModelFunction::operator= </td>
+          <td>(</td>
+          <td class="paramtype">const mc::FFVar&#160;</td>
+          <td class="paramname"><em>var</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>= operator for backward compatibility </p>
+
+</div>
+</div>
+<a id="a2cd284c38a9f30f487ad0481fcfaa363"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2cd284c38a9f30f487ad0481fcfaa363">&#9670;&nbsp;</a></span>operator==()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool maingo::ModelFunction::operator== </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structmaingo_1_1_model_function.html">ModelFunction</a> &amp;&#160;</td>
+          <td class="paramname"><em>other</em></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Equality comparison operator. </p>
+
+</div>
+</div>
+<a id="a28a2c95923dee0d58ca16ba62b02e10a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a28a2c95923dee0d58ca16ba62b02e10a">&#9670;&nbsp;</a></span>operator[]()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">mc::FFVar&amp; maingo::ModelFunction::operator[] </td>
+          <td>(</td>
+          <td class="paramtype">const unsigned int&#160;</td>
+          <td class="paramname"><em>i</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>[] operator for easier access to value vector </p>
+
+</div>
+</div>
+<a id="a351a87d89c0212305c3e477d692aedbb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a351a87d89c0212305c3e477d692aedbb">&#9670;&nbsp;</a></span>push_back() <span class="overload">[1/4]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void maingo::ModelFunction::push_back </td>
+          <td>(</td>
+          <td class="paramtype">const mc::FFVar&#160;</td>
+          <td class="paramname"><em>var</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Function for inserting a FFVar value at the end of the value vector. </p>
+
+</div>
+</div>
+<a id="af1e48836d22ea8f0dcc46d8622800058"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af1e48836d22ea8f0dcc46d8622800058">&#9670;&nbsp;</a></span>push_back() <span class="overload">[2/4]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void maingo::ModelFunction::push_back </td>
+          <td>(</td>
+          <td class="paramtype">const mc::FFVar&#160;</td>
+          <td class="paramname"><em>var</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>str</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Function for inserting a FFVar and a name at the end of the vectors. </p>
+
+</div>
+</div>
+<a id="af7fe04e13594b729a7fe3cde9caedbc3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af7fe04e13594b729a7fe3cde9caedbc3">&#9670;&nbsp;</a></span>push_back() <span class="overload">[3/4]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void maingo::ModelFunction::push_back </td>
+          <td>(</td>
+          <td class="paramtype">const std::vector&lt; mc::FFVar &gt; &amp;&#160;</td>
+          <td class="paramname"><em>vars</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Function for inserting a vector of FFVar at the end of the value vector. </p>
+
+</div>
+</div>
+<a id="ad07bf75626a6914c9f15b23fa5ec518e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad07bf75626a6914c9f15b23fa5ec518e">&#9670;&nbsp;</a></span>push_back() <span class="overload">[4/4]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void maingo::ModelFunction::push_back </td>
+          <td>(</td>
+          <td class="paramtype">const std::vector&lt; mc::FFVar &gt; &amp;&#160;</td>
+          <td class="paramname"><em>vars</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>baseName</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Function for inserting a vector of FFVar at the end of the value vector with names. </p>
+
+</div>
+</div>
+<a id="a925155d044f3f8e24cd55150bb668683"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a925155d044f3f8e24cd55150bb668683">&#9670;&nbsp;</a></span>resize()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void maingo::ModelFunction::resize </td>
+          <td>(</td>
+          <td class="paramtype">const size_t&#160;</td>
+          <td class="paramname"><em>size</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Function for resizing of the underlying vectors. </p>
+
+</div>
+</div>
+<a id="a77f51cfc74b6f5dc0b1a8919b01f3333"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a77f51cfc74b6f5dc0b1a8919b01f3333">&#9670;&nbsp;</a></span>set_name()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void maingo::ModelFunction::set_name </td>
+          <td>(</td>
+          <td class="paramtype">const std::string&#160;</td>
+          <td class="paramname"><em>str</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const unsigned&#160;</td>
+          <td class="paramname"><em>i</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Function for seting name value at a given index. </p>
+
+</div>
+</div>
+<a id="a0af1f22b1bc87961451c52913567a4fd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0af1f22b1bc87961451c52913567a4fd">&#9670;&nbsp;</a></span>set_value()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void maingo::ModelFunction::set_value </td>
+          <td>(</td>
+          <td class="paramtype">const mc::FFVar&#160;</td>
+          <td class="paramname"><em>var</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const unsigned&#160;</td>
+          <td class="paramname"><em>i</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Function for seting FFVar value at a given index. </p>
+
+</div>
+</div>
+<a id="a8c2f2e692410848475b8c5caffcf5e51"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8c2f2e692410848475b8c5caffcf5e51">&#9670;&nbsp;</a></span>size()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t maingo::ModelFunction::size </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Function returning the size of the value vector. Note that value and name vectors have the same size at any time. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a id="acb85f5084123b7d4d42c2d0e03b3e7c6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acb85f5084123b7d4d42c2d0e03b3e7c6">&#9670;&nbsp;</a></span>name</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::vector&lt;std::string&gt; maingo::ModelFunction::name</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>vector holding possible function names </p>
+
+</div>
+</div>
+<a id="a3468e730a934be8be5bf5ee2f84aacc7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3468e730a934be8be5bf5ee2f84aacc7">&#9670;&nbsp;</a></span>value</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::vector&lt;mc::FFVar&gt; maingo::ModelFunction::value</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>vector holding the actual propagated FFVar values </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>C:/dobo01/maingo/inc/<a class="el" href="evaluation_container_8h_source.html">evaluationContainer.h</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="structmaingo_1_1_model_function.html">ModelFunction</a></li>
+    <li class="footer">Generated by
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+  </ul>
+</div>
+</body>
+</html>
diff --git a/doc/html/structmaingo_1_1_model_function.js b/doc/html/structmaingo_1_1_model_function.js
new file mode 100644
index 0000000000000000000000000000000000000000..e0e4dce4da2323f8b8e727c4ae77c849a297bea8
--- /dev/null
+++ b/doc/html/structmaingo_1_1_model_function.js
@@ -0,0 +1,27 @@
+var structmaingo_1_1_model_function =
+[
+    [ "ModelFunction", "structmaingo_1_1_model_function.html#a59519941d0bb502f58c197894c6a0d2a", null ],
+    [ "~ModelFunction", "structmaingo_1_1_model_function.html#af5cbeca4a2b4e75d111e6073e9351a8b", null ],
+    [ "ModelFunction", "structmaingo_1_1_model_function.html#a6ac6b2b399d045f9a4178db4a4a4b212", null ],
+    [ "ModelFunction", "structmaingo_1_1_model_function.html#a51752162c6f7c51938623341c9d92f50", null ],
+    [ "ModelFunction", "structmaingo_1_1_model_function.html#a2a99a82296b2b73f9375c1396d40d2b4", null ],
+    [ "ModelFunction", "structmaingo_1_1_model_function.html#a99dfad4b58342d3f6bf80813369f079e", null ],
+    [ "ModelFunction", "structmaingo_1_1_model_function.html#a643e6d2e6cb1a5d78eae384361be9d72", null ],
+    [ "at", "structmaingo_1_1_model_function.html#ac53aa934e420edd2363328a685a35170", null ],
+    [ "clear", "structmaingo_1_1_model_function.html#aadda375307d57abd5a7e1c3f8fee2289", null ],
+    [ "operator=", "structmaingo_1_1_model_function.html#a2dad7f76d791717fc532cd4e1eab37b2", null ],
+    [ "operator=", "structmaingo_1_1_model_function.html#a1575a658d24ba107ff73f583e7c4eaca", null ],
+    [ "operator=", "structmaingo_1_1_model_function.html#a93e188a00ecf49b5dc85f9a58ab7c9f7", null ],
+    [ "operator==", "structmaingo_1_1_model_function.html#a2cd284c38a9f30f487ad0481fcfaa363", null ],
+    [ "operator[]", "structmaingo_1_1_model_function.html#a28a2c95923dee0d58ca16ba62b02e10a", null ],
+    [ "push_back", "structmaingo_1_1_model_function.html#a351a87d89c0212305c3e477d692aedbb", null ],
+    [ "push_back", "structmaingo_1_1_model_function.html#af1e48836d22ea8f0dcc46d8622800058", null ],
+    [ "push_back", "structmaingo_1_1_model_function.html#af7fe04e13594b729a7fe3cde9caedbc3", null ],
+    [ "push_back", "structmaingo_1_1_model_function.html#ad07bf75626a6914c9f15b23fa5ec518e", null ],
+    [ "resize", "structmaingo_1_1_model_function.html#a925155d044f3f8e24cd55150bb668683", null ],
+    [ "set_name", "structmaingo_1_1_model_function.html#a77f51cfc74b6f5dc0b1a8919b01f3333", null ],
+    [ "set_value", "structmaingo_1_1_model_function.html#a0af1f22b1bc87961451c52913567a4fd", null ],
+    [ "size", "structmaingo_1_1_model_function.html#a8c2f2e692410848475b8c5caffcf5e51", null ],
+    [ "name", "structmaingo_1_1_model_function.html#acb85f5084123b7d4d42c2d0e03b3e7c6", null ],
+    [ "value", "structmaingo_1_1_model_function.html#a3468e730a934be8be5bf5ee2f84aacc7", null ]
+];
\ No newline at end of file
diff --git a/doc/html/structmaingo_1_1_output_variable-members.html b/doc/html/structmaingo_1_1_output_variable-members.html
index 3649129fcef0ff3ea6481cb29617746d3edb0a82..0bc9e9c9df11defd9d52161d5be4ca71cf4af510 100644
--- a/doc/html/structmaingo_1_1_output_variable-members.html
+++ b/doc/html/structmaingo_1_1_output_variable-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -94,11 +94,17 @@ $(document).ready(function(){initNavTree('structmaingo_1_1_output_variable.html'
 <p>This is the complete list of members for <a class="el" href="structmaingo_1_1_output_variable.html">maingo::OutputVariable</a>, including all inherited members.</p>
 <table class="directory">
   <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_output_variable.html#a655f9ec9bd57b58b546ea596c0ca792a">description</a></td><td class="entry"><a class="el" href="structmaingo_1_1_output_variable.html">maingo::OutputVariable</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structmaingo_1_1_output_variable.html#a1187fff45ba11b8a8c98a117000893a8">operator=</a>(const OutputVariable &amp;variableIn)</td><td class="entry"><a class="el" href="structmaingo_1_1_output_variable.html">maingo::OutputVariable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structmaingo_1_1_output_variable.html#ab80383105b9791c367311daf64618890">operator=</a>(const OutputVariable &amp;variableIn)=default</td><td class="entry"><a class="el" href="structmaingo_1_1_output_variable.html">maingo::OutputVariable</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_output_variable.html#ac513acc754eba158a496c3c4d2f4cc2b">operator=</a>(OutputVariable &amp;&amp;variableIn)=default</td><td class="entry"><a class="el" href="structmaingo_1_1_output_variable.html">maingo::OutputVariable</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structmaingo_1_1_output_variable.html#a46108bea6aa824e9138db071db917035">operator==</a>(const OutputVariable &amp;other) const</td><td class="entry"><a class="el" href="structmaingo_1_1_output_variable.html">maingo::OutputVariable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_output_variable.html#a5444c9dfb8eb89b4a2ddd679ff819322">OutputVariable</a>(const std::string descIn, const mc::FFVar valueIn)</td><td class="entry"><a class="el" href="structmaingo_1_1_output_variable.html">maingo::OutputVariable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="structmaingo_1_1_output_variable.html#a4bbebaf4d5245bad6a7038087948b49c">OutputVariable</a>(const mc::FFVar valueIn, const std::string descIn)</td><td class="entry"><a class="el" href="structmaingo_1_1_output_variable.html">maingo::OutputVariable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_output_variable.html#aa21e6b3349541ef65b14e8385e15c516">OutputVariable</a>(const OutputVariable &amp;variableIn)</td><td class="entry"><a class="el" href="structmaingo_1_1_output_variable.html">maingo::OutputVariable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="structmaingo_1_1_output_variable.html#acd79e28304c45ee43806093b857489f2">value</a></td><td class="entry"><a class="el" href="structmaingo_1_1_output_variable.html">maingo::OutputVariable</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_output_variable.html#a9d13cfce0e3a1142c7f14d5b84d58028">OutputVariable</a>(const std::tuple&lt; mc::FFVar, std::string &gt; inTuple)</td><td class="entry"><a class="el" href="structmaingo_1_1_output_variable.html">maingo::OutputVariable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structmaingo_1_1_output_variable.html#af468c75f57d9d2debe8e3e3ecf8aa480">OutputVariable</a>(const std::tuple&lt; std::string, mc::FFVar &gt; inTuple)</td><td class="entry"><a class="el" href="structmaingo_1_1_output_variable.html">maingo::OutputVariable</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_output_variable.html#ab1e29a6ed63df8c8c92f500dac6b8187">OutputVariable</a>(const OutputVariable &amp;variableIn)=default</td><td class="entry"><a class="el" href="structmaingo_1_1_output_variable.html">maingo::OutputVariable</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structmaingo_1_1_output_variable.html#a263debc4a6d2b559f48c5e359f59885a">OutputVariable</a>(OutputVariable &amp;&amp;variableIn)=default</td><td class="entry"><a class="el" href="structmaingo_1_1_output_variable.html">maingo::OutputVariable</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_output_variable.html#acd79e28304c45ee43806093b857489f2">value</a></td><td class="entry"><a class="el" href="structmaingo_1_1_output_variable.html">maingo::OutputVariable</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structmaingo_1_1_output_variable.html#a09d1a2a865522f69c19cb057bc95f03f">~OutputVariable</a>()=default</td><td class="entry"><a class="el" href="structmaingo_1_1_output_variable.html">maingo::OutputVariable</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -106,7 +112,7 @@ $(document).ready(function(){initNavTree('structmaingo_1_1_output_variable.html'
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/structmaingo_1_1_output_variable.html b/doc/html/structmaingo_1_1_output_variable.html
index 26ede5fcbe9239ec8b2022ddf8fd436e4bc02575..4167dd536bc839e7a1115c4c6e7b341b885841ec 100644
--- a/doc/html/structmaingo_1_1_output_variable.html
+++ b/doc/html/structmaingo_1_1_output_variable.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::OutputVariable Struct Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -108,26 +108,44 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:a4bbebaf4d5245bad6a7038087948b49c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_output_variable.html#a4bbebaf4d5245bad6a7038087948b49c">OutputVariable</a> (const mc::FFVar valueIn, const std::string descIn)</td></tr>
 <tr class="memdesc:a4bbebaf4d5245bad6a7038087948b49c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for use in the evaluate function.  <a href="#a4bbebaf4d5245bad6a7038087948b49c">More...</a><br /></td></tr>
 <tr class="separator:a4bbebaf4d5245bad6a7038087948b49c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa21e6b3349541ef65b14e8385e15c516"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_output_variable.html#aa21e6b3349541ef65b14e8385e15c516">OutputVariable</a> (const <a class="el" href="structmaingo_1_1_output_variable.html">OutputVariable</a> &amp;variableIn)</td></tr>
-<tr class="memdesc:aa21e6b3349541ef65b14e8385e15c516"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor.  <a href="#aa21e6b3349541ef65b14e8385e15c516">More...</a><br /></td></tr>
-<tr class="separator:aa21e6b3349541ef65b14e8385e15c516"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1187fff45ba11b8a8c98a117000893a8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1_output_variable.html">OutputVariable</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_output_variable.html#a1187fff45ba11b8a8c98a117000893a8">operator=</a> (const <a class="el" href="structmaingo_1_1_output_variable.html">OutputVariable</a> &amp;variableIn)</td></tr>
-<tr class="memdesc:a1187fff45ba11b8a8c98a117000893a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy assignment operator.  <a href="#a1187fff45ba11b8a8c98a117000893a8">More...</a><br /></td></tr>
-<tr class="separator:a1187fff45ba11b8a8c98a117000893a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9d13cfce0e3a1142c7f14d5b84d58028"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_output_variable.html#a9d13cfce0e3a1142c7f14d5b84d58028">OutputVariable</a> (const std::tuple&lt; mc::FFVar, std::string &gt; inTuple)</td></tr>
+<tr class="memdesc:a9d13cfce0e3a1142c7f14d5b84d58028"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for use in the evaluate function.  <a href="#a9d13cfce0e3a1142c7f14d5b84d58028">More...</a><br /></td></tr>
+<tr class="separator:a9d13cfce0e3a1142c7f14d5b84d58028"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af468c75f57d9d2debe8e3e3ecf8aa480"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_output_variable.html#af468c75f57d9d2debe8e3e3ecf8aa480">OutputVariable</a> (const std::tuple&lt; std::string, mc::FFVar &gt; inTuple)</td></tr>
+<tr class="memdesc:af468c75f57d9d2debe8e3e3ecf8aa480"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for use in the evaluate function.  <a href="#af468c75f57d9d2debe8e3e3ecf8aa480">More...</a><br /></td></tr>
+<tr class="separator:af468c75f57d9d2debe8e3e3ecf8aa480"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a09d1a2a865522f69c19cb057bc95f03f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_output_variable.html#a09d1a2a865522f69c19cb057bc95f03f">~OutputVariable</a> ()=default</td></tr>
+<tr class="memdesc:a09d1a2a865522f69c19cb057bc95f03f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#a09d1a2a865522f69c19cb057bc95f03f">More...</a><br /></td></tr>
+<tr class="separator:a09d1a2a865522f69c19cb057bc95f03f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab1e29a6ed63df8c8c92f500dac6b8187"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_output_variable.html#ab1e29a6ed63df8c8c92f500dac6b8187">OutputVariable</a> (const <a class="el" href="structmaingo_1_1_output_variable.html">OutputVariable</a> &amp;variableIn)=default</td></tr>
+<tr class="memdesc:ab1e29a6ed63df8c8c92f500dac6b8187"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor.  <a href="#ab1e29a6ed63df8c8c92f500dac6b8187">More...</a><br /></td></tr>
+<tr class="separator:ab1e29a6ed63df8c8c92f500dac6b8187"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a263debc4a6d2b559f48c5e359f59885a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_output_variable.html#a263debc4a6d2b559f48c5e359f59885a">OutputVariable</a> (<a class="el" href="structmaingo_1_1_output_variable.html">OutputVariable</a> &amp;&amp;variableIn)=default</td></tr>
+<tr class="memdesc:a263debc4a6d2b559f48c5e359f59885a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor.  <a href="#a263debc4a6d2b559f48c5e359f59885a">More...</a><br /></td></tr>
+<tr class="separator:a263debc4a6d2b559f48c5e359f59885a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab80383105b9791c367311daf64618890"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1_output_variable.html">OutputVariable</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_output_variable.html#ab80383105b9791c367311daf64618890">operator=</a> (const <a class="el" href="structmaingo_1_1_output_variable.html">OutputVariable</a> &amp;variableIn)=default</td></tr>
+<tr class="memdesc:ab80383105b9791c367311daf64618890"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy assignment operator.  <a href="#ab80383105b9791c367311daf64618890">More...</a><br /></td></tr>
+<tr class="separator:ab80383105b9791c367311daf64618890"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac513acc754eba158a496c3c4d2f4cc2b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1_output_variable.html">OutputVariable</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_output_variable.html#ac513acc754eba158a496c3c4d2f4cc2b">operator=</a> (<a class="el" href="structmaingo_1_1_output_variable.html">OutputVariable</a> &amp;&amp;variableIn)=default</td></tr>
+<tr class="memdesc:ac513acc754eba158a496c3c4d2f4cc2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment operator.  <a href="#ac513acc754eba158a496c3c4d2f4cc2b">More...</a><br /></td></tr>
+<tr class="separator:ac513acc754eba158a496c3c4d2f4cc2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a46108bea6aa824e9138db071db917035"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_output_variable.html#a46108bea6aa824e9138db071db917035">operator==</a> (const <a class="el" href="structmaingo_1_1_output_variable.html">OutputVariable</a> &amp;other) const</td></tr>
+<tr class="memdesc:a46108bea6aa824e9138db071db917035"><td class="mdescLeft">&#160;</td><td class="mdescRight">Equality comparison operator.  <a href="#a46108bea6aa824e9138db071db917035">More...</a><br /></td></tr>
+<tr class="separator:a46108bea6aa824e9138db071db917035"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
 Public Attributes</h2></td></tr>
-<tr class="memitem:a655f9ec9bd57b58b546ea596c0ca792a"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_output_variable.html#a655f9ec9bd57b58b546ea596c0ca792a">description</a></td></tr>
-<tr class="separator:a655f9ec9bd57b58b546ea596c0ca792a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:acd79e28304c45ee43806093b857489f2"><td class="memItemLeft" align="right" valign="top">mc::FFVar&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_output_variable.html#acd79e28304c45ee43806093b857489f2">value</a></td></tr>
+<tr class="memitem:acd79e28304c45ee43806093b857489f2"><td class="memItemLeft" align="right" valign="top">mc::FFVar&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_output_variable.html#acd79e28304c45ee43806093b857489f2">value</a> = {}</td></tr>
 <tr class="separator:acd79e28304c45ee43806093b857489f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a655f9ec9bd57b58b546ea596c0ca792a"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_output_variable.html#a655f9ec9bd57b58b546ea596c0ca792a">description</a> = {}</td></tr>
+<tr class="separator:a655f9ec9bd57b58b546ea596c0ca792a"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><p>Struct for storing additional output variables. </p>
-<p>Since the model evaluation can contain several intermediate variables that appear neither as optimization variables nor as constraints directly, but the value of which might be interesting at the optimal solution point, a vector of these structs can be used in the <a class="el" href="structmaingo_1_1_evaluation_container.html" title="Struct for storing the values returned by model evaluation at the given point &quot;var&quot;.">EvaluationContainer</a> to give such additional output after the problem is solved. </p>
+<p>Since the model evaluation can contain several intermediate variables that appear neither as optimization variables nor as constraints directly, but the value of which might be interesting at the optimal solution point, a vector of these structs can be used in the <a class="el" href="structmaingo_1_1_evaluation_container.html" title="Struct for storing the values returned by model evaluation at the given point &quot;var&quot;. ">EvaluationContainer</a> to give such additional output after the problem is solved. </p>
 </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
 <a id="a5444c9dfb8eb89b4a2ddd679ff819322"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a5444c9dfb8eb89b4a2ddd679ff819322">&#9670;&nbsp;</a></span>OutputVariable() <span class="overload">[1/3]</span></h2>
+<h2 class="memtitle"><span class="permalink"><a href="#a5444c9dfb8eb89b4a2ddd679ff819322">&#9670;&nbsp;</a></span>OutputVariable() <span class="overload">[1/6]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -172,7 +190,7 @@ Public Attributes</h2></td></tr>
 </div>
 </div>
 <a id="a4bbebaf4d5245bad6a7038087948b49c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a4bbebaf4d5245bad6a7038087948b49c">&#9670;&nbsp;</a></span>OutputVariable() <span class="overload">[2/3]</span></h2>
+<h2 class="memtitle"><span class="permalink"><a href="#a4bbebaf4d5245bad6a7038087948b49c">&#9670;&nbsp;</a></span>OutputVariable() <span class="overload">[2/6]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -216,8 +234,103 @@ Public Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="aa21e6b3349541ef65b14e8385e15c516"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aa21e6b3349541ef65b14e8385e15c516">&#9670;&nbsp;</a></span>OutputVariable() <span class="overload">[3/3]</span></h2>
+<a id="a9d13cfce0e3a1142c7f14d5b84d58028"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9d13cfce0e3a1142c7f14d5b84d58028">&#9670;&nbsp;</a></span>OutputVariable() <span class="overload">[3/6]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">maingo::OutputVariable::OutputVariable </td>
+          <td>(</td>
+          <td class="paramtype">const std::tuple&lt; mc::FFVar, std::string &gt;&#160;</td>
+          <td class="paramname"><em>inTuple</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Constructor for use in the evaluate function. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">inTuple</td><td>is a tuple containing the value of the variable at the current point and a descriptive string </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="af468c75f57d9d2debe8e3e3ecf8aa480"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af468c75f57d9d2debe8e3e3ecf8aa480">&#9670;&nbsp;</a></span>OutputVariable() <span class="overload">[4/6]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">maingo::OutputVariable::OutputVariable </td>
+          <td>(</td>
+          <td class="paramtype">const std::tuple&lt; std::string, mc::FFVar &gt;&#160;</td>
+          <td class="paramname"><em>inTuple</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Constructor for use in the evaluate function. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">inTuple</td><td>is a tuple containing the value of the variable at the current point and a descriptive string </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a09d1a2a865522f69c19cb057bc95f03f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a09d1a2a865522f69c19cb057bc95f03f">&#9670;&nbsp;</a></span>~OutputVariable()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">maingo::OutputVariable::~OutputVariable </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">default</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Destructor. </p>
+
+</div>
+</div>
+<a id="ab1e29a6ed63df8c8c92f500dac6b8187"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab1e29a6ed63df8c8c92f500dac6b8187">&#9670;&nbsp;</a></span>OutputVariable() <span class="overload">[5/6]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -235,7 +348,7 @@ Public Attributes</h2></td></tr>
       </table>
   </td>
   <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+<span class="mlabels"><span class="mlabel">default</span></span>  </td>
   </tr>
 </table>
 </div><div class="memdoc">
@@ -248,11 +361,45 @@ Public Attributes</h2></td></tr>
   </dd>
 </dl>
 
+</div>
+</div>
+<a id="a263debc4a6d2b559f48c5e359f59885a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a263debc4a6d2b559f48c5e359f59885a">&#9670;&nbsp;</a></span>OutputVariable() <span class="overload">[6/6]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">maingo::OutputVariable::OutputVariable </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structmaingo_1_1_output_variable.html">OutputVariable</a> &amp;&amp;&#160;</td>
+          <td class="paramname"><em>variableIn</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">default</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Move constructor. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">variableIn</td><td>is the output variable to be moved </td></tr>
+  </table>
+  </dd>
+</dl>
+
 </div>
 </div>
 <h2 class="groupheader">Member Function Documentation</h2>
-<a id="a1187fff45ba11b8a8c98a117000893a8"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a1187fff45ba11b8a8c98a117000893a8">&#9670;&nbsp;</a></span>operator=()</h2>
+<a id="ab80383105b9791c367311daf64618890"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab80383105b9791c367311daf64618890">&#9670;&nbsp;</a></span>operator=() <span class="overload">[1/2]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -270,7 +417,7 @@ Public Attributes</h2></td></tr>
       </table>
   </td>
   <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+<span class="mlabels"><span class="mlabel">default</span></span>  </td>
   </tr>
 </table>
 </div><div class="memdoc">
@@ -283,6 +430,68 @@ Public Attributes</h2></td></tr>
   </dd>
 </dl>
 
+</div>
+</div>
+<a id="ac513acc754eba158a496c3c4d2f4cc2b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac513acc754eba158a496c3c4d2f4cc2b">&#9670;&nbsp;</a></span>operator=() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structmaingo_1_1_output_variable.html">OutputVariable</a>&amp; maingo::OutputVariable::operator= </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structmaingo_1_1_output_variable.html">OutputVariable</a> &amp;&amp;&#160;</td>
+          <td class="paramname"><em>variableIn</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">default</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Move assignment operator. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramdir">[in]</td><td class="paramname">variableIn</td><td>is the output variable to be moved </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a46108bea6aa824e9138db071db917035"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a46108bea6aa824e9138db071db917035">&#9670;&nbsp;</a></span>operator==()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool maingo::OutputVariable::operator== </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structmaingo_1_1_output_variable.html">OutputVariable</a> &amp;&#160;</td>
+          <td class="paramname"><em>other</em></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Equality comparison operator. </p>
+
 </div>
 </div>
 <h2 class="groupheader">Member Data Documentation</h2>
@@ -293,7 +502,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">std::string maingo::OutputVariable::description</td>
+          <td class="memname">std::string maingo::OutputVariable::description = {}</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -308,7 +517,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">mc::FFVar maingo::OutputVariable::value</td>
+          <td class="memname">mc::FFVar maingo::OutputVariable::value = {}</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -317,7 +526,7 @@ Public Attributes</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this struct was generated from the following file:<ul>
-<li>C:/Users/dobo01/maingo/inc/<a class="el" href="output_variable_8h_source.html">outputVariable.h</a></li>
+<li>C:/dobo01/maingo/inc/<a class="el" href="output_variable_8h_source.html">outputVariable.h</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -327,7 +536,7 @@ Public Attributes</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="structmaingo_1_1_output_variable.html">OutputVariable</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/structmaingo_1_1_output_variable.js b/doc/html/structmaingo_1_1_output_variable.js
index 8fb9b98ff746765652487af0ce7239de7d3b2d21..ded0fd9faa9c0340fd9890128ac1c8db6699b121 100644
--- a/doc/html/structmaingo_1_1_output_variable.js
+++ b/doc/html/structmaingo_1_1_output_variable.js
@@ -2,8 +2,14 @@ var structmaingo_1_1_output_variable =
 [
     [ "OutputVariable", "structmaingo_1_1_output_variable.html#a5444c9dfb8eb89b4a2ddd679ff819322", null ],
     [ "OutputVariable", "structmaingo_1_1_output_variable.html#a4bbebaf4d5245bad6a7038087948b49c", null ],
-    [ "OutputVariable", "structmaingo_1_1_output_variable.html#aa21e6b3349541ef65b14e8385e15c516", null ],
-    [ "operator=", "structmaingo_1_1_output_variable.html#a1187fff45ba11b8a8c98a117000893a8", null ],
+    [ "OutputVariable", "structmaingo_1_1_output_variable.html#a9d13cfce0e3a1142c7f14d5b84d58028", null ],
+    [ "OutputVariable", "structmaingo_1_1_output_variable.html#af468c75f57d9d2debe8e3e3ecf8aa480", null ],
+    [ "~OutputVariable", "structmaingo_1_1_output_variable.html#a09d1a2a865522f69c19cb057bc95f03f", null ],
+    [ "OutputVariable", "structmaingo_1_1_output_variable.html#ab1e29a6ed63df8c8c92f500dac6b8187", null ],
+    [ "OutputVariable", "structmaingo_1_1_output_variable.html#a263debc4a6d2b559f48c5e359f59885a", null ],
+    [ "operator=", "structmaingo_1_1_output_variable.html#ab80383105b9791c367311daf64618890", null ],
+    [ "operator=", "structmaingo_1_1_output_variable.html#ac513acc754eba158a496c3c4d2f4cc2b", null ],
+    [ "operator==", "structmaingo_1_1_output_variable.html#a46108bea6aa824e9138db071db917035", null ],
     [ "description", "structmaingo_1_1_output_variable.html#a655f9ec9bd57b58b546ea596c0ca792a", null ],
     [ "value", "structmaingo_1_1_output_variable.html#acd79e28304c45ee43806093b857489f2", null ]
 ];
\ No newline at end of file
diff --git a/doc/html/structmaingo_1_1_program-members.html b/doc/html/structmaingo_1_1_program-members.html
index 8a29dc239b6ae7bb865216df6c0cda8627e5c02d..072bc061ea28786220dcb4c9b0787e2440eaa3ef 100644
--- a/doc/html/structmaingo_1_1_program-members.html
+++ b/doc/html/structmaingo_1_1_program-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -94,7 +94,7 @@ $(document).ready(function(){initNavTree('structmaingo_1_1_program.html','');});
 <p>This is the complete list of members for <a class="el" href="structmaingo_1_1_program.html">maingo::Program</a>, including all inherited members.</p>
 <table class="directory">
   <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_program.html#a5066677b6079a978930b7d582eaf1f72">mConstraints</a></td><td class="entry"><a class="el" href="structmaingo_1_1_program.html">maingo::Program</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structmaingo_1_1_program.html#a91830e99c06a7bd5c40a95a4038bae7b">mObjective</a></td><td class="entry"><a class="el" href="structmaingo_1_1_program.html">maingo::Program</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structmaingo_1_1_program.html#ac8bcb8f9940fb42b8818612b837a3cc3">mObjective</a></td><td class="entry"><a class="el" href="structmaingo_1_1_program.html">maingo::Program</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_program.html#aa9dd284c244d4f9c1470b1d1bbd791d1">mOutputs</a></td><td class="entry"><a class="el" href="structmaingo_1_1_program.html">maingo::Program</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="structmaingo_1_1_program.html#a7d49b5c89b54392bd35f6ac64c9d4b40">mRelaxations</a></td><td class="entry"><a class="el" href="structmaingo_1_1_program.html">maingo::Program</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_program.html#a93f7319ccde52f3649fef8acec8759fa">mSquashes</a></td><td class="entry"><a class="el" href="structmaingo_1_1_program.html">maingo::Program</a></td><td class="entry"></td></tr>
@@ -105,7 +105,7 @@ $(document).ready(function(){initNavTree('structmaingo_1_1_program.html','');});
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/structmaingo_1_1_program.html b/doc/html/structmaingo_1_1_program.html
index 14139ec77ecd4e480190c08a84a3197f24604e34..c4821476efb1f4b5610eae923132975c7adc7ec0 100644
--- a/doc/html/structmaingo_1_1_program.html
+++ b/doc/html/structmaingo_1_1_program.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::Program Struct Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -101,8 +101,8 @@ $(document).ready(function(){initNavTree('structmaingo_1_1_program.html','');});
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
 Public Attributes</h2></td></tr>
-<tr class="memitem:a91830e99c06a7bd5c40a95a4038bae7b"><td class="memItemLeft" align="right" valign="top">ale::expression&lt; ale::real&lt; 0 &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_program.html#a91830e99c06a7bd5c40a95a4038bae7b">mObjective</a></td></tr>
-<tr class="separator:a91830e99c06a7bd5c40a95a4038bae7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac8bcb8f9940fb42b8818612b837a3cc3"><td class="memItemLeft" align="right" valign="top">std::list&lt; ale::expression&lt; ale::real&lt; 0 &gt; &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_program.html#ac8bcb8f9940fb42b8818612b837a3cc3">mObjective</a></td></tr>
+<tr class="separator:ac8bcb8f9940fb42b8818612b837a3cc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a5066677b6079a978930b7d582eaf1f72"><td class="memItemLeft" align="right" valign="top">std::list&lt; ale::expression&lt; ale::boolean&lt; 0 &gt; &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_program.html#a5066677b6079a978930b7d582eaf1f72">mConstraints</a></td></tr>
 <tr class="separator:a5066677b6079a978930b7d582eaf1f72"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a7d49b5c89b54392bd35f6ac64c9d4b40"><td class="memItemLeft" align="right" valign="top">std::list&lt; ale::expression&lt; ale::boolean&lt; 0 &gt; &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_program.html#a7d49b5c89b54392bd35f6ac64c9d4b40">mRelaxations</a></td></tr>
@@ -126,18 +126,18 @@ Public Attributes</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p><a class="el" href="structmaingo_1_1_constraint.html" title="Struct for storing information about constraints.">Constraint</a> expressions </p>
+<p><a class="el" href="structmaingo_1_1_constraint.html" title="Struct for storing information about constraints. ">Constraint</a> expressions </p>
 
 </div>
 </div>
-<a id="a91830e99c06a7bd5c40a95a4038bae7b"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a91830e99c06a7bd5c40a95a4038bae7b">&#9670;&nbsp;</a></span>mObjective</h2>
+<a id="ac8bcb8f9940fb42b8818612b837a3cc3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac8bcb8f9940fb42b8818612b837a3cc3">&#9670;&nbsp;</a></span>mObjective</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">ale::expression&lt;ale::real&lt;0&gt; &gt; maingo::Program::mObjective</td>
+          <td class="memname">std::list&lt;ale::expression&lt;ale::real&lt;0&gt; &gt; &gt; maingo::Program::mObjective</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -191,7 +191,7 @@ Public Attributes</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this struct was generated from the following file:<ul>
-<li>C:/Users/dobo01/maingo/inc/<a class="el" href="program_8h_source.html">program.h</a></li>
+<li>C:/dobo01/maingo/inc/<a class="el" href="program_8h_source.html">program.h</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -201,7 +201,7 @@ Public Attributes</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="structmaingo_1_1_program.html">Program</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/structmaingo_1_1_program.js b/doc/html/structmaingo_1_1_program.js
index c798ea5732d88e6d7e49d6289e84cb5db03a0939..18e7d9c5f44931a190f66242dcc4b6b46fd68c0e 100644
--- a/doc/html/structmaingo_1_1_program.js
+++ b/doc/html/structmaingo_1_1_program.js
@@ -1,7 +1,7 @@
 var structmaingo_1_1_program =
 [
     [ "mConstraints", "structmaingo_1_1_program.html#a5066677b6079a978930b7d582eaf1f72", null ],
-    [ "mObjective", "structmaingo_1_1_program.html#a91830e99c06a7bd5c40a95a4038bae7b", null ],
+    [ "mObjective", "structmaingo_1_1_program.html#ac8bcb8f9940fb42b8818612b837a3cc3", null ],
     [ "mOutputs", "structmaingo_1_1_program.html#aa9dd284c244d4f9c1470b1d1bbd791d1", null ],
     [ "mRelaxations", "structmaingo_1_1_program.html#a7d49b5c89b54392bd35f6ac64c9d4b40", null ],
     [ "mSquashes", "structmaingo_1_1_program.html#a93f7319ccde52f3649fef8acec8759fa", null ]
diff --git a/doc/html/structmaingo_1_1_settings-members.html b/doc/html/structmaingo_1_1_settings-members.html
index 40932522f0726a04295e0647d1bc243f9418a5f1..d804416e730b59d586e2b60b7a7627767d8a64c9 100644
--- a/doc/html/structmaingo_1_1_settings-members.html
+++ b/doc/html/structmaingo_1_1_settings-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -120,19 +120,17 @@ $(document).ready(function(){initNavTree('structmaingo_1_1_settings.html','');})
   <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_settings.html#a3e066fd5fb513813ec370f23a1cf5332">LBP_solver</a></td><td class="entry"><a class="el" href="structmaingo_1_1_settings.html">maingo::Settings</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="structmaingo_1_1_settings.html#a4ea318d33514aecb909d04ac014dec5c">LBP_subgradientIntervals</a></td><td class="entry"><a class="el" href="structmaingo_1_1_settings.html">maingo::Settings</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_settings.html#a3bca851ad2486ec398bf0cff511fb805">LBP_verbosity</a></td><td class="entry"><a class="el" href="structmaingo_1_1_settings.html">maingo::Settings</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structmaingo_1_1_settings.html#a97970d98cd9d1d8972cc048d339b53dc">maxTime</a></td><td class="entry"><a class="el" href="structmaingo_1_1_settings.html">maingo::Settings</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_settings.html#a6a33331a9a865594b6698fb770687f8f">MC_envelTol</a></td><td class="entry"><a class="el" href="structmaingo_1_1_settings.html">maingo::Settings</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structmaingo_1_1_settings.html#aec5925d3412be881fb7fac711718e7e4">MC_mvcompTol</a></td><td class="entry"><a class="el" href="structmaingo_1_1_settings.html">maingo::Settings</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_settings.html#ae7029d17219326a8cbf366f214bb4706">MC_mvcompUse</a></td><td class="entry"><a class="el" href="structmaingo_1_1_settings.html">maingo::Settings</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structmaingo_1_1_settings.html#a5e9afadd1d866d01c96a114686b32672">operator=</a>(const Settings &amp;)=default</td><td class="entry"><a class="el" href="structmaingo_1_1_settings.html">maingo::Settings</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_settings.html#a63963398865197f332049e6a247bcb35">outstreamVerbosity</a></td><td class="entry"><a class="el" href="structmaingo_1_1_settings.html">maingo::Settings</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structmaingo_1_1_settings.html#ad665aeee888f2746d7892ffc66bd5340">loggingDestination</a></td><td class="entry"><a class="el" href="structmaingo_1_1_settings.html">maingo::Settings</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_settings.html#a97970d98cd9d1d8972cc048d339b53dc">maxTime</a></td><td class="entry"><a class="el" href="structmaingo_1_1_settings.html">maingo::Settings</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structmaingo_1_1_settings.html#a6a33331a9a865594b6698fb770687f8f">MC_envelTol</a></td><td class="entry"><a class="el" href="structmaingo_1_1_settings.html">maingo::Settings</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_settings.html#aec5925d3412be881fb7fac711718e7e4">MC_mvcompTol</a></td><td class="entry"><a class="el" href="structmaingo_1_1_settings.html">maingo::Settings</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structmaingo_1_1_settings.html#ae7029d17219326a8cbf366f214bb4706">MC_mvcompUse</a></td><td class="entry"><a class="el" href="structmaingo_1_1_settings.html">maingo::Settings</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_settings.html#a5d637f32b3496797a5a327fba9b2589a">modelWritingLanguage</a></td><td class="entry"><a class="el" href="structmaingo_1_1_settings.html">maingo::Settings</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="structmaingo_1_1_settings.html#a3003863167eab673fbeae391bfeb802b">PRE_maxLocalSearches</a></td><td class="entry"><a class="el" href="structmaingo_1_1_settings.html">maingo::Settings</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_settings.html#a34c3073ced91a6837df66cfddd3a74ee">PRE_obbtMaxRounds</a></td><td class="entry"><a class="el" href="structmaingo_1_1_settings.html">maingo::Settings</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="structmaingo_1_1_settings.html#aed67a51e2390de794d1e7e98a1a90206">PRE_printEveryLocalSearch</a></td><td class="entry"><a class="el" href="structmaingo_1_1_settings.html">maingo::Settings</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_settings.html#af507cbfa73588513df3746e104c76c01">PRE_pureMultistart</a></td><td class="entry"><a class="el" href="structmaingo_1_1_settings.html">maingo::Settings</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="structmaingo_1_1_settings.html#a11905b6d9a1d4bcbe320d7fd6f3e4a71">relNodeTol</a></td><td class="entry"><a class="el" href="structmaingo_1_1_settings.html">maingo::Settings</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_settings.html#ab7169a6eefce79566dd07db3b1e5e967">Settings</a>()</td><td class="entry"><a class="el" href="structmaingo_1_1_settings.html">maingo::Settings</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structmaingo_1_1_settings.html#a74c2b2798213ed88903b13e8d9ca14e2">Settings</a>(const Settings &amp;)=default</td><td class="entry"><a class="el" href="structmaingo_1_1_settings.html">maingo::Settings</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_settings.html#aec0786e196d9432a636fc741e0fbeec3">targetLowerBound</a></td><td class="entry"><a class="el" href="structmaingo_1_1_settings.html">maingo::Settings</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="structmaingo_1_1_settings.html#a46aef5290b25ae54af6dba81d896fcbc">targetUpperBound</a></td><td class="entry"><a class="el" href="structmaingo_1_1_settings.html">maingo::Settings</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_settings.html#ad7cad6ff794ba09b57b3c22733b44f58">terminateOnFeasiblePoint</a></td><td class="entry"><a class="el" href="structmaingo_1_1_settings.html">maingo::Settings</a></td><td class="entry"></td></tr>
@@ -146,10 +144,8 @@ $(document).ready(function(){initNavTree('structmaingo_1_1_settings.html','');})
   <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_settings.html#af98e35447c8568c1613daf7447a30307">UBP_verbosity</a></td><td class="entry"><a class="el" href="structmaingo_1_1_settings.html">maingo::Settings</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="structmaingo_1_1_settings.html#a6fb19c2296412e1143f77fd7b949e7e3">writeCsv</a></td><td class="entry"><a class="el" href="structmaingo_1_1_settings.html">maingo::Settings</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_settings.html#a891666257be2a508061697ea80a01ada">writeJson</a></td><td class="entry"><a class="el" href="structmaingo_1_1_settings.html">maingo::Settings</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structmaingo_1_1_settings.html#acec36c3b03a651632336594c40d5026a">writeLog</a></td><td class="entry"><a class="el" href="structmaingo_1_1_settings.html">maingo::Settings</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_settings.html#a6d6da9a089684ecd8eb3dc560e14c0ca">writeResFile</a></td><td class="entry"><a class="el" href="structmaingo_1_1_settings.html">maingo::Settings</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structmaingo_1_1_settings.html#aa0a8bf977559001dd0a4cda0d7908ebb">writeToLogSec</a></td><td class="entry"><a class="el" href="structmaingo_1_1_settings.html">maingo::Settings</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_settings.html#a440a841800111853d7366c1626242de6">writeToOtherLanguage</a></td><td class="entry"><a class="el" href="structmaingo_1_1_settings.html">maingo::Settings</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structmaingo_1_1_settings.html#a56d7d3b6246ae45af98b44102edbb28b">writeResultFile</a></td><td class="entry"><a class="el" href="structmaingo_1_1_settings.html">maingo::Settings</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1_settings.html#aa0a8bf977559001dd0a4cda0d7908ebb">writeToLogSec</a></td><td class="entry"><a class="el" href="structmaingo_1_1_settings.html">maingo::Settings</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -157,7 +153,7 @@ $(document).ready(function(){initNavTree('structmaingo_1_1_settings.html','');})
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/structmaingo_1_1_settings.html b/doc/html/structmaingo_1_1_settings.html
index 57960e603241163e9b91091eff05f20b05b63f54..7383f2759821bb7205a52128fe8b5dd90e2654d8 100644
--- a/doc/html/structmaingo_1_1_settings.html
+++ b/doc/html/structmaingo_1_1_settings.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::Settings Struct Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -87,7 +87,6 @@ $(document).ready(function(){initNavTree('structmaingo_1_1_settings.html','');})
 
 <div class="header">
   <div class="summary">
-<a href="#pub-methods">Public Member Functions</a> &#124;
 <a href="structmaingo_1_1_settings-members.html">List of all members</a>  </div>
   <div class="headertitle">
 <div class="title">maingo::Settings Struct Reference</div>  </div>
@@ -99,272 +98,182 @@ $(document).ready(function(){initNavTree('structmaingo_1_1_settings.html','');})
 
 <p><code>#include &lt;<a class="el" href="settings_8h_source.html">settings.h</a>&gt;</code></p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
-Public Member Functions</h2></td></tr>
-<tr class="memitem:ab7169a6eefce79566dd07db3b1e5e967"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#ab7169a6eefce79566dd07db3b1e5e967">Settings</a> ()</td></tr>
-<tr class="memdesc:ab7169a6eefce79566dd07db3b1e5e967"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, sets default values (cf. <a class="el" href="settings_8cpp.html">settings.cpp</a>).  <a href="#ab7169a6eefce79566dd07db3b1e5e967">More...</a><br /></td></tr>
-<tr class="separator:ab7169a6eefce79566dd07db3b1e5e967"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a74c2b2798213ed88903b13e8d9ca14e2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a74c2b2798213ed88903b13e8d9ca14e2">Settings</a> (const <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &amp;)=default</td></tr>
-<tr class="memdesc:a74c2b2798213ed88903b13e8d9ca14e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default copy constructor.  <a href="#a74c2b2798213ed88903b13e8d9ca14e2">More...</a><br /></td></tr>
-<tr class="separator:a74c2b2798213ed88903b13e8d9ca14e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5e9afadd1d866d01c96a114686b32672"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1_settings.html">Settings</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a5e9afadd1d866d01c96a114686b32672">operator=</a> (const <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &amp;)=default</td></tr>
-<tr class="memdesc:a5e9afadd1d866d01c96a114686b32672"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default copy assignment.  <a href="#a5e9afadd1d866d01c96a114686b32672">More...</a><br /></td></tr>
-<tr class="separator:a5e9afadd1d866d01c96a114686b32672"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
 Public Attributes</h2></td></tr>
-<tr><td colspan="2"><div class="groupHeader">Tolerances and termination</div></td></tr>
-<tr class="memitem:a7b899b964718fb9e7a95459026faf6aa"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a7b899b964718fb9e7a95459026faf6aa">epsilonA</a></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Tolerances</div></td></tr>
+<tr class="memitem:a7b899b964718fb9e7a95459026faf6aa"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a7b899b964718fb9e7a95459026faf6aa">epsilonA</a> = 1.0e-2</td></tr>
 <tr class="memdesc:a7b899b964718fb9e7a95459026faf6aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Absolute optimality tolerance, i.e., termination when (UBD-LBD) &lt; BAB_epsilon_a.  <a href="#a7b899b964718fb9e7a95459026faf6aa">More...</a><br /></td></tr>
 <tr class="separator:a7b899b964718fb9e7a95459026faf6aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a013779523888ede06a29eb507b22d139"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a013779523888ede06a29eb507b22d139">epsilonR</a></td></tr>
+<tr class="memitem:a013779523888ede06a29eb507b22d139"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a013779523888ede06a29eb507b22d139">epsilonR</a> = 1.0e-2</td></tr>
 <tr class="memdesc:a013779523888ede06a29eb507b22d139"><td class="mdescLeft">&#160;</td><td class="mdescRight">Relative optimality tolerance, i.e., termination when (UBD-LBD) &lt; BAB_epsilon_r * UBD.  <a href="#a013779523888ede06a29eb507b22d139">More...</a><br /></td></tr>
 <tr class="separator:a013779523888ede06a29eb507b22d139"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af995a33f43f5609d3e941cbdf72a94de"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#af995a33f43f5609d3e941cbdf72a94de">deltaIneq</a></td></tr>
-<tr class="memdesc:af995a33f43f5609d3e941cbdf72a94de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Absolute feasibility tolerance for inequality constraints (i.e., constraint is considered satisfied if gi_(x)&lt;=UBP_delta_ineq.  <a href="#af995a33f43f5609d3e941cbdf72a94de">More...</a><br /></td></tr>
+<tr class="memitem:af995a33f43f5609d3e941cbdf72a94de"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#af995a33f43f5609d3e941cbdf72a94de">deltaIneq</a> = 1.0e-6</td></tr>
+<tr class="memdesc:af995a33f43f5609d3e941cbdf72a94de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Absolute feasibility tolerance for inequality constraints, i.e., constraint is considered satisfied if gi_(x)&lt;=UBP_delta_ineq.  <a href="#af995a33f43f5609d3e941cbdf72a94de">More...</a><br /></td></tr>
 <tr class="separator:af995a33f43f5609d3e941cbdf72a94de"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4152b7df19df2bfd3b4e43d13aea1841"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a4152b7df19df2bfd3b4e43d13aea1841">deltaEq</a></td></tr>
-<tr class="memdesc:a4152b7df19df2bfd3b4e43d13aea1841"><td class="mdescLeft">&#160;</td><td class="mdescRight">Absolute feasibility tolerance for equality constraints (i.e., constraint is considered satisfied if |hi_(x)|&lt;=UBP_delta_eq.  <a href="#a4152b7df19df2bfd3b4e43d13aea1841">More...</a><br /></td></tr>
+<tr class="memitem:a4152b7df19df2bfd3b4e43d13aea1841"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a4152b7df19df2bfd3b4e43d13aea1841">deltaEq</a> = 1.0e-6</td></tr>
+<tr class="memdesc:a4152b7df19df2bfd3b4e43d13aea1841"><td class="mdescLeft">&#160;</td><td class="mdescRight">Absolute feasibility tolerance for equality constraints, i.e., constraint is considered satisfied if |hi_(x)|&lt;=UBP_delta_eq.  <a href="#a4152b7df19df2bfd3b4e43d13aea1841">More...</a><br /></td></tr>
 <tr class="separator:a4152b7df19df2bfd3b4e43d13aea1841"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a11905b6d9a1d4bcbe320d7fd6f3e4a71"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a11905b6d9a1d4bcbe320d7fd6f3e4a71">relNodeTol</a></td></tr>
-<tr class="memdesc:a11905b6d9a1d4bcbe320d7fd6f3e4a71"><td class="mdescLeft">&#160;</td><td class="mdescRight">Relative tolerance for minimum node size.  <a href="#a11905b6d9a1d4bcbe320d7fd6f3e4a71">More...</a><br /></td></tr>
+<tr class="memitem:a11905b6d9a1d4bcbe320d7fd6f3e4a71"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a11905b6d9a1d4bcbe320d7fd6f3e4a71">relNodeTol</a> = 1.0e-9</td></tr>
+<tr class="memdesc:a11905b6d9a1d4bcbe320d7fd6f3e4a71"><td class="mdescLeft">&#160;</td><td class="mdescRight">Relative tolerance for minimum node size. Nodes are discarded if in every dimension their width gets below this tolerance times the original width. In this case, global optimality to the desired optimality tolerances may not be reached.  <a href="#a11905b6d9a1d4bcbe320d7fd6f3e4a71">More...</a><br /></td></tr>
 <tr class="separator:a11905b6d9a1d4bcbe320d7fd6f3e4a71"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:acbc8b6cea8fdfd9db25f805b25d9bd43"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#acbc8b6cea8fdfd9db25f805b25d9bd43">BAB_maxNodes</a></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Other termination settings</div></td></tr>
+<tr class="memitem:acbc8b6cea8fdfd9db25f805b25d9bd43"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#acbc8b6cea8fdfd9db25f805b25d9bd43">BAB_maxNodes</a> = std::numeric_limits&lt;unsigned&gt;::max()</td></tr>
 <tr class="memdesc:acbc8b6cea8fdfd9db25f805b25d9bd43"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of nodes (i.e., solver terminates when more than BAB_maxnodes are held in memory; used to avoid excessive branching)  <a href="#acbc8b6cea8fdfd9db25f805b25d9bd43">More...</a><br /></td></tr>
 <tr class="separator:acbc8b6cea8fdfd9db25f805b25d9bd43"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a93335d6322c7df74c4ffd387941379be"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a93335d6322c7df74c4ffd387941379be">BAB_maxIterations</a></td></tr>
+<tr class="memitem:a93335d6322c7df74c4ffd387941379be"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a93335d6322c7df74c4ffd387941379be">BAB_maxIterations</a> = std::numeric_limits&lt;unsigned&gt;::max()</td></tr>
 <tr class="memdesc:a93335d6322c7df74c4ffd387941379be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of iterations (i.e., maximum number of nodes visited in the Branch-and-Bound tree)  <a href="#a93335d6322c7df74c4ffd387941379be">More...</a><br /></td></tr>
 <tr class="separator:a93335d6322c7df74c4ffd387941379be"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a97970d98cd9d1d8972cc048d339b53dc"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a97970d98cd9d1d8972cc048d339b53dc">maxTime</a></td></tr>
+<tr class="memitem:a97970d98cd9d1d8972cc048d339b53dc"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a97970d98cd9d1d8972cc048d339b53dc">maxTime</a> = 86400</td></tr>
 <tr class="memdesc:a97970d98cd9d1d8972cc048d339b53dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">CPU time limit in seconds.  <a href="#a97970d98cd9d1d8972cc048d339b53dc">More...</a><br /></td></tr>
 <tr class="separator:a97970d98cd9d1d8972cc048d339b53dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2442c5741a3601880b2903b69d32bbb9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a2442c5741a3601880b2903b69d32bbb9">confirmTermination</a></td></tr>
+<tr class="memitem:a2442c5741a3601880b2903b69d32bbb9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a2442c5741a3601880b2903b69d32bbb9">confirmTermination</a> = false</td></tr>
 <tr class="memdesc:a2442c5741a3601880b2903b69d32bbb9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether to ask the user before terminating when reaching time, node, or iteration limits.  <a href="#a2442c5741a3601880b2903b69d32bbb9">More...</a><br /></td></tr>
 <tr class="separator:a2442c5741a3601880b2903b69d32bbb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad7cad6ff794ba09b57b3c22733b44f58"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#ad7cad6ff794ba09b57b3c22733b44f58">terminateOnFeasiblePoint</a></td></tr>
+<tr class="memitem:ad7cad6ff794ba09b57b3c22733b44f58"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#ad7cad6ff794ba09b57b3c22733b44f58">terminateOnFeasiblePoint</a> = false</td></tr>
 <tr class="memdesc:ad7cad6ff794ba09b57b3c22733b44f58"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether to terminate as soon as the first feasible point was found (no guarantee of global or local optimality!)  <a href="#ad7cad6ff794ba09b57b3c22733b44f58">More...</a><br /></td></tr>
 <tr class="separator:ad7cad6ff794ba09b57b3c22733b44f58"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aec0786e196d9432a636fc741e0fbeec3"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#aec0786e196d9432a636fc741e0fbeec3">targetLowerBound</a></td></tr>
+<tr class="memitem:aec0786e196d9432a636fc741e0fbeec3"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#aec0786e196d9432a636fc741e0fbeec3">targetLowerBound</a> = std::numeric_limits&lt;double&gt;::max()</td></tr>
 <tr class="memdesc:aec0786e196d9432a636fc741e0fbeec3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Target value for the lower bound on the optimal objective. <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> terminates once LBD&gt;=targetLowerBound (no guarantee of global or local optimality!)  <a href="#aec0786e196d9432a636fc741e0fbeec3">More...</a><br /></td></tr>
 <tr class="separator:aec0786e196d9432a636fc741e0fbeec3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a46aef5290b25ae54af6dba81d896fcbc"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a46aef5290b25ae54af6dba81d896fcbc">targetUpperBound</a></td></tr>
+<tr class="memitem:a46aef5290b25ae54af6dba81d896fcbc"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a46aef5290b25ae54af6dba81d896fcbc">targetUpperBound</a> = -std::numeric_limits&lt;double&gt;::max()</td></tr>
 <tr class="memdesc:a46aef5290b25ae54af6dba81d896fcbc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Target value for the upper bound on the optimal objective. <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a> terminates once UBD&lt;=targetUpperBound (no guarantee of global or local optimality!)  <a href="#a46aef5290b25ae54af6dba81d896fcbc">More...</a><br /></td></tr>
 <tr class="separator:a46aef5290b25ae54af6dba81d896fcbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a998dbf62d78386f5c7161b82ed37acbe"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a998dbf62d78386f5c7161b82ed37acbe">infinity</a></td></tr>
+<tr class="memitem:a998dbf62d78386f5c7161b82ed37acbe"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a998dbf62d78386f5c7161b82ed37acbe">infinity</a> = std::numeric_limits&lt;double&gt;::max()</td></tr>
 <tr class="memdesc:a998dbf62d78386f5c7161b82ed37acbe"><td class="mdescLeft">&#160;</td><td class="mdescRight">User definition of infinity (used to initialize UBD and LBD) [currently cannot be set by the user via set_option].  <a href="#a998dbf62d78386f5c7161b82ed37acbe">More...</a><br /></td></tr>
 <tr class="separator:a998dbf62d78386f5c7161b82ed37acbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr><td colspan="2"><div class="groupHeader">Output</div></td></tr>
+<tr class="memitem:a635996885baa7cb82d4f5cf91c2921bc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a635996885baa7cb82d4f5cf91c2921bc">BAB_verbosity</a> = <a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991bea46b5de1abddbaba6cf2a9b54852c0a6c">VERB_NORMAL</a></td></tr>
+<tr class="memdesc:a635996885baa7cb82d4f5cf91c2921bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">How much output to print from Branch &amp; Bound solver. See documentation of <a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">maingo::VERB</a> for possible values.  <a href="#a635996885baa7cb82d4f5cf91c2921bc">More...</a><br /></td></tr>
+<tr class="separator:a635996885baa7cb82d4f5cf91c2921bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3bca851ad2486ec398bf0cff511fb805"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a3bca851ad2486ec398bf0cff511fb805">LBP_verbosity</a> = <a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991bea46b5de1abddbaba6cf2a9b54852c0a6c">VERB_NORMAL</a></td></tr>
+<tr class="memdesc:a3bca851ad2486ec398bf0cff511fb805"><td class="mdescLeft">&#160;</td><td class="mdescRight">How much output to print from Lower Bounding Solver. See documentation of <a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">maingo::VERB</a> for possible values.  <a href="#a3bca851ad2486ec398bf0cff511fb805">More...</a><br /></td></tr>
+<tr class="separator:a3bca851ad2486ec398bf0cff511fb805"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af98e35447c8568c1613daf7447a30307"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#af98e35447c8568c1613daf7447a30307">UBP_verbosity</a> = <a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991bea46b5de1abddbaba6cf2a9b54852c0a6c">VERB_NORMAL</a></td></tr>
+<tr class="memdesc:af98e35447c8568c1613daf7447a30307"><td class="mdescLeft">&#160;</td><td class="mdescRight">How much output to print from Upper Bounding Solver. See documentation of <a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">maingo::VERB</a> for possible values.  <a href="#af98e35447c8568c1613daf7447a30307">More...</a><br /></td></tr>
+<tr class="separator:af98e35447c8568c1613daf7447a30307"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a151445349406eb6567b9ef0930b94a57"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a151445349406eb6567b9ef0930b94a57">BAB_printFreq</a> = 100</td></tr>
+<tr class="memdesc:a151445349406eb6567b9ef0930b94a57"><td class="mdescLeft">&#160;</td><td class="mdescRight">After how many iterations to print progress on screen (additionally, a line is printed when a new incumbent is found)  <a href="#a151445349406eb6567b9ef0930b94a57">More...</a><br /></td></tr>
+<tr class="separator:a151445349406eb6567b9ef0930b94a57"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae0e50e9403f37080cd79667947af8c1b"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#ae0e50e9403f37080cd79667947af8c1b">BAB_logFreq</a> = 100</td></tr>
+<tr class="memdesc:ae0e50e9403f37080cd79667947af8c1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Like BAB_printFreq, but for log.  <a href="#ae0e50e9403f37080cd79667947af8c1b">More...</a><br /></td></tr>
+<tr class="separator:ae0e50e9403f37080cd79667947af8c1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad665aeee888f2746d7892ffc66bd5340"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4">LOGGING_DESTINATION</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#ad665aeee888f2746d7892ffc66bd5340">loggingDestination</a> = <a class="el" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4aaeb2ef5d2157419a5fe03924e9fbb714">LOGGING_FILE_AND_STREAM</a></td></tr>
+<tr class="memdesc:ad665aeee888f2746d7892ffc66bd5340"><td class="mdescLeft">&#160;</td><td class="mdescRight">Where to print or write the output. See documentation of <a class="el" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4">maingo::LOGGING_DESTINATION</a> for possible values.  <a href="#ad665aeee888f2746d7892ffc66bd5340">More...</a><br /></td></tr>
+<tr class="separator:ad665aeee888f2746d7892ffc66bd5340"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa0a8bf977559001dd0a4cda0d7908ebb"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#aa0a8bf977559001dd0a4cda0d7908ebb">writeToLogSec</a> = 1800</td></tr>
+<tr class="memdesc:aa0a8bf977559001dd0a4cda0d7908ebb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write to log file after a given ammount of CPU seconds.  <a href="#aa0a8bf977559001dd0a4cda0d7908ebb">More...</a><br /></td></tr>
+<tr class="separator:aa0a8bf977559001dd0a4cda0d7908ebb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a56d7d3b6246ae45af98b44102edbb28b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a56d7d3b6246ae45af98b44102edbb28b">writeResultFile</a> = true</td></tr>
+<tr class="memdesc:a56d7d3b6246ae45af98b44102edbb28b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether to write an additional file containing non-standard information about the solved model.  <a href="#a56d7d3b6246ae45af98b44102edbb28b">More...</a><br /></td></tr>
+<tr class="separator:a56d7d3b6246ae45af98b44102edbb28b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6fb19c2296412e1143f77fd7b949e7e3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a6fb19c2296412e1143f77fd7b949e7e3">writeCsv</a> = false</td></tr>
+<tr class="memdesc:a6fb19c2296412e1143f77fd7b949e7e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether to write csv-log files (named bab_statistics.csv and bab_iterations.csv).  <a href="#a6fb19c2296412e1143f77fd7b949e7e3">More...</a><br /></td></tr>
+<tr class="separator:a6fb19c2296412e1143f77fd7b949e7e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a891666257be2a508061697ea80a01ada"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a891666257be2a508061697ea80a01ada">writeJson</a> = false</td></tr>
+<tr class="memdesc:a891666257be2a508061697ea80a01ada"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether to write a json-log file (named bab.json).  <a href="#a891666257be2a508061697ea80a01ada">More...</a><br /></td></tr>
+<tr class="separator:a891666257be2a508061697ea80a01ada"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aed67a51e2390de794d1e7e98a1a90206"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#aed67a51e2390de794d1e7e98a1a90206">PRE_printEveryLocalSearch</a> = false</td></tr>
+<tr class="memdesc:aed67a51e2390de794d1e7e98a1a90206"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether to print every run during multistart at the root node.  <a href="#aed67a51e2390de794d1e7e98a1a90206">More...</a><br /></td></tr>
+<tr class="separator:aed67a51e2390de794d1e7e98a1a90206"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5d637f32b3496797a5a327fba9b2589a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39a">WRITING_LANGUAGE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a5d637f32b3496797a5a327fba9b2589a">modelWritingLanguage</a> = <a class="el" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39aacd2ad11121ce71554943363ac99cd0c8">LANG_NONE</a></td></tr>
+<tr class="memdesc:a5d637f32b3496797a5a327fba9b2589a"><td class="mdescLeft">&#160;</td><td class="mdescRight">In what modeling language to write the current model to a file in. See documentation of <a class="el" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39a">maingo::WRITING_LANGUAGE</a> for possible values.  <a href="#a5d637f32b3496797a5a327fba9b2589a">More...</a><br /></td></tr>
+<tr class="separator:a5d637f32b3496797a5a327fba9b2589a"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr><td colspan="2"><div class="groupHeader">Pre-processing</div></td></tr>
-<tr class="memitem:a3003863167eab673fbeae391bfeb802b"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a3003863167eab673fbeae391bfeb802b">PRE_maxLocalSearches</a></td></tr>
+<tr class="memitem:a3003863167eab673fbeae391bfeb802b"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a3003863167eab673fbeae391bfeb802b">PRE_maxLocalSearches</a> = 3</td></tr>
 <tr class="memdesc:a3003863167eab673fbeae391bfeb802b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of local searches in the multistart heuristic during preprocessing at the root node.  <a href="#a3003863167eab673fbeae391bfeb802b">More...</a><br /></td></tr>
 <tr class="separator:a3003863167eab673fbeae391bfeb802b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a34c3073ced91a6837df66cfddd3a74ee"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a34c3073ced91a6837df66cfddd3a74ee">PRE_obbtMaxRounds</a></td></tr>
+<tr class="memitem:a34c3073ced91a6837df66cfddd3a74ee"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a34c3073ced91a6837df66cfddd3a74ee">PRE_obbtMaxRounds</a> = 10</td></tr>
 <tr class="memdesc:a34c3073ced91a6837df66cfddd3a74ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of rounds of optimization-based range reduction (OBBT; cf., e.g., Gleixner et al., J. Glob. Optim. 67 (2017) 731; maximizing and minimizing each variable subject to relaxed constraints) at the root node. If &gt;=1 and a feasible point is found during multistart, one round of OBBT using an objective cut (f_cv&lt;=UBD) is conducted as well.  <a href="#a34c3073ced91a6837df66cfddd3a74ee">More...</a><br /></td></tr>
 <tr class="separator:a34c3073ced91a6837df66cfddd3a74ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af507cbfa73588513df3746e104c76c01"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#af507cbfa73588513df3746e104c76c01">PRE_pureMultistart</a></td></tr>
+<tr class="memitem:af507cbfa73588513df3746e104c76c01"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#af507cbfa73588513df3746e104c76c01">PRE_pureMultistart</a> = false</td></tr>
 <tr class="memdesc:af507cbfa73588513df3746e104c76c01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether to perform a multistart only. A B&amp;B tree will not be constructed and no lower bounding problems will be solved.  <a href="#af507cbfa73588513df3746e104c76c01">More...</a><br /></td></tr>
 <tr class="separator:af507cbfa73588513df3746e104c76c01"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr><td colspan="2"><div class="groupHeader">B&amp;B Settings - Tree management &amp; range reduction</div></td></tr>
-<tr class="memitem:a6faf13db475d6e05fac1783a8f7ed805"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5">babBase::enums::NS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a6faf13db475d6e05fac1783a8f7ed805">BAB_nodeSelection</a></td></tr>
-<tr class="memdesc:a6faf13db475d6e05fac1783a8f7ed805"><td class="mdescLeft">&#160;</td><td class="mdescRight">How to select the next node to process. See documentation of <a class="el" href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5" title="Enum for selecting the Node Selection heuristic.">babBase::enums::NS</a> for possible values.  <a href="#a6faf13db475d6e05fac1783a8f7ed805">More...</a><br /></td></tr>
+<tr><td colspan="2"><div class="groupHeader">B&amp;B settings - Tree management</div></td></tr>
+<tr class="memitem:a6faf13db475d6e05fac1783a8f7ed805"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5">babBase::enums::NS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a6faf13db475d6e05fac1783a8f7ed805">BAB_nodeSelection</a> = <a class="el" href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5a27cb24b7ae25692a53e21298b16223b5">babBase::enums::NS_BESTBOUND</a></td></tr>
+<tr class="memdesc:a6faf13db475d6e05fac1783a8f7ed805"><td class="mdescLeft">&#160;</td><td class="mdescRight">How to select the next node to process. See documentation of <a class="el" href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5" title="Enum for selecting the Node Selection heuristic. ">babBase::enums::NS</a> for possible values.  <a href="#a6faf13db475d6e05fac1783a8f7ed805">More...</a><br /></td></tr>
 <tr class="separator:a6faf13db475d6e05fac1783a8f7ed805"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae9318c3868a221c8cb642e8c9f413dc2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81">babBase::enums::BV</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#ae9318c3868a221c8cb642e8c9f413dc2">BAB_branchVariable</a></td></tr>
-<tr class="memdesc:ae9318c3868a221c8cb642e8c9f413dc2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Which dimension to branch in for the current node. See documentation of <a class="el" href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81" title="Enum for selecting the Branching Variable selection heuristic.">babBase::enums::BV</a> for possible values.  <a href="#ae9318c3868a221c8cb642e8c9f413dc2">More...</a><br /></td></tr>
+<tr class="memitem:ae9318c3868a221c8cb642e8c9f413dc2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81">babBase::enums::BV</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#ae9318c3868a221c8cb642e8c9f413dc2">BAB_branchVariable</a> = <a class="el" href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81aca8ab66cf77eb113aa470aa08459b5e3">babBase::enums::BV_RELDIAM</a></td></tr>
+<tr class="memdesc:ae9318c3868a221c8cb642e8c9f413dc2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Which dimension to branch in for the current node. See documentation of <a class="el" href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81" title="Enum for selecting the Branching Variable selection heuristic. ">babBase::enums::BV</a> for possible values.  <a href="#ae9318c3868a221c8cb642e8c9f413dc2">More...</a><br /></td></tr>
 <tr class="separator:ae9318c3868a221c8cb642e8c9f413dc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8fd91a3766129137cae15447565e7923"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a8fd91a3766129137cae15447565e7923">BAB_alwaysSolveObbt</a></td></tr>
+<tr><td colspan="2"><div class="groupHeader">B&amp;B settings - Range reduction</div></td></tr>
+<tr class="memitem:a8fd91a3766129137cae15447565e7923"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a8fd91a3766129137cae15447565e7923">BAB_alwaysSolveObbt</a> = true</td></tr>
 <tr class="memdesc:a8fd91a3766129137cae15447565e7923"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether to solve OBBT (feasibility- and, once a feasible point has been found, also optimality-based) at every BaB node.  <a href="#a8fd91a3766129137cae15447565e7923">More...</a><br /></td></tr>
 <tr class="separator:a8fd91a3766129137cae15447565e7923"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5e457d44f0301389da787556d4e9aebe"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a5e457d44f0301389da787556d4e9aebe">BAB_dbbt</a></td></tr>
+<tr class="memitem:a5e457d44f0301389da787556d4e9aebe"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a5e457d44f0301389da787556d4e9aebe">BAB_dbbt</a> = true</td></tr>
 <tr class="memdesc:a5e457d44f0301389da787556d4e9aebe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether to do a single round of duality based bound tightening (DBBT, cf. Ryoo&amp;Sahinidis, Comput. Chem. Eng. 19 (1995) 551). If false, no DBBT is used. If true, multipliers from CPLEX are used to tighten bounds (essentially for free). we tried additional rounds but without reasonable improvement.  <a href="#a5e457d44f0301389da787556d4e9aebe">More...</a><br /></td></tr>
 <tr class="separator:a5e457d44f0301389da787556d4e9aebe"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a11c405acd744c079b1cb57c71fe1b5dc"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a11c405acd744c079b1cb57c71fe1b5dc">BAB_probing</a></td></tr>
+<tr class="memitem:a11c405acd744c079b1cb57c71fe1b5dc"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a11c405acd744c079b1cb57c71fe1b5dc">BAB_probing</a> = false</td></tr>
 <tr class="memdesc:a11c405acd744c079b1cb57c71fe1b5dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether to do probing (cf. Ryoo&amp;Sahinidis, Comput. Chem. Eng. 19 (1995) 551) at every node (can only be done if BAB_DBBT_maxrounds&gt;=1)  <a href="#a11c405acd744c079b1cb57c71fe1b5dc">More...</a><br /></td></tr>
 <tr class="separator:a11c405acd744c079b1cb57c71fe1b5dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a774378c7d329fb73be3cbb765f035cb6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a774378c7d329fb73be3cbb765f035cb6">BAB_constraintPropagation</a></td></tr>
+<tr class="memitem:a774378c7d329fb73be3cbb765f035cb6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a774378c7d329fb73be3cbb765f035cb6">BAB_constraintPropagation</a> = true</td></tr>
 <tr class="memdesc:a774378c7d329fb73be3cbb765f035cb6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether to do constraint propagation. If false, no constraint propagation is executed.  <a href="#a774378c7d329fb73be3cbb765f035cb6">More...</a><br /></td></tr>
 <tr class="separator:a774378c7d329fb73be3cbb765f035cb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr><td colspan="2"><div class="groupHeader">LBP Settings</div></td></tr>
-<tr class="memitem:a3e066fd5fb513813ec370f23a1cf5332"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4be">lbp::LBP_SOLVER</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a3e066fd5fb513813ec370f23a1cf5332">LBP_solver</a></td></tr>
-<tr class="memdesc:a3e066fd5fb513813ec370f23a1cf5332"><td class="mdescLeft">&#160;</td><td class="mdescRight">Solver for solution of (mixed-integer) linear lower bounding problems. It also sets the solver when solving purely (mixed-integer) quadratic/linear problems.  <a href="#a3e066fd5fb513813ec370f23a1cf5332">More...</a><br /></td></tr>
+<tr class="memitem:a3e066fd5fb513813ec370f23a1cf5332"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4be">lbp::LBP_SOLVER</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a3e066fd5fb513813ec370f23a1cf5332">LBP_solver</a> = <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea9c0bfb2a028e4a3ab6011619009d62d9">lbp::LBP_SOLVER_CLP</a></td></tr>
+<tr class="memdesc:a3e066fd5fb513813ec370f23a1cf5332"><td class="mdescLeft">&#160;</td><td class="mdescRight">Solver for solution of (mixed-integer) linear lower bounding problems. It also sets the solver when solving purely (mixed-integer) quadratic/linear problems. See documentation of <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4be">lbp::LBP_SOLVER</a> for possible values.  <a href="#a3e066fd5fb513813ec370f23a1cf5332">More...</a><br /></td></tr>
 <tr class="separator:a3e066fd5fb513813ec370f23a1cf5332"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a33a203b4798d1c1ca0897fe897f86e5e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2">lbp::LINP</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a33a203b4798d1c1ca0897fe897f86e5e">LBP_linPoints</a></td></tr>
-<tr class="memdesc:a33a203b4798d1c1ca0897fe897f86e5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">At which points to linearize for affine relaxation. See documentation of <a class="el" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2" title="Enum for selecting the Linearization Points to be used in constructing affine relaxations.">lbp::LINP</a> for possible values.  <a href="#a33a203b4798d1c1ca0897fe897f86e5e">More...</a><br /></td></tr>
+<tr class="memitem:a33a203b4798d1c1ca0897fe897f86e5e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2">lbp::LINP</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a33a203b4798d1c1ca0897fe897f86e5e">LBP_linPoints</a> = <a class="el" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a5c70e54dadb090b3234669343d814e3a">lbp::LINP_MID</a></td></tr>
+<tr class="memdesc:a33a203b4798d1c1ca0897fe897f86e5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">At which points to linearize for affine relaxation. See documentation of <a class="el" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2" title="Enum for selecting the Linearization Points to be used in constructing affine relaxations. ">lbp::LINP</a> for possible values.  <a href="#a33a203b4798d1c1ca0897fe897f86e5e">More...</a><br /></td></tr>
 <tr class="separator:a33a203b4798d1c1ca0897fe897f86e5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4ea318d33514aecb909d04ac014dec5c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a4ea318d33514aecb909d04ac014dec5c">LBP_subgradientIntervals</a></td></tr>
+<tr class="memitem:a4ea318d33514aecb909d04ac014dec5c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a4ea318d33514aecb909d04ac014dec5c">LBP_subgradientIntervals</a> = true</td></tr>
 <tr class="memdesc:a4ea318d33514aecb909d04ac014dec5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether to use the heuristic to improve McCormick relaxations by tightening the range of each factor with the use of subgradients (cf. Najman &amp; Mitsos, JOGO 2019)  <a href="#a4ea318d33514aecb909d04ac014dec5c">More...</a><br /></td></tr>
 <tr class="separator:a4ea318d33514aecb909d04ac014dec5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad537d2e602f8eccbbaa1b3c4d0f3a135"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#ad537d2e602f8eccbbaa1b3c4d0f3a135">LBP_obbtMinImprovement</a></td></tr>
+<tr class="memitem:ad537d2e602f8eccbbaa1b3c4d0f3a135"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#ad537d2e602f8eccbbaa1b3c4d0f3a135">LBP_obbtMinImprovement</a> = 0.01</td></tr>
 <tr class="memdesc:ad537d2e602f8eccbbaa1b3c4d0f3a135"><td class="mdescLeft">&#160;</td><td class="mdescRight">How much improvement needs to be achievable (relative to initial diameter) to conduct OBBT for a variable.  <a href="#ad537d2e602f8eccbbaa1b3c4d0f3a135">More...</a><br /></td></tr>
 <tr class="separator:ad537d2e602f8eccbbaa1b3c4d0f3a135"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1ef0c321a726544d68a6f82ebe0f3ce1"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a1ef0c321a726544d68a6f82ebe0f3ce1">LBP_activateMoreScaling</a></td></tr>
+<tr class="memitem:a1ef0c321a726544d68a6f82ebe0f3ce1"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a1ef0c321a726544d68a6f82ebe0f3ce1">LBP_activateMoreScaling</a> = 10000</td></tr>
 <tr class="memdesc:a1ef0c321a726544d68a6f82ebe0f3ce1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of consecutive iterations without LBD improvement needed to activate more aggressive scaling in LP solver (e.g., CPLEX)  <a href="#a1ef0c321a726544d68a6f82ebe0f3ce1">More...</a><br /></td></tr>
 <tr class="separator:a1ef0c321a726544d68a6f82ebe0f3ce1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8d340ab819d3da6d5378765c1699dad2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a8d340ab819d3da6d5378765c1699dad2">LBP_addAuxiliaryVars</a></td></tr>
+<tr class="memitem:a8d340ab819d3da6d5378765c1699dad2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a8d340ab819d3da6d5378765c1699dad2">LBP_addAuxiliaryVars</a> = false</td></tr>
 <tr class="memdesc:a8d340ab819d3da6d5378765c1699dad2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether to add auxiliary variables for common factors in the lower bounding DAG/problem.  <a href="#a8d340ab819d3da6d5378765c1699dad2">More...</a><br /></td></tr>
 <tr class="separator:a8d340ab819d3da6d5378765c1699dad2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac91eb2c4778d67abdc5b797c3a8d1b3f"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#ac91eb2c4778d67abdc5b797c3a8d1b3f">LBP_minFactorsForAux</a></td></tr>
+<tr class="memitem:ac91eb2c4778d67abdc5b797c3a8d1b3f"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#ac91eb2c4778d67abdc5b797c3a8d1b3f">LBP_minFactorsForAux</a> = 2</td></tr>
 <tr class="memdesc:ac91eb2c4778d67abdc5b797c3a8d1b3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum number of common factors to add an auxiliary variable.  <a href="#ac91eb2c4778d67abdc5b797c3a8d1b3f">More...</a><br /></td></tr>
 <tr class="separator:ac91eb2c4778d67abdc5b797c3a8d1b3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:acccf69351b29a42f528c9e892cb4d8c5"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#acccf69351b29a42f528c9e892cb4d8c5">LBP_maxNumberOfAddedFactors</a></td></tr>
+<tr class="memitem:acccf69351b29a42f528c9e892cb4d8c5"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#acccf69351b29a42f528c9e892cb4d8c5">LBP_maxNumberOfAddedFactors</a> = 1</td></tr>
 <tr class="memdesc:acccf69351b29a42f528c9e892cb4d8c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of added factor as auxiliaries.  <a href="#acccf69351b29a42f528c9e892cb4d8c5">More...</a><br /></td></tr>
 <tr class="separator:acccf69351b29a42f528c9e892cb4d8c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr><td colspan="2"><div class="groupHeader">MC++ settings</div></td></tr>
-<tr class="memitem:ae7029d17219326a8cbf366f214bb4706"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#ae7029d17219326a8cbf366f214bb4706">MC_mvcompUse</a></td></tr>
+<tr class="memitem:ae7029d17219326a8cbf366f214bb4706"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#ae7029d17219326a8cbf366f214bb4706">MC_mvcompUse</a> = true</td></tr>
 <tr class="memdesc:ae7029d17219326a8cbf366f214bb4706"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether to use multivariate composition theorem for computing McCormick relaxations (see MC++ documentation for details)  <a href="#ae7029d17219326a8cbf366f214bb4706">More...</a><br /></td></tr>
 <tr class="separator:ae7029d17219326a8cbf366f214bb4706"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aec5925d3412be881fb7fac711718e7e4"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#aec5925d3412be881fb7fac711718e7e4">MC_mvcompTol</a></td></tr>
-<tr class="memdesc:aec5925d3412be881fb7fac711718e7e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">(see MC++ documentation for details)  <a href="#aec5925d3412be881fb7fac711718e7e4">More...</a><br /></td></tr>
+<tr class="memitem:aec5925d3412be881fb7fac711718e7e4"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#aec5925d3412be881fb7fac711718e7e4">MC_mvcompTol</a> = 1.0e-9</td></tr>
+<tr class="memdesc:aec5925d3412be881fb7fac711718e7e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tolerance used in the multivariate composition theorem for computing McCormick relaxations (see MC++ documentation for details)  <a href="#aec5925d3412be881fb7fac711718e7e4">More...</a><br /></td></tr>
 <tr class="separator:aec5925d3412be881fb7fac711718e7e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6a33331a9a865594b6698fb770687f8f"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a6a33331a9a865594b6698fb770687f8f">MC_envelTol</a></td></tr>
-<tr class="memdesc:a6a33331a9a865594b6698fb770687f8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">(see MC++ documentation for details)  <a href="#a6a33331a9a865594b6698fb770687f8f">More...</a><br /></td></tr>
+<tr class="memitem:a6a33331a9a865594b6698fb770687f8f"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a6a33331a9a865594b6698fb770687f8f">MC_envelTol</a> = 1.0e-9</td></tr>
+<tr class="memdesc:a6a33331a9a865594b6698fb770687f8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tolerance for computing the envelopes of intrinsic functions (see MC++ documentation for details)  <a href="#a6a33331a9a865594b6698fb770687f8f">More...</a><br /></td></tr>
 <tr class="separator:a6a33331a9a865594b6698fb770687f8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr><td colspan="2"><div class="groupHeader">UBP Settings</div></td></tr>
-<tr class="memitem:a50403ef83f8de6e5a774825a56715012"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9d">ubp::UBP_SOLVER</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a50403ef83f8de6e5a774825a56715012">UBP_solverPreprocessing</a></td></tr>
-<tr class="memdesc:a50403ef83f8de6e5a774825a56715012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Solver to be used during pre-processing (i.e., multistart). See documentation of <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9d" title="Enum for selecting the STRATegy so be used for solving the upper bounding problems.">ubp::UBP_SOLVER</a> for possible values.  <a href="#a50403ef83f8de6e5a774825a56715012">More...</a><br /></td></tr>
+<tr class="memitem:a50403ef83f8de6e5a774825a56715012"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9d">ubp::UBP_SOLVER</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a50403ef83f8de6e5a774825a56715012">UBP_solverPreprocessing</a> = <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da3d2c4a7fd42fd747fe825ec8f0b1a1ad">ubp::UBP_SOLVER_IPOPT</a></td></tr>
+<tr class="memdesc:a50403ef83f8de6e5a774825a56715012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Solver to be used during pre-processing (i.e., multistart). See documentation of <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9d" title="Enum for selecting the STRATegy so be used for solving the upper bounding problems. ">ubp::UBP_SOLVER</a> for possible values.  <a href="#a50403ef83f8de6e5a774825a56715012">More...</a><br /></td></tr>
 <tr class="separator:a50403ef83f8de6e5a774825a56715012"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa85263531e27b4569555b7b78aa15440"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#aa85263531e27b4569555b7b78aa15440">UBP_maxStepsPreprocessing</a></td></tr>
+<tr class="memitem:aa85263531e27b4569555b7b78aa15440"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#aa85263531e27b4569555b7b78aa15440">UBP_maxStepsPreprocessing</a> = 3000</td></tr>
 <tr class="memdesc:aa85263531e27b4569555b7b78aa15440"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of steps the local solver is allowed to take in each local run during multistart in pre-processing.  <a href="#aa85263531e27b4569555b7b78aa15440">More...</a><br /></td></tr>
 <tr class="separator:aa85263531e27b4569555b7b78aa15440"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8a932699c21f3dfc85317ce9cdc8943f"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a8a932699c21f3dfc85317ce9cdc8943f">UBP_maxTimePreprocessing</a></td></tr>
+<tr class="memitem:a8a932699c21f3dfc85317ce9cdc8943f"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a8a932699c21f3dfc85317ce9cdc8943f">UBP_maxTimePreprocessing</a> = 100.0</td></tr>
 <tr class="memdesc:a8a932699c21f3dfc85317ce9cdc8943f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum CPU time the local solver is allowed to take in each local run during multistart in pre-processing. Usually, this should only be a fall-back option to prevent truly getting stuck in local solution.  <a href="#a8a932699c21f3dfc85317ce9cdc8943f">More...</a><br /></td></tr>
 <tr class="separator:a8a932699c21f3dfc85317ce9cdc8943f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:acef4fa75216bfea7bd19dbb9d226320f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9d">ubp::UBP_SOLVER</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#acef4fa75216bfea7bd19dbb9d226320f">UBP_solverBab</a></td></tr>
-<tr class="memdesc:acef4fa75216bfea7bd19dbb9d226320f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Solver to be used during Branch-and-Bound. See documentation of <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9d" title="Enum for selecting the STRATegy so be used for solving the upper bounding problems.">ubp::UBP_SOLVER</a> for possible values.  <a href="#acef4fa75216bfea7bd19dbb9d226320f">More...</a><br /></td></tr>
+<tr class="memitem:acef4fa75216bfea7bd19dbb9d226320f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9d">ubp::UBP_SOLVER</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#acef4fa75216bfea7bd19dbb9d226320f">UBP_solverBab</a> = <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da5e8733223dd08864a8d5effbb341992a">ubp::UBP_SOLVER_SLSQP</a></td></tr>
+<tr class="memdesc:acef4fa75216bfea7bd19dbb9d226320f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Solver to be used during Branch-and-Bound. See documentation of <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9d" title="Enum for selecting the STRATegy so be used for solving the upper bounding problems. ">ubp::UBP_SOLVER</a> for possible values.  <a href="#acef4fa75216bfea7bd19dbb9d226320f">More...</a><br /></td></tr>
 <tr class="separator:acef4fa75216bfea7bd19dbb9d226320f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a930df85d476b40ebf1dd43b024e1b001"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a930df85d476b40ebf1dd43b024e1b001">UBP_maxStepsBab</a></td></tr>
+<tr class="memitem:a930df85d476b40ebf1dd43b024e1b001"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a930df85d476b40ebf1dd43b024e1b001">UBP_maxStepsBab</a> = 3</td></tr>
 <tr class="memdesc:a930df85d476b40ebf1dd43b024e1b001"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of steps the local solver is allowed to take at each BaB node.  <a href="#a930df85d476b40ebf1dd43b024e1b001">More...</a><br /></td></tr>
 <tr class="separator:a930df85d476b40ebf1dd43b024e1b001"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3e8739c5895cf3ae9122d22531161e46"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a3e8739c5895cf3ae9122d22531161e46">UBP_maxTimeBab</a></td></tr>
+<tr class="memitem:a3e8739c5895cf3ae9122d22531161e46"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a3e8739c5895cf3ae9122d22531161e46">UBP_maxTimeBab</a> = 10.0</td></tr>
 <tr class="memdesc:a3e8739c5895cf3ae9122d22531161e46"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum CPU time the local solver is allowed to take at each BaB node. Usually, this should only be a fall-back option to prevent truly getting stuck in local solution.  <a href="#a3e8739c5895cf3ae9122d22531161e46">More...</a><br /></td></tr>
 <tr class="separator:a3e8739c5895cf3ae9122d22531161e46"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a95ee7f86cbeb604a7640cc01530b278a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a95ee7f86cbeb604a7640cc01530b278a">UBP_ignoreNodeBounds</a></td></tr>
+<tr class="memitem:a95ee7f86cbeb604a7640cc01530b278a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a95ee7f86cbeb604a7640cc01530b278a">UBP_ignoreNodeBounds</a> = false</td></tr>
 <tr class="memdesc:a95ee7f86cbeb604a7640cc01530b278a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flag indicating whether the UBP solvers should ignore the box constraints of the current node during the B&amp;B (and consider only the ones of the root node instead).  <a href="#a95ee7f86cbeb604a7640cc01530b278a">More...</a><br /></td></tr>
 <tr class="separator:a95ee7f86cbeb604a7640cc01530b278a"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr><td colspan="2"><div class="groupHeader">Epsilon-constraint settings</div></td></tr>
-<tr class="memitem:ae41b9a39dbcf2adf4891a414333145bd"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#ae41b9a39dbcf2adf4891a414333145bd">EC_nPoints</a></td></tr>
+<tr class="memitem:ae41b9a39dbcf2adf4891a414333145bd"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#ae41b9a39dbcf2adf4891a414333145bd">EC_nPoints</a> = 10</td></tr>
 <tr class="memdesc:ae41b9a39dbcf2adf4891a414333145bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of points on the Pareto front to be computed in epsilon-constraint method (only available via the C++ API)  <a href="#ae41b9a39dbcf2adf4891a414333145bd">More...</a><br /></td></tr>
 <tr class="separator:ae41b9a39dbcf2adf4891a414333145bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr><td colspan="2"><div class="groupHeader">Output</div></td></tr>
-<tr class="memitem:a635996885baa7cb82d4f5cf91c2921bc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a635996885baa7cb82d4f5cf91c2921bc">BAB_verbosity</a></td></tr>
-<tr class="memdesc:a635996885baa7cb82d4f5cf91c2921bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">How much output to print from Branch &amp; Bound solver. Possible values are VERB_NONE (=0), VERB_NORMAL (=1), VERB_ALL (=2)  <a href="#a635996885baa7cb82d4f5cf91c2921bc">More...</a><br /></td></tr>
-<tr class="separator:a635996885baa7cb82d4f5cf91c2921bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3bca851ad2486ec398bf0cff511fb805"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a3bca851ad2486ec398bf0cff511fb805">LBP_verbosity</a></td></tr>
-<tr class="memdesc:a3bca851ad2486ec398bf0cff511fb805"><td class="mdescLeft">&#160;</td><td class="mdescRight">How much output to print from Lower Bounding Solver. Possible values are VERB_NONE (=0), VERB_NORMAL (=1), VERB_ALL (=2)  <a href="#a3bca851ad2486ec398bf0cff511fb805">More...</a><br /></td></tr>
-<tr class="separator:a3bca851ad2486ec398bf0cff511fb805"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af98e35447c8568c1613daf7447a30307"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#af98e35447c8568c1613daf7447a30307">UBP_verbosity</a></td></tr>
-<tr class="memdesc:af98e35447c8568c1613daf7447a30307"><td class="mdescLeft">&#160;</td><td class="mdescRight">How much output to print from Upper Bounding Solver. Possible values are VERB_NONE (=0), VERB_NORMAL (=1), VERB_ALL (=2)  <a href="#af98e35447c8568c1613daf7447a30307">More...</a><br /></td></tr>
-<tr class="separator:af98e35447c8568c1613daf7447a30307"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a151445349406eb6567b9ef0930b94a57"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a151445349406eb6567b9ef0930b94a57">BAB_printFreq</a></td></tr>
-<tr class="memdesc:a151445349406eb6567b9ef0930b94a57"><td class="mdescLeft">&#160;</td><td class="mdescRight">After how many iterations to print progress on screen (additionally, a line is printed when a new incumbent is found)  <a href="#a151445349406eb6567b9ef0930b94a57">More...</a><br /></td></tr>
-<tr class="separator:a151445349406eb6567b9ef0930b94a57"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae0e50e9403f37080cd79667947af8c1b"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#ae0e50e9403f37080cd79667947af8c1b">BAB_logFreq</a></td></tr>
-<tr class="memdesc:ae0e50e9403f37080cd79667947af8c1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Like BAB_printFreq, but for log.  <a href="#ae0e50e9403f37080cd79667947af8c1b">More...</a><br /></td></tr>
-<tr class="separator:ae0e50e9403f37080cd79667947af8c1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a63963398865197f332049e6a247bcb35"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0">OUTSTREAM_VERB</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a63963398865197f332049e6a247bcb35">outstreamVerbosity</a></td></tr>
-<tr class="memdesc:a63963398865197f332049e6a247bcb35"><td class="mdescLeft">&#160;</td><td class="mdescRight">Where to print or write the output. Possible values are OUTSTREAM_NONE (=0), OUTSTREAM_OUTSTREAM (=1), OUTSTREAM_LOG (=2), OUTSTREAM_BOTH (=3)  <a href="#a63963398865197f332049e6a247bcb35">More...</a><br /></td></tr>
-<tr class="separator:a63963398865197f332049e6a247bcb35"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:acec36c3b03a651632336594c40d5026a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#acec36c3b03a651632336594c40d5026a">writeLog</a></td></tr>
-<tr class="memdesc:acec36c3b03a651632336594c40d5026a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether to write a log file (named bab.log)  <a href="#acec36c3b03a651632336594c40d5026a">More...</a><br /></td></tr>
-<tr class="separator:acec36c3b03a651632336594c40d5026a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa0a8bf977559001dd0a4cda0d7908ebb"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#aa0a8bf977559001dd0a4cda0d7908ebb">writeToLogSec</a></td></tr>
-<tr class="memdesc:aa0a8bf977559001dd0a4cda0d7908ebb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write to log file after a given ammount of CPU seconds.  <a href="#aa0a8bf977559001dd0a4cda0d7908ebb">More...</a><br /></td></tr>
-<tr class="separator:aa0a8bf977559001dd0a4cda0d7908ebb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6d6da9a089684ecd8eb3dc560e14c0ca"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a6d6da9a089684ecd8eb3dc560e14c0ca">writeResFile</a></td></tr>
-<tr class="memdesc:a6d6da9a089684ecd8eb3dc560e14c0ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether to write an additional file containing non-standard information about the solved model.  <a href="#a6d6da9a089684ecd8eb3dc560e14c0ca">More...</a><br /></td></tr>
-<tr class="separator:a6d6da9a089684ecd8eb3dc560e14c0ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6fb19c2296412e1143f77fd7b949e7e3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a6fb19c2296412e1143f77fd7b949e7e3">writeCsv</a></td></tr>
-<tr class="memdesc:a6fb19c2296412e1143f77fd7b949e7e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether to write csv-log files (named bab_Report_General.csv and bab_Report_Iterations.csv).  <a href="#a6fb19c2296412e1143f77fd7b949e7e3">More...</a><br /></td></tr>
-<tr class="separator:a6fb19c2296412e1143f77fd7b949e7e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a891666257be2a508061697ea80a01ada"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a891666257be2a508061697ea80a01ada">writeJson</a></td></tr>
-<tr class="memdesc:a891666257be2a508061697ea80a01ada"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether to write a json-log file (named bab.json).  <a href="#a891666257be2a508061697ea80a01ada">More...</a><br /></td></tr>
-<tr class="separator:a891666257be2a508061697ea80a01ada"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aed67a51e2390de794d1e7e98a1a90206"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#aed67a51e2390de794d1e7e98a1a90206">PRE_printEveryLocalSearch</a></td></tr>
-<tr class="memdesc:aed67a51e2390de794d1e7e98a1a90206"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether to print every run during multistart at the root node.  <a href="#aed67a51e2390de794d1e7e98a1a90206">More...</a><br /></td></tr>
-<tr class="separator:aed67a51e2390de794d1e7e98a1a90206"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a440a841800111853d7366c1626242de6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299a">PARSING_LANGUAGE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1_settings.html#a440a841800111853d7366c1626242de6">writeToOtherLanguage</a></td></tr>
-<tr class="memdesc:a440a841800111853d7366c1626242de6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write to a file in a different modeling language.  <a href="#a440a841800111853d7366c1626242de6">More...</a><br /></td></tr>
-<tr class="separator:a440a841800111853d7366c1626242de6"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><p>Struct for storing settings for <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a>. </p>
-<p>Contains settings for <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a>. The default values an be found in <a class="el" href="settings_8cpp.html">settings.cpp</a>. </p>
-</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a id="ab7169a6eefce79566dd07db3b1e5e967"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ab7169a6eefce79566dd07db3b1e5e967">&#9670;&nbsp;</a></span>Settings() <span class="overload">[1/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">Settings::Settings </td>
-          <td>(</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p>Constructor, sets default values (cf. <a class="el" href="settings_8cpp.html">settings.cpp</a>). </p>
-
-</div>
-</div>
-<a id="a74c2b2798213ed88903b13e8d9ca14e2"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a74c2b2798213ed88903b13e8d9ca14e2">&#9670;&nbsp;</a></span>Settings() <span class="overload">[2/2]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">maingo::Settings::Settings </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &amp;&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">default</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Default copy constructor. </p>
-
-</div>
-</div>
-<h2 class="groupheader">Member Function Documentation</h2>
-<a id="a5e9afadd1d866d01c96a114686b32672"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a5e9afadd1d866d01c96a114686b32672">&#9670;&nbsp;</a></span>operator=()</h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="structmaingo_1_1_settings.html">Settings</a>&amp; maingo::Settings::operator= </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &amp;&#160;</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">default</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-
-<p>Default copy assignment. </p>
-
-</div>
-</div>
-<h2 class="groupheader">Member Data Documentation</h2>
+<p>Contains settings for <a class="el" href="classmaingo_1_1_m_ai_n_g_o.html" title="This class is the MAiNGO solver holding the B&amp;B tree, upper bounding solver, lower bounding solver an...">MAiNGO</a>. The default values an be found in settings.cpp. </p>
+</div><h2 class="groupheader">Member Data Documentation</h2>
 <a id="a8fd91a3766129137cae15447565e7923"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#a8fd91a3766129137cae15447565e7923">&#9670;&nbsp;</a></span>BAB_alwaysSolveObbt</h2>
 
@@ -372,7 +281,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">bool maingo::Settings::BAB_alwaysSolveObbt</td>
+          <td class="memname">bool maingo::Settings::BAB_alwaysSolveObbt = true</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -388,12 +297,12 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81">babBase::enums::BV</a> maingo::Settings::BAB_branchVariable</td>
+          <td class="memname"><a class="el" href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81">babBase::enums::BV</a> maingo::Settings::BAB_branchVariable = <a class="el" href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81aca8ab66cf77eb113aa470aa08459b5e3">babBase::enums::BV_RELDIAM</a></td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<p>Which dimension to branch in for the current node. See documentation of <a class="el" href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81" title="Enum for selecting the Branching Variable selection heuristic.">babBase::enums::BV</a> for possible values. </p>
+<p>Which dimension to branch in for the current node. See documentation of <a class="el" href="namespacebab_base_1_1enums.html#a5563ee1434fe76d1f65565afe896cb81" title="Enum for selecting the Branching Variable selection heuristic. ">babBase::enums::BV</a> for possible values. </p>
 
 </div>
 </div>
@@ -404,7 +313,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">bool maingo::Settings::BAB_constraintPropagation</td>
+          <td class="memname">bool maingo::Settings::BAB_constraintPropagation = true</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -420,7 +329,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">bool maingo::Settings::BAB_dbbt</td>
+          <td class="memname">bool maingo::Settings::BAB_dbbt = true</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -436,7 +345,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">unsigned maingo::Settings::BAB_logFreq</td>
+          <td class="memname">unsigned maingo::Settings::BAB_logFreq = 100</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -452,7 +361,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">unsigned maingo::Settings::BAB_maxIterations</td>
+          <td class="memname">unsigned maingo::Settings::BAB_maxIterations = std::numeric_limits&lt;unsigned&gt;::max()</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -468,7 +377,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">unsigned maingo::Settings::BAB_maxNodes</td>
+          <td class="memname">unsigned maingo::Settings::BAB_maxNodes = std::numeric_limits&lt;unsigned&gt;::max()</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -484,12 +393,12 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5">babBase::enums::NS</a> maingo::Settings::BAB_nodeSelection</td>
+          <td class="memname"><a class="el" href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5">babBase::enums::NS</a> maingo::Settings::BAB_nodeSelection = <a class="el" href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5a27cb24b7ae25692a53e21298b16223b5">babBase::enums::NS_BESTBOUND</a></td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<p>How to select the next node to process. See documentation of <a class="el" href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5" title="Enum for selecting the Node Selection heuristic.">babBase::enums::NS</a> for possible values. </p>
+<p>How to select the next node to process. See documentation of <a class="el" href="namespacebab_base_1_1enums.html#a02e97c49bffe195071c83aa097a8dde5" title="Enum for selecting the Node Selection heuristic. ">babBase::enums::NS</a> for possible values. </p>
 
 </div>
 </div>
@@ -500,7 +409,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">unsigned maingo::Settings::BAB_printFreq</td>
+          <td class="memname">unsigned maingo::Settings::BAB_printFreq = 100</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -516,7 +425,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">bool maingo::Settings::BAB_probing</td>
+          <td class="memname">bool maingo::Settings::BAB_probing = false</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -532,12 +441,12 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a> maingo::Settings::BAB_verbosity</td>
+          <td class="memname"><a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a> maingo::Settings::BAB_verbosity = <a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991bea46b5de1abddbaba6cf2a9b54852c0a6c">VERB_NORMAL</a></td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<p>How much output to print from Branch &amp; Bound solver. Possible values are VERB_NONE (=0), VERB_NORMAL (=1), VERB_ALL (=2) </p>
+<p>How much output to print from Branch &amp; Bound solver. See documentation of <a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">maingo::VERB</a> for possible values. </p>
 
 </div>
 </div>
@@ -548,7 +457,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">bool maingo::Settings::confirmTermination</td>
+          <td class="memname">bool maingo::Settings::confirmTermination = false</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -564,12 +473,12 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">double maingo::Settings::deltaEq</td>
+          <td class="memname">double maingo::Settings::deltaEq = 1.0e-6</td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<p>Absolute feasibility tolerance for equality constraints (i.e., constraint is considered satisfied if |hi_(x)|&lt;=UBP_delta_eq. </p>
+<p>Absolute feasibility tolerance for equality constraints, i.e., constraint is considered satisfied if |hi_(x)|&lt;=UBP_delta_eq. </p>
 
 </div>
 </div>
@@ -580,12 +489,12 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">double maingo::Settings::deltaIneq</td>
+          <td class="memname">double maingo::Settings::deltaIneq = 1.0e-6</td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<p>Absolute feasibility tolerance for inequality constraints (i.e., constraint is considered satisfied if gi_(x)&lt;=UBP_delta_ineq. </p>
+<p>Absolute feasibility tolerance for inequality constraints, i.e., constraint is considered satisfied if gi_(x)&lt;=UBP_delta_ineq. </p>
 
 </div>
 </div>
@@ -596,7 +505,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">unsigned maingo::Settings::EC_nPoints</td>
+          <td class="memname">unsigned maingo::Settings::EC_nPoints = 10</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -612,7 +521,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">double maingo::Settings::epsilonA</td>
+          <td class="memname">double maingo::Settings::epsilonA = 1.0e-2</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -628,7 +537,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">double maingo::Settings::epsilonR</td>
+          <td class="memname">double maingo::Settings::epsilonR = 1.0e-2</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -644,7 +553,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">double maingo::Settings::infinity</td>
+          <td class="memname">double maingo::Settings::infinity = std::numeric_limits&lt;double&gt;::max()</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -660,7 +569,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">unsigned maingo::Settings::LBP_activateMoreScaling</td>
+          <td class="memname">unsigned maingo::Settings::LBP_activateMoreScaling = 10000</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -676,7 +585,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">bool maingo::Settings::LBP_addAuxiliaryVars</td>
+          <td class="memname">bool maingo::Settings::LBP_addAuxiliaryVars = false</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -692,12 +601,12 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2">lbp::LINP</a> maingo::Settings::LBP_linPoints</td>
+          <td class="memname"><a class="el" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2">lbp::LINP</a> maingo::Settings::LBP_linPoints = <a class="el" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2a5c70e54dadb090b3234669343d814e3a">lbp::LINP_MID</a></td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<p>At which points to linearize for affine relaxation. See documentation of <a class="el" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2" title="Enum for selecting the Linearization Points to be used in constructing affine relaxations.">lbp::LINP</a> for possible values. </p>
+<p>At which points to linearize for affine relaxation. See documentation of <a class="el" href="namespacemaingo_1_1lbp.html#addd00d5f7ff74c4721070d8dd76f93a2" title="Enum for selecting the Linearization Points to be used in constructing affine relaxations. ">lbp::LINP</a> for possible values. </p>
 
 </div>
 </div>
@@ -708,7 +617,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">unsigned maingo::Settings::LBP_maxNumberOfAddedFactors</td>
+          <td class="memname">unsigned maingo::Settings::LBP_maxNumberOfAddedFactors = 1</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -724,7 +633,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">unsigned maingo::Settings::LBP_minFactorsForAux</td>
+          <td class="memname">unsigned maingo::Settings::LBP_minFactorsForAux = 2</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -740,7 +649,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">double maingo::Settings::LBP_obbtMinImprovement</td>
+          <td class="memname">double maingo::Settings::LBP_obbtMinImprovement = 0.01</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -756,12 +665,12 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4be">lbp::LBP_SOLVER</a> maingo::Settings::LBP_solver</td>
+          <td class="memname"><a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4be">lbp::LBP_SOLVER</a> maingo::Settings::LBP_solver = <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4bea9c0bfb2a028e4a3ab6011619009d62d9">lbp::LBP_SOLVER_CLP</a></td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<p>Solver for solution of (mixed-integer) linear lower bounding problems. It also sets the solver when solving purely (mixed-integer) quadratic/linear problems. </p>
+<p>Solver for solution of (mixed-integer) linear lower bounding problems. It also sets the solver when solving purely (mixed-integer) quadratic/linear problems. See documentation of <a class="el" href="namespacemaingo_1_1lbp.html#a93b68678c7bf3f3767b5ac7adf55a4be">lbp::LBP_SOLVER</a> for possible values. </p>
 
 </div>
 </div>
@@ -772,7 +681,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">bool maingo::Settings::LBP_subgradientIntervals</td>
+          <td class="memname">bool maingo::Settings::LBP_subgradientIntervals = true</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -788,12 +697,28 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a> maingo::Settings::LBP_verbosity</td>
+          <td class="memname"><a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a> maingo::Settings::LBP_verbosity = <a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991bea46b5de1abddbaba6cf2a9b54852c0a6c">VERB_NORMAL</a></td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<p>How much output to print from Lower Bounding Solver. Possible values are VERB_NONE (=0), VERB_NORMAL (=1), VERB_ALL (=2) </p>
+<p>How much output to print from Lower Bounding Solver. See documentation of <a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">maingo::VERB</a> for possible values. </p>
+
+</div>
+</div>
+<a id="ad665aeee888f2746d7892ffc66bd5340"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad665aeee888f2746d7892ffc66bd5340">&#9670;&nbsp;</a></span>loggingDestination</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4">LOGGING_DESTINATION</a> maingo::Settings::loggingDestination = <a class="el" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4aaeb2ef5d2157419a5fe03924e9fbb714">LOGGING_FILE_AND_STREAM</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Where to print or write the output. See documentation of <a class="el" href="namespacemaingo.html#aed64ab21c095ed6882ea61128addd7a4">maingo::LOGGING_DESTINATION</a> for possible values. </p>
 
 </div>
 </div>
@@ -804,7 +729,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">unsigned maingo::Settings::maxTime</td>
+          <td class="memname">unsigned maingo::Settings::maxTime = 86400</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -820,12 +745,12 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">double maingo::Settings::MC_envelTol</td>
+          <td class="memname">double maingo::Settings::MC_envelTol = 1.0e-9</td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<p>(see MC++ documentation for details) </p>
+<p>Tolerance for computing the envelopes of intrinsic functions (see MC++ documentation for details) </p>
 
 </div>
 </div>
@@ -836,12 +761,12 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">double maingo::Settings::MC_mvcompTol</td>
+          <td class="memname">double maingo::Settings::MC_mvcompTol = 1.0e-9</td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<p>(see MC++ documentation for details) </p>
+<p>Tolerance used in the multivariate composition theorem for computing McCormick relaxations (see MC++ documentation for details) </p>
 
 </div>
 </div>
@@ -852,7 +777,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">bool maingo::Settings::MC_mvcompUse</td>
+          <td class="memname">bool maingo::Settings::MC_mvcompUse = true</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -861,19 +786,19 @@ Public Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="a63963398865197f332049e6a247bcb35"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a63963398865197f332049e6a247bcb35">&#9670;&nbsp;</a></span>outstreamVerbosity</h2>
+<a id="a5d637f32b3496797a5a327fba9b2589a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5d637f32b3496797a5a327fba9b2589a">&#9670;&nbsp;</a></span>modelWritingLanguage</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="namespacemaingo.html#a3d9300c6853caaf91b0afc24d3dd1ae0">OUTSTREAM_VERB</a> maingo::Settings::outstreamVerbosity</td>
+          <td class="memname"><a class="el" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39a">WRITING_LANGUAGE</a> maingo::Settings::modelWritingLanguage = <a class="el" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39aacd2ad11121ce71554943363ac99cd0c8">LANG_NONE</a></td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<p>Where to print or write the output. Possible values are OUTSTREAM_NONE (=0), OUTSTREAM_OUTSTREAM (=1), OUTSTREAM_LOG (=2), OUTSTREAM_BOTH (=3) </p>
+<p>In what modeling language to write the current model to a file in. See documentation of <a class="el" href="namespacemaingo.html#a76021544553e05d3b4de6cbcf58db39a">maingo::WRITING_LANGUAGE</a> for possible values. </p>
 
 </div>
 </div>
@@ -884,7 +809,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">unsigned maingo::Settings::PRE_maxLocalSearches</td>
+          <td class="memname">unsigned maingo::Settings::PRE_maxLocalSearches = 3</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -900,7 +825,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">unsigned maingo::Settings::PRE_obbtMaxRounds</td>
+          <td class="memname">unsigned maingo::Settings::PRE_obbtMaxRounds = 10</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -916,7 +841,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">bool maingo::Settings::PRE_printEveryLocalSearch</td>
+          <td class="memname">bool maingo::Settings::PRE_printEveryLocalSearch = false</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -932,7 +857,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">bool maingo::Settings::PRE_pureMultistart</td>
+          <td class="memname">bool maingo::Settings::PRE_pureMultistart = false</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -948,12 +873,12 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">double maingo::Settings::relNodeTol</td>
+          <td class="memname">double maingo::Settings::relNodeTol = 1.0e-9</td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<p>Relative tolerance for minimum node size. </p>
+<p>Relative tolerance for minimum node size. Nodes are discarded if in every dimension their width gets below this tolerance times the original width. In this case, global optimality to the desired optimality tolerances may not be reached. </p>
 
 </div>
 </div>
@@ -964,7 +889,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">double maingo::Settings::targetLowerBound</td>
+          <td class="memname">double maingo::Settings::targetLowerBound = std::numeric_limits&lt;double&gt;::max()</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -980,7 +905,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">double maingo::Settings::targetUpperBound</td>
+          <td class="memname">double maingo::Settings::targetUpperBound = -std::numeric_limits&lt;double&gt;::max()</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -996,7 +921,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">bool maingo::Settings::terminateOnFeasiblePoint</td>
+          <td class="memname">bool maingo::Settings::terminateOnFeasiblePoint = false</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -1012,7 +937,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">bool maingo::Settings::UBP_ignoreNodeBounds</td>
+          <td class="memname">bool maingo::Settings::UBP_ignoreNodeBounds = false</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -1028,7 +953,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">unsigned maingo::Settings::UBP_maxStepsBab</td>
+          <td class="memname">unsigned maingo::Settings::UBP_maxStepsBab = 3</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -1044,7 +969,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">unsigned maingo::Settings::UBP_maxStepsPreprocessing</td>
+          <td class="memname">unsigned maingo::Settings::UBP_maxStepsPreprocessing = 3000</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -1060,7 +985,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">double maingo::Settings::UBP_maxTimeBab</td>
+          <td class="memname">double maingo::Settings::UBP_maxTimeBab = 10.0</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -1076,7 +1001,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">double maingo::Settings::UBP_maxTimePreprocessing</td>
+          <td class="memname">double maingo::Settings::UBP_maxTimePreprocessing = 100.0</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -1092,12 +1017,12 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9d">ubp::UBP_SOLVER</a> maingo::Settings::UBP_solverBab</td>
+          <td class="memname"><a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9d">ubp::UBP_SOLVER</a> maingo::Settings::UBP_solverBab = <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da5e8733223dd08864a8d5effbb341992a">ubp::UBP_SOLVER_SLSQP</a></td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<p>Solver to be used during Branch-and-Bound. See documentation of <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9d" title="Enum for selecting the STRATegy so be used for solving the upper bounding problems.">ubp::UBP_SOLVER</a> for possible values. </p>
+<p>Solver to be used during Branch-and-Bound. See documentation of <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9d" title="Enum for selecting the STRATegy so be used for solving the upper bounding problems. ">ubp::UBP_SOLVER</a> for possible values. </p>
 
 </div>
 </div>
@@ -1108,12 +1033,12 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9d">ubp::UBP_SOLVER</a> maingo::Settings::UBP_solverPreprocessing</td>
+          <td class="memname"><a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9d">ubp::UBP_SOLVER</a> maingo::Settings::UBP_solverPreprocessing = <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9da3d2c4a7fd42fd747fe825ec8f0b1a1ad">ubp::UBP_SOLVER_IPOPT</a></td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<p>Solver to be used during pre-processing (i.e., multistart). See documentation of <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9d" title="Enum for selecting the STRATegy so be used for solving the upper bounding problems.">ubp::UBP_SOLVER</a> for possible values. </p>
+<p>Solver to be used during pre-processing (i.e., multistart). See documentation of <a class="el" href="namespacemaingo_1_1ubp.html#acc8477a9a8bca6eb434b2bd647f62f9d" title="Enum for selecting the STRATegy so be used for solving the upper bounding problems. ">ubp::UBP_SOLVER</a> for possible values. </p>
 
 </div>
 </div>
@@ -1124,12 +1049,12 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a> maingo::Settings::UBP_verbosity</td>
+          <td class="memname"><a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">VERB</a> maingo::Settings::UBP_verbosity = <a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991bea46b5de1abddbaba6cf2a9b54852c0a6c">VERB_NORMAL</a></td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<p>How much output to print from Upper Bounding Solver. Possible values are VERB_NONE (=0), VERB_NORMAL (=1), VERB_ALL (=2) </p>
+<p>How much output to print from Upper Bounding Solver. See documentation of <a class="el" href="namespacemaingo.html#a53603cf77a4aab12b16a3cce79b991be">maingo::VERB</a> for possible values. </p>
 
 </div>
 </div>
@@ -1140,12 +1065,12 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">bool maingo::Settings::writeCsv</td>
+          <td class="memname">bool maingo::Settings::writeCsv = false</td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<p>Whether to write csv-log files (named bab_Report_General.csv and bab_Report_Iterations.csv). </p>
+<p>Whether to write csv-log files (named bab_statistics.csv and bab_iterations.csv). </p>
 
 </div>
 </div>
@@ -1156,7 +1081,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">bool maingo::Settings::writeJson</td>
+          <td class="memname">bool maingo::Settings::writeJson = false</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -1165,30 +1090,14 @@ Public Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="acec36c3b03a651632336594c40d5026a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#acec36c3b03a651632336594c40d5026a">&#9670;&nbsp;</a></span>writeLog</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">bool maingo::Settings::writeLog</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p>Whether to write a log file (named bab.log) </p>
-
-</div>
-</div>
-<a id="a6d6da9a089684ecd8eb3dc560e14c0ca"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a6d6da9a089684ecd8eb3dc560e14c0ca">&#9670;&nbsp;</a></span>writeResFile</h2>
+<a id="a56d7d3b6246ae45af98b44102edbb28b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a56d7d3b6246ae45af98b44102edbb28b">&#9670;&nbsp;</a></span>writeResultFile</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">bool maingo::Settings::writeResFile</td>
+          <td class="memname">bool maingo::Settings::writeResultFile = true</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -1204,7 +1113,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">unsigned maingo::Settings::writeToLogSec</td>
+          <td class="memname">unsigned maingo::Settings::writeToLogSec = 1800</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -1213,25 +1122,8 @@ Public Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="a440a841800111853d7366c1626242de6"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a440a841800111853d7366c1626242de6">&#9670;&nbsp;</a></span>writeToOtherLanguage</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="namespacemaingo.html#a7fda513a30bb172152b96406e370299a">PARSING_LANGUAGE</a> maingo::Settings::writeToOtherLanguage</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p>Write to a file in a different modeling language. </p>
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following files:<ul>
-<li>C:/Users/dobo01/maingo/inc/<a class="el" href="settings_8h_source.html">settings.h</a></li>
-<li>C:/Users/dobo01/maingo/src/<a class="el" href="settings_8cpp.html">settings.cpp</a></li>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>C:/dobo01/maingo/inc/<a class="el" href="settings_8h_source.html">settings.h</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -1241,7 +1133,7 @@ Public Attributes</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="structmaingo_1_1_settings.html">Settings</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/structmaingo_1_1_settings.js b/doc/html/structmaingo_1_1_settings.js
index ab9827c8b53062aa305e783e5e99ab82fa5aef30..4461ed14589af9ef6dce0c2bb78c4d2e68e9e878 100644
--- a/doc/html/structmaingo_1_1_settings.js
+++ b/doc/html/structmaingo_1_1_settings.js
@@ -1,8 +1,5 @@
 var structmaingo_1_1_settings =
 [
-    [ "Settings", "structmaingo_1_1_settings.html#ab7169a6eefce79566dd07db3b1e5e967", null ],
-    [ "Settings", "structmaingo_1_1_settings.html#a74c2b2798213ed88903b13e8d9ca14e2", null ],
-    [ "operator=", "structmaingo_1_1_settings.html#a5e9afadd1d866d01c96a114686b32672", null ],
     [ "BAB_alwaysSolveObbt", "structmaingo_1_1_settings.html#a8fd91a3766129137cae15447565e7923", null ],
     [ "BAB_branchVariable", "structmaingo_1_1_settings.html#ae9318c3868a221c8cb642e8c9f413dc2", null ],
     [ "BAB_constraintPropagation", "structmaingo_1_1_settings.html#a774378c7d329fb73be3cbb765f035cb6", null ],
@@ -30,11 +27,12 @@ var structmaingo_1_1_settings =
     [ "LBP_solver", "structmaingo_1_1_settings.html#a3e066fd5fb513813ec370f23a1cf5332", null ],
     [ "LBP_subgradientIntervals", "structmaingo_1_1_settings.html#a4ea318d33514aecb909d04ac014dec5c", null ],
     [ "LBP_verbosity", "structmaingo_1_1_settings.html#a3bca851ad2486ec398bf0cff511fb805", null ],
+    [ "loggingDestination", "structmaingo_1_1_settings.html#ad665aeee888f2746d7892ffc66bd5340", null ],
     [ "maxTime", "structmaingo_1_1_settings.html#a97970d98cd9d1d8972cc048d339b53dc", null ],
     [ "MC_envelTol", "structmaingo_1_1_settings.html#a6a33331a9a865594b6698fb770687f8f", null ],
     [ "MC_mvcompTol", "structmaingo_1_1_settings.html#aec5925d3412be881fb7fac711718e7e4", null ],
     [ "MC_mvcompUse", "structmaingo_1_1_settings.html#ae7029d17219326a8cbf366f214bb4706", null ],
-    [ "outstreamVerbosity", "structmaingo_1_1_settings.html#a63963398865197f332049e6a247bcb35", null ],
+    [ "modelWritingLanguage", "structmaingo_1_1_settings.html#a5d637f32b3496797a5a327fba9b2589a", null ],
     [ "PRE_maxLocalSearches", "structmaingo_1_1_settings.html#a3003863167eab673fbeae391bfeb802b", null ],
     [ "PRE_obbtMaxRounds", "structmaingo_1_1_settings.html#a34c3073ced91a6837df66cfddd3a74ee", null ],
     [ "PRE_printEveryLocalSearch", "structmaingo_1_1_settings.html#aed67a51e2390de794d1e7e98a1a90206", null ],
@@ -53,8 +51,6 @@ var structmaingo_1_1_settings =
     [ "UBP_verbosity", "structmaingo_1_1_settings.html#af98e35447c8568c1613daf7447a30307", null ],
     [ "writeCsv", "structmaingo_1_1_settings.html#a6fb19c2296412e1143f77fd7b949e7e3", null ],
     [ "writeJson", "structmaingo_1_1_settings.html#a891666257be2a508061697ea80a01ada", null ],
-    [ "writeLog", "structmaingo_1_1_settings.html#acec36c3b03a651632336594c40d5026a", null ],
-    [ "writeResFile", "structmaingo_1_1_settings.html#a6d6da9a089684ecd8eb3dc560e14c0ca", null ],
-    [ "writeToLogSec", "structmaingo_1_1_settings.html#aa0a8bf977559001dd0a4cda0d7908ebb", null ],
-    [ "writeToOtherLanguage", "structmaingo_1_1_settings.html#a440a841800111853d7366c1626242de6", null ]
+    [ "writeResultFile", "structmaingo_1_1_settings.html#a56d7d3b6246ae45af98b44102edbb28b", null ],
+    [ "writeToLogSec", "structmaingo_1_1_settings.html#aa0a8bf977559001dd0a4cda0d7908ebb", null ]
 ];
\ No newline at end of file
diff --git a/doc/html/structmaingo_1_1lbp_1_1_dag_obj-members.html b/doc/html/structmaingo_1_1lbp_1_1_dag_obj-members.html
index 238361e6793861a375f1720ca5f6d37fd5a78362..4a999c4d2116526fa6dd4577a70eb14ff2cb007a 100644
--- a/doc/html/structmaingo_1_1lbp_1_1_dag_obj-members.html
+++ b/doc/html/structmaingo_1_1lbp_1_1_dag_obj-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -93,12 +93,12 @@ $(document).ready(function(){initNavTree('structmaingo_1_1lbp_1_1_dag_obj.html',
 
 <p>This is the complete list of members for <a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html">maingo::lbp::DagObj</a>, including all inherited members.</p>
 <table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#a83cea7e83eb4744af421af42ab4c5cdb">_constraintProperties</a></td><td class="entry"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html">maingo::lbp::DagObj</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#af2ba1ac965bfc48025172b978cbee2c6">_constraintProperties</a></td><td class="entry"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html">maingo::lbp::DagObj</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#abfef6333d33007bac6f1c1236fba3979">chosenLinPoints</a></td><td class="entry"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html">maingo::lbp::DagObj</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#adb5408c4f27e5267ba0086a2df4b29fa">constraintIntervals</a></td><td class="entry"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html">maingo::lbp::DagObj</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#af5c84556b2dcec10b61dfaf09d8e57e3">currentIntervals</a></td><td class="entry"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html">maingo::lbp::DagObj</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#ac3f57f81e20ba26fe667dc3b1d970e65">DAG</a></td><td class="entry"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html">maingo::lbp::DagObj</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#afb7fb4ac1246771689f6e244e4777b06">DagObj</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineq, const unsigned neq, const unsigned nineqRelaxationOnly, const unsigned neqRelaxationOnly, const unsigned nineqSquash, Settings *settings, std::vector&lt; Constraint &gt; *constraintPropertiesIn)</td><td class="entry"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html">maingo::lbp::DagObj</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#a03d316c8bf417fbb010961bb31d7cdbc">DagObj</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineq, const unsigned neq, const unsigned nineqRelaxationOnly, const unsigned neqRelaxationOnly, const unsigned nineqSquash, std::shared_ptr&lt; Settings &gt; settings, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn)</td><td class="entry"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html">maingo::lbp::DagObj</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#a0285f2c7a74ddd1f3f4157425e9bc984">functions</a></td><td class="entry"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html">maingo::lbp::DagObj</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#a5292973594aca82930d13ed65fc306eb">functionsEq</a></td><td class="entry"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html">maingo::lbp::DagObj</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#a220647ff8c33ac5368e862168c8c3b16">functionsEqRelaxationOnly</a></td><td class="entry"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html">maingo::lbp::DagObj</a></td><td class="entry"></td></tr>
@@ -142,7 +142,7 @@ $(document).ready(function(){initNavTree('structmaingo_1_1lbp_1_1_dag_obj.html',
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/structmaingo_1_1lbp_1_1_dag_obj.html b/doc/html/structmaingo_1_1lbp_1_1_dag_obj.html
index 900046d179ce7ab277a07a8180a2b4175396bf1d..b42a2d4c777851188476c6d9254e67e49b64e785 100644
--- a/doc/html/structmaingo_1_1lbp_1_1_dag_obj.html
+++ b/doc/html/structmaingo_1_1lbp_1_1_dag_obj.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::lbp::DagObj Struct Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -102,9 +102,9 @@ $(document).ready(function(){initNavTree('structmaingo_1_1lbp_1_1_dag_obj.html',
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:afb7fb4ac1246771689f6e244e4777b06"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#afb7fb4ac1246771689f6e244e4777b06">DagObj</a> (mc::FFGraph &amp;<a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#ac3f57f81e20ba26fe667dc3b1d970e65">DAG</a>, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineq, const unsigned neq, const unsigned nineqRelaxationOnly, const unsigned neqRelaxationOnly, const unsigned nineqSquash, <a class="el" href="structmaingo_1_1_settings.html">Settings</a> *settings, std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *constraintPropertiesIn)</td></tr>
-<tr class="memdesc:afb7fb4ac1246771689f6e244e4777b06"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#afb7fb4ac1246771689f6e244e4777b06">More...</a><br /></td></tr>
-<tr class="separator:afb7fb4ac1246771689f6e244e4777b06"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a03d316c8bf417fbb010961bb31d7cdbc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#a03d316c8bf417fbb010961bb31d7cdbc">DagObj</a> (mc::FFGraph &amp;<a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#ac3f57f81e20ba26fe667dc3b1d970e65">DAG</a>, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineq, const unsigned neq, const unsigned nineqRelaxationOnly, const unsigned neqRelaxationOnly, const unsigned nineqSquash, std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt; settings, std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt; constraintPropertiesIn)</td></tr>
+<tr class="memdesc:a03d316c8bf417fbb010961bb31d7cdbc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a03d316c8bf417fbb010961bb31d7cdbc">More...</a><br /></td></tr>
+<tr class="separator:a03d316c8bf417fbb010961bb31d7cdbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:afdac6172a450f8b76c8323b9ee88905a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#afdac6172a450f8b76c8323b9ee88905a">initialize_vMcCormick</a> ()</td></tr>
 <tr class="memdesc:afdac6172a450f8b76c8323b9ee88905a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for additional stuff neeeded when using vector McCormick.  <a href="#afdac6172a450f8b76c8323b9ee88905a">More...</a><br /></td></tr>
 <tr class="separator:afdac6172a450f8b76c8323b9ee88905a"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -129,11 +129,11 @@ Public Attributes</h2></td></tr>
 <tr class="separator:a4b66f6a2a3f9e82321e23c25c1ea5110"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a1f775701cf6bd72a47813a9557d02b19"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#a1f775701cf6bd72a47813a9557d02b19">intervals_already_computed</a></td></tr>
 <tr class="separator:a1f775701cf6bd72a47813a9557d02b19"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae58400f843a41b78fa38b70d22ccc5c0"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="interval_library_8h.html#a719e28aa7350b1ab0efe53725d78a54f">I</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#ae58400f843a41b78fa38b70d22ccc5c0">intervalArray</a></td></tr>
+<tr class="memitem:ae58400f843a41b78fa38b70d22ccc5c0"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="interval_library_8h.html#a752577663acb2d105778a51e93452c1a">I</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#ae58400f843a41b78fa38b70d22ccc5c0">intervalArray</a></td></tr>
 <tr class="separator:ae58400f843a41b78fa38b70d22ccc5c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:adb5408c4f27e5267ba0086a2df4b29fa"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="interval_library_8h.html#a719e28aa7350b1ab0efe53725d78a54f">I</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#adb5408c4f27e5267ba0086a2df4b29fa">constraintIntervals</a></td></tr>
+<tr class="memitem:adb5408c4f27e5267ba0086a2df4b29fa"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="interval_library_8h.html#a752577663acb2d105778a51e93452c1a">I</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#adb5408c4f27e5267ba0086a2df4b29fa">constraintIntervals</a></td></tr>
 <tr class="separator:adb5408c4f27e5267ba0086a2df4b29fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af5c84556b2dcec10b61dfaf09d8e57e3"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="interval_library_8h.html#a719e28aa7350b1ab0efe53725d78a54f">I</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#af5c84556b2dcec10b61dfaf09d8e57e3">currentIntervals</a></td></tr>
+<tr class="memitem:af5c84556b2dcec10b61dfaf09d8e57e3"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="interval_library_8h.html#a752577663acb2d105778a51e93452c1a">I</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#af5c84556b2dcec10b61dfaf09d8e57e3">currentIntervals</a></td></tr>
 <tr class="separator:af5c84556b2dcec10b61dfaf09d8e57e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a1433832249455df519f816c2aef102c5"><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::vector&lt; mc::FFVar &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#a1433832249455df519f816c2aef102c5">functionsObj</a></td></tr>
 <tr class="separator:a1433832249455df519f816c2aef102c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -189,15 +189,15 @@ Public Attributes</h2></td></tr>
 <tr class="separator:abfef6333d33007bac6f1c1236fba3979"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aafb406768277c0b3935a707000b0e2a5"><td class="memItemLeft" align="right" valign="top">std::vector&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#aafb406768277c0b3935a707000b0e2a5">objRowFilled</a></td></tr>
 <tr class="separator:aafb406768277c0b3935a707000b0e2a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a83cea7e83eb4744af421af42ab4c5cdb"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#a83cea7e83eb4744af421af42ab4c5cdb">_constraintProperties</a></td></tr>
-<tr class="separator:a83cea7e83eb4744af421af42ab4c5cdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af2ba1ac965bfc48025172b978cbee2c6"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html#af2ba1ac965bfc48025172b978cbee2c6">_constraintProperties</a></td></tr>
+<tr class="separator:af2ba1ac965bfc48025172b978cbee2c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><p>Struct for storing all needed Directed acyclic Graph objects for the upper bounding solver. </p>
 <p>Contains all objects, copies and variables for the usage of the DAG. Further information on DAG can be found in ffunc.hpp of MC++. </p>
 </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a id="afb7fb4ac1246771689f6e244e4777b06"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#afb7fb4ac1246771689f6e244e4777b06">&#9670;&nbsp;</a></span>DagObj()</h2>
+<a id="a03d316c8bf417fbb010961bb31d7cdbc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a03d316c8bf417fbb010961bb31d7cdbc">&#9670;&nbsp;</a></span>DagObj()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -259,13 +259,13 @@ Public Attributes</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="structmaingo_1_1_settings.html">Settings</a> *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt;&#160;</td>
           <td class="paramname"><em>settings</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt;&#160;</td>
           <td class="paramname"><em>constraintPropertiesIn</em>&#160;</td>
         </tr>
         <tr>
@@ -301,14 +301,14 @@ Public Attributes</h2></td></tr>
 </div>
 </div>
 <h2 class="groupheader">Member Data Documentation</h2>
-<a id="a83cea7e83eb4744af421af42ab4c5cdb"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a83cea7e83eb4744af421af42ab4c5cdb">&#9670;&nbsp;</a></span>_constraintProperties</h2>
+<a id="af2ba1ac965bfc48025172b978cbee2c6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af2ba1ac965bfc48025172b978cbee2c6">&#9670;&nbsp;</a></span>_constraintProperties</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">std::vector&lt;<a class="el" href="structmaingo_1_1_constraint.html">Constraint</a>&gt;* maingo::lbp::DagObj::_constraintProperties</td>
+          <td class="memname">std::shared_ptr&lt;std::vector&lt;<a class="el" href="structmaingo_1_1_constraint.html">Constraint</a>&gt; &gt; maingo::lbp::DagObj::_constraintProperties</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -338,7 +338,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">std::vector&lt;<a class="el" href="interval_library_8h.html#a719e28aa7350b1ab0efe53725d78a54f">I</a>&gt; maingo::lbp::DagObj::constraintIntervals</td>
+          <td class="memname">std::vector&lt;<a class="el" href="interval_library_8h.html#a752577663acb2d105778a51e93452c1a">I</a>&gt; maingo::lbp::DagObj::constraintIntervals</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -353,7 +353,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">std::vector&lt;<a class="el" href="interval_library_8h.html#a719e28aa7350b1ab0efe53725d78a54f">I</a>&gt; maingo::lbp::DagObj::currentIntervals</td>
+          <td class="memname">std::vector&lt;<a class="el" href="interval_library_8h.html#a752577663acb2d105778a51e93452c1a">I</a>&gt; maingo::lbp::DagObj::currentIntervals</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -533,7 +533,7 @@ Public Attributes</h2></td></tr>
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">std::vector&lt;<a class="el" href="interval_library_8h.html#a719e28aa7350b1ab0efe53725d78a54f">I</a>&gt; maingo::lbp::DagObj::intervalArray</td>
+          <td class="memname">std::vector&lt;<a class="el" href="interval_library_8h.html#a752577663acb2d105778a51e93452c1a">I</a>&gt; maingo::lbp::DagObj::intervalArray</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -902,8 +902,8 @@ Public Attributes</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this struct was generated from the following files:<ul>
-<li>C:/Users/dobo01/maingo/inc/<a class="el" href="lbp_dag_obj_8h_source.html">lbpDagObj.h</a></li>
-<li>C:/Users/dobo01/maingo/src/<a class="el" href="lbp_dag_obj_8cpp.html">lbpDagObj.cpp</a></li>
+<li>C:/dobo01/maingo/inc/<a class="el" href="lbp_dag_obj_8h_source.html">lbpDagObj.h</a></li>
+<li>C:/dobo01/maingo/src/<a class="el" href="lbp_dag_obj_8cpp.html">lbpDagObj.cpp</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -913,7 +913,7 @@ Public Attributes</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="namespacemaingo_1_1lbp.html">lbp</a></li><li class="navelem"><a class="el" href="structmaingo_1_1lbp_1_1_dag_obj.html">DagObj</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/structmaingo_1_1lbp_1_1_dag_obj.js b/doc/html/structmaingo_1_1lbp_1_1_dag_obj.js
index ffc917fcd9d9f6e217d2574c31bf7dbdf8385c5e..781d211df39e3fd8ceb6d725fff37744e83e8f07 100644
--- a/doc/html/structmaingo_1_1lbp_1_1_dag_obj.js
+++ b/doc/html/structmaingo_1_1lbp_1_1_dag_obj.js
@@ -1,8 +1,8 @@
 var structmaingo_1_1lbp_1_1_dag_obj =
 [
-    [ "DagObj", "structmaingo_1_1lbp_1_1_dag_obj.html#afb7fb4ac1246771689f6e244e4777b06", null ],
+    [ "DagObj", "structmaingo_1_1lbp_1_1_dag_obj.html#a03d316c8bf417fbb010961bb31d7cdbc", null ],
     [ "initialize_vMcCormick", "structmaingo_1_1lbp_1_1_dag_obj.html#afdac6172a450f8b76c8323b9ee88905a", null ],
-    [ "_constraintProperties", "structmaingo_1_1lbp_1_1_dag_obj.html#a83cea7e83eb4744af421af42ab4c5cdb", null ],
+    [ "_constraintProperties", "structmaingo_1_1lbp_1_1_dag_obj.html#af2ba1ac965bfc48025172b978cbee2c6", null ],
     [ "chosenLinPoints", "structmaingo_1_1lbp_1_1_dag_obj.html#abfef6333d33007bac6f1c1236fba3979", null ],
     [ "constraintIntervals", "structmaingo_1_1lbp_1_1_dag_obj.html#adb5408c4f27e5267ba0086a2df4b29fa", null ],
     [ "currentIntervals", "structmaingo_1_1lbp_1_1_dag_obj.html#af5c84556b2dcec10b61dfaf09d8e57e3", null ],
diff --git a/doc/html/structmaingo_1_1lbp_1_1_lbp_dual_info-members.html b/doc/html/structmaingo_1_1lbp_1_1_lbp_dual_info-members.html
index 0ef5bbee6668fe6017eeb9b25550c967df1cdf13..829fd11331ff480580747943115d16e473a79eee 100644
--- a/doc/html/structmaingo_1_1lbp_1_1_lbp_dual_info-members.html
+++ b/doc/html/structmaingo_1_1lbp_1_1_lbp_dual_info-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -102,7 +102,7 @@ $(document).ready(function(){initNavTree('structmaingo_1_1lbp_1_1_lbp_dual_info.
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/structmaingo_1_1lbp_1_1_lbp_dual_info.html b/doc/html/structmaingo_1_1lbp_1_1_lbp_dual_info.html
index ca0a7d10b52994dd0d20c62d8e2e3c110600263a..35d035d0375d63235bfaa31d6e6c194286295b05 100644
--- a/doc/html/structmaingo_1_1lbp_1_1_lbp_dual_info.html
+++ b/doc/html/structmaingo_1_1lbp_1_1_lbp_dual_info.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::lbp::LbpDualInfo Struct Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -140,7 +140,7 @@ Public Attributes</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this struct was generated from the following file:<ul>
-<li>C:/Users/dobo01/maingo/inc/<a class="el" href="lbp_8h_source.html">lbp.h</a></li>
+<li>C:/dobo01/maingo/inc/<a class="el" href="lbp_8h_source.html">lbp.h</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -150,7 +150,7 @@ Public Attributes</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="namespacemaingo_1_1lbp.html">lbp</a></li><li class="navelem"><a class="el" href="structmaingo_1_1lbp_1_1_lbp_dual_info.html">LbpDualInfo</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/structmaingo_1_1ubp_1_1_dag_obj-members.html b/doc/html/structmaingo_1_1ubp_1_1_dag_obj-members.html
index 9a612eee7590e2da0202f36c5df02c81f908ee96..d7d9594452edcf0fabfb81451132028ffc48ae5d 100644
--- a/doc/html/structmaingo_1_1ubp_1_1_dag_obj-members.html
+++ b/doc/html/structmaingo_1_1ubp_1_1_dag_obj-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -96,7 +96,7 @@ $(document).ready(function(){initNavTree('structmaingo_1_1ubp_1_1_dag_obj.html',
   <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a803b289e729d816f8524f925302139db">adPoint</a></td><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html">maingo::ubp::DagObj</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a369f41e06ac7ca4c95af8520307186c5">adPoint2ndOrder</a></td><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html">maingo::ubp::DagObj</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a5782efab4dab2431bd571bd62d0c1fd5">DAG</a></td><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html">maingo::ubp::DagObj</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a38d4d4e046f3eea00ef8dce95ad36337">DagObj</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineq, const unsigned neq, const unsigned nineqSquash, std::vector&lt; Constraint &gt; *constraintProperties, Settings *settingsIn, Logger *loggerIn)</td><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html">maingo::ubp::DagObj</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a33f13fd662a2603c031c7284cd1ca098">DagObj</a>(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineq, const unsigned neq, const unsigned nineqSquash, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintProperties, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn)</td><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html">maingo::ubp::DagObj</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#ad7f9a8164274d3e3ca0caf88c8e2d1d7">doubleArray</a></td><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html">maingo::ubp::DagObj</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a86d90582d35eb5007f3341a575f66988">doublePoint</a></td><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html">maingo::ubp::DagObj</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a822afd74873ea833c98147373e504b9c">fadbadArray</a></td><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html">maingo::ubp::DagObj</a></td><td class="entry"></td></tr>
@@ -108,8 +108,8 @@ $(document).ready(function(){initNavTree('structmaingo_1_1ubp_1_1_dag_obj.html',
   <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a79773c586c9be6cba8e7fcb178d5b7b1">functionsIneqSquash</a></td><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html">maingo::ubp::DagObj</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a1e28bbb852ebf2742997e2ce62326135">functionsIneqSquashIneq</a></td><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html">maingo::ubp::DagObj</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#ae7db57e66cd7d725971aa6f218962b3d">functionsObj</a></td><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html">maingo::ubp::DagObj</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a61dda650b1a25155e541c4607fb7b82c">logger</a></td><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html">maingo::ubp::DagObj</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a4a939be99d5fff95ef5bd169d46fe205">maingoSettings</a></td><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html">maingo::ubp::DagObj</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a6e462e78027d46af3239c0463b7c9249">logger</a></td><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html">maingo::ubp::DagObj</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a8bebd0e09ae8e79b0826bb93cba34ffa">maingoSettings</a></td><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html">maingo::ubp::DagObj</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#adf62f216e68f2545bff7ca8c2380de9d">resultAD</a></td><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html">maingo::ubp::DagObj</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#afb24a800ca2cfab6f0e89caa4e821294">resultAD2ndOrder</a></td><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html">maingo::ubp::DagObj</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#adbdafa51a0de03a4d21425704bb7fd1b">resultADeq</a></td><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html">maingo::ubp::DagObj</a></td><td class="entry"></td></tr>
@@ -142,7 +142,7 @@ $(document).ready(function(){initNavTree('structmaingo_1_1ubp_1_1_dag_obj.html',
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/structmaingo_1_1ubp_1_1_dag_obj.html b/doc/html/structmaingo_1_1ubp_1_1_dag_obj.html
index d7b09029f7cb18ecd8a95f458dd8f03cb0b7419c..809dcee0a474eb95860c58557e661573d9e3ce7f 100644
--- a/doc/html/structmaingo_1_1ubp_1_1_dag_obj.html
+++ b/doc/html/structmaingo_1_1ubp_1_1_dag_obj.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::ubp::DagObj Struct Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -101,9 +101,9 @@ $(document).ready(function(){initNavTree('structmaingo_1_1ubp_1_1_dag_obj.html',
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:a38d4d4e046f3eea00ef8dce95ad36337"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a38d4d4e046f3eea00ef8dce95ad36337">DagObj</a> (mc::FFGraph &amp;<a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a5782efab4dab2431bd571bd62d0c1fd5">DAG</a>, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineq, const unsigned neq, const unsigned nineqSquash, std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *constraintProperties, <a class="el" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="el" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn)</td></tr>
-<tr class="memdesc:a38d4d4e046f3eea00ef8dce95ad36337"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a38d4d4e046f3eea00ef8dce95ad36337">More...</a><br /></td></tr>
-<tr class="separator:a38d4d4e046f3eea00ef8dce95ad36337"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a33f13fd662a2603c031c7284cd1ca098"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a33f13fd662a2603c031c7284cd1ca098">DagObj</a> (mc::FFGraph &amp;<a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a5782efab4dab2431bd571bd62d0c1fd5">DAG</a>, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineq, const unsigned neq, const unsigned nineqSquash, std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt; constraintProperties, std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt; settingsIn, std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt; loggerIn)</td></tr>
+<tr class="memdesc:a33f13fd662a2603c031c7284cd1ca098"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a33f13fd662a2603c031c7284cd1ca098">More...</a><br /></td></tr>
+<tr class="separator:a33f13fd662a2603c031c7284cd1ca098"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
 Public Attributes</h2></td></tr>
@@ -184,10 +184,10 @@ Public Attributes</h2></td></tr>
 <tr class="separator:ae8a488bec0d4c2a6f2474ba507ec559d"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a05ab21ce93cddce80e9fd39d8be49597"><td class="memItemLeft" align="right" valign="top">mc::FFSubgraph&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a05ab21ce93cddce80e9fd39d8be49597">subgraphIneqEq</a></td></tr>
 <tr class="separator:a05ab21ce93cddce80e9fd39d8be49597"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4a939be99d5fff95ef5bd169d46fe205"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1_settings.html">Settings</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a4a939be99d5fff95ef5bd169d46fe205">maingoSettings</a></td></tr>
-<tr class="separator:a4a939be99d5fff95ef5bd169d46fe205"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a61dda650b1a25155e541c4607fb7b82c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmaingo_1_1_logger.html">Logger</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a61dda650b1a25155e541c4607fb7b82c">logger</a></td></tr>
-<tr class="separator:a61dda650b1a25155e541c4607fb7b82c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8bebd0e09ae8e79b0826bb93cba34ffa"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a8bebd0e09ae8e79b0826bb93cba34ffa">maingoSettings</a></td></tr>
+<tr class="separator:a8bebd0e09ae8e79b0826bb93cba34ffa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6e462e78027d46af3239c0463b7c9249"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a6e462e78027d46af3239c0463b7c9249">logger</a></td></tr>
+<tr class="separator:a6e462e78027d46af3239c0463b7c9249"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a29fc29042fab2e29d8cf3e8270d1400e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html#a29fc29042fab2e29d8cf3e8270d1400e">warningFlag</a></td></tr>
 <tr class="separator:a29fc29042fab2e29d8cf3e8270d1400e"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
@@ -195,8 +195,8 @@ Public Attributes</h2></td></tr>
 <div class="textblock"><p>Struct for storing all needed Directed acyclic Graph objects for the upper bounding solver. </p>
 <p>Contains all objects, copies and variables for the usage of the DAG. Further information on DAG can be found in ffunc.hpp of MC++. </p>
 </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a id="a38d4d4e046f3eea00ef8dce95ad36337"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a38d4d4e046f3eea00ef8dce95ad36337">&#9670;&nbsp;</a></span>DagObj()</h2>
+<a id="a33f13fd662a2603c031c7284cd1ca098"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a33f13fd662a2603c031c7284cd1ca098">&#9670;&nbsp;</a></span>DagObj()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -249,19 +249,19 @@ Public Attributes</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt;&#160;</td>
           <td class="paramname"><em>constraintProperties</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="structmaingo_1_1_settings.html">Settings</a> *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt;&#160;</td>
           <td class="paramname"><em>settingsIn</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="classmaingo_1_1_logger.html">Logger</a> *&#160;</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt;&#160;</td>
           <td class="paramname"><em>loggerIn</em>&#160;</td>
         </tr>
         <tr>
@@ -507,14 +507,14 @@ Public Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="a61dda650b1a25155e541c4607fb7b82c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a61dda650b1a25155e541c4607fb7b82c">&#9670;&nbsp;</a></span>logger</h2>
+<a id="a6e462e78027d46af3239c0463b7c9249"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6e462e78027d46af3239c0463b7c9249">&#9670;&nbsp;</a></span>logger</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classmaingo_1_1_logger.html">Logger</a>* maingo::ubp::DagObj::logger</td>
+          <td class="memname">std::shared_ptr&lt;<a class="el" href="classmaingo_1_1_logger.html">Logger</a>&gt; maingo::ubp::DagObj::logger</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -522,14 +522,14 @@ Public Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="a4a939be99d5fff95ef5bd169d46fe205"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a4a939be99d5fff95ef5bd169d46fe205">&#9670;&nbsp;</a></span>maingoSettings</h2>
+<a id="a8bebd0e09ae8e79b0826bb93cba34ffa"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8bebd0e09ae8e79b0826bb93cba34ffa">&#9670;&nbsp;</a></span>maingoSettings</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="structmaingo_1_1_settings.html">Settings</a>* maingo::ubp::DagObj::maingoSettings</td>
+          <td class="memname">std::shared_ptr&lt;<a class="el" href="structmaingo_1_1_settings.html">Settings</a>&gt; maingo::ubp::DagObj::maingoSettings</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -913,7 +913,7 @@ Public Attributes</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this struct was generated from the following file:<ul>
-<li>C:/Users/dobo01/maingo/inc/<a class="el" href="ubp_dag_obj_8h_source.html">ubpDagObj.h</a></li>
+<li>C:/dobo01/maingo/inc/<a class="el" href="ubp_dag_obj_8h_source.html">ubpDagObj.h</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -923,7 +923,7 @@ Public Attributes</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="namespacemaingo_1_1ubp.html">ubp</a></li><li class="navelem"><a class="el" href="structmaingo_1_1ubp_1_1_dag_obj.html">DagObj</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/structmaingo_1_1ubp_1_1_dag_obj.js b/doc/html/structmaingo_1_1ubp_1_1_dag_obj.js
index bffcaefc38c6a7f5098c3124e51437bcd60e2f3d..7a7beeace01741d3eff9decbd3af9e9144655758 100644
--- a/doc/html/structmaingo_1_1ubp_1_1_dag_obj.js
+++ b/doc/html/structmaingo_1_1ubp_1_1_dag_obj.js
@@ -1,6 +1,6 @@
 var structmaingo_1_1ubp_1_1_dag_obj =
 [
-    [ "DagObj", "structmaingo_1_1ubp_1_1_dag_obj.html#a38d4d4e046f3eea00ef8dce95ad36337", null ],
+    [ "DagObj", "structmaingo_1_1ubp_1_1_dag_obj.html#a33f13fd662a2603c031c7284cd1ca098", null ],
     [ "adPoint", "structmaingo_1_1ubp_1_1_dag_obj.html#a803b289e729d816f8524f925302139db", null ],
     [ "adPoint2ndOrder", "structmaingo_1_1ubp_1_1_dag_obj.html#a369f41e06ac7ca4c95af8520307186c5", null ],
     [ "DAG", "structmaingo_1_1ubp_1_1_dag_obj.html#a5782efab4dab2431bd571bd62d0c1fd5", null ],
@@ -15,8 +15,8 @@ var structmaingo_1_1ubp_1_1_dag_obj =
     [ "functionsIneqSquash", "structmaingo_1_1ubp_1_1_dag_obj.html#a79773c586c9be6cba8e7fcb178d5b7b1", null ],
     [ "functionsIneqSquashIneq", "structmaingo_1_1ubp_1_1_dag_obj.html#a1e28bbb852ebf2742997e2ce62326135", null ],
     [ "functionsObj", "structmaingo_1_1ubp_1_1_dag_obj.html#ae7db57e66cd7d725971aa6f218962b3d", null ],
-    [ "logger", "structmaingo_1_1ubp_1_1_dag_obj.html#a61dda650b1a25155e541c4607fb7b82c", null ],
-    [ "maingoSettings", "structmaingo_1_1ubp_1_1_dag_obj.html#a4a939be99d5fff95ef5bd169d46fe205", null ],
+    [ "logger", "structmaingo_1_1ubp_1_1_dag_obj.html#a6e462e78027d46af3239c0463b7c9249", null ],
+    [ "maingoSettings", "structmaingo_1_1ubp_1_1_dag_obj.html#a8bebd0e09ae8e79b0826bb93cba34ffa", null ],
     [ "resultAD", "structmaingo_1_1ubp_1_1_dag_obj.html#adf62f216e68f2545bff7ca8c2380de9d", null ],
     [ "resultAD2ndOrder", "structmaingo_1_1ubp_1_1_dag_obj.html#afb24a800ca2cfab6f0e89caa4e821294", null ],
     [ "resultADeq", "structmaingo_1_1ubp_1_1_dag_obj.html#adbdafa51a0de03a4d21425704bb7fd1b", null ],
diff --git a/doc/html/structmaingo_1_1ubp_1_1_ubp_quad_expr-members.html b/doc/html/structmaingo_1_1ubp_1_1_ubp_quad_expr-members.html
index a606d2b343a18e94aec0812fe47c20e0b9196f0e..1ce539736ce1df4c3ed22798339d2c8b1b699d00 100644
--- a/doc/html/structmaingo_1_1ubp_1_1_ubp_quad_expr-members.html
+++ b/doc/html/structmaingo_1_1ubp_1_1_ubp_quad_expr-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -98,9 +98,9 @@ $(document).ready(function(){initNavTree('structmaingo_1_1ubp_1_1_ubp_quad_expr.
   <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a></td><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">maingo::ubp::UbpQuadExpr</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a></td><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">maingo::ubp::UbpQuadExpr</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a></td><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">maingo::ubp::UbpQuadExpr</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a0f9dba9a22cd1bad6d7920742a46785c">operator *=</a>(const UbpQuadExpr &amp;in)</td><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">maingo::ubp::UbpQuadExpr</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a192f82e999323888394268882f22e3f1">operator *=</a>(const double in)</td><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">maingo::ubp::UbpQuadExpr</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a664fcf4c3b9097e2c8ef0c3fd655b53d">operator *=</a>(const int in)</td><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">maingo::ubp::UbpQuadExpr</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a24790536a92c354b15430c00b0258c40">operator*=</a>(const UbpQuadExpr &amp;in)</td><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">maingo::ubp::UbpQuadExpr</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a791a3261856056f2303dd574eb3f6dd3">operator*=</a>(const double in)</td><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">maingo::ubp::UbpQuadExpr</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a4be525c49a8d761438570a34a09d6077">operator*=</a>(const int in)</td><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">maingo::ubp::UbpQuadExpr</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a1cd55371cff5dac0174d8d37ceba6c5d">operator+=</a>(const UbpQuadExpr &amp;in)</td><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">maingo::ubp::UbpQuadExpr</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a561bcf6912a9390cf05b7c8c5c0755a5">operator+=</a>(const double in)</td><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">maingo::ubp::UbpQuadExpr</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a7634e17e6d08c10571dbca448506e95e">operator+=</a>(const int in)</td><td class="entry"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">maingo::ubp::UbpQuadExpr</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
@@ -123,7 +123,7 @@ $(document).ready(function(){initNavTree('structmaingo_1_1ubp_1_1_ubp_quad_expr.
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/structmaingo_1_1ubp_1_1_ubp_quad_expr.html b/doc/html/structmaingo_1_1ubp_1_1_ubp_quad_expr.html
index bfe7743a9f848cd49c48e517b32e5aa9f546dd31..c912feb258bd47726404dbcc5561e7970bb73d0a 100644
--- a/doc/html/structmaingo_1_1ubp_1_1_ubp_quad_expr.html
+++ b/doc/html/structmaingo_1_1ubp_1_1_ubp_quad_expr.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::ubp::UbpQuadExpr Struct Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -120,7 +120,7 @@ Public Member Functions</h2></td></tr>
 <tr class="memdesc:af72e66c0a04b6fa8d25d89351473abe4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator= for an integer constant.  <a href="#af72e66c0a04b6fa8d25d89351473abe4">More...</a><br /></td></tr>
 <tr class="separator:af72e66c0a04b6fa8d25d89351473abe4"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a1cd55371cff5dac0174d8d37ceba6c5d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a1cd55371cff5dac0174d8d37ceba6c5d">operator+=</a> (const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in)</td></tr>
-<tr class="memdesc:a1cd55371cff5dac0174d8d37ceba6c5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator+= for <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a>.  <a href="#a1cd55371cff5dac0174d8d37ceba6c5d">More...</a><br /></td></tr>
+<tr class="memdesc:a1cd55371cff5dac0174d8d37ceba6c5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator+= for <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a>.  <a href="#a1cd55371cff5dac0174d8d37ceba6c5d">More...</a><br /></td></tr>
 <tr class="separator:a1cd55371cff5dac0174d8d37ceba6c5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a561bcf6912a9390cf05b7c8c5c0755a5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a561bcf6912a9390cf05b7c8c5c0755a5">operator+=</a> (const double in)</td></tr>
 <tr class="memdesc:a561bcf6912a9390cf05b7c8c5c0755a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator+= for double.  <a href="#a561bcf6912a9390cf05b7c8c5c0755a5">More...</a><br /></td></tr>
@@ -129,7 +129,7 @@ Public Member Functions</h2></td></tr>
 <tr class="memdesc:a7634e17e6d08c10571dbca448506e95e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator+= for int.  <a href="#a7634e17e6d08c10571dbca448506e95e">More...</a><br /></td></tr>
 <tr class="separator:a7634e17e6d08c10571dbca448506e95e"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aec88997480bed8057176853cfd2c7aaf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#aec88997480bed8057176853cfd2c7aaf">operator-=</a> (const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in)</td></tr>
-<tr class="memdesc:aec88997480bed8057176853cfd2c7aaf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator-= for <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a>.  <a href="#aec88997480bed8057176853cfd2c7aaf">More...</a><br /></td></tr>
+<tr class="memdesc:aec88997480bed8057176853cfd2c7aaf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator-= for <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a>.  <a href="#aec88997480bed8057176853cfd2c7aaf">More...</a><br /></td></tr>
 <tr class="separator:aec88997480bed8057176853cfd2c7aaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a53ba87d0f920df7610866e1bcfe1ed5e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a53ba87d0f920df7610866e1bcfe1ed5e">operator-=</a> (const double in)</td></tr>
 <tr class="memdesc:a53ba87d0f920df7610866e1bcfe1ed5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator-= for double.  <a href="#a53ba87d0f920df7610866e1bcfe1ed5e">More...</a><br /></td></tr>
@@ -137,17 +137,17 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:ac3ad5400183945189193f674f876c774"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#ac3ad5400183945189193f674f876c774">operator-=</a> (const int in)</td></tr>
 <tr class="memdesc:ac3ad5400183945189193f674f876c774"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator-= for int.  <a href="#ac3ad5400183945189193f674f876c774">More...</a><br /></td></tr>
 <tr class="separator:ac3ad5400183945189193f674f876c774"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0f9dba9a22cd1bad6d7920742a46785c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a0f9dba9a22cd1bad6d7920742a46785c">operator *=</a> (const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in)</td></tr>
-<tr class="memdesc:a0f9dba9a22cd1bad6d7920742a46785c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator*= for <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a>.  <a href="#a0f9dba9a22cd1bad6d7920742a46785c">More...</a><br /></td></tr>
-<tr class="separator:a0f9dba9a22cd1bad6d7920742a46785c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a192f82e999323888394268882f22e3f1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a192f82e999323888394268882f22e3f1">operator *=</a> (const double in)</td></tr>
-<tr class="memdesc:a192f82e999323888394268882f22e3f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator*= for double.  <a href="#a192f82e999323888394268882f22e3f1">More...</a><br /></td></tr>
-<tr class="separator:a192f82e999323888394268882f22e3f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a664fcf4c3b9097e2c8ef0c3fd655b53d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a664fcf4c3b9097e2c8ef0c3fd655b53d">operator *=</a> (const int in)</td></tr>
-<tr class="memdesc:a664fcf4c3b9097e2c8ef0c3fd655b53d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator*= for int.  <a href="#a664fcf4c3b9097e2c8ef0c3fd655b53d">More...</a><br /></td></tr>
-<tr class="separator:a664fcf4c3b9097e2c8ef0c3fd655b53d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a24790536a92c354b15430c00b0258c40"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a24790536a92c354b15430c00b0258c40">operator*=</a> (const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in)</td></tr>
+<tr class="memdesc:a24790536a92c354b15430c00b0258c40"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator*= for <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a>.  <a href="#a24790536a92c354b15430c00b0258c40">More...</a><br /></td></tr>
+<tr class="separator:a24790536a92c354b15430c00b0258c40"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a791a3261856056f2303dd574eb3f6dd3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a791a3261856056f2303dd574eb3f6dd3">operator*=</a> (const double in)</td></tr>
+<tr class="memdesc:a791a3261856056f2303dd574eb3f6dd3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator*= for double.  <a href="#a791a3261856056f2303dd574eb3f6dd3">More...</a><br /></td></tr>
+<tr class="separator:a791a3261856056f2303dd574eb3f6dd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4be525c49a8d761438570a34a09d6077"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a4be525c49a8d761438570a34a09d6077">operator*=</a> (const int in)</td></tr>
+<tr class="memdesc:a4be525c49a8d761438570a34a09d6077"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator*= for int.  <a href="#a4be525c49a8d761438570a34a09d6077">More...</a><br /></td></tr>
+<tr class="separator:a4be525c49a8d761438570a34a09d6077"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a2e8b906b6e8ea5c22c4534e85cbbeac7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2e8b906b6e8ea5c22c4534e85cbbeac7">operator/=</a> (const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;in)</td></tr>
-<tr class="memdesc:a2e8b906b6e8ea5c22c4534e85cbbeac7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator/= for <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a>.  <a href="#a2e8b906b6e8ea5c22c4534e85cbbeac7">More...</a><br /></td></tr>
+<tr class="memdesc:a2e8b906b6e8ea5c22c4534e85cbbeac7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator/= for <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a>.  <a href="#a2e8b906b6e8ea5c22c4534e85cbbeac7">More...</a><br /></td></tr>
 <tr class="separator:a2e8b906b6e8ea5c22c4534e85cbbeac7"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a2a7ead5761ea56126a45479935588b06"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2a7ead5761ea56126a45479935588b06">operator/=</a> (const double in)</td></tr>
 <tr class="memdesc:a2a7ead5761ea56126a45479935588b06"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator/= for double.  <a href="#a2a7ead5761ea56126a45479935588b06">More...</a><br /></td></tr>
@@ -314,8 +314,8 @@ Public Attributes</h2></td></tr>
 </div>
 </div>
 <h2 class="groupheader">Member Function Documentation</h2>
-<a id="a0f9dba9a22cd1bad6d7920742a46785c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a0f9dba9a22cd1bad6d7920742a46785c">&#9670;&nbsp;</a></span>operator *=() <span class="overload">[1/3]</span></h2>
+<a id="a24790536a92c354b15430c00b0258c40"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a24790536a92c354b15430c00b0258c40">&#9670;&nbsp;</a></span>operator*=() <span class="overload">[1/3]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -324,7 +324,7 @@ Public Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; maingo::ubp::UbpQuadExpr::operator *= </td>
+          <td class="memname"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; maingo::ubp::UbpQuadExpr::operator*= </td>
           <td>(</td>
           <td class="paramtype">const <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> &amp;&#160;</td>
           <td class="paramname"><em>in</em></td><td>)</td>
@@ -338,12 +338,12 @@ Public Attributes</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Operator*= for <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a>. </p>
+<p>Operator*= for <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a>. </p>
 
 </div>
 </div>
-<a id="a192f82e999323888394268882f22e3f1"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a192f82e999323888394268882f22e3f1">&#9670;&nbsp;</a></span>operator *=() <span class="overload">[2/3]</span></h2>
+<a id="a791a3261856056f2303dd574eb3f6dd3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a791a3261856056f2303dd574eb3f6dd3">&#9670;&nbsp;</a></span>operator*=() <span class="overload">[2/3]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -352,7 +352,7 @@ Public Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; maingo::ubp::UbpQuadExpr::operator *= </td>
+          <td class="memname"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; maingo::ubp::UbpQuadExpr::operator*= </td>
           <td>(</td>
           <td class="paramtype">const double&#160;</td>
           <td class="paramname"><em>in</em></td><td>)</td>
@@ -370,8 +370,8 @@ Public Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="a664fcf4c3b9097e2c8ef0c3fd655b53d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a664fcf4c3b9097e2c8ef0c3fd655b53d">&#9670;&nbsp;</a></span>operator *=() <span class="overload">[3/3]</span></h2>
+<a id="a4be525c49a8d761438570a34a09d6077"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4be525c49a8d761438570a34a09d6077">&#9670;&nbsp;</a></span>operator*=() <span class="overload">[3/3]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -380,7 +380,7 @@ Public Attributes</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; maingo::ubp::UbpQuadExpr::operator *= </td>
+          <td class="memname"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; maingo::ubp::UbpQuadExpr::operator*= </td>
           <td>(</td>
           <td class="paramtype">const int&#160;</td>
           <td class="paramname"><em>in</em></td><td>)</td>
@@ -422,7 +422,7 @@ Public Attributes</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Operator+= for <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a>. </p>
+<p>Operator+= for <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a>. </p>
 
 </div>
 </div>
@@ -506,7 +506,7 @@ Public Attributes</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Operator-= for <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a>. </p>
+<p>Operator-= for <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a>. </p>
 
 </div>
 </div>
@@ -590,7 +590,7 @@ Public Attributes</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p>Operator/= for <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a>. </p>
+<p>Operator/= for <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a>. </p>
 
 </div>
 </div>
@@ -783,7 +783,7 @@ Public Attributes</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this struct was generated from the following file:<ul>
-<li>C:/Users/dobo01/maingo/inc/<a class="el" href="ubp_quad_expr_8h_source.html">ubpQuadExpr.h</a></li>
+<li>C:/dobo01/maingo/inc/<a class="el" href="ubp_quad_expr_8h_source.html">ubpQuadExpr.h</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -793,7 +793,7 @@ Public Attributes</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="namespacemaingo_1_1ubp.html">ubp</a></li><li class="navelem"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/structmaingo_1_1ubp_1_1_ubp_quad_expr.js b/doc/html/structmaingo_1_1ubp_1_1_ubp_quad_expr.js
index 583e31bf4652f8e2f06d2ebeeb624ec41cc7219b..020569d2b1a4497078b59db7d7efcee8a86cf2c4 100644
--- a/doc/html/structmaingo_1_1ubp_1_1_ubp_quad_expr.js
+++ b/doc/html/structmaingo_1_1ubp_1_1_ubp_quad_expr.js
@@ -4,9 +4,9 @@ var structmaingo_1_1ubp_1_1_ubp_quad_expr =
     [ "UbpQuadExpr", "structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a44b8597bd206f1afad3abfe8de039716", null ],
     [ "UbpQuadExpr", "structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a44586840f98d6fa9e24fa04e67b7fea4", null ],
     [ "UbpQuadExpr", "structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a6a7b56e39550931c2feb3bad0a801c38", null ],
-    [ "operator *=", "structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a0f9dba9a22cd1bad6d7920742a46785c", null ],
-    [ "operator *=", "structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a192f82e999323888394268882f22e3f1", null ],
-    [ "operator *=", "structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a664fcf4c3b9097e2c8ef0c3fd655b53d", null ],
+    [ "operator*=", "structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a24790536a92c354b15430c00b0258c40", null ],
+    [ "operator*=", "structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a791a3261856056f2303dd574eb3f6dd3", null ],
+    [ "operator*=", "structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a4be525c49a8d761438570a34a09d6077", null ],
     [ "operator+=", "structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a1cd55371cff5dac0174d8d37ceba6c5d", null ],
     [ "operator+=", "structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a561bcf6912a9390cf05b7c8c5c0755a5", null ],
     [ "operator+=", "structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a7634e17e6d08c10571dbca448506e95e", null ],
diff --git a/doc/html/structmaingo_1_1ubp_1_1_ubp_structure-members.html b/doc/html/structmaingo_1_1ubp_1_1_ubp_structure-members.html
index 8fb6635012defbcfba879b9268490a60ef8abc8c..00cf49d41a9f942589b7833cda04b26f839b1d57 100644
--- a/doc/html/structmaingo_1_1ubp_1_1_ubp_structure-members.html
+++ b/doc/html/structmaingo_1_1ubp_1_1_ubp_structure-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -107,7 +107,7 @@ $(document).ready(function(){initNavTree('structmaingo_1_1ubp_1_1_ubp_structure.
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/structmaingo_1_1ubp_1_1_ubp_structure.html b/doc/html/structmaingo_1_1ubp_1_1_ubp_structure.html
index 01ee34083497d0d8ae5833412ecc07700bb5f7a1..950e71e28e71f5186355d6b739838eab812563e0 100644
--- a/doc/html/structmaingo_1_1ubp_1_1_ubp_structure.html
+++ b/doc/html/structmaingo_1_1ubp_1_1_ubp_structure.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: maingo::ubp::UbpStructure Struct Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -225,7 +225,7 @@ Public Attributes</h2></td></tr>
 </div>
 </div>
 <hr/>The documentation for this struct was generated from the following file:<ul>
-<li>C:/Users/dobo01/maingo/inc/<a class="el" href="ubp_structure_8h_source.html">ubpStructure.h</a></li>
+<li>C:/dobo01/maingo/inc/<a class="el" href="ubp_structure_8h_source.html">ubpStructure.h</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -235,7 +235,7 @@ Public Attributes</h2></td></tr>
     <li class="navelem"><a class="el" href="namespacemaingo.html">maingo</a></li><li class="navelem"><a class="el" href="namespacemaingo_1_1ubp.html">ubp</a></li><li class="navelem"><a class="el" href="structmaingo_1_1ubp_1_1_ubp_structure.html">UbpStructure</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4-members.html b/doc/html/structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4-members.html
index d8ee9f2de96fa96e134b81b32623b94dade25e3c..3c20bcbcc5e34ad018724908cd91757bd2f8c485 100644
--- a/doc/html/structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4-members.html
+++ b/doc/html/structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4-members.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -188,7 +188,7 @@ $(document).ready(function(){initNavTree('structmc_1_1_op_3_01maingo_1_1ubp_1_1_
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html b/doc/html/structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html
index fc0cdeba63e18098144843ef52e0f4262aa633e1..fe41e7f0be6f9c18d54b9ac5ee3dc65d54dbace6 100644
--- a/doc/html/structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html
+++ b/doc/html/structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: mc::Op&lt; maingo::ubp::UbpQuadExpr &gt; Struct Template Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -1407,7 +1407,7 @@ struct mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</h3>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">static void mc::Op&lt; <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">maingo::ubp::UbpQuadExpr</a> &gt;::<a class="el" href="interval_library_8h.html#a719e28aa7350b1ab0efe53725d78a54f">I</a> </td>
+          <td class="memname">static void mc::Op&lt; <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">maingo::ubp::UbpQuadExpr</a> &gt;::<a class="el" href="interval_library_8h.html#a752577663acb2d105778a51e93452c1a">I</a> </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a5671d40aba6b51eedb9fefa337f514fa">QE</a> &amp;&#160;</td>
           <td class="paramname"><em>x</em>, </td>
@@ -3529,7 +3529,7 @@ struct mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</h3>
 </div>
 </div>
 <hr/>The documentation for this struct was generated from the following file:<ul>
-<li>C:/Users/dobo01/maingo/inc/<a class="el" href="ubp_quad_expr_8h_source.html">ubpQuadExpr.h</a></li>
+<li>C:/dobo01/maingo/inc/<a class="el" href="ubp_quad_expr_8h_source.html">ubpQuadExpr.h</a></li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -3539,7 +3539,7 @@ struct mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;</h3>
     <li class="navelem"><a class="el" href="namespacemc.html">mc</a></li><li class="navelem"><a class="el" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html">Op&lt; maingo::ubp::UbpQuadExpr &gt;</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/tabs.css b/doc/html/tabs.css
index 8ea7d549614948ae6fe47dd3a01a4a70b1611abc..a28614b8e3d040d2031627d286e64fbe419a6688 100644
--- a/doc/html/tabs.css
+++ b/doc/html/tabs.css
@@ -1 +1 @@
-.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0 !important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}}
\ No newline at end of file
+.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#doc-content{overflow:auto;display:block;padding:0;margin:0;-webkit-overflow-scrolling:touch}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}}
\ No newline at end of file
diff --git a/doc/html/ubp_8cpp.html b/doc/html/ubp_8cpp.html
index 733f0d0e75a801a7a4c2fc425f31f94596c3e42e..bf4cbe08f3ec7e92d75da7096c976238b95343e5 100644
--- a/doc/html/ubp_8cpp.html
+++ b/doc/html/ubp_8cpp.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/src/ubp.cpp File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/src/ubp.cpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -91,7 +91,7 @@ $(document).ready(function(){initNavTree('ubp_8cpp.html','');});
 </div><!--header-->
 <div class="contents">
 <div class="textblock"><code>#include &quot;<a class="el" href="ubp_8h_source.html">ubp.h</a>&quot;</code><br />
-<code>#include &quot;<a class="el" href="exceptions_8h_source.html">exceptions.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_m_ai_n_g_o_exception_8h_source.html">MAiNGOException.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="mpi_utilities_8h_source.html">mpiUtilities.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="ubp_dag_obj_8h_source.html">ubpDagObj.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="ubp_evaluators_8h_source.html">ubpEvaluators.h</a>&quot;</code><br />
@@ -106,7 +106,7 @@ $(document).ready(function(){initNavTree('ubp_8cpp.html','');});
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="ubp_8cpp.html">ubp.cpp</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/ubp_8h.html b/doc/html/ubp_8h.html
index 49bfeb3d38de6610758b5454b4317d9538a75ab8..421cd6878d91663046cfaea3aa7ad35368d9aadd 100644
--- a/doc/html/ubp_8h.html
+++ b/doc/html/ubp_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/ubp.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/ubp.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -124,9 +124,9 @@ Namespaces</h2></td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
 Functions</h2></td></tr>
-<tr class="memitem:ac4a3034b115744514ad64d9c150713ea"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">UpperBoundingSolver</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#ac4a3034b115744514ad64d9c150713ea">maingo::ubp::make_ubp_solver</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, <a class="el" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="el" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn, std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt; *constraintPropertiesIn, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UpperBoundingSolver::UBS_USE</a> useIn)</td></tr>
-<tr class="memdesc:ac4a3034b115744514ad64d9c150713ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Factory function for initializing different upper bounding solver wrappers.  <a href="namespacemaingo_1_1ubp.html#ac4a3034b115744514ad64d9c150713ea">More...</a><br /></td></tr>
-<tr class="separator:ac4a3034b115744514ad64d9c150713ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab62ff87d8caba41740160a8d488b133d"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">UpperBoundingSolver</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#ab62ff87d8caba41740160a8d488b133d">maingo::ubp::make_ubp_solver</a> (mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; <a class="el" href="classbab_base_1_1_optimization_variable.html">babBase::OptimizationVariable</a> &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; <a class="el" href="structmaingo_1_1_settings.html">Settings</a> &gt; settingsIn, std::shared_ptr&lt; <a class="el" href="classmaingo_1_1_logger.html">Logger</a> &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; <a class="el" href="structmaingo_1_1_constraint.html">Constraint</a> &gt;&gt; constraintPropertiesIn, <a class="el" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UpperBoundingSolver::UBS_USE</a> useIn)</td></tr>
+<tr class="memdesc:ab62ff87d8caba41740160a8d488b133d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Factory function for initializing different upper bounding solver wrappers.  <a href="namespacemaingo_1_1ubp.html#ab62ff87d8caba41740160a8d488b133d">More...</a><br /></td></tr>
+<tr class="separator:ab62ff87d8caba41740160a8d488b133d"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -136,7 +136,7 @@ Functions</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="ubp_8h.html">ubp.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/ubp_8h.js b/doc/html/ubp_8h.js
index f119ea5dd6407a6ac85e592f6ee1007b0373897c..92e641c7a05ece5c899b7cd7f9c9b8227f501528 100644
--- a/doc/html/ubp_8h.js
+++ b/doc/html/ubp_8h.js
@@ -1,5 +1,5 @@
 var ubp_8h =
 [
     [ "UpperBoundingSolver", "classmaingo_1_1ubp_1_1_upper_bounding_solver.html", "classmaingo_1_1ubp_1_1_upper_bounding_solver" ],
-    [ "make_ubp_solver", "ubp_8h.html#ac4a3034b115744514ad64d9c150713ea", null ]
+    [ "make_ubp_solver", "ubp_8h.html#ab62ff87d8caba41740160a8d488b133d", null ]
 ];
\ No newline at end of file
diff --git a/doc/html/ubp_8h_source.html b/doc/html/ubp_8h_source.html
index 2781527a21b6fabc2dae58f145b389d6e7f8f413..73f8bd9d750a35768f24cf43fb187eaad1dab163 100644
--- a/doc/html/ubp_8h_source.html
+++ b/doc/html/ubp_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/ubp.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/ubp.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,54 +90,52 @@ $(document).ready(function(){initNavTree('ubp_8h_source.html','');});
 <div class="title">ubp.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="ubp_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file ubp.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing declaration of UpperBoundingSolver class used as base</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *        class for different upper bounding solver wrappers.</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="constraint_8h.html">constraint.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="logger_8h.html">logger.h</a>&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="mc_forward_8h.html">mcForward.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="return_codes_8h.html">returnCodes.h</a>&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="settings_8h.html">settings.h</a>&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ubp_structure_8h.html">ubpStructure.h</a>&quot;</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_node_8h.html">babNode.h</a>&quot;</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_utils_8h.html">babUtils.h</a>&quot;</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="keyword">namespace </span>ubp {</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keyword">struct </span>DagObj;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">   49</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">UpperBoundingSolver</a> {</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">   56</a></span>&#160;    <span class="keyword">enum</span> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> {</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395aaf072b94cbf6e5d23d6b55bc2846a4e6">   57</a></span>&#160;        <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395aaf072b94cbf6e5d23d6b55bc2846a4e6">USE_PRE</a> = 0, </div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395a8c993825a2321788812ac88fa8666a34">   58</a></span>&#160;        <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395a8c993825a2321788812ac88fa8666a34">USE_BAB</a>      </div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    };</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ae75dea5b3107d53e3ffec3b0c18d7749">UpperBoundingSolver</a>(mc::FFGraph &amp;DAG, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGvars, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGfunctions, <span class="keyword">const</span> std::vector&lt;babBase::OptimizationVariable&gt; &amp;variables,</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;                        <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqSquashIn, <a class="code" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="code" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn, std::vector&lt;Constraint&gt; *constraintPropertiesIn, <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> useIn);</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa17ca0c5dbf33219148dc2fff3446357">   82</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa17ca0c5dbf33219148dc2fff3446357">~UpperBoundingSolver</a>() {}</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4ac108083fde6741e77d7c0b231bd610">solve</a>(<a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> <span class="keyword">const</span> &amp;currentNode, <span class="keywordtype">double</span> &amp;objectiveValue, std::vector&lt;double&gt; &amp;solutionPoint);</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac291c925f9007b90cbf09497a93d8239">multistart</a>(<a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> <span class="keyword">const</span> &amp;currentNode, <span class="keywordtype">double</span> &amp;objectiveValue, std::vector&lt;double&gt; &amp;solutionPoint, std::vector&lt;SUBSOLVER_RETCODE&gt; &amp;feasible, std::vector&lt;double&gt; &amp;optimalObjectives, <span class="keywordtype">bool</span> &amp;initialPointFeasible);</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#af057bf3a184ca83102a6237bb83dd261">check_feasibility</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;currentPoint, <span class="keywordtype">double</span> &amp;objectiveValue) <span class="keyword">const</span>;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;  <span class="keyword">protected</span>:</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa61f6cbf0485f37b2ad7a73b18aa6521">_solve_nlp</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">double</span> &amp;objectiveValue, std::vector&lt;double&gt; &amp;solutionPoint);</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ae20cc817f6ec888d8a9e7a9723cfe0b7">_check_ineq</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;modelOutput) <span class="keyword">const</span>;</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa40b7dc4622a4ffed899195174f3fda7">_check_ineq_squash</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;modelOutput) <span class="keyword">const</span>;</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a8e0390a65c638a359c0fd4aca45898b6">_check_eq</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;modelOutput) <span class="keyword">const</span>;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2f7fe42bb11f791fc34c33f60ac057fc">_check_bounds</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;currentPoint) <span class="keyword">const</span>;</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac1124e613e46e59fb88415116e08e326">_check_integrality</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;currentPoint) <span class="keyword">const</span>;</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a566cab6bf72ec7da46a8e42d63378d02">_determine_structure</a>();</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a04b6d46cf762e76a70611b9c9e54f71d">_determine_sparsity_jacobian</a>();</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#afce03a4f45462c5afb5af2146ddd7e78">_determine_sparsity_hessian</a>();</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a88f6a1e58a7274d44f6c9513581a6f4b">_generate_multistart_point</a>(<span class="keywordtype">bool</span> &amp;usedCenter, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds);</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1b4e1d2ce3d3413c1c5d509d13ec752e">  195</a></span>&#160;    <a class="code" href="structmaingo_1_1_settings.html">Settings</a> *<a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1b4e1d2ce3d3413c1c5d509d13ec752e">_maingoSettings</a>;                      </div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab436cb85b75f92ef42ca46adb87b83c0">  196</a></span>&#160;    <a class="code" href="classmaingo_1_1_logger.html">Logger</a> *<a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab436cb85b75f92ef42ca46adb87b83c0">_logger</a>;                                </div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac9710c21359f1811dbdee779247fa701">  197</a></span>&#160;    std::shared_ptr&lt;DagObj&gt; <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac9710c21359f1811dbdee779247fa701">_DAGobj</a>;                </div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac626a7b38249edde44afdbf721df0c79">  198</a></span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac626a7b38249edde44afdbf721df0c79">_intendedUse</a>;                           </div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aae0c39f4b14cfb8a3c70a57b49f15e67">  199</a></span>&#160;    std::vector&lt;Constraint&gt; *<a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aae0c39f4b14cfb8a3c70a57b49f15e67">_constraintProperties</a>; </div><div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a42b77e82598864f05222b9dc415945a9">  206</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a42b77e82598864f05222b9dc415945a9">_nvar</a>;                                                </div><div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2a4ed8977b38691844e43bb86ee86012">  207</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2a4ed8977b38691844e43bb86ee86012">_nineq</a>;                                               </div><div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab774cf6400badf5cb3675dac2daf27bd">  208</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab774cf6400badf5cb3675dac2daf27bd">_nineqSquash</a>;                                         </div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a826673302ff22c211249640a0e924515">  209</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a826673302ff22c211249640a0e924515">_neq</a>;                                                 </div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a05f3d0a48a4c425ac11035a76426a184">  210</a></span>&#160;    std::vector&lt;babBase::OptimizationVariable&gt; <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a05f3d0a48a4c425ac11035a76426a184">_originalVariables</a>; </div><div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a9c95129dc31203f436aec2d4e71e0dc2">  211</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a9c95129dc31203f436aec2d4e71e0dc2">_originalUpperBounds</a>;                      </div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2eaaa9feb9ad231209cb01a29a76b5e4">  212</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2eaaa9feb9ad231209cb01a29a76b5e4">_originalLowerBounds</a>;                      </div><div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a5310f4bd87280f6785ddac2260f034d0">  213</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_structure.html">UbpStructure</a> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a5310f4bd87280f6785ddac2260f034d0">_structure</a>;                                       </div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ae75dea5b3107d53e3ffec3b0c18d7749">UpperBoundingSolver</a>(); </div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;    <span class="comment">// Prevent use of default copy constructor and copy assignment operator by declaring them private:</span></div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ae75dea5b3107d53e3ffec3b0c18d7749">UpperBoundingSolver</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">UpperBoundingSolver</a> &amp;);            </div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">UpperBoundingSolver</a> &amp;<a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#afa9dca36d7987121ddc0327e62dfdcf2">operator=</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">UpperBoundingSolver</a> &amp;); </div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;};</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;std::shared_ptr&lt;UpperBoundingSolver&gt; <a class="code" href="namespacemaingo_1_1ubp.html#ac4a3034b115744514ad64d9c150713ea">make_ubp_solver</a>(mc::FFGraph &amp;DAG, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGvars, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGfunctions,</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;                                                     <span class="keyword">const</span> std::vector&lt;babBase::OptimizationVariable&gt; &amp;variables, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqIn,</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;                                                     <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqSquashIn, <a class="code" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="code" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn, std::vector&lt;Constraint&gt; *constraintPropertiesIn,</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;                                                     <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UpperBoundingSolver::UBS_USE</a> useIn);</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;}    <span class="comment">// end namespace ubp</span></div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="namespacemaingo_1_1ubp_html_ac4a3034b115744514ad64d9c150713ea"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#ac4a3034b115744514ad64d9c150713ea">maingo::ubp::make_ubp_solver</a></div><div class="ttdeci">std::shared_ptr&lt; UpperBoundingSolver &gt; make_ubp_solver(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, UpperBoundingSolver::UBS_USE useIn)</div><div class="ttdoc">Factory function for initializing different upper bounding solver wrappers.</div><div class="ttdef"><b>Definition:</b> ubpFactory.cpp:39</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a4ac108083fde6741e77d7c0b231bd610"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4ac108083fde6741e77d7c0b231bd610">maingo::ubp::UpperBoundingSolver::solve</a></div><div class="ttdeci">virtual SUBSOLVER_RETCODE solve(babBase::BabNode const &amp;currentNode, double &amp;objectiveValue, std::vector&lt; double &gt; &amp;solutionPoint)</div><div class="ttdoc">Function called by B&amp;B solver for solving the upper bounding problem on the current node....</div><div class="ttdef"><b>Definition:</b> ubp.cpp:64</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a8e0390a65c638a359c0fd4aca45898b6"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a8e0390a65c638a359c0fd4aca45898b6">maingo::ubp::UpperBoundingSolver::_check_eq</a></div><div class="ttdeci">SUBSOLVER_RETCODE _check_eq(const std::vector&lt; double &gt; &amp;modelOutput) const</div><div class="ttdoc">Function checking if equality constraints are fulfilled.</div><div class="ttdef"><b>Definition:</b> ubp.cpp:757</div></div>
+<a href="ubp_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="constraint_8h.html">constraint.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="logger_8h.html">logger.h</a>&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="mc_forward_8h.html">mcForward.h</a>&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="return_codes_8h.html">returnCodes.h</a>&quot;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="settings_8h.html">settings.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ubp_structure_8h.html">ubpStructure.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_node_8h.html">babNode.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_utils_8h.html">babUtils.h</a>&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="keyword">namespace </span>ubp {</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="keyword">struct </span>DagObj;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">   44</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">UpperBoundingSolver</a> {</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">   51</a></span>&#160;    <span class="keyword">enum</span> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> {</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395aaf072b94cbf6e5d23d6b55bc2846a4e6">   52</a></span>&#160;        <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395aaf072b94cbf6e5d23d6b55bc2846a4e6">USE_PRE</a> = 0, </div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395a8c993825a2321788812ac88fa8666a34">   53</a></span>&#160;        <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395a8c993825a2321788812ac88fa8666a34">USE_BAB</a>      </div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    };</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ae75dea5b3107d53e3ffec3b0c18d7749">UpperBoundingSolver</a>(mc::FFGraph &amp;DAG, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGvars, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGfunctions, <span class="keyword">const</span> std::vector&lt;babBase::OptimizationVariable&gt; &amp;variables,</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                        <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqSquashIn, std::shared_ptr&lt;Settings&gt; settingsIn, std::shared_ptr&lt;Logger&gt; loggerIn, std::shared_ptr&lt;std::vector&lt;Constraint&gt;&gt; constraintPropertiesIn, <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> useIn);</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa17ca0c5dbf33219148dc2fff3446357">   77</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa17ca0c5dbf33219148dc2fff3446357">~UpperBoundingSolver</a>() {}</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4ac108083fde6741e77d7c0b231bd610">solve</a>(<a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> <span class="keyword">const</span> &amp;currentNode, <span class="keywordtype">double</span> &amp;objectiveValue, std::vector&lt;double&gt; &amp;solutionPoint);</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac291c925f9007b90cbf09497a93d8239">multistart</a>(<a class="code" href="classbab_base_1_1_bab_node.html">babBase::BabNode</a> <span class="keyword">const</span> &amp;currentNode, <span class="keywordtype">double</span> &amp;objectiveValue, std::vector&lt;double&gt; &amp;solutionPoint, std::vector&lt;SUBSOLVER_RETCODE&gt; &amp;feasible, std::vector&lt;double&gt; &amp;optimalObjectives, <span class="keywordtype">bool</span> &amp;initialPointFeasible);</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#af057bf3a184ca83102a6237bb83dd261">check_feasibility</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;currentPoint, <span class="keywordtype">double</span> &amp;objectiveValue) <span class="keyword">const</span>;</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;  <span class="keyword">protected</span>:</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa61f6cbf0485f37b2ad7a73b18aa6521">_solve_nlp</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">double</span> &amp;objectiveValue, std::vector&lt;double&gt; &amp;solutionPoint);</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ae20cc817f6ec888d8a9e7a9723cfe0b7">_check_ineq</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;modelOutput) <span class="keyword">const</span>;</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa40b7dc4622a4ffed899195174f3fda7">_check_ineq_squash</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;modelOutput) <span class="keyword">const</span>;</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a8e0390a65c638a359c0fd4aca45898b6">_check_eq</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;modelOutput) <span class="keyword">const</span>;</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2f7fe42bb11f791fc34c33f60ac057fc">_check_bounds</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;currentPoint) <span class="keyword">const</span>;</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac1124e613e46e59fb88415116e08e326">_check_integrality</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;currentPoint) <span class="keyword">const</span>;</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a566cab6bf72ec7da46a8e42d63378d02">_determine_structure</a>();</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a04b6d46cf762e76a70611b9c9e54f71d">_determine_sparsity_jacobian</a>();</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#afce03a4f45462c5afb5af2146ddd7e78">_determine_sparsity_hessian</a>();</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a88f6a1e58a7274d44f6c9513581a6f4b">_generate_multistart_point</a>(<span class="keywordtype">bool</span> &amp;usedCenter, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds);</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4d7aaa4de8e2e6633b9064568961bc72">  190</a></span>&#160;    std::shared_ptr&lt;Settings&gt; <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4d7aaa4de8e2e6633b9064568961bc72">_maingoSettings</a>;                      </div><div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab76a699684d09100c63ec4ddcaa10456">  191</a></span>&#160;    std::shared_ptr&lt;Logger&gt; <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab76a699684d09100c63ec4ddcaa10456">_logger</a>;                                </div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac9710c21359f1811dbdee779247fa701">  192</a></span>&#160;    std::shared_ptr&lt;DagObj&gt; <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac9710c21359f1811dbdee779247fa701">_DAGobj</a>;                                </div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac626a7b38249edde44afdbf721df0c79">  193</a></span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac626a7b38249edde44afdbf721df0c79">_intendedUse</a>;                                           </div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a633d6c072f7388ade44ccebf3fa3c935">  194</a></span>&#160;    std::shared_ptr&lt;std::vector&lt;Constraint&gt;&gt; <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a633d6c072f7388ade44ccebf3fa3c935">_constraintProperties</a>; </div><div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a42b77e82598864f05222b9dc415945a9">  201</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a42b77e82598864f05222b9dc415945a9">_nvar</a>;                                                </div><div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2a4ed8977b38691844e43bb86ee86012">  202</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2a4ed8977b38691844e43bb86ee86012">_nineq</a>;                                               </div><div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab774cf6400badf5cb3675dac2daf27bd">  203</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab774cf6400badf5cb3675dac2daf27bd">_nineqSquash</a>;                                         </div><div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a826673302ff22c211249640a0e924515">  204</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a826673302ff22c211249640a0e924515">_neq</a>;                                                 </div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a05f3d0a48a4c425ac11035a76426a184">  205</a></span>&#160;    std::vector&lt;babBase::OptimizationVariable&gt; <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a05f3d0a48a4c425ac11035a76426a184">_originalVariables</a>; </div><div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a9c95129dc31203f436aec2d4e71e0dc2">  206</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a9c95129dc31203f436aec2d4e71e0dc2">_originalUpperBounds</a>;                      </div><div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2eaaa9feb9ad231209cb01a29a76b5e4">  207</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2eaaa9feb9ad231209cb01a29a76b5e4">_originalLowerBounds</a>;                      </div><div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a5310f4bd87280f6785ddac2260f034d0">  208</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_structure.html">UbpStructure</a> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a5310f4bd87280f6785ddac2260f034d0">_structure</a>;                                       </div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ae75dea5b3107d53e3ffec3b0c18d7749">UpperBoundingSolver</a>(); </div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;    <span class="comment">// Prevent use of default copy constructor and copy assignment operator by declaring them private:</span></div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ae75dea5b3107d53e3ffec3b0c18d7749">UpperBoundingSolver</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">UpperBoundingSolver</a> &amp;);            </div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">UpperBoundingSolver</a> &amp;<a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#afa9dca36d7987121ddc0327e62dfdcf2">operator=</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">UpperBoundingSolver</a> &amp;); </div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;};</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;std::shared_ptr&lt;UpperBoundingSolver&gt; <a class="code" href="namespacemaingo_1_1ubp.html#ab62ff87d8caba41740160a8d488b133d">make_ubp_solver</a>(mc::FFGraph &amp;DAG, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGvars, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGfunctions,</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;                                                     <span class="keyword">const</span> std::vector&lt;babBase::OptimizationVariable&gt; &amp;variables, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqIn,</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;                                                     <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqSquashIn, std::shared_ptr&lt;Settings&gt; settingsIn, std::shared_ptr&lt;Logger&gt; loggerIn, std::shared_ptr&lt;std::vector&lt;Constraint&gt;&gt; constraintPropertiesIn,</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;                                                     <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UpperBoundingSolver::UBS_USE</a> useIn);</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;}    <span class="comment">// end namespace ubp</span></div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="namespacemaingo_1_1ubp_html_ab62ff87d8caba41740160a8d488b133d"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#ab62ff87d8caba41740160a8d488b133d">maingo::ubp::make_ubp_solver</a></div><div class="ttdeci">std::shared_ptr&lt; UpperBoundingSolver &gt; make_ubp_solver(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, UpperBoundingSolver::UBS_USE useIn)</div><div class="ttdoc">Factory function for initializing different upper bounding solver wrappers. </div><div class="ttdef"><b>Definition:</b> ubpFactory.cpp:35</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a4ac108083fde6741e77d7c0b231bd610"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4ac108083fde6741e77d7c0b231bd610">maingo::ubp::UpperBoundingSolver::solve</a></div><div class="ttdeci">virtual SUBSOLVER_RETCODE solve(babBase::BabNode const &amp;currentNode, double &amp;objectiveValue, std::vector&lt; double &gt; &amp;solutionPoint)</div><div class="ttdoc">Function called by B&amp;B solver for solving the upper bounding problem on the current node...</div><div class="ttdef"><b>Definition:</b> ubp.cpp:59</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a8e0390a65c638a359c0fd4aca45898b6"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a8e0390a65c638a359c0fd4aca45898b6">maingo::ubp::UpperBoundingSolver::_check_eq</a></div><div class="ttdeci">SUBSOLVER_RETCODE _check_eq(const std::vector&lt; double &gt; &amp;modelOutput) const</div><div class="ttdoc">Function checking if equality constraints are fulfilled. </div><div class="ttdef"><b>Definition:</b> ubp.cpp:753</div></div>
 <div class="ttc" id="ubp_structure_8h_html"><div class="ttname"><a href="ubp_structure_8h.html">ubpStructure.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_ab774cf6400badf5cb3675dac2daf27bd"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab774cf6400badf5cb3675dac2daf27bd">maingo::ubp::UpperBoundingSolver::_nineqSquash</a></div><div class="ttdeci">unsigned _nineqSquash</div><div class="ttdef"><b>Definition:</b> ubp.h:208</div></div>
-<div class="ttc" id="classbab_base_1_1_bab_node_html"><div class="ttname"><a href="classbab_base_1_1_bab_node.html">babBase::BabNode</a></div><div class="ttdoc">Class representing a node in the Branch-and-Bound tree.</div><div class="ttdef"><b>Definition:</b> babNode.h:35</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_ab774cf6400badf5cb3675dac2daf27bd"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab774cf6400badf5cb3675dac2daf27bd">maingo::ubp::UpperBoundingSolver::_nineqSquash</a></div><div class="ttdeci">unsigned _nineqSquash</div><div class="ttdef"><b>Definition:</b> ubp.h:203</div></div>
+<div class="ttc" id="classbab_base_1_1_bab_node_html"><div class="ttname"><a href="classbab_base_1_1_bab_node.html">babBase::BabNode</a></div><div class="ttdoc">Class representing a node in the Branch-and-Bound tree. </div><div class="ttdef"><b>Definition:</b> babNode.h:35</div></div>
 <div class="ttc" id="bab_node_8h_html"><div class="ttname"><a href="bab_node_8h.html">babNode.h</a></div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html"><div class="ttname"><a href="structmaingo_1_1_settings.html">maingo::Settings</a></div><div class="ttdoc">Struct for storing settings for MAiNGO.</div><div class="ttdef"><b>Definition:</b> settings.h:143</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a2f7fe42bb11f791fc34c33f60ac057fc"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2f7fe42bb11f791fc34c33f60ac057fc">maingo::ubp::UpperBoundingSolver::_check_bounds</a></div><div class="ttdeci">SUBSOLVER_RETCODE _check_bounds(const std::vector&lt; double &gt; &amp;currentPoint) const</div><div class="ttdoc">Function checking if bounds are fulfilled.</div><div class="ttdef"><b>Definition:</b> ubp.cpp:816</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html"><div class="ttname"><a href="classmaingo_1_1_logger.html">maingo::Logger</a></div><div class="ttdoc">This class contains all logging and output information.</div><div class="ttdef"><b>Definition:</b> logger.h:101</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a9c95129dc31203f436aec2d4e71e0dc2"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a9c95129dc31203f436aec2d4e71e0dc2">maingo::ubp::UpperBoundingSolver::_originalUpperBounds</a></div><div class="ttdeci">std::vector&lt; double &gt; _originalUpperBounds</div><div class="ttdef"><b>Definition:</b> ubp.h:211</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a2f7fe42bb11f791fc34c33f60ac057fc"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2f7fe42bb11f791fc34c33f60ac057fc">maingo::ubp::UpperBoundingSolver::_check_bounds</a></div><div class="ttdeci">SUBSOLVER_RETCODE _check_bounds(const std::vector&lt; double &gt; &amp;currentPoint) const</div><div class="ttdoc">Function checking if bounds are fulfilled. </div><div class="ttdef"><b>Definition:</b> ubp.cpp:812</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a9c95129dc31203f436aec2d4e71e0dc2"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a9c95129dc31203f436aec2d4e71e0dc2">maingo::ubp::UpperBoundingSolver::_originalUpperBounds</a></div><div class="ttdeci">std::vector&lt; double &gt; _originalUpperBounds</div><div class="ttdef"><b>Definition:</b> ubp.h:206</div></div>
 <div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_ae75dea5b3107d53e3ffec3b0c18d7749"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ae75dea5b3107d53e3ffec3b0c18d7749">maingo::ubp::UpperBoundingSolver::UpperBoundingSolver</a></div><div class="ttdeci">UpperBoundingSolver()</div></div>
 <div class="ttc" id="return_codes_8h_html"><div class="ttname"><a href="return_codes_8h.html">returnCodes.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a826673302ff22c211249640a0e924515"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a826673302ff22c211249640a0e924515">maingo::ubp::UpperBoundingSolver::_neq</a></div><div class="ttdeci">unsigned _neq</div><div class="ttdef"><b>Definition:</b> ubp.h:209</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a1f4073797703aa1546f3f66938318395a8c993825a2321788812ac88fa8666a34"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395a8c993825a2321788812ac88fa8666a34">maingo::ubp::UpperBoundingSolver::USE_BAB</a></div><div class="ttdef"><b>Definition:</b> ubp.h:58</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></div><div class="ttdoc">Base class for wrappers for handling the upper bounding problems.</div><div class="ttdef"><b>Definition:</b> ubp.h:49</div></div>
-<div class="ttc" id="namespacemaingo_html_ab7a1cb5c265f8d1c287d43fec7988020"><div class="ttname"><a href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">maingo::SUBSOLVER_RETCODE</a></div><div class="ttdeci">SUBSOLVER_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the different sub-solvers (UpperBoundingSolver,...</div><div class="ttdef"><b>Definition:</b> returnCodes.h:40</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_ab436cb85b75f92ef42ca46adb87b83c0"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab436cb85b75f92ef42ca46adb87b83c0">maingo::ubp::UpperBoundingSolver::_logger</a></div><div class="ttdeci">Logger * _logger</div><div class="ttdef"><b>Definition:</b> ubp.h:196</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a826673302ff22c211249640a0e924515"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a826673302ff22c211249640a0e924515">maingo::ubp::UpperBoundingSolver::_neq</a></div><div class="ttdeci">unsigned _neq</div><div class="ttdef"><b>Definition:</b> ubp.h:204</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a4d7aaa4de8e2e6633b9064568961bc72"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a4d7aaa4de8e2e6633b9064568961bc72">maingo::ubp::UpperBoundingSolver::_maingoSettings</a></div><div class="ttdeci">std::shared_ptr&lt; Settings &gt; _maingoSettings</div><div class="ttdef"><b>Definition:</b> ubp.h:190</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a1f4073797703aa1546f3f66938318395a8c993825a2321788812ac88fa8666a34"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395a8c993825a2321788812ac88fa8666a34">maingo::ubp::UpperBoundingSolver::USE_BAB</a></div><div class="ttdef"><b>Definition:</b> ubp.h:53</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></div><div class="ttdoc">Base class for wrappers for handling the upper bounding problems. </div><div class="ttdef"><b>Definition:</b> ubp.h:44</div></div>
+<div class="ttc" id="namespacemaingo_html_ab7a1cb5c265f8d1c287d43fec7988020"><div class="ttname"><a href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">maingo::SUBSOLVER_RETCODE</a></div><div class="ttdeci">SUBSOLVER_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the different sub-solvers (UpperBoundingSolver, LowerBoundingSolver). </div><div class="ttdef"><b>Definition:</b> returnCodes.h:36</div></div>
 <div class="ttc" id="constraint_8h_html"><div class="ttname"><a href="constraint_8h.html">constraint.h</a></div></div>
 <div class="ttc" id="mc_forward_8h_html"><div class="ttname"><a href="mc_forward_8h.html">mcForward.h</a></div></div>
-<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO</div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a1b4e1d2ce3d3413c1c5d509d13ec752e"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1b4e1d2ce3d3413c1c5d509d13ec752e">maingo::ubp::UpperBoundingSolver::_maingoSettings</a></div><div class="ttdeci">Settings * _maingoSettings</div><div class="ttdef"><b>Definition:</b> ubp.h:195</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a1f4073797703aa1546f3f66938318395"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">maingo::ubp::UpperBoundingSolver::UBS_USE</a></div><div class="ttdeci">UBS_USE</div><div class="ttdoc">Enum for communicating what the intended purpose of the solver is. This determines which settings are...</div><div class="ttdef"><b>Definition:</b> ubp.h:56</div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a1f4073797703aa1546f3f66938318395"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">maingo::ubp::UpperBoundingSolver::UBS_USE</a></div><div class="ttdeci">UBS_USE</div><div class="ttdoc">Enum for communicating what the intended purpose of the solver is. This determines which settings are...</div><div class="ttdef"><b>Definition:</b> ubp.h:51</div></div>
 <div class="ttc" id="bab_utils_8h_html"><div class="ttname"><a href="bab_utils_8h.html">babUtils.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a42b77e82598864f05222b9dc415945a9"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a42b77e82598864f05222b9dc415945a9">maingo::ubp::UpperBoundingSolver::_nvar</a></div><div class="ttdeci">unsigned _nvar</div><div class="ttdef"><b>Definition:</b> ubp.h:206</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_aa40b7dc4622a4ffed899195174f3fda7"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa40b7dc4622a4ffed899195174f3fda7">maingo::ubp::UpperBoundingSolver::_check_ineq_squash</a></div><div class="ttdeci">SUBSOLVER_RETCODE _check_ineq_squash(const std::vector&lt; double &gt; &amp;modelOutput) const</div><div class="ttdoc">Function checking if squash inequality constraints are fulfilled (no tolerance allowed)</div><div class="ttdef"><b>Definition:</b> ubp.cpp:796</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a2eaaa9feb9ad231209cb01a29a76b5e4"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2eaaa9feb9ad231209cb01a29a76b5e4">maingo::ubp::UpperBoundingSolver::_originalLowerBounds</a></div><div class="ttdeci">std::vector&lt; double &gt; _originalLowerBounds</div><div class="ttdef"><b>Definition:</b> ubp.h:212</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_ac626a7b38249edde44afdbf721df0c79"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac626a7b38249edde44afdbf721df0c79">maingo::ubp::UpperBoundingSolver::_intendedUse</a></div><div class="ttdeci">UBS_USE _intendedUse</div><div class="ttdef"><b>Definition:</b> ubp.h:198</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a1f4073797703aa1546f3f66938318395aaf072b94cbf6e5d23d6b55bc2846a4e6"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395aaf072b94cbf6e5d23d6b55bc2846a4e6">maingo::ubp::UpperBoundingSolver::USE_PRE</a></div><div class="ttdef"><b>Definition:</b> ubp.h:57</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a42b77e82598864f05222b9dc415945a9"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a42b77e82598864f05222b9dc415945a9">maingo::ubp::UpperBoundingSolver::_nvar</a></div><div class="ttdeci">unsigned _nvar</div><div class="ttdef"><b>Definition:</b> ubp.h:201</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_aa40b7dc4622a4ffed899195174f3fda7"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa40b7dc4622a4ffed899195174f3fda7">maingo::ubp::UpperBoundingSolver::_check_ineq_squash</a></div><div class="ttdeci">SUBSOLVER_RETCODE _check_ineq_squash(const std::vector&lt; double &gt; &amp;modelOutput) const</div><div class="ttdoc">Function checking if squash inequality constraints are fulfilled (no tolerance allowed) ...</div><div class="ttdef"><b>Definition:</b> ubp.cpp:792</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a633d6c072f7388ade44ccebf3fa3c935"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a633d6c072f7388ade44ccebf3fa3c935">maingo::ubp::UpperBoundingSolver::_constraintProperties</a></div><div class="ttdeci">std::shared_ptr&lt; std::vector&lt; Constraint &gt; &gt; _constraintProperties</div><div class="ttdef"><b>Definition:</b> ubp.h:194</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a2eaaa9feb9ad231209cb01a29a76b5e4"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2eaaa9feb9ad231209cb01a29a76b5e4">maingo::ubp::UpperBoundingSolver::_originalLowerBounds</a></div><div class="ttdeci">std::vector&lt; double &gt; _originalLowerBounds</div><div class="ttdef"><b>Definition:</b> ubp.h:207</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_ac626a7b38249edde44afdbf721df0c79"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac626a7b38249edde44afdbf721df0c79">maingo::ubp::UpperBoundingSolver::_intendedUse</a></div><div class="ttdeci">UBS_USE _intendedUse</div><div class="ttdef"><b>Definition:</b> ubp.h:193</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a1f4073797703aa1546f3f66938318395aaf072b94cbf6e5d23d6b55bc2846a4e6"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395aaf072b94cbf6e5d23d6b55bc2846a4e6">maingo::ubp::UpperBoundingSolver::USE_PRE</a></div><div class="ttdef"><b>Definition:</b> ubp.h:52</div></div>
 <div class="ttc" id="settings_8h_html"><div class="ttname"><a href="settings_8h.html">settings.h</a></div></div>
 <div class="ttc" id="logger_8h_html"><div class="ttname"><a href="logger_8h.html">logger.h</a></div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_structure_html"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_structure.html">maingo::ubp::UbpStructure</a></div><div class="ttdoc">Struct for storing structure information for the upper bounding solver.</div><div class="ttdef"><b>Definition:</b> ubpStructure.h:35</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_ac1124e613e46e59fb88415116e08e326"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac1124e613e46e59fb88415116e08e326">maingo::ubp::UpperBoundingSolver::_check_integrality</a></div><div class="ttdeci">SUBSOLVER_RETCODE _check_integrality(const std::vector&lt; double &gt; &amp;currentPoint) const</div><div class="ttdoc">Function checking if discrete variables are indeed discrete.</div><div class="ttdef"><b>Definition:</b> ubp.cpp:843</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_aa17ca0c5dbf33219148dc2fff3446357"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa17ca0c5dbf33219148dc2fff3446357">maingo::ubp::UpperBoundingSolver::~UpperBoundingSolver</a></div><div class="ttdeci">virtual ~UpperBoundingSolver()</div><div class="ttdoc">Virtual destructor, only needed to make sure the correct destructor of the derived classes is called.</div><div class="ttdef"><b>Definition:</b> ubp.h:82</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_structure_html"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_structure.html">maingo::ubp::UbpStructure</a></div><div class="ttdoc">Struct for storing structure information for the upper bounding solver. </div><div class="ttdef"><b>Definition:</b> ubpStructure.h:30</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_ac1124e613e46e59fb88415116e08e326"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac1124e613e46e59fb88415116e08e326">maingo::ubp::UpperBoundingSolver::_check_integrality</a></div><div class="ttdeci">SUBSOLVER_RETCODE _check_integrality(const std::vector&lt; double &gt; &amp;currentPoint) const</div><div class="ttdoc">Function checking if discrete variables are indeed discrete. </div><div class="ttdef"><b>Definition:</b> ubp.cpp:839</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_aa17ca0c5dbf33219148dc2fff3446357"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa17ca0c5dbf33219148dc2fff3446357">maingo::ubp::UpperBoundingSolver::~UpperBoundingSolver</a></div><div class="ttdeci">virtual ~UpperBoundingSolver()</div><div class="ttdoc">Virtual destructor, only needed to make sure the correct destructor of the derived classes is called...</div><div class="ttdef"><b>Definition:</b> ubp.h:77</div></div>
 <div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_afa9dca36d7987121ddc0327e62dfdcf2"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#afa9dca36d7987121ddc0327e62dfdcf2">maingo::ubp::UpperBoundingSolver::operator=</a></div><div class="ttdeci">UpperBoundingSolver &amp; operator=(const UpperBoundingSolver &amp;)</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_ac291c925f9007b90cbf09497a93d8239"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac291c925f9007b90cbf09497a93d8239">maingo::ubp::UpperBoundingSolver::multistart</a></div><div class="ttdeci">SUBSOLVER_RETCODE multistart(babBase::BabNode const &amp;currentNode, double &amp;objectiveValue, std::vector&lt; double &gt; &amp;solutionPoint, std::vector&lt; SUBSOLVER_RETCODE &gt; &amp;feasible, std::vector&lt; double &gt; &amp;optimalObjectives, bool &amp;initialPointFeasible)</div><div class="ttdoc">Multistart heuristic for automatically solving the UBP from multiple starting points.</div><div class="ttdef"><b>Definition:</b> ubp.cpp:171</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_ae20cc817f6ec888d8a9e7a9723cfe0b7"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ae20cc817f6ec888d8a9e7a9723cfe0b7">maingo::ubp::UpperBoundingSolver::_check_ineq</a></div><div class="ttdeci">SUBSOLVER_RETCODE _check_ineq(const std::vector&lt; double &gt; &amp;modelOutput) const</div><div class="ttdoc">Function checking if inequality constraints are fulfilled.</div><div class="ttdef"><b>Definition:</b> ubp.cpp:777</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_aae0c39f4b14cfb8a3c70a57b49f15e67"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aae0c39f4b14cfb8a3c70a57b49f15e67">maingo::ubp::UpperBoundingSolver::_constraintProperties</a></div><div class="ttdeci">std::vector&lt; Constraint &gt; * _constraintProperties</div><div class="ttdef"><b>Definition:</b> ubp.h:199</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a88f6a1e58a7274d44f6c9513581a6f4b"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a88f6a1e58a7274d44f6c9513581a6f4b">maingo::ubp::UpperBoundingSolver::_generate_multistart_point</a></div><div class="ttdeci">std::vector&lt; double &gt; _generate_multistart_point(bool &amp;usedCenter, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</div><div class="ttdoc">Function for generating a point used in multistart.</div><div class="ttdef"><b>Definition:</b> ubp.cpp:486</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_aa61f6cbf0485f37b2ad7a73b18aa6521"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa61f6cbf0485f37b2ad7a73b18aa6521">maingo::ubp::UpperBoundingSolver::_solve_nlp</a></div><div class="ttdeci">virtual SUBSOLVER_RETCODE _solve_nlp(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, double &amp;objectiveValue, std::vector&lt; double &gt; &amp;solutionPoint)</div><div class="ttdoc">Function for actually solving the NLP sub-problem. This needs to be re-defined in derived classes to ...</div><div class="ttdef"><b>Definition:</b> ubp.cpp:158</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a05f3d0a48a4c425ac11035a76426a184"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a05f3d0a48a4c425ac11035a76426a184">maingo::ubp::UpperBoundingSolver::_originalVariables</a></div><div class="ttdeci">std::vector&lt; babBase::OptimizationVariable &gt; _originalVariables</div><div class="ttdef"><b>Definition:</b> ubp.h:210</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_ac9710c21359f1811dbdee779247fa701"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac9710c21359f1811dbdee779247fa701">maingo::ubp::UpperBoundingSolver::_DAGobj</a></div><div class="ttdeci">std::shared_ptr&lt; DagObj &gt; _DAGobj</div><div class="ttdef"><b>Definition:</b> ubp.h:197</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_afce03a4f45462c5afb5af2146ddd7e78"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#afce03a4f45462c5afb5af2146ddd7e78">maingo::ubp::UpperBoundingSolver::_determine_sparsity_hessian</a></div><div class="ttdeci">void _determine_sparsity_hessian()</div><div class="ttdoc">Function for determining the non-zero entries in the Hessian of the Lagrangian function.</div><div class="ttdef"><b>Definition:</b> ubp.cpp:1047</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a5310f4bd87280f6785ddac2260f034d0"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a5310f4bd87280f6785ddac2260f034d0">maingo::ubp::UpperBoundingSolver::_structure</a></div><div class="ttdeci">UbpStructure _structure</div><div class="ttdef"><b>Definition:</b> ubp.h:213</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a566cab6bf72ec7da46a8e42d63378d02"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a566cab6bf72ec7da46a8e42d63378d02">maingo::ubp::UpperBoundingSolver::_determine_structure</a></div><div class="ttdeci">void _determine_structure()</div><div class="ttdoc">Function for determining the number of variables participating in each function and the type of a fun...</div><div class="ttdef"><b>Definition:</b> ubp.cpp:959</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_af057bf3a184ca83102a6237bb83dd261"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#af057bf3a184ca83102a6237bb83dd261">maingo::ubp::UpperBoundingSolver::check_feasibility</a></div><div class="ttdeci">SUBSOLVER_RETCODE check_feasibility(const std::vector&lt; double &gt; &amp;currentPoint, double &amp;objectiveValue) const</div><div class="ttdoc">Function for checking feasibility of a point.</div><div class="ttdef"><b>Definition:</b> ubp.cpp:895</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a2a4ed8977b38691844e43bb86ee86012"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2a4ed8977b38691844e43bb86ee86012">maingo::ubp::UpperBoundingSolver::_nineq</a></div><div class="ttdeci">unsigned _nineq</div><div class="ttdef"><b>Definition:</b> ubp.h:207</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a04b6d46cf762e76a70611b9c9e54f71d"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a04b6d46cf762e76a70611b9c9e54f71d">maingo::ubp::UpperBoundingSolver::_determine_sparsity_jacobian</a></div><div class="ttdeci">void _determine_sparsity_jacobian()</div><div class="ttdoc">Function for setting the information about the sparsity structure in the Jacobian.</div><div class="ttdef"><b>Definition:</b> ubp.cpp:1018</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_ac291c925f9007b90cbf09497a93d8239"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac291c925f9007b90cbf09497a93d8239">maingo::ubp::UpperBoundingSolver::multistart</a></div><div class="ttdeci">SUBSOLVER_RETCODE multistart(babBase::BabNode const &amp;currentNode, double &amp;objectiveValue, std::vector&lt; double &gt; &amp;solutionPoint, std::vector&lt; SUBSOLVER_RETCODE &gt; &amp;feasible, std::vector&lt; double &gt; &amp;optimalObjectives, bool &amp;initialPointFeasible)</div><div class="ttdoc">Multistart heuristic for automatically solving the UBP from multiple starting points. </div><div class="ttdef"><b>Definition:</b> ubp.cpp:167</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_ae20cc817f6ec888d8a9e7a9723cfe0b7"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ae20cc817f6ec888d8a9e7a9723cfe0b7">maingo::ubp::UpperBoundingSolver::_check_ineq</a></div><div class="ttdeci">SUBSOLVER_RETCODE _check_ineq(const std::vector&lt; double &gt; &amp;modelOutput) const</div><div class="ttdoc">Function checking if inequality constraints are fulfilled. </div><div class="ttdef"><b>Definition:</b> ubp.cpp:773</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_ab76a699684d09100c63ec4ddcaa10456"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ab76a699684d09100c63ec4ddcaa10456">maingo::ubp::UpperBoundingSolver::_logger</a></div><div class="ttdeci">std::shared_ptr&lt; Logger &gt; _logger</div><div class="ttdef"><b>Definition:</b> ubp.h:191</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a88f6a1e58a7274d44f6c9513581a6f4b"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a88f6a1e58a7274d44f6c9513581a6f4b">maingo::ubp::UpperBoundingSolver::_generate_multistart_point</a></div><div class="ttdeci">std::vector&lt; double &gt; _generate_multistart_point(bool &amp;usedCenter, const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds)</div><div class="ttdoc">Function for generating a point used in multistart. </div><div class="ttdef"><b>Definition:</b> ubp.cpp:482</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_aa61f6cbf0485f37b2ad7a73b18aa6521"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#aa61f6cbf0485f37b2ad7a73b18aa6521">maingo::ubp::UpperBoundingSolver::_solve_nlp</a></div><div class="ttdeci">virtual SUBSOLVER_RETCODE _solve_nlp(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, double &amp;objectiveValue, std::vector&lt; double &gt; &amp;solutionPoint)</div><div class="ttdoc">Function for actually solving the NLP sub-problem. This needs to be re-defined in derived classes to ...</div><div class="ttdef"><b>Definition:</b> ubp.cpp:155</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a05f3d0a48a4c425ac11035a76426a184"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a05f3d0a48a4c425ac11035a76426a184">maingo::ubp::UpperBoundingSolver::_originalVariables</a></div><div class="ttdeci">std::vector&lt; babBase::OptimizationVariable &gt; _originalVariables</div><div class="ttdef"><b>Definition:</b> ubp.h:205</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_ac9710c21359f1811dbdee779247fa701"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#ac9710c21359f1811dbdee779247fa701">maingo::ubp::UpperBoundingSolver::_DAGobj</a></div><div class="ttdeci">std::shared_ptr&lt; DagObj &gt; _DAGobj</div><div class="ttdef"><b>Definition:</b> ubp.h:192</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_afce03a4f45462c5afb5af2146ddd7e78"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#afce03a4f45462c5afb5af2146ddd7e78">maingo::ubp::UpperBoundingSolver::_determine_sparsity_hessian</a></div><div class="ttdeci">void _determine_sparsity_hessian()</div><div class="ttdoc">Function for determining the non-zero entries in the Hessian of the Lagrangian function. </div><div class="ttdef"><b>Definition:</b> ubp.cpp:1042</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a5310f4bd87280f6785ddac2260f034d0"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a5310f4bd87280f6785ddac2260f034d0">maingo::ubp::UpperBoundingSolver::_structure</a></div><div class="ttdeci">UbpStructure _structure</div><div class="ttdef"><b>Definition:</b> ubp.h:208</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a566cab6bf72ec7da46a8e42d63378d02"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a566cab6bf72ec7da46a8e42d63378d02">maingo::ubp::UpperBoundingSolver::_determine_structure</a></div><div class="ttdeci">void _determine_structure()</div><div class="ttdoc">Function for determining the number of variables participating in each function and the type of a fun...</div><div class="ttdef"><b>Definition:</b> ubp.cpp:954</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_af057bf3a184ca83102a6237bb83dd261"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#af057bf3a184ca83102a6237bb83dd261">maingo::ubp::UpperBoundingSolver::check_feasibility</a></div><div class="ttdeci">SUBSOLVER_RETCODE check_feasibility(const std::vector&lt; double &gt; &amp;currentPoint, double &amp;objectiveValue) const</div><div class="ttdoc">Function for checking feasibility of a point. </div><div class="ttdef"><b>Definition:</b> ubp.cpp:891</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a2a4ed8977b38691844e43bb86ee86012"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a2a4ed8977b38691844e43bb86ee86012">maingo::ubp::UpperBoundingSolver::_nineq</a></div><div class="ttdeci">unsigned _nineq</div><div class="ttdef"><b>Definition:</b> ubp.h:202</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a04b6d46cf762e76a70611b9c9e54f71d"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a04b6d46cf762e76a70611b9c9e54f71d">maingo::ubp::UpperBoundingSolver::_determine_sparsity_jacobian</a></div><div class="ttdeci">void _determine_sparsity_jacobian()</div><div class="ttdoc">Function for setting the information about the sparsity structure in the Jacobian. </div><div class="ttdef"><b>Definition:</b> ubp.cpp:1013</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -146,7 +144,7 @@ $(document).ready(function(){initNavTree('ubp_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="ubp_8h.html">ubp.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/ubp_clp_8cpp.html b/doc/html/ubp_clp_8cpp.html
index 6d904a16c3ec7c8151d3d482dbdb35a377ff8a86..b2a612f9794f91994ef584234a6ff1523f7169a0 100644
--- a/doc/html/ubp_clp_8cpp.html
+++ b/doc/html/ubp_clp_8cpp.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/src/ubpClp.cpp File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/src/ubpClp.cpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -91,7 +91,7 @@ $(document).ready(function(){initNavTree('ubp_clp_8cpp.html','');});
 </div><!--header-->
 <div class="contents">
 <div class="textblock"><code>#include &quot;<a class="el" href="ubp_clp_8h_source.html">ubpClp.h</a>&quot;</code><br />
-<code>#include &quot;<a class="el" href="exceptions_8h_source.html">exceptions.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_m_ai_n_g_o_exception_8h_source.html">MAiNGOException.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="ubp_dag_obj_8h_source.html">ubpDagObj.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="ubp_quad_expr_8h_source.html">ubpQuadExpr.h</a>&quot;</code><br />
 <code>#include &lt;limits&gt;</code><br />
@@ -103,7 +103,7 @@ $(document).ready(function(){initNavTree('ubp_clp_8cpp.html','');});
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="ubp_clp_8cpp.html">ubpClp.cpp</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/ubp_clp_8h.html b/doc/html/ubp_clp_8h.html
index 2cb3e6b3a8fb709643fa0ccd154c1ff2a7aa5c49..7a727aa37019c36457fb90058fe44e56f30cbcf2 100644
--- a/doc/html/ubp_clp_8h.html
+++ b/doc/html/ubp_clp_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/ubpClp.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/ubpClp.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -124,7 +124,7 @@ Namespaces</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="ubp_clp_8h.html">ubpClp.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/ubp_clp_8h_source.html b/doc/html/ubp_clp_8h_source.html
index 2ea4fe9f817fe44c43509615601a57c461625bfc..16558a57596dbd8cd391c63bd5a5f32fe9795fb7 100644
--- a/doc/html/ubp_clp_8h_source.html
+++ b/doc/html/ubp_clp_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/ubpClp.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/ubpClp.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,26 +90,24 @@ $(document).ready(function(){initNavTree('ubp_clp_8h_source.html','');});
 <div class="title">ubpClp.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="ubp_clp_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file ubpClp.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing declaration of UbpClp class used for solving the upper</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *        bounding problems (or, rather, the entire problem) in the case when the</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *        original problem is an LP.</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ubp_8h.html">ubp.h</a>&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &quot;ClpFactorization.hpp&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;ClpNetworkMatrix.hpp&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &quot;ClpSimplex.hpp&quot;</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;list&gt;</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="keyword">namespace </span>ubp {</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_clp.html">   42</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1ubp_1_1_ubp_clp.html">UbpClp</a>: <span class="keyword">public</span> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">UpperBoundingSolver</a> {</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ubp_clp.html#acffeaea83adc9f0e61e3998fab15cf6f">UbpClp</a>(mc::FFGraph&amp; DAG, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt;&amp; DAGvars, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt;&amp; DAGfunctions, <span class="keyword">const</span> std::vector&lt;babBase::OptimizationVariable&gt;&amp; variables,</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;           <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqSquashIn, <a class="code" href="structmaingo_1_1_settings.html">Settings</a>* settingsIn, <a class="code" href="classmaingo_1_1_logger.html">Logger</a>* loggerIn, std::vector&lt;Constraint&gt;* constraintPropertiesIn, <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> useIn);</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_clp.html#ab24d1e766d5bbc32fdaab11dbdd05ef2">_solve_nlp</a>(<span class="keyword">const</span> std::vector&lt;double&gt;&amp; lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt;&amp; upperVarBounds, <span class="keywordtype">double</span>&amp; objectiveValue, std::vector&lt;double&gt;&amp; solutionPoint);</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_clp.html#ae2d176177a7821c5532fb229f04577c9">   79</a></span>&#160;    ClpSimplex <a class="code" href="classmaingo_1_1ubp_1_1_ubp_clp.html#ae2d176177a7821c5532fb229f04577c9">_clp</a>;                      </div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a52188ee77b0ac7ba4bf8215d8fac556e">   80</a></span>&#160;    CoinPackedMatrix <a class="code" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a52188ee77b0ac7ba4bf8215d8fac556e">_matrix</a>;             </div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a01e9a781b3742401ffa9dcf88b7b3067">   81</a></span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a01e9a781b3742401ffa9dcf88b7b3067">_numrows</a>;                      </div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a10029afd1388a285d464b25181c00d3e">   82</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a10029afd1388a285d464b25181c00d3e">_objectiveConstant</a>;            </div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_clp.html#ab3826bb88bc174edc3e8c38a1c6620b5">   83</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1ubp_1_1_ubp_clp.html#ab3826bb88bc174edc3e8c38a1c6620b5">_objectiveCoeffs</a>; </div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a3073de5a0fbe6fa5632a9090f1b056ef">   84</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a3073de5a0fbe6fa5632a9090f1b056ef">_lowerRowBounds</a>;  </div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a57127186a8c3cfa2eca5a84de10d5461">   85</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a57127186a8c3cfa2eca5a84de10d5461">_upperRowBounds</a>;  </div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a377da5ab602aaf0ad0d53ea444dce938">   86</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a377da5ab602aaf0ad0d53ea444dce938">_lowerVarBounds</a>;  </div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a08203d67961695155e95c8941b75477a">   87</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a08203d67961695155e95c8941b75477a">_upperVarBounds</a>;  </div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    <span class="comment">// Prevent use of default copy constructor and copy assignment operator by declaring them private:</span></div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ubp_clp.html#acffeaea83adc9f0e61e3998fab15cf6f">UbpClp</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_clp.html">UbpClp</a>&amp;);            </div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ubp_clp.html">UbpClp</a>&amp; <a class="code" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a0f3faa3937a515be22cff1913eda1b06">operator=</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_clp.html">UbpClp</a>&amp;); </div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;};</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;}    <span class="comment">// end namespace ubp</span></div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_clp_html"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_clp.html">maingo::ubp::UbpClp</a></div><div class="ttdoc">Wrapper for handling the upper bounding problems by interfacing CLP.</div><div class="ttdef"><b>Definition:</b> ubpClp.h:42</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_clp_html_a10029afd1388a285d464b25181c00d3e"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_clp.html#a10029afd1388a285d464b25181c00d3e">maingo::ubp::UbpClp::_objectiveConstant</a></div><div class="ttdeci">double _objectiveConstant</div><div class="ttdef"><b>Definition:</b> ubpClp.h:82</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_clp_html_a08203d67961695155e95c8941b75477a"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_clp.html#a08203d67961695155e95c8941b75477a">maingo::ubp::UbpClp::_upperVarBounds</a></div><div class="ttdeci">std::vector&lt; double &gt; _upperVarBounds</div><div class="ttdef"><b>Definition:</b> ubpClp.h:87</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html"><div class="ttname"><a href="structmaingo_1_1_settings.html">maingo::Settings</a></div><div class="ttdoc">Struct for storing settings for MAiNGO.</div><div class="ttdef"><b>Definition:</b> settings.h:143</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_clp_html_a377da5ab602aaf0ad0d53ea444dce938"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_clp.html#a377da5ab602aaf0ad0d53ea444dce938">maingo::ubp::UbpClp::_lowerVarBounds</a></div><div class="ttdeci">std::vector&lt; double &gt; _lowerVarBounds</div><div class="ttdef"><b>Definition:</b> ubpClp.h:86</div></div>
+<a href="ubp_clp_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ubp_8h.html">ubp.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &quot;ClpFactorization.hpp&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &quot;ClpNetworkMatrix.hpp&quot;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;ClpSimplex.hpp&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &lt;list&gt;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="keyword">namespace </span>ubp {</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_clp.html">   36</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1ubp_1_1_ubp_clp.html">UbpClp</a>: <span class="keyword">public</span> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">UpperBoundingSolver</a> {</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a2ff59fcf2223f5851ec4fffa59299656">UbpClp</a>(mc::FFGraph&amp; DAG, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt;&amp; DAGvars, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt;&amp; DAGfunctions, <span class="keyword">const</span> std::vector&lt;babBase::OptimizationVariable&gt;&amp; variables,</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;           <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqSquashIn, std::shared_ptr&lt;Settings&gt; settingsIn, std::shared_ptr&lt;Logger&gt; loggerIn, std::shared_ptr&lt;std::vector&lt;Constraint&gt;&gt; constraintPropertiesIn, <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> useIn);</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_clp.html#ab24d1e766d5bbc32fdaab11dbdd05ef2">_solve_nlp</a>(<span class="keyword">const</span> std::vector&lt;double&gt;&amp; lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt;&amp; upperVarBounds, <span class="keywordtype">double</span>&amp; objectiveValue, std::vector&lt;double&gt;&amp; solutionPoint);</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_clp.html#ae2d176177a7821c5532fb229f04577c9">   73</a></span>&#160;    ClpSimplex <a class="code" href="classmaingo_1_1ubp_1_1_ubp_clp.html#ae2d176177a7821c5532fb229f04577c9">_clp</a>;                      </div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a52188ee77b0ac7ba4bf8215d8fac556e">   74</a></span>&#160;    CoinPackedMatrix <a class="code" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a52188ee77b0ac7ba4bf8215d8fac556e">_matrix</a>;             </div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a01e9a781b3742401ffa9dcf88b7b3067">   75</a></span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a01e9a781b3742401ffa9dcf88b7b3067">_numrows</a>;                      </div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a10029afd1388a285d464b25181c00d3e">   76</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a10029afd1388a285d464b25181c00d3e">_objectiveConstant</a>;            </div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_clp.html#ab3826bb88bc174edc3e8c38a1c6620b5">   77</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1ubp_1_1_ubp_clp.html#ab3826bb88bc174edc3e8c38a1c6620b5">_objectiveCoeffs</a>; </div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a3073de5a0fbe6fa5632a9090f1b056ef">   78</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a3073de5a0fbe6fa5632a9090f1b056ef">_lowerRowBounds</a>;  </div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a57127186a8c3cfa2eca5a84de10d5461">   79</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a57127186a8c3cfa2eca5a84de10d5461">_upperRowBounds</a>;  </div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a377da5ab602aaf0ad0d53ea444dce938">   80</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a377da5ab602aaf0ad0d53ea444dce938">_lowerVarBounds</a>;  </div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a08203d67961695155e95c8941b75477a">   81</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a08203d67961695155e95c8941b75477a">_upperVarBounds</a>;  </div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    <span class="comment">// Prevent use of default copy constructor and copy assignment operator by declaring them private:</span></div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a2ff59fcf2223f5851ec4fffa59299656">UbpClp</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_clp.html">UbpClp</a>&amp;);            </div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ubp_clp.html">UbpClp</a>&amp; <a class="code" href="classmaingo_1_1ubp_1_1_ubp_clp.html#a0f3faa3937a515be22cff1913eda1b06">operator=</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_clp.html">UbpClp</a>&amp;); </div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;};</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;}    <span class="comment">// end namespace ubp</span></div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_clp_html"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_clp.html">maingo::ubp::UbpClp</a></div><div class="ttdoc">Wrapper for handling the upper bounding problems by interfacing CLP. </div><div class="ttdef"><b>Definition:</b> ubpClp.h:36</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_clp_html_a10029afd1388a285d464b25181c00d3e"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_clp.html#a10029afd1388a285d464b25181c00d3e">maingo::ubp::UbpClp::_objectiveConstant</a></div><div class="ttdeci">double _objectiveConstant</div><div class="ttdef"><b>Definition:</b> ubpClp.h:76</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_clp_html_a08203d67961695155e95c8941b75477a"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_clp.html#a08203d67961695155e95c8941b75477a">maingo::ubp::UbpClp::_upperVarBounds</a></div><div class="ttdeci">std::vector&lt; double &gt; _upperVarBounds</div><div class="ttdef"><b>Definition:</b> ubpClp.h:81</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_clp_html_a377da5ab602aaf0ad0d53ea444dce938"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_clp.html#a377da5ab602aaf0ad0d53ea444dce938">maingo::ubp::UbpClp::_lowerVarBounds</a></div><div class="ttdeci">std::vector&lt; double &gt; _lowerVarBounds</div><div class="ttdef"><b>Definition:</b> ubpClp.h:80</div></div>
 <div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_clp_html_a0f3faa3937a515be22cff1913eda1b06"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_clp.html#a0f3faa3937a515be22cff1913eda1b06">maingo::ubp::UbpClp::operator=</a></div><div class="ttdeci">UbpClp &amp; operator=(const UbpClp &amp;)</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html"><div class="ttname"><a href="classmaingo_1_1_logger.html">maingo::Logger</a></div><div class="ttdoc">This class contains all logging and output information.</div><div class="ttdef"><b>Definition:</b> logger.h:101</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_clp_html_a3073de5a0fbe6fa5632a9090f1b056ef"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_clp.html#a3073de5a0fbe6fa5632a9090f1b056ef">maingo::ubp::UbpClp::_lowerRowBounds</a></div><div class="ttdeci">std::vector&lt; double &gt; _lowerRowBounds</div><div class="ttdef"><b>Definition:</b> ubpClp.h:84</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_clp_html_acffeaea83adc9f0e61e3998fab15cf6f"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_clp.html#acffeaea83adc9f0e61e3998fab15cf6f">maingo::ubp::UbpClp::UbpClp</a></div><div class="ttdeci">UbpClp(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, UBS_USE useIn)</div><div class="ttdoc">Constructor, stores information on the problem and initializes the local-subsolvers used.</div><div class="ttdef"><b>Definition:</b> ubpClp.cpp:32</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_clp_html_a52188ee77b0ac7ba4bf8215d8fac556e"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_clp.html#a52188ee77b0ac7ba4bf8215d8fac556e">maingo::ubp::UbpClp::_matrix</a></div><div class="ttdeci">CoinPackedMatrix _matrix</div><div class="ttdef"><b>Definition:</b> ubpClp.h:80</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></div><div class="ttdoc">Base class for wrappers for handling the upper bounding problems.</div><div class="ttdef"><b>Definition:</b> ubp.h:49</div></div>
-<div class="ttc" id="namespacemaingo_html_ab7a1cb5c265f8d1c287d43fec7988020"><div class="ttname"><a href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">maingo::SUBSOLVER_RETCODE</a></div><div class="ttdeci">SUBSOLVER_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the different sub-solvers (UpperBoundingSolver,...</div><div class="ttdef"><b>Definition:</b> returnCodes.h:40</div></div>
-<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO</div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a1f4073797703aa1546f3f66938318395"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">maingo::ubp::UpperBoundingSolver::UBS_USE</a></div><div class="ttdeci">UBS_USE</div><div class="ttdoc">Enum for communicating what the intended purpose of the solver is. This determines which settings are...</div><div class="ttdef"><b>Definition:</b> ubp.h:56</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_clp_html_a01e9a781b3742401ffa9dcf88b7b3067"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_clp.html#a01e9a781b3742401ffa9dcf88b7b3067">maingo::ubp::UbpClp::_numrows</a></div><div class="ttdeci">size_t _numrows</div><div class="ttdef"><b>Definition:</b> ubpClp.h:81</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_clp_html_a57127186a8c3cfa2eca5a84de10d5461"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_clp.html#a57127186a8c3cfa2eca5a84de10d5461">maingo::ubp::UbpClp::_upperRowBounds</a></div><div class="ttdeci">std::vector&lt; double &gt; _upperRowBounds</div><div class="ttdef"><b>Definition:</b> ubpClp.h:85</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_clp_html_a3073de5a0fbe6fa5632a9090f1b056ef"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_clp.html#a3073de5a0fbe6fa5632a9090f1b056ef">maingo::ubp::UbpClp::_lowerRowBounds</a></div><div class="ttdeci">std::vector&lt; double &gt; _lowerRowBounds</div><div class="ttdef"><b>Definition:</b> ubpClp.h:78</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_clp_html_a52188ee77b0ac7ba4bf8215d8fac556e"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_clp.html#a52188ee77b0ac7ba4bf8215d8fac556e">maingo::ubp::UbpClp::_matrix</a></div><div class="ttdeci">CoinPackedMatrix _matrix</div><div class="ttdef"><b>Definition:</b> ubpClp.h:74</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></div><div class="ttdoc">Base class for wrappers for handling the upper bounding problems. </div><div class="ttdef"><b>Definition:</b> ubp.h:44</div></div>
+<div class="ttc" id="namespacemaingo_html_ab7a1cb5c265f8d1c287d43fec7988020"><div class="ttname"><a href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">maingo::SUBSOLVER_RETCODE</a></div><div class="ttdeci">SUBSOLVER_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the different sub-solvers (UpperBoundingSolver, LowerBoundingSolver). </div><div class="ttdef"><b>Definition:</b> returnCodes.h:36</div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a1f4073797703aa1546f3f66938318395"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">maingo::ubp::UpperBoundingSolver::UBS_USE</a></div><div class="ttdeci">UBS_USE</div><div class="ttdoc">Enum for communicating what the intended purpose of the solver is. This determines which settings are...</div><div class="ttdef"><b>Definition:</b> ubp.h:51</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_clp_html_a01e9a781b3742401ffa9dcf88b7b3067"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_clp.html#a01e9a781b3742401ffa9dcf88b7b3067">maingo::ubp::UbpClp::_numrows</a></div><div class="ttdeci">size_t _numrows</div><div class="ttdef"><b>Definition:</b> ubpClp.h:75</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_clp_html_a57127186a8c3cfa2eca5a84de10d5461"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_clp.html#a57127186a8c3cfa2eca5a84de10d5461">maingo::ubp::UbpClp::_upperRowBounds</a></div><div class="ttdeci">std::vector&lt; double &gt; _upperRowBounds</div><div class="ttdef"><b>Definition:</b> ubpClp.h:79</div></div>
 <div class="ttc" id="ubp_8h_html"><div class="ttname"><a href="ubp_8h.html">ubp.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_clp_html_ae2d176177a7821c5532fb229f04577c9"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_clp.html#ae2d176177a7821c5532fb229f04577c9">maingo::ubp::UbpClp::_clp</a></div><div class="ttdeci">ClpSimplex _clp</div><div class="ttdef"><b>Definition:</b> ubpClp.h:79</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_clp_html_ab24d1e766d5bbc32fdaab11dbdd05ef2"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_clp.html#ab24d1e766d5bbc32fdaab11dbdd05ef2">maingo::ubp::UbpClp::_solve_nlp</a></div><div class="ttdeci">virtual SUBSOLVER_RETCODE _solve_nlp(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, double &amp;objectiveValue, std::vector&lt; double &gt; &amp;solutionPoint)</div><div class="ttdoc">Function for actually solving the NLP (actually, LP in this case) sub-problem.</div><div class="ttdef"><b>Definition:</b> ubpClp.cpp:53</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_clp_html_ab3826bb88bc174edc3e8c38a1c6620b5"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_clp.html#ab3826bb88bc174edc3e8c38a1c6620b5">maingo::ubp::UbpClp::_objectiveCoeffs</a></div><div class="ttdeci">std::vector&lt; double &gt; _objectiveCoeffs</div><div class="ttdef"><b>Definition:</b> ubpClp.h:83</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_clp_html_ae2d176177a7821c5532fb229f04577c9"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_clp.html#ae2d176177a7821c5532fb229f04577c9">maingo::ubp::UbpClp::_clp</a></div><div class="ttdeci">ClpSimplex _clp</div><div class="ttdef"><b>Definition:</b> ubpClp.h:73</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_clp_html_ab24d1e766d5bbc32fdaab11dbdd05ef2"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_clp.html#ab24d1e766d5bbc32fdaab11dbdd05ef2">maingo::ubp::UbpClp::_solve_nlp</a></div><div class="ttdeci">virtual SUBSOLVER_RETCODE _solve_nlp(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, double &amp;objectiveValue, std::vector&lt; double &gt; &amp;solutionPoint)</div><div class="ttdoc">Function for actually solving the NLP (actually, LP in this case) sub-problem. </div><div class="ttdef"><b>Definition:</b> ubpClp.cpp:50</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_clp_html_ab3826bb88bc174edc3e8c38a1c6620b5"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_clp.html#ab3826bb88bc174edc3e8c38a1c6620b5">maingo::ubp::UbpClp::_objectiveCoeffs</a></div><div class="ttdeci">std::vector&lt; double &gt; _objectiveCoeffs</div><div class="ttdef"><b>Definition:</b> ubpClp.h:77</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_clp_html_a2ff59fcf2223f5851ec4fffa59299656"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_clp.html#a2ff59fcf2223f5851ec4fffa59299656">maingo::ubp::UbpClp::UbpClp</a></div><div class="ttdeci">UbpClp(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, UBS_USE useIn)</div><div class="ttdoc">Constructor, stores information on the problem and initializes the local-subsolvers used...</div><div class="ttdef"><b>Definition:</b> ubpClp.cpp:26</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -118,7 +116,7 @@ $(document).ready(function(){initNavTree('ubp_clp_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="ubp_clp_8h.html">ubpClp.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/ubp_cplex_8cpp.html b/doc/html/ubp_cplex_8cpp.html
index 9b13193f5c7067ae8f229bd943070fed31691282..de915772f4a99f4ba06b18785bbfb4f02d2dfaac 100644
--- a/doc/html/ubp_cplex_8cpp.html
+++ b/doc/html/ubp_cplex_8cpp.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/src/ubpCplex.cpp File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/src/ubpCplex.cpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -98,7 +98,7 @@ $(document).ready(function(){initNavTree('ubp_cplex_8cpp.html','');});
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="ubp_cplex_8cpp.html">ubpCplex.cpp</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/ubp_cplex_8h.html b/doc/html/ubp_cplex_8h.html
index 4a97d6ddf52da94d5dd63072c3b40cffec32f521..c6377fc5ce0e914562f8e7e0ada5470df008f786 100644
--- a/doc/html/ubp_cplex_8h.html
+++ b/doc/html/ubp_cplex_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/ubpCplex.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/ubpCplex.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -123,7 +123,7 @@ Namespaces</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="ubp_cplex_8h.html">ubpCplex.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/ubp_cplex_8h_source.html b/doc/html/ubp_cplex_8h_source.html
index ecb430682bd6c5ef4074003f6e953a9dff44c3b1..7b322951b22edadce3b8cd6ad03ca0c7ca8dc7c4 100644
--- a/doc/html/ubp_cplex_8h_source.html
+++ b/doc/html/ubp_cplex_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/ubpCplex.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/ubpCplex.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,23 +90,21 @@ $(document).ready(function(){initNavTree('ubp_cplex_8h_source.html','');});
 <div class="title">ubpCplex.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="ubp_cplex_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file ubpCplex.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing declaration of UbpCplex class used for solving the upper</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *        bounding problems in the case when the underlying problem is an LP, MIP,</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *        QCP, or MIQCP.</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ubp_8h.html">ubp.h</a>&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &quot;ilcplex/ilocplex.h&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;list&gt;</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;utility&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="keyword">namespace </span>ubp {</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_cplex.html">   41</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1ubp_1_1_ubp_cplex.html">UbpCplex</a>: <span class="keyword">public</span> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">UpperBoundingSolver</a> {</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a151f2ced79870ee59b168cdcaaf34bff">UbpCplex</a>(mc::FFGraph &amp;DAG, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGvars, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGfunctions, <span class="keyword">const</span> std::vector&lt;babBase::OptimizationVariable&gt; &amp;variables,</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;             <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqSquashIn, <a class="code" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="code" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn, std::vector&lt;Constraint&gt; *constraintPropertiesIn, <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> useIn);</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#ada023ef9d9bd4904e5e47e2181d38ab9">~UbpCplex</a>();</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a6ddfc769b26441e3712ec56c5dcec7ba">_solve_nlp</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">double</span> &amp;objectiveValue, std::vector&lt;double&gt; &amp;solutionPoint);</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a224b13053d2fdcaff567757fc3b4316e">_terminate_cplex</a>();</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#ab2d527e6892c4ecadcb4a1a1f4511305">   88</a></span>&#160;    IloEnv <a class="code" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#ab2d527e6892c4ecadcb4a1a1f4511305">cplxEnv</a>;          </div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a3028cd7ab01046cd3a1eec23a4db55a1">   89</a></span>&#160;    IloModel <a class="code" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a3028cd7ab01046cd3a1eec23a4db55a1">cplxModel</a>;      </div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a30c83b32af454645ccc8ad302377ce3f">   90</a></span>&#160;    IloNumVarArray <a class="code" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a30c83b32af454645ccc8ad302377ce3f">cplxVars</a>; </div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a94390df2712be8d4a309c9cdf42e705b">   91</a></span>&#160;    IloCplex <a class="code" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a94390df2712be8d4a309c9cdf42e705b">cplex</a>;          </div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    <span class="comment">// Prevent use of default copy constructor and copy assignment operator by declaring them private:</span></div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a151f2ced79870ee59b168cdcaaf34bff">UbpCplex</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_cplex.html">UbpCplex</a> &amp;);            </div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ubp_cplex.html">UbpCplex</a> &amp;<a class="code" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a944ac3f482c2db599bd0c0cfdd76b868">operator=</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_cplex.html">UbpCplex</a> &amp;); </div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;};</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;}    <span class="comment">// end namespace ubp</span></div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="structmaingo_1_1_settings_html"><div class="ttname"><a href="structmaingo_1_1_settings.html">maingo::Settings</a></div><div class="ttdoc">Struct for storing settings for MAiNGO.</div><div class="ttdef"><b>Definition:</b> settings.h:143</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_cplex_html_a6ddfc769b26441e3712ec56c5dcec7ba"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a6ddfc769b26441e3712ec56c5dcec7ba">maingo::ubp::UbpCplex::_solve_nlp</a></div><div class="ttdeci">virtual SUBSOLVER_RETCODE _solve_nlp(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, double &amp;objectiveValue, std::vector&lt; double &gt; &amp;solutionPoint)</div><div class="ttdoc">Function for actually solving the NLP (actually, LP in this case) sub-problem.</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_cplex_html"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_cplex.html">maingo::ubp::UbpCplex</a></div><div class="ttdoc">Wrapper for handling the upper bounding problems by interfacing CPLEX.</div><div class="ttdef"><b>Definition:</b> ubpCplex.h:41</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html"><div class="ttname"><a href="classmaingo_1_1_logger.html">maingo::Logger</a></div><div class="ttdoc">This class contains all logging and output information.</div><div class="ttdef"><b>Definition:</b> logger.h:101</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_cplex_html_a94390df2712be8d4a309c9cdf42e705b"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a94390df2712be8d4a309c9cdf42e705b">maingo::ubp::UbpCplex::cplex</a></div><div class="ttdeci">IloCplex cplex</div><div class="ttdef"><b>Definition:</b> ubpCplex.h:91</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></div><div class="ttdoc">Base class for wrappers for handling the upper bounding problems.</div><div class="ttdef"><b>Definition:</b> ubp.h:49</div></div>
-<div class="ttc" id="namespacemaingo_html_ab7a1cb5c265f8d1c287d43fec7988020"><div class="ttname"><a href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">maingo::SUBSOLVER_RETCODE</a></div><div class="ttdeci">SUBSOLVER_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the different sub-solvers (UpperBoundingSolver,...</div><div class="ttdef"><b>Definition:</b> returnCodes.h:40</div></div>
-<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO</div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a1f4073797703aa1546f3f66938318395"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">maingo::ubp::UpperBoundingSolver::UBS_USE</a></div><div class="ttdeci">UBS_USE</div><div class="ttdoc">Enum for communicating what the intended purpose of the solver is. This determines which settings are...</div><div class="ttdef"><b>Definition:</b> ubp.h:56</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_cplex_html_a151f2ced79870ee59b168cdcaaf34bff"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a151f2ced79870ee59b168cdcaaf34bff">maingo::ubp::UbpCplex::UbpCplex</a></div><div class="ttdeci">UbpCplex(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, UBS_USE useIn)</div><div class="ttdoc">Constructor, stores information on the problem and initializes the local-subsolvers used.</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_cplex_html_a3028cd7ab01046cd3a1eec23a4db55a1"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a3028cd7ab01046cd3a1eec23a4db55a1">maingo::ubp::UbpCplex::cplxModel</a></div><div class="ttdeci">IloModel cplxModel</div><div class="ttdef"><b>Definition:</b> ubpCplex.h:89</div></div>
+<a href="ubp_cplex_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ubp_8h.html">ubp.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &quot;ilcplex/ilocplex.h&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &lt;list&gt;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &lt;utility&gt;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="keyword">namespace </span>ubp {</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_cplex.html">   35</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1ubp_1_1_ubp_cplex.html">UbpCplex</a>: <span class="keyword">public</span> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">UpperBoundingSolver</a> {</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#aa7a3ededf743a2cde154b5c267cf26d6">UbpCplex</a>(mc::FFGraph &amp;DAG, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGvars, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGfunctions, <span class="keyword">const</span> std::vector&lt;babBase::OptimizationVariable&gt; &amp;variables,</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;             <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqSquashIn, std::shared_ptr&lt;Settings&gt; settingsIn, std::shared_ptr&lt;Logger&gt; loggerIn, std::shared_ptr&lt;std::vector&lt;Constraint&gt;&gt; constraintPropertiesIn, <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> useIn);</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#ada023ef9d9bd4904e5e47e2181d38ab9">   59</a></span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#ada023ef9d9bd4904e5e47e2181d38ab9">~UbpCplex</a>() { <a class="code" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a224b13053d2fdcaff567757fc3b4316e">_terminate_cplex</a>(); }</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a6ddfc769b26441e3712ec56c5dcec7ba">_solve_nlp</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">double</span> &amp;objectiveValue, std::vector&lt;double&gt; &amp;solutionPoint);</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a224b13053d2fdcaff567757fc3b4316e">_terminate_cplex</a>();</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#ab2d527e6892c4ecadcb4a1a1f4511305">   82</a></span>&#160;    IloEnv <a class="code" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#ab2d527e6892c4ecadcb4a1a1f4511305">cplxEnv</a>;          </div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a3028cd7ab01046cd3a1eec23a4db55a1">   83</a></span>&#160;    IloModel <a class="code" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a3028cd7ab01046cd3a1eec23a4db55a1">cplxModel</a>;      </div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a30c83b32af454645ccc8ad302377ce3f">   84</a></span>&#160;    IloNumVarArray <a class="code" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a30c83b32af454645ccc8ad302377ce3f">cplxVars</a>; </div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a94390df2712be8d4a309c9cdf42e705b">   85</a></span>&#160;    IloCplex <a class="code" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a94390df2712be8d4a309c9cdf42e705b">cplex</a>;          </div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    <span class="comment">// Prevent use of default copy constructor and copy assignment operator by declaring them private:</span></div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#aa7a3ededf743a2cde154b5c267cf26d6">UbpCplex</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_cplex.html">UbpCplex</a> &amp;);            </div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ubp_cplex.html">UbpCplex</a> &amp;<a class="code" href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a944ac3f482c2db599bd0c0cfdd76b868">operator=</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_cplex.html">UbpCplex</a> &amp;); </div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;};</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;}    <span class="comment">// end namespace ubp</span></div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_cplex_html_a6ddfc769b26441e3712ec56c5dcec7ba"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a6ddfc769b26441e3712ec56c5dcec7ba">maingo::ubp::UbpCplex::_solve_nlp</a></div><div class="ttdeci">virtual SUBSOLVER_RETCODE _solve_nlp(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, double &amp;objectiveValue, std::vector&lt; double &gt; &amp;solutionPoint)</div><div class="ttdoc">Function for actually solving the NLP (actually, LP in this case) sub-problem. </div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_cplex_html"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_cplex.html">maingo::ubp::UbpCplex</a></div><div class="ttdoc">Wrapper for handling the upper bounding problems by interfacing CPLEX. </div><div class="ttdef"><b>Definition:</b> ubpCplex.h:35</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_cplex_html_a94390df2712be8d4a309c9cdf42e705b"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a94390df2712be8d4a309c9cdf42e705b">maingo::ubp::UbpCplex::cplex</a></div><div class="ttdeci">IloCplex cplex</div><div class="ttdef"><b>Definition:</b> ubpCplex.h:85</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></div><div class="ttdoc">Base class for wrappers for handling the upper bounding problems. </div><div class="ttdef"><b>Definition:</b> ubp.h:44</div></div>
+<div class="ttc" id="namespacemaingo_html_ab7a1cb5c265f8d1c287d43fec7988020"><div class="ttname"><a href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">maingo::SUBSOLVER_RETCODE</a></div><div class="ttdeci">SUBSOLVER_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the different sub-solvers (UpperBoundingSolver, LowerBoundingSolver). </div><div class="ttdef"><b>Definition:</b> returnCodes.h:36</div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a1f4073797703aa1546f3f66938318395"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">maingo::ubp::UpperBoundingSolver::UBS_USE</a></div><div class="ttdeci">UBS_USE</div><div class="ttdoc">Enum for communicating what the intended purpose of the solver is. This determines which settings are...</div><div class="ttdef"><b>Definition:</b> ubp.h:51</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_cplex_html_a3028cd7ab01046cd3a1eec23a4db55a1"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a3028cd7ab01046cd3a1eec23a4db55a1">maingo::ubp::UbpCplex::cplxModel</a></div><div class="ttdeci">IloModel cplxModel</div><div class="ttdef"><b>Definition:</b> ubpCplex.h:83</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_cplex_html_aa7a3ededf743a2cde154b5c267cf26d6"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_cplex.html#aa7a3ededf743a2cde154b5c267cf26d6">maingo::ubp::UbpCplex::UbpCplex</a></div><div class="ttdeci">UbpCplex(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, UBS_USE useIn)</div><div class="ttdoc">Constructor, stores information on the problem and initializes the local-subsolvers used...</div></div>
 <div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_cplex_html_a224b13053d2fdcaff567757fc3b4316e"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a224b13053d2fdcaff567757fc3b4316e">maingo::ubp::UbpCplex::_terminate_cplex</a></div><div class="ttdeci">void _terminate_cplex()</div><div class="ttdoc">Function for taking care of memory management by terminating Cplex (either called from destructor or ...</div></div>
 <div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_cplex_html_a944ac3f482c2db599bd0c0cfdd76b868"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a944ac3f482c2db599bd0c0cfdd76b868">maingo::ubp::UbpCplex::operator=</a></div><div class="ttdeci">UbpCplex &amp; operator=(const UbpCplex &amp;)</div></div>
 <div class="ttc" id="ubp_8h_html"><div class="ttname"><a href="ubp_8h.html">ubp.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_cplex_html_ab2d527e6892c4ecadcb4a1a1f4511305"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_cplex.html#ab2d527e6892c4ecadcb4a1a1f4511305">maingo::ubp::UbpCplex::cplxEnv</a></div><div class="ttdeci">IloEnv cplxEnv</div><div class="ttdef"><b>Definition:</b> ubpCplex.h:88</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_cplex_html_a30c83b32af454645ccc8ad302377ce3f"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a30c83b32af454645ccc8ad302377ce3f">maingo::ubp::UbpCplex::cplxVars</a></div><div class="ttdeci">IloNumVarArray cplxVars</div><div class="ttdef"><b>Definition:</b> ubpCplex.h:90</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_cplex_html_ada023ef9d9bd4904e5e47e2181d38ab9"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_cplex.html#ada023ef9d9bd4904e5e47e2181d38ab9">maingo::ubp::UbpCplex::~UbpCplex</a></div><div class="ttdeci">~UbpCplex()</div><div class="ttdoc">Destructor.</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_cplex_html_ab2d527e6892c4ecadcb4a1a1f4511305"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_cplex.html#ab2d527e6892c4ecadcb4a1a1f4511305">maingo::ubp::UbpCplex::cplxEnv</a></div><div class="ttdeci">IloEnv cplxEnv</div><div class="ttdef"><b>Definition:</b> ubpCplex.h:82</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_cplex_html_a30c83b32af454645ccc8ad302377ce3f"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_cplex.html#a30c83b32af454645ccc8ad302377ce3f">maingo::ubp::UbpCplex::cplxVars</a></div><div class="ttdeci">IloNumVarArray cplxVars</div><div class="ttdef"><b>Definition:</b> ubpCplex.h:84</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_cplex_html_ada023ef9d9bd4904e5e47e2181d38ab9"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_cplex.html#ada023ef9d9bd4904e5e47e2181d38ab9">maingo::ubp::UbpCplex::~UbpCplex</a></div><div class="ttdeci">~UbpCplex()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> ubpCplex.h:59</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -115,7 +113,7 @@ $(document).ready(function(){initNavTree('ubp_cplex_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="ubp_cplex_8h.html">ubpCplex.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/ubp_dag_obj_8h.html b/doc/html/ubp_dag_obj_8h.html
index b3550577731c600336d2fea6c86ebf5803b8eebc..f7cf1425859b85e7024a621ea94e1f5691b1a641 100644
--- a/doc/html/ubp_dag_obj_8h.html
+++ b/doc/html/ubp_dag_obj_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/ubpDagObj.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/ubpDagObj.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -125,7 +125,7 @@ Namespaces</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="ubp_dag_obj_8h.html">ubpDagObj.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/ubp_dag_obj_8h_source.html b/doc/html/ubp_dag_obj_8h_source.html
index 384e253a5054c2e2f5a835e9107579c3d2934904..c8d2f490c4e218491cb6dd9a787cb09cac4dcbdb 100644
--- a/doc/html/ubp_dag_obj_8h_source.html
+++ b/doc/html/ubp_dag_obj_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/ubpDagObj.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/ubpDagObj.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,60 +90,58 @@ $(document).ready(function(){initNavTree('ubp_dag_obj_8h_source.html','');});
 <div class="title">ubpDagObj.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="ubp_dag_obj_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file ubpDagObj.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing declaration of ubp::DagObj struct which stores everything</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *        needed for DAG evaluation for upper bounding</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="logger_8h.html">logger.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="settings_8h.html">settings.h</a>&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &quot;fadiff.h&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;ffunc.hpp&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;utility&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="keyword">namespace </span>ubp {</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html">   42</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html">DagObj</a> {</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a5782efab4dab2431bd571bd62d0c1fd5">   47</a></span>&#160;    mc::FFGraph <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a5782efab4dab2431bd571bd62d0c1fd5">DAG</a>;                   </div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a82247c4c22164ea742e7635cbf1b804c">   48</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a82247c4c22164ea742e7635cbf1b804c">vars</a>;       </div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a9f9292c83ec7f57aa67622581f033da0">   49</a></span>&#160;    mc::FFSubgraph <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a9f9292c83ec7f57aa67622581f033da0">subgraph</a>;           </div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a9ff8ea76f7cd501912937536fff7b54e">   50</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a9ff8ea76f7cd501912937536fff7b54e">functions</a>;  </div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#adf6ebfd4b6bc613692458896143152a1">   51</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#adf6ebfd4b6bc613692458896143152a1">resultVars</a>; </div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a803b289e729d816f8524f925302139db">   53</a></span>&#160;    std::vector&lt;fadbad::F&lt;double&gt;&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a803b289e729d816f8524f925302139db">adPoint</a>;                </div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a822afd74873ea833c98147373e504b9c">   54</a></span>&#160;    std::vector&lt;fadbad::F&lt;double&gt;&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a822afd74873ea833c98147373e504b9c">fadbadArray</a>;            </div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#adf62f216e68f2545bff7ca8c2380de9d">   55</a></span>&#160;    std::vector&lt;fadbad::F&lt;double&gt;&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#adf62f216e68f2545bff7ca8c2380de9d">resultAD</a>;               </div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a6dd2d386cafd1e06bea74acdca9ed219">   56</a></span>&#160;    std::vector&lt;fadbad::F&lt;double&gt;&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a6dd2d386cafd1e06bea74acdca9ed219">resultADobj</a>;            </div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a5131414e58a4b041e75ea2010de5cf44">   57</a></span>&#160;    std::vector&lt;fadbad::F&lt;double&gt;&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a5131414e58a4b041e75ea2010de5cf44">resultADineq</a>;           </div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#adbdafa51a0de03a4d21425704bb7fd1b">   58</a></span>&#160;    std::vector&lt;fadbad::F&lt;double&gt;&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#adbdafa51a0de03a4d21425704bb7fd1b">resultADeq</a>;             </div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a3e0513b0a62546a54b6d973e444c9c39">   59</a></span>&#160;    std::vector&lt;fadbad::F&lt;double&gt;&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a3e0513b0a62546a54b6d973e444c9c39">resultADineqSquash</a>;     </div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a1e467d626d859ab9ff891bb935ced800">   60</a></span>&#160;    std::vector&lt;fadbad::F&lt;double&gt;&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a1e467d626d859ab9ff891bb935ced800">resultADineqSquashIneq</a>; </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a93dfab2ee4890c0847a68beeea2dbd2e">   61</a></span>&#160;    std::vector&lt;fadbad::F&lt;double&gt;&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a93dfab2ee4890c0847a68beeea2dbd2e">resultADineqEq</a>;         </div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#afb24a800ca2cfab6f0e89caa4e821294">   63</a></span>&#160;    std::vector&lt;fadbad::F&lt;fadbad::F&lt;double&gt;&gt;&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#afb24a800ca2cfab6f0e89caa4e821294">resultAD2ndOrder</a>;    </div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a44fa3940386ae67658375d956e0a668e">   64</a></span>&#160;    std::vector&lt;fadbad::F&lt;fadbad::F&lt;double&gt;&gt;&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a44fa3940386ae67658375d956e0a668e">fadbadArray2ndOrder</a>; </div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a369f41e06ac7ca4c95af8520307186c5">   65</a></span>&#160;    std::vector&lt;fadbad::F&lt;fadbad::F&lt;double&gt;&gt;&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a369f41e06ac7ca4c95af8520307186c5">adPoint2ndOrder</a>;     </div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a86d90582d35eb5007f3341a575f66988">   67</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a86d90582d35eb5007f3341a575f66988">doublePoint</a>;                </div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#ad7f9a8164274d3e3ca0caf88c8e2d1d7">   68</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#ad7f9a8164274d3e3ca0caf88c8e2d1d7">doubleArray</a>;                </div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a21da37c6fc7b2d64ffcfa66893fae244">   69</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a21da37c6fc7b2d64ffcfa66893fae244">resultDouble</a>;               </div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#ac5f866488d488fd0755e63a4443e996c">   70</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#ac5f866488d488fd0755e63a4443e996c">resultDoubleObj</a>;            </div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a9caecaa9c360fb857f5ecf69f6378850">   71</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a9caecaa9c360fb857f5ecf69f6378850">resultDoubleIneq</a>;           </div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a42e33cb988291c6937cd00185522156b">   72</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a42e33cb988291c6937cd00185522156b">resultDoubleEq</a>;             </div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a4f45395e82b69d789baa6c85cc559774">   73</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a4f45395e82b69d789baa6c85cc559774">resultDoubleIneqSquash</a>;     </div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a0fe2d9ba4c4bcedc21b422b367e09a56">   74</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a0fe2d9ba4c4bcedc21b422b367e09a56">resultDoubleIneqSquashIneq</a>; </div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a7f8342bed2c5826162ea52f9f0a585a0">   75</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a7f8342bed2c5826162ea52f9f0a585a0">resultDoubleIneqEq</a>;         </div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#ae7db57e66cd7d725971aa6f218962b3d">   77</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#ae7db57e66cd7d725971aa6f218962b3d">functionsObj</a>;            </div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#add3ad440abf5b7ffc7d585da3a7bef1d">   78</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#add3ad440abf5b7ffc7d585da3a7bef1d">functionsIneq</a>;           </div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#afe691f3ed4b87f85ee35031b0f204f38">   79</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#afe691f3ed4b87f85ee35031b0f204f38">functionsEq</a>;             </div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a79773c586c9be6cba8e7fcb178d5b7b1">   80</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a79773c586c9be6cba8e7fcb178d5b7b1">functionsIneqSquash</a>;     </div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a1e28bbb852ebf2742997e2ce62326135">   81</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a1e28bbb852ebf2742997e2ce62326135">functionsIneqSquashIneq</a>; </div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#ac1c442e22d05926cb038d69530b82bf0">   82</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#ac1c442e22d05926cb038d69530b82bf0">functionsIneqEq</a>;         </div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#ae61f9929d9d26f573c61f6f6da34d33a">   83</a></span>&#160;    mc::FFSubgraph <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#ae61f9929d9d26f573c61f6f6da34d33a">subgraphObj</a>;                     </div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a9e0cc6deedefb498b43ec2c7849a4d5c">   84</a></span>&#160;    mc::FFSubgraph <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a9e0cc6deedefb498b43ec2c7849a4d5c">subgraphIneq</a>;                    </div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a48d906fd12ab57911a063e098eae3281">   85</a></span>&#160;    mc::FFSubgraph <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a48d906fd12ab57911a063e098eae3281">subgraphEq</a>;                      </div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a6e3eacf894a93c48315dfc9f2b5f552d">   86</a></span>&#160;    mc::FFSubgraph <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a6e3eacf894a93c48315dfc9f2b5f552d">subgraphIneqSquash</a>;              </div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#ae8a488bec0d4c2a6f2474ba507ec559d">   87</a></span>&#160;    mc::FFSubgraph <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#ae8a488bec0d4c2a6f2474ba507ec559d">subgraphIneqSquashIneq</a>;          </div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a05ab21ce93cddce80e9fd39d8be49597">   88</a></span>&#160;    mc::FFSubgraph <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a05ab21ce93cddce80e9fd39d8be49597">subgraphIneqEq</a>;                  </div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a4a939be99d5fff95ef5bd169d46fe205">   90</a></span>&#160;    <a class="code" href="structmaingo_1_1_settings.html">Settings</a>* <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a4a939be99d5fff95ef5bd169d46fe205">maingoSettings</a>; </div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a61dda650b1a25155e541c4607fb7b82c">   91</a></span>&#160;    <a class="code" href="classmaingo_1_1_logger.html">Logger</a>* <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a61dda650b1a25155e541c4607fb7b82c">logger</a>;           </div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a29fc29042fab2e29d8cf3e8270d1400e">   92</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a29fc29042fab2e29d8cf3e8270d1400e">warningFlag</a>;         </div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a38d4d4e046f3eea00ef8dce95ad36337">  109</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a38d4d4e046f3eea00ef8dce95ad36337">DagObj</a>(mc::FFGraph&amp; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a5782efab4dab2431bd571bd62d0c1fd5">DAG</a>, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt;&amp; DAGvars, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt;&amp; DAGfunctions,</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;           <span class="keyword">const</span> std::vector&lt;babBase::OptimizationVariable&gt;&amp; variables, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineq, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neq,</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;           <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqSquash, std::vector&lt;Constraint&gt;* constraintProperties, <a class="code" href="structmaingo_1_1_settings.html">Settings</a>* settingsIn, <a class="code" href="classmaingo_1_1_logger.html">Logger</a>* loggerIn):</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a4a939be99d5fff95ef5bd169d46fe205">maingoSettings</a>(settingsIn),</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a61dda650b1a25155e541c4607fb7b82c">logger</a>(loggerIn)</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    {</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nvar = variables.size();</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nobj = 1;</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;        <span class="comment">// Copy DAG for upper bounding solver</span></div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; nvar; i++) {</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;            mc::FFVar Y;                      <span class="comment">// Create a new DAG variable</span></div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;            this-&gt;vars.push_back(Y);          <span class="comment">// Add the new DAG variable to the vars vector</span></div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;            this-&gt;vars[i].set(&amp;this-&gt;DAG);    <span class="comment">// Add the new DAG variable to the DAG</span></div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        }</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        this-&gt;resultVars.resize(DAGfunctions.size());</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a5782efab4dab2431bd571bd62d0c1fd5">DAG</a>.eval(DAGfunctions.size(), DAGfunctions.data(), this-&gt;resultVars.data(), nvar, DAGvars.data(), this-&gt;vars.data());    <span class="comment">// Get functions and write them to resultVars</span></div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;        this-&gt;functions.resize(1 + nineq + neq + nineqSquash);</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;        <span class="comment">// Note that the constraints in constraintProperties are in a different order than in MAiNGO.cpp!</span></div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;        <span class="comment">// Here it is obj, ineq, squash ineq, eq</span></div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; constraintProperties-&gt;size(); i++) {</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;            <span class="keywordtype">unsigned</span> index = (*constraintProperties)[i].indexNonconstant;</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;            <span class="keywordflow">switch</span> ((*constraintProperties)[i].type) {</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa19ac253da82c7f431e902e1be9cc236d">OBJ</a>:</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;                    this-&gt;functions[i] = this-&gt;resultVars[index];</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa2a2d5953a4091c4c7a47698a5a5bbfaa">INEQ</a>:</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;                    this-&gt;functions[i] = this-&gt;resultVars[index];</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffacaec66b04e8cec2efaf72c40f4d4d60d">INEQ_SQUASH</a>:</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;                    this-&gt;functions[i] = this-&gt;resultVars[index];</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa5f02b52b5b416052d5545294adb30288">EQ</a>:</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;                    this-&gt;functions[i] = this-&gt;resultVars[index];</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffabcfee51ddb6ed7d3c74ba9aa6f11fc96">INEQ_REL_ONLY</a>:</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffab931d88f14bc394968ab9e43265b58db">EQ_REL_ONLY</a>:</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;                <span class="keywordflow">default</span>:    <span class="comment">// In upper bounding solver, we don&#39;t use relaxation only constraints</span></div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;            }</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;        }</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        <span class="comment">// Get the list of operations used in the DAG</span></div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;        <span class="comment">// It is needed for the call of proper DAG functions</span></div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;        this-&gt;subgraph = this-&gt;DAG.subgraph(this-&gt;functions.size(), this-&gt;functions.data());</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;        <span class="comment">// Get operations of each function in the DAG</span></div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        this-&gt;functionsObj.resize(nobj);</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;        this-&gt;functionsIneq.resize(nineq);</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;        this-&gt;functionsEq.resize(neq);</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        this-&gt;functionsIneqSquash.resize(nineqSquash);</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;        this-&gt;functionsIneqSquashIneq.resize(nineq + nineqSquash);</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        this-&gt;functionsIneqEq.resize(nineq + neq + nineqSquash);</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;        <span class="comment">// Get each function, let&#39;s do it in one loop</span></div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;        <span class="comment">// Think of the order obj, ineq, squash ineq, eq which is different from the original one in MAiNGO.cpp</span></div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; constraintProperties-&gt;size(); i++) {</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;            <span class="keywordtype">unsigned</span> index     = (*constraintProperties)[i].indexNonconstantUBP;</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;            <span class="keywordtype">unsigned</span> indexType = (*constraintProperties)[i].indexTypeNonconstant;</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;            <span class="keywordflow">switch</span> ((*constraintProperties)[i].type) {</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa19ac253da82c7f431e902e1be9cc236d">OBJ</a>:</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;                    this-&gt;functionsObj[i] = this-&gt;functions[index];</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa2a2d5953a4091c4c7a47698a5a5bbfaa">INEQ</a>:</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;                    this-&gt;functionsIneq[indexType]           = this-&gt;functions[index];</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;                    this-&gt;functionsIneqSquashIneq[indexType] = this-&gt;functions[index];</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;                    this-&gt;functionsIneqEq[indexType]         = this-&gt;functions[index];</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffacaec66b04e8cec2efaf72c40f4d4d60d">INEQ_SQUASH</a>:</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;                    this-&gt;functionsIneqSquash[indexType]             = this-&gt;functions[index];</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;                    this-&gt;functionsIneqSquashIneq[indexType + nineq] = this-&gt;functions[index];</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;                    this-&gt;functionsIneqEq[indexType + nineq]         = this-&gt;functions[index];</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa5f02b52b5b416052d5545294adb30288">EQ</a>:</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;                    this-&gt;functionsEq[indexType]                           = this-&gt;functions[index];</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;                    this-&gt;functionsIneqEq[indexType + nineq + nineqSquash] = this-&gt;functions[index];    <span class="comment">// all inequalities first</span></div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffabcfee51ddb6ed7d3c74ba9aa6f11fc96">INEQ_REL_ONLY</a>:</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffab931d88f14bc394968ab9e43265b58db">EQ_REL_ONLY</a>:</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;                <span class="keywordflow">default</span>:    <span class="comment">// In upper bounding solver, we don&#39;t use relaxation only constraints</span></div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;            }</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;        }</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;        <span class="comment">// Get operations of each function</span></div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;        this-&gt;subgraphObj            = this-&gt;DAG.subgraph(this-&gt;functionsObj.size(), this-&gt;functionsObj.data());</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;        this-&gt;subgraphIneq           = this-&gt;DAG.subgraph(this-&gt;functionsIneq.size(), this-&gt;functionsIneq.data());</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;        this-&gt;subgraphEq             = this-&gt;DAG.subgraph(this-&gt;functionsEq.size(), this-&gt;functionsEq.data());</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;        this-&gt;subgraphIneqSquash     = this-&gt;DAG.subgraph(this-&gt;functionsIneqSquash.size(), this-&gt;functionsIneqSquash.data());</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;        this-&gt;subgraphIneqSquashIneq = this-&gt;DAG.subgraph(this-&gt;functionsIneqSquashIneq.size(), this-&gt;functionsIneqSquashIneq.data());</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;        this-&gt;subgraphIneqEq         = this-&gt;DAG.subgraph(this-&gt;functionsIneqEq.size(), this-&gt;functionsIneqEq.data());</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;        <span class="comment">// Allocate memory for the corresponding vectors</span></div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;        this-&gt;adPoint.resize(nvar);</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;        this-&gt;fadbadArray.resize(this-&gt;subgraph.l_op.size());</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;        this-&gt;doublePoint.resize(nvar);</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;        this-&gt;doubleArray.resize(this-&gt;subgraph.l_op.size());</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;        this-&gt;resultAD.resize(this-&gt;functions.size());</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;        this-&gt;resultADobj.resize(this-&gt;functionsObj.size());</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;        this-&gt;resultADineq.resize(this-&gt;functionsIneq.size());</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;        this-&gt;resultADeq.resize(this-&gt;functionsEq.size());</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;        this-&gt;resultADineqEq.resize(this-&gt;functionsIneqEq.size());</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;        this-&gt;resultADineqSquash.resize(this-&gt;functionsIneqSquash.size());</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;        this-&gt;resultADineqSquashIneq.resize(this-&gt;functionsIneqSquashIneq.size());</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;        this-&gt;resultDouble.resize(this-&gt;functions.size());</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;        this-&gt;resultDoubleObj.resize(this-&gt;functionsObj.size());</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;        this-&gt;resultDoubleIneq.resize(this-&gt;functionsIneq.size());</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;        this-&gt;resultDoubleEq.resize(this-&gt;functionsEq.size());</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;        this-&gt;resultDoubleIneqSquash.resize(this-&gt;functionsIneqSquash.size());</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;        this-&gt;resultDoubleIneqSquashIneq.resize(this-&gt;functionsIneqSquashIneq.size());</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;        this-&gt;resultDoubleIneqEq.resize(this-&gt;functionsIneqEq.size());</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;        this-&gt;adPoint2ndOrder.resize(nvar);</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;        this-&gt;fadbadArray2ndOrder.resize(this-&gt;subgraph.l_op.size());</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;        this-&gt;resultAD2ndOrder.resize(this-&gt;functions.size());</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;        this-&gt;warningFlag = <span class="keyword">false</span>;</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;    }</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;};</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;}    <span class="comment">// end namespace ubp</span></div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="namespacemaingo_html_a1fb378d6003f3c76e1674673a2e64cffa19ac253da82c7f431e902e1be9cc236d"><div class="ttname"><a href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa19ac253da82c7f431e902e1be9cc236d">maingo::OBJ</a></div><div class="ttdef"><b>Definition:</b> constraint.h:45</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a9ff8ea76f7cd501912937536fff7b54e"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a9ff8ea76f7cd501912937536fff7b54e">maingo::ubp::DagObj::functions</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; functions</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:50</div></div>
-<div class="ttc" id="namespacemaingo_html_a1fb378d6003f3c76e1674673a2e64cffa2a2d5953a4091c4c7a47698a5a5bbfaa"><div class="ttname"><a href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa2a2d5953a4091c4c7a47698a5a5bbfaa">maingo::INEQ</a></div><div class="ttdef"><b>Definition:</b> constraint.h:46</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a822afd74873ea833c98147373e504b9c"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a822afd74873ea833c98147373e504b9c">maingo::ubp::DagObj::fadbadArray</a></div><div class="ttdeci">std::vector&lt; fadbad::F&lt; double &gt; &gt; fadbadArray</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:54</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a5131414e58a4b041e75ea2010de5cf44"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a5131414e58a4b041e75ea2010de5cf44">maingo::ubp::DagObj::resultADineq</a></div><div class="ttdeci">std::vector&lt; fadbad::F&lt; double &gt; &gt; resultADineq</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:57</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a79773c586c9be6cba8e7fcb178d5b7b1"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a79773c586c9be6cba8e7fcb178d5b7b1">maingo::ubp::DagObj::functionsIneqSquash</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; functionsIneqSquash</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:80</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a6dd2d386cafd1e06bea74acdca9ed219"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a6dd2d386cafd1e06bea74acdca9ed219">maingo::ubp::DagObj::resultADobj</a></div><div class="ttdeci">std::vector&lt; fadbad::F&lt; double &gt; &gt; resultADobj</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:56</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a29fc29042fab2e29d8cf3e8270d1400e"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a29fc29042fab2e29d8cf3e8270d1400e">maingo::ubp::DagObj::warningFlag</a></div><div class="ttdeci">bool warningFlag</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:92</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a9e0cc6deedefb498b43ec2c7849a4d5c"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a9e0cc6deedefb498b43ec2c7849a4d5c">maingo::ubp::DagObj::subgraphIneq</a></div><div class="ttdeci">mc::FFSubgraph subgraphIneq</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:84</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a6e3eacf894a93c48315dfc9f2b5f552d"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a6e3eacf894a93c48315dfc9f2b5f552d">maingo::ubp::DagObj::subgraphIneqSquash</a></div><div class="ttdeci">mc::FFSubgraph subgraphIneqSquash</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:86</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html"><div class="ttname"><a href="structmaingo_1_1_settings.html">maingo::Settings</a></div><div class="ttdoc">Struct for storing settings for MAiNGO.</div><div class="ttdef"><b>Definition:</b> settings.h:143</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a93dfab2ee4890c0847a68beeea2dbd2e"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a93dfab2ee4890c0847a68beeea2dbd2e">maingo::ubp::DagObj::resultADineqEq</a></div><div class="ttdeci">std::vector&lt; fadbad::F&lt; double &gt; &gt; resultADineqEq</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:61</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a05ab21ce93cddce80e9fd39d8be49597"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a05ab21ce93cddce80e9fd39d8be49597">maingo::ubp::DagObj::subgraphIneqEq</a></div><div class="ttdeci">mc::FFSubgraph subgraphIneqEq</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:88</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a9f9292c83ec7f57aa67622581f033da0"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a9f9292c83ec7f57aa67622581f033da0">maingo::ubp::DagObj::subgraph</a></div><div class="ttdeci">mc::FFSubgraph subgraph</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:49</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_ae7db57e66cd7d725971aa6f218962b3d"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#ae7db57e66cd7d725971aa6f218962b3d">maingo::ubp::DagObj::functionsObj</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; functionsObj</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:77</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a1e467d626d859ab9ff891bb935ced800"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a1e467d626d859ab9ff891bb935ced800">maingo::ubp::DagObj::resultADineqSquashIneq</a></div><div class="ttdeci">std::vector&lt; fadbad::F&lt; double &gt; &gt; resultADineqSquashIneq</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:60</div></div>
-<div class="ttc" id="namespacemaingo_html_a1fb378d6003f3c76e1674673a2e64cffa5f02b52b5b416052d5545294adb30288"><div class="ttname"><a href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa5f02b52b5b416052d5545294adb30288">maingo::EQ</a></div><div class="ttdef"><b>Definition:</b> constraint.h:47</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html"><div class="ttname"><a href="classmaingo_1_1_logger.html">maingo::Logger</a></div><div class="ttdoc">This class contains all logging and output information.</div><div class="ttdef"><b>Definition:</b> logger.h:101</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_adf62f216e68f2545bff7ca8c2380de9d"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#adf62f216e68f2545bff7ca8c2380de9d">maingo::ubp::DagObj::resultAD</a></div><div class="ttdeci">std::vector&lt; fadbad::F&lt; double &gt; &gt; resultAD</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:55</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a4f45395e82b69d789baa6c85cc559774"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a4f45395e82b69d789baa6c85cc559774">maingo::ubp::DagObj::resultDoubleIneqSquash</a></div><div class="ttdeci">std::vector&lt; double &gt; resultDoubleIneqSquash</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:73</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a4a939be99d5fff95ef5bd169d46fe205"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a4a939be99d5fff95ef5bd169d46fe205">maingo::ubp::DagObj::maingoSettings</a></div><div class="ttdeci">Settings * maingoSettings</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:90</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a86d90582d35eb5007f3341a575f66988"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a86d90582d35eb5007f3341a575f66988">maingo::ubp::DagObj::doublePoint</a></div><div class="ttdeci">std::vector&lt; double &gt; doublePoint</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:67</div></div>
-<div class="ttc" id="namespacemaingo_html_a1fb378d6003f3c76e1674673a2e64cffabcfee51ddb6ed7d3c74ba9aa6f11fc96"><div class="ttname"><a href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffabcfee51ddb6ed7d3c74ba9aa6f11fc96">maingo::INEQ_REL_ONLY</a></div><div class="ttdef"><b>Definition:</b> constraint.h:48</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_afb24a800ca2cfab6f0e89caa4e821294"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#afb24a800ca2cfab6f0e89caa4e821294">maingo::ubp::DagObj::resultAD2ndOrder</a></div><div class="ttdeci">std::vector&lt; fadbad::F&lt; fadbad::F&lt; double &gt; &gt; &gt; resultAD2ndOrder</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:63</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_ae61f9929d9d26f573c61f6f6da34d33a"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#ae61f9929d9d26f573c61f6f6da34d33a">maingo::ubp::DagObj::subgraphObj</a></div><div class="ttdeci">mc::FFSubgraph subgraphObj</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:83</div></div>
-<div class="ttc" id="namespacemaingo_html_a1fb378d6003f3c76e1674673a2e64cffab931d88f14bc394968ab9e43265b58db"><div class="ttname"><a href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffab931d88f14bc394968ab9e43265b58db">maingo::EQ_REL_ONLY</a></div><div class="ttdef"><b>Definition:</b> constraint.h:49</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_ac1c442e22d05926cb038d69530b82bf0"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#ac1c442e22d05926cb038d69530b82bf0">maingo::ubp::DagObj::functionsIneqEq</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; functionsIneqEq</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:82</div></div>
-<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO</div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_add3ad440abf5b7ffc7d585da3a7bef1d"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#add3ad440abf5b7ffc7d585da3a7bef1d">maingo::ubp::DagObj::functionsIneq</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; functionsIneq</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:78</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_afe691f3ed4b87f85ee35031b0f204f38"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#afe691f3ed4b87f85ee35031b0f204f38">maingo::ubp::DagObj::functionsEq</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; functionsEq</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:79</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a44fa3940386ae67658375d956e0a668e"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a44fa3940386ae67658375d956e0a668e">maingo::ubp::DagObj::fadbadArray2ndOrder</a></div><div class="ttdeci">std::vector&lt; fadbad::F&lt; fadbad::F&lt; double &gt; &gt; &gt; fadbadArray2ndOrder</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:64</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_adbdafa51a0de03a4d21425704bb7fd1b"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#adbdafa51a0de03a4d21425704bb7fd1b">maingo::ubp::DagObj::resultADeq</a></div><div class="ttdeci">std::vector&lt; fadbad::F&lt; double &gt; &gt; resultADeq</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:58</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html">maingo::ubp::DagObj</a></div><div class="ttdoc">Struct for storing all needed Directed acyclic Graph objects for the upper bounding solver.</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:42</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a3e0513b0a62546a54b6d973e444c9c39"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a3e0513b0a62546a54b6d973e444c9c39">maingo::ubp::DagObj::resultADineqSquash</a></div><div class="ttdeci">std::vector&lt; fadbad::F&lt; double &gt; &gt; resultADineqSquash</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:59</div></div>
-<div class="ttc" id="namespacemaingo_html_a1fb378d6003f3c76e1674673a2e64cffacaec66b04e8cec2efaf72c40f4d4d60d"><div class="ttname"><a href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffacaec66b04e8cec2efaf72c40f4d4d60d">maingo::INEQ_SQUASH</a></div><div class="ttdef"><b>Definition:</b> constraint.h:50</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a7f8342bed2c5826162ea52f9f0a585a0"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a7f8342bed2c5826162ea52f9f0a585a0">maingo::ubp::DagObj::resultDoubleIneqEq</a></div><div class="ttdeci">std::vector&lt; double &gt; resultDoubleIneqEq</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:75</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a1e28bbb852ebf2742997e2ce62326135"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a1e28bbb852ebf2742997e2ce62326135">maingo::ubp::DagObj::functionsIneqSquashIneq</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; functionsIneqSquashIneq</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:81</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a9caecaa9c360fb857f5ecf69f6378850"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a9caecaa9c360fb857f5ecf69f6378850">maingo::ubp::DagObj::resultDoubleIneq</a></div><div class="ttdeci">std::vector&lt; double &gt; resultDoubleIneq</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:71</div></div>
+<a href="ubp_dag_obj_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="logger_8h.html">logger.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="settings_8h.html">settings.h</a>&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &quot;fadiff.h&quot;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;ffunc.hpp&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &lt;utility&gt;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="keyword">namespace </span>ubp {</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html">   37</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html">DagObj</a> {</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a5782efab4dab2431bd571bd62d0c1fd5">   42</a></span>&#160;    mc::FFGraph <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a5782efab4dab2431bd571bd62d0c1fd5">DAG</a>;                   </div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a82247c4c22164ea742e7635cbf1b804c">   43</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a82247c4c22164ea742e7635cbf1b804c">vars</a>;       </div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a9f9292c83ec7f57aa67622581f033da0">   44</a></span>&#160;    mc::FFSubgraph <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a9f9292c83ec7f57aa67622581f033da0">subgraph</a>;           </div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a9ff8ea76f7cd501912937536fff7b54e">   45</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a9ff8ea76f7cd501912937536fff7b54e">functions</a>;  </div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#adf6ebfd4b6bc613692458896143152a1">   46</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#adf6ebfd4b6bc613692458896143152a1">resultVars</a>; </div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a803b289e729d816f8524f925302139db">   48</a></span>&#160;    std::vector&lt;fadbad::F&lt;double&gt;&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a803b289e729d816f8524f925302139db">adPoint</a>;                </div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a822afd74873ea833c98147373e504b9c">   49</a></span>&#160;    std::vector&lt;fadbad::F&lt;double&gt;&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a822afd74873ea833c98147373e504b9c">fadbadArray</a>;            </div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#adf62f216e68f2545bff7ca8c2380de9d">   50</a></span>&#160;    std::vector&lt;fadbad::F&lt;double&gt;&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#adf62f216e68f2545bff7ca8c2380de9d">resultAD</a>;               </div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a6dd2d386cafd1e06bea74acdca9ed219">   51</a></span>&#160;    std::vector&lt;fadbad::F&lt;double&gt;&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a6dd2d386cafd1e06bea74acdca9ed219">resultADobj</a>;            </div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a5131414e58a4b041e75ea2010de5cf44">   52</a></span>&#160;    std::vector&lt;fadbad::F&lt;double&gt;&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a5131414e58a4b041e75ea2010de5cf44">resultADineq</a>;           </div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#adbdafa51a0de03a4d21425704bb7fd1b">   53</a></span>&#160;    std::vector&lt;fadbad::F&lt;double&gt;&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#adbdafa51a0de03a4d21425704bb7fd1b">resultADeq</a>;             </div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a3e0513b0a62546a54b6d973e444c9c39">   54</a></span>&#160;    std::vector&lt;fadbad::F&lt;double&gt;&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a3e0513b0a62546a54b6d973e444c9c39">resultADineqSquash</a>;     </div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a1e467d626d859ab9ff891bb935ced800">   55</a></span>&#160;    std::vector&lt;fadbad::F&lt;double&gt;&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a1e467d626d859ab9ff891bb935ced800">resultADineqSquashIneq</a>; </div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a93dfab2ee4890c0847a68beeea2dbd2e">   56</a></span>&#160;    std::vector&lt;fadbad::F&lt;double&gt;&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a93dfab2ee4890c0847a68beeea2dbd2e">resultADineqEq</a>;         </div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#afb24a800ca2cfab6f0e89caa4e821294">   58</a></span>&#160;    std::vector&lt;fadbad::F&lt;fadbad::F&lt;double&gt;&gt;&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#afb24a800ca2cfab6f0e89caa4e821294">resultAD2ndOrder</a>;    </div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a44fa3940386ae67658375d956e0a668e">   59</a></span>&#160;    std::vector&lt;fadbad::F&lt;fadbad::F&lt;double&gt;&gt;&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a44fa3940386ae67658375d956e0a668e">fadbadArray2ndOrder</a>; </div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a369f41e06ac7ca4c95af8520307186c5">   60</a></span>&#160;    std::vector&lt;fadbad::F&lt;fadbad::F&lt;double&gt;&gt;&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a369f41e06ac7ca4c95af8520307186c5">adPoint2ndOrder</a>;     </div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a86d90582d35eb5007f3341a575f66988">   62</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a86d90582d35eb5007f3341a575f66988">doublePoint</a>;                </div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#ad7f9a8164274d3e3ca0caf88c8e2d1d7">   63</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#ad7f9a8164274d3e3ca0caf88c8e2d1d7">doubleArray</a>;                </div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a21da37c6fc7b2d64ffcfa66893fae244">   64</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a21da37c6fc7b2d64ffcfa66893fae244">resultDouble</a>;               </div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#ac5f866488d488fd0755e63a4443e996c">   65</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#ac5f866488d488fd0755e63a4443e996c">resultDoubleObj</a>;            </div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a9caecaa9c360fb857f5ecf69f6378850">   66</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a9caecaa9c360fb857f5ecf69f6378850">resultDoubleIneq</a>;           </div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a42e33cb988291c6937cd00185522156b">   67</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a42e33cb988291c6937cd00185522156b">resultDoubleEq</a>;             </div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a4f45395e82b69d789baa6c85cc559774">   68</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a4f45395e82b69d789baa6c85cc559774">resultDoubleIneqSquash</a>;     </div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a0fe2d9ba4c4bcedc21b422b367e09a56">   69</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a0fe2d9ba4c4bcedc21b422b367e09a56">resultDoubleIneqSquashIneq</a>; </div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a7f8342bed2c5826162ea52f9f0a585a0">   70</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a7f8342bed2c5826162ea52f9f0a585a0">resultDoubleIneqEq</a>;         </div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#ae7db57e66cd7d725971aa6f218962b3d">   72</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#ae7db57e66cd7d725971aa6f218962b3d">functionsObj</a>;            </div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#add3ad440abf5b7ffc7d585da3a7bef1d">   73</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#add3ad440abf5b7ffc7d585da3a7bef1d">functionsIneq</a>;           </div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#afe691f3ed4b87f85ee35031b0f204f38">   74</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#afe691f3ed4b87f85ee35031b0f204f38">functionsEq</a>;             </div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a79773c586c9be6cba8e7fcb178d5b7b1">   75</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a79773c586c9be6cba8e7fcb178d5b7b1">functionsIneqSquash</a>;     </div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a1e28bbb852ebf2742997e2ce62326135">   76</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a1e28bbb852ebf2742997e2ce62326135">functionsIneqSquashIneq</a>; </div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#ac1c442e22d05926cb038d69530b82bf0">   77</a></span>&#160;    std::vector&lt;mc::FFVar&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#ac1c442e22d05926cb038d69530b82bf0">functionsIneqEq</a>;         </div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#ae61f9929d9d26f573c61f6f6da34d33a">   78</a></span>&#160;    mc::FFSubgraph <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#ae61f9929d9d26f573c61f6f6da34d33a">subgraphObj</a>;                     </div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a9e0cc6deedefb498b43ec2c7849a4d5c">   79</a></span>&#160;    mc::FFSubgraph <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a9e0cc6deedefb498b43ec2c7849a4d5c">subgraphIneq</a>;                    </div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a48d906fd12ab57911a063e098eae3281">   80</a></span>&#160;    mc::FFSubgraph <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a48d906fd12ab57911a063e098eae3281">subgraphEq</a>;                      </div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a6e3eacf894a93c48315dfc9f2b5f552d">   81</a></span>&#160;    mc::FFSubgraph <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a6e3eacf894a93c48315dfc9f2b5f552d">subgraphIneqSquash</a>;              </div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#ae8a488bec0d4c2a6f2474ba507ec559d">   82</a></span>&#160;    mc::FFSubgraph <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#ae8a488bec0d4c2a6f2474ba507ec559d">subgraphIneqSquashIneq</a>;          </div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a05ab21ce93cddce80e9fd39d8be49597">   83</a></span>&#160;    mc::FFSubgraph <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a05ab21ce93cddce80e9fd39d8be49597">subgraphIneqEq</a>;                  </div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a8bebd0e09ae8e79b0826bb93cba34ffa">   85</a></span>&#160;    std::shared_ptr&lt;Settings&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a8bebd0e09ae8e79b0826bb93cba34ffa">maingoSettings</a>; </div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a6e462e78027d46af3239c0463b7c9249">   86</a></span>&#160;    std::shared_ptr&lt;Logger&gt; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a6e462e78027d46af3239c0463b7c9249">logger</a>;           </div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a29fc29042fab2e29d8cf3e8270d1400e">   87</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a29fc29042fab2e29d8cf3e8270d1400e">warningFlag</a>;                         </div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_dag_obj.html#a33f13fd662a2603c031c7284cd1ca098">  104</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a33f13fd662a2603c031c7284cd1ca098">DagObj</a>(mc::FFGraph&amp; <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a5782efab4dab2431bd571bd62d0c1fd5">DAG</a>, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt;&amp; DAGvars, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt;&amp; DAGfunctions,</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;           <span class="keyword">const</span> std::vector&lt;babBase::OptimizationVariable&gt;&amp; variables, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineq, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neq,</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;           <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqSquash, std::shared_ptr&lt;std::vector&lt;Constraint&gt;&gt; constraintProperties, std::shared_ptr&lt;Settings&gt; settingsIn, std::shared_ptr&lt;Logger&gt; loggerIn):</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a8bebd0e09ae8e79b0826bb93cba34ffa">maingoSettings</a>(settingsIn),</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a6e462e78027d46af3239c0463b7c9249">logger</a>(loggerIn)</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    {</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nvar = variables.size();</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nobj = 1;</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        <span class="comment">// Copy DAG for upper bounding solver</span></div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; nvar; i++) {</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;            mc::FFVar Y;                      <span class="comment">// Create a new DAG variable</span></div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;            this-&gt;vars.push_back(Y);          <span class="comment">// Add the new DAG variable to the vars vector</span></div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;            this-&gt;vars[i].set(&amp;this-&gt;DAG);    <span class="comment">// Add the new DAG variable to the DAG</span></div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;        }</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;        this-&gt;resultVars.resize(DAGfunctions.size());</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_dag_obj.html#a5782efab4dab2431bd571bd62d0c1fd5">DAG</a>.eval(DAGfunctions.size(), DAGfunctions.data(), this-&gt;resultVars.data(), nvar, DAGvars.data(), this-&gt;vars.data());    <span class="comment">// Get functions and write them to resultVars</span></div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;        this-&gt;functions.resize(1 + nineq + neq + nineqSquash);</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        <span class="comment">// Note that the constraints in constraintProperties are in a different order than in MAiNGO.cpp!</span></div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        <span class="comment">// Here it is obj, ineq, squash ineq, eq</span></div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; constraintProperties-&gt;size(); i++) {</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;            <span class="keywordtype">unsigned</span> index = (*constraintProperties)[i].indexNonconstant;</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;            <span class="keywordflow">switch</span> ((*constraintProperties)[i].type) {</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa19ac253da82c7f431e902e1be9cc236d">OBJ</a>:</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;                    this-&gt;functions[i] = this-&gt;resultVars[index];</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa2a2d5953a4091c4c7a47698a5a5bbfaa">INEQ</a>:</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;                    this-&gt;functions[i] = this-&gt;resultVars[index];</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffacaec66b04e8cec2efaf72c40f4d4d60d">INEQ_SQUASH</a>:</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;                    this-&gt;functions[i] = this-&gt;resultVars[index];</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa5f02b52b5b416052d5545294adb30288">EQ</a>:</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;                    this-&gt;functions[i] = this-&gt;resultVars[index];</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffabcfee51ddb6ed7d3c74ba9aa6f11fc96">INEQ_REL_ONLY</a>:</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffab931d88f14bc394968ab9e43265b58db">EQ_REL_ONLY</a>:</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;                <span class="keywordflow">default</span>:    <span class="comment">// In upper bounding solver, we don&#39;t use relaxation only constraints</span></div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;            }</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        }</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;        <span class="comment">// Get the list of operations used in the DAG</span></div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;        <span class="comment">// It is needed for the call of proper DAG functions</span></div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        this-&gt;subgraph = this-&gt;DAG.subgraph(this-&gt;functions.size(), this-&gt;functions.data());</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;        <span class="comment">// Get operations of each function in the DAG</span></div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;        this-&gt;functionsObj.resize(nobj);</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        this-&gt;functionsIneq.resize(nineq);</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;        this-&gt;functionsEq.resize(neq);</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;        this-&gt;functionsIneqSquash.resize(nineqSquash);</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;        this-&gt;functionsIneqSquashIneq.resize(nineq + nineqSquash);</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        this-&gt;functionsIneqEq.resize(nineq + neq + nineqSquash);</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;        <span class="comment">// Get each function, let&#39;s do it in one loop</span></div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;        <span class="comment">// Think of the order obj, ineq, squash ineq, eq which is different from the original one in MAiNGO.cpp</span></div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; constraintProperties-&gt;size(); i++) {</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;            <span class="keywordtype">unsigned</span> index     = (*constraintProperties)[i].indexNonconstantUBP;</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;            <span class="keywordtype">unsigned</span> indexType = (*constraintProperties)[i].indexTypeNonconstant;</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;            <span class="keywordflow">switch</span> ((*constraintProperties)[i].type) {</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa19ac253da82c7f431e902e1be9cc236d">OBJ</a>:</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;                    this-&gt;functionsObj[i] = this-&gt;functions[index];</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa2a2d5953a4091c4c7a47698a5a5bbfaa">INEQ</a>:</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;                    this-&gt;functionsIneq[indexType]           = this-&gt;functions[index];</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;                    this-&gt;functionsIneqSquashIneq[indexType] = this-&gt;functions[index];</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;                    this-&gt;functionsIneqEq[indexType]         = this-&gt;functions[index];</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffacaec66b04e8cec2efaf72c40f4d4d60d">INEQ_SQUASH</a>:</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;                    this-&gt;functionsIneqSquash[indexType]             = this-&gt;functions[index];</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;                    this-&gt;functionsIneqSquashIneq[indexType + nineq] = this-&gt;functions[index];</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;                    this-&gt;functionsIneqEq[indexType + nineq]         = this-&gt;functions[index];</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa5f02b52b5b416052d5545294adb30288">EQ</a>:</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;                    this-&gt;functionsEq[indexType]                           = this-&gt;functions[index];</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;                    this-&gt;functionsIneqEq[indexType + nineq + nineqSquash] = this-&gt;functions[index];    <span class="comment">// all inequalities first</span></div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffabcfee51ddb6ed7d3c74ba9aa6f11fc96">INEQ_REL_ONLY</a>:</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffab931d88f14bc394968ab9e43265b58db">EQ_REL_ONLY</a>:</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;                <span class="keywordflow">default</span>:    <span class="comment">// In upper bounding solver, we don&#39;t use relaxation only constraints</span></div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;            }</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;        }</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;        <span class="comment">// Get operations of each function</span></div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;        this-&gt;subgraphObj            = this-&gt;DAG.subgraph(this-&gt;functionsObj.size(), this-&gt;functionsObj.data());</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;        this-&gt;subgraphIneq           = this-&gt;DAG.subgraph(this-&gt;functionsIneq.size(), this-&gt;functionsIneq.data());</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;        this-&gt;subgraphEq             = this-&gt;DAG.subgraph(this-&gt;functionsEq.size(), this-&gt;functionsEq.data());</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;        this-&gt;subgraphIneqSquash     = this-&gt;DAG.subgraph(this-&gt;functionsIneqSquash.size(), this-&gt;functionsIneqSquash.data());</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;        this-&gt;subgraphIneqSquashIneq = this-&gt;DAG.subgraph(this-&gt;functionsIneqSquashIneq.size(), this-&gt;functionsIneqSquashIneq.data());</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;        this-&gt;subgraphIneqEq         = this-&gt;DAG.subgraph(this-&gt;functionsIneqEq.size(), this-&gt;functionsIneqEq.data());</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;        <span class="comment">// Allocate memory for the corresponding vectors</span></div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;        this-&gt;adPoint.resize(nvar);</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;        this-&gt;fadbadArray.resize(this-&gt;subgraph.l_op.size());</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;        this-&gt;doublePoint.resize(nvar);</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;        this-&gt;doubleArray.resize(this-&gt;subgraph.l_op.size());</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;        this-&gt;resultAD.resize(this-&gt;functions.size());</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;        this-&gt;resultADobj.resize(this-&gt;functionsObj.size());</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;        this-&gt;resultADineq.resize(this-&gt;functionsIneq.size());</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;        this-&gt;resultADeq.resize(this-&gt;functionsEq.size());</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;        this-&gt;resultADineqEq.resize(this-&gt;functionsIneqEq.size());</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;        this-&gt;resultADineqSquash.resize(this-&gt;functionsIneqSquash.size());</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;        this-&gt;resultADineqSquashIneq.resize(this-&gt;functionsIneqSquashIneq.size());</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;        this-&gt;resultDouble.resize(this-&gt;functions.size());</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;        this-&gt;resultDoubleObj.resize(this-&gt;functionsObj.size());</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;        this-&gt;resultDoubleIneq.resize(this-&gt;functionsIneq.size());</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;        this-&gt;resultDoubleEq.resize(this-&gt;functionsEq.size());</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;        this-&gt;resultDoubleIneqSquash.resize(this-&gt;functionsIneqSquash.size());</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;        this-&gt;resultDoubleIneqSquashIneq.resize(this-&gt;functionsIneqSquashIneq.size());</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;        this-&gt;resultDoubleIneqEq.resize(this-&gt;functionsIneqEq.size());</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;        this-&gt;adPoint2ndOrder.resize(nvar);</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;        this-&gt;fadbadArray2ndOrder.resize(this-&gt;subgraph.l_op.size());</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;        this-&gt;resultAD2ndOrder.resize(this-&gt;functions.size());</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;        this-&gt;warningFlag = <span class="keyword">false</span>;</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;    }</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;};</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;}    <span class="comment">// end namespace ubp</span></div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="namespacemaingo_html_a1fb378d6003f3c76e1674673a2e64cffa19ac253da82c7f431e902e1be9cc236d"><div class="ttname"><a href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa19ac253da82c7f431e902e1be9cc236d">maingo::OBJ</a></div><div class="ttdef"><b>Definition:</b> constraint.h:40</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a9ff8ea76f7cd501912937536fff7b54e"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a9ff8ea76f7cd501912937536fff7b54e">maingo::ubp::DagObj::functions</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; functions</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:45</div></div>
+<div class="ttc" id="namespacemaingo_html_a1fb378d6003f3c76e1674673a2e64cffa2a2d5953a4091c4c7a47698a5a5bbfaa"><div class="ttname"><a href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa2a2d5953a4091c4c7a47698a5a5bbfaa">maingo::INEQ</a></div><div class="ttdef"><b>Definition:</b> constraint.h:41</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a822afd74873ea833c98147373e504b9c"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a822afd74873ea833c98147373e504b9c">maingo::ubp::DagObj::fadbadArray</a></div><div class="ttdeci">std::vector&lt; fadbad::F&lt; double &gt; &gt; fadbadArray</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:49</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a5131414e58a4b041e75ea2010de5cf44"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a5131414e58a4b041e75ea2010de5cf44">maingo::ubp::DagObj::resultADineq</a></div><div class="ttdeci">std::vector&lt; fadbad::F&lt; double &gt; &gt; resultADineq</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:52</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a79773c586c9be6cba8e7fcb178d5b7b1"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a79773c586c9be6cba8e7fcb178d5b7b1">maingo::ubp::DagObj::functionsIneqSquash</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; functionsIneqSquash</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:75</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a6dd2d386cafd1e06bea74acdca9ed219"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a6dd2d386cafd1e06bea74acdca9ed219">maingo::ubp::DagObj::resultADobj</a></div><div class="ttdeci">std::vector&lt; fadbad::F&lt; double &gt; &gt; resultADobj</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:51</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a29fc29042fab2e29d8cf3e8270d1400e"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a29fc29042fab2e29d8cf3e8270d1400e">maingo::ubp::DagObj::warningFlag</a></div><div class="ttdeci">bool warningFlag</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:87</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a9e0cc6deedefb498b43ec2c7849a4d5c"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a9e0cc6deedefb498b43ec2c7849a4d5c">maingo::ubp::DagObj::subgraphIneq</a></div><div class="ttdeci">mc::FFSubgraph subgraphIneq</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:79</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a6e3eacf894a93c48315dfc9f2b5f552d"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a6e3eacf894a93c48315dfc9f2b5f552d">maingo::ubp::DagObj::subgraphIneqSquash</a></div><div class="ttdeci">mc::FFSubgraph subgraphIneqSquash</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:81</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a93dfab2ee4890c0847a68beeea2dbd2e"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a93dfab2ee4890c0847a68beeea2dbd2e">maingo::ubp::DagObj::resultADineqEq</a></div><div class="ttdeci">std::vector&lt; fadbad::F&lt; double &gt; &gt; resultADineqEq</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:56</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a05ab21ce93cddce80e9fd39d8be49597"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a05ab21ce93cddce80e9fd39d8be49597">maingo::ubp::DagObj::subgraphIneqEq</a></div><div class="ttdeci">mc::FFSubgraph subgraphIneqEq</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:83</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a9f9292c83ec7f57aa67622581f033da0"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a9f9292c83ec7f57aa67622581f033da0">maingo::ubp::DagObj::subgraph</a></div><div class="ttdeci">mc::FFSubgraph subgraph</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:44</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_ae7db57e66cd7d725971aa6f218962b3d"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#ae7db57e66cd7d725971aa6f218962b3d">maingo::ubp::DagObj::functionsObj</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; functionsObj</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:72</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a1e467d626d859ab9ff891bb935ced800"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a1e467d626d859ab9ff891bb935ced800">maingo::ubp::DagObj::resultADineqSquashIneq</a></div><div class="ttdeci">std::vector&lt; fadbad::F&lt; double &gt; &gt; resultADineqSquashIneq</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:55</div></div>
+<div class="ttc" id="namespacemaingo_html_a1fb378d6003f3c76e1674673a2e64cffa5f02b52b5b416052d5545294adb30288"><div class="ttname"><a href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffa5f02b52b5b416052d5545294adb30288">maingo::EQ</a></div><div class="ttdef"><b>Definition:</b> constraint.h:42</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_adf62f216e68f2545bff7ca8c2380de9d"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#adf62f216e68f2545bff7ca8c2380de9d">maingo::ubp::DagObj::resultAD</a></div><div class="ttdeci">std::vector&lt; fadbad::F&lt; double &gt; &gt; resultAD</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:50</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a4f45395e82b69d789baa6c85cc559774"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a4f45395e82b69d789baa6c85cc559774">maingo::ubp::DagObj::resultDoubleIneqSquash</a></div><div class="ttdeci">std::vector&lt; double &gt; resultDoubleIneqSquash</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:68</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a86d90582d35eb5007f3341a575f66988"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a86d90582d35eb5007f3341a575f66988">maingo::ubp::DagObj::doublePoint</a></div><div class="ttdeci">std::vector&lt; double &gt; doublePoint</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:62</div></div>
+<div class="ttc" id="namespacemaingo_html_a1fb378d6003f3c76e1674673a2e64cffabcfee51ddb6ed7d3c74ba9aa6f11fc96"><div class="ttname"><a href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffabcfee51ddb6ed7d3c74ba9aa6f11fc96">maingo::INEQ_REL_ONLY</a></div><div class="ttdef"><b>Definition:</b> constraint.h:43</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_afb24a800ca2cfab6f0e89caa4e821294"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#afb24a800ca2cfab6f0e89caa4e821294">maingo::ubp::DagObj::resultAD2ndOrder</a></div><div class="ttdeci">std::vector&lt; fadbad::F&lt; fadbad::F&lt; double &gt; &gt; &gt; resultAD2ndOrder</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:58</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_ae61f9929d9d26f573c61f6f6da34d33a"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#ae61f9929d9d26f573c61f6f6da34d33a">maingo::ubp::DagObj::subgraphObj</a></div><div class="ttdeci">mc::FFSubgraph subgraphObj</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:78</div></div>
+<div class="ttc" id="namespacemaingo_html_a1fb378d6003f3c76e1674673a2e64cffab931d88f14bc394968ab9e43265b58db"><div class="ttname"><a href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffab931d88f14bc394968ab9e43265b58db">maingo::EQ_REL_ONLY</a></div><div class="ttdef"><b>Definition:</b> constraint.h:44</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_ac1c442e22d05926cb038d69530b82bf0"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#ac1c442e22d05926cb038d69530b82bf0">maingo::ubp::DagObj::functionsIneqEq</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; functionsIneqEq</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:77</div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_add3ad440abf5b7ffc7d585da3a7bef1d"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#add3ad440abf5b7ffc7d585da3a7bef1d">maingo::ubp::DagObj::functionsIneq</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; functionsIneq</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:73</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_afe691f3ed4b87f85ee35031b0f204f38"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#afe691f3ed4b87f85ee35031b0f204f38">maingo::ubp::DagObj::functionsEq</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; functionsEq</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:74</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a44fa3940386ae67658375d956e0a668e"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a44fa3940386ae67658375d956e0a668e">maingo::ubp::DagObj::fadbadArray2ndOrder</a></div><div class="ttdeci">std::vector&lt; fadbad::F&lt; fadbad::F&lt; double &gt; &gt; &gt; fadbadArray2ndOrder</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:59</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_adbdafa51a0de03a4d21425704bb7fd1b"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#adbdafa51a0de03a4d21425704bb7fd1b">maingo::ubp::DagObj::resultADeq</a></div><div class="ttdeci">std::vector&lt; fadbad::F&lt; double &gt; &gt; resultADeq</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:53</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html">maingo::ubp::DagObj</a></div><div class="ttdoc">Struct for storing all needed Directed acyclic Graph objects for the upper bounding solver...</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:37</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a3e0513b0a62546a54b6d973e444c9c39"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a3e0513b0a62546a54b6d973e444c9c39">maingo::ubp::DagObj::resultADineqSquash</a></div><div class="ttdeci">std::vector&lt; fadbad::F&lt; double &gt; &gt; resultADineqSquash</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:54</div></div>
+<div class="ttc" id="namespacemaingo_html_a1fb378d6003f3c76e1674673a2e64cffacaec66b04e8cec2efaf72c40f4d4d60d"><div class="ttname"><a href="namespacemaingo.html#a1fb378d6003f3c76e1674673a2e64cffacaec66b04e8cec2efaf72c40f4d4d60d">maingo::INEQ_SQUASH</a></div><div class="ttdef"><b>Definition:</b> constraint.h:45</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a7f8342bed2c5826162ea52f9f0a585a0"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a7f8342bed2c5826162ea52f9f0a585a0">maingo::ubp::DagObj::resultDoubleIneqEq</a></div><div class="ttdeci">std::vector&lt; double &gt; resultDoubleIneqEq</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:70</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a1e28bbb852ebf2742997e2ce62326135"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a1e28bbb852ebf2742997e2ce62326135">maingo::ubp::DagObj::functionsIneqSquashIneq</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; functionsIneqSquashIneq</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:76</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a9caecaa9c360fb857f5ecf69f6378850"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a9caecaa9c360fb857f5ecf69f6378850">maingo::ubp::DagObj::resultDoubleIneq</a></div><div class="ttdeci">std::vector&lt; double &gt; resultDoubleIneq</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:66</div></div>
 <div class="ttc" id="settings_8h_html"><div class="ttname"><a href="settings_8h.html">settings.h</a></div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a0fe2d9ba4c4bcedc21b422b367e09a56"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a0fe2d9ba4c4bcedc21b422b367e09a56">maingo::ubp::DagObj::resultDoubleIneqSquashIneq</a></div><div class="ttdeci">std::vector&lt; double &gt; resultDoubleIneqSquashIneq</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:74</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_ac5f866488d488fd0755e63a4443e996c"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#ac5f866488d488fd0755e63a4443e996c">maingo::ubp::DagObj::resultDoubleObj</a></div><div class="ttdeci">std::vector&lt; double &gt; resultDoubleObj</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:70</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a82247c4c22164ea742e7635cbf1b804c"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a82247c4c22164ea742e7635cbf1b804c">maingo::ubp::DagObj::vars</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; vars</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:48</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a0fe2d9ba4c4bcedc21b422b367e09a56"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a0fe2d9ba4c4bcedc21b422b367e09a56">maingo::ubp::DagObj::resultDoubleIneqSquashIneq</a></div><div class="ttdeci">std::vector&lt; double &gt; resultDoubleIneqSquashIneq</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:69</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_ac5f866488d488fd0755e63a4443e996c"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#ac5f866488d488fd0755e63a4443e996c">maingo::ubp::DagObj::resultDoubleObj</a></div><div class="ttdeci">std::vector&lt; double &gt; resultDoubleObj</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:65</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a82247c4c22164ea742e7635cbf1b804c"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a82247c4c22164ea742e7635cbf1b804c">maingo::ubp::DagObj::vars</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; vars</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:43</div></div>
 <div class="ttc" id="logger_8h_html"><div class="ttname"><a href="logger_8h.html">logger.h</a></div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_adf6ebfd4b6bc613692458896143152a1"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#adf6ebfd4b6bc613692458896143152a1">maingo::ubp::DagObj::resultVars</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; resultVars</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:51</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_ad7f9a8164274d3e3ca0caf88c8e2d1d7"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#ad7f9a8164274d3e3ca0caf88c8e2d1d7">maingo::ubp::DagObj::doubleArray</a></div><div class="ttdeci">std::vector&lt; double &gt; doubleArray</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:68</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_ae8a488bec0d4c2a6f2474ba507ec559d"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#ae8a488bec0d4c2a6f2474ba507ec559d">maingo::ubp::DagObj::subgraphIneqSquashIneq</a></div><div class="ttdeci">mc::FFSubgraph subgraphIneqSquashIneq</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:87</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a21da37c6fc7b2d64ffcfa66893fae244"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a21da37c6fc7b2d64ffcfa66893fae244">maingo::ubp::DagObj::resultDouble</a></div><div class="ttdeci">std::vector&lt; double &gt; resultDouble</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:69</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a5782efab4dab2431bd571bd62d0c1fd5"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a5782efab4dab2431bd571bd62d0c1fd5">maingo::ubp::DagObj::DAG</a></div><div class="ttdeci">mc::FFGraph DAG</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:47</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a369f41e06ac7ca4c95af8520307186c5"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a369f41e06ac7ca4c95af8520307186c5">maingo::ubp::DagObj::adPoint2ndOrder</a></div><div class="ttdeci">std::vector&lt; fadbad::F&lt; fadbad::F&lt; double &gt; &gt; &gt; adPoint2ndOrder</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:65</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a61dda650b1a25155e541c4607fb7b82c"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a61dda650b1a25155e541c4607fb7b82c">maingo::ubp::DagObj::logger</a></div><div class="ttdeci">Logger * logger</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:91</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a38d4d4e046f3eea00ef8dce95ad36337"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a38d4d4e046f3eea00ef8dce95ad36337">maingo::ubp::DagObj::DagObj</a></div><div class="ttdeci">DagObj(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineq, const unsigned neq, const unsigned nineqSquash, std::vector&lt; Constraint &gt; *constraintProperties, Settings *settingsIn, Logger *loggerIn)</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:109</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a42e33cb988291c6937cd00185522156b"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a42e33cb988291c6937cd00185522156b">maingo::ubp::DagObj::resultDoubleEq</a></div><div class="ttdeci">std::vector&lt; double &gt; resultDoubleEq</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:72</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a48d906fd12ab57911a063e098eae3281"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a48d906fd12ab57911a063e098eae3281">maingo::ubp::DagObj::subgraphEq</a></div><div class="ttdeci">mc::FFSubgraph subgraphEq</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:85</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a803b289e729d816f8524f925302139db"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a803b289e729d816f8524f925302139db">maingo::ubp::DagObj::adPoint</a></div><div class="ttdeci">std::vector&lt; fadbad::F&lt; double &gt; &gt; adPoint</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:53</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_adf6ebfd4b6bc613692458896143152a1"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#adf6ebfd4b6bc613692458896143152a1">maingo::ubp::DagObj::resultVars</a></div><div class="ttdeci">std::vector&lt; mc::FFVar &gt; resultVars</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:46</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_ad7f9a8164274d3e3ca0caf88c8e2d1d7"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#ad7f9a8164274d3e3ca0caf88c8e2d1d7">maingo::ubp::DagObj::doubleArray</a></div><div class="ttdeci">std::vector&lt; double &gt; doubleArray</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:63</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_ae8a488bec0d4c2a6f2474ba507ec559d"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#ae8a488bec0d4c2a6f2474ba507ec559d">maingo::ubp::DagObj::subgraphIneqSquashIneq</a></div><div class="ttdeci">mc::FFSubgraph subgraphIneqSquashIneq</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:82</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a8bebd0e09ae8e79b0826bb93cba34ffa"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a8bebd0e09ae8e79b0826bb93cba34ffa">maingo::ubp::DagObj::maingoSettings</a></div><div class="ttdeci">std::shared_ptr&lt; Settings &gt; maingoSettings</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:85</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a21da37c6fc7b2d64ffcfa66893fae244"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a21da37c6fc7b2d64ffcfa66893fae244">maingo::ubp::DagObj::resultDouble</a></div><div class="ttdeci">std::vector&lt; double &gt; resultDouble</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:64</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a5782efab4dab2431bd571bd62d0c1fd5"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a5782efab4dab2431bd571bd62d0c1fd5">maingo::ubp::DagObj::DAG</a></div><div class="ttdeci">mc::FFGraph DAG</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:42</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a369f41e06ac7ca4c95af8520307186c5"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a369f41e06ac7ca4c95af8520307186c5">maingo::ubp::DagObj::adPoint2ndOrder</a></div><div class="ttdeci">std::vector&lt; fadbad::F&lt; fadbad::F&lt; double &gt; &gt; &gt; adPoint2ndOrder</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:60</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a42e33cb988291c6937cd00185522156b"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a42e33cb988291c6937cd00185522156b">maingo::ubp::DagObj::resultDoubleEq</a></div><div class="ttdeci">std::vector&lt; double &gt; resultDoubleEq</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:67</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a48d906fd12ab57911a063e098eae3281"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a48d906fd12ab57911a063e098eae3281">maingo::ubp::DagObj::subgraphEq</a></div><div class="ttdeci">mc::FFSubgraph subgraphEq</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:80</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a33f13fd662a2603c031c7284cd1ca098"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a33f13fd662a2603c031c7284cd1ca098">maingo::ubp::DagObj::DagObj</a></div><div class="ttdeci">DagObj(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineq, const unsigned neq, const unsigned nineqSquash, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintProperties, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:104</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a6e462e78027d46af3239c0463b7c9249"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a6e462e78027d46af3239c0463b7c9249">maingo::ubp::DagObj::logger</a></div><div class="ttdeci">std::shared_ptr&lt; Logger &gt; logger</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:86</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_dag_obj_html_a803b289e729d816f8524f925302139db"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_dag_obj.html#a803b289e729d816f8524f925302139db">maingo::ubp::DagObj::adPoint</a></div><div class="ttdeci">std::vector&lt; fadbad::F&lt; double &gt; &gt; adPoint</div><div class="ttdef"><b>Definition:</b> ubpDagObj.h:48</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -152,7 +150,7 @@ $(document).ready(function(){initNavTree('ubp_dag_obj_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="ubp_dag_obj_8h.html">ubpDagObj.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/ubp_evaluators_8h.html b/doc/html/ubp_evaluators_8h.html
index 5bae5cd07fefc950ddb12197e6b4f6971465adbc..6dca26a5ce0fd8dd66810b74fc20ee64fb002b39 100644
--- a/doc/html/ubp_evaluators_8h.html
+++ b/doc/html/ubp_evaluators_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/ubpEvaluators.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/ubpEvaluators.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -135,7 +135,7 @@ Functions</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="ubp_evaluators_8h.html">ubpEvaluators.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/ubp_evaluators_8h_source.html b/doc/html/ubp_evaluators_8h_source.html
index 099e63869b3f95e8657585644ae88a9d4e934d0f..74e432206af5e11c65943d41b03d88ab61faa362 100644
--- a/doc/html/ubp_evaluators_8h_source.html
+++ b/doc/html/ubp_evaluators_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/ubpEvaluators.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/ubpEvaluators.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,13 +90,13 @@ $(document).ready(function(){initNavTree('ubp_evaluators_8h_source.html','');});
 <div class="title">ubpEvaluators.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="ubp_evaluators_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file ubpEvaluators.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing declaration of functions for evaluating the model.</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="keyword">namespace </span>ubp {</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="keyword">struct </span>DagObj;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="keywordtype">double</span> <a class="code" href="namespacemaingo_1_1ubp.html#a932143bfce70a96fb11115c09792a93d">evaluate_objective</a>(<span class="keyword">const</span> <span class="keywordtype">double</span>* currentPoint, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nvar, <span class="keyword">const</span> <span class="keywordtype">bool</span> computeGradient, <span class="keywordtype">double</span>* gradient, std::shared_ptr&lt;DagObj&gt; dagObj);</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespacemaingo_1_1ubp.html#a2ccec3ae42538f85eeb00df11bb81dbd">evaluate_inequalities</a>(<span class="keyword">const</span> <span class="keywordtype">double</span>* currentPoint, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nvar, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineq, <span class="keyword">const</span> <span class="keywordtype">bool</span> computeGradient, <span class="keywordtype">double</span>* result, <span class="keywordtype">double</span>* gradient, std::shared_ptr&lt;DagObj&gt; dagObj);</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespacemaingo_1_1ubp.html#afeb581ccb97ca939b4689b62064cca07">evaluate_equalities</a>(<span class="keyword">const</span> <span class="keywordtype">double</span>* currentPoint, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nvar, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neq, <span class="keyword">const</span> <span class="keywordtype">bool</span> computeGradient, <span class="keywordtype">double</span>* result, <span class="keywordtype">double</span>* gradient, std::shared_ptr&lt;DagObj&gt; dagObj);</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespacemaingo_1_1ubp.html#a4ef3bf44064e577cc0e845c66ea24b2d">evaluate_constraints</a>(<span class="keyword">const</span> <span class="keywordtype">double</span>* currentPoint, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nvar, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> ncon, <span class="keyword">const</span> <span class="keywordtype">bool</span> computeGradient, <span class="keywordtype">double</span>* result, <span class="keywordtype">double</span>* gradient, std::shared_ptr&lt;DagObj&gt; dagObj);</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespacemaingo_1_1ubp.html#a749bd699d767cf5682bc2cc9af1a8ba2">evaluate_problem</a>(<span class="keyword">const</span> <span class="keywordtype">double</span>* currentPoint, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nvar, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> ncon, <span class="keyword">const</span> <span class="keywordtype">bool</span> computeGradient, <span class="keywordtype">double</span>* result, <span class="keywordtype">double</span>* gradient, std::shared_ptr&lt;DagObj&gt; dagObj);</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespacemaingo_1_1ubp.html#af36f6b98ee45ef4b3a1faf7365d437dc">evaluate_hessian</a>(<span class="keyword">const</span> <span class="keywordtype">double</span>* currentPoint, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nvar, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> ncon, <span class="keywordtype">double</span>* hessian, std::shared_ptr&lt;DagObj&gt; dagObj);</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;}    <span class="comment">// end namespace ubp</span></div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="namespacemaingo_1_1ubp_html_a4ef3bf44064e577cc0e845c66ea24b2d"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#a4ef3bf44064e577cc0e845c66ea24b2d">maingo::ubp::evaluate_constraints</a></div><div class="ttdeci">void evaluate_constraints(const double *currentPoint, const unsigned nvar, const unsigned ncon, const bool computeGradient, double *result, double *gradient, std::shared_ptr&lt; DagObj &gt; dagObj)</div><div class="ttdoc">Function for evaluating residuals of inequality and equality constraints at a given point.</div><div class="ttdef"><b>Definition:</b> ubp.cpp:635</div></div>
-<div class="ttc" id="namespacemaingo_1_1ubp_html_a2ccec3ae42538f85eeb00df11bb81dbd"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#a2ccec3ae42538f85eeb00df11bb81dbd">maingo::ubp::evaluate_inequalities</a></div><div class="ttdeci">void evaluate_inequalities(const double *currentPoint, const unsigned nvar, const unsigned nineq, const bool computeGradient, double *result, double *gradient, std::shared_ptr&lt; DagObj &gt; dagObj)</div><div class="ttdoc">Function for evaluating residuals of inequality constraints at a given point.</div><div class="ttdef"><b>Definition:</b> ubp.cpp:544</div></div>
-<div class="ttc" id="namespacemaingo_1_1ubp_html_a932143bfce70a96fb11115c09792a93d"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#a932143bfce70a96fb11115c09792a93d">maingo::ubp::evaluate_objective</a></div><div class="ttdeci">double evaluate_objective(const double *currentPoint, const unsigned nvar, const bool computeGradient, double *gradient, std::shared_ptr&lt; DagObj &gt; dagObj)</div><div class="ttdoc">Function for evaluating objective function at a given point.</div><div class="ttdef"><b>Definition:</b> ubp.cpp:510</div></div>
-<div class="ttc" id="namespacemaingo_1_1ubp_html_a749bd699d767cf5682bc2cc9af1a8ba2"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#a749bd699d767cf5682bc2cc9af1a8ba2">maingo::ubp::evaluate_problem</a></div><div class="ttdeci">void evaluate_problem(const double *currentPoint, const unsigned nvar, const unsigned ncon, const bool computeGradient, double *result, double *gradient, std::shared_ptr&lt; DagObj &gt; dagObj)</div><div class="ttdoc">Function for evaluating the objective function along with the residuals of inequality and equality co...</div><div class="ttdef"><b>Definition:</b> ubp.cpp:679</div></div>
-<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO</div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
-<div class="ttc" id="namespacemaingo_1_1ubp_html_afeb581ccb97ca939b4689b62064cca07"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#afeb581ccb97ca939b4689b62064cca07">maingo::ubp::evaluate_equalities</a></div><div class="ttdeci">void evaluate_equalities(const double *currentPoint, const unsigned nvar, const unsigned neq, const bool computeGradient, double *result, double *gradient, std::shared_ptr&lt; DagObj &gt; dagObj)</div><div class="ttdoc">Function for evaluating residuals of equality constraints at a given point.</div><div class="ttdef"><b>Definition:</b> ubp.cpp:591</div></div>
-<div class="ttc" id="namespacemaingo_1_1ubp_html_af36f6b98ee45ef4b3a1faf7365d437dc"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#af36f6b98ee45ef4b3a1faf7365d437dc">maingo::ubp::evaluate_hessian</a></div><div class="ttdeci">void evaluate_hessian(const double *currentPoint, const unsigned nvar, const unsigned ncon, double *hessian, std::shared_ptr&lt; DagObj &gt; dagObj)</div><div class="ttdoc">Function for evaluating the Hessian of the Lagrangian at a given point.</div><div class="ttdef"><b>Definition:</b> ubp.cpp:724</div></div>
+<a href="ubp_evaluators_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="keyword">namespace </span>ubp {</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="keyword">struct </span>DagObj;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="keywordtype">double</span> <a class="code" href="namespacemaingo_1_1ubp.html#a932143bfce70a96fb11115c09792a93d">evaluate_objective</a>(<span class="keyword">const</span> <span class="keywordtype">double</span>* currentPoint, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nvar, <span class="keyword">const</span> <span class="keywordtype">bool</span> computeGradient, <span class="keywordtype">double</span>* gradient, std::shared_ptr&lt;DagObj&gt; dagObj);</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespacemaingo_1_1ubp.html#a2ccec3ae42538f85eeb00df11bb81dbd">evaluate_inequalities</a>(<span class="keyword">const</span> <span class="keywordtype">double</span>* currentPoint, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nvar, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineq, <span class="keyword">const</span> <span class="keywordtype">bool</span> computeGradient, <span class="keywordtype">double</span>* result, <span class="keywordtype">double</span>* gradient, std::shared_ptr&lt;DagObj&gt; dagObj);</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespacemaingo_1_1ubp.html#afeb581ccb97ca939b4689b62064cca07">evaluate_equalities</a>(<span class="keyword">const</span> <span class="keywordtype">double</span>* currentPoint, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nvar, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neq, <span class="keyword">const</span> <span class="keywordtype">bool</span> computeGradient, <span class="keywordtype">double</span>* result, <span class="keywordtype">double</span>* gradient, std::shared_ptr&lt;DagObj&gt; dagObj);</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespacemaingo_1_1ubp.html#a4ef3bf44064e577cc0e845c66ea24b2d">evaluate_constraints</a>(<span class="keyword">const</span> <span class="keywordtype">double</span>* currentPoint, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nvar, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> ncon, <span class="keyword">const</span> <span class="keywordtype">bool</span> computeGradient, <span class="keywordtype">double</span>* result, <span class="keywordtype">double</span>* gradient, std::shared_ptr&lt;DagObj&gt; dagObj);</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespacemaingo_1_1ubp.html#a749bd699d767cf5682bc2cc9af1a8ba2">evaluate_problem</a>(<span class="keyword">const</span> <span class="keywordtype">double</span>* currentPoint, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nvar, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> ncon, <span class="keyword">const</span> <span class="keywordtype">bool</span> computeGradient, <span class="keywordtype">double</span>* result, <span class="keywordtype">double</span>* gradient, std::shared_ptr&lt;DagObj&gt; dagObj);</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespacemaingo_1_1ubp.html#af36f6b98ee45ef4b3a1faf7365d437dc">evaluate_hessian</a>(<span class="keyword">const</span> <span class="keywordtype">double</span>* currentPoint, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nvar, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> ncon, <span class="keywordtype">double</span>* hessian, std::shared_ptr&lt;DagObj&gt; dagObj);</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;}    <span class="comment">// end namespace ubp</span></div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="namespacemaingo_1_1ubp_html_a4ef3bf44064e577cc0e845c66ea24b2d"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#a4ef3bf44064e577cc0e845c66ea24b2d">maingo::ubp::evaluate_constraints</a></div><div class="ttdeci">void evaluate_constraints(const double *currentPoint, const unsigned nvar, const unsigned ncon, const bool computeGradient, double *result, double *gradient, std::shared_ptr&lt; DagObj &gt; dagObj)</div><div class="ttdoc">Function for evaluating residuals of inequality and equality constraints at a given point...</div><div class="ttdef"><b>Definition:</b> ubp.cpp:631</div></div>
+<div class="ttc" id="namespacemaingo_1_1ubp_html_a2ccec3ae42538f85eeb00df11bb81dbd"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#a2ccec3ae42538f85eeb00df11bb81dbd">maingo::ubp::evaluate_inequalities</a></div><div class="ttdeci">void evaluate_inequalities(const double *currentPoint, const unsigned nvar, const unsigned nineq, const bool computeGradient, double *result, double *gradient, std::shared_ptr&lt; DagObj &gt; dagObj)</div><div class="ttdoc">Function for evaluating residuals of inequality constraints at a given point. </div><div class="ttdef"><b>Definition:</b> ubp.cpp:540</div></div>
+<div class="ttc" id="namespacemaingo_1_1ubp_html_a932143bfce70a96fb11115c09792a93d"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#a932143bfce70a96fb11115c09792a93d">maingo::ubp::evaluate_objective</a></div><div class="ttdeci">double evaluate_objective(const double *currentPoint, const unsigned nvar, const bool computeGradient, double *gradient, std::shared_ptr&lt; DagObj &gt; dagObj)</div><div class="ttdoc">Function for evaluating objective function at a given point. </div><div class="ttdef"><b>Definition:</b> ubp.cpp:506</div></div>
+<div class="ttc" id="namespacemaingo_1_1ubp_html_a749bd699d767cf5682bc2cc9af1a8ba2"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#a749bd699d767cf5682bc2cc9af1a8ba2">maingo::ubp::evaluate_problem</a></div><div class="ttdeci">void evaluate_problem(const double *currentPoint, const unsigned nvar, const unsigned ncon, const bool computeGradient, double *result, double *gradient, std::shared_ptr&lt; DagObj &gt; dagObj)</div><div class="ttdoc">Function for evaluating the objective function along with the residuals of inequality and equality co...</div><div class="ttdef"><b>Definition:</b> ubp.cpp:675</div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
+<div class="ttc" id="namespacemaingo_1_1ubp_html_afeb581ccb97ca939b4689b62064cca07"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#afeb581ccb97ca939b4689b62064cca07">maingo::ubp::evaluate_equalities</a></div><div class="ttdeci">void evaluate_equalities(const double *currentPoint, const unsigned nvar, const unsigned neq, const bool computeGradient, double *result, double *gradient, std::shared_ptr&lt; DagObj &gt; dagObj)</div><div class="ttdoc">Function for evaluating residuals of equality constraints at a given point. </div><div class="ttdef"><b>Definition:</b> ubp.cpp:587</div></div>
+<div class="ttc" id="namespacemaingo_1_1ubp_html_af36f6b98ee45ef4b3a1faf7365d437dc"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#af36f6b98ee45ef4b3a1faf7365d437dc">maingo::ubp::evaluate_hessian</a></div><div class="ttdeci">void evaluate_hessian(const double *currentPoint, const unsigned nvar, const unsigned ncon, double *hessian, std::shared_ptr&lt; DagObj &gt; dagObj)</div><div class="ttdoc">Function for evaluating the Hessian of the Lagrangian at a given point. </div><div class="ttdef"><b>Definition:</b> ubp.cpp:720</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -105,7 +105,7 @@ $(document).ready(function(){initNavTree('ubp_evaluators_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="ubp_evaluators_8h.html">ubpEvaluators.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/ubp_factory_8cpp.html b/doc/html/ubp_factory_8cpp.html
index 1f0c5817d3e4e17cb7942b9852e768717e6b75a9..c61236f76738f80f1b773fb1d82367e76ca6aa75 100644
--- a/doc/html/ubp_factory_8cpp.html
+++ b/doc/html/ubp_factory_8cpp.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/src/ubpFactory.cpp File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/src/ubpFactory.cpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,7 +90,8 @@ $(document).ready(function(){initNavTree('ubp_factory_8cpp.html','');});
 <div class="title">ubpFactory.cpp File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="textblock"><code>#include &quot;<a class="el" href="exceptions_8h_source.html">exceptions.h</a>&quot;</code><br />
+<div class="textblock"><code>#include &quot;<a class="el" href="_m_ai_n_g_o_exception_8h_source.html">MAiNGOException.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="logger_8h_source.html">logger.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="ubp_8h_source.html">ubp.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="ubp_clp_8h_source.html">ubpClp.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="ubp_ipopt_8h_source.html">ubpIpopt.h</a>&quot;</code><br />
@@ -103,7 +104,7 @@ $(document).ready(function(){initNavTree('ubp_factory_8cpp.html','');});
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="ubp_factory_8cpp.html">ubpFactory.cpp</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/ubp_ipopt_8cpp.html b/doc/html/ubp_ipopt_8cpp.html
index a7d521c5f4c728cfae05c738d00abee19a5b741c..534a4b8869817be08bd2c325754eafd83c37db4b 100644
--- a/doc/html/ubp_ipopt_8cpp.html
+++ b/doc/html/ubp_ipopt_8cpp.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/src/ubpIpopt.cpp File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/src/ubpIpopt.cpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -91,7 +91,7 @@ $(document).ready(function(){initNavTree('ubp_ipopt_8cpp.html','');});
 </div><!--header-->
 <div class="contents">
 <div class="textblock"><code>#include &quot;<a class="el" href="ubp_ipopt_8h_source.html">ubpIpopt.h</a>&quot;</code><br />
-<code>#include &quot;<a class="el" href="exceptions_8h_source.html">exceptions.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_m_ai_n_g_o_exception_8h_source.html">MAiNGOException.h</a>&quot;</code><br />
 <code>#include &lt;iostream&gt;</code><br />
 </div></div><!-- contents -->
 </div><!-- doc-content -->
@@ -101,7 +101,7 @@ $(document).ready(function(){initNavTree('ubp_ipopt_8cpp.html','');});
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="ubp_ipopt_8cpp.html">ubpIpopt.cpp</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/ubp_ipopt_8h.html b/doc/html/ubp_ipopt_8h.html
index f3929e28f45c1e3a4ed9d6a16e723ab51e507df0..47cf6a17aebbaf97f8d969a1589ab6082fc8cc3c 100644
--- a/doc/html/ubp_ipopt_8h.html
+++ b/doc/html/ubp_ipopt_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/ubpIpopt.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/ubpIpopt.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -122,7 +122,7 @@ Namespaces</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="ubp_ipopt_8h.html">ubpIpopt.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/ubp_ipopt_8h_source.html b/doc/html/ubp_ipopt_8h_source.html
index 18e3f7d15a5ef4a59887ed872a1b292dd69fc841..0b659d2410236dee984870d0b5d27b9fb4d487df 100644
--- a/doc/html/ubp_ipopt_8h_source.html
+++ b/doc/html/ubp_ipopt_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/ubpIpopt.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/ubpIpopt.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,19 +90,17 @@ $(document).ready(function(){initNavTree('ubp_ipopt_8h_source.html','');});
 <div class="title">ubpIpopt.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="ubp_ipopt_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file ubpIpopt.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing declaration of UbpIpopt class used for solving the</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *        upper bounding problems.</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ipopt_problem_8h.html">ipoptProblem.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ubp_8h.html">ubp.h</a>&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &quot;IpIpoptApplication.hpp&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="keyword">namespace </span>ubp {</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html">   39</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html">UbpIpopt</a>: <span class="keyword">public</span> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">UpperBoundingSolver</a> {</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#a3b4a6331fd9876205ae349bdc95d06a4">UbpIpopt</a>(mc::FFGraph &amp;DAG, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGvars, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGfunctions, <span class="keyword">const</span> std::vector&lt;babBase::OptimizationVariable&gt; &amp;variables,</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;             <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqSquashIn, <a class="code" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="code" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn, std::vector&lt;Constraint&gt; *constraintPropertiesIn, <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> useIn);</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#a1d566d058e7134be0305fed79d25be08">_solve_nlp</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">double</span> &amp;objectiveValue, std::vector&lt;double&gt; &amp;solutionPoint);</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#a6a7bbb8629378389e64679418ffab50d">   73</a></span>&#160;    Ipopt::SmartPtr&lt;Ipopt::IpoptApplication&gt; <a class="code" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#a6a7bbb8629378389e64679418ffab50d">_Ipopt</a>; </div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#a1ebf4ace6206cb615accec7819a7b45a">   74</a></span>&#160;    Ipopt::SmartPtr&lt;IpoptProblem&gt; <a class="code" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#a1ebf4ace6206cb615accec7819a7b45a">_theIpoptProblem</a>;  </div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    <span class="comment">// Prevent use of default copy constructor and copy assignment operator by declaring them private:</span></div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#a3b4a6331fd9876205ae349bdc95d06a4">UbpIpopt</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html">UbpIpopt</a> &amp;);            </div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html">UbpIpopt</a> &amp;<a class="code" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#ad12c30c11fb6ef915670ffd51bf5f860">operator=</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html">UbpIpopt</a> &amp;); </div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;};</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;}    <span class="comment">// end namespace ubp</span></div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_ipopt_html"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_ipopt.html">maingo::ubp::UbpIpopt</a></div><div class="ttdoc">Wrapper for handling the upper bounding problems by interfacing Ipopt.</div><div class="ttdef"><b>Definition:</b> ubpIpopt.h:39</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html"><div class="ttname"><a href="structmaingo_1_1_settings.html">maingo::Settings</a></div><div class="ttdoc">Struct for storing settings for MAiNGO.</div><div class="ttdef"><b>Definition:</b> settings.h:143</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_ipopt_html_a1d566d058e7134be0305fed79d25be08"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#a1d566d058e7134be0305fed79d25be08">maingo::ubp::UbpIpopt::_solve_nlp</a></div><div class="ttdeci">SUBSOLVER_RETCODE _solve_nlp(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, double &amp;objectiveValue, std::vector&lt; double &gt; &amp;solutionPoint)</div><div class="ttdoc">Function for actually solving the NLP sub-problem.</div><div class="ttdef"><b>Definition:</b> ubpIpopt.cpp:111</div></div>
+<a href="ubp_ipopt_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ipopt_problem_8h.html">ipoptProblem.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ubp_8h.html">ubp.h</a>&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &quot;IpIpoptApplication.hpp&quot;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="keyword">namespace </span>ubp {</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html">   34</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html">UbpIpopt</a>: <span class="keyword">public</span> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">UpperBoundingSolver</a> {</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#acd84ac4a7669c214242419ee880426fa">UbpIpopt</a>(mc::FFGraph &amp;DAG, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGvars, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGfunctions, <span class="keyword">const</span> std::vector&lt;babBase::OptimizationVariable&gt; &amp;variables,</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;             <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqSquashIn, std::shared_ptr&lt;Settings&gt; settingsIn, std::shared_ptr&lt;Logger&gt; loggerIn, std::shared_ptr&lt;std::vector&lt;Constraint&gt;&gt; constraintPropertiesIn, <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> useIn);</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#a1d566d058e7134be0305fed79d25be08">_solve_nlp</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">double</span> &amp;objectiveValue, std::vector&lt;double&gt; &amp;solutionPoint);</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#a6a7bbb8629378389e64679418ffab50d">   68</a></span>&#160;    Ipopt::SmartPtr&lt;Ipopt::IpoptApplication&gt; <a class="code" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#a6a7bbb8629378389e64679418ffab50d">_Ipopt</a>; </div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#a1ebf4ace6206cb615accec7819a7b45a">   69</a></span>&#160;    Ipopt::SmartPtr&lt;IpoptProblem&gt; <a class="code" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#a1ebf4ace6206cb615accec7819a7b45a">_theIpoptProblem</a>;  </div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <span class="comment">// Prevent use of default copy constructor and copy assignment operator by declaring them private:</span></div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#acd84ac4a7669c214242419ee880426fa">UbpIpopt</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html">UbpIpopt</a> &amp;);            </div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html">UbpIpopt</a> &amp;<a class="code" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#ad12c30c11fb6ef915670ffd51bf5f860">operator=</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_ipopt.html">UbpIpopt</a> &amp;); </div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;};</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;}    <span class="comment">// end namespace ubp</span></div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_ipopt_html"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_ipopt.html">maingo::ubp::UbpIpopt</a></div><div class="ttdoc">Wrapper for handling the upper bounding problems by interfacing Ipopt. </div><div class="ttdef"><b>Definition:</b> ubpIpopt.h:34</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_ipopt_html_a1d566d058e7134be0305fed79d25be08"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#a1d566d058e7134be0305fed79d25be08">maingo::ubp::UbpIpopt::_solve_nlp</a></div><div class="ttdeci">SUBSOLVER_RETCODE _solve_nlp(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, double &amp;objectiveValue, std::vector&lt; double &gt; &amp;solutionPoint)</div><div class="ttdoc">Function for actually solving the NLP sub-problem. </div><div class="ttdef"><b>Definition:</b> ubpIpopt.cpp:104</div></div>
 <div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_ipopt_html_ad12c30c11fb6ef915670ffd51bf5f860"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#ad12c30c11fb6ef915670ffd51bf5f860">maingo::ubp::UbpIpopt::operator=</a></div><div class="ttdeci">UbpIpopt &amp; operator=(const UbpIpopt &amp;)</div></div>
 <div class="ttc" id="ipopt_problem_8h_html"><div class="ttname"><a href="ipopt_problem_8h.html">ipoptProblem.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html"><div class="ttname"><a href="classmaingo_1_1_logger.html">maingo::Logger</a></div><div class="ttdoc">This class contains all logging and output information.</div><div class="ttdef"><b>Definition:</b> logger.h:101</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></div><div class="ttdoc">Base class for wrappers for handling the upper bounding problems.</div><div class="ttdef"><b>Definition:</b> ubp.h:49</div></div>
-<div class="ttc" id="namespacemaingo_html_ab7a1cb5c265f8d1c287d43fec7988020"><div class="ttname"><a href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">maingo::SUBSOLVER_RETCODE</a></div><div class="ttdeci">SUBSOLVER_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the different sub-solvers (UpperBoundingSolver,...</div><div class="ttdef"><b>Definition:</b> returnCodes.h:40</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_ipopt_html_a1ebf4ace6206cb615accec7819a7b45a"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#a1ebf4ace6206cb615accec7819a7b45a">maingo::ubp::UbpIpopt::_theIpoptProblem</a></div><div class="ttdeci">Ipopt::SmartPtr&lt; IpoptProblem &gt; _theIpoptProblem</div><div class="ttdef"><b>Definition:</b> ubpIpopt.h:74</div></div>
-<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO</div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_ipopt_html_a6a7bbb8629378389e64679418ffab50d"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#a6a7bbb8629378389e64679418ffab50d">maingo::ubp::UbpIpopt::_Ipopt</a></div><div class="ttdeci">Ipopt::SmartPtr&lt; Ipopt::IpoptApplication &gt; _Ipopt</div><div class="ttdef"><b>Definition:</b> ubpIpopt.h:73</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_ipopt_html_a3b4a6331fd9876205ae349bdc95d06a4"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#a3b4a6331fd9876205ae349bdc95d06a4">maingo::ubp::UbpIpopt::UbpIpopt</a></div><div class="ttdeci">UbpIpopt(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, UBS_USE useIn)</div><div class="ttdoc">Constructor, stores information on the problem and initializes the local-subsolvers used.</div><div class="ttdef"><b>Definition:</b> ubpIpopt.cpp:30</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a1f4073797703aa1546f3f66938318395"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">maingo::ubp::UpperBoundingSolver::UBS_USE</a></div><div class="ttdeci">UBS_USE</div><div class="ttdoc">Enum for communicating what the intended purpose of the solver is. This determines which settings are...</div><div class="ttdef"><b>Definition:</b> ubp.h:56</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_ipopt_html_acd84ac4a7669c214242419ee880426fa"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#acd84ac4a7669c214242419ee880426fa">maingo::ubp::UbpIpopt::UbpIpopt</a></div><div class="ttdeci">UbpIpopt(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, UBS_USE useIn)</div><div class="ttdoc">Constructor, stores information on the problem and initializes the local-subsolvers used...</div><div class="ttdef"><b>Definition:</b> ubpIpopt.cpp:25</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></div><div class="ttdoc">Base class for wrappers for handling the upper bounding problems. </div><div class="ttdef"><b>Definition:</b> ubp.h:44</div></div>
+<div class="ttc" id="namespacemaingo_html_ab7a1cb5c265f8d1c287d43fec7988020"><div class="ttname"><a href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">maingo::SUBSOLVER_RETCODE</a></div><div class="ttdeci">SUBSOLVER_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the different sub-solvers (UpperBoundingSolver, LowerBoundingSolver). </div><div class="ttdef"><b>Definition:</b> returnCodes.h:36</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_ipopt_html_a1ebf4ace6206cb615accec7819a7b45a"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#a1ebf4ace6206cb615accec7819a7b45a">maingo::ubp::UbpIpopt::_theIpoptProblem</a></div><div class="ttdeci">Ipopt::SmartPtr&lt; IpoptProblem &gt; _theIpoptProblem</div><div class="ttdef"><b>Definition:</b> ubpIpopt.h:69</div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_ipopt_html_a6a7bbb8629378389e64679418ffab50d"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_ipopt.html#a6a7bbb8629378389e64679418ffab50d">maingo::ubp::UbpIpopt::_Ipopt</a></div><div class="ttdeci">Ipopt::SmartPtr&lt; Ipopt::IpoptApplication &gt; _Ipopt</div><div class="ttdef"><b>Definition:</b> ubpIpopt.h:68</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a1f4073797703aa1546f3f66938318395"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">maingo::ubp::UpperBoundingSolver::UBS_USE</a></div><div class="ttdeci">UBS_USE</div><div class="ttdoc">Enum for communicating what the intended purpose of the solver is. This determines which settings are...</div><div class="ttdef"><b>Definition:</b> ubp.h:51</div></div>
 <div class="ttc" id="ubp_8h_html"><div class="ttname"><a href="ubp_8h.html">ubp.h</a></div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
@@ -112,7 +110,7 @@ $(document).ready(function(){initNavTree('ubp_ipopt_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="ubp_ipopt_8h.html">ubpIpopt.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/ubp_knitro_8cpp.html b/doc/html/ubp_knitro_8cpp.html
index 178b755d3ec30203ac3a4b7e4d0712a163fd20c6..adca565cbb1ece17e51baf5ee74862b7b473f3fb 100644
--- a/doc/html/ubp_knitro_8cpp.html
+++ b/doc/html/ubp_knitro_8cpp.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/src/ubpKnitro.cpp File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/src/ubpKnitro.cpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -98,7 +98,7 @@ $(document).ready(function(){initNavTree('ubp_knitro_8cpp.html','');});
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="ubp_knitro_8cpp.html">ubpKnitro.cpp</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/ubp_knitro_8h.html b/doc/html/ubp_knitro_8h.html
index cf7be515ced412501182e61df3700fecde9dac74..3f44f62a6b469890d89719ab3e2c7d31cccbe1ad 100644
--- a/doc/html/ubp_knitro_8h.html
+++ b/doc/html/ubp_knitro_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/ubpKnitro.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/ubpKnitro.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -120,7 +120,7 @@ Namespaces</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="ubp_knitro_8h.html">ubpKnitro.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/ubp_knitro_8h_source.html b/doc/html/ubp_knitro_8h_source.html
index 61dba157d3796856807df660f4f8d47fc46298c1..45bfebf805cef2f9d6b0ffa3d05f045afd2e7a4b 100644
--- a/doc/html/ubp_knitro_8h_source.html
+++ b/doc/html/ubp_knitro_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/ubpKnitro.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/ubpKnitro.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,23 +90,21 @@ $(document).ready(function(){initNavTree('ubp_knitro_8h_source.html','');});
 <div class="title">ubpKnitro.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="ubp_knitro_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file ubpKnitro.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing declaration of UbpKnitro class used for solving the</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *        upper bounding problems.</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="knitro_problem_8h.html">knitroProblem.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ubp_8h.html">ubp.h</a>&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="keyword">namespace </span>ubp {</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_knitro.html">   37</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1ubp_1_1_ubp_knitro.html">UbpKnitro</a>: <span class="keyword">public</span> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">UpperBoundingSolver</a> {</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#ac916b5455e5ae20c5d9dd9a4006d0482">UbpKnitro</a>(mc::FFGraph &amp;DAG, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGvars, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGfunctions, <span class="keyword">const</span> std::vector&lt;babBase::OptimizationVariable&gt; &amp;variables,</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;              <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqSquashIn, <a class="code" href="structmaingo_1_1_settings.html">Settings</a> *settingsIn, <a class="code" href="classmaingo_1_1_logger.html">Logger</a> *loggerIn, std::vector&lt;Constraint&gt; *constraintPropertiesIn, <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> useIn);</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a0ebc116dd3ddaea32fb9330ee725295d">   61</a></span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a0ebc116dd3ddaea32fb9330ee725295d">~UbpKnitro</a>() { <span class="keyword">delete</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a7ed80bebed09716ca40e07cee2722e4b">_theKnitroProblem</a>; };</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a25aec304d6681184a572778f8a8c8379">_solve_nlp</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">double</span> &amp;objectiveValue, std::vector&lt;double&gt; &amp;solutionPoint);</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a7ed80bebed09716ca40e07cee2722e4b">   75</a></span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html">KnitroProblem</a> *<a class="code" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a7ed80bebed09716ca40e07cee2722e4b">_theKnitroProblem</a>; </div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#ae54f2f80561a3f03efbdb107b03d93eb">   76</a></span>&#160;    knitro::KTRSolver <a class="code" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#ae54f2f80561a3f03efbdb107b03d93eb">_Knitro</a>;        </div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a59c576b8dd4282ea8c9f64f77623625f">   78</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a59c576b8dd4282ea8c9f64f77623625f">_solverStatus</a>; </div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    <span class="comment">// Prevent use of default copy constructor and copy assignment operator by declaring them private:</span></div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#ac916b5455e5ae20c5d9dd9a4006d0482">UbpKnitro</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_knitro.html">UbpKnitro</a> &amp;);            </div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ubp_knitro.html">UbpKnitro</a> &amp;<a class="code" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#ad05c1f048da57b4af99fd5cd8b7c2cdb">operator=</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_knitro.html">UbpKnitro</a> &amp;); </div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;};</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;}    <span class="comment">// end namespace ubp</span></div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="knitro_problem_8h_html"><div class="ttname"><a href="knitro_problem_8h.html">knitroProblem.h</a></div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html"><div class="ttname"><a href="structmaingo_1_1_settings.html">maingo::Settings</a></div><div class="ttdoc">Struct for storing settings for MAiNGO.</div><div class="ttdef"><b>Definition:</b> settings.h:143</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html"><div class="ttname"><a href="classmaingo_1_1_logger.html">maingo::Logger</a></div><div class="ttdoc">This class contains all logging and output information.</div><div class="ttdef"><b>Definition:</b> logger.h:101</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_knitro_html_a7ed80bebed09716ca40e07cee2722e4b"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a7ed80bebed09716ca40e07cee2722e4b">maingo::ubp::UbpKnitro::_theKnitroProblem</a></div><div class="ttdeci">KnitroProblem * _theKnitroProblem</div><div class="ttdef"><b>Definition:</b> ubpKnitro.h:75</div></div>
+<a href="ubp_knitro_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="knitro_problem_8h.html">knitroProblem.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ubp_8h.html">ubp.h</a>&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="keyword">namespace </span>ubp {</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_knitro.html">   32</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1ubp_1_1_ubp_knitro.html">UbpKnitro</a>: <span class="keyword">public</span> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">UpperBoundingSolver</a> {</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a94a323841bca8d54129aa85fad4ce06c">UbpKnitro</a>(mc::FFGraph &amp;DAG, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGvars, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt; &amp;DAGfunctions, <span class="keyword">const</span> std::vector&lt;babBase::OptimizationVariable&gt; &amp;variables,</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;              <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqSquashIn, std::shared_ptr&lt;Settings&gt; settingsIn, std::shared_ptr&lt;Logger&gt; loggerIn, std::shared_ptr&lt;std::vector&lt;Constraint&gt;&gt; constraintPropertiesIn, <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> useIn);</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a0ebc116dd3ddaea32fb9330ee725295d">   56</a></span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a0ebc116dd3ddaea32fb9330ee725295d">~UbpKnitro</a>() { <span class="keyword">delete</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a7ed80bebed09716ca40e07cee2722e4b">_theKnitroProblem</a>; };</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a25aec304d6681184a572778f8a8c8379">_solve_nlp</a>(<span class="keyword">const</span> std::vector&lt;double&gt; &amp;lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt; &amp;upperVarBounds, <span class="keywordtype">double</span> &amp;objectiveValue, std::vector&lt;double&gt; &amp;solutionPoint);</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a7ed80bebed09716ca40e07cee2722e4b">   70</a></span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_knitro_problem.html">KnitroProblem</a> *<a class="code" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a7ed80bebed09716ca40e07cee2722e4b">_theKnitroProblem</a>; </div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#ae54f2f80561a3f03efbdb107b03d93eb">   71</a></span>&#160;    knitro::KTRSolver <a class="code" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#ae54f2f80561a3f03efbdb107b03d93eb">_Knitro</a>;        </div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a59c576b8dd4282ea8c9f64f77623625f">   73</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a59c576b8dd4282ea8c9f64f77623625f">_solverStatus</a>; </div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    <span class="comment">// Prevent use of default copy constructor and copy assignment operator by declaring them private:</span></div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a94a323841bca8d54129aa85fad4ce06c">UbpKnitro</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_knitro.html">UbpKnitro</a> &amp;);            </div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ubp_knitro.html">UbpKnitro</a> &amp;<a class="code" href="classmaingo_1_1ubp_1_1_ubp_knitro.html#ad05c1f048da57b4af99fd5cd8b7c2cdb">operator=</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_knitro.html">UbpKnitro</a> &amp;); </div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;};</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;}    <span class="comment">// end namespace ubp</span></div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="knitro_problem_8h_html"><div class="ttname"><a href="knitro_problem_8h.html">knitroProblem.h</a></div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_knitro_html_a94a323841bca8d54129aa85fad4ce06c"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a94a323841bca8d54129aa85fad4ce06c">maingo::ubp::UbpKnitro::UbpKnitro</a></div><div class="ttdeci">UbpKnitro(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, UBS_USE useIn)</div><div class="ttdoc">Constructor, stores information on the problem and initializes the local-subsolvers used...</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_knitro_html_a7ed80bebed09716ca40e07cee2722e4b"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a7ed80bebed09716ca40e07cee2722e4b">maingo::ubp::UbpKnitro::_theKnitroProblem</a></div><div class="ttdeci">KnitroProblem * _theKnitroProblem</div><div class="ttdef"><b>Definition:</b> ubpKnitro.h:70</div></div>
 <div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_knitro_html_ad05c1f048da57b4af99fd5cd8b7c2cdb"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_knitro.html#ad05c1f048da57b4af99fd5cd8b7c2cdb">maingo::ubp::UbpKnitro::operator=</a></div><div class="ttdeci">UbpKnitro &amp; operator=(const UbpKnitro &amp;)</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html">maingo::ubp::KnitroProblem</a></div><div class="ttdoc">Class for representing problems to be solved by Knitro, providing an interface to the problem definit...</div><div class="ttdef"><b>Definition:</b> knitroProblem.h:47</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_knitro_html"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_knitro.html">maingo::ubp::UbpKnitro</a></div><div class="ttdoc">Wrapper for handling the upper bounding problems by interfacing Knitro.</div><div class="ttdef"><b>Definition:</b> ubpKnitro.h:37</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></div><div class="ttdoc">Base class for wrappers for handling the upper bounding problems.</div><div class="ttdef"><b>Definition:</b> ubp.h:49</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_knitro_html_a0ebc116dd3ddaea32fb9330ee725295d"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a0ebc116dd3ddaea32fb9330ee725295d">maingo::ubp::UbpKnitro::~UbpKnitro</a></div><div class="ttdeci">~UbpKnitro()</div><div class="ttdoc">Destructor.</div><div class="ttdef"><b>Definition:</b> ubpKnitro.h:61</div></div>
-<div class="ttc" id="namespacemaingo_html_ab7a1cb5c265f8d1c287d43fec7988020"><div class="ttname"><a href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">maingo::SUBSOLVER_RETCODE</a></div><div class="ttdeci">SUBSOLVER_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the different sub-solvers (UpperBoundingSolver,...</div><div class="ttdef"><b>Definition:</b> returnCodes.h:40</div></div>
-<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO</div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a1f4073797703aa1546f3f66938318395"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">maingo::ubp::UpperBoundingSolver::UBS_USE</a></div><div class="ttdeci">UBS_USE</div><div class="ttdoc">Enum for communicating what the intended purpose of the solver is. This determines which settings are...</div><div class="ttdef"><b>Definition:</b> ubp.h:56</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_knitro_problem_html"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_knitro_problem.html">maingo::ubp::KnitroProblem</a></div><div class="ttdoc">Class for representing problems to be solved by Knitro, providing an interface to the problem definit...</div><div class="ttdef"><b>Definition:</b> knitroProblem.h:43</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_knitro_html"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_knitro.html">maingo::ubp::UbpKnitro</a></div><div class="ttdoc">Wrapper for handling the upper bounding problems by interfacing Knitro. </div><div class="ttdef"><b>Definition:</b> ubpKnitro.h:32</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></div><div class="ttdoc">Base class for wrappers for handling the upper bounding problems. </div><div class="ttdef"><b>Definition:</b> ubp.h:44</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_knitro_html_a0ebc116dd3ddaea32fb9330ee725295d"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a0ebc116dd3ddaea32fb9330ee725295d">maingo::ubp::UbpKnitro::~UbpKnitro</a></div><div class="ttdeci">~UbpKnitro()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> ubpKnitro.h:56</div></div>
+<div class="ttc" id="namespacemaingo_html_ab7a1cb5c265f8d1c287d43fec7988020"><div class="ttname"><a href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">maingo::SUBSOLVER_RETCODE</a></div><div class="ttdeci">SUBSOLVER_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the different sub-solvers (UpperBoundingSolver, LowerBoundingSolver). </div><div class="ttdef"><b>Definition:</b> returnCodes.h:36</div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a1f4073797703aa1546f3f66938318395"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">maingo::ubp::UpperBoundingSolver::UBS_USE</a></div><div class="ttdeci">UBS_USE</div><div class="ttdoc">Enum for communicating what the intended purpose of the solver is. This determines which settings are...</div><div class="ttdef"><b>Definition:</b> ubp.h:51</div></div>
 <div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_knitro_html_a25aec304d6681184a572778f8a8c8379"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a25aec304d6681184a572778f8a8c8379">maingo::ubp::UbpKnitro::_solve_nlp</a></div><div class="ttdeci">SUBSOLVER_RETCODE _solve_nlp(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, double &amp;objectiveValue, std::vector&lt; double &gt; &amp;solutionPoint)</div><div class="ttdoc">Function for actually solving the NLP sub-problem. This needs to be re-defined in derived classes to ...</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_knitro_html_ac916b5455e5ae20c5d9dd9a4006d0482"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_knitro.html#ac916b5455e5ae20c5d9dd9a4006d0482">maingo::ubp::UbpKnitro::UbpKnitro</a></div><div class="ttdeci">UbpKnitro(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, UBS_USE useIn)</div><div class="ttdoc">Constructor, stores information on the problem and initializes the local-subsolvers used.</div></div>
 <div class="ttc" id="ubp_8h_html"><div class="ttname"><a href="ubp_8h.html">ubp.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_knitro_html_ae54f2f80561a3f03efbdb107b03d93eb"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_knitro.html#ae54f2f80561a3f03efbdb107b03d93eb">maingo::ubp::UbpKnitro::_Knitro</a></div><div class="ttdeci">knitro::KTRSolver _Knitro</div><div class="ttdef"><b>Definition:</b> ubpKnitro.h:76</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_knitro_html_a59c576b8dd4282ea8c9f64f77623625f"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a59c576b8dd4282ea8c9f64f77623625f">maingo::ubp::UbpKnitro::_solverStatus</a></div><div class="ttdeci">int _solverStatus</div><div class="ttdef"><b>Definition:</b> ubpKnitro.h:78</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_knitro_html_ae54f2f80561a3f03efbdb107b03d93eb"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_knitro.html#ae54f2f80561a3f03efbdb107b03d93eb">maingo::ubp::UbpKnitro::_Knitro</a></div><div class="ttdeci">knitro::KTRSolver _Knitro</div><div class="ttdef"><b>Definition:</b> ubpKnitro.h:71</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_knitro_html_a59c576b8dd4282ea8c9f64f77623625f"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_knitro.html#a59c576b8dd4282ea8c9f64f77623625f">maingo::ubp::UbpKnitro::_solverStatus</a></div><div class="ttdeci">int _solverStatus</div><div class="ttdef"><b>Definition:</b> ubpKnitro.h:73</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -115,7 +113,7 @@ $(document).ready(function(){initNavTree('ubp_knitro_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="ubp_knitro_8h.html">ubpKnitro.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/ubp_n_lopt_8cpp.html b/doc/html/ubp_n_lopt_8cpp.html
index d9355bf0269cc28a04661a0c2578cc0f74b7271a..6d218f69a22cad1e5ec533ec26bb62b1f64b3e3b 100644
--- a/doc/html/ubp_n_lopt_8cpp.html
+++ b/doc/html/ubp_n_lopt_8cpp.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/src/ubpNLopt.cpp File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/src/ubpNLopt.cpp File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -91,7 +91,7 @@ $(document).ready(function(){initNavTree('ubp_n_lopt_8cpp.html','');});
 </div><!--header-->
 <div class="contents">
 <div class="textblock"><code>#include &quot;<a class="el" href="ubp_n_lopt_8h_source.html">ubpNLopt.h</a>&quot;</code><br />
-<code>#include &quot;<a class="el" href="exceptions_8h_source.html">exceptions.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_m_ai_n_g_o_exception_8h_source.html">MAiNGOException.h</a>&quot;</code><br />
 <code>#include &quot;<a class="el" href="ubp_evaluators_8h_source.html">ubpEvaluators.h</a>&quot;</code><br />
 </div></div><!-- contents -->
 </div><!-- doc-content -->
@@ -101,7 +101,7 @@ $(document).ready(function(){initNavTree('ubp_n_lopt_8cpp.html','');});
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="ubp_n_lopt_8cpp.html">ubpNLopt.cpp</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/ubp_n_lopt_8h.html b/doc/html/ubp_n_lopt_8h.html
index cb83a5583b5057f2ef5b9013287092e938f21a25..e2497f709ca3ba460d82fd772936f0ffc68ff531 100644
--- a/doc/html/ubp_n_lopt_8h.html
+++ b/doc/html/ubp_n_lopt_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/ubpNLopt.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/ubpNLopt.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -121,7 +121,7 @@ Namespaces</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="ubp_n_lopt_8h.html">ubpNLopt.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/ubp_n_lopt_8h_source.html b/doc/html/ubp_n_lopt_8h_source.html
index 457296af3759ad2e060f850f4582bac23e027433..aaec41232eb058ba17ec6942fa8cba93ca662f77 100644
--- a/doc/html/ubp_n_lopt_8h_source.html
+++ b/doc/html/ubp_n_lopt_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/ubpNLopt.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/ubpNLopt.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,22 +90,20 @@ $(document).ready(function(){initNavTree('ubp_n_lopt_8h_source.html','');});
 <div class="title">ubpNLopt.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="ubp_n_lopt_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file ubpNLopt.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing declaration of UbpNLopt class used for solving the</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *        upper bounding problems.</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ubp_8h.html">ubp.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;nlopt.hpp&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="keyword">namespace </span>ubp {</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html">   38</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html">UbpNLopt</a>: <span class="keyword">public</span> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">UpperBoundingSolver</a> {</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a84e83af5033d99a79f1fd1d65f6b8b7f">UbpNLopt</a>(mc::FFGraph&amp; DAG, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt;&amp; DAGvars, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt;&amp; DAGfunctions, <span class="keyword">const</span> std::vector&lt;babBase::OptimizationVariable&gt;&amp; variables,</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;             <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqSquashIn, <a class="code" href="structmaingo_1_1_settings.html">Settings</a>* settingsIn, <a class="code" href="classmaingo_1_1_logger.html">Logger</a>* loggerIn, std::vector&lt;Constraint&gt;* constraintPropertiesIn, <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> useIn);</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a07be0f105dd3dbd86e6e91ccea83ce20">_solve_nlp</a>(<span class="keyword">const</span> std::vector&lt;double&gt;&amp; lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt;&amp; upperVarBounds, <span class="keywordtype">double</span>&amp; objectiveValue, std::vector&lt;double&gt;&amp; solutionPoint);</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a5c239ec752eb75467d3776db53ff6ea7">   75</a></span>&#160;    nlopt::opt <a class="code" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a5c239ec752eb75467d3776db53ff6ea7">_NLopt</a>;       </div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#ab7265ba84cd1b3d99c4e6d79daede08a">   76</a></span>&#160;    nlopt::opt <a class="code" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#ab7265ba84cd1b3d99c4e6d79daede08a">_NLoptSubopt</a>; </div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a291c6c030054f97796aaada1f924073e">_NLopt_get_objective</a>(<span class="keyword">const</span> std::vector&lt;double&gt;&amp; x, std::vector&lt;double&gt;&amp; grad, <span class="keywordtype">void</span>* f_data);</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a467b38de92e6e595a43f9aae2169bc7a">_NLopt_get_ineq</a>(<span class="keywordtype">unsigned</span> m, <span class="keywordtype">double</span>* result, <span class="keywordtype">unsigned</span> n, <span class="keyword">const</span> <span class="keywordtype">double</span>* x, <span class="keywordtype">double</span>* grad, <span class="keywordtype">void</span>* f_data);</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#ae6382f3f5e4d846488b69e89251fad27">_NLopt_get_eq</a>(<span class="keywordtype">unsigned</span> m, <span class="keywordtype">double</span>* result, <span class="keywordtype">unsigned</span> n, <span class="keyword">const</span> <span class="keywordtype">double</span>* x, <span class="keywordtype">double</span>* grad, <span class="keywordtype">void</span>* f_data);</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    <span class="comment">// Prevent use of default copy constructor and copy assignment operator by declaring them private:</span></div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a84e83af5033d99a79f1fd1d65f6b8b7f">UbpNLopt</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html">UbpNLopt</a>&amp;);            </div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html">UbpNLopt</a>&amp; <a class="code" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#ac2fe06860e2c920acf0b7f8304a99d54">operator=</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html">UbpNLopt</a>&amp;); </div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;};</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;}    <span class="comment">// end namespace ubp</span></div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="structmaingo_1_1_settings_html"><div class="ttname"><a href="structmaingo_1_1_settings.html">maingo::Settings</a></div><div class="ttdoc">Struct for storing settings for MAiNGO.</div><div class="ttdef"><b>Definition:</b> settings.h:143</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_n_lopt_html_a291c6c030054f97796aaada1f924073e"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a291c6c030054f97796aaada1f924073e">maingo::ubp::UbpNLopt::_NLopt_get_objective</a></div><div class="ttdeci">static double _NLopt_get_objective(const std::vector&lt; double &gt; &amp;x, std::vector&lt; double &gt; &amp;grad, void *f_data)</div><div class="ttdoc">Function returning the objective value to the NLopt interface.</div><div class="ttdef"><b>Definition:</b> ubpNLopt.cpp:184</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_n_lopt_html_ab7265ba84cd1b3d99c4e6d79daede08a"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#ab7265ba84cd1b3d99c4e6d79daede08a">maingo::ubp::UbpNLopt::_NLoptSubopt</a></div><div class="ttdeci">nlopt::opt _NLoptSubopt</div><div class="ttdef"><b>Definition:</b> ubpNLopt.h:76</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_n_lopt_html_a07be0f105dd3dbd86e6e91ccea83ce20"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a07be0f105dd3dbd86e6e91ccea83ce20">maingo::ubp::UbpNLopt::_solve_nlp</a></div><div class="ttdeci">virtual SUBSOLVER_RETCODE _solve_nlp(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, double &amp;objectiveValue, std::vector&lt; double &gt; &amp;solutionPoint)</div><div class="ttdoc">Function for actually solving the NLP sub-problem.</div><div class="ttdef"><b>Definition:</b> ubpNLopt.cpp:139</div></div>
-<div class="ttc" id="classmaingo_1_1_logger_html"><div class="ttname"><a href="classmaingo_1_1_logger.html">maingo::Logger</a></div><div class="ttdoc">This class contains all logging and output information.</div><div class="ttdef"><b>Definition:</b> logger.h:101</div></div>
+<a href="ubp_n_lopt_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ubp_8h.html">ubp.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &quot;nlopt.hpp&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="keyword">namespace </span>ubp {</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html">   33</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html">UbpNLopt</a>: <span class="keyword">public</span> <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">UpperBoundingSolver</a> {</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#ae5c7ea9072ed95c5521916c756be3f0f">UbpNLopt</a>(mc::FFGraph&amp; DAG, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt;&amp; DAGvars, <span class="keyword">const</span> std::vector&lt;mc::FFVar&gt;&amp; DAGfunctions, <span class="keyword">const</span> std::vector&lt;babBase::OptimizationVariable&gt;&amp; variables,</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;             <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> neqIn, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> nineqSquashIn, std::shared_ptr&lt;Settings&gt; settingsIn, std::shared_ptr&lt;Logger&gt; loggerIn, std::shared_ptr&lt;std::vector&lt;Constraint&gt;&gt; constraintPropertiesIn, <a class="code" href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">UBS_USE</a> useIn);</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">SUBSOLVER_RETCODE</a> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a07be0f105dd3dbd86e6e91ccea83ce20">_solve_nlp</a>(<span class="keyword">const</span> std::vector&lt;double&gt;&amp; lowerVarBounds, <span class="keyword">const</span> std::vector&lt;double&gt;&amp; upperVarBounds, <span class="keywordtype">double</span>&amp; objectiveValue, std::vector&lt;double&gt;&amp; solutionPoint);</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a5c239ec752eb75467d3776db53ff6ea7">   70</a></span>&#160;    nlopt::opt <a class="code" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a5c239ec752eb75467d3776db53ff6ea7">_NLopt</a>;       </div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#ab7265ba84cd1b3d99c4e6d79daede08a">   71</a></span>&#160;    nlopt::opt <a class="code" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#ab7265ba84cd1b3d99c4e6d79daede08a">_NLoptSubopt</a>; </div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a291c6c030054f97796aaada1f924073e">_NLopt_get_objective</a>(<span class="keyword">const</span> std::vector&lt;double&gt;&amp; x, std::vector&lt;double&gt;&amp; grad, <span class="keywordtype">void</span>* f_data);</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a467b38de92e6e595a43f9aae2169bc7a">_NLopt_get_ineq</a>(<span class="keywordtype">unsigned</span> m, <span class="keywordtype">double</span>* result, <span class="keywordtype">unsigned</span> n, <span class="keyword">const</span> <span class="keywordtype">double</span>* x, <span class="keywordtype">double</span>* grad, <span class="keywordtype">void</span>* f_data);</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#ae6382f3f5e4d846488b69e89251fad27">_NLopt_get_eq</a>(<span class="keywordtype">unsigned</span> m, <span class="keywordtype">double</span>* result, <span class="keywordtype">unsigned</span> n, <span class="keyword">const</span> <span class="keywordtype">double</span>* x, <span class="keywordtype">double</span>* grad, <span class="keywordtype">void</span>* f_data);</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    <span class="comment">// Prevent use of default copy constructor and copy assignment operator by declaring them private:</span></div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#ae5c7ea9072ed95c5521916c756be3f0f">UbpNLopt</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html">UbpNLopt</a>&amp;);            </div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    <a class="code" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html">UbpNLopt</a>&amp; <a class="code" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#ac2fe06860e2c920acf0b7f8304a99d54">operator=</a>(<span class="keyword">const</span> <a class="code" href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html">UbpNLopt</a>&amp;); </div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;};</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;}    <span class="comment">// end namespace ubp</span></div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_n_lopt_html_ae5c7ea9072ed95c5521916c756be3f0f"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#ae5c7ea9072ed95c5521916c756be3f0f">maingo::ubp::UbpNLopt::UbpNLopt</a></div><div class="ttdeci">UbpNLopt(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr&lt; Settings &gt; settingsIn, std::shared_ptr&lt; Logger &gt; loggerIn, std::shared_ptr&lt; std::vector&lt; Constraint &gt;&gt; constraintPropertiesIn, UBS_USE useIn)</div><div class="ttdoc">Constructor, stores information on the problem and initializes the local-subsolvers used...</div><div class="ttdef"><b>Definition:</b> ubpNLopt.cpp:23</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_n_lopt_html_a291c6c030054f97796aaada1f924073e"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a291c6c030054f97796aaada1f924073e">maingo::ubp::UbpNLopt::_NLopt_get_objective</a></div><div class="ttdeci">static double _NLopt_get_objective(const std::vector&lt; double &gt; &amp;x, std::vector&lt; double &gt; &amp;grad, void *f_data)</div><div class="ttdoc">Function returning the objective value to the NLopt interface. </div><div class="ttdef"><b>Definition:</b> ubpNLopt.cpp:173</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_n_lopt_html_ab7265ba84cd1b3d99c4e6d79daede08a"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#ab7265ba84cd1b3d99c4e6d79daede08a">maingo::ubp::UbpNLopt::_NLoptSubopt</a></div><div class="ttdeci">nlopt::opt _NLoptSubopt</div><div class="ttdef"><b>Definition:</b> ubpNLopt.h:71</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_n_lopt_html_a07be0f105dd3dbd86e6e91ccea83ce20"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a07be0f105dd3dbd86e6e91ccea83ce20">maingo::ubp::UbpNLopt::_solve_nlp</a></div><div class="ttdeci">virtual SUBSOLVER_RETCODE _solve_nlp(const std::vector&lt; double &gt; &amp;lowerVarBounds, const std::vector&lt; double &gt; &amp;upperVarBounds, double &amp;objectiveValue, std::vector&lt; double &gt; &amp;solutionPoint)</div><div class="ttdoc">Function for actually solving the NLP sub-problem. </div><div class="ttdef"><b>Definition:</b> ubpNLopt.cpp:128</div></div>
 <div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_n_lopt_html_ac2fe06860e2c920acf0b7f8304a99d54"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#ac2fe06860e2c920acf0b7f8304a99d54">maingo::ubp::UbpNLopt::operator=</a></div><div class="ttdeci">UbpNLopt &amp; operator=(const UbpNLopt &amp;)</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></div><div class="ttdoc">Base class for wrappers for handling the upper bounding problems.</div><div class="ttdef"><b>Definition:</b> ubp.h:49</div></div>
-<div class="ttc" id="namespacemaingo_html_ab7a1cb5c265f8d1c287d43fec7988020"><div class="ttname"><a href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">maingo::SUBSOLVER_RETCODE</a></div><div class="ttdeci">SUBSOLVER_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the different sub-solvers (UpperBoundingSolver,...</div><div class="ttdef"><b>Definition:</b> returnCodes.h:40</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_n_lopt_html_a5c239ec752eb75467d3776db53ff6ea7"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a5c239ec752eb75467d3776db53ff6ea7">maingo::ubp::UbpNLopt::_NLopt</a></div><div class="ttdeci">nlopt::opt _NLopt</div><div class="ttdef"><b>Definition:</b> ubpNLopt.h:75</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_n_lopt_html_ae6382f3f5e4d846488b69e89251fad27"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#ae6382f3f5e4d846488b69e89251fad27">maingo::ubp::UbpNLopt::_NLopt_get_eq</a></div><div class="ttdeci">static void _NLopt_get_eq(unsigned m, double *result, unsigned n, const double *x, double *grad, void *f_data)</div><div class="ttdoc">Function providing gradient and value information on equalities to the NLopt interface.</div><div class="ttdef"><b>Definition:</b> ubpNLopt.cpp:214</div></div>
-<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO</div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_n_lopt_html_a84e83af5033d99a79f1fd1d65f6b8b7f"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a84e83af5033d99a79f1fd1d65f6b8b7f">maingo::ubp::UbpNLopt::UbpNLopt</a></div><div class="ttdeci">UbpNLopt(mc::FFGraph &amp;DAG, const std::vector&lt; mc::FFVar &gt; &amp;DAGvars, const std::vector&lt; mc::FFVar &gt; &amp;DAGfunctions, const std::vector&lt; babBase::OptimizationVariable &gt; &amp;variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector&lt; Constraint &gt; *constraintPropertiesIn, UBS_USE useIn)</div><div class="ttdoc">Constructor, stores information on the problem and initializes the local-subsolvers used.</div><div class="ttdef"><b>Definition:</b> ubpNLopt.cpp:28</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a1f4073797703aa1546f3f66938318395"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">maingo::ubp::UpperBoundingSolver::UBS_USE</a></div><div class="ttdeci">UBS_USE</div><div class="ttdoc">Enum for communicating what the intended purpose of the solver is. This determines which settings are...</div><div class="ttdef"><b>Definition:</b> ubp.h:56</div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_n_lopt_html"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html">maingo::ubp::UbpNLopt</a></div><div class="ttdoc">Wrapper for handling the upper bounding problems by interfacing NLopt.</div><div class="ttdef"><b>Definition:</b> ubpNLopt.h:38</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html">maingo::ubp::UpperBoundingSolver</a></div><div class="ttdoc">Base class for wrappers for handling the upper bounding problems. </div><div class="ttdef"><b>Definition:</b> ubp.h:44</div></div>
+<div class="ttc" id="namespacemaingo_html_ab7a1cb5c265f8d1c287d43fec7988020"><div class="ttname"><a href="namespacemaingo.html#ab7a1cb5c265f8d1c287d43fec7988020">maingo::SUBSOLVER_RETCODE</a></div><div class="ttdeci">SUBSOLVER_RETCODE</div><div class="ttdoc">Enum for representing the return codes returned by the different sub-solvers (UpperBoundingSolver, LowerBoundingSolver). </div><div class="ttdef"><b>Definition:</b> returnCodes.h:36</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_n_lopt_html_a5c239ec752eb75467d3776db53ff6ea7"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a5c239ec752eb75467d3776db53ff6ea7">maingo::ubp::UbpNLopt::_NLopt</a></div><div class="ttdeci">nlopt::opt _NLopt</div><div class="ttdef"><b>Definition:</b> ubpNLopt.h:70</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_n_lopt_html_ae6382f3f5e4d846488b69e89251fad27"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#ae6382f3f5e4d846488b69e89251fad27">maingo::ubp::UbpNLopt::_NLopt_get_eq</a></div><div class="ttdeci">static void _NLopt_get_eq(unsigned m, double *result, unsigned n, const double *x, double *grad, void *f_data)</div><div class="ttdoc">Function providing gradient and value information on equalities to the NLopt interface. </div><div class="ttdef"><b>Definition:</b> ubpNLopt.cpp:203</div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_upper_bounding_solver_html_a1f4073797703aa1546f3f66938318395"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_upper_bounding_solver.html#a1f4073797703aa1546f3f66938318395">maingo::ubp::UpperBoundingSolver::UBS_USE</a></div><div class="ttdeci">UBS_USE</div><div class="ttdoc">Enum for communicating what the intended purpose of the solver is. This determines which settings are...</div><div class="ttdef"><b>Definition:</b> ubp.h:51</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_n_lopt_html"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html">maingo::ubp::UbpNLopt</a></div><div class="ttdoc">Wrapper for handling the upper bounding problems by interfacing NLopt. </div><div class="ttdef"><b>Definition:</b> ubpNLopt.h:33</div></div>
 <div class="ttc" id="ubp_8h_html"><div class="ttname"><a href="ubp_8h.html">ubp.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_n_lopt_html_a467b38de92e6e595a43f9aae2169bc7a"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a467b38de92e6e595a43f9aae2169bc7a">maingo::ubp::UbpNLopt::_NLopt_get_ineq</a></div><div class="ttdeci">static void _NLopt_get_ineq(unsigned m, double *result, unsigned n, const double *x, double *grad, void *f_data)</div><div class="ttdoc">Function providing gradient and value information on inequalities to the NLopt interface.</div><div class="ttdef"><b>Definition:</b> ubpNLopt.cpp:199</div></div>
+<div class="ttc" id="classmaingo_1_1ubp_1_1_ubp_n_lopt_html_a467b38de92e6e595a43f9aae2169bc7a"><div class="ttname"><a href="classmaingo_1_1ubp_1_1_ubp_n_lopt.html#a467b38de92e6e595a43f9aae2169bc7a">maingo::ubp::UbpNLopt::_NLopt_get_ineq</a></div><div class="ttdeci">static void _NLopt_get_ineq(unsigned m, double *result, unsigned n, const double *x, double *grad, void *f_data)</div><div class="ttdoc">Function providing gradient and value information on inequalities to the NLopt interface. </div><div class="ttdef"><b>Definition:</b> ubpNLopt.cpp:188</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -114,7 +112,7 @@ $(document).ready(function(){initNavTree('ubp_n_lopt_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="ubp_n_lopt_8h.html">ubpNLopt.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/ubp_quad_expr_8h.html b/doc/html/ubp_quad_expr_8h.html
index bbb1adc9465280d83362e60eea423b527becf8b2..d7e0f18b2d96751ef71d5df504fff5123322c918 100644
--- a/doc/html/ubp_quad_expr_8h.html
+++ b/doc/html/ubp_quad_expr_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/ubpQuadExpr.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/ubpQuadExpr.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -94,7 +94,7 @@ $(document).ready(function(){initNavTree('ubp_quad_expr_8h.html','');});
 <div class="title">ubpQuadExpr.h File Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="textblock"><code>#include &quot;<a class="el" href="exceptions_8h_source.html">exceptions.h</a>&quot;</code><br />
+<div class="textblock"><code>#include &quot;<a class="el" href="_m_ai_n_g_o_exception_8h_source.html">MAiNGOException.h</a>&quot;</code><br />
 <code>#include &quot;mcop.hpp&quot;</code><br />
 <code>#include &lt;vector&gt;</code><br />
 </div>
@@ -141,77 +141,77 @@ Functions</h2></td></tr>
 <tr class="memitem:a742b207c46fd0870d53d6d13366e8ebc"><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::vector&lt; double &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#a742b207c46fd0870d53d6d13366e8ebc">maingo::ubp::operator-</a> (const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;in1, const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;in2)</td></tr>
 <tr class="memdesc:a742b207c46fd0870d53d6d13366e8ebc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator- for subtraction of two double matrices.  <a href="namespacemaingo_1_1ubp.html#a742b207c46fd0870d53d6d13366e8ebc">More...</a><br /></td></tr>
 <tr class="separator:a742b207c46fd0870d53d6d13366e8ebc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5c67ac181e81a6949e8ecb8a870782e2"><td class="memItemLeft" align="right" valign="top">std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#a5c67ac181e81a6949e8ecb8a870782e2">maingo::ubp::operator *</a> (const std::vector&lt; double &gt; &amp;in1, const double in2)</td></tr>
-<tr class="memdesc:a5c67ac181e81a6949e8ecb8a870782e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator* for multiplication of a double vector with a double constant.  <a href="namespacemaingo_1_1ubp.html#a5c67ac181e81a6949e8ecb8a870782e2">More...</a><br /></td></tr>
-<tr class="separator:a5c67ac181e81a6949e8ecb8a870782e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad3cba31c2697ea5b09bacbd997c9f296"><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::vector&lt; double &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#ad3cba31c2697ea5b09bacbd997c9f296">maingo::ubp::operator *</a> (const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;in1, const double in2)</td></tr>
-<tr class="memdesc:ad3cba31c2697ea5b09bacbd997c9f296"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator* for multiplication of a double matrix with a double constant.  <a href="namespacemaingo_1_1ubp.html#ad3cba31c2697ea5b09bacbd997c9f296">More...</a><br /></td></tr>
-<tr class="separator:ad3cba31c2697ea5b09bacbd997c9f296"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a63efcd0b2ad1996c20545e1481f0835a"><td class="memItemLeft" align="right" valign="top">std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#a63efcd0b2ad1996c20545e1481f0835a">maingo::ubp::operator*</a> (const std::vector&lt; double &gt; &amp;in1, const double in2)</td></tr>
+<tr class="memdesc:a63efcd0b2ad1996c20545e1481f0835a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator* for multiplication of a double vector with a double constant.  <a href="namespacemaingo_1_1ubp.html#a63efcd0b2ad1996c20545e1481f0835a">More...</a><br /></td></tr>
+<tr class="separator:a63efcd0b2ad1996c20545e1481f0835a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa896d2608e6152fd66b0ec6031a083ef"><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::vector&lt; double &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#aa896d2608e6152fd66b0ec6031a083ef">maingo::ubp::operator*</a> (const std::vector&lt; std::vector&lt; double &gt;&gt; &amp;in1, const double in2)</td></tr>
+<tr class="memdesc:aa896d2608e6152fd66b0ec6031a083ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator* for multiplication of a double matrix with a double constant.  <a href="namespacemaingo_1_1ubp.html#aa896d2608e6152fd66b0ec6031a083ef">More...</a><br /></td></tr>
+<tr class="separator:aa896d2608e6152fd66b0ec6031a083ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a34d96b5d5baa870bf3c50543044f17fa"><td class="memItemLeft" align="right" valign="top">UbpQuadExpr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#a34d96b5d5baa870bf3c50543044f17fa">maingo::ubp::operator+</a> (const UbpQuadExpr &amp;in)</td></tr>
-<tr class="memdesc:a34d96b5d5baa870bf3c50543044f17fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator+ for <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a>.  <a href="namespacemaingo_1_1ubp.html#a34d96b5d5baa870bf3c50543044f17fa">More...</a><br /></td></tr>
+<tr class="memdesc:a34d96b5d5baa870bf3c50543044f17fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator+ for <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a>.  <a href="namespacemaingo_1_1ubp.html#a34d96b5d5baa870bf3c50543044f17fa">More...</a><br /></td></tr>
 <tr class="separator:a34d96b5d5baa870bf3c50543044f17fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a71bc9598739d457c38b6c8620fa70e6a"><td class="memItemLeft" align="right" valign="top">UbpQuadExpr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#a71bc9598739d457c38b6c8620fa70e6a">maingo::ubp::operator+</a> (const UbpQuadExpr &amp;in1, const UbpQuadExpr &amp;in2)</td></tr>
-<tr class="memdesc:a71bc9598739d457c38b6c8620fa70e6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator+ for two <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> objects.  <a href="namespacemaingo_1_1ubp.html#a71bc9598739d457c38b6c8620fa70e6a">More...</a><br /></td></tr>
+<tr class="memdesc:a71bc9598739d457c38b6c8620fa70e6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator+ for two <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> objects.  <a href="namespacemaingo_1_1ubp.html#a71bc9598739d457c38b6c8620fa70e6a">More...</a><br /></td></tr>
 <tr class="separator:a71bc9598739d457c38b6c8620fa70e6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a5d61a1b0104c207a63c55da96bbe28bf"><td class="memItemLeft" align="right" valign="top">UbpQuadExpr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#a5d61a1b0104c207a63c55da96bbe28bf">maingo::ubp::operator+</a> (const UbpQuadExpr &amp;in1, const double &amp;in2)</td></tr>
-<tr class="memdesc:a5d61a1b0104c207a63c55da96bbe28bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator+ for addition of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and a double.  <a href="namespacemaingo_1_1ubp.html#a5d61a1b0104c207a63c55da96bbe28bf">More...</a><br /></td></tr>
+<tr class="memdesc:a5d61a1b0104c207a63c55da96bbe28bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator+ for addition of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and a double.  <a href="namespacemaingo_1_1ubp.html#a5d61a1b0104c207a63c55da96bbe28bf">More...</a><br /></td></tr>
 <tr class="separator:a5d61a1b0104c207a63c55da96bbe28bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ad836c3ed6766c075161c027b5eca6e25"><td class="memItemLeft" align="right" valign="top">UbpQuadExpr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#ad836c3ed6766c075161c027b5eca6e25">maingo::ubp::operator+</a> (const UbpQuadExpr &amp;in1, const int &amp;in2)</td></tr>
-<tr class="memdesc:ad836c3ed6766c075161c027b5eca6e25"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator+ for addition of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and an int.  <a href="namespacemaingo_1_1ubp.html#ad836c3ed6766c075161c027b5eca6e25">More...</a><br /></td></tr>
+<tr class="memdesc:ad836c3ed6766c075161c027b5eca6e25"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator+ for addition of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and an int.  <a href="namespacemaingo_1_1ubp.html#ad836c3ed6766c075161c027b5eca6e25">More...</a><br /></td></tr>
 <tr class="separator:ad836c3ed6766c075161c027b5eca6e25"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ad4f8e6ebfcd8fc7e3fc7e7b4926892ac"><td class="memItemLeft" align="right" valign="top">UbpQuadExpr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#ad4f8e6ebfcd8fc7e3fc7e7b4926892ac">maingo::ubp::operator+</a> (const double &amp;in1, const UbpQuadExpr &amp;in2)</td></tr>
-<tr class="memdesc:ad4f8e6ebfcd8fc7e3fc7e7b4926892ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator+ for addition of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and a double.  <a href="namespacemaingo_1_1ubp.html#ad4f8e6ebfcd8fc7e3fc7e7b4926892ac">More...</a><br /></td></tr>
+<tr class="memdesc:ad4f8e6ebfcd8fc7e3fc7e7b4926892ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator+ for addition of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and a double.  <a href="namespacemaingo_1_1ubp.html#ad4f8e6ebfcd8fc7e3fc7e7b4926892ac">More...</a><br /></td></tr>
 <tr class="separator:ad4f8e6ebfcd8fc7e3fc7e7b4926892ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a8f178973e405455b0384fd128b3f1be7"><td class="memItemLeft" align="right" valign="top">UbpQuadExpr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#a8f178973e405455b0384fd128b3f1be7">maingo::ubp::operator+</a> (const int &amp;in1, const UbpQuadExpr &amp;in2)</td></tr>
-<tr class="memdesc:a8f178973e405455b0384fd128b3f1be7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator+ for addition of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and an int.  <a href="namespacemaingo_1_1ubp.html#a8f178973e405455b0384fd128b3f1be7">More...</a><br /></td></tr>
+<tr class="memdesc:a8f178973e405455b0384fd128b3f1be7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator+ for addition of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and an int.  <a href="namespacemaingo_1_1ubp.html#a8f178973e405455b0384fd128b3f1be7">More...</a><br /></td></tr>
 <tr class="separator:a8f178973e405455b0384fd128b3f1be7"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ac85543a4274998b12aca4e184764a4a1"><td class="memItemLeft" align="right" valign="top">UbpQuadExpr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#ac85543a4274998b12aca4e184764a4a1">maingo::ubp::operator-</a> (const UbpQuadExpr &amp;in)</td></tr>
-<tr class="memdesc:ac85543a4274998b12aca4e184764a4a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator- for <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a>.  <a href="namespacemaingo_1_1ubp.html#ac85543a4274998b12aca4e184764a4a1">More...</a><br /></td></tr>
+<tr class="memdesc:ac85543a4274998b12aca4e184764a4a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator- for <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a>.  <a href="namespacemaingo_1_1ubp.html#ac85543a4274998b12aca4e184764a4a1">More...</a><br /></td></tr>
 <tr class="separator:ac85543a4274998b12aca4e184764a4a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ac33b3f1dcbbfc89678ddd9d83b12c33e"><td class="memItemLeft" align="right" valign="top">UbpQuadExpr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#ac33b3f1dcbbfc89678ddd9d83b12c33e">maingo::ubp::operator-</a> (const UbpQuadExpr &amp;in1, const UbpQuadExpr &amp;in2)</td></tr>
-<tr class="memdesc:ac33b3f1dcbbfc89678ddd9d83b12c33e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator- for two <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> objects.  <a href="namespacemaingo_1_1ubp.html#ac33b3f1dcbbfc89678ddd9d83b12c33e">More...</a><br /></td></tr>
+<tr class="memdesc:ac33b3f1dcbbfc89678ddd9d83b12c33e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator- for two <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> objects.  <a href="namespacemaingo_1_1ubp.html#ac33b3f1dcbbfc89678ddd9d83b12c33e">More...</a><br /></td></tr>
 <tr class="separator:ac33b3f1dcbbfc89678ddd9d83b12c33e"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ac39deeba0da11c5b6460085c0d9e699c"><td class="memItemLeft" align="right" valign="top">UbpQuadExpr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#ac39deeba0da11c5b6460085c0d9e699c">maingo::ubp::operator-</a> (const UbpQuadExpr &amp;in1, const double &amp;in2)</td></tr>
-<tr class="memdesc:ac39deeba0da11c5b6460085c0d9e699c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator- for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and a double.  <a href="namespacemaingo_1_1ubp.html#ac39deeba0da11c5b6460085c0d9e699c">More...</a><br /></td></tr>
+<tr class="memdesc:ac39deeba0da11c5b6460085c0d9e699c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator- for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and a double.  <a href="namespacemaingo_1_1ubp.html#ac39deeba0da11c5b6460085c0d9e699c">More...</a><br /></td></tr>
 <tr class="separator:ac39deeba0da11c5b6460085c0d9e699c"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aa6cf0d34878dfbcc39ede6d5e3911612"><td class="memItemLeft" align="right" valign="top">UbpQuadExpr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#aa6cf0d34878dfbcc39ede6d5e3911612">maingo::ubp::operator-</a> (const UbpQuadExpr &amp;in1, const int &amp;in2)</td></tr>
-<tr class="memdesc:aa6cf0d34878dfbcc39ede6d5e3911612"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator- for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and an int.  <a href="namespacemaingo_1_1ubp.html#aa6cf0d34878dfbcc39ede6d5e3911612">More...</a><br /></td></tr>
+<tr class="memdesc:aa6cf0d34878dfbcc39ede6d5e3911612"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator- for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and an int.  <a href="namespacemaingo_1_1ubp.html#aa6cf0d34878dfbcc39ede6d5e3911612">More...</a><br /></td></tr>
 <tr class="separator:aa6cf0d34878dfbcc39ede6d5e3911612"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a32aa5e9142e01cdd969ed7bc97324a6f"><td class="memItemLeft" align="right" valign="top">UbpQuadExpr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#a32aa5e9142e01cdd969ed7bc97324a6f">maingo::ubp::operator-</a> (const double &amp;in1, const UbpQuadExpr &amp;in2)</td></tr>
-<tr class="memdesc:a32aa5e9142e01cdd969ed7bc97324a6f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator- for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and a double.  <a href="namespacemaingo_1_1ubp.html#a32aa5e9142e01cdd969ed7bc97324a6f">More...</a><br /></td></tr>
+<tr class="memdesc:a32aa5e9142e01cdd969ed7bc97324a6f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator- for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and a double.  <a href="namespacemaingo_1_1ubp.html#a32aa5e9142e01cdd969ed7bc97324a6f">More...</a><br /></td></tr>
 <tr class="separator:a32aa5e9142e01cdd969ed7bc97324a6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ab9fceb07e4c759872241321cdd48e269"><td class="memItemLeft" align="right" valign="top">UbpQuadExpr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#ab9fceb07e4c759872241321cdd48e269">maingo::ubp::operator-</a> (const int &amp;in1, const UbpQuadExpr &amp;in2)</td></tr>
-<tr class="memdesc:ab9fceb07e4c759872241321cdd48e269"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator- for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and an int.  <a href="namespacemaingo_1_1ubp.html#ab9fceb07e4c759872241321cdd48e269">More...</a><br /></td></tr>
+<tr class="memdesc:ab9fceb07e4c759872241321cdd48e269"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator- for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and an int.  <a href="namespacemaingo_1_1ubp.html#ab9fceb07e4c759872241321cdd48e269">More...</a><br /></td></tr>
 <tr class="separator:ab9fceb07e4c759872241321cdd48e269"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab613e54b12d7fb8a43156f91aa434402"><td class="memItemLeft" align="right" valign="top">UbpQuadExpr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#ab613e54b12d7fb8a43156f91aa434402">maingo::ubp::operator *</a> (const UbpQuadExpr &amp;in1, const UbpQuadExpr &amp;in2)</td></tr>
-<tr class="memdesc:ab613e54b12d7fb8a43156f91aa434402"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator* for two <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> objects.  <a href="namespacemaingo_1_1ubp.html#ab613e54b12d7fb8a43156f91aa434402">More...</a><br /></td></tr>
-<tr class="separator:ab613e54b12d7fb8a43156f91aa434402"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a478444c21260358392dd33b31f713a9c"><td class="memItemLeft" align="right" valign="top">UbpQuadExpr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#a478444c21260358392dd33b31f713a9c">maingo::ubp::operator *</a> (const UbpQuadExpr &amp;in1, const double in2)</td></tr>
-<tr class="memdesc:a478444c21260358392dd33b31f713a9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator* for multiplication of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and a double.  <a href="namespacemaingo_1_1ubp.html#a478444c21260358392dd33b31f713a9c">More...</a><br /></td></tr>
-<tr class="separator:a478444c21260358392dd33b31f713a9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aac1334d57e5f2540b7bfa6cd37693205"><td class="memItemLeft" align="right" valign="top">UbpQuadExpr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#aac1334d57e5f2540b7bfa6cd37693205">maingo::ubp::operator *</a> (const UbpQuadExpr &amp;in1, const int in2)</td></tr>
-<tr class="memdesc:aac1334d57e5f2540b7bfa6cd37693205"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator* for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and an int.  <a href="namespacemaingo_1_1ubp.html#aac1334d57e5f2540b7bfa6cd37693205">More...</a><br /></td></tr>
-<tr class="separator:aac1334d57e5f2540b7bfa6cd37693205"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac90c68b5af595a7612a1149d2cc0c9b9"><td class="memItemLeft" align="right" valign="top">UbpQuadExpr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#ac90c68b5af595a7612a1149d2cc0c9b9">maingo::ubp::operator *</a> (const double in1, const UbpQuadExpr &amp;in2)</td></tr>
-<tr class="memdesc:ac90c68b5af595a7612a1149d2cc0c9b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator* for multiplication of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and a double.  <a href="namespacemaingo_1_1ubp.html#ac90c68b5af595a7612a1149d2cc0c9b9">More...</a><br /></td></tr>
-<tr class="separator:ac90c68b5af595a7612a1149d2cc0c9b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0e92f83ac29ec3f83eeb2efe88f556c3"><td class="memItemLeft" align="right" valign="top">UbpQuadExpr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#a0e92f83ac29ec3f83eeb2efe88f556c3">maingo::ubp::operator *</a> (const int in1, const UbpQuadExpr &amp;in2)</td></tr>
-<tr class="memdesc:a0e92f83ac29ec3f83eeb2efe88f556c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator* for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> and an int.  <a href="namespacemaingo_1_1ubp.html#a0e92f83ac29ec3f83eeb2efe88f556c3">More...</a><br /></td></tr>
-<tr class="separator:a0e92f83ac29ec3f83eeb2efe88f556c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7731fb6c5c16ba843f8b36512c3f7f0c"><td class="memItemLeft" align="right" valign="top">UbpQuadExpr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#a7731fb6c5c16ba843f8b36512c3f7f0c">maingo::ubp::operator*</a> (const UbpQuadExpr &amp;in1, const UbpQuadExpr &amp;in2)</td></tr>
+<tr class="memdesc:a7731fb6c5c16ba843f8b36512c3f7f0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator* for two <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> objects.  <a href="namespacemaingo_1_1ubp.html#a7731fb6c5c16ba843f8b36512c3f7f0c">More...</a><br /></td></tr>
+<tr class="separator:a7731fb6c5c16ba843f8b36512c3f7f0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa3340e4491d298e5f1388853c9c183db"><td class="memItemLeft" align="right" valign="top">UbpQuadExpr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#aa3340e4491d298e5f1388853c9c183db">maingo::ubp::operator*</a> (const UbpQuadExpr &amp;in1, const double in2)</td></tr>
+<tr class="memdesc:aa3340e4491d298e5f1388853c9c183db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator* for multiplication of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and a double.  <a href="namespacemaingo_1_1ubp.html#aa3340e4491d298e5f1388853c9c183db">More...</a><br /></td></tr>
+<tr class="separator:aa3340e4491d298e5f1388853c9c183db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aac93aa0207fe1de9f3a73b4985f96343"><td class="memItemLeft" align="right" valign="top">UbpQuadExpr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#aac93aa0207fe1de9f3a73b4985f96343">maingo::ubp::operator*</a> (const UbpQuadExpr &amp;in1, const int in2)</td></tr>
+<tr class="memdesc:aac93aa0207fe1de9f3a73b4985f96343"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator* for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and an int.  <a href="namespacemaingo_1_1ubp.html#aac93aa0207fe1de9f3a73b4985f96343">More...</a><br /></td></tr>
+<tr class="separator:aac93aa0207fe1de9f3a73b4985f96343"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7d5d0a8e327941d11246bfdb428239e7"><td class="memItemLeft" align="right" valign="top">UbpQuadExpr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#a7d5d0a8e327941d11246bfdb428239e7">maingo::ubp::operator*</a> (const double in1, const UbpQuadExpr &amp;in2)</td></tr>
+<tr class="memdesc:a7d5d0a8e327941d11246bfdb428239e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator* for multiplication of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and a double.  <a href="namespacemaingo_1_1ubp.html#a7d5d0a8e327941d11246bfdb428239e7">More...</a><br /></td></tr>
+<tr class="separator:a7d5d0a8e327941d11246bfdb428239e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4e5d8a29639dd84a703944c7489b0b84"><td class="memItemLeft" align="right" valign="top">UbpQuadExpr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#a4e5d8a29639dd84a703944c7489b0b84">maingo::ubp::operator*</a> (const int in1, const UbpQuadExpr &amp;in2)</td></tr>
+<tr class="memdesc:a4e5d8a29639dd84a703944c7489b0b84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator* for subtraction of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> and an int.  <a href="namespacemaingo_1_1ubp.html#a4e5d8a29639dd84a703944c7489b0b84">More...</a><br /></td></tr>
+<tr class="separator:a4e5d8a29639dd84a703944c7489b0b84"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ad3f555c68f9b3ae1ad075e914317afd5"><td class="memItemLeft" align="right" valign="top">UbpQuadExpr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#ad3f555c68f9b3ae1ad075e914317afd5">maingo::ubp::operator/</a> (const UbpQuadExpr &amp;in1, const UbpQuadExpr &amp;in2)</td></tr>
-<tr class="memdesc:ad3f555c68f9b3ae1ad075e914317afd5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator/ for two <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a>.  <a href="namespacemaingo_1_1ubp.html#ad3f555c68f9b3ae1ad075e914317afd5">More...</a><br /></td></tr>
+<tr class="memdesc:ad3f555c68f9b3ae1ad075e914317afd5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator/ for two <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a>.  <a href="namespacemaingo_1_1ubp.html#ad3f555c68f9b3ae1ad075e914317afd5">More...</a><br /></td></tr>
 <tr class="separator:ad3f555c68f9b3ae1ad075e914317afd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a1bdea6d9e43b0b3b4950db2888f59180"><td class="memItemLeft" align="right" valign="top">UbpQuadExpr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#a1bdea6d9e43b0b3b4950db2888f59180">maingo::ubp::operator/</a> (const UbpQuadExpr &amp;in1, const double in2)</td></tr>
-<tr class="memdesc:a1bdea6d9e43b0b3b4950db2888f59180"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator/ for division of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> by a double.  <a href="namespacemaingo_1_1ubp.html#a1bdea6d9e43b0b3b4950db2888f59180">More...</a><br /></td></tr>
+<tr class="memdesc:a1bdea6d9e43b0b3b4950db2888f59180"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator/ for division of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> by a double.  <a href="namespacemaingo_1_1ubp.html#a1bdea6d9e43b0b3b4950db2888f59180">More...</a><br /></td></tr>
 <tr class="separator:a1bdea6d9e43b0b3b4950db2888f59180"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a5854670509a4af23a920acce4f19748c"><td class="memItemLeft" align="right" valign="top">UbpQuadExpr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#a5854670509a4af23a920acce4f19748c">maingo::ubp::operator/</a> (const UbpQuadExpr &amp;in1, const int in2)</td></tr>
-<tr class="memdesc:a5854670509a4af23a920acce4f19748c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator/ for division of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a> by a double.  <a href="namespacemaingo_1_1ubp.html#a5854670509a4af23a920acce4f19748c">More...</a><br /></td></tr>
+<tr class="memdesc:a5854670509a4af23a920acce4f19748c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator/ for division of an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a> by a double.  <a href="namespacemaingo_1_1ubp.html#a5854670509a4af23a920acce4f19748c">More...</a><br /></td></tr>
 <tr class="separator:a5854670509a4af23a920acce4f19748c"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ae7c5689bc8931b7ae4216f810dddb5d3"><td class="memItemLeft" align="right" valign="top">UbpQuadExpr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#ae7c5689bc8931b7ae4216f810dddb5d3">maingo::ubp::operator/</a> (const double in1, const UbpQuadExpr &amp;in2)</td></tr>
-<tr class="memdesc:ae7c5689bc8931b7ae4216f810dddb5d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator/ for division of a double by an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a>.  <a href="namespacemaingo_1_1ubp.html#ae7c5689bc8931b7ae4216f810dddb5d3">More...</a><br /></td></tr>
+<tr class="memdesc:ae7c5689bc8931b7ae4216f810dddb5d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator/ for division of a double by an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a>.  <a href="namespacemaingo_1_1ubp.html#ae7c5689bc8931b7ae4216f810dddb5d3">More...</a><br /></td></tr>
 <tr class="separator:ae7c5689bc8931b7ae4216f810dddb5d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aefd918702d5ff67b444a1b5184a2ba78"><td class="memItemLeft" align="right" valign="top">UbpQuadExpr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemaingo_1_1ubp.html#aefd918702d5ff67b444a1b5184a2ba78">maingo::ubp::operator/</a> (const int in1, const UbpQuadExpr &amp;in2)</td></tr>
-<tr class="memdesc:aefd918702d5ff67b444a1b5184a2ba78"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator/ for division of an int by an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....">UbpQuadExpr</a>.  <a href="namespacemaingo_1_1ubp.html#aefd918702d5ff67b444a1b5184a2ba78">More...</a><br /></td></tr>
+<tr class="memdesc:aefd918702d5ff67b444a1b5184a2ba78"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operator/ for division of an int by an <a class="el" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html" title="Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. ">UbpQuadExpr</a>.  <a href="namespacemaingo_1_1ubp.html#aefd918702d5ff67b444a1b5184a2ba78">More...</a><br /></td></tr>
 <tr class="separator:aefd918702d5ff67b444a1b5184a2ba78"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 </div><!-- contents -->
@@ -222,7 +222,7 @@ Functions</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="ubp_quad_expr_8h.html">ubpQuadExpr.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/ubp_quad_expr_8h.js b/doc/html/ubp_quad_expr_8h.js
index 794a744bc46ef66159a86ba3efcaa7d8402a5618..0c5348f85629544fc363b5f1acc4b10ef1242dbd 100644
--- a/doc/html/ubp_quad_expr_8h.js
+++ b/doc/html/ubp_quad_expr_8h.js
@@ -2,13 +2,13 @@ var ubp_quad_expr_8h =
 [
     [ "UbpQuadExpr", "structmaingo_1_1ubp_1_1_ubp_quad_expr.html", "structmaingo_1_1ubp_1_1_ubp_quad_expr" ],
     [ "Op< maingo::ubp::UbpQuadExpr >", "structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html", "structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4" ],
-    [ "operator *", "ubp_quad_expr_8h.html#a5c67ac181e81a6949e8ecb8a870782e2", null ],
-    [ "operator *", "ubp_quad_expr_8h.html#ad3cba31c2697ea5b09bacbd997c9f296", null ],
-    [ "operator *", "ubp_quad_expr_8h.html#ab613e54b12d7fb8a43156f91aa434402", null ],
-    [ "operator *", "ubp_quad_expr_8h.html#a478444c21260358392dd33b31f713a9c", null ],
-    [ "operator *", "ubp_quad_expr_8h.html#aac1334d57e5f2540b7bfa6cd37693205", null ],
-    [ "operator *", "ubp_quad_expr_8h.html#ac90c68b5af595a7612a1149d2cc0c9b9", null ],
-    [ "operator *", "ubp_quad_expr_8h.html#a0e92f83ac29ec3f83eeb2efe88f556c3", null ],
+    [ "operator*", "ubp_quad_expr_8h.html#a63efcd0b2ad1996c20545e1481f0835a", null ],
+    [ "operator*", "ubp_quad_expr_8h.html#aa896d2608e6152fd66b0ec6031a083ef", null ],
+    [ "operator*", "ubp_quad_expr_8h.html#a7731fb6c5c16ba843f8b36512c3f7f0c", null ],
+    [ "operator*", "ubp_quad_expr_8h.html#aa3340e4491d298e5f1388853c9c183db", null ],
+    [ "operator*", "ubp_quad_expr_8h.html#aac93aa0207fe1de9f3a73b4985f96343", null ],
+    [ "operator*", "ubp_quad_expr_8h.html#a7d5d0a8e327941d11246bfdb428239e7", null ],
+    [ "operator*", "ubp_quad_expr_8h.html#a4e5d8a29639dd84a703944c7489b0b84", null ],
     [ "operator+", "ubp_quad_expr_8h.html#a10c5d0d8fe3f2daa26131fe923cdd9bc", null ],
     [ "operator+", "ubp_quad_expr_8h.html#aa428e1d300a34bef5231c161b0e08597", null ],
     [ "operator+", "ubp_quad_expr_8h.html#a34d96b5d5baa870bf3c50543044f17fa", null ],
diff --git a/doc/html/ubp_quad_expr_8h_source.html b/doc/html/ubp_quad_expr_8h_source.html
index d82994a6363084bfa9a19cb169795194e31aed1b..db875073730bdded4a31ffd9472bcf02b6c7a1f3 100644
--- a/doc/html/ubp_quad_expr_8h_source.html
+++ b/doc/html/ubp_quad_expr_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/ubpQuadExpr.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/ubpQuadExpr.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,124 +90,126 @@ $(document).ready(function(){initNavTree('ubp_quad_expr_8h_source.html','');});
 <div class="title">ubpQuadExpr.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="ubp_quad_expr_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file ubpQuadExpr.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing declaration of structure UbpQuadExpr used to compute</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *        coefficients of linear and quadratic terms in (MIQ)Ps.</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="exceptions_8h.html">exceptions.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;mcop.hpp&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="keyword">namespace </span>ubp {</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="keyword">inline</span> std::vector&lt;double&gt;</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#a7c723688f344053b4a3d7e0ba2e4c144">   34</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a7c723688f344053b4a3d7e0ba2e4c144">operator-</a>(<span class="keyword">const</span> std::vector&lt;double&gt;&amp; in)</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    std::vector&lt;double&gt; out(in.size());</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; in.size(); i++) {</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;        out[i] = -in[i];</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    }</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    <span class="keywordflow">return</span> out;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;}</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="keyword">inline</span> std::vector&lt;std::vector&lt;double&gt;&gt;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#ae0d200ca4c3aa81516b03974aaa7e8b2">   45</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a7c723688f344053b4a3d7e0ba2e4c144">operator-</a>(<span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt;&amp; in)</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; out(in.size());</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; in.size(); i++) {</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;        out[i] = -in[i];</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    }</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    <span class="keywordflow">return</span> out;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;}</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="keyword">inline</span> std::vector&lt;double&gt;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#a10c5d0d8fe3f2daa26131fe923cdd9bc">   56</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a10c5d0d8fe3f2daa26131fe923cdd9bc">operator+</a>(<span class="keyword">const</span> std::vector&lt;double&gt;&amp; in1, <span class="keyword">const</span> std::vector&lt;double&gt;&amp; in2)</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;{</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    <span class="keywordflow">if</span> (in1.size() != in2.size())</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- inconsistent sizes in vector + operator.&quot;</span>);</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    std::vector&lt;double&gt; out(in1.size());</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; in1.size(); i++) {</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;        out[i] = in1[i] + in2[i];</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    }</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <span class="keywordflow">return</span> out;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;}</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<span class="keyword">inline</span> std::vector&lt;std::vector&lt;double&gt;&gt;</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#aa428e1d300a34bef5231c161b0e08597">   69</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a10c5d0d8fe3f2daa26131fe923cdd9bc">operator+</a>(<span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt;&amp; in1, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt;&amp; in2)</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;{</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <span class="keywordflow">if</span> (in1.size() != in2.size())</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- inconsistent sizes in vector&lt;vector&gt; + operator.&quot;</span>);</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; out(in1.size());</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; in1.size(); i++) {</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;        <span class="keywordflow">if</span> (in1[i].size() != in2[i].size())</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- inconsistent sizes in vector&lt;vector&gt; + operator.&quot;</span>);</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;        out[i] = in1[i] + in2[i];</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    }</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    <span class="keywordflow">return</span> out;</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;}</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="keyword">inline</span> std::vector&lt;double&gt;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#aa60e9a98c38d0c5836692f82c46f7408">   84</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a7c723688f344053b4a3d7e0ba2e4c144">operator-</a>(<span class="keyword">const</span> std::vector&lt;double&gt;&amp; in1, <span class="keyword">const</span> std::vector&lt;double&gt;&amp; in2)</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;{</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    <span class="keywordflow">if</span> (in1.size() != in2.size())</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- inconsistent sizes in vector - operator.&quot;</span>);</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    std::vector&lt;double&gt; out(in1.size());</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; in1.size(); i++) {</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;        out[i] = in1[i] - in2[i];</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    }</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    <span class="keywordflow">return</span> out;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;}</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;<span class="keyword">inline</span> std::vector&lt;std::vector&lt;double&gt;&gt;</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#a742b207c46fd0870d53d6d13366e8ebc">   97</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a7c723688f344053b4a3d7e0ba2e4c144">operator-</a>(<span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt;&amp; in1, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt;&amp; in2)</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;{</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    <span class="keywordflow">if</span> (in1.size() != in2.size())</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- inconsistent sizes in vector&lt;vector&gt; - operator.&quot;</span>);</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; out(in1.size());</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; in1.size(); i++) {</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        <span class="keywordflow">if</span> (in1[i].size() != in2[i].size())</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- inconsistent sizes in vector&lt;vector&gt; - operator.&quot;</span>);</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;        out[i] = in1[i] - in2[i];</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    }</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <span class="keywordflow">return</span> out;</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;}</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#a5c67ac181e81a6949e8ecb8a870782e2">  111</a></span>&#160;<span class="keyword">inline</span> std::vector&lt;double&gt; <a class="code" href="namespacemaingo_1_1ubp.html#a5c67ac181e81a6949e8ecb8a870782e2">operator*</a>(<span class="keyword">const</span> std::vector&lt;double&gt;&amp; in1, <span class="keyword">const</span> <span class="keywordtype">double</span> in2)</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;{</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    std::vector&lt;double&gt; out(in1.size());</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; in1.size(); i++) {</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        out[i] = in1[i] * in2;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    }</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    <span class="keywordflow">return</span> out;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;}</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#ad3cba31c2697ea5b09bacbd997c9f296">  121</a></span>&#160;<span class="keyword">inline</span> std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="namespacemaingo_1_1ubp.html#a5c67ac181e81a6949e8ecb8a870782e2">operator*</a>(<span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt;&amp; in1, <span class="keyword">const</span> <span class="keywordtype">double</span> in2)</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;{</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; out(in1.size());</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; in1.size(); i++) {</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        out[i] = in1[i] * in2;</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    }</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    <span class="keywordflow">return</span> out;</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;}</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">  135</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> {</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#ab448dba7b8e6123194c9cf88ae2f2b65">  141</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#ab448dba7b8e6123194c9cf88ae2f2b65">UbpQuadExpr</a>(){};</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a44b8597bd206f1afad3abfe8de039716">  148</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a44b8597bd206f1afad3abfe8de039716">UbpQuadExpr</a>(<span class="keyword">const</span> <span class="keywordtype">size_t</span> nvarIn)</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    {</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> = nvarIn;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>.resize(<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>, 0);</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>.resize(<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>, std::vector&lt;double&gt;(<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>, 0));</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> = 0;</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>  = <span class="keyword">false</span>;</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    }</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a44586840f98d6fa9e24fa04e67b7fea4">  163</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a44586840f98d6fa9e24fa04e67b7fea4">UbpQuadExpr</a>(<span class="keyword">const</span> <span class="keywordtype">size_t</span> nvarIn, <span class="keyword">const</span> <span class="keywordtype">size_t</span> iLin)</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    {</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;        <span class="keywordflow">if</span> (iLin &gt;= nvarIn) {</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- iLin &gt;= nvarIn.&quot;</span>);</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;        }</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> = nvarIn;</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>.resize(<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>, 0);</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>[iLin] = 1;</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>.resize(<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>, std::vector&lt;double&gt;(<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>, 0));</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> = 0;</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>  = <span class="keyword">false</span>;</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;    }</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a6a7b56e39550931c2feb3bad0a801c38">  181</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a6a7b56e39550931c2feb3bad0a801c38">UbpQuadExpr</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> in)</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;    {</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> = 0;</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>.clear();</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>.clear();</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> = in;</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>  = <span class="keyword">false</span>;</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;    }</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#acce2c14abe3accaee53ea03f84c19734">  191</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#acce2c14abe3accaee53ea03f84c19734">operator=</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> in)</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;    {</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> = 0;</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>.clear(), <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>.clear();</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> = in;</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>  = <span class="keyword">false</span>;</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;    }</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af72e66c0a04b6fa8d25d89351473abe4">  201</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af72e66c0a04b6fa8d25d89351473abe4">operator=</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> in)</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    {</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> = 0;</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>.clear(), <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>.clear();</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> = (double)in;</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>  = <span class="keyword">false</span>;</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;    }</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a1cd55371cff5dac0174d8d37ceba6c5d">  211</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a1cd55371cff5dac0174d8d37ceba6c5d">operator+=</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in)</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;    {</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> &amp;&amp; (<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != 0 &amp;&amp; in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != 0))</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- nvar does not fit in += operator.&quot;</span>);</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> == 0) {</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>;</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> += in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;        }</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> == 0) {</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> += in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;        }</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;        <span class="keywordflow">else</span> {</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a> + in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> + in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>;</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> += in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;        }</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a> = <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a> || in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>;</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    }</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a561bcf6912a9390cf05b7c8c5c0755a5">  234</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a561bcf6912a9390cf05b7c8c5c0755a5">operator+=</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> in)</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;    {</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> += in;</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;    }</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a7634e17e6d08c10571dbca448506e95e">  241</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a7634e17e6d08c10571dbca448506e95e">operator+=</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> in)</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;    {</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> += in;</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;    }</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#aec88997480bed8057176853cfd2c7aaf">  248</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#aec88997480bed8057176853cfd2c7aaf">operator-=</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in)</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;    {</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> &amp;&amp; (<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != 0 &amp;&amp; in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != 0))</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- nvar does not fit in += operator.&quot;</span>);</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> == 0) {</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = -in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = -in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>;</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> -= in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;        }</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> == 0) {</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> -= in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;        }</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;        <span class="keywordflow">else</span> {</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a> - in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> - in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>;</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> -= in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;        }</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a> = <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a> || in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>;</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;    }</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;</div><div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a53ba87d0f920df7610866e1bcfe1ed5e">  271</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a53ba87d0f920df7610866e1bcfe1ed5e">operator-=</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> in)</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;    {</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> -= in;</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;    }</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;</div><div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#ac3ad5400183945189193f674f876c774">  278</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#ac3ad5400183945189193f674f876c774">operator-=</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> in)</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;    {</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> -= in;</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;    }</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a0f9dba9a22cd1bad6d7920742a46785c">  285</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a0f9dba9a22cd1bad6d7920742a46785c">operator*=</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in)</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;    {</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> &amp;&amp; (<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != 0 &amp;&amp; in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != 0))</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- nvar does not fit in * operator.&quot;</span>);</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> == 0) {</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a> * <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> * <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> * <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>    = in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>;</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;        }</div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> == 0) {</div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a> * in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> * in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> * in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;        }</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;        <span class="keywordflow">else</span> {</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;            <span class="keywordflow">if</span> (<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a> || in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>)</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;                <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- multiplications higher than second order are not allowed in (MIQ)Ps.&quot;</span>);</div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;            <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>; i++) {</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;                <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>; j++) {</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;                    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>[i][j] = <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>[i] * in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>[j];</div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;                }</div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;                <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>[i] = <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>[i] * in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> + in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>[i] * <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;            }</div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> = in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> * <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>  = <span class="keyword">true</span>;</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;        }</div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;    }</div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a192f82e999323888394268882f22e3f1">  318</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a0f9dba9a22cd1bad6d7920742a46785c">operator*=</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> in)</div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;    {</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a> * in;</div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> * in;</div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> * in;</div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;    }</div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;</div><div class="line"><a name="l00327"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a664fcf4c3b9097e2c8ef0c3fd655b53d">  327</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a0f9dba9a22cd1bad6d7920742a46785c">operator*=</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> in)</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;    {</div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a> * (double)in;</div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> * (double)in;</div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> * (double)in;</div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;    }</div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;</div><div class="line"><a name="l00336"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2e8b906b6e8ea5c22c4534e85cbbeac7">  336</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2e8b906b6e8ea5c22c4534e85cbbeac7">operator/=</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in) { <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function x/y not allowed in (MIQ)Ps.&quot;</span>); }</div><div class="line"><a name="l00338"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2a7ead5761ea56126a45479935588b06">  338</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2a7ead5761ea56126a45479935588b06">operator/=</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> in)</div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;    {</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;        *<span class="keyword">this</span> *= (1. / in);</div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;    }</div><div class="line"><a name="l00344"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#ae1b5456347b2bcb76260813e446c1ba9">  344</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#ae1b5456347b2bcb76260813e446c1ba9">operator/=</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> in)</div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;    {</div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;        *<span class="keyword">this</span> *= (1. / (double)in);</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;    }</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;</div><div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">  354</a></span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>;                                 </div><div class="line"><a name="l00355"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">  355</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;                             </div><div class="line"><a name="l00356"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">  356</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;               </div><div class="line"><a name="l00357"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">  357</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>; </div><div class="line"><a name="l00358"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">  358</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>;                                </div><div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;};</div><div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;</div><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;<span class="keyword">inline</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a></div><div class="line"><a name="l00364"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#a34d96b5d5baa870bf3c50543044f17fa">  364</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a10c5d0d8fe3f2daa26131fe923cdd9bc">operator+</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in)</div><div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;{</div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;    <span class="keywordflow">return</span> in;</div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;}</div><div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;</div><div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00371"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#a71bc9598739d457c38b6c8620fa70e6a">  371</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a10c5d0d8fe3f2daa26131fe923cdd9bc">operator+</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in1, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in2)</div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;{</div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;    <span class="keywordflow">if</span> (in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> &amp;&amp; (in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != 0 &amp;&amp; in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != 0))</div><div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- nvar does not fit in + operator.&quot;</span>);</div><div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;</div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> res(in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>);</div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;    <span class="keywordflow">if</span> (in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> == 0) {</div><div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;</div><div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>;</div><div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> + in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;    }</div><div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> == 0) {</div><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;</div><div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>;</div><div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> + in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;    }</div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;    <span class="keywordflow">else</span> {</div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a> + in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;</div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> + in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>;</div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> + in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;    }</div><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a> = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a> || in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>;</div><div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;    <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;}</div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;</div><div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00398"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#a5d61a1b0104c207a63c55da96bbe28bf">  398</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a10c5d0d8fe3f2daa26131fe923cdd9bc">operator+</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in1, <span class="keyword">const</span> <span class="keywordtype">double</span>&amp; in2)</div><div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;{</div><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> res(in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>);</div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>;</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> + in2;</div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>    = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>;</div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;    <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;}</div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;</div><div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00410"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#ad836c3ed6766c075161c027b5eca6e25">  410</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a10c5d0d8fe3f2daa26131fe923cdd9bc">operator+</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in1, <span class="keyword">const</span> <span class="keywordtype">int</span>&amp; in2)</div><div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;{</div><div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> res(in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>);</div><div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;</div><div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>;</div><div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> + in2;</div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>    = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>;</div><div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;    <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;}</div><div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;</div><div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00422"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#ad4f8e6ebfcd8fc7e3fc7e7b4926892ac">  422</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a10c5d0d8fe3f2daa26131fe923cdd9bc">operator+</a>(<span class="keyword">const</span> <span class="keywordtype">double</span>&amp; in1, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in2)</div><div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;{</div><div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;    <span class="keywordflow">return</span> in2 + in1;</div><div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;}</div><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;</div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00429"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#a8f178973e405455b0384fd128b3f1be7">  429</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a10c5d0d8fe3f2daa26131fe923cdd9bc">operator+</a>(<span class="keyword">const</span> <span class="keywordtype">int</span>&amp; in1, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in2)</div><div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;{</div><div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;    <span class="keywordflow">return</span> in2 + in1;</div><div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;}</div><div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;</div><div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00436"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#ac85543a4274998b12aca4e184764a4a1">  436</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a7c723688f344053b4a3d7e0ba2e4c144">operator-</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in)</div><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;{</div><div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> res(in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>);</div><div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = -in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;</div><div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = -in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>;</div><div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = -in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>    = in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>;</div><div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;    <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;}</div><div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;</div><div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00448"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#ac33b3f1dcbbfc89678ddd9d83b12c33e">  448</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a7c723688f344053b4a3d7e0ba2e4c144">operator-</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in1, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in2)</div><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;{</div><div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;    <span class="keywordflow">if</span> (in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> &amp;&amp; (in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != 0 &amp;&amp; in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != 0))</div><div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- nvar does not fit in - operator.&quot;</span>);</div><div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;</div><div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> res(in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>);</div><div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;</div><div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;    <span class="keywordflow">if</span> (in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> == 0) {</div><div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = -in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;</div><div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = -in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>;</div><div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> - in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;    }</div><div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> == 0) {</div><div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;</div><div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>;</div><div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> - in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;    }</div><div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;    <span class="keywordflow">else</span> {</div><div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a> - in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;</div><div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> - in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>;</div><div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> - in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;    }</div><div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a> = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a> || in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>;</div><div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;    <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;}</div><div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;</div><div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00476"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#ac39deeba0da11c5b6460085c0d9e699c">  476</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a7c723688f344053b4a3d7e0ba2e4c144">operator-</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in1, <span class="keyword">const</span> <span class="keywordtype">double</span>&amp; in2)</div><div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;{</div><div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> res(in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>);</div><div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;</div><div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>;</div><div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> - in2;</div><div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>    = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>;</div><div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;    <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;}</div><div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;</div><div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00488"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#aa6cf0d34878dfbcc39ede6d5e3911612">  488</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a7c723688f344053b4a3d7e0ba2e4c144">operator-</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in1, <span class="keyword">const</span> <span class="keywordtype">int</span>&amp; in2)</div><div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;{</div><div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> res(in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>);</div><div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;</div><div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>;</div><div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> - in2;</div><div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>    = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>;</div><div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;    <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;}</div><div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;</div><div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00500"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#a32aa5e9142e01cdd969ed7bc97324a6f">  500</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a7c723688f344053b4a3d7e0ba2e4c144">operator-</a>(<span class="keyword">const</span> <span class="keywordtype">double</span>&amp; in1, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in2)</div><div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;{</div><div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> res(in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>);</div><div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = -in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;</div><div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = -in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>;</div><div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = in1 - in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>    = in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>;</div><div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;    <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;}</div><div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;</div><div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00512"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#ab9fceb07e4c759872241321cdd48e269">  512</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a7c723688f344053b4a3d7e0ba2e4c144">operator-</a>(<span class="keyword">const</span> <span class="keywordtype">int</span>&amp; in1, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in2)</div><div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;{</div><div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> res(in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>);</div><div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = -in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;</div><div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = -in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>;</div><div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = in1 - in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>    = in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>;</div><div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;    <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;}</div><div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;</div><div class="line"><a name="l00523"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#ab613e54b12d7fb8a43156f91aa434402">  523</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> <a class="code" href="namespacemaingo_1_1ubp.html#a5c67ac181e81a6949e8ecb8a870782e2">operator*</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in1, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in2)</div><div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;{</div><div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;    <span class="keywordflow">if</span> (in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> &amp;&amp; (in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != 0 &amp;&amp; in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != 0))</div><div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- nvar does not fit in * operator.&quot;</span>);</div><div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;</div><div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> res(in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>);</div><div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;    <span class="keywordflow">if</span> (in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> == 0) {</div><div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a> * in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> * in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> * in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>    = in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>;</div><div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;    }</div><div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> == 0) {</div><div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a> * in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> * in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> * in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>    = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>;</div><div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;    }</div><div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;    <span class="keywordflow">else</span> {</div><div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;        <span class="keywordflow">if</span> (in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a> || in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>)</div><div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- multiplications higher than second order are not allowed in (MIQ)Ps.&quot;</span>);</div><div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;</div><div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>; i++) {</div><div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;            <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>; j++) {</div><div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;                res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>[i][j] = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>[i] * in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>[j];</div><div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;            }</div><div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;            res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>[i] = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>[i] * in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> + in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>[i] * in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;        }</div><div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> * in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>  = <span class="keyword">true</span>;</div><div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;    }</div><div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;    <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;}</div><div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;</div><div class="line"><a name="l00558"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#a478444c21260358392dd33b31f713a9c">  558</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> <a class="code" href="namespacemaingo_1_1ubp.html#a5c67ac181e81a6949e8ecb8a870782e2">operator*</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in1, <span class="keyword">const</span> <span class="keywordtype">double</span> in2)</div><div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;{</div><div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> res(in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>);</div><div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a> * in2;</div><div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> * in2;</div><div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> * in2;</div><div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>    = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>;</div><div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;    <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;}</div><div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;</div><div class="line"><a name="l00569"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#aac1334d57e5f2540b7bfa6cd37693205">  569</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> <a class="code" href="namespacemaingo_1_1ubp.html#a5c67ac181e81a6949e8ecb8a870782e2">operator*</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in1, <span class="keyword">const</span> <span class="keywordtype">int</span> in2)</div><div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;{</div><div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;    <span class="keywordflow">return</span> in1 * ((double)in2);</div><div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;}</div><div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;</div><div class="line"><a name="l00575"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#ac90c68b5af595a7612a1149d2cc0c9b9">  575</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> <a class="code" href="namespacemaingo_1_1ubp.html#a5c67ac181e81a6949e8ecb8a870782e2">operator*</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> in1, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in2)</div><div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;{</div><div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;    <span class="keywordflow">return</span> in2 * in1;</div><div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;}</div><div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;</div><div class="line"><a name="l00581"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#a0e92f83ac29ec3f83eeb2efe88f556c3">  581</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> <a class="code" href="namespacemaingo_1_1ubp.html#a5c67ac181e81a6949e8ecb8a870782e2">operator*</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> in1, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in2)</div><div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;{</div><div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;    <span class="keywordflow">return</span> in2 * ((double)in1);</div><div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;}</div><div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;</div><div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00588"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#ad3f555c68f9b3ae1ad075e914317afd5">  588</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#ad3f555c68f9b3ae1ad075e914317afd5">operator/</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in1, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in2)</div><div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;{</div><div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;    <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function x/y not allowed in (MIQ)Ps.&quot;</span>);</div><div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;}</div><div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;</div><div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00595"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#a1bdea6d9e43b0b3b4950db2888f59180">  595</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#ad3f555c68f9b3ae1ad075e914317afd5">operator/</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in1, <span class="keyword">const</span> <span class="keywordtype">double</span> in2)</div><div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;{</div><div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;    <span class="keywordflow">return</span> in1 * (1. / in2);</div><div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;}</div><div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;</div><div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00602"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#a5854670509a4af23a920acce4f19748c">  602</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#ad3f555c68f9b3ae1ad075e914317afd5">operator/</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in1, <span class="keyword">const</span> <span class="keywordtype">int</span> in2)</div><div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;{</div><div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;    <span class="keywordflow">return</span> in1 * (1. / (double)in2);</div><div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;}</div><div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;</div><div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00609"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#ae7c5689bc8931b7ae4216f810dddb5d3">  609</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#ad3f555c68f9b3ae1ad075e914317afd5">operator/</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> in1, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in2)</div><div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;{</div><div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;    <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function 1/x not allowed in (MIQ)Ps.&quot;</span>);</div><div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;}</div><div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;</div><div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00616"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#aefd918702d5ff67b444a1b5184a2ba78">  616</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#ad3f555c68f9b3ae1ad075e914317afd5">operator/</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> in1, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in2)</div><div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;{</div><div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;    <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function 1/x not allowed in (MIQ)Ps.&quot;</span>);</div><div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;}</div><div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;</div><div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;</div><div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;}    <span class="comment">// end namespace ubp</span></div><div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;</div><div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;</div><div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;</div><div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;</div><div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemc.html">mc</a> {</div><div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;</div><div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;</div><div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;<span class="keyword">template</span> &lt;&gt;</div><div class="line"><a name="l00633"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html">  633</a></span>&#160;<span class="keyword">struct </span>Op&lt;<a class="code" href="namespacemaingo.html">maingo</a>::ubp::UbpQuadExpr&gt; {</div><div class="line"><a name="l00634"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a5671d40aba6b51eedb9fefa337f514fa">  634</a></span>&#160;    <span class="keyword">typedef</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">maingo::ubp::UbpQuadExpr</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a5671d40aba6b51eedb9fefa337f514fa">QE</a>;         </div><div class="line"><a name="l00635"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ab953e12376b1ff2c3a5318ecc4ccf31e">  635</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ab953e12376b1ff2c3a5318ecc4ccf31e">sqr</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">return</span> x * x; } </div><div class="line"><a name="l00636"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a1f2039b54ef15f2e194f90d97047dbf8">  636</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a1f2039b54ef15f2e194f90d97047dbf8">pow</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">int</span> n)</div><div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;    {</div><div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;        <span class="keywordflow">if</span> (n == 0) {</div><div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>(1.0);</div><div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;        }</div><div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;        <span class="keywordflow">if</span> (n == 1) {</div><div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;            <span class="keywordflow">return</span> x;</div><div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;        }</div><div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;        <span class="keywordflow">if</span> (n == 2) {</div><div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;            <span class="keywordflow">return</span> x * x;</div><div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;        }</div><div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;        <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function pow with n &lt;&gt; 0,1,2 not allowed in (MIQ)Ps.&quot;</span>);</div><div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;    } </div><div class="line"><a name="l00649"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a195d98248e0ba84680048c2611e60004">  649</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a195d98248e0ba84680048c2611e60004">pow</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> a)</div><div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;    {</div><div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;        <span class="keywordflow">if</span> (a == 0) {</div><div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>(1.0);</div><div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;        }</div><div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;        <span class="keywordflow">if</span> (a == 1) {</div><div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;            <span class="keywordflow">return</span> x;</div><div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;        }</div><div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;        <span class="keywordflow">if</span> (a == 2) {</div><div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;            <span class="keywordflow">return</span> x * x;</div><div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;        }</div><div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;        <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function pow with a &lt;&gt; 0,1,2 not allowed in (MIQ)Ps.&quot;</span>);</div><div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;    }                                                                                                                                                                     </div><div class="line"><a name="l00662"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a05ef1af5ad24b4baa6dfec609bd542db">  662</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a05ef1af5ad24b4baa6dfec609bd542db">pow</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function pow(x,y) not allowed in (MIQ)Ps.&quot;</span>); }                            </div><div class="line"><a name="l00663"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a246ae6c1ea943858ac55205e9cb26690">  663</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a246ae6c1ea943858ac55205e9cb26690">pow</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function pow(a,y) not allowed in (MIQ)Ps.&quot;</span>); }                         </div><div class="line"><a name="l00664"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a11c7c90a5cb3bb191af49d3e5c374eaf">  664</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a11c7c90a5cb3bb191af49d3e5c374eaf">pow</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function pow(n,y) not allowed in (MIQ)Ps.&quot;</span>); }                            </div><div class="line"><a name="l00665"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a7c36b5f1e9e15a63b53482a96238dfde">  665</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a7c36b5f1e9e15a63b53482a96238dfde">prod</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> n, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>* x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function prod not allowed in (MIQ)Ps.&quot;</span>); }                      </div><div class="line"><a name="l00666"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#af4ef04f795e24dc93ee86751d647b889">  666</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#af4ef04f795e24dc93ee86751d647b889">monom</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> n, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>* x, <span class="keyword">const</span> <span class="keywordtype">unsigned</span>* k) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function monom not allowed in (MIQ)Ps.&quot;</span>); } </div><div class="line"><a name="l00667"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8fcb97302591c8fc4f068e7c56b6a721">  667</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8fcb97302591c8fc4f068e7c56b6a721">point</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> c) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function point not allowed in (MIQ)Ps.&quot;</span>); }                                             </div><div class="line"><a name="l00668"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a6256fb5b78d5052bad6d5fddabe367a4">  668</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a6256fb5b78d5052bad6d5fddabe367a4">zeroone</a>() { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function zeroone not allowed in (MIQ)Ps.&quot;</span>); }                                                         </div><div class="line"><a name="l00669"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a157695047ca0cea633aebe7a89d83129">  669</a></span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a157695047ca0cea633aebe7a89d83129">I</a>(<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { x = y; }                                                                                                                          </div><div class="line"><a name="l00670"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a6f1b459f0497dcbb9b27c15a3da93679">  670</a></span>&#160;    <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a6f1b459f0497dcbb9b27c15a3da93679">l</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function l not allowed in (MIQ)Ps.&quot;</span>); }                                                </div><div class="line"><a name="l00671"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ade6ffcc7987d0baac66bc5f08fdd6d91">  671</a></span>&#160;    <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ade6ffcc7987d0baac66bc5f08fdd6d91">u</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function u not allowed in (MIQ)Ps.&quot;</span>); }                                                </div><div class="line"><a name="l00672"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a9b2e90718f22ebb0a1b04a4085990a1e">  672</a></span>&#160;    <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a9b2e90718f22ebb0a1b04a4085990a1e">abs</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function abs not allowed in (MIQ)Ps.&quot;</span>); }                                              </div><div class="line"><a name="l00673"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aa96ebcb4ea989f485c06d119e24532d3">  673</a></span>&#160;    <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aa96ebcb4ea989f485c06d119e24532d3">mid</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function mid not allowed in (MIQ)Ps.&quot;</span>); }                                              </div><div class="line"><a name="l00674"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a580343aaf00d1a8e833792805b5be075">  674</a></span>&#160;    <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a580343aaf00d1a8e833792805b5be075">diam</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function diam not allowed in (MIQ)Ps.&quot;</span>); }                                             </div><div class="line"><a name="l00675"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a7f9ead00fc41293e4f6e223bcc7e3842">  675</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a7f9ead00fc41293e4f6e223bcc7e3842">inv</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function inv not allowed in (MIQ)Ps.&quot;</span>); }                                                  </div><div class="line"><a name="l00676"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a4f2de455a2fc93a80e4a132c44457380">  676</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a4f2de455a2fc93a80e4a132c44457380">sqrt</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function sqrt not allowed in (MIQ)Ps.&quot;</span>); }                                                 </div><div class="line"><a name="l00677"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8e8a7fb977a2e9a256fb854557db87a7">  677</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8e8a7fb977a2e9a256fb854557db87a7">exp</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function exp not allowed in (MIQ)Ps.&quot;</span>); }                                                  </div><div class="line"><a name="l00678"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ae697c1fcc04bff4b2893b51ce170fb08">  678</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ae697c1fcc04bff4b2893b51ce170fb08">log</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function log not allowed in (MIQ)Ps.&quot;</span>); }                                                  </div><div class="line"><a name="l00679"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a1615f15a77004cb7164aa30849cc2b19">  679</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a1615f15a77004cb7164aa30849cc2b19">xlog</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function xlog not allowed in (MIQ)Ps.&quot;</span>); }                                                 </div><div class="line"><a name="l00680"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a1be484d4370ef7155d08d9e0d3aad1fa">  680</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a1be484d4370ef7155d08d9e0d3aad1fa">fabsx_times_x</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function fabsx_times_x not allowed in (MIQ)Ps.&quot;</span>); }                                        </div><div class="line"><a name="l00681"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aca2d2601bf180bcc4a95059dcaaff98e">  681</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aca2d2601bf180bcc4a95059dcaaff98e">xexpax</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> a) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function xexpax not allowed in (MIQ)Ps.&quot;</span>); }                               </div><div class="line"><a name="l00682"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a4f99f7a6c7d498a2bdee55459ac4b27f">  682</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a4f99f7a6c7d498a2bdee55459ac4b27f">lmtd</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function lmtd not allowed in (MIQ)Ps.&quot;</span>); }                                    </div><div class="line"><a name="l00683"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8074e42997b5850d3078c7b4d70c0ea2">  683</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8074e42997b5850d3078c7b4d70c0ea2">rlmtd</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function rlmtd not allowed in (MIQ)Ps.&quot;</span>); }                                   </div><div class="line"><a name="l00684"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#abc07d46fb6820ee14d64801c0fd1a4f0">  684</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#abc07d46fb6820ee14d64801c0fd1a4f0">euclidean_norm_2d</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function euclidean_norm_2d not allowed in (MIQ)Ps.&quot;</span>); }                       </div><div class="line"><a name="l00685"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a9968bf71e7888784e28962227f2fd80e">  685</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a9968bf71e7888784e28962227f2fd80e">expx_times_y</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function expx_times_y not allowed in (MIQ)Ps.&quot;</span>); }                            </div><div class="line"><a name="l00686"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aad7aac80cc1464c33b622a1ceff65ed4">  686</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aad7aac80cc1464c33b622a1ceff65ed4">vapor_pressure</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> type, <span class="keyword">const</span> <span class="keywordtype">double</span> p1, <span class="keyword">const</span> <span class="keywordtype">double</span> p2, <span class="keyword">const</span> <span class="keywordtype">double</span> p3, <span class="keyword">const</span> <span class="keywordtype">double</span> p4 = 0, <span class="keyword">const</span> <span class="keywordtype">double</span> p5 = 0, <span class="keyword">const</span> <span class="keywordtype">double</span> p6 = 0,</div><div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;                             <span class="keyword">const</span> <span class="keywordtype">double</span> p7 = 0, <span class="keyword">const</span> <span class="keywordtype">double</span> p8 = 0, <span class="keyword">const</span> <span class="keywordtype">double</span> p9 = 0, <span class="keyword">const</span> <span class="keywordtype">double</span> p10 = 0) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function vapor_pressure not allowed in (MIQ)Ps.&quot;</span>); } </div><div class="line"><a name="l00688"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a7ed010559aebb792e65c224fe998b689">  688</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a7ed010559aebb792e65c224fe998b689">ideal_gas_enthalpy</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> x0, <span class="keyword">const</span> <span class="keywordtype">double</span> type, <span class="keyword">const</span> <span class="keywordtype">double</span> p1, <span class="keyword">const</span> <span class="keywordtype">double</span> p2, <span class="keyword">const</span> <span class="keywordtype">double</span> p3, <span class="keyword">const</span> <span class="keywordtype">double</span> p4, <span class="keyword">const</span> <span class="keywordtype">double</span> p5, <span class="keyword">const</span> <span class="keywordtype">double</span> p6 = 0,</div><div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;                                 <span class="keyword">const</span> <span class="keywordtype">double</span> p7 = 0) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function ideal_gas_enthalpy not allowed in (MIQ)Ps.&quot;</span>); } </div><div class="line"><a name="l00690"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a5426d1dd5c4adaf426119c168bee4e4e">  690</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a5426d1dd5c4adaf426119c168bee4e4e">saturation_temperature</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> type, <span class="keyword">const</span> <span class="keywordtype">double</span> p1, <span class="keyword">const</span> <span class="keywordtype">double</span> p2, <span class="keyword">const</span> <span class="keywordtype">double</span> p3, <span class="keyword">const</span> <span class="keywordtype">double</span> p4 = 0, <span class="keyword">const</span> <span class="keywordtype">double</span> p5 = 0, <span class="keyword">const</span> <span class="keywordtype">double</span> p6 = 0,</div><div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;                                     <span class="keyword">const</span> <span class="keywordtype">double</span> p7 = 0, <span class="keyword">const</span> <span class="keywordtype">double</span> p8 = 0, <span class="keyword">const</span> <span class="keywordtype">double</span> p9 = 0, <span class="keyword">const</span> <span class="keywordtype">double</span> p10 = 0) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function saturation_temperature not allowed in (MIQ)Ps.&quot;</span>); }                                                        </div><div class="line"><a name="l00692"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a101a89f16caa51f964e600e0a6b9bc23">  692</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a101a89f16caa51f964e600e0a6b9bc23">enthalpy_of_vaporization</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> type, <span class="keyword">const</span> <span class="keywordtype">double</span> p1, <span class="keyword">const</span> <span class="keywordtype">double</span> p2, <span class="keyword">const</span> <span class="keywordtype">double</span> p3, <span class="keyword">const</span> <span class="keywordtype">double</span> p4, <span class="keyword">const</span> <span class="keywordtype">double</span> p5, <span class="keyword">const</span> <span class="keywordtype">double</span> p6 = 0) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function enthalpy_of_vaporization not allowed in (MIQ)Ps.&quot;</span>); } </div><div class="line"><a name="l00693"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8a58a23c33bbb6636dd69a2f67e046fc">  693</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8a58a23c33bbb6636dd69a2f67e046fc">cost_function</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> type, <span class="keyword">const</span> <span class="keywordtype">double</span> p1, <span class="keyword">const</span> <span class="keywordtype">double</span> p2, <span class="keyword">const</span> <span class="keywordtype">double</span> p3) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function cost_function not allowed in (MIQ)Ps.&quot;</span>); }                                                                   </div><div class="line"><a name="l00694"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ad67e74dd1ac1383fadf94f23c8c3878c">  694</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ad67e74dd1ac1383fadf94f23c8c3878c">nrtl_tau</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> a, <span class="keyword">const</span> <span class="keywordtype">double</span> b, <span class="keyword">const</span> <span class="keywordtype">double</span> e, <span class="keyword">const</span> <span class="keywordtype">double</span> f) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function nrtl_tau not allowed in (MIQ)Ps.&quot;</span>); }                                                                              </div><div class="line"><a name="l00695"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a2f1a2770aca29e5b896a858d11d78f9f">  695</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a2f1a2770aca29e5b896a858d11d78f9f">nrtl_dtau</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> b, <span class="keyword">const</span> <span class="keywordtype">double</span> e, <span class="keyword">const</span> <span class="keywordtype">double</span> f) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function nrtl_dtau not allowed in (MIQ)Ps.&quot;</span>); }                                                                                             </div><div class="line"><a name="l00696"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aea055afaf310ebc2c32cba3fdb3d9484">  696</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aea055afaf310ebc2c32cba3fdb3d9484">nrtl_G</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> a, <span class="keyword">const</span> <span class="keywordtype">double</span> b, <span class="keyword">const</span> <span class="keywordtype">double</span> e, <span class="keyword">const</span> <span class="keywordtype">double</span> f, <span class="keyword">const</span> <span class="keywordtype">double</span> alpha) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function nrtl_G not allowed in (MIQ)Ps.&quot;</span>); }                                                            </div><div class="line"><a name="l00697"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a85f0fe631c27dfc8e2956e783f03bcd2">  697</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a85f0fe631c27dfc8e2956e783f03bcd2">nrtl_Gtau</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> a, <span class="keyword">const</span> <span class="keywordtype">double</span> b, <span class="keyword">const</span> <span class="keywordtype">double</span> e, <span class="keyword">const</span> <span class="keywordtype">double</span> f, <span class="keyword">const</span> <span class="keywordtype">double</span> alpha) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function nrtl_Gtau not allowed in (MIQ)Ps.&quot;</span>); }                                                         </div><div class="line"><a name="l00698"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a1773fd9bc71bcaae2c2cf58030d5919e">  698</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a1773fd9bc71bcaae2c2cf58030d5919e">nrtl_Gdtau</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> a, <span class="keyword">const</span> <span class="keywordtype">double</span> b, <span class="keyword">const</span> <span class="keywordtype">double</span> e, <span class="keyword">const</span> <span class="keywordtype">double</span> f, <span class="keyword">const</span> <span class="keywordtype">double</span> alpha) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function nrtl_Gdtau not allowed in (MIQ)Ps.&quot;</span>); }                                                        </div><div class="line"><a name="l00699"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8587b56c0385d935a6368c9947395455">  699</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8587b56c0385d935a6368c9947395455">nrtl_dGtau</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> a, <span class="keyword">const</span> <span class="keywordtype">double</span> b, <span class="keyword">const</span> <span class="keywordtype">double</span> e, <span class="keyword">const</span> <span class="keywordtype">double</span> f, <span class="keyword">const</span> <span class="keywordtype">double</span> alpha) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function nrtl_dGtau not allowed in (MIQ)Ps.&quot;</span>); }                                                        </div><div class="line"><a name="l00700"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a5cbe6a20c3bcda77397c91a8656038fe">  700</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a5cbe6a20c3bcda77397c91a8656038fe">iapws</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> type) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function iapws not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                              </div><div class="line"><a name="l00701"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ae6ae73bd314ea55c0a23fb45bb4c4bdf">  701</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ae6ae73bd314ea55c0a23fb45bb4c4bdf">iapws</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y, <span class="keyword">const</span> <span class="keywordtype">double</span> type) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function iapws not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                 </div><div class="line"><a name="l00702"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a08070e5bb62a0835fe34221600aad6db">  702</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a08070e5bb62a0835fe34221600aad6db">p_sat_ethanol_schroeder</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function p_sat_ethanol_schroeder not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                               </div><div class="line"><a name="l00703"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a86dd68715ebcdbf9e5dac0bb7338f605">  703</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a86dd68715ebcdbf9e5dac0bb7338f605">rho_vap_sat_ethanol_schroeder</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function rho_vap_sat_ethanol_schroeder not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                         </div><div class="line"><a name="l00704"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ac59db4469292d72c052f4da427a50f3d">  704</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ac59db4469292d72c052f4da427a50f3d">rho_liq_sat_ethanol_schroeder</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function rho_liq_sat_ethanol_schroeder not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                         </div><div class="line"><a name="l00705"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a7e6b2880426b3aaf6ad0406c588d5ed2">  705</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a7e6b2880426b3aaf6ad0406c588d5ed2">covariance_function</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> type) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function covariance_function not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                </div><div class="line"><a name="l00706"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ab9d6f9c285286a74762ffb1831a892f1">  706</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ab9d6f9c285286a74762ffb1831a892f1">acquisition_function</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y, <span class="keyword">const</span> <span class="keywordtype">double</span> type, <span class="keyword">const</span> <span class="keywordtype">double</span> fmin) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function acquisition_function not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                </div><div class="line"><a name="l00707"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a37b2c10d1369ec2f610743339a132903">  707</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a37b2c10d1369ec2f610743339a132903">gaussian_probability_density_function</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function gaussian_probability_density_function not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                 </div><div class="line"><a name="l00708"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ac9cf7b4edf54c33450cf0bb2f46b178d">  708</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ac9cf7b4edf54c33450cf0bb2f46b178d">regnormal</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> a, <span class="keyword">const</span> <span class="keywordtype">double</span> b) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function regnormal not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                             </div><div class="line"><a name="l00709"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a9880a03fbf12369b0492a93c42cd73df">  709</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a9880a03fbf12369b0492a93c42cd73df">fabs</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function fabs not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                  </div><div class="line"><a name="l00710"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#acf627d293021a04bb8ba547ad6349437">  710</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#acf627d293021a04bb8ba547ad6349437">sin</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function sin not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                   </div><div class="line"><a name="l00711"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a10e1f863003795a5e2eaabcc49772c3c">  711</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a10e1f863003795a5e2eaabcc49772c3c">cos</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function cos not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                   </div><div class="line"><a name="l00712"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aa365f13c0d21644b80c9379f5ad8e0e4">  712</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aa365f13c0d21644b80c9379f5ad8e0e4">tan</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function tan not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                   </div><div class="line"><a name="l00713"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ab2149dbee115f2ec2ba436df75ec297a">  713</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ab2149dbee115f2ec2ba436df75ec297a">asin</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function asin not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                  </div><div class="line"><a name="l00714"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aec0b14475286255066d79e23334623fb">  714</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aec0b14475286255066d79e23334623fb">acos</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function acos not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                  </div><div class="line"><a name="l00715"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ae746ea045da4196e833c652a6264a126">  715</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ae746ea045da4196e833c652a6264a126">atan</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function atan not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                  </div><div class="line"><a name="l00716"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a060be08bd96d38d7b7f64823fb843cff">  716</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a060be08bd96d38d7b7f64823fb843cff">sinh</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function sinh not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                  </div><div class="line"><a name="l00717"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ac069ad54ff97a3a223fc69a07e9da183">  717</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ac069ad54ff97a3a223fc69a07e9da183">cosh</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function cosh not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                  </div><div class="line"><a name="l00718"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a5d002875452b4ee8a875f88dc01cb160">  718</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a5d002875452b4ee8a875f88dc01cb160">tanh</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function tanh not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                  </div><div class="line"><a name="l00719"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a701f05f982f6c2488953c67599871540">  719</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a701f05f982f6c2488953c67599871540">coth</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function coth not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                  </div><div class="line"><a name="l00720"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a0343beb7d475418ad9443de3dc486c2f">  720</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a0343beb7d475418ad9443de3dc486c2f">asinh</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function asinh not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                 </div><div class="line"><a name="l00721"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a31df148020812018ce0185f9931cf7bd">  721</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a31df148020812018ce0185f9931cf7bd">acosh</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function acosh not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                 </div><div class="line"><a name="l00722"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a4854e83ee269e6b6db03e7a8f9258df5">  722</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a4854e83ee269e6b6db03e7a8f9258df5">atanh</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function atanh not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                 </div><div class="line"><a name="l00723"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aeeb90dcd1ad5567bf96b31c0f8d07e0c">  723</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aeeb90dcd1ad5567bf96b31c0f8d07e0c">acoth</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function acoth not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                 </div><div class="line"><a name="l00724"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a53999c0ccd04a819391c96726db8c98c">  724</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a53999c0ccd04a819391c96726db8c98c">erf</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function erf not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                   </div><div class="line"><a name="l00725"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8a959dfd152b52a68467983060f7c94a">  725</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8a959dfd152b52a68467983060f7c94a">erfc</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function erfc not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                  </div><div class="line"><a name="l00726"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aff033c9054e77ba402527b010e3a7252">  726</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aff033c9054e77ba402527b010e3a7252">fstep</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function fstep not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                 </div><div class="line"><a name="l00727"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a4ee526b8aee72df2eec3366b9be4037e">  727</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a4ee526b8aee72df2eec3366b9be4037e">bstep</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function bstep not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                 </div><div class="line"><a name="l00728"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a43e321298fa9f26c63c3b3e4b839ad8a">  728</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a43e321298fa9f26c63c3b3e4b839ad8a">hull</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function hull not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                     </div><div class="line"><a name="l00729"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aef9780ca1ffdd1463312ecf3616fb1e4">  729</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aef9780ca1ffdd1463312ecf3616fb1e4">min</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function min not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                      </div><div class="line"><a name="l00730"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#abddc035b2216d9ea039ce7215ca76bc4">  730</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#abddc035b2216d9ea039ce7215ca76bc4">max</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function max not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                      </div><div class="line"><a name="l00731"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ad92d43f2bfc5500822ae2f24ff426b6e">  731</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ad92d43f2bfc5500822ae2f24ff426b6e">pos</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function pos not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                   </div><div class="line"><a name="l00732"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a674ef91ce7ee31d7d9f914d06ca30804">  732</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a674ef91ce7ee31d7d9f914d06ca30804">neg</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function neg not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                   </div><div class="line"><a name="l00733"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a2cfbd58e1ce450b19c8329113b9654b6">  733</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a2cfbd58e1ce450b19c8329113b9654b6">lb_func</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> lb) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function lb_func not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                              </div><div class="line"><a name="l00734"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a85b7c9efebaa4cf91b58f633079754f0">  734</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a85b7c9efebaa4cf91b58f633079754f0">ub_func</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> ub) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function ub_func not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                              </div><div class="line"><a name="l00735"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ae1eab66656e68a802a2d5a9a5aeb893e">  735</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ae1eab66656e68a802a2d5a9a5aeb893e">bounding_func</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> lb, <span class="keyword">const</span> <span class="keywordtype">double</span> ub) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function bounding_func not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                       </div><div class="line"><a name="l00736"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aa4a67d44b81dc4218b1a7fa94d5da7f9">  736</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aa4a67d44b81dc4218b1a7fa94d5da7f9">squash_node</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> lb, <span class="keyword">const</span> <span class="keywordtype">double</span> ub) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function squash_node not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                         </div><div class="line"><a name="l00737"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aff22ea406868fc39222d529a339ae892">  737</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aff22ea406868fc39222d529a339ae892">sum_div</a>(<span class="keyword">const</span> std::vector&lt;QE&gt;&amp; x, <span class="keyword">const</span> std::vector&lt;double&gt;&amp; coeff) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function sum_div not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                </div><div class="line"><a name="l00738"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a2ec1355320796f02d23c18fc4cfe4fb1">  738</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a2ec1355320796f02d23c18fc4cfe4fb1">xlog_sum</a>(<span class="keyword">const</span> std::vector&lt;QE&gt;&amp; x, <span class="keyword">const</span> std::vector&lt;double&gt;&amp; coeff) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function xlog_sum not allowed in (MIQ)Ps.&quot;</span>); }                                                                                               </div><div class="line"><a name="l00739"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a62da96c6aefdddf79e2a09cfeee78716">  739</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a62da96c6aefdddf79e2a09cfeee78716">mc_print</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">int</span> number) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function mc_print not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                            </div><div class="line"><a name="l00740"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ac3c457143c6f4a4400194ccf44f82c54">  740</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ac3c457143c6f4a4400194ccf44f82c54">arh</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> k) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function arh not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                   </div><div class="line"><a name="l00741"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ad9a450d917deff7d35dcbc47b952c528">  741</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ad9a450d917deff7d35dcbc47b952c528">cheb</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> n) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function cheb not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                </div><div class="line"><a name="l00742"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#acc1b11c33a232b16420b1cd78dc5b0c8">  742</a></span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#acc1b11c33a232b16420b1cd78dc5b0c8">inter</a>(<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; xIy, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function inter not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                         </div><div class="line"><a name="l00743"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a052639fdb63ad1b89ffeda209f67a4f1">  743</a></span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a052639fdb63ad1b89ffeda209f67a4f1">eq</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function eq not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                     </div><div class="line"><a name="l00744"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a28f4df31ca38d0899de9c5688ad20599">  744</a></span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a28f4df31ca38d0899de9c5688ad20599">ne</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function ne not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                     </div><div class="line"><a name="l00745"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a151904b8ee5f3035d5cc4c819dd58d95">  745</a></span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a151904b8ee5f3035d5cc4c819dd58d95">lt</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function lt not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                     </div><div class="line"><a name="l00746"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a300c2a2c5eb7685e91ac7ae9228b66a1">  746</a></span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a300c2a2c5eb7685e91ac7ae9228b66a1">le</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function le not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                     </div><div class="line"><a name="l00747"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aab92ab0256c3cac10a7bb3ce19d80dcb">  747</a></span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aab92ab0256c3cac10a7bb3ce19d80dcb">gt</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function gt not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                     </div><div class="line"><a name="l00748"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a33c000da2ea95bd0cc39aa2352344142">  748</a></span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a33c000da2ea95bd0cc39aa2352344142">ge</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function ge not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                     </div><div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;};</div><div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160;</div><div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;</div><div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;}    <span class="comment">// end namespace mc</span></div><div class="ttc" id="namespacemc_html"><div class="ttname"><a href="namespacemc.html">mc</a></div><div class="ttdoc">namespace holding forward declaration of McCormick objects. For more info refer to the open-source li...</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_a2a7ead5761ea56126a45479935588b06"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2a7ead5761ea56126a45479935588b06">maingo::ubp::UbpQuadExpr::operator/=</a></div><div class="ttdeci">UbpQuadExpr &amp; operator/=(const double in)</div><div class="ttdoc">Operator/= for double.</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:338</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_ad67e74dd1ac1383fadf94f23c8c3878c"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ad67e74dd1ac1383fadf94f23c8c3878c">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::nrtl_tau</a></div><div class="ttdeci">static QE nrtl_tau(const QE &amp;x, const double a, const double b, const double e, const double f)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:694</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a31df148020812018ce0185f9931cf7bd"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a31df148020812018ce0185f9931cf7bd">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::acosh</a></div><div class="ttdeci">static QE acosh(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:721</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_ad92d43f2bfc5500822ae2f24ff426b6e"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ad92d43f2bfc5500822ae2f24ff426b6e">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::pos</a></div><div class="ttdeci">static QE pos(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:731</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a8587b56c0385d935a6368c9947395455"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8587b56c0385d935a6368c9947395455">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::nrtl_dGtau</a></div><div class="ttdeci">static QE nrtl_dGtau(const QE &amp;x, const double a, const double b, const double e, const double f, const double alpha)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:699</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_ae1b5456347b2bcb76260813e446c1ba9"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#ae1b5456347b2bcb76260813e446c1ba9">maingo::ubp::UbpQuadExpr::operator/=</a></div><div class="ttdeci">UbpQuadExpr &amp; operator/=(const int in)</div><div class="ttdoc">Operator/= for int.</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:344</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_ac3ad5400183945189193f674f876c774"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#ac3ad5400183945189193f674f876c774">maingo::ubp::UbpQuadExpr::operator-=</a></div><div class="ttdeci">UbpQuadExpr &amp; operator-=(const int in)</div><div class="ttdoc">Operator-= for int.</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:278</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a5d002875452b4ee8a875f88dc01cb160"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a5d002875452b4ee8a875f88dc01cb160">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::tanh</a></div><div class="ttdeci">static QE tanh(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:718</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_a53ba87d0f920df7610866e1bcfe1ed5e"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a53ba87d0f920df7610866e1bcfe1ed5e">maingo::ubp::UbpQuadExpr::operator-=</a></div><div class="ttdeci">UbpQuadExpr &amp; operator-=(const double in)</div><div class="ttdoc">Operator-= for double.</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:271</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a246ae6c1ea943858ac55205e9cb26690"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a246ae6c1ea943858ac55205e9cb26690">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::pow</a></div><div class="ttdeci">static QE pow(const double x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:663</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_a6a7b56e39550931c2feb3bad0a801c38"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a6a7b56e39550931c2feb3bad0a801c38">maingo::ubp::UbpQuadExpr::UbpQuadExpr</a></div><div class="ttdeci">UbpQuadExpr(const double in)</div><div class="ttdoc">Constructor for a constant.</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:181</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a701f05f982f6c2488953c67599871540"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a701f05f982f6c2488953c67599871540">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::coth</a></div><div class="ttdeci">static QE coth(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:719</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_a61f894a3a9850af2a9478db3dfe12721"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">maingo::ubp::UbpQuadExpr::coeffsQuad</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; coeffsQuad</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:357</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a7e6b2880426b3aaf6ad0406c588d5ed2"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a7e6b2880426b3aaf6ad0406c588d5ed2">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::covariance_function</a></div><div class="ttdeci">static QE covariance_function(const QE &amp;x, const double type)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:705</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a5cbe6a20c3bcda77397c91a8656038fe"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a5cbe6a20c3bcda77397c91a8656038fe">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::iapws</a></div><div class="ttdeci">static QE iapws(const QE &amp;x, const double type)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:700</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a8074e42997b5850d3078c7b4d70c0ea2"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8074e42997b5850d3078c7b4d70c0ea2">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::rlmtd</a></div><div class="ttdeci">static QE rlmtd(const QE &amp;x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:683</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_acc1b11c33a232b16420b1cd78dc5b0c8"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#acc1b11c33a232b16420b1cd78dc5b0c8">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::inter</a></div><div class="ttdeci">static bool inter(QE &amp;xIy, const QE &amp;x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:742</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a4854e83ee269e6b6db03e7a8f9258df5"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a4854e83ee269e6b6db03e7a8f9258df5">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::atanh</a></div><div class="ttdeci">static QE atanh(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:722</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a101a89f16caa51f964e600e0a6b9bc23"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a101a89f16caa51f964e600e0a6b9bc23">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::enthalpy_of_vaporization</a></div><div class="ttdeci">static QE enthalpy_of_vaporization(const QE &amp;x, const double type, const double p1, const double p2, const double p3, const double p4, const double p5, const double p6=0)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:692</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a86dd68715ebcdbf9e5dac0bb7338f605"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a86dd68715ebcdbf9e5dac0bb7338f605">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::rho_vap_sat_ethanol_schroeder</a></div><div class="ttdeci">static QE rho_vap_sat_ethanol_schroeder(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:703</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a85f0fe631c27dfc8e2956e783f03bcd2"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a85f0fe631c27dfc8e2956e783f03bcd2">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::nrtl_Gtau</a></div><div class="ttdeci">static QE nrtl_Gtau(const QE &amp;x, const double a, const double b, const double e, const double f, const double alpha)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:697</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_acf627d293021a04bb8ba547ad6349437"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#acf627d293021a04bb8ba547ad6349437">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::sin</a></div><div class="ttdeci">static QE sin(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:710</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_aec88997480bed8057176853cfd2c7aaf"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#aec88997480bed8057176853cfd2c7aaf">maingo::ubp::UbpQuadExpr::operator-=</a></div><div class="ttdeci">UbpQuadExpr &amp; operator-=(const UbpQuadExpr &amp;in)</div><div class="ttdoc">Operator-= for UbpQuadExpr.</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:248</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_a2fecb504243251325b07e95aa1a33244"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">maingo::ubp::UbpQuadExpr::coeffsLin</a></div><div class="ttdeci">std::vector&lt; double &gt; coeffsLin</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:356</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_a44586840f98d6fa9e24fa04e67b7fea4"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a44586840f98d6fa9e24fa04e67b7fea4">maingo::ubp::UbpQuadExpr::UbpQuadExpr</a></div><div class="ttdeci">UbpQuadExpr(const size_t nvarIn, const size_t iLin)</div><div class="ttdoc">Constructor for a specific variable participating linearly.</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:163</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a43e321298fa9f26c63c3b3e4b839ad8a"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a43e321298fa9f26c63c3b3e4b839ad8a">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::hull</a></div><div class="ttdeci">static QE hull(const QE &amp;x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:728</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_aa96ebcb4ea989f485c06d119e24532d3"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aa96ebcb4ea989f485c06d119e24532d3">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::mid</a></div><div class="ttdeci">static double mid(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:673</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_ac59db4469292d72c052f4da427a50f3d"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ac59db4469292d72c052f4da427a50f3d">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::rho_liq_sat_ethanol_schroeder</a></div><div class="ttdeci">static QE rho_liq_sat_ethanol_schroeder(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:704</div></div>
-<div class="ttc" id="namespacemaingo_1_1ubp_html_ad3f555c68f9b3ae1ad075e914317afd5"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#ad3f555c68f9b3ae1ad075e914317afd5">maingo::ubp::operator/</a></div><div class="ttdeci">UbpQuadExpr operator/(const UbpQuadExpr &amp;in1, const UbpQuadExpr &amp;in2)</div><div class="ttdoc">Operator/ for two UbpQuadExpr.</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:588</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a62da96c6aefdddf79e2a09cfeee78716"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a62da96c6aefdddf79e2a09cfeee78716">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::mc_print</a></div><div class="ttdeci">static QE mc_print(const QE &amp;x, const int number)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:739</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a9968bf71e7888784e28962227f2fd80e"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a9968bf71e7888784e28962227f2fd80e">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::expx_times_y</a></div><div class="ttdeci">static QE expx_times_y(const QE &amp;x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:685</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a85b7c9efebaa4cf91b58f633079754f0"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a85b7c9efebaa4cf91b58f633079754f0">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::ub_func</a></div><div class="ttdeci">static QE ub_func(const QE &amp;x, const double ub)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:734</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a7ed010559aebb792e65c224fe998b689"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a7ed010559aebb792e65c224fe998b689">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::ideal_gas_enthalpy</a></div><div class="ttdeci">static QE ideal_gas_enthalpy(const QE &amp;x, const double x0, const double type, const double p1, const double p2, const double p3, const double p4, const double p5, const double p6=0, const double p7=0)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:688</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_a892812f4f25605f14c2abeb16effdd9d"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">maingo::ubp::UbpQuadExpr::constant</a></div><div class="ttdeci">double constant</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:355</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_aa365f13c0d21644b80c9379f5ad8e0e4"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aa365f13c0d21644b80c9379f5ad8e0e4">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::tan</a></div><div class="ttdeci">static QE tan(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:712</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a2ec1355320796f02d23c18fc4cfe4fb1"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a2ec1355320796f02d23c18fc4cfe4fb1">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::xlog_sum</a></div><div class="ttdeci">static QE xlog_sum(const std::vector&lt; QE &gt; &amp;x, const std::vector&lt; double &gt; &amp;coeff)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:738</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_ab953e12376b1ff2c3a5318ecc4ccf31e"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ab953e12376b1ff2c3a5318ecc4ccf31e">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::sqr</a></div><div class="ttdeci">static QE sqr(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:635</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_aec0b14475286255066d79e23334623fb"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aec0b14475286255066d79e23334623fb">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::acos</a></div><div class="ttdeci">static QE acos(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:714</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a8fcb97302591c8fc4f068e7c56b6a721"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8fcb97302591c8fc4f068e7c56b6a721">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::point</a></div><div class="ttdeci">static QE point(const double c)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:667</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_a44b8597bd206f1afad3abfe8de039716"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a44b8597bd206f1afad3abfe8de039716">maingo::ubp::UbpQuadExpr::UbpQuadExpr</a></div><div class="ttdeci">UbpQuadExpr(const size_t nvarIn)</div><div class="ttdoc">Constructor accepting a number of variables.</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:148</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_aea055afaf310ebc2c32cba3fdb3d9484"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aea055afaf310ebc2c32cba3fdb3d9484">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::nrtl_G</a></div><div class="ttdeci">static QE nrtl_G(const QE &amp;x, const double a, const double b, const double e, const double f, const double alpha)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:696</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a052639fdb63ad1b89ffeda209f67a4f1"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a052639fdb63ad1b89ffeda209f67a4f1">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::eq</a></div><div class="ttdeci">static bool eq(const QE &amp;x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:743</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a28f4df31ca38d0899de9c5688ad20599"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a28f4df31ca38d0899de9c5688ad20599">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::ne</a></div><div class="ttdeci">static bool ne(const QE &amp;x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:744</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_ae6ae73bd314ea55c0a23fb45bb4c4bdf"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ae6ae73bd314ea55c0a23fb45bb4c4bdf">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::iapws</a></div><div class="ttdeci">static QE iapws(const QE &amp;x, const QE &amp;y, const double type)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:701</div></div>
-<div class="ttc" id="namespacemaingo_1_1ubp_html_a5c67ac181e81a6949e8ecb8a870782e2"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#a5c67ac181e81a6949e8ecb8a870782e2">maingo::ubp::operator *</a></div><div class="ttdeci">std::vector&lt; double &gt; operator *(const std::vector&lt; double &gt; &amp;in1, const double in2)</div><div class="ttdoc">Operator* for multiplication of a double vector with a double constant.</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:111</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a8e8a7fb977a2e9a256fb854557db87a7"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8e8a7fb977a2e9a256fb854557db87a7">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::exp</a></div><div class="ttdeci">static QE exp(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:677</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a5671d40aba6b51eedb9fefa337f514fa"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a5671d40aba6b51eedb9fefa337f514fa">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::QE</a></div><div class="ttdeci">maingo::ubp::UbpQuadExpr QE</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:634</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a8a58a23c33bbb6636dd69a2f67e046fc"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8a58a23c33bbb6636dd69a2f67e046fc">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::cost_function</a></div><div class="ttdeci">static QE cost_function(const QE &amp;x, const double type, const double p1, const double p2, const double p3)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:693</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_ae697c1fcc04bff4b2893b51ce170fb08"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ae697c1fcc04bff4b2893b51ce170fb08">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::log</a></div><div class="ttdeci">static QE log(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:678</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a674ef91ce7ee31d7d9f914d06ca30804"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a674ef91ce7ee31d7d9f914d06ca30804">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::neg</a></div><div class="ttdeci">static QE neg(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:732</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a151904b8ee5f3035d5cc4c819dd58d95"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a151904b8ee5f3035d5cc4c819dd58d95">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::lt</a></div><div class="ttdeci">static bool lt(const QE &amp;x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:745</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a195d98248e0ba84680048c2611e60004"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a195d98248e0ba84680048c2611e60004">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::pow</a></div><div class="ttdeci">static QE pow(const QE &amp;x, const double a)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:649</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_aef9780ca1ffdd1463312ecf3616fb1e4"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aef9780ca1ffdd1463312ecf3616fb1e4">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::min</a></div><div class="ttdeci">static QE min(const QE &amp;x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:729</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_aff22ea406868fc39222d529a339ae892"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aff22ea406868fc39222d529a339ae892">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::sum_div</a></div><div class="ttdeci">static QE sum_div(const std::vector&lt; QE &gt; &amp;x, const std::vector&lt; double &gt; &amp;coeff)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:737</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a33c000da2ea95bd0cc39aa2352344142"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a33c000da2ea95bd0cc39aa2352344142">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::ge</a></div><div class="ttdeci">static bool ge(const QE &amp;x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:748</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_ae746ea045da4196e833c652a6264a126"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ae746ea045da4196e833c652a6264a126">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::atan</a></div><div class="ttdeci">static QE atan(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:715</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a060be08bd96d38d7b7f64823fb843cff"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a060be08bd96d38d7b7f64823fb843cff">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::sinh</a></div><div class="ttdeci">static QE sinh(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:716</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_af4ef04f795e24dc93ee86751d647b889"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#af4ef04f795e24dc93ee86751d647b889">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::monom</a></div><div class="ttdeci">static QE monom(const unsigned int n, const QE *x, const unsigned *k)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:666</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_ab2149dbee115f2ec2ba436df75ec297a"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ab2149dbee115f2ec2ba436df75ec297a">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::asin</a></div><div class="ttdeci">static QE asin(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:713</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_a2e8b906b6e8ea5c22c4534e85cbbeac7"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2e8b906b6e8ea5c22c4534e85cbbeac7">maingo::ubp::UbpQuadExpr::operator/=</a></div><div class="ttdeci">UbpQuadExpr &amp; operator/=(const UbpQuadExpr &amp;in)</div><div class="ttdoc">Operator/= for UbpQuadExpr.</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:336</div></div>
-<div class="ttc" id="exceptions_8h_html"><div class="ttname"><a href="exceptions_8h.html">exceptions.h</a></div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_aad7aac80cc1464c33b622a1ceff65ed4"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aad7aac80cc1464c33b622a1ceff65ed4">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::vapor_pressure</a></div><div class="ttdeci">static QE vapor_pressure(const QE &amp;x, const double type, const double p1, const double p2, const double p3, const double p4=0, const double p5=0, const double p6=0, const double p7=0, const double p8=0, const double p9=0, const double p10=0)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:686</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a37b2c10d1369ec2f610743339a132903"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a37b2c10d1369ec2f610743339a132903">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::gaussian_probability_density_function</a></div><div class="ttdeci">static QE gaussian_probability_density_function(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:707</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a4f2de455a2fc93a80e4a132c44457380"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a4f2de455a2fc93a80e4a132c44457380">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::sqrt</a></div><div class="ttdeci">static QE sqrt(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:676</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_a7634e17e6d08c10571dbca448506e95e"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a7634e17e6d08c10571dbca448506e95e">maingo::ubp::UbpQuadExpr::operator+=</a></div><div class="ttdeci">UbpQuadExpr &amp; operator+=(const int in)</div><div class="ttdoc">Operator+= for int.</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:241</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a9880a03fbf12369b0492a93c42cd73df"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a9880a03fbf12369b0492a93c42cd73df">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::fabs</a></div><div class="ttdeci">static QE fabs(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:709</div></div>
-<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO</div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a1f2039b54ef15f2e194f90d97047dbf8"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a1f2039b54ef15f2e194f90d97047dbf8">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::pow</a></div><div class="ttdeci">static QE pow(const QE &amp;x, const int n)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:636</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a0343beb7d475418ad9443de3dc486c2f"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a0343beb7d475418ad9443de3dc486c2f">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::asinh</a></div><div class="ttdeci">static QE asinh(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:720</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_ab448dba7b8e6123194c9cf88ae2f2b65"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#ab448dba7b8e6123194c9cf88ae2f2b65">maingo::ubp::UbpQuadExpr::UbpQuadExpr</a></div><div class="ttdeci">UbpQuadExpr()</div><div class="ttdoc">Default constructor.</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:141</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_a0f9dba9a22cd1bad6d7920742a46785c"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a0f9dba9a22cd1bad6d7920742a46785c">maingo::ubp::UbpQuadExpr::operator *=</a></div><div class="ttdeci">UbpQuadExpr &amp; operator *=(const UbpQuadExpr &amp;in)</div><div class="ttdoc">Operator*= for UbpQuadExpr.</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:285</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_abc07d46fb6820ee14d64801c0fd1a4f0"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#abc07d46fb6820ee14d64801c0fd1a4f0">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::euclidean_norm_2d</a></div><div class="ttdeci">static QE euclidean_norm_2d(const QE &amp;x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:684</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_aff033c9054e77ba402527b010e3a7252"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aff033c9054e77ba402527b010e3a7252">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::fstep</a></div><div class="ttdeci">static QE fstep(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:726</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a08070e5bb62a0835fe34221600aad6db"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a08070e5bb62a0835fe34221600aad6db">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::p_sat_ethanol_schroeder</a></div><div class="ttdeci">static QE p_sat_ethanol_schroeder(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:702</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_aeeb90dcd1ad5567bf96b31c0f8d07e0c"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aeeb90dcd1ad5567bf96b31c0f8d07e0c">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::acoth</a></div><div class="ttdeci">static QE acoth(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:723</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a6f1b459f0497dcbb9b27c15a3da93679"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a6f1b459f0497dcbb9b27c15a3da93679">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::l</a></div><div class="ttdeci">static double l(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:670</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a1be484d4370ef7155d08d9e0d3aad1fa"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a1be484d4370ef7155d08d9e0d3aad1fa">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::fabsx_times_x</a></div><div class="ttdeci">static QE fabsx_times_x(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:680</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_ac3c457143c6f4a4400194ccf44f82c54"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ac3c457143c6f4a4400194ccf44f82c54">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::arh</a></div><div class="ttdeci">static QE arh(const QE &amp;x, const double k)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:740</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a2cfbd58e1ce450b19c8329113b9654b6"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a2cfbd58e1ce450b19c8329113b9654b6">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::lb_func</a></div><div class="ttdeci">static QE lb_func(const QE &amp;x, const double lb)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:733</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_aab92ab0256c3cac10a7bb3ce19d80dcb"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aab92ab0256c3cac10a7bb3ce19d80dcb">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::gt</a></div><div class="ttdeci">static bool gt(const QE &amp;x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:747</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a7f9ead00fc41293e4f6e223bcc7e3842"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a7f9ead00fc41293e4f6e223bcc7e3842">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::inv</a></div><div class="ttdeci">static QE inv(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:675</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a7c36b5f1e9e15a63b53482a96238dfde"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a7c36b5f1e9e15a63b53482a96238dfde">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::prod</a></div><div class="ttdeci">static QE prod(const unsigned int n, const QE *x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:665</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a6256fb5b78d5052bad6d5fddabe367a4"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a6256fb5b78d5052bad6d5fddabe367a4">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::zeroone</a></div><div class="ttdeci">static QE zeroone()</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:668</div></div>
-<div class="ttc" id="namespacemaingo_1_1ubp_html_a10c5d0d8fe3f2daa26131fe923cdd9bc"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#a10c5d0d8fe3f2daa26131fe923cdd9bc">maingo::ubp::operator+</a></div><div class="ttdeci">std::vector&lt; double &gt; operator+(const std::vector&lt; double &gt; &amp;in1, const std::vector&lt; double &gt; &amp;in2)</div><div class="ttdoc">Operator+ for addition of two double vectors.</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:56</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a53999c0ccd04a819391c96726db8c98c"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a53999c0ccd04a819391c96726db8c98c">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::erf</a></div><div class="ttdeci">static QE erf(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:724</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_aa4a67d44b81dc4218b1a7fa94d5da7f9"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aa4a67d44b81dc4218b1a7fa94d5da7f9">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::squash_node</a></div><div class="ttdeci">static QE squash_node(const QE &amp;x, const double lb, const double ub)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:736</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a2f1a2770aca29e5b896a858d11d78f9f"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a2f1a2770aca29e5b896a858d11d78f9f">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::nrtl_dtau</a></div><div class="ttdeci">static QE nrtl_dtau(const QE &amp;x, const double b, const double e, const double f)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:695</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a157695047ca0cea633aebe7a89d83129"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a157695047ca0cea633aebe7a89d83129">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::I</a></div><div class="ttdeci">static void I(QE &amp;x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:669</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a1773fd9bc71bcaae2c2cf58030d5919e"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a1773fd9bc71bcaae2c2cf58030d5919e">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::nrtl_Gdtau</a></div><div class="ttdeci">static QE nrtl_Gdtau(const QE &amp;x, const double a, const double b, const double e, const double f, const double alpha)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:698</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a300c2a2c5eb7685e91ac7ae9228b66a1"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a300c2a2c5eb7685e91ac7ae9228b66a1">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::le</a></div><div class="ttdeci">static bool le(const QE &amp;x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:746</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_af9eee425ca6bb3e53c145c265648bc1f"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">maingo::ubp::UbpQuadExpr::nvar</a></div><div class="ttdeci">size_t nvar</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:354</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_af72e66c0a04b6fa8d25d89351473abe4"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af72e66c0a04b6fa8d25d89351473abe4">maingo::ubp::UbpQuadExpr::operator=</a></div><div class="ttdeci">UbpQuadExpr &amp; operator=(const int in)</div><div class="ttdoc">Operator= for an integer constant.</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:201</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a9b2e90718f22ebb0a1b04a4085990a1e"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a9b2e90718f22ebb0a1b04a4085990a1e">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::abs</a></div><div class="ttdeci">static double abs(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:672</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_ad9a450d917deff7d35dcbc47b952c528"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ad9a450d917deff7d35dcbc47b952c528">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::cheb</a></div><div class="ttdeci">static QE cheb(const QE &amp;x, const unsigned n)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:741</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a580343aaf00d1a8e833792805b5be075"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a580343aaf00d1a8e833792805b5be075">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::diam</a></div><div class="ttdeci">static double diam(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:674</div></div>
-<div class="ttc" id="namespacemaingo_1_1ubp_html_a7c723688f344053b4a3d7e0ba2e4c144"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#a7c723688f344053b4a3d7e0ba2e4c144">maingo::ubp::operator-</a></div><div class="ttdeci">std::vector&lt; double &gt; operator-(const std::vector&lt; double &gt; &amp;in)</div><div class="ttdoc">Operator- for a double vector.</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:34</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_acce2c14abe3accaee53ea03f84c19734"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#acce2c14abe3accaee53ea03f84c19734">maingo::ubp::UbpQuadExpr::operator=</a></div><div class="ttdeci">UbpQuadExpr &amp; operator=(const double in)</div><div class="ttdoc">Operator= for a double constant.</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:191</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a05ef1af5ad24b4baa6dfec609bd542db"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a05ef1af5ad24b4baa6dfec609bd542db">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::pow</a></div><div class="ttdeci">static QE pow(const QE &amp;x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:662</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_ac069ad54ff97a3a223fc69a07e9da183"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ac069ad54ff97a3a223fc69a07e9da183">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::cosh</a></div><div class="ttdeci">static QE cosh(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:717</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a11c7c90a5cb3bb191af49d3e5c374eaf"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a11c7c90a5cb3bb191af49d3e5c374eaf">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::pow</a></div><div class="ttdeci">static QE pow(const int x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:664</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_exception_html"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o_exception.html">maingo::MAiNGOException</a></div><div class="ttdoc">This class defines the exceptions thrown by MAiNGO.</div><div class="ttdef"><b>Definition:</b> exceptions.h:39</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_ab9d6f9c285286a74762ffb1831a892f1"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ab9d6f9c285286a74762ffb1831a892f1">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::acquisition_function</a></div><div class="ttdeci">static QE acquisition_function(const QE &amp;x, const QE &amp;y, const double type, const double fmin)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:706</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_a1cd55371cff5dac0174d8d37ceba6c5d"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a1cd55371cff5dac0174d8d37ceba6c5d">maingo::ubp::UbpQuadExpr::operator+=</a></div><div class="ttdeci">UbpQuadExpr &amp; operator+=(const UbpQuadExpr &amp;in)</div><div class="ttdoc">Operator+= for UbpQuadExpr.</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:211</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_aca2d2601bf180bcc4a95059dcaaff98e"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aca2d2601bf180bcc4a95059dcaaff98e">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::xexpax</a></div><div class="ttdeci">static QE xexpax(const QE &amp;x, const double a)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:681</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_ae1eab66656e68a802a2d5a9a5aeb893e"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ae1eab66656e68a802a2d5a9a5aeb893e">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::bounding_func</a></div><div class="ttdeci">static QE bounding_func(const QE &amp;x, const double lb, const double ub)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:735</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_abddc035b2216d9ea039ce7215ca76bc4"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#abddc035b2216d9ea039ce7215ca76bc4">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::max</a></div><div class="ttdeci">static QE max(const QE &amp;x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:730</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a10e1f863003795a5e2eaabcc49772c3c"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a10e1f863003795a5e2eaabcc49772c3c">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::cos</a></div><div class="ttdeci">static QE cos(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:711</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_ade6ffcc7987d0baac66bc5f08fdd6d91"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ade6ffcc7987d0baac66bc5f08fdd6d91">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::u</a></div><div class="ttdeci">static double u(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:671</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_a561bcf6912a9390cf05b7c8c5c0755a5"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a561bcf6912a9390cf05b7c8c5c0755a5">maingo::ubp::UbpQuadExpr::operator+=</a></div><div class="ttdeci">UbpQuadExpr &amp; operator+=(const double in)</div><div class="ttdoc">Operator+= for double.</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:234</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a8a959dfd152b52a68467983060f7c94a"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8a959dfd152b52a68467983060f7c94a">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::erfc</a></div><div class="ttdeci">static QE erfc(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:725</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a5426d1dd5c4adaf426119c168bee4e4e"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a5426d1dd5c4adaf426119c168bee4e4e">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::saturation_temperature</a></div><div class="ttdeci">static QE saturation_temperature(const QE &amp;x, const double type, const double p1, const double p2, const double p3, const double p4=0, const double p5=0, const double p6=0, const double p7=0, const double p8=0, const double p9=0, const double p10=0)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:690</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a4f99f7a6c7d498a2bdee55459ac4b27f"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a4f99f7a6c7d498a2bdee55459ac4b27f">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::lmtd</a></div><div class="ttdeci">static QE lmtd(const QE &amp;x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:682</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_ac9cf7b4edf54c33450cf0bb2f46b178d"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ac9cf7b4edf54c33450cf0bb2f46b178d">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::regnormal</a></div><div class="ttdeci">static QE regnormal(const QE &amp;x, const double a, const double b)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:708</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">maingo::ubp::UbpQuadExpr</a></div><div class="ttdoc">Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps....</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:135</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a1615f15a77004cb7164aa30849cc2b19"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a1615f15a77004cb7164aa30849cc2b19">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::xlog</a></div><div class="ttdeci">static QE xlog(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:679</div></div>
-<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a4ee526b8aee72df2eec3366b9be4037e"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a4ee526b8aee72df2eec3366b9be4037e">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::bstep</a></div><div class="ttdeci">static QE bstep(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:727</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_a3bc13a9e7018663adb775300879a6584"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">maingo::ubp::UbpQuadExpr::hasQuad</a></div><div class="ttdeci">bool hasQuad</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:358</div></div>
+<a href="ubp_quad_expr_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_m_ai_n_g_o_exception_8h.html">MAiNGOException.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &quot;mcop.hpp&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="keyword">namespace </span>ubp {</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="keyword">inline</span> std::vector&lt;double&gt;</div><div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#a7c723688f344053b4a3d7e0ba2e4c144">   29</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a7c723688f344053b4a3d7e0ba2e4c144">operator-</a>(<span class="keyword">const</span> std::vector&lt;double&gt;&amp; in)</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;{</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    std::vector&lt;double&gt; out(in.size());</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; in.size(); i++) {</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;        out[i] = -in[i];</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    }</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    <span class="keywordflow">return</span> out;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;}</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keyword">inline</span> std::vector&lt;std::vector&lt;double&gt;&gt;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#ae0d200ca4c3aa81516b03974aaa7e8b2">   40</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a7c723688f344053b4a3d7e0ba2e4c144">operator-</a>(<span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt;&amp; in)</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; out(in.size());</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; in.size(); i++) {</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        out[i] = -in[i];</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    }</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    <span class="keywordflow">return</span> out;</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;}</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="keyword">inline</span> std::vector&lt;double&gt;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#a10c5d0d8fe3f2daa26131fe923cdd9bc">   51</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a10c5d0d8fe3f2daa26131fe923cdd9bc">operator+</a>(<span class="keyword">const</span> std::vector&lt;double&gt;&amp; in1, <span class="keyword">const</span> std::vector&lt;double&gt;&amp; in2)</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;{</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    <span class="keywordflow">if</span> (in1.size() != in2.size())</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- inconsistent sizes in vector + operator.&quot;</span>);</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    std::vector&lt;double&gt; out(in1.size());</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; in1.size(); i++) {</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        out[i] = in1[i] + in2[i];</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    }</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    <span class="keywordflow">return</span> out;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;}</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="keyword">inline</span> std::vector&lt;std::vector&lt;double&gt;&gt;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#aa428e1d300a34bef5231c161b0e08597">   64</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a10c5d0d8fe3f2daa26131fe923cdd9bc">operator+</a>(<span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt;&amp; in1, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt;&amp; in2)</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;{</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    <span class="keywordflow">if</span> (in1.size() != in2.size())</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- inconsistent sizes in vector&lt;vector&gt; + operator.&quot;</span>);</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; out(in1.size());</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; in1.size(); i++) {</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;        <span class="keywordflow">if</span> (in1[i].size() != in2[i].size())</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- inconsistent sizes in vector&lt;vector&gt; + operator.&quot;</span>);</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;        out[i] = in1[i] + in2[i];</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    }</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    <span class="keywordflow">return</span> out;</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;}</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="keyword">inline</span> std::vector&lt;double&gt;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#aa60e9a98c38d0c5836692f82c46f7408">   79</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a7c723688f344053b4a3d7e0ba2e4c144">operator-</a>(<span class="keyword">const</span> std::vector&lt;double&gt;&amp; in1, <span class="keyword">const</span> std::vector&lt;double&gt;&amp; in2)</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;{</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    <span class="keywordflow">if</span> (in1.size() != in2.size())</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- inconsistent sizes in vector - operator.&quot;</span>);</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    std::vector&lt;double&gt; out(in1.size());</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; in1.size(); i++) {</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        out[i] = in1[i] - in2[i];</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    }</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    <span class="keywordflow">return</span> out;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;}</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<span class="keyword">inline</span> std::vector&lt;std::vector&lt;double&gt;&gt;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#a742b207c46fd0870d53d6d13366e8ebc">   92</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a7c723688f344053b4a3d7e0ba2e4c144">operator-</a>(<span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt;&amp; in1, <span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt;&amp; in2)</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;{</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    <span class="keywordflow">if</span> (in1.size() != in2.size())</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- inconsistent sizes in vector&lt;vector&gt; - operator.&quot;</span>);</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; out(in1.size());</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; in1.size(); i++) {</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;        <span class="keywordflow">if</span> (in1[i].size() != in2[i].size())</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- inconsistent sizes in vector&lt;vector&gt; - operator.&quot;</span>);</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;        out[i] = in1[i] - in2[i];</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    }</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    <span class="keywordflow">return</span> out;</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;}</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;<span class="keyword">inline</span> std::vector&lt;double&gt;</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#a63efcd0b2ad1996c20545e1481f0835a">  107</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a63efcd0b2ad1996c20545e1481f0835a">operator*</a>(<span class="keyword">const</span> std::vector&lt;double&gt;&amp; in1, <span class="keyword">const</span> <span class="keywordtype">double</span> in2)</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;{</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    std::vector&lt;double&gt; out(in1.size());</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; in1.size(); i++) {</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        out[i] = in1[i] * in2;</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    }</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    <span class="keywordflow">return</span> out;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;}</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;<span class="keyword">inline</span> std::vector&lt;std::vector&lt;double&gt;&gt;</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#aa896d2608e6152fd66b0ec6031a083ef">  118</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a63efcd0b2ad1996c20545e1481f0835a">operator*</a>(<span class="keyword">const</span> std::vector&lt;std::vector&lt;double&gt;&gt;&amp; in1, <span class="keyword">const</span> <span class="keywordtype">double</span> in2)</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;{</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; out(in1.size());</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; in1.size(); i++) {</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        out[i] = in1[i] * in2;</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    }</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    <span class="keywordflow">return</span> out;</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;}</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">  132</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> {</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#ab448dba7b8e6123194c9cf88ae2f2b65">  138</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#ab448dba7b8e6123194c9cf88ae2f2b65">UbpQuadExpr</a>(){};</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a44b8597bd206f1afad3abfe8de039716">  145</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a44b8597bd206f1afad3abfe8de039716">UbpQuadExpr</a>(<span class="keyword">const</span> <span class="keywordtype">size_t</span> nvarIn)</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;    {</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> = nvarIn;</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>.resize(<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>, 0);</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>.resize(<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>, std::vector&lt;double&gt;(<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>, 0));</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> = 0;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>  = <span class="keyword">false</span>;</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    }</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a44586840f98d6fa9e24fa04e67b7fea4">  160</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a44586840f98d6fa9e24fa04e67b7fea4">UbpQuadExpr</a>(<span class="keyword">const</span> <span class="keywordtype">size_t</span> nvarIn, <span class="keyword">const</span> <span class="keywordtype">size_t</span> iLin)</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;    {</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;        <span class="keywordflow">if</span> (iLin &gt;= nvarIn) {</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- iLin &gt;= nvarIn.&quot;</span>);</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;        }</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> = nvarIn;</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>.resize(<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>, 0);</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>[iLin] = 1;</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>.resize(<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>, std::vector&lt;double&gt;(<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>, 0));</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> = 0;</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>  = <span class="keyword">false</span>;</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    }</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a6a7b56e39550931c2feb3bad0a801c38">  178</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a6a7b56e39550931c2feb3bad0a801c38">UbpQuadExpr</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> in)</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;    {</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> = 0;</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>.clear();</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>.clear();</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> = in;</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>  = <span class="keyword">false</span>;</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;    }</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#acce2c14abe3accaee53ea03f84c19734">  188</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#acce2c14abe3accaee53ea03f84c19734">operator=</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> in)</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;    {</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> = 0;</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>.clear(), <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>.clear();</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> = in;</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>  = <span class="keyword">false</span>;</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    }</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af72e66c0a04b6fa8d25d89351473abe4">  198</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af72e66c0a04b6fa8d25d89351473abe4">operator=</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> in)</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    {</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> = 0;</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>.clear(), <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>.clear();</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> = (double)in;</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>  = <span class="keyword">false</span>;</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    }</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a1cd55371cff5dac0174d8d37ceba6c5d">  208</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a1cd55371cff5dac0174d8d37ceba6c5d">operator+=</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in)</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    {</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> &amp;&amp; (<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != 0 &amp;&amp; in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != 0))</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- nvar does not fit in += operator.&quot;</span>);</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> == 0) {</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>;</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> += in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;        }</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> == 0) {</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> += in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;        }</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;        <span class="keywordflow">else</span> {</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a> + in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> + in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>;</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> += in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;        }</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a> = <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a> || in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>;</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;    }</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a561bcf6912a9390cf05b7c8c5c0755a5">  231</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a561bcf6912a9390cf05b7c8c5c0755a5">operator+=</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> in)</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    {</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> += in;</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;    }</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a7634e17e6d08c10571dbca448506e95e">  238</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a7634e17e6d08c10571dbca448506e95e">operator+=</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> in)</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    {</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> += in;</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;    }</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#aec88997480bed8057176853cfd2c7aaf">  245</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#aec88997480bed8057176853cfd2c7aaf">operator-=</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in)</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;    {</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> &amp;&amp; (<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != 0 &amp;&amp; in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != 0))</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- nvar does not fit in += operator.&quot;</span>);</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> == 0) {</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = -in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = -in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>;</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> -= in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;        }</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> == 0) {</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> -= in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;        }</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;        <span class="keywordflow">else</span> {</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a> - in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> - in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>;</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> -= in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;        }</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a> = <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a> || in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>;</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;    }</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a53ba87d0f920df7610866e1bcfe1ed5e">  268</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a53ba87d0f920df7610866e1bcfe1ed5e">operator-=</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> in)</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;    {</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> -= in;</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;    }</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;</div><div class="line"><a name="l00275"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#ac3ad5400183945189193f674f876c774">  275</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#ac3ad5400183945189193f674f876c774">operator-=</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> in)</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;    {</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> -= in;</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;    }</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;</div><div class="line"><a name="l00282"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a24790536a92c354b15430c00b0258c40">  282</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a24790536a92c354b15430c00b0258c40">operator*=</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in)</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;    {</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> &amp;&amp; (<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != 0 &amp;&amp; in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != 0))</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- nvar does not fit in * operator.&quot;</span>);</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> == 0) {</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a> * <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> * <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> * <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>    = in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>;</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;        }</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> == 0) {</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a> * in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> * in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> * in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;        }</div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;        <span class="keywordflow">else</span> {</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;            <span class="keywordflow">if</span> (<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a> || in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>)</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;                <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- multiplications higher than second order are not allowed in (MIQ)Ps.&quot;</span>);</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;            <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>; i++) {</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;                <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>; j++) {</div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;                    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>[i][j] = <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>[i] * in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>[j];</div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;                }</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;                <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>[i] = <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>[i] * in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> + in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>[i] * <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;            }</div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> = in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> * <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;            <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>  = <span class="keyword">true</span>;</div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;        }</div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;    }</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a791a3261856056f2303dd574eb3f6dd3">  315</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a791a3261856056f2303dd574eb3f6dd3">operator*=</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> in)</div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;    {</div><div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a> * in;</div><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> * in;</div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> * in;</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;    }</div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;</div><div class="line"><a name="l00324"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a4be525c49a8d761438570a34a09d6077">  324</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a4be525c49a8d761438570a34a09d6077">operator*=</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> in)</div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;    {</div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a> * (double)in;</div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> * (double)in;</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;        <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> * (double)in;</div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;    }</div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;</div><div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2e8b906b6e8ea5c22c4534e85cbbeac7">  333</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2e8b906b6e8ea5c22c4534e85cbbeac7">operator/=</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in) { <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function x/y not allowed in (MIQ)Ps.&quot;</span>); }</div><div class="line"><a name="l00335"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2a7ead5761ea56126a45479935588b06">  335</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2a7ead5761ea56126a45479935588b06">operator/=</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> in)</div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;    {</div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;        *<span class="keyword">this</span> *= (1. / in);</div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;    }</div><div class="line"><a name="l00341"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#ae1b5456347b2bcb76260813e446c1ba9">  341</a></span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#ae1b5456347b2bcb76260813e446c1ba9">operator/=</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> in)</div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;    {</div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;        *<span class="keyword">this</span> *= (1. / (double)in);</div><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;    }</div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;</div><div class="line"><a name="l00351"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">  351</a></span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>;                                 </div><div class="line"><a name="l00352"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">  352</a></span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;                             </div><div class="line"><a name="l00353"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">  353</a></span>&#160;    std::vector&lt;double&gt; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;               </div><div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">  354</a></span>&#160;    std::vector&lt;std::vector&lt;double&gt;&gt; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>; </div><div class="line"><a name="l00355"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">  355</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>;                                </div><div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;};</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;</div><div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;<span class="keyword">inline</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a></div><div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#a34d96b5d5baa870bf3c50543044f17fa">  361</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a10c5d0d8fe3f2daa26131fe923cdd9bc">operator+</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in)</div><div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;{</div><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;    <span class="keywordflow">return</span> in;</div><div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;}</div><div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;</div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00368"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#a71bc9598739d457c38b6c8620fa70e6a">  368</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a10c5d0d8fe3f2daa26131fe923cdd9bc">operator+</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in1, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in2)</div><div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;{</div><div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;    <span class="keywordflow">if</span> (in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> &amp;&amp; (in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != 0 &amp;&amp; in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != 0))</div><div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- nvar does not fit in + operator.&quot;</span>);</div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;</div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> res(in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>);</div><div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;    <span class="keywordflow">if</span> (in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> == 0) {</div><div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;</div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>;</div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> + in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;    }</div><div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> == 0) {</div><div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;</div><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>;</div><div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> + in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;    }</div><div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;    <span class="keywordflow">else</span> {</div><div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a> + in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;</div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> + in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>;</div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> + in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;    }</div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a> = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a> || in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>;</div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;    <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;}</div><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;</div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00395"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#a5d61a1b0104c207a63c55da96bbe28bf">  395</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a10c5d0d8fe3f2daa26131fe923cdd9bc">operator+</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in1, <span class="keyword">const</span> <span class="keywordtype">double</span>&amp; in2)</div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;{</div><div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> res(in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>);</div><div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;</div><div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>;</div><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> + in2;</div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>    = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>;</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;    <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;}</div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;</div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00407"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#ad836c3ed6766c075161c027b5eca6e25">  407</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a10c5d0d8fe3f2daa26131fe923cdd9bc">operator+</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in1, <span class="keyword">const</span> <span class="keywordtype">int</span>&amp; in2)</div><div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;{</div><div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> res(in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>);</div><div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;</div><div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>;</div><div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> + in2;</div><div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>    = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>;</div><div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;    <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;}</div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;</div><div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00419"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#ad4f8e6ebfcd8fc7e3fc7e7b4926892ac">  419</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a10c5d0d8fe3f2daa26131fe923cdd9bc">operator+</a>(<span class="keyword">const</span> <span class="keywordtype">double</span>&amp; in1, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in2)</div><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;{</div><div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;    <span class="keywordflow">return</span> in2 + in1;</div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;}</div><div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;</div><div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00426"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#a8f178973e405455b0384fd128b3f1be7">  426</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a10c5d0d8fe3f2daa26131fe923cdd9bc">operator+</a>(<span class="keyword">const</span> <span class="keywordtype">int</span>&amp; in1, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in2)</div><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;{</div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;    <span class="keywordflow">return</span> in2 + in1;</div><div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;}</div><div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;</div><div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00433"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#ac85543a4274998b12aca4e184764a4a1">  433</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a7c723688f344053b4a3d7e0ba2e4c144">operator-</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in)</div><div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;{</div><div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> res(in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>);</div><div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = -in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;</div><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = -in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>;</div><div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = -in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>    = in.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>;</div><div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;    <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;}</div><div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;</div><div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00445"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#ac33b3f1dcbbfc89678ddd9d83b12c33e">  445</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a7c723688f344053b4a3d7e0ba2e4c144">operator-</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in1, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in2)</div><div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;{</div><div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;    <span class="keywordflow">if</span> (in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> &amp;&amp; (in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != 0 &amp;&amp; in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != 0))</div><div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- nvar does not fit in - operator.&quot;</span>);</div><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;</div><div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> res(in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>);</div><div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;</div><div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;    <span class="keywordflow">if</span> (in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> == 0) {</div><div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = -in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;</div><div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = -in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>;</div><div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> - in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;    }</div><div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> == 0) {</div><div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;</div><div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>;</div><div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> - in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;    }</div><div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;    <span class="keywordflow">else</span> {</div><div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a> - in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;</div><div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> - in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>;</div><div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> - in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;    }</div><div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a> = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a> || in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>;</div><div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;    <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;}</div><div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;</div><div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00473"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#ac39deeba0da11c5b6460085c0d9e699c">  473</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a7c723688f344053b4a3d7e0ba2e4c144">operator-</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in1, <span class="keyword">const</span> <span class="keywordtype">double</span>&amp; in2)</div><div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;{</div><div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> res(in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>);</div><div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;</div><div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>;</div><div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> - in2;</div><div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>    = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>;</div><div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;    <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;}</div><div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;</div><div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00485"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#aa6cf0d34878dfbcc39ede6d5e3911612">  485</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a7c723688f344053b4a3d7e0ba2e4c144">operator-</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in1, <span class="keyword">const</span> <span class="keywordtype">int</span>&amp; in2)</div><div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;{</div><div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> res(in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>);</div><div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;</div><div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>;</div><div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> - in2;</div><div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>    = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>;</div><div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;    <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;}</div><div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;</div><div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00497"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#a32aa5e9142e01cdd969ed7bc97324a6f">  497</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a7c723688f344053b4a3d7e0ba2e4c144">operator-</a>(<span class="keyword">const</span> <span class="keywordtype">double</span>&amp; in1, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in2)</div><div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;{</div><div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> res(in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>);</div><div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = -in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;</div><div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = -in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>;</div><div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = in1 - in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>    = in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>;</div><div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;    <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;}</div><div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;</div><div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00509"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#ab9fceb07e4c759872241321cdd48e269">  509</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a7c723688f344053b4a3d7e0ba2e4c144">operator-</a>(<span class="keyword">const</span> <span class="keywordtype">int</span>&amp; in1, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in2)</div><div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;{</div><div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> res(in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>);</div><div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = -in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>;</div><div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = -in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>;</div><div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = in1 - in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>    = in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>;</div><div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;    <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;}</div><div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;</div><div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00521"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#a7731fb6c5c16ba843f8b36512c3f7f0c">  521</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a63efcd0b2ad1996c20545e1481f0835a">operator*</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in1, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in2)</div><div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;{</div><div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;    <span class="keywordflow">if</span> (in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> &amp;&amp; (in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != 0 &amp;&amp; in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> != 0))</div><div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- nvar does not fit in * operator.&quot;</span>);</div><div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;</div><div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> res(in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>);</div><div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;    <span class="keywordflow">if</span> (in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> == 0) {</div><div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a> * in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> * in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> * in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>    = in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>;</div><div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;    }</div><div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a> == 0) {</div><div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a> * in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> * in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> * in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>    = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>;</div><div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;    }</div><div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;    <span class="keywordflow">else</span> {</div><div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;        <span class="keywordflow">if</span> (in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a> || in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>)</div><div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- multiplications higher than second order are not allowed in (MIQ)Ps.&quot;</span>);</div><div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;</div><div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>; i++) {</div><div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;            <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>; j++) {</div><div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;                res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a>[i][j] = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>[i] * in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>[j];</div><div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;            }</div><div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;            res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>[i] = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>[i] * in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> + in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>[i] * in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;        }</div><div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> * in2.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>;</div><div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;        res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>  = <span class="keyword">true</span>;</div><div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;    }</div><div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;    <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;}</div><div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;</div><div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00557"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#aa3340e4491d298e5f1388853c9c183db">  557</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a63efcd0b2ad1996c20545e1481f0835a">operator*</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in1, <span class="keyword">const</span> <span class="keywordtype">double</span> in2)</div><div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;{</div><div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;    <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a> res(in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">nvar</a>);</div><div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a>  = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">coeffsLin</a> * in2;</div><div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">coeffsQuad</a> * in2;</div><div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a>   = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">constant</a> * in2;</div><div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;    res.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>    = in1.<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">hasQuad</a>;</div><div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;    <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;}</div><div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;</div><div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00569"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#aac93aa0207fe1de9f3a73b4985f96343">  569</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a63efcd0b2ad1996c20545e1481f0835a">operator*</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in1, <span class="keyword">const</span> <span class="keywordtype">int</span> in2)</div><div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;{</div><div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;    <span class="keywordflow">return</span> in1 * ((double)in2);</div><div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;}</div><div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;</div><div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00576"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#a7d5d0a8e327941d11246bfdb428239e7">  576</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a63efcd0b2ad1996c20545e1481f0835a">operator*</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> in1, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in2)</div><div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;{</div><div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;    <span class="keywordflow">return</span> in2 * in1;</div><div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;}</div><div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;</div><div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00583"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#a4e5d8a29639dd84a703944c7489b0b84">  583</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#a63efcd0b2ad1996c20545e1481f0835a">operator*</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> in1, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in2)</div><div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;{</div><div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;    <span class="keywordflow">return</span> in2 * ((double)in1);</div><div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;}</div><div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;</div><div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00590"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#ad3f555c68f9b3ae1ad075e914317afd5">  590</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#ad3f555c68f9b3ae1ad075e914317afd5">operator/</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in1, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in2)</div><div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;{</div><div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;    <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function x/y not allowed in (MIQ)Ps.&quot;</span>);</div><div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;}</div><div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;</div><div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00597"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#a1bdea6d9e43b0b3b4950db2888f59180">  597</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#ad3f555c68f9b3ae1ad075e914317afd5">operator/</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in1, <span class="keyword">const</span> <span class="keywordtype">double</span> in2)</div><div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;{</div><div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;    <span class="keywordflow">return</span> in1 * (1. / in2);</div><div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;}</div><div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;</div><div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00604"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#a5854670509a4af23a920acce4f19748c">  604</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#ad3f555c68f9b3ae1ad075e914317afd5">operator/</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in1, <span class="keyword">const</span> <span class="keywordtype">int</span> in2)</div><div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;{</div><div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;    <span class="keywordflow">return</span> in1 * (1. / (double)in2);</div><div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;}</div><div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;</div><div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00611"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#ae7c5689bc8931b7ae4216f810dddb5d3">  611</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#ad3f555c68f9b3ae1ad075e914317afd5">operator/</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> in1, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in2)</div><div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;{</div><div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;    <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function 1/x not allowed in (MIQ)Ps.&quot;</span>);</div><div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;}</div><div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;</div><div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;<span class="keyword">inline</span> UbpQuadExpr</div><div class="line"><a name="l00618"></a><span class="lineno"><a class="line" href="namespacemaingo_1_1ubp.html#aefd918702d5ff67b444a1b5184a2ba78">  618</a></span>&#160;<a class="code" href="namespacemaingo_1_1ubp.html#ad3f555c68f9b3ae1ad075e914317afd5">operator/</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> in1, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">UbpQuadExpr</a>&amp; in2)</div><div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;{</div><div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;    <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function 1/x not allowed in (MIQ)Ps.&quot;</span>);</div><div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;}</div><div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;</div><div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;</div><div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;}    <span class="comment">// end namespace ubp</span></div><div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;</div><div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;</div><div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;</div><div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;</div><div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemc.html">mc</a> {</div><div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;</div><div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;</div><div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;<span class="keyword">template</span> &lt;&gt;</div><div class="line"><a name="l00635"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html">  635</a></span>&#160;<span class="keyword">struct </span>Op&lt;<a class="code" href="namespacemaingo.html">maingo</a>::ubp::UbpQuadExpr&gt; {</div><div class="line"><a name="l00636"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a5671d40aba6b51eedb9fefa337f514fa">  636</a></span>&#160;    <span class="keyword">typedef</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">maingo::ubp::UbpQuadExpr</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a5671d40aba6b51eedb9fefa337f514fa">QE</a>;         </div><div class="line"><a name="l00637"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ab953e12376b1ff2c3a5318ecc4ccf31e">  637</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ab953e12376b1ff2c3a5318ecc4ccf31e">sqr</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">return</span> x * x; } </div><div class="line"><a name="l00638"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a1f2039b54ef15f2e194f90d97047dbf8">  638</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a1f2039b54ef15f2e194f90d97047dbf8">pow</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">int</span> n)</div><div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;    {</div><div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;        <span class="keywordflow">if</span> (n == 0) {</div><div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>(1.0);</div><div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;        }</div><div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;        <span class="keywordflow">if</span> (n == 1) {</div><div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;            <span class="keywordflow">return</span> x;</div><div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;        }</div><div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;        <span class="keywordflow">if</span> (n == 2) {</div><div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;            <span class="keywordflow">return</span> x * x;</div><div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;        }</div><div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;        <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function pow with n &lt;&gt; 0,1,2 not allowed in (MIQ)Ps.&quot;</span>);</div><div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;    } </div><div class="line"><a name="l00651"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a195d98248e0ba84680048c2611e60004">  651</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a195d98248e0ba84680048c2611e60004">pow</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> a)</div><div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;    {</div><div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;        <span class="keywordflow">if</span> (a == 0) {</div><div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>(1.0);</div><div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;        }</div><div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;        <span class="keywordflow">if</span> (a == 1) {</div><div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;            <span class="keywordflow">return</span> x;</div><div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;        }</div><div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;        <span class="keywordflow">if</span> (a == 2) {</div><div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;            <span class="keywordflow">return</span> x * x;</div><div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;        }</div><div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;        <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function pow with a &lt;&gt; 0,1,2 not allowed in (MIQ)Ps.&quot;</span>);</div><div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;    }                                                                                                                                                                     </div><div class="line"><a name="l00664"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a05ef1af5ad24b4baa6dfec609bd542db">  664</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a05ef1af5ad24b4baa6dfec609bd542db">pow</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function pow(x,y) not allowed in (MIQ)Ps.&quot;</span>); }                            </div><div class="line"><a name="l00665"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a246ae6c1ea943858ac55205e9cb26690">  665</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a246ae6c1ea943858ac55205e9cb26690">pow</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function pow(a,y) not allowed in (MIQ)Ps.&quot;</span>); }                         </div><div class="line"><a name="l00666"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a11c7c90a5cb3bb191af49d3e5c374eaf">  666</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a11c7c90a5cb3bb191af49d3e5c374eaf">pow</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function pow(n,y) not allowed in (MIQ)Ps.&quot;</span>); }                            </div><div class="line"><a name="l00667"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a7c36b5f1e9e15a63b53482a96238dfde">  667</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a7c36b5f1e9e15a63b53482a96238dfde">prod</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> n, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>* x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function prod not allowed in (MIQ)Ps.&quot;</span>); }                      </div><div class="line"><a name="l00668"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#af4ef04f795e24dc93ee86751d647b889">  668</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#af4ef04f795e24dc93ee86751d647b889">monom</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> n, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>* x, <span class="keyword">const</span> <span class="keywordtype">unsigned</span>* k) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function monom not allowed in (MIQ)Ps.&quot;</span>); } </div><div class="line"><a name="l00669"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8fcb97302591c8fc4f068e7c56b6a721">  669</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8fcb97302591c8fc4f068e7c56b6a721">point</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> c) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function point not allowed in (MIQ)Ps.&quot;</span>); }                                       </div><div class="line"><a name="l00670"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a6256fb5b78d5052bad6d5fddabe367a4">  670</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a6256fb5b78d5052bad6d5fddabe367a4">zeroone</a>() { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function zeroone not allowed in (MIQ)Ps.&quot;</span>); }                                                 </div><div class="line"><a name="l00671"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a157695047ca0cea633aebe7a89d83129">  671</a></span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a157695047ca0cea633aebe7a89d83129">I</a>(<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { x = y; }                                                                                                                          </div><div class="line"><a name="l00672"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a6f1b459f0497dcbb9b27c15a3da93679">  672</a></span>&#160;    <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a6f1b459f0497dcbb9b27c15a3da93679">l</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function l not allowed in (MIQ)Ps.&quot;</span>); }                                              </div><div class="line"><a name="l00673"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ade6ffcc7987d0baac66bc5f08fdd6d91">  673</a></span>&#160;    <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ade6ffcc7987d0baac66bc5f08fdd6d91">u</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function u not allowed in (MIQ)Ps.&quot;</span>); }                                              </div><div class="line"><a name="l00674"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a9b2e90718f22ebb0a1b04a4085990a1e">  674</a></span>&#160;    <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a9b2e90718f22ebb0a1b04a4085990a1e">abs</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function abs not allowed in (MIQ)Ps.&quot;</span>); }                                          </div><div class="line"><a name="l00675"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aa96ebcb4ea989f485c06d119e24532d3">  675</a></span>&#160;    <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aa96ebcb4ea989f485c06d119e24532d3">mid</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function mid not allowed in (MIQ)Ps.&quot;</span>); }                                          </div><div class="line"><a name="l00676"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a580343aaf00d1a8e833792805b5be075">  676</a></span>&#160;    <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a580343aaf00d1a8e833792805b5be075">diam</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function diam not allowed in (MIQ)Ps.&quot;</span>); }                                        </div><div class="line"><a name="l00677"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a7f9ead00fc41293e4f6e223bcc7e3842">  677</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a7f9ead00fc41293e4f6e223bcc7e3842">inv</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function inv not allowed in (MIQ)Ps.&quot;</span>); }                                              </div><div class="line"><a name="l00678"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a4f2de455a2fc93a80e4a132c44457380">  678</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a4f2de455a2fc93a80e4a132c44457380">sqrt</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function sqrt not allowed in (MIQ)Ps.&quot;</span>); }                                            </div><div class="line"><a name="l00679"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8e8a7fb977a2e9a256fb854557db87a7">  679</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8e8a7fb977a2e9a256fb854557db87a7">exp</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function exp not allowed in (MIQ)Ps.&quot;</span>); }                                              </div><div class="line"><a name="l00680"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ae697c1fcc04bff4b2893b51ce170fb08">  680</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ae697c1fcc04bff4b2893b51ce170fb08">log</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function log not allowed in (MIQ)Ps.&quot;</span>); }                                              </div><div class="line"><a name="l00681"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a1615f15a77004cb7164aa30849cc2b19">  681</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a1615f15a77004cb7164aa30849cc2b19">xlog</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function xlog not allowed in (MIQ)Ps.&quot;</span>); }                                            </div><div class="line"><a name="l00682"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a1be484d4370ef7155d08d9e0d3aad1fa">  682</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a1be484d4370ef7155d08d9e0d3aad1fa">fabsx_times_x</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function fabsx_times_x not allowed in (MIQ)Ps.&quot;</span>); }                          </div><div class="line"><a name="l00683"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aca2d2601bf180bcc4a95059dcaaff98e">  683</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aca2d2601bf180bcc4a95059dcaaff98e">xexpax</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> a) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function xexpax not allowed in (MIQ)Ps.&quot;</span>); }                        </div><div class="line"><a name="l00684"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a4f99f7a6c7d498a2bdee55459ac4b27f">  684</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a4f99f7a6c7d498a2bdee55459ac4b27f">lmtd</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function lmtd not allowed in (MIQ)Ps.&quot;</span>); }                               </div><div class="line"><a name="l00685"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8074e42997b5850d3078c7b4d70c0ea2">  685</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8074e42997b5850d3078c7b4d70c0ea2">rlmtd</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function rlmtd not allowed in (MIQ)Ps.&quot;</span>); }                             </div><div class="line"><a name="l00686"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#abc07d46fb6820ee14d64801c0fd1a4f0">  686</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#abc07d46fb6820ee14d64801c0fd1a4f0">euclidean_norm_2d</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function euclidean_norm_2d not allowed in (MIQ)Ps.&quot;</span>); }     </div><div class="line"><a name="l00687"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a9968bf71e7888784e28962227f2fd80e">  687</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a9968bf71e7888784e28962227f2fd80e">expx_times_y</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function expx_times_y not allowed in (MIQ)Ps.&quot;</span>); }               </div><div class="line"><a name="l00688"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aad7aac80cc1464c33b622a1ceff65ed4">  688</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aad7aac80cc1464c33b622a1ceff65ed4">vapor_pressure</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> type, <span class="keyword">const</span> <span class="keywordtype">double</span> p1, <span class="keyword">const</span> <span class="keywordtype">double</span> p2, <span class="keyword">const</span> <span class="keywordtype">double</span> p3, <span class="keyword">const</span> <span class="keywordtype">double</span> p4 = 0, <span class="keyword">const</span> <span class="keywordtype">double</span> p5 = 0, <span class="keyword">const</span> <span class="keywordtype">double</span> p6 = 0,</div><div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;                             <span class="keyword">const</span> <span class="keywordtype">double</span> p7 = 0, <span class="keyword">const</span> <span class="keywordtype">double</span> p8 = 0, <span class="keyword">const</span> <span class="keywordtype">double</span> p9 = 0, <span class="keyword">const</span> <span class="keywordtype">double</span> p10 = 0) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function vapor_pressure not allowed in (MIQ)Ps.&quot;</span>); } </div><div class="line"><a name="l00690"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a7ed010559aebb792e65c224fe998b689">  690</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a7ed010559aebb792e65c224fe998b689">ideal_gas_enthalpy</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> x0, <span class="keyword">const</span> <span class="keywordtype">double</span> type, <span class="keyword">const</span> <span class="keywordtype">double</span> p1, <span class="keyword">const</span> <span class="keywordtype">double</span> p2, <span class="keyword">const</span> <span class="keywordtype">double</span> p3, <span class="keyword">const</span> <span class="keywordtype">double</span> p4, <span class="keyword">const</span> <span class="keywordtype">double</span> p5, <span class="keyword">const</span> <span class="keywordtype">double</span> p6 = 0,</div><div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;                                 <span class="keyword">const</span> <span class="keywordtype">double</span> p7 = 0) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function ideal_gas_enthalpy not allowed in (MIQ)Ps.&quot;</span>); } </div><div class="line"><a name="l00692"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a5426d1dd5c4adaf426119c168bee4e4e">  692</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a5426d1dd5c4adaf426119c168bee4e4e">saturation_temperature</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> type, <span class="keyword">const</span> <span class="keywordtype">double</span> p1, <span class="keyword">const</span> <span class="keywordtype">double</span> p2, <span class="keyword">const</span> <span class="keywordtype">double</span> p3, <span class="keyword">const</span> <span class="keywordtype">double</span> p4 = 0, <span class="keyword">const</span> <span class="keywordtype">double</span> p5 = 0, <span class="keyword">const</span> <span class="keywordtype">double</span> p6 = 0,</div><div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;                                     <span class="keyword">const</span> <span class="keywordtype">double</span> p7 = 0, <span class="keyword">const</span> <span class="keywordtype">double</span> p8 = 0, <span class="keyword">const</span> <span class="keywordtype">double</span> p9 = 0, <span class="keyword">const</span> <span class="keywordtype">double</span> p10 = 0) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function saturation_temperature not allowed in (MIQ)Ps.&quot;</span>); }                                                          </div><div class="line"><a name="l00694"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a101a89f16caa51f964e600e0a6b9bc23">  694</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a101a89f16caa51f964e600e0a6b9bc23">enthalpy_of_vaporization</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> type, <span class="keyword">const</span> <span class="keywordtype">double</span> p1, <span class="keyword">const</span> <span class="keywordtype">double</span> p2, <span class="keyword">const</span> <span class="keywordtype">double</span> p3, <span class="keyword">const</span> <span class="keywordtype">double</span> p4, <span class="keyword">const</span> <span class="keywordtype">double</span> p5, <span class="keyword">const</span> <span class="keywordtype">double</span> p6 = 0) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function enthalpy_of_vaporization not allowed in (MIQ)Ps.&quot;</span>); } </div><div class="line"><a name="l00695"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8a58a23c33bbb6636dd69a2f67e046fc">  695</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8a58a23c33bbb6636dd69a2f67e046fc">cost_function</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> type, <span class="keyword">const</span> <span class="keywordtype">double</span> p1, <span class="keyword">const</span> <span class="keywordtype">double</span> p2, <span class="keyword">const</span> <span class="keywordtype">double</span> p3) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function cost_function not allowed in (MIQ)Ps.&quot;</span>); }                                                                              </div><div class="line"><a name="l00696"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ad67e74dd1ac1383fadf94f23c8c3878c">  696</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ad67e74dd1ac1383fadf94f23c8c3878c">nrtl_tau</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> a, <span class="keyword">const</span> <span class="keywordtype">double</span> b, <span class="keyword">const</span> <span class="keywordtype">double</span> e, <span class="keyword">const</span> <span class="keywordtype">double</span> f) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function nrtl_tau not allowed in (MIQ)Ps.&quot;</span>); }                                                                                              </div><div class="line"><a name="l00697"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a2f1a2770aca29e5b896a858d11d78f9f">  697</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a2f1a2770aca29e5b896a858d11d78f9f">nrtl_dtau</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> b, <span class="keyword">const</span> <span class="keywordtype">double</span> e, <span class="keyword">const</span> <span class="keywordtype">double</span> f) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function nrtl_dtau not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                            </div><div class="line"><a name="l00698"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aea055afaf310ebc2c32cba3fdb3d9484">  698</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aea055afaf310ebc2c32cba3fdb3d9484">nrtl_G</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> a, <span class="keyword">const</span> <span class="keywordtype">double</span> b, <span class="keyword">const</span> <span class="keywordtype">double</span> e, <span class="keyword">const</span> <span class="keywordtype">double</span> f, <span class="keyword">const</span> <span class="keywordtype">double</span> alpha) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function nrtl_G not allowed in (MIQ)Ps.&quot;</span>); }                                                                              </div><div class="line"><a name="l00699"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a85f0fe631c27dfc8e2956e783f03bcd2">  699</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a85f0fe631c27dfc8e2956e783f03bcd2">nrtl_Gtau</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> a, <span class="keyword">const</span> <span class="keywordtype">double</span> b, <span class="keyword">const</span> <span class="keywordtype">double</span> e, <span class="keyword">const</span> <span class="keywordtype">double</span> f, <span class="keyword">const</span> <span class="keywordtype">double</span> alpha) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function nrtl_Gtau not allowed in (MIQ)Ps.&quot;</span>); }                                                                        </div><div class="line"><a name="l00700"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a1773fd9bc71bcaae2c2cf58030d5919e">  700</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a1773fd9bc71bcaae2c2cf58030d5919e">nrtl_Gdtau</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> a, <span class="keyword">const</span> <span class="keywordtype">double</span> b, <span class="keyword">const</span> <span class="keywordtype">double</span> e, <span class="keyword">const</span> <span class="keywordtype">double</span> f, <span class="keyword">const</span> <span class="keywordtype">double</span> alpha) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function nrtl_Gdtau not allowed in (MIQ)Ps.&quot;</span>); }                                                                      </div><div class="line"><a name="l00701"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8587b56c0385d935a6368c9947395455">  701</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8587b56c0385d935a6368c9947395455">nrtl_dGtau</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> a, <span class="keyword">const</span> <span class="keywordtype">double</span> b, <span class="keyword">const</span> <span class="keywordtype">double</span> e, <span class="keyword">const</span> <span class="keywordtype">double</span> f, <span class="keyword">const</span> <span class="keywordtype">double</span> alpha) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function nrtl_dGtau not allowed in (MIQ)Ps.&quot;</span>); }                                                                      </div><div class="line"><a name="l00702"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a5cbe6a20c3bcda77397c91a8656038fe">  702</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a5cbe6a20c3bcda77397c91a8656038fe">iapws</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> type) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function iapws not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                 </div><div class="line"><a name="l00703"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ae6ae73bd314ea55c0a23fb45bb4c4bdf">  703</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ae6ae73bd314ea55c0a23fb45bb4c4bdf">iapws</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y, <span class="keyword">const</span> <span class="keywordtype">double</span> type) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function iapws not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                    </div><div class="line"><a name="l00704"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a08070e5bb62a0835fe34221600aad6db">  704</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a08070e5bb62a0835fe34221600aad6db">p_sat_ethanol_schroeder</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function p_sat_ethanol_schroeder not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                </div><div class="line"><a name="l00705"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a86dd68715ebcdbf9e5dac0bb7338f605">  705</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a86dd68715ebcdbf9e5dac0bb7338f605">rho_vap_sat_ethanol_schroeder</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function rho_vap_sat_ethanol_schroeder not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                    </div><div class="line"><a name="l00706"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ac59db4469292d72c052f4da427a50f3d">  706</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ac59db4469292d72c052f4da427a50f3d">rho_liq_sat_ethanol_schroeder</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function rho_liq_sat_ethanol_schroeder not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                    </div><div class="line"><a name="l00707"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a7e6b2880426b3aaf6ad0406c588d5ed2">  707</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a7e6b2880426b3aaf6ad0406c588d5ed2">covariance_function</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> type) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function covariance_function not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                     </div><div class="line"><a name="l00708"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ab9d6f9c285286a74762ffb1831a892f1">  708</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ab9d6f9c285286a74762ffb1831a892f1">acquisition_function</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y, <span class="keyword">const</span> <span class="keywordtype">double</span> type, <span class="keyword">const</span> <span class="keywordtype">double</span> fmin) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function acquisition_function not allowed in (MIQ)Ps.&quot;</span>); }                                                                                   </div><div class="line"><a name="l00709"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a37b2c10d1369ec2f610743339a132903">  709</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a37b2c10d1369ec2f610743339a132903">gaussian_probability_density_function</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function gaussian_probability_density_function not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                    </div><div class="line"><a name="l00710"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ac9cf7b4edf54c33450cf0bb2f46b178d">  710</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ac9cf7b4edf54c33450cf0bb2f46b178d">regnormal</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> a, <span class="keyword">const</span> <span class="keywordtype">double</span> b) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function regnormal not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                            </div><div class="line"><a name="l00711"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a9880a03fbf12369b0492a93c42cd73df">  711</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a9880a03fbf12369b0492a93c42cd73df">fabs</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function fabs not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                                      </div><div class="line"><a name="l00712"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#acf627d293021a04bb8ba547ad6349437">  712</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#acf627d293021a04bb8ba547ad6349437">sin</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function sin not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                                        </div><div class="line"><a name="l00713"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a10e1f863003795a5e2eaabcc49772c3c">  713</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a10e1f863003795a5e2eaabcc49772c3c">cos</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function cos not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                                        </div><div class="line"><a name="l00714"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aa365f13c0d21644b80c9379f5ad8e0e4">  714</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aa365f13c0d21644b80c9379f5ad8e0e4">tan</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function tan not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                                        </div><div class="line"><a name="l00715"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ab2149dbee115f2ec2ba436df75ec297a">  715</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ab2149dbee115f2ec2ba436df75ec297a">asin</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function asin not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                                      </div><div class="line"><a name="l00716"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aec0b14475286255066d79e23334623fb">  716</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aec0b14475286255066d79e23334623fb">acos</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function acos not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                                      </div><div class="line"><a name="l00717"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ae746ea045da4196e833c652a6264a126">  717</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ae746ea045da4196e833c652a6264a126">atan</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function atan not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                                      </div><div class="line"><a name="l00718"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a060be08bd96d38d7b7f64823fb843cff">  718</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a060be08bd96d38d7b7f64823fb843cff">sinh</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function sinh not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                                      </div><div class="line"><a name="l00719"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ac069ad54ff97a3a223fc69a07e9da183">  719</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ac069ad54ff97a3a223fc69a07e9da183">cosh</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function cosh not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                                      </div><div class="line"><a name="l00720"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a5d002875452b4ee8a875f88dc01cb160">  720</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a5d002875452b4ee8a875f88dc01cb160">tanh</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function tanh not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                                      </div><div class="line"><a name="l00721"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a701f05f982f6c2488953c67599871540">  721</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a701f05f982f6c2488953c67599871540">coth</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function coth not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                                      </div><div class="line"><a name="l00722"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a0343beb7d475418ad9443de3dc486c2f">  722</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a0343beb7d475418ad9443de3dc486c2f">asinh</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function asinh not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                                    </div><div class="line"><a name="l00723"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a31df148020812018ce0185f9931cf7bd">  723</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a31df148020812018ce0185f9931cf7bd">acosh</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function acosh not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                                    </div><div class="line"><a name="l00724"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a4854e83ee269e6b6db03e7a8f9258df5">  724</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a4854e83ee269e6b6db03e7a8f9258df5">atanh</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function atanh not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                                    </div><div class="line"><a name="l00725"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aeeb90dcd1ad5567bf96b31c0f8d07e0c">  725</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aeeb90dcd1ad5567bf96b31c0f8d07e0c">acoth</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function acoth not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                                    </div><div class="line"><a name="l00726"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a53999c0ccd04a819391c96726db8c98c">  726</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a53999c0ccd04a819391c96726db8c98c">erf</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function erf not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                                        </div><div class="line"><a name="l00727"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8a959dfd152b52a68467983060f7c94a">  727</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8a959dfd152b52a68467983060f7c94a">erfc</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function erfc not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                                      </div><div class="line"><a name="l00728"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aff033c9054e77ba402527b010e3a7252">  728</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aff033c9054e77ba402527b010e3a7252">fstep</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function fstep not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                                    </div><div class="line"><a name="l00729"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a4ee526b8aee72df2eec3366b9be4037e">  729</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a4ee526b8aee72df2eec3366b9be4037e">bstep</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function bstep not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                                    </div><div class="line"><a name="l00730"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a43e321298fa9f26c63c3b3e4b839ad8a">  730</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a43e321298fa9f26c63c3b3e4b839ad8a">hull</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function hull not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                         </div><div class="line"><a name="l00731"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aef9780ca1ffdd1463312ecf3616fb1e4">  731</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aef9780ca1ffdd1463312ecf3616fb1e4">min</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function min not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                           </div><div class="line"><a name="l00732"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#abddc035b2216d9ea039ce7215ca76bc4">  732</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#abddc035b2216d9ea039ce7215ca76bc4">max</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function max not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                           </div><div class="line"><a name="l00733"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ad92d43f2bfc5500822ae2f24ff426b6e">  733</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ad92d43f2bfc5500822ae2f24ff426b6e">pos</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function pos not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                                        </div><div class="line"><a name="l00734"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a674ef91ce7ee31d7d9f914d06ca30804">  734</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a674ef91ce7ee31d7d9f914d06ca30804">neg</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function neg not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                                        </div><div class="line"><a name="l00735"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a2cfbd58e1ce450b19c8329113b9654b6">  735</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a2cfbd58e1ce450b19c8329113b9654b6">lb_func</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> lb) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function lb_func not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                               </div><div class="line"><a name="l00736"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a85b7c9efebaa4cf91b58f633079754f0">  736</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a85b7c9efebaa4cf91b58f633079754f0">ub_func</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> ub) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function ub_func not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                               </div><div class="line"><a name="l00737"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ae1eab66656e68a802a2d5a9a5aeb893e">  737</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ae1eab66656e68a802a2d5a9a5aeb893e">bounding_func</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> lb, <span class="keyword">const</span> <span class="keywordtype">double</span> ub) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function bounding_func not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                  </div><div class="line"><a name="l00738"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aa4a67d44b81dc4218b1a7fa94d5da7f9">  738</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aa4a67d44b81dc4218b1a7fa94d5da7f9">squash_node</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> lb, <span class="keyword">const</span> <span class="keywordtype">double</span> ub) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function squash_node not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                      </div><div class="line"><a name="l00739"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aff22ea406868fc39222d529a339ae892">  739</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aff22ea406868fc39222d529a339ae892">sum_div</a>(<span class="keyword">const</span> std::vector&lt;QE&gt;&amp; x, <span class="keyword">const</span> std::vector&lt;double&gt;&amp; coeff) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function sum_div not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                 </div><div class="line"><a name="l00740"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a2ec1355320796f02d23c18fc4cfe4fb1">  740</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a2ec1355320796f02d23c18fc4cfe4fb1">xlog_sum</a>(<span class="keyword">const</span> std::vector&lt;QE&gt;&amp; x, <span class="keyword">const</span> std::vector&lt;double&gt;&amp; coeff) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function xlog_sum not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                               </div><div class="line"><a name="l00741"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a62da96c6aefdddf79e2a09cfeee78716">  741</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a62da96c6aefdddf79e2a09cfeee78716">mc_print</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">int</span> number) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function mc_print not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                            </div><div class="line"><a name="l00742"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ac3c457143c6f4a4400194ccf44f82c54">  742</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ac3c457143c6f4a4400194ccf44f82c54">arh</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">double</span> k) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function arh not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                        </div><div class="line"><a name="l00743"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ad9a450d917deff7d35dcbc47b952c528">  743</a></span>&#160;    <span class="keyword">static</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ad9a450d917deff7d35dcbc47b952c528">cheb</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> n) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function cheb not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                    </div><div class="line"><a name="l00744"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#acc1b11c33a232b16420b1cd78dc5b0c8">  744</a></span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#acc1b11c33a232b16420b1cd78dc5b0c8">inter</a>(<a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; xIy, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function inter not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                            </div><div class="line"><a name="l00745"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a052639fdb63ad1b89ffeda209f67a4f1">  745</a></span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a052639fdb63ad1b89ffeda209f67a4f1">eq</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function eq not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                           </div><div class="line"><a name="l00746"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a28f4df31ca38d0899de9c5688ad20599">  746</a></span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a28f4df31ca38d0899de9c5688ad20599">ne</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function ne not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                           </div><div class="line"><a name="l00747"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a151904b8ee5f3035d5cc4c819dd58d95">  747</a></span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a151904b8ee5f3035d5cc4c819dd58d95">lt</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function lt not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                           </div><div class="line"><a name="l00748"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a300c2a2c5eb7685e91ac7ae9228b66a1">  748</a></span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a300c2a2c5eb7685e91ac7ae9228b66a1">le</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function le not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                           </div><div class="line"><a name="l00749"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aab92ab0256c3cac10a7bb3ce19d80dcb">  749</a></span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aab92ab0256c3cac10a7bb3ce19d80dcb">gt</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function gt not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                           </div><div class="line"><a name="l00750"></a><span class="lineno"><a class="line" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a33c000da2ea95bd0cc39aa2352344142">  750</a></span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a33c000da2ea95bd0cc39aa2352344142">ge</a>(<span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; x, <span class="keyword">const</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">QE</a>&amp; y) { <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;  Error: UbpQuadExpr -- function ge not allowed in (MIQ)Ps.&quot;</span>); }                                                                                                                                                           </div><div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;};</div><div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;</div><div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;</div><div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;}    <span class="comment">// end namespace mc</span></div><div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_a791a3261856056f2303dd574eb3f6dd3"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a791a3261856056f2303dd574eb3f6dd3">maingo::ubp::UbpQuadExpr::operator*=</a></div><div class="ttdeci">UbpQuadExpr &amp; operator*=(const double in)</div><div class="ttdoc">Operator*= for double. </div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:315</div></div>
+<div class="ttc" id="namespacemc_html"><div class="ttname"><a href="namespacemc.html">mc</a></div><div class="ttdoc">namespace holding forward declaration of McCormick objects. For more info refer to the open-source li...</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_a2a7ead5761ea56126a45479935588b06"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2a7ead5761ea56126a45479935588b06">maingo::ubp::UbpQuadExpr::operator/=</a></div><div class="ttdeci">UbpQuadExpr &amp; operator/=(const double in)</div><div class="ttdoc">Operator/= for double. </div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:335</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_ad67e74dd1ac1383fadf94f23c8c3878c"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ad67e74dd1ac1383fadf94f23c8c3878c">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::nrtl_tau</a></div><div class="ttdeci">static QE nrtl_tau(const QE &amp;x, const double a, const double b, const double e, const double f)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:696</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a31df148020812018ce0185f9931cf7bd"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a31df148020812018ce0185f9931cf7bd">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::acosh</a></div><div class="ttdeci">static QE acosh(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:723</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_ad92d43f2bfc5500822ae2f24ff426b6e"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ad92d43f2bfc5500822ae2f24ff426b6e">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::pos</a></div><div class="ttdeci">static QE pos(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:733</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_a4be525c49a8d761438570a34a09d6077"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a4be525c49a8d761438570a34a09d6077">maingo::ubp::UbpQuadExpr::operator*=</a></div><div class="ttdeci">UbpQuadExpr &amp; operator*=(const int in)</div><div class="ttdoc">Operator*= for int. </div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:324</div></div>
+<div class="ttc" id="namespacemaingo_1_1ubp_html_a63efcd0b2ad1996c20545e1481f0835a"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#a63efcd0b2ad1996c20545e1481f0835a">maingo::ubp::operator*</a></div><div class="ttdeci">std::vector&lt; double &gt; operator*(const std::vector&lt; double &gt; &amp;in1, const double in2)</div><div class="ttdoc">Operator* for multiplication of a double vector with a double constant. </div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:107</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a8587b56c0385d935a6368c9947395455"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8587b56c0385d935a6368c9947395455">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::nrtl_dGtau</a></div><div class="ttdeci">static QE nrtl_dGtau(const QE &amp;x, const double a, const double b, const double e, const double f, const double alpha)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:701</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_ae1b5456347b2bcb76260813e446c1ba9"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#ae1b5456347b2bcb76260813e446c1ba9">maingo::ubp::UbpQuadExpr::operator/=</a></div><div class="ttdeci">UbpQuadExpr &amp; operator/=(const int in)</div><div class="ttdoc">Operator/= for int. </div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:341</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_ac3ad5400183945189193f674f876c774"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#ac3ad5400183945189193f674f876c774">maingo::ubp::UbpQuadExpr::operator-=</a></div><div class="ttdeci">UbpQuadExpr &amp; operator-=(const int in)</div><div class="ttdoc">Operator-= for int. </div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:275</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a5d002875452b4ee8a875f88dc01cb160"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a5d002875452b4ee8a875f88dc01cb160">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::tanh</a></div><div class="ttdeci">static QE tanh(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:720</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_a53ba87d0f920df7610866e1bcfe1ed5e"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a53ba87d0f920df7610866e1bcfe1ed5e">maingo::ubp::UbpQuadExpr::operator-=</a></div><div class="ttdeci">UbpQuadExpr &amp; operator-=(const double in)</div><div class="ttdoc">Operator-= for double. </div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:268</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a246ae6c1ea943858ac55205e9cb26690"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a246ae6c1ea943858ac55205e9cb26690">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::pow</a></div><div class="ttdeci">static QE pow(const double x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:665</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_a6a7b56e39550931c2feb3bad0a801c38"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a6a7b56e39550931c2feb3bad0a801c38">maingo::ubp::UbpQuadExpr::UbpQuadExpr</a></div><div class="ttdeci">UbpQuadExpr(const double in)</div><div class="ttdoc">Constructor for a constant. </div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:178</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a701f05f982f6c2488953c67599871540"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a701f05f982f6c2488953c67599871540">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::coth</a></div><div class="ttdeci">static QE coth(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:721</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_a61f894a3a9850af2a9478db3dfe12721"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a61f894a3a9850af2a9478db3dfe12721">maingo::ubp::UbpQuadExpr::coeffsQuad</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; double &gt; &gt; coeffsQuad</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:354</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a7e6b2880426b3aaf6ad0406c588d5ed2"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a7e6b2880426b3aaf6ad0406c588d5ed2">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::covariance_function</a></div><div class="ttdeci">static QE covariance_function(const QE &amp;x, const double type)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:707</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a5cbe6a20c3bcda77397c91a8656038fe"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a5cbe6a20c3bcda77397c91a8656038fe">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::iapws</a></div><div class="ttdeci">static QE iapws(const QE &amp;x, const double type)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:702</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a8074e42997b5850d3078c7b4d70c0ea2"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8074e42997b5850d3078c7b4d70c0ea2">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::rlmtd</a></div><div class="ttdeci">static QE rlmtd(const QE &amp;x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:685</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_acc1b11c33a232b16420b1cd78dc5b0c8"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#acc1b11c33a232b16420b1cd78dc5b0c8">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::inter</a></div><div class="ttdeci">static bool inter(QE &amp;xIy, const QE &amp;x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:744</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a4854e83ee269e6b6db03e7a8f9258df5"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a4854e83ee269e6b6db03e7a8f9258df5">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::atanh</a></div><div class="ttdeci">static QE atanh(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:724</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a101a89f16caa51f964e600e0a6b9bc23"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a101a89f16caa51f964e600e0a6b9bc23">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::enthalpy_of_vaporization</a></div><div class="ttdeci">static QE enthalpy_of_vaporization(const QE &amp;x, const double type, const double p1, const double p2, const double p3, const double p4, const double p5, const double p6=0)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:694</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a86dd68715ebcdbf9e5dac0bb7338f605"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a86dd68715ebcdbf9e5dac0bb7338f605">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::rho_vap_sat_ethanol_schroeder</a></div><div class="ttdeci">static QE rho_vap_sat_ethanol_schroeder(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:705</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a85f0fe631c27dfc8e2956e783f03bcd2"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a85f0fe631c27dfc8e2956e783f03bcd2">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::nrtl_Gtau</a></div><div class="ttdeci">static QE nrtl_Gtau(const QE &amp;x, const double a, const double b, const double e, const double f, const double alpha)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:699</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_acf627d293021a04bb8ba547ad6349437"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#acf627d293021a04bb8ba547ad6349437">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::sin</a></div><div class="ttdeci">static QE sin(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:712</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_aec88997480bed8057176853cfd2c7aaf"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#aec88997480bed8057176853cfd2c7aaf">maingo::ubp::UbpQuadExpr::operator-=</a></div><div class="ttdeci">UbpQuadExpr &amp; operator-=(const UbpQuadExpr &amp;in)</div><div class="ttdoc">Operator-= for UbpQuadExpr. </div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:245</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_a2fecb504243251325b07e95aa1a33244"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2fecb504243251325b07e95aa1a33244">maingo::ubp::UbpQuadExpr::coeffsLin</a></div><div class="ttdeci">std::vector&lt; double &gt; coeffsLin</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:353</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_a44586840f98d6fa9e24fa04e67b7fea4"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a44586840f98d6fa9e24fa04e67b7fea4">maingo::ubp::UbpQuadExpr::UbpQuadExpr</a></div><div class="ttdeci">UbpQuadExpr(const size_t nvarIn, const size_t iLin)</div><div class="ttdoc">Constructor for a specific variable participating linearly. </div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:160</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a43e321298fa9f26c63c3b3e4b839ad8a"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a43e321298fa9f26c63c3b3e4b839ad8a">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::hull</a></div><div class="ttdeci">static QE hull(const QE &amp;x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:730</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_aa96ebcb4ea989f485c06d119e24532d3"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aa96ebcb4ea989f485c06d119e24532d3">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::mid</a></div><div class="ttdeci">static double mid(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:675</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_ac59db4469292d72c052f4da427a50f3d"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ac59db4469292d72c052f4da427a50f3d">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::rho_liq_sat_ethanol_schroeder</a></div><div class="ttdeci">static QE rho_liq_sat_ethanol_schroeder(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:706</div></div>
+<div class="ttc" id="namespacemaingo_1_1ubp_html_ad3f555c68f9b3ae1ad075e914317afd5"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#ad3f555c68f9b3ae1ad075e914317afd5">maingo::ubp::operator/</a></div><div class="ttdeci">UbpQuadExpr operator/(const UbpQuadExpr &amp;in1, const UbpQuadExpr &amp;in2)</div><div class="ttdoc">Operator/ for two UbpQuadExpr. </div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:590</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a62da96c6aefdddf79e2a09cfeee78716"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a62da96c6aefdddf79e2a09cfeee78716">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::mc_print</a></div><div class="ttdeci">static QE mc_print(const QE &amp;x, const int number)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:741</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a9968bf71e7888784e28962227f2fd80e"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a9968bf71e7888784e28962227f2fd80e">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::expx_times_y</a></div><div class="ttdeci">static QE expx_times_y(const QE &amp;x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:687</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a85b7c9efebaa4cf91b58f633079754f0"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a85b7c9efebaa4cf91b58f633079754f0">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::ub_func</a></div><div class="ttdeci">static QE ub_func(const QE &amp;x, const double ub)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:736</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a7ed010559aebb792e65c224fe998b689"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a7ed010559aebb792e65c224fe998b689">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::ideal_gas_enthalpy</a></div><div class="ttdeci">static QE ideal_gas_enthalpy(const QE &amp;x, const double x0, const double type, const double p1, const double p2, const double p3, const double p4, const double p5, const double p6=0, const double p7=0)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:690</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_a892812f4f25605f14c2abeb16effdd9d"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a892812f4f25605f14c2abeb16effdd9d">maingo::ubp::UbpQuadExpr::constant</a></div><div class="ttdeci">double constant</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:352</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_aa365f13c0d21644b80c9379f5ad8e0e4"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aa365f13c0d21644b80c9379f5ad8e0e4">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::tan</a></div><div class="ttdeci">static QE tan(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:714</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a2ec1355320796f02d23c18fc4cfe4fb1"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a2ec1355320796f02d23c18fc4cfe4fb1">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::xlog_sum</a></div><div class="ttdeci">static QE xlog_sum(const std::vector&lt; QE &gt; &amp;x, const std::vector&lt; double &gt; &amp;coeff)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:740</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_ab953e12376b1ff2c3a5318ecc4ccf31e"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ab953e12376b1ff2c3a5318ecc4ccf31e">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::sqr</a></div><div class="ttdeci">static QE sqr(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:637</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_aec0b14475286255066d79e23334623fb"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aec0b14475286255066d79e23334623fb">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::acos</a></div><div class="ttdeci">static QE acos(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:716</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a8fcb97302591c8fc4f068e7c56b6a721"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8fcb97302591c8fc4f068e7c56b6a721">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::point</a></div><div class="ttdeci">static QE point(const double c)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:669</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_a44b8597bd206f1afad3abfe8de039716"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a44b8597bd206f1afad3abfe8de039716">maingo::ubp::UbpQuadExpr::UbpQuadExpr</a></div><div class="ttdeci">UbpQuadExpr(const size_t nvarIn)</div><div class="ttdoc">Constructor accepting a number of variables. </div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:145</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_aea055afaf310ebc2c32cba3fdb3d9484"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aea055afaf310ebc2c32cba3fdb3d9484">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::nrtl_G</a></div><div class="ttdeci">static QE nrtl_G(const QE &amp;x, const double a, const double b, const double e, const double f, const double alpha)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:698</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a052639fdb63ad1b89ffeda209f67a4f1"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a052639fdb63ad1b89ffeda209f67a4f1">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::eq</a></div><div class="ttdeci">static bool eq(const QE &amp;x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:745</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a28f4df31ca38d0899de9c5688ad20599"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a28f4df31ca38d0899de9c5688ad20599">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::ne</a></div><div class="ttdeci">static bool ne(const QE &amp;x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:746</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_ae6ae73bd314ea55c0a23fb45bb4c4bdf"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ae6ae73bd314ea55c0a23fb45bb4c4bdf">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::iapws</a></div><div class="ttdeci">static QE iapws(const QE &amp;x, const QE &amp;y, const double type)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:703</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a8e8a7fb977a2e9a256fb854557db87a7"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8e8a7fb977a2e9a256fb854557db87a7">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::exp</a></div><div class="ttdeci">static QE exp(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:679</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a5671d40aba6b51eedb9fefa337f514fa"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a5671d40aba6b51eedb9fefa337f514fa">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::QE</a></div><div class="ttdeci">maingo::ubp::UbpQuadExpr QE</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:636</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a8a58a23c33bbb6636dd69a2f67e046fc"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8a58a23c33bbb6636dd69a2f67e046fc">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::cost_function</a></div><div class="ttdeci">static QE cost_function(const QE &amp;x, const double type, const double p1, const double p2, const double p3)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:695</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_ae697c1fcc04bff4b2893b51ce170fb08"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ae697c1fcc04bff4b2893b51ce170fb08">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::log</a></div><div class="ttdeci">static QE log(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:680</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a674ef91ce7ee31d7d9f914d06ca30804"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a674ef91ce7ee31d7d9f914d06ca30804">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::neg</a></div><div class="ttdeci">static QE neg(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:734</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a151904b8ee5f3035d5cc4c819dd58d95"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a151904b8ee5f3035d5cc4c819dd58d95">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::lt</a></div><div class="ttdeci">static bool lt(const QE &amp;x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:747</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a195d98248e0ba84680048c2611e60004"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a195d98248e0ba84680048c2611e60004">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::pow</a></div><div class="ttdeci">static QE pow(const QE &amp;x, const double a)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:651</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_aef9780ca1ffdd1463312ecf3616fb1e4"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aef9780ca1ffdd1463312ecf3616fb1e4">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::min</a></div><div class="ttdeci">static QE min(const QE &amp;x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:731</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_aff22ea406868fc39222d529a339ae892"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aff22ea406868fc39222d529a339ae892">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::sum_div</a></div><div class="ttdeci">static QE sum_div(const std::vector&lt; QE &gt; &amp;x, const std::vector&lt; double &gt; &amp;coeff)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:739</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a33c000da2ea95bd0cc39aa2352344142"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a33c000da2ea95bd0cc39aa2352344142">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::ge</a></div><div class="ttdeci">static bool ge(const QE &amp;x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:750</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_ae746ea045da4196e833c652a6264a126"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ae746ea045da4196e833c652a6264a126">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::atan</a></div><div class="ttdeci">static QE atan(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:717</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a060be08bd96d38d7b7f64823fb843cff"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a060be08bd96d38d7b7f64823fb843cff">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::sinh</a></div><div class="ttdeci">static QE sinh(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:718</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_af4ef04f795e24dc93ee86751d647b889"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#af4ef04f795e24dc93ee86751d647b889">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::monom</a></div><div class="ttdeci">static QE monom(const unsigned int n, const QE *x, const unsigned *k)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:668</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_ab2149dbee115f2ec2ba436df75ec297a"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ab2149dbee115f2ec2ba436df75ec297a">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::asin</a></div><div class="ttdeci">static QE asin(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:715</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_a2e8b906b6e8ea5c22c4534e85cbbeac7"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a2e8b906b6e8ea5c22c4534e85cbbeac7">maingo::ubp::UbpQuadExpr::operator/=</a></div><div class="ttdeci">UbpQuadExpr &amp; operator/=(const UbpQuadExpr &amp;in)</div><div class="ttdoc">Operator/= for UbpQuadExpr. </div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:333</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_aad7aac80cc1464c33b622a1ceff65ed4"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aad7aac80cc1464c33b622a1ceff65ed4">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::vapor_pressure</a></div><div class="ttdeci">static QE vapor_pressure(const QE &amp;x, const double type, const double p1, const double p2, const double p3, const double p4=0, const double p5=0, const double p6=0, const double p7=0, const double p8=0, const double p9=0, const double p10=0)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:688</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a37b2c10d1369ec2f610743339a132903"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a37b2c10d1369ec2f610743339a132903">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::gaussian_probability_density_function</a></div><div class="ttdeci">static QE gaussian_probability_density_function(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:709</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a4f2de455a2fc93a80e4a132c44457380"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a4f2de455a2fc93a80e4a132c44457380">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::sqrt</a></div><div class="ttdeci">static QE sqrt(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:678</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_a7634e17e6d08c10571dbca448506e95e"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a7634e17e6d08c10571dbca448506e95e">maingo::ubp::UbpQuadExpr::operator+=</a></div><div class="ttdeci">UbpQuadExpr &amp; operator+=(const int in)</div><div class="ttdoc">Operator+= for int. </div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:238</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a9880a03fbf12369b0492a93c42cd73df"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a9880a03fbf12369b0492a93c42cd73df">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::fabs</a></div><div class="ttdeci">static QE fabs(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:711</div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a1f2039b54ef15f2e194f90d97047dbf8"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a1f2039b54ef15f2e194f90d97047dbf8">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::pow</a></div><div class="ttdeci">static QE pow(const QE &amp;x, const int n)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:638</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a0343beb7d475418ad9443de3dc486c2f"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a0343beb7d475418ad9443de3dc486c2f">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::asinh</a></div><div class="ttdeci">static QE asinh(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:722</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_ab448dba7b8e6123194c9cf88ae2f2b65"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#ab448dba7b8e6123194c9cf88ae2f2b65">maingo::ubp::UbpQuadExpr::UbpQuadExpr</a></div><div class="ttdeci">UbpQuadExpr()</div><div class="ttdoc">Default constructor. </div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:138</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_abc07d46fb6820ee14d64801c0fd1a4f0"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#abc07d46fb6820ee14d64801c0fd1a4f0">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::euclidean_norm_2d</a></div><div class="ttdeci">static QE euclidean_norm_2d(const QE &amp;x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:686</div></div>
+<div class="ttc" id="_m_ai_n_g_o_exception_8h_html"><div class="ttname"><a href="_m_ai_n_g_o_exception_8h.html">MAiNGOException.h</a></div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_aff033c9054e77ba402527b010e3a7252"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aff033c9054e77ba402527b010e3a7252">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::fstep</a></div><div class="ttdeci">static QE fstep(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:728</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a08070e5bb62a0835fe34221600aad6db"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a08070e5bb62a0835fe34221600aad6db">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::p_sat_ethanol_schroeder</a></div><div class="ttdeci">static QE p_sat_ethanol_schroeder(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:704</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_aeeb90dcd1ad5567bf96b31c0f8d07e0c"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aeeb90dcd1ad5567bf96b31c0f8d07e0c">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::acoth</a></div><div class="ttdeci">static QE acoth(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:725</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a6f1b459f0497dcbb9b27c15a3da93679"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a6f1b459f0497dcbb9b27c15a3da93679">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::l</a></div><div class="ttdeci">static double l(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:672</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a1be484d4370ef7155d08d9e0d3aad1fa"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a1be484d4370ef7155d08d9e0d3aad1fa">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::fabsx_times_x</a></div><div class="ttdeci">static QE fabsx_times_x(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:682</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_ac3c457143c6f4a4400194ccf44f82c54"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ac3c457143c6f4a4400194ccf44f82c54">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::arh</a></div><div class="ttdeci">static QE arh(const QE &amp;x, const double k)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:742</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a2cfbd58e1ce450b19c8329113b9654b6"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a2cfbd58e1ce450b19c8329113b9654b6">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::lb_func</a></div><div class="ttdeci">static QE lb_func(const QE &amp;x, const double lb)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:735</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_aab92ab0256c3cac10a7bb3ce19d80dcb"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aab92ab0256c3cac10a7bb3ce19d80dcb">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::gt</a></div><div class="ttdeci">static bool gt(const QE &amp;x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:749</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a7f9ead00fc41293e4f6e223bcc7e3842"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a7f9ead00fc41293e4f6e223bcc7e3842">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::inv</a></div><div class="ttdeci">static QE inv(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:677</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a7c36b5f1e9e15a63b53482a96238dfde"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a7c36b5f1e9e15a63b53482a96238dfde">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::prod</a></div><div class="ttdeci">static QE prod(const unsigned int n, const QE *x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:667</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a6256fb5b78d5052bad6d5fddabe367a4"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a6256fb5b78d5052bad6d5fddabe367a4">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::zeroone</a></div><div class="ttdeci">static QE zeroone()</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:670</div></div>
+<div class="ttc" id="namespacemaingo_1_1ubp_html_a10c5d0d8fe3f2daa26131fe923cdd9bc"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#a10c5d0d8fe3f2daa26131fe923cdd9bc">maingo::ubp::operator+</a></div><div class="ttdeci">std::vector&lt; double &gt; operator+(const std::vector&lt; double &gt; &amp;in1, const std::vector&lt; double &gt; &amp;in2)</div><div class="ttdoc">Operator+ for addition of two double vectors. </div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:51</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a53999c0ccd04a819391c96726db8c98c"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a53999c0ccd04a819391c96726db8c98c">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::erf</a></div><div class="ttdeci">static QE erf(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:726</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_aa4a67d44b81dc4218b1a7fa94d5da7f9"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aa4a67d44b81dc4218b1a7fa94d5da7f9">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::squash_node</a></div><div class="ttdeci">static QE squash_node(const QE &amp;x, const double lb, const double ub)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:738</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a2f1a2770aca29e5b896a858d11d78f9f"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a2f1a2770aca29e5b896a858d11d78f9f">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::nrtl_dtau</a></div><div class="ttdeci">static QE nrtl_dtau(const QE &amp;x, const double b, const double e, const double f)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:697</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a157695047ca0cea633aebe7a89d83129"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a157695047ca0cea633aebe7a89d83129">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::I</a></div><div class="ttdeci">static void I(QE &amp;x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:671</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a1773fd9bc71bcaae2c2cf58030d5919e"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a1773fd9bc71bcaae2c2cf58030d5919e">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::nrtl_Gdtau</a></div><div class="ttdeci">static QE nrtl_Gdtau(const QE &amp;x, const double a, const double b, const double e, const double f, const double alpha)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:700</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a300c2a2c5eb7685e91ac7ae9228b66a1"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a300c2a2c5eb7685e91ac7ae9228b66a1">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::le</a></div><div class="ttdeci">static bool le(const QE &amp;x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:748</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_af9eee425ca6bb3e53c145c265648bc1f"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af9eee425ca6bb3e53c145c265648bc1f">maingo::ubp::UbpQuadExpr::nvar</a></div><div class="ttdeci">size_t nvar</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:351</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_af72e66c0a04b6fa8d25d89351473abe4"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#af72e66c0a04b6fa8d25d89351473abe4">maingo::ubp::UbpQuadExpr::operator=</a></div><div class="ttdeci">UbpQuadExpr &amp; operator=(const int in)</div><div class="ttdoc">Operator= for an integer constant. </div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:198</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a9b2e90718f22ebb0a1b04a4085990a1e"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a9b2e90718f22ebb0a1b04a4085990a1e">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::abs</a></div><div class="ttdeci">static double abs(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:674</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_ad9a450d917deff7d35dcbc47b952c528"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ad9a450d917deff7d35dcbc47b952c528">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::cheb</a></div><div class="ttdeci">static QE cheb(const QE &amp;x, const unsigned n)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:743</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a580343aaf00d1a8e833792805b5be075"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a580343aaf00d1a8e833792805b5be075">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::diam</a></div><div class="ttdeci">static double diam(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:676</div></div>
+<div class="ttc" id="namespacemaingo_1_1ubp_html_a7c723688f344053b4a3d7e0ba2e4c144"><div class="ttname"><a href="namespacemaingo_1_1ubp.html#a7c723688f344053b4a3d7e0ba2e4c144">maingo::ubp::operator-</a></div><div class="ttdeci">std::vector&lt; double &gt; operator-(const std::vector&lt; double &gt; &amp;in)</div><div class="ttdoc">Operator- for a double vector. </div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:29</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_acce2c14abe3accaee53ea03f84c19734"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#acce2c14abe3accaee53ea03f84c19734">maingo::ubp::UbpQuadExpr::operator=</a></div><div class="ttdeci">UbpQuadExpr &amp; operator=(const double in)</div><div class="ttdoc">Operator= for a double constant. </div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:188</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a05ef1af5ad24b4baa6dfec609bd542db"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a05ef1af5ad24b4baa6dfec609bd542db">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::pow</a></div><div class="ttdeci">static QE pow(const QE &amp;x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:664</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_ac069ad54ff97a3a223fc69a07e9da183"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ac069ad54ff97a3a223fc69a07e9da183">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::cosh</a></div><div class="ttdeci">static QE cosh(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:719</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a11c7c90a5cb3bb191af49d3e5c374eaf"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a11c7c90a5cb3bb191af49d3e5c374eaf">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::pow</a></div><div class="ttdeci">static QE pow(const int x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:666</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_a24790536a92c354b15430c00b0258c40"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a24790536a92c354b15430c00b0258c40">maingo::ubp::UbpQuadExpr::operator*=</a></div><div class="ttdeci">UbpQuadExpr &amp; operator*=(const UbpQuadExpr &amp;in)</div><div class="ttdoc">Operator*= for UbpQuadExpr. </div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:282</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_exception_html"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o_exception.html">maingo::MAiNGOException</a></div><div class="ttdoc">This class defines the exceptions thrown by MAiNGO. </div><div class="ttdef"><b>Definition:</b> MAiNGOException.h:35</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_ab9d6f9c285286a74762ffb1831a892f1"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ab9d6f9c285286a74762ffb1831a892f1">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::acquisition_function</a></div><div class="ttdeci">static QE acquisition_function(const QE &amp;x, const QE &amp;y, const double type, const double fmin)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:708</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_a1cd55371cff5dac0174d8d37ceba6c5d"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a1cd55371cff5dac0174d8d37ceba6c5d">maingo::ubp::UbpQuadExpr::operator+=</a></div><div class="ttdeci">UbpQuadExpr &amp; operator+=(const UbpQuadExpr &amp;in)</div><div class="ttdoc">Operator+= for UbpQuadExpr. </div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:208</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_aca2d2601bf180bcc4a95059dcaaff98e"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#aca2d2601bf180bcc4a95059dcaaff98e">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::xexpax</a></div><div class="ttdeci">static QE xexpax(const QE &amp;x, const double a)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:683</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_ae1eab66656e68a802a2d5a9a5aeb893e"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ae1eab66656e68a802a2d5a9a5aeb893e">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::bounding_func</a></div><div class="ttdeci">static QE bounding_func(const QE &amp;x, const double lb, const double ub)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:737</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_abddc035b2216d9ea039ce7215ca76bc4"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#abddc035b2216d9ea039ce7215ca76bc4">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::max</a></div><div class="ttdeci">static QE max(const QE &amp;x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:732</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a10e1f863003795a5e2eaabcc49772c3c"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a10e1f863003795a5e2eaabcc49772c3c">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::cos</a></div><div class="ttdeci">static QE cos(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:713</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_ade6ffcc7987d0baac66bc5f08fdd6d91"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ade6ffcc7987d0baac66bc5f08fdd6d91">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::u</a></div><div class="ttdeci">static double u(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:673</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_a561bcf6912a9390cf05b7c8c5c0755a5"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a561bcf6912a9390cf05b7c8c5c0755a5">maingo::ubp::UbpQuadExpr::operator+=</a></div><div class="ttdeci">UbpQuadExpr &amp; operator+=(const double in)</div><div class="ttdoc">Operator+= for double. </div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:231</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a8a959dfd152b52a68467983060f7c94a"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a8a959dfd152b52a68467983060f7c94a">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::erfc</a></div><div class="ttdeci">static QE erfc(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:727</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a5426d1dd5c4adaf426119c168bee4e4e"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a5426d1dd5c4adaf426119c168bee4e4e">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::saturation_temperature</a></div><div class="ttdeci">static QE saturation_temperature(const QE &amp;x, const double type, const double p1, const double p2, const double p3, const double p4=0, const double p5=0, const double p6=0, const double p7=0, const double p8=0, const double p9=0, const double p10=0)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:692</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a4f99f7a6c7d498a2bdee55459ac4b27f"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a4f99f7a6c7d498a2bdee55459ac4b27f">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::lmtd</a></div><div class="ttdeci">static QE lmtd(const QE &amp;x, const QE &amp;y)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:684</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_ac9cf7b4edf54c33450cf0bb2f46b178d"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#ac9cf7b4edf54c33450cf0bb2f46b178d">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::regnormal</a></div><div class="ttdeci">static QE regnormal(const QE &amp;x, const double a, const double b)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:710</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html">maingo::ubp::UbpQuadExpr</a></div><div class="ttdoc">Struct used to compute coefficients of linear and quadratic/bilinear terms in (MIQ)Ps. This struct is used to avoid the need of propagating the IloExpr object resulting in HUGE RAM usage. </div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:132</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a1615f15a77004cb7164aa30849cc2b19"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a1615f15a77004cb7164aa30849cc2b19">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::xlog</a></div><div class="ttdeci">static QE xlog(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:681</div></div>
+<div class="ttc" id="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4_html_a4ee526b8aee72df2eec3366b9be4037e"><div class="ttname"><a href="structmc_1_1_op_3_01maingo_1_1ubp_1_1_ubp_quad_expr_01_4.html#a4ee526b8aee72df2eec3366b9be4037e">mc::Op&lt; maingo::ubp::UbpQuadExpr &gt;::bstep</a></div><div class="ttdeci">static QE bstep(const QE &amp;x)</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:729</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_quad_expr_html_a3bc13a9e7018663adb775300879a6584"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_quad_expr.html#a3bc13a9e7018663adb775300879a6584">maingo::ubp::UbpQuadExpr::hasQuad</a></div><div class="ttdeci">bool hasQuad</div><div class="ttdef"><b>Definition:</b> ubpQuadExpr.h:355</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -216,7 +218,7 @@ $(document).ready(function(){initNavTree('ubp_quad_expr_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="ubp_quad_expr_8h.html">ubpQuadExpr.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/ubp_structure_8h.html b/doc/html/ubp_structure_8h.html
index d0b0d45f8d27485751e4bc0571a38a729a73a3a3..318bfef922611fd8c05b2748e0f8abb4fcf3d59e 100644
--- a/doc/html/ubp_structure_8h.html
+++ b/doc/html/ubp_structure_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/ubpStructure.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/ubpStructure.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -122,7 +122,7 @@ Namespaces</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="ubp_structure_8h.html">ubpStructure.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/ubp_structure_8h_source.html b/doc/html/ubp_structure_8h_source.html
index b84cf4059aea875ac08f914d3937a982aad90de1..992b973460d824a9365fb2f3c0377c1b15acdb7e 100644
--- a/doc/html/ubp_structure_8h_source.html
+++ b/doc/html/ubp_structure_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/ubpStructure.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/ubpStructure.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,17 +90,17 @@ $(document).ready(function(){initNavTree('ubp_structure_8h_source.html','');});
 <div class="title">ubpStructure.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="ubp_structure_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file ubpStructure.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing definition of struct for storing information on the</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *        structure and sparsity patterns of problems for upper bounding.</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="constraint_8h.html">constraint.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;utility&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="keyword">namespace </span>ubp {</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_structure.html">   35</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmaingo_1_1ubp_1_1_ubp_structure.html">UbpStructure</a> {</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    <span class="comment">//For information on sparsity structure see https://www.coin-or.org/Ipopt/documentation/node38.html</span></div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_structure.html#aeab128be4235ec4091c98e8e777a74a6">   38</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_structure.html#aeab128be4235ec4091c98e8e777a74a6">nnonZeroJac</a>;                                                                            </div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_structure.html#a68a011bb8bf1e4e94a413eec37035a27">   39</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_structure.html#a68a011bb8bf1e4e94a413eec37035a27">nnonZeroHessian</a>;                                                                        </div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_structure.html#a2062632a29ae74930d09f7ce0428d7a2">   40</a></span>&#160;    std::vector&lt;unsigned&gt; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_structure.html#a2062632a29ae74930d09f7ce0428d7a2">nonZeroJacIRow</a>;                                                            </div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_structure.html#afedea9f2b8be0b183f9017ca2e161112">   41</a></span>&#160;    std::vector&lt;unsigned&gt; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_structure.html#afedea9f2b8be0b183f9017ca2e161112">nonZeroJacJCol</a>;                                                            </div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_structure.html#adab33e067c552100041e97b00455c455">   42</a></span>&#160;    std::vector&lt;unsigned&gt; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_structure.html#adab33e067c552100041e97b00455c455">nonZeroHessianIRow</a>;                                                        </div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_structure.html#a5cc51fb42e8a6b5016d392ea9edb384e">   43</a></span>&#160;    std::vector&lt;unsigned&gt; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_structure.html#a5cc51fb42e8a6b5016d392ea9edb384e">nonZeroHessianJCol</a>;                                                        </div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_structure.html#af049943a023a5d094c469fb65aa9a3c5">   44</a></span>&#160;    std::vector&lt;std::vector&lt;std::pair&lt;std::vector&lt;unsigned&gt;, <a class="code" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592">CONSTRAINT_DEPENDENCY</a>&gt;&gt;&gt; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_structure.html#af049943a023a5d094c469fb65aa9a3c5">jacProperties</a>; </div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;};</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;}    <span class="comment">// end namespace ubp</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_structure_html_a5cc51fb42e8a6b5016d392ea9edb384e"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_structure.html#a5cc51fb42e8a6b5016d392ea9edb384e">maingo::ubp::UbpStructure::nonZeroHessianJCol</a></div><div class="ttdeci">std::vector&lt; unsigned &gt; nonZeroHessianJCol</div><div class="ttdef"><b>Definition:</b> ubpStructure.h:43</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_structure_html_adab33e067c552100041e97b00455c455"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_structure.html#adab33e067c552100041e97b00455c455">maingo::ubp::UbpStructure::nonZeroHessianIRow</a></div><div class="ttdeci">std::vector&lt; unsigned &gt; nonZeroHessianIRow</div><div class="ttdef"><b>Definition:</b> ubpStructure.h:42</div></div>
-<div class="ttc" id="namespacemaingo_html_ab2f406d1eb0027c320d3705f954e4592"><div class="ttname"><a href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592">maingo::CONSTRAINT_DEPENDENCY</a></div><div class="ttdeci">CONSTRAINT_DEPENDENCY</div><div class="ttdoc">Enum for representing the constraint dependency. Note that the dependency is increasing meaning that ...</div><div class="ttdef"><b>Definition:</b> constraint.h:81</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_structure_html_a2062632a29ae74930d09f7ce0428d7a2"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_structure.html#a2062632a29ae74930d09f7ce0428d7a2">maingo::ubp::UbpStructure::nonZeroJacIRow</a></div><div class="ttdeci">std::vector&lt; unsigned &gt; nonZeroJacIRow</div><div class="ttdef"><b>Definition:</b> ubpStructure.h:40</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_structure_html_af049943a023a5d094c469fb65aa9a3c5"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_structure.html#af049943a023a5d094c469fb65aa9a3c5">maingo::ubp::UbpStructure::jacProperties</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; std::pair&lt; std::vector&lt; unsigned &gt;, CONSTRAINT_DEPENDENCY &gt; &gt; &gt; jacProperties</div><div class="ttdef"><b>Definition:</b> ubpStructure.h:44</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_structure_html_a68a011bb8bf1e4e94a413eec37035a27"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_structure.html#a68a011bb8bf1e4e94a413eec37035a27">maingo::ubp::UbpStructure::nnonZeroHessian</a></div><div class="ttdeci">unsigned nnonZeroHessian</div><div class="ttdef"><b>Definition:</b> ubpStructure.h:39</div></div>
+<a href="ubp_structure_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="constraint_8h.html">constraint.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &lt;utility&gt;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="keyword">namespace </span>ubp {</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_structure.html">   30</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmaingo_1_1ubp_1_1_ubp_structure.html">UbpStructure</a> {</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    <span class="comment">//For information on sparsity structure see https://www.coin-or.org/Ipopt/documentation/node38.html</span></div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_structure.html#aeab128be4235ec4091c98e8e777a74a6">   33</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_structure.html#aeab128be4235ec4091c98e8e777a74a6">nnonZeroJac</a>;                                                                            </div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_structure.html#a68a011bb8bf1e4e94a413eec37035a27">   34</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="structmaingo_1_1ubp_1_1_ubp_structure.html#a68a011bb8bf1e4e94a413eec37035a27">nnonZeroHessian</a>;                                                                        </div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_structure.html#a2062632a29ae74930d09f7ce0428d7a2">   35</a></span>&#160;    std::vector&lt;unsigned&gt; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_structure.html#a2062632a29ae74930d09f7ce0428d7a2">nonZeroJacIRow</a>;                                                            </div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_structure.html#afedea9f2b8be0b183f9017ca2e161112">   36</a></span>&#160;    std::vector&lt;unsigned&gt; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_structure.html#afedea9f2b8be0b183f9017ca2e161112">nonZeroJacJCol</a>;                                                            </div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_structure.html#adab33e067c552100041e97b00455c455">   37</a></span>&#160;    std::vector&lt;unsigned&gt; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_structure.html#adab33e067c552100041e97b00455c455">nonZeroHessianIRow</a>;                                                        </div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_structure.html#a5cc51fb42e8a6b5016d392ea9edb384e">   38</a></span>&#160;    std::vector&lt;unsigned&gt; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_structure.html#a5cc51fb42e8a6b5016d392ea9edb384e">nonZeroHessianJCol</a>;                                                        </div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="structmaingo_1_1ubp_1_1_ubp_structure.html#af049943a023a5d094c469fb65aa9a3c5">   39</a></span>&#160;    std::vector&lt;std::vector&lt;std::pair&lt;std::vector&lt;unsigned&gt;, <a class="code" href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592">CONSTRAINT_DEPENDENCY</a>&gt;&gt;&gt; <a class="code" href="structmaingo_1_1ubp_1_1_ubp_structure.html#af049943a023a5d094c469fb65aa9a3c5">jacProperties</a>; </div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;};</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;}    <span class="comment">// end namespace ubp</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_structure_html_a5cc51fb42e8a6b5016d392ea9edb384e"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_structure.html#a5cc51fb42e8a6b5016d392ea9edb384e">maingo::ubp::UbpStructure::nonZeroHessianJCol</a></div><div class="ttdeci">std::vector&lt; unsigned &gt; nonZeroHessianJCol</div><div class="ttdef"><b>Definition:</b> ubpStructure.h:38</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_structure_html_adab33e067c552100041e97b00455c455"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_structure.html#adab33e067c552100041e97b00455c455">maingo::ubp::UbpStructure::nonZeroHessianIRow</a></div><div class="ttdeci">std::vector&lt; unsigned &gt; nonZeroHessianIRow</div><div class="ttdef"><b>Definition:</b> ubpStructure.h:37</div></div>
+<div class="ttc" id="namespacemaingo_html_ab2f406d1eb0027c320d3705f954e4592"><div class="ttname"><a href="namespacemaingo.html#ab2f406d1eb0027c320d3705f954e4592">maingo::CONSTRAINT_DEPENDENCY</a></div><div class="ttdeci">CONSTRAINT_DEPENDENCY</div><div class="ttdoc">Enum for representing the constraint dependency. Note that the dependency is increasing meaning that ...</div><div class="ttdef"><b>Definition:</b> constraint.h:76</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_structure_html_a2062632a29ae74930d09f7ce0428d7a2"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_structure.html#a2062632a29ae74930d09f7ce0428d7a2">maingo::ubp::UbpStructure::nonZeroJacIRow</a></div><div class="ttdeci">std::vector&lt; unsigned &gt; nonZeroJacIRow</div><div class="ttdef"><b>Definition:</b> ubpStructure.h:35</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_structure_html_af049943a023a5d094c469fb65aa9a3c5"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_structure.html#af049943a023a5d094c469fb65aa9a3c5">maingo::ubp::UbpStructure::jacProperties</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; std::pair&lt; std::vector&lt; unsigned &gt;, CONSTRAINT_DEPENDENCY &gt; &gt; &gt; jacProperties</div><div class="ttdef"><b>Definition:</b> ubpStructure.h:39</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_structure_html_a68a011bb8bf1e4e94a413eec37035a27"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_structure.html#a68a011bb8bf1e4e94a413eec37035a27">maingo::ubp::UbpStructure::nnonZeroHessian</a></div><div class="ttdeci">unsigned nnonZeroHessian</div><div class="ttdef"><b>Definition:</b> ubpStructure.h:34</div></div>
 <div class="ttc" id="constraint_8h_html"><div class="ttname"><a href="constraint_8h.html">constraint.h</a></div></div>
-<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO</div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_structure_html"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_structure.html">maingo::ubp::UbpStructure</a></div><div class="ttdoc">Struct for storing structure information for the upper bounding solver.</div><div class="ttdef"><b>Definition:</b> ubpStructure.h:35</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_structure_html_aeab128be4235ec4091c98e8e777a74a6"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_structure.html#aeab128be4235ec4091c98e8e777a74a6">maingo::ubp::UbpStructure::nnonZeroJac</a></div><div class="ttdeci">unsigned nnonZeroJac</div><div class="ttdef"><b>Definition:</b> ubpStructure.h:38</div></div>
-<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_structure_html_afedea9f2b8be0b183f9017ca2e161112"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_structure.html#afedea9f2b8be0b183f9017ca2e161112">maingo::ubp::UbpStructure::nonZeroJacJCol</a></div><div class="ttdeci">std::vector&lt; unsigned &gt; nonZeroJacJCol</div><div class="ttdef"><b>Definition:</b> ubpStructure.h:41</div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_structure_html"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_structure.html">maingo::ubp::UbpStructure</a></div><div class="ttdoc">Struct for storing structure information for the upper bounding solver. </div><div class="ttdef"><b>Definition:</b> ubpStructure.h:30</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_structure_html_aeab128be4235ec4091c98e8e777a74a6"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_structure.html#aeab128be4235ec4091c98e8e777a74a6">maingo::ubp::UbpStructure::nnonZeroJac</a></div><div class="ttdeci">unsigned nnonZeroJac</div><div class="ttdef"><b>Definition:</b> ubpStructure.h:33</div></div>
+<div class="ttc" id="structmaingo_1_1ubp_1_1_ubp_structure_html_afedea9f2b8be0b183f9017ca2e161112"><div class="ttname"><a href="structmaingo_1_1ubp_1_1_ubp_structure.html#afedea9f2b8be0b183f9017ca2e161112">maingo::ubp::UbpStructure::nonZeroJacJCol</a></div><div class="ttdeci">std::vector&lt; unsigned &gt; nonZeroJacJCol</div><div class="ttdef"><b>Definition:</b> ubpStructure.h:36</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -109,7 +109,7 @@ $(document).ready(function(){initNavTree('ubp_structure_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="ubp_structure_8h.html">ubpStructure.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/utilities_8h.html b/doc/html/utilities_8h.html
index 36aa0db87283ad7adc39b778e08dbdf5a342affa..a8d482982ea00b25de4f57498395cfc78213c4fa 100644
--- a/doc/html/utilities_8h.html
+++ b/doc/html/utilities_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/utilities.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/utilities.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -122,7 +122,7 @@ Functions</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="utilities_8h.html">utilities.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/utilities_8h_source.html b/doc/html/utilities_8h_source.html
index d128004291b0c55d7190a21343489ef9bc7ae973..6db181208652d32996898ddb509cb0c030e3a72c 100644
--- a/doc/html/utilities_8h_source.html
+++ b/doc/html/utilities_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/utilities.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/utilities.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,13 +90,13 @@ $(document).ready(function(){initNavTree('utilities_8h_source.html','');});
 <div class="title">utilities.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="utilities_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file utilities.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File containing a few auxiliary functions needed in different </span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *        parts of MAiNGO</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="settings_8h.html">settings.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;cmath&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span></div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ab36b1ec6df5374d8caba1bae5495df5d">   38</a></span>&#160;<a class="code" href="namespacemaingo.html#ab36b1ec6df5374d8caba1bae5495df5d">larger_or_equal_within_tolerance</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> LBD, <span class="keyword">const</span> <span class="keywordtype">double</span> UBD, <a class="code" href="structmaingo_1_1_settings.html">Settings</a>* mySettings)</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    <span class="keywordtype">bool</span> absDone = (LBD &gt;= (UBD - mySettings-&gt;<a class="code" href="structmaingo_1_1_settings.html#a7b899b964718fb9e7a95459026faf6aa">epsilonA</a>));                     <span class="comment">// Done means that absolute criterion is met</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    <span class="keywordtype">bool</span> relDone = (LBD &gt;= (UBD - std::fabs(UBD) * mySettings-&gt;<a class="code" href="structmaingo_1_1_settings.html#a013779523888ede06a29eb507b22d139">epsilonR</a>));    <span class="comment">// Done means that relative criterion is met</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    <span class="keywordflow">return</span> (absDone || relDone);                                              <span class="comment">// If either criterion is met we are done</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;}</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="keyword">inline</span> std::string</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="namespacemaingo.html#aff818a6a6eca6dcfa6cc89a8c32c6f39">   54</a></span>&#160;<a class="code" href="namespacemaingo.html#aff818a6a6eca6dcfa6cc89a8c32c6f39">print_version</a>()</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <span class="keywordflow">return</span> <span class="stringliteral">&quot;v0.3.0 &quot;</span>;</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;}</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="structmaingo_1_1_settings_html"><div class="ttname"><a href="structmaingo_1_1_settings.html">maingo::Settings</a></div><div class="ttdoc">Struct for storing settings for MAiNGO.</div><div class="ttdef"><b>Definition:</b> settings.h:143</div></div>
-<div class="ttc" id="namespacemaingo_html_ab36b1ec6df5374d8caba1bae5495df5d"><div class="ttname"><a href="namespacemaingo.html#ab36b1ec6df5374d8caba1bae5495df5d">maingo::larger_or_equal_within_tolerance</a></div><div class="ttdeci">bool larger_or_equal_within_tolerance(const double LBD, const double UBD, Settings *mySettings)</div><div class="ttdoc">Function for checking if LBD is larger than UBD, or smaller by not more than the specified tolerance ...</div><div class="ttdef"><b>Definition:</b> utilities.h:38</div></div>
-<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO</div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_a7b899b964718fb9e7a95459026faf6aa"><div class="ttname"><a href="structmaingo_1_1_settings.html#a7b899b964718fb9e7a95459026faf6aa">maingo::Settings::epsilonA</a></div><div class="ttdeci">double epsilonA</div><div class="ttdoc">Absolute optimality tolerance, i.e., termination when (UBD-LBD) &lt; BAB_epsilon_a.</div><div class="ttdef"><b>Definition:</b> settings.h:164</div></div>
+<a href="utilities_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="settings_8h.html">settings.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &lt;cmath&gt;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span></div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="namespacemaingo.html#ab36b1ec6df5374d8caba1bae5495df5d">   33</a></span>&#160;<a class="code" href="namespacemaingo.html#ab36b1ec6df5374d8caba1bae5495df5d">larger_or_equal_within_tolerance</a>(<span class="keyword">const</span> <span class="keywordtype">double</span> LBD, <span class="keyword">const</span> <span class="keywordtype">double</span> UBD, <a class="code" href="structmaingo_1_1_settings.html">Settings</a>* mySettings)</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;{</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    <span class="keywordtype">bool</span> absDone = (LBD &gt;= (UBD - mySettings-&gt;<a class="code" href="structmaingo_1_1_settings.html#a7b899b964718fb9e7a95459026faf6aa">epsilonA</a>));                     <span class="comment">// Done means that absolute criterion is met</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    <span class="keywordtype">bool</span> relDone = (LBD &gt;= (UBD - std::fabs(UBD) * mySettings-&gt;<a class="code" href="structmaingo_1_1_settings.html#a013779523888ede06a29eb507b22d139">epsilonR</a>));    <span class="comment">// Done means that relative criterion is met</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    <span class="keywordflow">return</span> (absDone || relDone);                                              <span class="comment">// If either criterion is met we are done</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;}</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="keyword">inline</span> std::string</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="namespacemaingo.html#aff818a6a6eca6dcfa6cc89a8c32c6f39">   49</a></span>&#160;<a class="code" href="namespacemaingo.html#aff818a6a6eca6dcfa6cc89a8c32c6f39">print_version</a>()</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    <span class="keywordflow">return</span> <span class="stringliteral">&quot;v0.4.0 &quot;</span>;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;}</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;}    <span class="comment">// end namespace maingo</span></div><div class="ttc" id="structmaingo_1_1_settings_html"><div class="ttname"><a href="structmaingo_1_1_settings.html">maingo::Settings</a></div><div class="ttdoc">Struct for storing settings for MAiNGO. </div><div class="ttdef"><b>Definition:</b> settings.h:125</div></div>
+<div class="ttc" id="namespacemaingo_html_ab36b1ec6df5374d8caba1bae5495df5d"><div class="ttname"><a href="namespacemaingo.html#ab36b1ec6df5374d8caba1bae5495df5d">maingo::larger_or_equal_within_tolerance</a></div><div class="ttdeci">bool larger_or_equal_within_tolerance(const double LBD, const double UBD, Settings *mySettings)</div><div class="ttdoc">Function for checking if LBD is larger than UBD, or smaller by not more than the specified tolerance ...</div><div class="ttdef"><b>Definition:</b> utilities.h:33</div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_a7b899b964718fb9e7a95459026faf6aa"><div class="ttname"><a href="structmaingo_1_1_settings.html#a7b899b964718fb9e7a95459026faf6aa">maingo::Settings::epsilonA</a></div><div class="ttdeci">double epsilonA</div><div class="ttdoc">Absolute optimality tolerance, i.e., termination when (UBD-LBD) &lt; BAB_epsilon_a. </div><div class="ttdef"><b>Definition:</b> settings.h:131</div></div>
 <div class="ttc" id="settings_8h_html"><div class="ttname"><a href="settings_8h.html">settings.h</a></div></div>
-<div class="ttc" id="namespacemaingo_html_aff818a6a6eca6dcfa6cc89a8c32c6f39"><div class="ttname"><a href="namespacemaingo.html#aff818a6a6eca6dcfa6cc89a8c32c6f39">maingo::print_version</a></div><div class="ttdeci">std::string print_version()</div><div class="ttdoc">Function printing the current version number.</div><div class="ttdef"><b>Definition:</b> utilities.h:54</div></div>
-<div class="ttc" id="structmaingo_1_1_settings_html_a013779523888ede06a29eb507b22d139"><div class="ttname"><a href="structmaingo_1_1_settings.html#a013779523888ede06a29eb507b22d139">maingo::Settings::epsilonR</a></div><div class="ttdeci">double epsilonR</div><div class="ttdoc">Relative optimality tolerance, i.e., termination when (UBD-LBD) &lt; BAB_epsilon_r * UBD.</div><div class="ttdef"><b>Definition:</b> settings.h:165</div></div>
+<div class="ttc" id="namespacemaingo_html_aff818a6a6eca6dcfa6cc89a8c32c6f39"><div class="ttname"><a href="namespacemaingo.html#aff818a6a6eca6dcfa6cc89a8c32c6f39">maingo::print_version</a></div><div class="ttdeci">std::string print_version()</div><div class="ttdoc">Function printing the current version number. </div><div class="ttdef"><b>Definition:</b> utilities.h:49</div></div>
+<div class="ttc" id="structmaingo_1_1_settings_html_a013779523888ede06a29eb507b22d139"><div class="ttname"><a href="structmaingo_1_1_settings.html#a013779523888ede06a29eb507b22d139">maingo::Settings::epsilonR</a></div><div class="ttdeci">double epsilonR</div><div class="ttdoc">Relative optimality tolerance, i.e., termination when (UBD-LBD) &lt; BAB_epsilon_r * UBD...</div><div class="ttdef"><b>Definition:</b> settings.h:132</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -105,7 +105,7 @@ $(document).ready(function(){initNavTree('utilities_8h_source.html','');});
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="utilities_8h.html">utilities.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/variable_lister_8h.html b/doc/html/variable_lister_8h.html
index 1673d5cfaebae18893b8f89a412a8eb6c85468ba..7cd459fc38b8f826f1ee2085df0e6c83f5ab8f74 100644
--- a/doc/html/variable_lister_8h.html
+++ b/doc/html/variable_lister_8h.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/variableLister.h File Reference</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/variableLister.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -134,7 +134,7 @@ Functions</h2></td></tr>
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="variable_lister_8h.html">variableLister.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/variable_lister_8h_source.html b/doc/html/variable_lister_8h_source.html
index f70ef6b307a19bea97afce26b171a99f59ba5cf9..c8c7012f5469d30d6450f17183b2d9e4e5a852ad 100644
--- a/doc/html/variable_lister_8h_source.html
+++ b/doc/html/variable_lister_8h_source.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>MAiNGO: C:/Users/dobo01/maingo/inc/variableLister.h Source File</title>
+<title>MAiNGO: C:/dobo01/maingo/inc/variableLister.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -90,30 +90,31 @@ $(document).ready(function(){initNavTree('variable_lister_8h_source.html','');})
 <div class="title">variableLister.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<a href="variable_lister_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * @file variableLister.h</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * @brief File declaring the VariableLister class that lists given symbols</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *        as OptimizationVariable objects.</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_opt_var_8h.html">babOptVar.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;symbol.hpp&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="keyword">using namespace </span>ale;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> IDim&gt;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;std::string</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a11bcd09435dfa315a14f05c640fbc14d">   37</a></span>&#160;<a class="code" href="namespacemaingo.html#a11bcd09435dfa315a14f05c640fbc14d">var_indexes</a>(<span class="keywordtype">size_t</span>* indexes)</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    <span class="keywordflow">return</span> <span class="charliteral">&#39;_&#39;</span> + std::to_string(indexes[0] + 1) + <a class="code" href="namespacemaingo.html#a11bcd09435dfa315a14f05c640fbc14d">var_indexes</a>&lt;IDim - 1&gt;(indexes + 1);</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;}</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="keyword">template</span> &lt;&gt;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="keyword">inline</span> std::string</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="namespacemaingo.html#af6bb0f53c0435aab16b7b77572162ef7">   49</a></span>&#160;<a class="code" href="namespacemaingo.html#af6bb0f53c0435aab16b7b77572162ef7">var_indexes&lt;1&gt;</a>(<span class="keywordtype">size_t</span>* indexes)</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    <span class="keywordflow">return</span> <span class="charliteral">&#39;_&#39;</span> + std::to_string(indexes[0] + 1);</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;}</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> IDim&gt;</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;std::string</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a1c6fbc2d5c914dfda1933a8815992b7a">   62</a></span>&#160;<a class="code" href="namespacemaingo.html#a1c6fbc2d5c914dfda1933a8815992b7a">var_name</a>(std::string base, <span class="keywordtype">size_t</span>* indexes)</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;{</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <span class="keywordflow">return</span> base + var_indexes&lt;IDim&gt;(indexes);</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;}</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="classmaingo_1_1_variable_lister.html">   71</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1_variable_lister.html">VariableLister</a> {</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classmaingo_1_1_variable_lister.html#a1c0d97548f71d312acf2222789fc3202">   80</a></span>&#160;    <a class="code" href="classmaingo_1_1_variable_lister.html#a1c0d97548f71d312acf2222789fc3202">VariableLister</a>(</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;        std::vector&lt;OptimizationVariable&gt;&amp; variables,</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;        std::vector&lt;double&gt;&amp; initials,</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;        std::unordered_map&lt;std::string, int&gt;&amp; positions):</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;        _variables(variables),</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        _initials(initials), _positions(positions)</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    {</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    }</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classmaingo_1_1_variable_lister.html#a4a47f766485e3b944314c6b6c3dead33">   94</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_variable_lister.html#a4a47f766485e3b944314c6b6c3dead33">dispatch</a>(base_symbol* sym)</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    {</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;        <span class="keywordflow">if</span> (sym) {</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;            <span class="keywordflow">return</span> std::visit(*<span class="keyword">this</span>, sym-&gt;get_base_variant());</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;        }</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    }</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    <span class="keyword">template</span> &lt;<span class="keyword">typename</span> TType&gt;</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="classmaingo_1_1_variable_lister.html#a388010bf972557bb263e804184fd68d8">  107</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_variable_lister.html#a388010bf972557bb263e804184fd68d8">operator()</a>(value_symbol&lt;TType&gt;* sym)</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    {</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    }</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    <span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> IDim&gt;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="classmaingo_1_1_variable_lister.html#af4841887f3cb320059cce7dcf1c1723e">  113</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_variable_lister.html#af4841887f3cb320059cce7dcf1c1723e">operator()</a>(value_symbol&lt;real&lt;IDim&gt;&gt;* sym)</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    {</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        <span class="keywordflow">return</span> std::visit(*<span class="keyword">this</span>, sym-&gt;get_value_variant());</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    }</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    <span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> IDim&gt;</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="classmaingo_1_1_variable_lister.html#aba8c441cff84cc626c64f7363389b349">  120</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_variable_lister.html#aba8c441cff84cc626c64f7363389b349">operator()</a>(parameter_symbol&lt;real&lt;IDim&gt;&gt;* sym)</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    {</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    }</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    <span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> IDim&gt;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classmaingo_1_1_variable_lister.html#a9da7e334ca36edf25d15913427238957">  125</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_variable_lister.html#a9da7e334ca36edf25d15913427238957">operator()</a>(expression_symbol&lt;real&lt;IDim&gt;&gt;* sym)</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    {</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    }</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    <span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> IDim&gt;</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="classmaingo_1_1_variable_lister.html#a96e82077a5785647fbd87a9d918e4867">  130</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_variable_lister.html#a96e82077a5785647fbd87a9d918e4867">operator()</a>(variable_symbol&lt;real&lt;IDim&gt;&gt;* sym)</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    {</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; IDim; ++i) {</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;            <span class="keywordflow">if</span> (sym-&gt;shape(i) == 0) {</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;                <span class="keywordflow">return</span>;</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;            }</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;        }</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        _positions[sym-&gt;m_name] = _variables.size();</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        <span class="keywordtype">size_t</span> indexes[IDim];</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; IDim; ++i) {</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;            indexes[i] = 0;</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        }</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        <span class="keywordflow">while</span> (indexes[0] &lt; sym-&gt;shape(0)) {</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;            <span class="keywordflow">if</span> (sym-&gt;lower()[indexes] == -std::numeric_limits&lt;double&gt;::infinity() || sym-&gt;upper()[indexes] == std::numeric_limits&lt;double&gt;::infinity()) {</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;                <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: VariableLister -- Entry of variable &quot;</span> + sym-&gt;m_name + <span class="stringliteral">&quot; is unbounded&quot;</span>);</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;            }</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;            <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">maingo::VT</a> vartype = <a class="code" href="namespacemaingo.html#a89cab929c81b85f38d710492c504a2aa">VT_CONTINUOUS</a>;</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;            <span class="keywordflow">if</span> (sym-&gt;integral()) {</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;                <span class="keywordflow">if</span> (ceil(sym-&gt;lower()[indexes]) == 0 &amp;&amp; floor(sym-&gt;upper()[indexes]) == 1) {</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;                    vartype = <a class="code" href="namespacemaingo.html#a2636675161b046fa4c46354e7496b821">VT_BINARY</a>;</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;                }</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;                <span class="keywordflow">else</span> {</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;                    vartype = <a class="code" href="namespacemaingo.html#a041341062af0bec7f553f388a88f63fc">VT_INTEGER</a>;</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;                }</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;            }</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;            <span class="keywordtype">double</span> lower = sym-&gt;lower()[indexes];</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;            <span class="keywordtype">double</span> upper = sym-&gt;upper()[indexes];</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;            _variables.push_back(</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;                <a class="code" href="namespacemaingo.html#adf4533c14585b7b44a5849066d6637cc">OptimizationVariable</a>(</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;                    <a class="code" href="namespacemaingo.html#a56be7240143795082f52dcb10cb2d1ba">Bounds</a>(lower, upper),</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;                    vartype,</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;                    var_name&lt;IDim&gt;(sym-&gt;m_name, indexes)));</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;            <span class="keywordtype">double</span> initial = sym-&gt;init()[indexes];</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;            <span class="keywordflow">if</span> (std::isnan(initial)) {</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;                initial = 0.5 * (lower + upper);</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;            }</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;            _initials.push_back(initial);</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;            <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = IDim - 1; i &gt;= 0; --i) {</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;                <span class="keywordflow">if</span> (++indexes[i] &lt; sym-&gt;shape(i)) {</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;                }</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (i != 0) {</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;                    indexes[i] = 0;</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;                }</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;            }</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;        }</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;    }</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="classmaingo_1_1_variable_lister.html#a936ec1aaa564849fe32e22833c8d5fc0">  179</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_variable_lister.html#a936ec1aaa564849fe32e22833c8d5fc0">operator()</a>(variable_symbol&lt;real&lt;0&gt;&gt;* sym)</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    {</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;        <span class="keywordflow">if</span> (sym-&gt;lower() == -std::numeric_limits&lt;double&gt;::infinity() || sym-&gt;upper() == std::numeric_limits&lt;double&gt;::infinity()) {</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: VariableLister -- Variable &quot;</span> + sym-&gt;m_name + <span class="stringliteral">&quot; is unbounded&quot;</span>);</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        }</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;        _positions[sym-&gt;m_name] = _variables.size();</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;        <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">maingo::VT</a> vartype      = <a class="code" href="namespacemaingo.html#a89cab929c81b85f38d710492c504a2aa">VT_CONTINUOUS</a>;</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;        <span class="keywordflow">if</span> (sym-&gt;integral()) {</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;            <span class="keywordflow">if</span> (ceil(sym-&gt;lower()) == 0 &amp;&amp; floor(sym-&gt;upper()) == 1) {</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;                vartype = <a class="code" href="namespacemaingo.html#a2636675161b046fa4c46354e7496b821">VT_BINARY</a>;</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;            }</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;            <span class="keywordflow">else</span> {</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;                vartype = <a class="code" href="namespacemaingo.html#a041341062af0bec7f553f388a88f63fc">VT_INTEGER</a>;</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;            }</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;        }</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;        <span class="keywordtype">double</span> lower = sym-&gt;lower();</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;        <span class="keywordtype">double</span> upper = sym-&gt;upper();</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;        _variables.push_back(</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;            <a class="code" href="namespacemaingo.html#adf4533c14585b7b44a5849066d6637cc">OptimizationVariable</a>(</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;                <a class="code" href="namespacemaingo.html#a56be7240143795082f52dcb10cb2d1ba">Bounds</a>(lower, upper),</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;                vartype,</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;                sym-&gt;m_name));</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;        <span class="keywordtype">double</span> initial = sym-&gt;init();</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;        <span class="keywordflow">if</span> (std::isnan(initial)) {</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;            initial = 0.5 * (lower + upper);</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;        }</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;        _initials.push_back(initial);</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;    }</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="classmaingo_1_1_variable_lister.html#a852d79de9046af5bfa1c4bff86ce39f6">  210</a></span>&#160;    std::vector&lt;OptimizationVariable&gt;&amp; <a class="code" href="classmaingo_1_1_variable_lister.html#a852d79de9046af5bfa1c4bff86ce39f6">_variables</a>;    </div><div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="classmaingo_1_1_variable_lister.html#a8f7746fa9dd30da09b19b04a92f86b05">  211</a></span>&#160;    std::vector&lt;double&gt;&amp; <a class="code" href="classmaingo_1_1_variable_lister.html#a8f7746fa9dd30da09b19b04a92f86b05">_initials</a>;                   </div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="classmaingo_1_1_variable_lister.html#a39c90597d8d4cc960550fe63aa4481f8">  212</a></span>&#160;    std::unordered_map&lt;std::string, int&gt;&amp; <a class="code" href="classmaingo_1_1_variable_lister.html#a39c90597d8d4cc960550fe63aa4481f8">_positions</a>; </div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;};</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;}    <span class="comment">// namespace maingo</span></div><div class="ttc" id="namespacemaingo_html_a11bcd09435dfa315a14f05c640fbc14d"><div class="ttname"><a href="namespacemaingo.html#a11bcd09435dfa315a14f05c640fbc14d">maingo::var_indexes</a></div><div class="ttdeci">std::string var_indexes(size_t *indexes)</div><div class="ttdoc">Function for serializing index sequences.</div><div class="ttdef"><b>Definition:</b> variableLister.h:37</div></div>
-<div class="ttc" id="classmaingo_1_1_variable_lister_html_a4a47f766485e3b944314c6b6c3dead33"><div class="ttname"><a href="classmaingo_1_1_variable_lister.html#a4a47f766485e3b944314c6b6c3dead33">maingo::VariableLister::dispatch</a></div><div class="ttdeci">void dispatch(base_symbol *sym)</div><div class="ttdoc">Dispatch function.</div><div class="ttdef"><b>Definition:</b> variableLister.h:94</div></div>
-<div class="ttc" id="namespacemaingo_html_af6bb0f53c0435aab16b7b77572162ef7"><div class="ttname"><a href="namespacemaingo.html#af6bb0f53c0435aab16b7b77572162ef7">maingo::var_indexes&lt; 1 &gt;</a></div><div class="ttdeci">std::string var_indexes&lt; 1 &gt;(size_t *indexes)</div><div class="ttdoc">Function for serializing index sequences.</div><div class="ttdef"><b>Definition:</b> variableLister.h:49</div></div>
-<div class="ttc" id="classmaingo_1_1_variable_lister_html_a852d79de9046af5bfa1c4bff86ce39f6"><div class="ttname"><a href="classmaingo_1_1_variable_lister.html#a852d79de9046af5bfa1c4bff86ce39f6">maingo::VariableLister::_variables</a></div><div class="ttdeci">std::vector&lt; OptimizationVariable &gt; &amp; _variables</div><div class="ttdef"><b>Definition:</b> variableLister.h:210</div></div>
-<div class="ttc" id="namespacemaingo_html_a041341062af0bec7f553f388a88f63fc"><div class="ttname"><a href="namespacemaingo.html#a041341062af0bec7f553f388a88f63fc">maingo::VT_INTEGER</a></div><div class="ttdeci">constexpr VT VT_INTEGER</div><div class="ttdef"><b>Definition:</b> MAiNGOmodel.h:84</div></div>
-<div class="ttc" id="classmaingo_1_1_variable_lister_html_a96e82077a5785647fbd87a9d918e4867"><div class="ttname"><a href="classmaingo_1_1_variable_lister.html#a96e82077a5785647fbd87a9d918e4867">maingo::VariableLister::operator()</a></div><div class="ttdeci">void operator()(variable_symbol&lt; real&lt; IDim &gt;&gt; *sym)</div><div class="ttdef"><b>Definition:</b> variableLister.h:130</div></div>
-<div class="ttc" id="namespacemaingo_html_a1c6fbc2d5c914dfda1933a8815992b7a"><div class="ttname"><a href="namespacemaingo.html#a1c6fbc2d5c914dfda1933a8815992b7a">maingo::var_name</a></div><div class="ttdeci">std::string var_name(std::string base, size_t *indexes)</div><div class="ttdoc">Function for flattening indexed symbol names.</div><div class="ttdef"><b>Definition:</b> variableLister.h:62</div></div>
-<div class="ttc" id="classmaingo_1_1_variable_lister_html_a39c90597d8d4cc960550fe63aa4481f8"><div class="ttname"><a href="classmaingo_1_1_variable_lister.html#a39c90597d8d4cc960550fe63aa4481f8">maingo::VariableLister::_positions</a></div><div class="ttdeci">std::unordered_map&lt; std::string, int &gt; &amp; _positions</div><div class="ttdef"><b>Definition:</b> variableLister.h:212</div></div>
-<div class="ttc" id="classmaingo_1_1_variable_lister_html"><div class="ttname"><a href="classmaingo_1_1_variable_lister.html">maingo::VariableLister</a></div><div class="ttdoc">Serializes a given symbol and lists it into a vector.</div><div class="ttdef"><b>Definition:</b> variableLister.h:71</div></div>
-<div class="ttc" id="classmaingo_1_1_variable_lister_html_a936ec1aaa564849fe32e22833c8d5fc0"><div class="ttname"><a href="classmaingo_1_1_variable_lister.html#a936ec1aaa564849fe32e22833c8d5fc0">maingo::VariableLister::operator()</a></div><div class="ttdeci">void operator()(variable_symbol&lt; real&lt; 0 &gt;&gt; *sym)</div><div class="ttdef"><b>Definition:</b> variableLister.h:179</div></div>
-<div class="ttc" id="namespacemaingo_html_a89cab929c81b85f38d710492c504a2aa"><div class="ttname"><a href="namespacemaingo.html#a89cab929c81b85f38d710492c504a2aa">maingo::VT_CONTINUOUS</a></div><div class="ttdeci">constexpr VT VT_CONTINUOUS</div><div class="ttdef"><b>Definition:</b> MAiNGOmodel.h:82</div></div>
-<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO</div><div class="ttdef"><b>Definition:</b> aleModel.h:31</div></div>
-<div class="ttc" id="classmaingo_1_1_variable_lister_html_a1c0d97548f71d312acf2222789fc3202"><div class="ttname"><a href="classmaingo_1_1_variable_lister.html#a1c0d97548f71d312acf2222789fc3202">maingo::VariableLister::VariableLister</a></div><div class="ttdeci">VariableLister(std::vector&lt; OptimizationVariable &gt; &amp;variables, std::vector&lt; double &gt; &amp;initials, std::unordered_map&lt; std::string, int &gt; &amp;positions)</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> variableLister.h:80</div></div>
-<div class="ttc" id="classmaingo_1_1_variable_lister_html_a388010bf972557bb263e804184fd68d8"><div class="ttname"><a href="classmaingo_1_1_variable_lister.html#a388010bf972557bb263e804184fd68d8">maingo::VariableLister::operator()</a></div><div class="ttdeci">void operator()(value_symbol&lt; TType &gt; *sym)</div><div class="ttdef"><b>Definition:</b> variableLister.h:107</div></div>
-<div class="ttc" id="namespacemaingo_html_adf4533c14585b7b44a5849066d6637cc"><div class="ttname"><a href="namespacemaingo.html#adf4533c14585b7b44a5849066d6637cc">maingo::OptimizationVariable</a></div><div class="ttdeci">babBase::OptimizationVariable OptimizationVariable</div><div class="ttdef"><b>Definition:</b> MAiNGOmodel.h:79</div></div>
-<div class="ttc" id="classmaingo_1_1_variable_lister_html_a8f7746fa9dd30da09b19b04a92f86b05"><div class="ttname"><a href="classmaingo_1_1_variable_lister.html#a8f7746fa9dd30da09b19b04a92f86b05">maingo::VariableLister::_initials</a></div><div class="ttdeci">std::vector&lt; double &gt; &amp; _initials</div><div class="ttdef"><b>Definition:</b> variableLister.h:211</div></div>
-<div class="ttc" id="namespacebab_base_1_1enums_html_a6b926f3dfa42fc3a3324c8b0ac99c48b"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">babBase::enums::VT</a></div><div class="ttdeci">VT</div><div class="ttdoc">Enum for representing the Variable Type of an optimization variable as specified by the user.</div><div class="ttdef"><b>Definition:</b> babOptVar.h:40</div></div>
-<div class="ttc" id="classmaingo_1_1_variable_lister_html_af4841887f3cb320059cce7dcf1c1723e"><div class="ttname"><a href="classmaingo_1_1_variable_lister.html#af4841887f3cb320059cce7dcf1c1723e">maingo::VariableLister::operator()</a></div><div class="ttdeci">void operator()(value_symbol&lt; real&lt; IDim &gt;&gt; *sym)</div><div class="ttdef"><b>Definition:</b> variableLister.h:113</div></div>
-<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_exception_html"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o_exception.html">maingo::MAiNGOException</a></div><div class="ttdoc">This class defines the exceptions thrown by MAiNGO.</div><div class="ttdef"><b>Definition:</b> exceptions.h:39</div></div>
-<div class="ttc" id="namespacemaingo_html_a2636675161b046fa4c46354e7496b821"><div class="ttname"><a href="namespacemaingo.html#a2636675161b046fa4c46354e7496b821">maingo::VT_BINARY</a></div><div class="ttdeci">constexpr VT VT_BINARY</div><div class="ttdef"><b>Definition:</b> MAiNGOmodel.h:83</div></div>
-<div class="ttc" id="classmaingo_1_1_variable_lister_html_a9da7e334ca36edf25d15913427238957"><div class="ttname"><a href="classmaingo_1_1_variable_lister.html#a9da7e334ca36edf25d15913427238957">maingo::VariableLister::operator()</a></div><div class="ttdeci">void operator()(expression_symbol&lt; real&lt; IDim &gt;&gt; *sym)</div><div class="ttdef"><b>Definition:</b> variableLister.h:125</div></div>
-<div class="ttc" id="namespacemaingo_html_a56be7240143795082f52dcb10cb2d1ba"><div class="ttname"><a href="namespacemaingo.html#a56be7240143795082f52dcb10cb2d1ba">maingo::Bounds</a></div><div class="ttdeci">babBase::Bounds Bounds</div><div class="ttdef"><b>Definition:</b> MAiNGOmodel.h:80</div></div>
+<a href="variable_lister_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * This program and the accompanying materials are made available under the</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * terms of the Eclipse Public License 2.0 which is available at</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * http://www.eclipse.org/legal/epl-2.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * SPDX-License-Identifier: EPL-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> **********************************************************************************/</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="bab_opt_var_8h.html">babOptVar.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &quot;symbol.hpp&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemaingo.html">maingo</a> {</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceale.html">ale</a>;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> IDim&gt;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;std::string</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a11bcd09435dfa315a14f05c640fbc14d">   32</a></span>&#160;<a class="code" href="namespacemaingo.html#a11bcd09435dfa315a14f05c640fbc14d">var_indexes</a>(<span class="keywordtype">size_t</span>* indexes)</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;{</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    <span class="keywordflow">return</span> <span class="charliteral">&#39;_&#39;</span> + std::to_string(indexes[0] + 1) + <a class="code" href="namespacemaingo.html#a11bcd09435dfa315a14f05c640fbc14d">var_indexes</a>&lt;IDim - 1&gt;(indexes + 1);</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;}</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="keyword">template</span> &lt;&gt;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="keyword">inline</span> std::string</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="namespacemaingo.html#af6bb0f53c0435aab16b7b77572162ef7">   44</a></span>&#160;<a class="code" href="namespacemaingo.html#af6bb0f53c0435aab16b7b77572162ef7">var_indexes&lt;1&gt;</a>(<span class="keywordtype">size_t</span>* indexes)</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    <span class="keywordflow">return</span> <span class="charliteral">&#39;_&#39;</span> + std::to_string(indexes[0] + 1);</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;}</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> IDim&gt;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;std::string</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="namespacemaingo.html#a1c6fbc2d5c914dfda1933a8815992b7a">   57</a></span>&#160;<a class="code" href="namespacemaingo.html#a1c6fbc2d5c914dfda1933a8815992b7a">var_name</a>(std::string base, <span class="keywordtype">size_t</span>* indexes)</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    <span class="keywordflow">return</span> base + var_indexes&lt;IDim&gt;(indexes);</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;}</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classmaingo_1_1_variable_lister.html">   66</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmaingo_1_1_variable_lister.html">VariableLister</a> {</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classmaingo_1_1_variable_lister.html#a1c0d97548f71d312acf2222789fc3202">   75</a></span>&#160;    <a class="code" href="classmaingo_1_1_variable_lister.html#a1c0d97548f71d312acf2222789fc3202">VariableLister</a>(</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;        std::vector&lt;OptimizationVariable&gt;&amp; variables,</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;        std::vector&lt;double&gt;&amp; initials,</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;        std::unordered_map&lt;std::string, int&gt;&amp; positions):</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        _variables(variables),</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;        _initials(initials), _positions(positions)</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    {</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    }</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classmaingo_1_1_variable_lister.html#a4a47f766485e3b944314c6b6c3dead33">   89</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_variable_lister.html#a4a47f766485e3b944314c6b6c3dead33">dispatch</a>(base_symbol* sym)</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    {</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;        <span class="keywordflow">if</span> (sym) {</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;            <span class="keywordflow">return</span> std::visit(*<span class="keyword">this</span>, sym-&gt;get_base_variant());</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;        }</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    }</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    <span class="keyword">template</span> &lt;<span class="keyword">typename</span> TType&gt;</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="classmaingo_1_1_variable_lister.html#a388010bf972557bb263e804184fd68d8">  102</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_variable_lister.html#a388010bf972557bb263e804184fd68d8">operator()</a>(value_symbol&lt;TType&gt;* sym)</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    {</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    }</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> IDim&gt;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classmaingo_1_1_variable_lister.html#af4841887f3cb320059cce7dcf1c1723e">  108</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_variable_lister.html#af4841887f3cb320059cce7dcf1c1723e">operator()</a>(value_symbol&lt;real&lt;IDim&gt;&gt;* sym)</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    {</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;        <span class="keywordflow">return</span> std::visit(*<span class="keyword">this</span>, sym-&gt;get_value_variant());</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    }</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    <span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> IDim&gt;</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classmaingo_1_1_variable_lister.html#aba8c441cff84cc626c64f7363389b349">  115</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_variable_lister.html#aba8c441cff84cc626c64f7363389b349">operator()</a>(parameter_symbol&lt;real&lt;IDim&gt;&gt;* sym)</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    {</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    }</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    <span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> IDim&gt;</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="classmaingo_1_1_variable_lister.html#a9da7e334ca36edf25d15913427238957">  120</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_variable_lister.html#a9da7e334ca36edf25d15913427238957">operator()</a>(expression_symbol&lt;real&lt;IDim&gt;&gt;* sym)</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    {</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    }</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    <span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> IDim&gt;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classmaingo_1_1_variable_lister.html#a96e82077a5785647fbd87a9d918e4867">  125</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_variable_lister.html#a96e82077a5785647fbd87a9d918e4867">operator()</a>(variable_symbol&lt;real&lt;IDim&gt;&gt;* sym)</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    {</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; IDim; ++i) {</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;            <span class="keywordflow">if</span> (sym-&gt;shape(i) == 0) {</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;                <span class="keywordflow">return</span>;</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;            }</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;        }</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;        _positions[sym-&gt;m_name] = _variables.size();</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        <span class="keywordtype">size_t</span> indexes[IDim];</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; IDim; ++i) {</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;            indexes[i] = 0;</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;        }</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        <span class="keywordflow">while</span> (indexes[0] &lt; sym-&gt;shape(0)) {</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;            <span class="keywordflow">if</span> (sym-&gt;lower()[indexes] == -std::numeric_limits&lt;double&gt;::infinity() || sym-&gt;upper()[indexes] == std::numeric_limits&lt;double&gt;::infinity()) {</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;                <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: VariableLister -- Entry of variable &quot;</span> + sym-&gt;m_name + <span class="stringliteral">&quot; is unbounded&quot;</span>);</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;            }</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;            <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">maingo::VT</a> vartype = <a class="code" href="namespacemaingo.html#a89cab929c81b85f38d710492c504a2aa">VT_CONTINUOUS</a>;</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;            <span class="keywordflow">if</span> (sym-&gt;integral()) {</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;                <span class="keywordflow">if</span> (ceil(sym-&gt;lower()[indexes]) == 0 &amp;&amp; floor(sym-&gt;upper()[indexes]) == 1) {</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;                    vartype = <a class="code" href="namespacemaingo.html#a2636675161b046fa4c46354e7496b821">VT_BINARY</a>;</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;                }</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;                <span class="keywordflow">else</span> {</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;                    vartype = <a class="code" href="namespacemaingo.html#a041341062af0bec7f553f388a88f63fc">VT_INTEGER</a>;</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;                }</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;            }</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;            <span class="keywordtype">double</span> lower = sym-&gt;lower()[indexes];</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;            <span class="keywordtype">double</span> upper = sym-&gt;upper()[indexes];</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;            _variables.push_back(</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;                <a class="code" href="namespacemaingo.html#adf4533c14585b7b44a5849066d6637cc">OptimizationVariable</a>(</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;                    <a class="code" href="namespacemaingo.html#a56be7240143795082f52dcb10cb2d1ba">Bounds</a>(lower, upper),</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;                    vartype,</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;                    var_name&lt;IDim&gt;(sym-&gt;m_name, indexes)));</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;            <span class="keywordtype">double</span> initial = sym-&gt;init()[indexes];</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;            <span class="keywordflow">if</span> (std::isnan(initial)) {</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;                initial = 0.5 * (lower + upper);</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;            }</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;            _initials.push_back(initial);</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;            <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = IDim - 1; i &gt;= 0; --i) {</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;                <span class="keywordflow">if</span> (++indexes[i] &lt; sym-&gt;shape(i)) {</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;                    <span class="keywordflow">break</span>;</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;                }</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (i != 0) {</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;                    indexes[i] = 0;</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;                }</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;            }</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;        }</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    }</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="classmaingo_1_1_variable_lister.html#a936ec1aaa564849fe32e22833c8d5fc0">  174</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classmaingo_1_1_variable_lister.html#a936ec1aaa564849fe32e22833c8d5fc0">operator()</a>(variable_symbol&lt;real&lt;0&gt;&gt;* sym)</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    {</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;        <span class="keywordflow">if</span> (sym-&gt;lower() == -std::numeric_limits&lt;double&gt;::infinity() || sym-&gt;upper() == std::numeric_limits&lt;double&gt;::infinity()) {</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classmaingo_1_1_m_ai_n_g_o_exception.html">MAiNGOException</a>(<span class="stringliteral">&quot;  Error: VariableLister -- Variable &quot;</span> + sym-&gt;m_name + <span class="stringliteral">&quot; is unbounded&quot;</span>);</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;        }</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;        _positions[sym-&gt;m_name] = _variables.size();</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;        <a class="code" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">maingo::VT</a> vartype      = <a class="code" href="namespacemaingo.html#a89cab929c81b85f38d710492c504a2aa">VT_CONTINUOUS</a>;</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;        <span class="keywordflow">if</span> (sym-&gt;integral()) {</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;            <span class="keywordflow">if</span> (ceil(sym-&gt;lower()) == 0 &amp;&amp; floor(sym-&gt;upper()) == 1) {</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;                vartype = <a class="code" href="namespacemaingo.html#a2636675161b046fa4c46354e7496b821">VT_BINARY</a>;</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;            }</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;            <span class="keywordflow">else</span> {</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;                vartype = <a class="code" href="namespacemaingo.html#a041341062af0bec7f553f388a88f63fc">VT_INTEGER</a>;</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;            }</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;        }</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;        <span class="keywordtype">double</span> lower = sym-&gt;lower();</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;        <span class="keywordtype">double</span> upper = sym-&gt;upper();</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;        _variables.push_back(</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;            <a class="code" href="namespacemaingo.html#adf4533c14585b7b44a5849066d6637cc">OptimizationVariable</a>(</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;                <a class="code" href="namespacemaingo.html#a56be7240143795082f52dcb10cb2d1ba">Bounds</a>(lower, upper),</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;                vartype,</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;                sym-&gt;m_name));</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;        <span class="keywordtype">double</span> initial = sym-&gt;init();</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;        <span class="keywordflow">if</span> (std::isnan(initial)) {</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;            initial = 0.5 * (lower + upper);</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;        }</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;        _initials.push_back(initial);</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;    }</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;  <span class="keyword">private</span>:</div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="classmaingo_1_1_variable_lister.html#a852d79de9046af5bfa1c4bff86ce39f6">  205</a></span>&#160;    std::vector&lt;OptimizationVariable&gt;&amp; <a class="code" href="classmaingo_1_1_variable_lister.html#a852d79de9046af5bfa1c4bff86ce39f6">_variables</a>;    </div><div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="classmaingo_1_1_variable_lister.html#a8f7746fa9dd30da09b19b04a92f86b05">  206</a></span>&#160;    std::vector&lt;double&gt;&amp; <a class="code" href="classmaingo_1_1_variable_lister.html#a8f7746fa9dd30da09b19b04a92f86b05">_initials</a>;                   </div><div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="classmaingo_1_1_variable_lister.html#a39c90597d8d4cc960550fe63aa4481f8">  207</a></span>&#160;    std::unordered_map&lt;std::string, int&gt;&amp; <a class="code" href="classmaingo_1_1_variable_lister.html#a39c90597d8d4cc960550fe63aa4481f8">_positions</a>; </div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;};</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;}    <span class="comment">// namespace maingo</span></div><div class="ttc" id="namespacemaingo_html_a11bcd09435dfa315a14f05c640fbc14d"><div class="ttname"><a href="namespacemaingo.html#a11bcd09435dfa315a14f05c640fbc14d">maingo::var_indexes</a></div><div class="ttdeci">std::string var_indexes(size_t *indexes)</div><div class="ttdoc">Function for serializing index sequences. </div><div class="ttdef"><b>Definition:</b> variableLister.h:32</div></div>
+<div class="ttc" id="classmaingo_1_1_variable_lister_html_a4a47f766485e3b944314c6b6c3dead33"><div class="ttname"><a href="classmaingo_1_1_variable_lister.html#a4a47f766485e3b944314c6b6c3dead33">maingo::VariableLister::dispatch</a></div><div class="ttdeci">void dispatch(base_symbol *sym)</div><div class="ttdoc">Dispatch function. </div><div class="ttdef"><b>Definition:</b> variableLister.h:89</div></div>
+<div class="ttc" id="namespacemaingo_html_af6bb0f53c0435aab16b7b77572162ef7"><div class="ttname"><a href="namespacemaingo.html#af6bb0f53c0435aab16b7b77572162ef7">maingo::var_indexes&lt; 1 &gt;</a></div><div class="ttdeci">std::string var_indexes&lt; 1 &gt;(size_t *indexes)</div><div class="ttdoc">Function for serializing index sequences. </div><div class="ttdef"><b>Definition:</b> variableLister.h:44</div></div>
+<div class="ttc" id="classmaingo_1_1_variable_lister_html_a852d79de9046af5bfa1c4bff86ce39f6"><div class="ttname"><a href="classmaingo_1_1_variable_lister.html#a852d79de9046af5bfa1c4bff86ce39f6">maingo::VariableLister::_variables</a></div><div class="ttdeci">std::vector&lt; OptimizationVariable &gt; &amp; _variables</div><div class="ttdef"><b>Definition:</b> variableLister.h:205</div></div>
+<div class="ttc" id="namespacemaingo_html_a041341062af0bec7f553f388a88f63fc"><div class="ttname"><a href="namespacemaingo.html#a041341062af0bec7f553f388a88f63fc">maingo::VT_INTEGER</a></div><div class="ttdeci">constexpr VT VT_INTEGER</div><div class="ttdef"><b>Definition:</b> MAiNGOmodel.h:79</div></div>
+<div class="ttc" id="classmaingo_1_1_variable_lister_html_a96e82077a5785647fbd87a9d918e4867"><div class="ttname"><a href="classmaingo_1_1_variable_lister.html#a96e82077a5785647fbd87a9d918e4867">maingo::VariableLister::operator()</a></div><div class="ttdeci">void operator()(variable_symbol&lt; real&lt; IDim &gt;&gt; *sym)</div><div class="ttdef"><b>Definition:</b> variableLister.h:125</div></div>
+<div class="ttc" id="namespacemaingo_html_a1c6fbc2d5c914dfda1933a8815992b7a"><div class="ttname"><a href="namespacemaingo.html#a1c6fbc2d5c914dfda1933a8815992b7a">maingo::var_name</a></div><div class="ttdeci">std::string var_name(std::string base, size_t *indexes)</div><div class="ttdoc">Function for flattening indexed symbol names. </div><div class="ttdef"><b>Definition:</b> variableLister.h:57</div></div>
+<div class="ttc" id="classmaingo_1_1_variable_lister_html_a39c90597d8d4cc960550fe63aa4481f8"><div class="ttname"><a href="classmaingo_1_1_variable_lister.html#a39c90597d8d4cc960550fe63aa4481f8">maingo::VariableLister::_positions</a></div><div class="ttdeci">std::unordered_map&lt; std::string, int &gt; &amp; _positions</div><div class="ttdef"><b>Definition:</b> variableLister.h:207</div></div>
+<div class="ttc" id="classmaingo_1_1_variable_lister_html"><div class="ttname"><a href="classmaingo_1_1_variable_lister.html">maingo::VariableLister</a></div><div class="ttdoc">Serializes a given symbol and lists it into a vector. </div><div class="ttdef"><b>Definition:</b> variableLister.h:66</div></div>
+<div class="ttc" id="classmaingo_1_1_variable_lister_html_a936ec1aaa564849fe32e22833c8d5fc0"><div class="ttname"><a href="classmaingo_1_1_variable_lister.html#a936ec1aaa564849fe32e22833c8d5fc0">maingo::VariableLister::operator()</a></div><div class="ttdeci">void operator()(variable_symbol&lt; real&lt; 0 &gt;&gt; *sym)</div><div class="ttdef"><b>Definition:</b> variableLister.h:174</div></div>
+<div class="ttc" id="namespacemaingo_html_a89cab929c81b85f38d710492c504a2aa"><div class="ttname"><a href="namespacemaingo.html#a89cab929c81b85f38d710492c504a2aa">maingo::VT_CONTINUOUS</a></div><div class="ttdeci">constexpr VT VT_CONTINUOUS</div><div class="ttdef"><b>Definition:</b> MAiNGOmodel.h:77</div></div>
+<div class="ttc" id="namespacemaingo_html"><div class="ttname"><a href="namespacemaingo.html">maingo</a></div><div class="ttdoc">namespace holding all essentials of MAiNGO </div><div class="ttdef"><b>Definition:</b> aleModel.h:25</div></div>
+<div class="ttc" id="classmaingo_1_1_variable_lister_html_a1c0d97548f71d312acf2222789fc3202"><div class="ttname"><a href="classmaingo_1_1_variable_lister.html#a1c0d97548f71d312acf2222789fc3202">maingo::VariableLister::VariableLister</a></div><div class="ttdeci">VariableLister(std::vector&lt; OptimizationVariable &gt; &amp;variables, std::vector&lt; double &gt; &amp;initials, std::unordered_map&lt; std::string, int &gt; &amp;positions)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> variableLister.h:75</div></div>
+<div class="ttc" id="classmaingo_1_1_variable_lister_html_a388010bf972557bb263e804184fd68d8"><div class="ttname"><a href="classmaingo_1_1_variable_lister.html#a388010bf972557bb263e804184fd68d8">maingo::VariableLister::operator()</a></div><div class="ttdeci">void operator()(value_symbol&lt; TType &gt; *sym)</div><div class="ttdef"><b>Definition:</b> variableLister.h:102</div></div>
+<div class="ttc" id="namespacemaingo_html_adf4533c14585b7b44a5849066d6637cc"><div class="ttname"><a href="namespacemaingo.html#adf4533c14585b7b44a5849066d6637cc">maingo::OptimizationVariable</a></div><div class="ttdeci">babBase::OptimizationVariable OptimizationVariable</div><div class="ttdef"><b>Definition:</b> MAiNGOmodel.h:74</div></div>
+<div class="ttc" id="classmaingo_1_1_variable_lister_html_a8f7746fa9dd30da09b19b04a92f86b05"><div class="ttname"><a href="classmaingo_1_1_variable_lister.html#a8f7746fa9dd30da09b19b04a92f86b05">maingo::VariableLister::_initials</a></div><div class="ttdeci">std::vector&lt; double &gt; &amp; _initials</div><div class="ttdef"><b>Definition:</b> variableLister.h:206</div></div>
+<div class="ttc" id="namespacebab_base_1_1enums_html_a6b926f3dfa42fc3a3324c8b0ac99c48b"><div class="ttname"><a href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">babBase::enums::VT</a></div><div class="ttdeci">VT</div><div class="ttdoc">Enum for representing the Variable Type of an optimization variable as specified by the user...</div><div class="ttdef"><b>Definition:</b> babOptVar.h:43</div></div>
+<div class="ttc" id="classmaingo_1_1_variable_lister_html_af4841887f3cb320059cce7dcf1c1723e"><div class="ttname"><a href="classmaingo_1_1_variable_lister.html#af4841887f3cb320059cce7dcf1c1723e">maingo::VariableLister::operator()</a></div><div class="ttdeci">void operator()(value_symbol&lt; real&lt; IDim &gt;&gt; *sym)</div><div class="ttdef"><b>Definition:</b> variableLister.h:108</div></div>
+<div class="ttc" id="classmaingo_1_1_m_ai_n_g_o_exception_html"><div class="ttname"><a href="classmaingo_1_1_m_ai_n_g_o_exception.html">maingo::MAiNGOException</a></div><div class="ttdoc">This class defines the exceptions thrown by MAiNGO. </div><div class="ttdef"><b>Definition:</b> MAiNGOException.h:35</div></div>
+<div class="ttc" id="namespacemaingo_html_a2636675161b046fa4c46354e7496b821"><div class="ttname"><a href="namespacemaingo.html#a2636675161b046fa4c46354e7496b821">maingo::VT_BINARY</a></div><div class="ttdeci">constexpr VT VT_BINARY</div><div class="ttdef"><b>Definition:</b> MAiNGOmodel.h:78</div></div>
+<div class="ttc" id="classmaingo_1_1_variable_lister_html_a9da7e334ca36edf25d15913427238957"><div class="ttname"><a href="classmaingo_1_1_variable_lister.html#a9da7e334ca36edf25d15913427238957">maingo::VariableLister::operator()</a></div><div class="ttdeci">void operator()(expression_symbol&lt; real&lt; IDim &gt;&gt; *sym)</div><div class="ttdef"><b>Definition:</b> variableLister.h:120</div></div>
+<div class="ttc" id="namespaceale_html"><div class="ttname"><a href="namespaceale.html">ale</a></div></div>
+<div class="ttc" id="namespacemaingo_html_a56be7240143795082f52dcb10cb2d1ba"><div class="ttname"><a href="namespacemaingo.html#a56be7240143795082f52dcb10cb2d1ba">maingo::Bounds</a></div><div class="ttdeci">babBase::Bounds Bounds</div><div class="ttdef"><b>Definition:</b> MAiNGOmodel.h:75</div></div>
 <div class="ttc" id="bab_opt_var_8h_html"><div class="ttname"><a href="bab_opt_var_8h.html">babOptVar.h</a></div></div>
-<div class="ttc" id="classmaingo_1_1_variable_lister_html_aba8c441cff84cc626c64f7363389b349"><div class="ttname"><a href="classmaingo_1_1_variable_lister.html#aba8c441cff84cc626c64f7363389b349">maingo::VariableLister::operator()</a></div><div class="ttdeci">void operator()(parameter_symbol&lt; real&lt; IDim &gt;&gt; *sym)</div><div class="ttdef"><b>Definition:</b> variableLister.h:120</div></div>
+<div class="ttc" id="classmaingo_1_1_variable_lister_html_aba8c441cff84cc626c64f7363389b349"><div class="ttname"><a href="classmaingo_1_1_variable_lister.html#aba8c441cff84cc626c64f7363389b349">maingo::VariableLister::operator()</a></div><div class="ttdeci">void operator()(parameter_symbol&lt; real&lt; IDim &gt;&gt; *sym)</div><div class="ttdef"><b>Definition:</b> variableLister.h:115</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -122,7 +123,7 @@ $(document).ready(function(){initNavTree('variable_lister_8h_source.html','');})
     <li class="navelem"><a class="el" href="dir_bfccd401955b95cf8c75461437045ac0.html">inc</a></li><li class="navelem"><a class="el" href="variable_lister_8h.html">variableLister.h</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/html/writing_problem.html b/doc/html/writing_problem.html
index 435d63d3bd51a6b8aedc299b3b65e14566bf0e13..5c20dc7183ae42cf298dcfe815ce528305160bb9 100644
--- a/doc/html/writing_problem.html
+++ b/doc/html/writing_problem.html
@@ -1,9 +1,9 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>MAiNGO: Modeling in MAiNGO</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -38,7 +38,7 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.15 -->
+<!-- Generated by Doxygen 1.8.14 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 var searchBox = new SearchBox("searchBox", "search",false,'Search');
@@ -85,14 +85,14 @@ $(document).ready(function(){initNavTree('writing_problem.html','');});
 </iframe>
 </div>
 
-<div class="PageDoc"><div class="header">
+<div class="header">
   <div class="headertitle">
 <div class="title">Modeling in MAiNGO </div>  </div>
 </div><!--header-->
 <div class="contents">
 <div class="textblock"><h1><a class="anchor" id="modeling_ALE"></a>
 Modeling with ALE</h1>
-<p>The most convenient way of modeling with MAiNGO is to use ALE (<a href="https://git.rwth-aachen.de/avt.svt/public/libale.git">https://git.rwth-aachen.de/avt.svt/public/libale.git</a>), which provides a framework for writing logical-algebraic expressions. The input can be written as .txt files in ALE syntax. An exemplary problem.txt file can be found in <code>exampls/01_BasicExample/problem.txt</code>.</p>
+<p>A convenient way of modeling with MAiNGO is to use <a href="https://git.rwth-aachen.de/avt.svt/public/libale.git">ALE</a>, which provides a framework for writing logical-algebraic expressions. The input can be written as .txt files in ALE syntax. An exemplary problem.txt file can be found in <code>examples/01_BasicExample/problem.txt</code>. An example for how MAiNGO can be used to read such as file can be found in <code>examples/mainAleParser.cpp</code>.</p>
 <p>The ALE syntax uses data types to decide which expressions can appear in which context. All data types are constructed from the basic types <b>real</b>, <b>index</b>, and <b>boolean</b> and potentially derived types such as <b>set</b> and <b>tensor</b>. Every expression has one of the following types:</p><ul>
 <li><b>scalars</b> of the basic data types (e.g., <b>real scalar</b>)</li>
 <li><b>tensors</b> of the basic data types up to a maximum dimension (default: 3) (e.g., <b>index matrix</b>)</li>
@@ -128,10 +128,10 @@ Outputs Ssection</h3>
 Constraints Section</h3>
 <p>Constraints must be defined in a <b>constraints</b> section of an input file which is initiated by </p><div class="fragment"><div class="line">constraints:</div></div><!-- fragment --><p> Each constraints section may contain arbitrarily many boolean scalar expressions, each with an optional description in <b>quotes</b> (" ") and terminated by a <b>semicolon</b> (;). MAiNGO will only accept constraints that either result from a <b>weak inequality</b>, an <b>equality</b>, or a set-based expansion over a <b>weak inequality</b> or an <b>equality</b> (see <a class="el" href="writing_problem.html#boolean_expressions">Scalar Boolean Expressions</a>). Note that this restriction does not preclude the use of general boolean expressions in the context of indicator sets (see <a class="el" href="writing_problem.html#set_expressions">Set Expressions</a>) </p><div class="fragment"><div class="line">x &lt;= y[1] &quot;a simple inequality&quot;;</div><div class="line">y[3] = 4 &quot;a simple equality&quot;;</div><div class="line">forall k in {1, 2} : y[k] &lt;= y[k + 1] &quot;a set-based inequality&quot;;</div></div><!-- fragment --><h3><a class="anchor" id="relaxation_section"></a>
 Relaxation-only Constraints Section</h3>
-<p>Relaxation-only constraints (see <a class="el" href="writing_problem.html#advanced_modeling">Advanced Modeling</a>) must be defined in a <b>relaxation only constraints</b> section of an input file which is initiated by </p><div class="fragment"><div class="line">relaxation only constraints:</div></div><!-- fragment --><p> These constraints must satisfy the same conditions as regular constraints and are denoted in the same way (see <a class="el" href="writing_problem.html#constraint_section">Constraints Section</a>).</p>
+<p>Relaxation-only constraints (see <a class="el" href="writing_problem.html#advanced_modeling">Modeling Tips and Tricks</a>) must be defined in a <b>relaxation only constraints</b> section of an input file which is initiated by </p><div class="fragment"><div class="line">relaxation only constraints:</div></div><!-- fragment --><p> These constraints must satisfy the same conditions as regular constraints and are denoted in the same way (see <a class="el" href="writing_problem.html#constraint_section">Constraints Section</a>).</p>
 <h3><a class="anchor" id="squashing_section"></a>
 Squashing Constraint Section</h3>
-<p>Squashing constraints (see <a class="el" href="writing_problem.html#advanced_modeling">Advanced Modeling</a>) must be defined in a <b>squashing constraints</b> section of an input file which is initiated by </p><div class="fragment"><div class="line">squashing constraints:</div></div><!-- fragment --><p> These constraints must satisfy the same conditions as regular constraints and are denoted in the same way (see <a class="el" href="writing_problem.html#constraint_section">Constraints Section</a>). Furthermore, they must result from a <b>weak inequality</b> or a set-based expansion over a <b>weak inequality</b>.</p>
+<p>Squashing constraints (see <a class="el" href="writing_problem.html#advanced_modeling">Modeling Tips and Tricks</a>) must be defined in a <b>squashing constraints</b> section of an input file which is initiated by </p><div class="fragment"><div class="line">squashing constraints:</div></div><!-- fragment --><p> These constraints must satisfy the same conditions as regular constraints and are denoted in the same way (see <a class="el" href="writing_problem.html#constraint_section">Constraints Section</a>). Furthermore, they must result from a <b>weak inequality</b> or a set-based expansion over a <b>weak inequality</b>.</p>
 <h2><a class="anchor" id="example_input"></a>
 Example Input File</h2>
 <p>The following are the contents of a valid input file</p>
@@ -147,17 +147,15 @@ Scalar Index Expressions</h3>
 Scalar Boolean Expressions</h3>
 <p>The basic building blocks of boolean expressions are <b>constants</b>, <b>symbol names</b>, and <b>entries of real tensors</b>. Furthermore, boolean expressions result from the <b>comparison operators</b> (&lt;, &lt;=, =, &gt;=, &gt;). Boolean expressions and therefore also constants and the values of symbols can only be <b>true</b> or <b>false</b>. Operators are defined for <em>conjunction</em> (&amp;), <em>disjunction</em> (|), and <em>negation</em> (!). Parentheses are used to enforce precedence. The following are valid <b>boolean expressions</b>: </p><div class="fragment"><div class="line">b &amp; false</div><div class="line">x * y[1] &lt;= 2</div></div><!-- fragment --><p> Furthermore, ALE provides a set-based conjunction similar to the set-based real expressions: </p><div class="fragment"><div class="line">forall k in {1, 2} : y[k] &lt;= y[k + 1]</div><div class="line">forall r in {1.2, 10.0, -1.5} : x &gt;= r</div></div><!-- fragment --><h3><a class="anchor" id="set_expressions"></a>
 Set Expressions</h3>
-<p>The basic building blocks of set expressions are <b>constants</b> and <b>symbol names</b>. These basic sets can be refined by employing an <b>indicator set</b>, which only contains those elements that satisfy a logical condition: </p><div class="fragment"><div class="line">{r in {1.2, 2.3, 3.4} : r &lt;= 3} # only contains 1.2 and 2.3</div></div><!-- fragment --><h1><a class="anchor" id="modeling_cpp"></a>
-Modeling via C++</h1>
-<p>Another way of modeling with MAiNGO is to directly work with the C++ API. If you are not interested in the development of an own Model class simply use the exemplary <code>C++</code> implementation, that can be found in <code>examples/01_BasicExample/problem.h</code> and proceed with the next subsection.</p>
-<p>For communicating an optimization problem to MAiNGO, you need to implement a specialization of the <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html">MAiNGOmodel</a> class. Your specialization of the MAiNGOmodel class needs to implement at least the following functions:</p><ul>
-<li><a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html#a9faead087bd24822a0d249e257b4df8d">get_variables</a>: Here you need to specify the optimization variables, which are defined by their lower and upper bounds. This is done by adding an appropriate <a class="el" href="classbab_base_1_1_optimization_variable.html">OptimizationVariable</a> object to the variables vector. Optionally, each optimization variable can be given flags to determine whether they are continuous or binary (cf. <a class="el" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">VT</a>) and a branching priority which has to be at least 0. The default branching priority is 1 and a branching priority N means that MAiNGO will branch log_2(n+1) more often on the corresponding variable than on a variable with branching priority 1. Branching priority 0 means that MAiNGO will never branch on the variable. <br />
+<p>The basic building blocks of set expressions are <b>constants</b> and <b>symbol names</b>. These basic sets can be refined by employing an <b>indicator set</b>, which only contains those elements that satisfy a logical condition: </p><div class="fragment"><div class="line">{r in {1.2, 2.3, 3.4} : r &lt;= 3} # only contains 1.2 and 2.3</div></div><!-- fragment --><h1><a class="anchor" id="modeling_cpp_python"></a>
+Modeling via C++ or Python</h1>
+<p>Another way of modeling with MAiNGO is to directly work with the C++ or Python APIs. The Python API really just consists of Python bindings (enabled by <a href="https://pybind11.readthedocs.io/en/stable/index.html">pybind11</a>) that make the C++ API usable from Python. Thus, the following description applies equally to both APIs, although the Doxygen documentation of the classes and functions refers to the C++ version.</p>
+<p>An example for calling MAiNGO via the C++ API can be found in <code>examples/mainCppApi.cpp</code>. For communicating an optimization problem to MAiNGO, you need to implement a specialization of the <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html">MAiNGOmodel</a> class. An example for such a specialization can be found in <code>examples/01_BasicExample/problem.h</code>. An example for the use of MAiNGO and implementation of an optimization problem in Python can be found in <code>examples/01_BasicExample/examplePythonInterface.py</code>.</p>
+<p>Your specialization of the MAiNGOmodel class needs to implement at least the following functions:</p><ul>
+<li><a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html#a9faead087bd24822a0d249e257b4df8d">get_variables</a>: Here you need to specify the optimization variables, which are defined by their lower and upper bounds. This is done by creating and returning a vector of <a class="el" href="classbab_base_1_1_optimization_variable.html">OptimizationVariable</a> objects. Typically, a variable at least needs to be given <a class="el" href="structbab_base_1_1_bounds.html">Bounds</a> (the only exception are binary variables). Optionally, each optimization variable can be given flags to determine whether they are continuous, integer, or binary (cf. <a class="el" href="namespacebab_base_1_1enums.html#a6b926f3dfa42fc3a3324c8b0ac99c48b">VT</a>) and a branching priority which has to be at least 0. The default branching priority is 1 and a branching priority N means that MAiNGO will branch log_2(n+1) more often on the corresponding variable than on a variable with branching priority 1. Branching priority 0 means that MAiNGO will never branch on the variable. A variable <b>can</b> also be given a name. However, this name is used <b>only</b> in the output. Unfortunately, it currently <b>cannot</b> be used when implementing the functions in the <code>evaluate</code> function (cf. below). Therefore, variable names also need not be unique. If no name is given, the variable will be called <code>x&lt;i&gt;</code>, where <code>&lt;i&gt;</code> is a running index. <br />
 <br />
 </li>
-<li><a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html#a7a50f1c3477c117936d2b59876e608d6">evaluate</a>: this function is called by MAiNGO to construt the directed acyclic graph of the objective function and constraints. The results of the evaluation of f, g, and h have to be written to the objective, eq, and ineq members of the <a class="el" href="structmaingo_1_1_evaluation_container.html">EvaluationContainer</a> returned by the evaluate function. In the implementation of the evaluate function, you need to consider the following points:<ul>
-<li>All variables need to be of type mc::FFVar. In problem.h in the examples/01_BasicExample folder, we use a typedef to call it Var instead and save some typing. Other data types (e.g., double) must only be used for constant parameters.</li>
-</ul>
-</li>
+<li><a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html#a7a50f1c3477c117936d2b59876e608d6">evaluate</a>: this function is called by MAiNGO to construt the directed acyclic graph of the objective function and constraints. The results of the evaluation of f, g, and h have to be written to the <code>objective</code>, <code>eq</code>, and <code>ineq</code> members of the <a class="el" href="structmaingo_1_1_evaluation_container.html">EvaluationContainer</a> returned by the evaluate function. The evaluate function takes a vector of <code>mc::FFVar</code> objects as input. These correspond to the optimization variables defined in the <code>get_variables</code> function. However, for technical reasons, they are not the same objects. In particular, the optimization variable corresponding to an <code>mc::FFVar</code> variable in the argument vector of the <code>evaluate</code> function can only be identified by their positions in the corresponding vectors. See, e.g., <code>examples/01_BasicExample/problem.h</code> or <code>examples/01_BasicExample/examplePythonInterface.py</code>. The results of all calculations done with these <code>mc::FVar</code> objects are also of this type. Other data types (e.g., <code>double</code>) must only be used for constant parameters. When working in Python, you need typically not worry about the types.</li>
 </ul>
 <p>Additionally, you may do the following in your specialization of <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html">MAiNGOmodel</a>:</p><ul>
 <li>Specify an initial point that is used for the first local search in multistart during pre-processing using <a class="el" href="classmaingo_1_1_m_ai_n_g_omodel.html#a929215d08a5412b014d39fcda6e5d62a">get_initial_point</a>.<br />
@@ -165,19 +163,18 @@ Modeling via C++</h1>
 </li>
 </ul>
 <h2><a class="anchor" id="advanced_modeling"></a>
-Advanced Modeling</h2>
-<p>Within the evaluate function, you can do almost any type of computation (including calling other functions / libraries), as long as they are implemented with mc::FFVar. It is not allowed to use loops with a number of iteration not known a priori (such as, e.g., solving a nonlinear equation system), and to use conditional statements. For a list of intrinsic functions supported by MAiNGO, refer to the documentation in <code>doc/implementedFunctions/Implemented_functions.pdf</code>.</p>
-<p>If your model does contain equations that would require iterative solution, you need to leave appropriate optimization variables and equations to the optimizer instead (cf. Bongartz &amp; Mitsos, J. Global Optim 69 (2017) 761).</p>
-<p>Using conditional statements that give non-smooth or discontinuous functions is not possible directly, since computing valid relaxations always requires information on the entire domain. Such statements can however be reformulated, either through the use of implemented non-smooth functions like the maximum of two functions, or using the methods for relaxation of discontinuous functions introduced by Wechsung et al., J. Global Optim. 63 (2015) 1. As an alternative, one can also resort to mixed integer formulations.</p>
+Modeling Tips and Tricks</h2>
+<p>Within the evaluate function, you can do almost any type of computation (including calling other functions / libraries), as long as they are implemented with mc::FFVar. However, it is not allowed to use loops with a number of iteration not known a priori (such as, e.g., solving a nonlinear equation system), and to use conditional statements that depend on variables (and the resulting code will not compile, since comparison operations are not defined for mc::FFVar). For a list of intrinsic functions supported by MAiNGO, refer to the documentation in <code>doc/implementedFunctions/Implemented_functions.pdf</code>.</p>
+<p>If your model does contain equations that would require iterative solution, you need to leave appropriate optimization variables and equations to the optimizer instead (cf. <a href="https://link.springer.com/article/10.1007/s10898-017-0547-4">Bongartz &amp; Mitsos 2017a</a>).</p>
+<p>Using conditional statements that depend on variables is not possible directly. This could results in non-smooth or discontinuous functions, and computing valid relaxations always requires information on the entire domain. Such statements can however be reformulated, either through the use of implemented non-smooth functions like the maximum of two functions, or using the methods for relaxation of discontinuous functions introduced by <a href="https://link.springer.com/article/10.1007/s10898-013-0060-3">Wechsung &amp; Barton 2015</a>. As an alternative, one can also resort to mixed integer formulations.</p>
 <p>For the constraints, it is important to manually scale all constraints for the relevant terms to be of the order of one, since constraint tolerances are only implemented as absolute values.</p>
-<p>You can also specify constraints that are to be used only in the relaxation, not in the original problem (cf. Sahinidis &amp; Tawarmalani, J. Global Optim. 32 (2005) 259). To this end, the EvaluationContainer returned by the evaluate function contains the vectors ineqRelaxationOnly and eqRelaxationOnly. This can be useful when adding redundant constraints that would complicate the local solution of the original problem but might tighten the relaxations. Note that adding incorrect relaxation-only constraints may lead to false infeasibility claims or other spurious behavior of the optimization process.</p>
-<p>You may add OutputVariables to the output vector in the EvaluationContainer. This can be used to compute and return information that is not needed during the optimization but that you are interested in at the optimal solution.</p>
-<p>If you are using the squash_node function, it is neccessary to introduce appropriate squash inequalities in order to maintain correctness of the optimization problem. For more information refer to <code>doc/implementedFunctions/Implemented_functions.pdf</code>.</p>
+<p>You can also specify constraints that are to be used only in the relaxation, not in the original problem (cf. <a href="https://link.springer.com/article/10.1007/s10898-004-2705-8">Sahinidis &amp; Tawarmalani 2005</a>). To this end, the <a class="el" href="structmaingo_1_1_evaluation_container.html">EvaluationContainer</a> returned by the evaluate function contains the vectors <code>ineqRelaxationOnly</code> and <code>eqRelaxationOnly</code>. This can be useful when adding redundant constraints that would complicate the local solution of the original problem but might tighten the relaxations. Note that adding incorrect relaxation-only constraints may lead to false infeasibility claims or other spurious behavior of the optimization process.</p>
+<p>You may add <a class="el" href="structmaingo_1_1_output_variable.html">OutputVariables</a> to the <code>output</code> vector in the <a class="el" href="structmaingo_1_1_evaluation_container.html">EvaluationContainer</a>. This can be used to compute and return information that is not needed during the optimization but that you are interested in at the optimal solution.</p>
+<p>If you are using the <code>squash_node</code> function, it is neccessary to introduce appropriate squash inequalities to maintain correctness of the optimization problem. For more information refer to <code>doc/implementedFunctions/Implemented_functions.pdf</code>.</p>
 <h1><a class="anchor" id="parsing_gams"></a>
 Parsing GAMS Files</h1>
 <p>We also provide a tool for parsing GAMS convert files to ALE problem.txt or MAiNGO problem.h files. For detailed description please refer to <code>utilities/MAiNGO_Reader_Writer/</code> and the documentation found therein. </p>
-</div></div><!-- PageDoc -->
-</div><!-- contents -->
+</div></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
@@ -185,7 +182,7 @@ Parsing GAMS Files</h1>
     <li class="navelem"><a class="el" href="index.html">McCormick-based Algorithm for mixed-integer Nonlinear Global Optimization</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
   </ul>
 </div>
 </body>
diff --git a/doc/images/MAiNGO.png b/doc/images/MAiNGO.png
index fe6d6abbcb43389876e9a42921bd57fc67b781e0..a59f99e24e833bf0d2d031de4ab32d51d3608c5a 100644
Binary files a/doc/images/MAiNGO.png and b/doc/images/MAiNGO.png differ
diff --git a/doc/implementedFunctions/Implemented_functions.pdf b/doc/implementedFunctions/Implemented_functions.pdf
index ccb985dab366338f966b7a843a51612fb8e502fd..3f68fa7f86e1a9d130b2e8e79f373910c513d496 100644
Binary files a/doc/implementedFunctions/Implemented_functions.pdf and b/doc/implementedFunctions/Implemented_functions.pdf differ
diff --git a/inc/manual.h b/doc/manual.dox
similarity index 62%
rename from inc/manual.h
rename to doc/manual.dox
index 5183ca2f42b587a7603b4019f8987ee89c6cbad2..6739f0c847f3140decdd4bf13d6d2587547c1c67 100644
--- a/inc/manual.h
+++ b/doc/manual.dox
@@ -7,28 +7,14 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file manual.h
- *
- * @brief File containing the front page of the MAiNGO documentation.
- *
  **********************************************************************************/
 
-#pragma once
-
-
 /**
-
 @mainpage McCormick-based Algorithm for mixed-integer Nonlinear Global Optimization
 @authors Dominik Bongartz, Jaromił Najman, Susanne Sass, Alexander Mitsos
-@date 12.06.2020
+@date 2017-2021
 
-Thank you for using the beta version 0.3.0 of MAiNGO! If you have any issues, concerns, or comments, please communicate them using the <a>Issues</a> functionality at https://git.rwth-aachen.de/avt.svt/public/maingo.git or send an e-mail to MAiNGO@avt.rwth-aachen.de
-
-<b>How to Cite MAiNGO?</b>
-
-Please cite the latest <a href="http://permalink.avt.rwth-aachen.de/?id=729717">MAiNGO report</a>:<br>
-Bongartz, D., Najman, J., Sass, S. and Mitsos, A., MAiNGO - <b>M</b>cCormick-based <b>A</b>lgorithm for mixed-<b>i</b>nteger <b>N</b>onlinear <b>G</b>lobal <b>O</b>ptimization.
-Technical Report, Process Systems Engineering (AVT.SVT), RWTH Aachen University (2018).
+Thank you for using the beta version of MAiNGO! If you have any issues, concerns, or comments, please communicate them using the <a href="https://git.rwth-aachen.de/avt.svt/public/maingo/-/issues">"Issues" functionality in GitLab</a> or send an e-mail to MAiNGO@avt.rwth-aachen.de
 
 @section intro_sec Introduction
 
@@ -37,15 +23,14 @@ MAiNGO can solve problems of the following form, returning a solution that is de
 \htmlonly <style>div.image img[src="NLP.PNG"]{width:6cm;align:left}</style> \endhtmlonly
 \image html NLP.png
 
-where the functions f, g and h can be computer codes implementing factorable functions (including multivariate outer functions as introduced by
-Tsoukalas & Mitsos, J. Global Optim. 59 (2014) 633).
+where the functions f, g and h can be computer codes implementing factorable functions (including multivariate outer functions as introduced by <a href="https://link.springer.com/article/10.1007/s10898-014-0176-0">Tsoukalas & Mitsos 2014</a>).
 For details on what you may or may not do within these functions, see Section @ref writing_problem.
 Note, however, that the relaxations and most bounding operations are not validated in the sense that round-off error is not accounted for. In this sense, the results cannot be fully guaranteed.
 
 
 @subsection examples Example Applications
 
-MAiNGO works particularly well for problems which can be formulated in a reduced space manner (<a href="https://link.springer.com/article/10.1007/s10898-017-0547-4">Bongartz & Mitsos 2017a</a>).
+MAiNGO works particularly well for problems which can be formulated in a reduced space manner (<a href="https://epubs.siam.org/doi/abs/10.1137/080717341">Mitsos et al. 2009</a>, <a href="https://link.springer.com/article/10.1007/s10898-017-0547-4">Bongartz & Mitsos 2017a</a>).
 
 MAiNGO has been successfully applied to multiple flowsheet-optimization problems (<a href="https://link.springer.com/article/10.1007/s10898-017-0547-4">Bongartz & Mitsos 2017a</a>,
  <a href="https://www.sciencedirect.com/science/article/pii/B9780444639653501070">Bongartz & Mitsos 2017b</a>,
@@ -61,7 +46,7 @@ All implemented special intrinsic functions can be found at `doc/implementedFunc
 
 @subsection MeLOn_examples Example Applications with Machine-Learning models (MeLOn)
 
-MAiNGO automatically includes the "MeLOn - Machine Learning models for Optimization" toolbox as a submodule (<a href="https://git.rwth-aachen.de/avt.svt/public/MeLOn">MeLOn Git</a>).
+MAiNGO automatically includes the <a href="https://git.rwth-aachen.de/avt.svt/public/MeLOn">"MeLOn - Machine Learning models for Optimization"</a> toolbox as a submodule.
 MeLOn allows the easy integration of various machine-learning models into optimization problems.
 Our previous work has shown that the reduced-space formulation and McCormick relaxations used by MAiNGO are favorable for the optimization with machine-learning surrogate models embedded.
 
@@ -71,7 +56,7 @@ MAiNGO and MeLOn have already been used for optimization problems with artificia
 Machine-learning models have also been combined with mechanistic process models for various applications including membrane science
 (<a href="https://www.sciencedirect.com/science/article/pii/S0376738818324293">Rall et al. 2019</a>,
 <a href="https://doi.org/10.1016/j.memsci.2020.117860">Rall et al. 2020a</a>,
-<a href="https://doi.org/10.1016/j.memsci.2020.117860">Rall et al. 2020b</a>, ), enery process optimization
+<a href="https://doi.org/10.1016/j.memsci.2020.117860">Rall et al. 2020b</a>, ), energy process optimization
 (<a href="https://www.sciencedirect.com/science/article/abs/pii/S009813541830886X">Schweidtmann et al. 2019</a>,
  <a href="https://www.sciencedirect.com/science/article/pii/B9780128186343501570">Schweidtmann et al. 2019</a>,
  <a href="https://www.sciencedirect.com/science/article/pii/B9780128185971500680">Huster et al. 2019a</a>,
@@ -79,6 +64,13 @@ Machine-learning models have also been combined with mechanistic process models
  and nonlinear scheduling (<a href="https://doi.org/10.1016/j.compchemeng.2019.106598">Schäfer et al. 2020</a>).
 
 
+@subsection cite How to Cite MAiNGO
+
+If you use MAiNGO, please cite the latest MAiNGO report:<br>
+Bongartz, D., Najman, J., Sass, S. and Mitsos, A., MAiNGO - <b>M</b>cCormick-based <b>A</b>lgorithm for mixed-<b>i</b>nteger <b>N</b>onlinear <b>G</b>lobal <b>O</b>ptimization.
+Technical Report, Process Systems Engineering (AVT.SVT), RWTH Aachen University (2018). <a href="http://permalink.avt.rwth-aachen.de/?id=729717">http://permalink.avt.rwth-aachen.de/?id=729717</a>.
+
+
 @subsection TOC Table of Content
 
 This manual is divided in the following sections:
@@ -93,81 +85,76 @@ This manual is divided in the following sections:
 - \subpage faq
 - \subpage bib
 
-\page install Installing and Executing MAiNGO
+\page install Obtaining, Building, and Executing MAiNGO
 
 @section get_maingo Obtaining MAiNGO
 
-In order to obtain MAiNGO, we strongly recommend using Git (Git Bash on Windows). It is possible to download MAiNGO as a .zip folder, but we strongly recommend to
-use Git and follow the given instructions (in particular because we use submodules for dependencies, which need to be downloaded separately when not using Git). First you need to clone the MAiNGO repository. This is done by
+To obtain MAiNGO, we strongly recommend using Git (Git Bash on Windows) and following the instructions below, in particular because we use submodules for dependencies.
+It is possible to download MAiNGO as a zipped folder, but when doing so all dependencies need to be downloaded separately.
+
+To obtain MAiNGO via Git, first clone the MAiNGO repository via
 \code{.sh}
 git clone https://git.rwth-aachen.de/avt.svt/public/maingo.git <directory>
 \endcode
-where \<directory\> is the name of the directory where you can find all MAiNGO files after cloning (default name is maingo). After the cloning is done, simply navigate to the directory. In the
-cloned MAiNGO directory execute
+where \<directory\> is the target directory (default name is maingo).
+
+Next, navigate to this directory and initialize the submodules by executing
 \code{.sh}
 git submodule init
 \endcode
-If nothing happens, you are <b>not</b> in the cloned MAiNGO directory and have to navigate to there first.
-For Windows users, we recommend the usage of HTTPS protocols for Git and SSH protocols for Linux and Mac OS users to avoid multiple username and password inputs. If you want to switch from HTTPS to
-SSH, simply execute the shell script <tt>./switchToSsh</tt> or <tt>./switchToHttps</tt> for switchting from SSH to HTTPS and back <b>after</b> executing the <tt>git submodule init</tt> command.
-For more info on SSH keys, see the Git documentation on SSH authentication which can be found under <b>Help -> SSH authentication</b> in your GitLab.
-If you are having HTTPS authentication problems on Windows, please make sure that your cedential manager has the correct settings. The Windows credential manager can be found at
+If you want to switch between HTTPS (default) and  SSH protocols for obtaining the submodules, simply execute the shell scripts (Linux/MacOS only) <tt>./switchToSsh</tt> or <tt>./switchToHttps</tt> <b>after</b> executing the <tt>git submodule init</tt> command.
+For more info on SSH keys, see the Git documentation on SSH authentication which can be found under <b>Help -> SSH authentication</b> in your GitLab web interface.
+If you are having HTTPS authentication problems on Windows, make sure that your cedential manager has the correct settings. The Windows credential manager can be found at
 <b>Control Panel -> User Accounts -> Manage your credentials</b>.
 
-In order to proceed and update all submodules of MAiNGO, execute
+To actually download the submodules of MAiNGO, execute
 \code{.sh}
 git submodule update -j 1
 \endcode
 in the MAiNGO directory. You can determine whether the above worked properly by checking if each dependency folder in the <tt>dep/</tt> folder is non-empty.
-In the case that the above <b>\e DID \e NOT</b> work properly, execute the
-following in the MAiNGO directory
-\code{.sh}
-git submodule foreach git checkout master
-git submodule foreach git pull
-\endcode
-A note for user more familiar with Git: the <tt>git submodule update</tt> is exectued without the <tt>--recursive</tt> option. This avoids instantiating any indirect dependencies; in the repository
+A note for user more familiar with Git: the <tt>git submodule update</tt> is executed without the <tt>--recursive</tt> option. This avoids instantiating any indirect dependencies; in the repository
 design of MAiNGO, all dependencies (including indirect ones) are present in the <tt>dep</tt> folder. It is also executed using only one process <tt>-j 1</tt> to avoid input failures.
 
 @subsection update_maingo Updating MAiNGO
 
-If you want to update to the latest MAiNGO version, use the following git commands
+If you want to update to the latest MAiNGO version, use the following git commands:
 \code{.sh}
 git pull
-git submodule update
-\endcode
-If you changed any of the source files in MAiNGO or any dependency found in the <tt>dep/</tt> folder, you should restore the original state of MAiNGO by first saving a copy of the files you changed (or using <tt>git stash</tt>) and then executing
-\code{.sh}
-git checkout .
+git submodule update -j 1
 \endcode
-in the MAiNGO repository and/or in any dependency repository you edited. Then, update the MAiNGO repository with the `pull` and `submodule update` commands. Finally, you can replace the files of interest by your saved copies (or retrieve them via <tt>git stash pop</tt>).
+If you changed any of the source files in MAiNGO or any dependency found in the <tt>dep/</tt> folder, you should restore the original state of MAiNGO and the dependencies by running <tt>git stash</tt> in the corresponding repository.
+Then, update the MAiNGO repository with the <tt>git pull</tt> and <tt>git submodule update</tt> commands. Finally, you can retrieve your changes via <tt>git stash pop</tt>.
 
 
 @section req_software Required Software
 
-Building MAiNGO requires the following non-standard programs that are not in the Git repository:
+Building MAiNGO requires the following non-standard programs that are not provided when obtaining MAiNGO:
 - CMake 3.15 or later
-- Visual Studio 2017 (Windows only)
-- A Fortran Compiler (Linux and Mac OS)
+- Visual Studio 2017 or 2019 (Windows), or some other C++ compiler that supports C++17 (Linux & MacOS)
+- A Fortran Compiler (Linux & MacOS only; for Windows, we supply pre-compiled versions of all Fortran dependencies)
 
-CPLEX 12.8 and Knitro 11.1 are optional subsolvers that are not required for using MAiNGO, but it is strongly recommended to use CPLEX to achieve best computational results. CMake will automatically
-detect whether you have CPLEX/Knitro or not. If you installed CPLEX or Knitro in a non-default path, it may be neccessary to adapt the paths in the corresponding CMakeLists.txt files at <tt>dep/knitro</tt> and <tt>dep/cplex</tt>.
-A note on CPLEX versions: We experienced problems trying to include CPLEX 12.7 into MAiNGO, since there appears to be a bug in the API related to scaling of variables and equations when modifying a model causing
-failure of MAiNGO for many problems. CPLEX 12.5 mostly worked for us, but did give a couple of weird bugs where problems were not updated properly. When using CPLEX 12.5, you need to go back to
-Visual Studio 2010 as well (this may result in multiple changes in the CMakeLists.txt files).
+CPLEX 12.8 or 12.9 and Knitro 11.0.1 are optional subsolvers that are also not provided with MAiNGO.
+They are not required for using MAiNGO, but they can improve computational performance.
+CMake will automatically detect whether you have CPLEX/Knitro installed on your system or not. If you installed CPLEX or Knitro in a non-default path, it may be neccessary to adapt the paths in the corresponding CMakeLists.txt files at <tt>dep/knitro</tt> and <tt>dep/cplex</tt>.
 
-All other third-party software that MAiNGO depends on comes with the MAiNGO Git. Unless you feel the need to modify the folder structure or switch to other versions (in which case we would
-appreciate you contacting the MAiNGO team as well), there is nothing you need to do.
+All other third-party software that MAiNGO depends on comes with the MAiNGO git in the form of submodules. Unless you feel the need to modify the folder structure or switch to other versions (in which case we would
+appreciate you reporting your experience to us), there is nothing you need to do.
 
 
 @section cmake Generating and Compiling the Project
 
-MAiNGO uses CMake for setting up the required Visual Studio project (for Windows) or Makefile (for Linux or Mac OS).
-There are a few options for this setup that can be changed via the following CMake variables (details for how to actually do this on Windows, Linux, or Mac OS follow below):
+MAiNGO uses CMake for setting up the required Visual Studio project (for Windows) or Makefile (for Linux or MacOS).
+There are a few options for this setup that can be changed via the following CMake variables (details for how to actually do this on Windows, Linux, or MacOS follow below):
 
-- MAiNGO_build_parser (default: <tt>true</tt>): Whether to build an executable called <tt>MAiNGO</tt> (or <tt>MAiNGO.exe</tt> on Windows) containing the parser for reading problems in ALE syntax from .txt files; uses the main file <tt>examples/mainAleParser.cpp</tt>.
-- MAiNGO_build_standalone (default: <tt>false</tt>): Whether to build an executable called <tt>MAiNGOcpp</tt> (or <tt>MAiNGOcpp.exe</tt> on Windows) for solving problems via the C++ API; uses the main file <tt>examples/mainCppApi.cpp</tt>.
-- MAiNGO_use_filib (default: <tt>true</tt>): Whether to use FILIB++ for interval extensions, which is strongly recommended. If set to <tt>false</tt>, the non-validated intervals extensions from MC++ are used.
-- MAiNGO_use_mpi (default: <tt>false</tt>): Whether to build the parallel version of MAiNGO. Requires an MPI library to be installed on your system.
+- <tt>MAiNGO_build_parser</tt> (default: <tt>true</tt>): Whether to build an executable called <tt>MAiNGO</tt> (or <tt>MAiNGO.exe</tt> on Windows) containing the parser for reading problems in \ref modeling_ALE "ALE syntax" from .txt files. Uses the main file <tt>examples/mainAleParser.cpp</tt>.
+- <tt>MAiNGO_build_python_interface</tt> (default: <tt>false</tt>): Whether to build the Python bindings for the C++ API of MAiNGO. If set to <tt>true</tt>, this will create a Python package called <tt>pymaingo</tt> that allows \ref modeling_cpp_python "using MAiNGO from Python".
+      Check the CMake output to make sure that the correct version of Python was found. You can influence the Python version using the CMake variables <tt>PYBIND11_PYTHON_VERSION</tt> or <tt>PYTHON_EXECUTABLE</tt> as described <a href="https://pybind11.readthedocs.io/en/stable/compiling.html#configuration-variables">here</a>.
+- <tt>MAiNGO_build_standalone</tt> (default: <tt>false</tt>): Whether to build an executable called <tt>MAiNGOcpp</tt> (or <tt>MAiNGOcpp.exe</tt> on Windows) for solving problems \ref modeling_cpp_python "via the C++ API". Uses the main file <tt>examples/mainCppApi.cpp</tt>.
+- <tt>MAiNGO_build_test</tt> (default: <tt>false</tt>): Whether to build the test cases for MAiNGO (and potentially pymaingo).
+- <tt>MAiNGO_use_cplex</tt> (default: <tt>true</tt>): Whether to use CPLEX if it is available on your system. Can be set to <tt>false</tt> to prevent the use of CPLEX even if it is installed, which can be useful if the compiled version is to be used on another machine that may not have CPLEX.
+- <tt>MAiNGO_use_knitro</tt> (default: <tt>true</tt>): Whether to use Knitro if it is available on your system. Can be set to <tt>false</tt> to prevent the use of Knitro even if it is installed, which can be useful if the compiled version is to be used on another machine that may not have Knitro.
+- <tt>MAiNGO_use_melon</tt> (default: <tt>true</tt>): Whether to use the MeLOn toolbox containing various machine learning models for use in the optimization problem.
+- <tt>MAiNGO_use_mpi</tt> (default: <tt>false</tt>): Whether to build the parallel version of MAiNGO. Requires an MPI library to be installed on your system.
 
 A note for users seeking to include MAiNGO in their own code: MAiNGO uses modern target-oriented cmake commands. The <tt>CMakeLists.txt</tt> in the root directory is the sole entry point both for building MAiNGO as a standalone solver or including
 it into your project. However, when including it into your code you will need to add all dependencies (i.e., all folders within the <tt>dep</tt> folder in the MAiNGO repository) in your own CMakeLists.txt using <tt>add_subdirectory</tt>.
@@ -175,50 +162,48 @@ Please see also section \ref embedded.
 
 @subsection cmake_win Windows
 
-On Windows, only Microsoft Visual C++ 2017 is supported. We supply pre-compiled versions for all Fortran libraries, so no Fortran compiler (or runtime) should be needed.
+On Windows, only Microsoft Visual Studio 2017 and 2019 are supported. We supply pre-compiled versions for all Fortran libraries, so no Fortran compiler (or runtime) should be needed.
 To generate the Visual Studio project and compile MAiNGO, you need to complete the following steps:
 
 1. Start CMake and navigate or type the path to your MAiNGO directory (this is the one where the Readme.md is) and select your build directory.
 \htmlonly <style>div.image img[src="CMakeHead.PNG"]{width:15cm;align:left}</style> \endhtmlonly
 \image html CMakeHead.PNG width=15cm
 
-2. Use the \e Configure button to choose Visual Studio 15 2017 Win64 as generator (or Visual Studio 15 2017 as generator and x64 as optional platform for generator in the newer versions of CMake).
+2. Use the \e Configure button to choose Visual Studio 15 2017 Win64 as generator (or Visual Studio 15 2017 as generator and x64 as optional platform for generator in the newer versions of CMake; analogous for Visual Studio 16 2019).
 Make sure that you use default native compilers. Press \e Finish and wait for the configuration to complete. If at the end you get a message saying <tt>Configuring done</tt>, everything worked fine.
 \htmlonly <style>div.image img[src="CMakeGenerator.PNG"]{width:25cm;align:left}</style> \endhtmlonly
 \image html CMakeGenerator.PNG width=25cm
 
-3. If desired, you can now change the CMake variables explained above. We recommend changing only those CMake variables that are prefixed with <tt>MAiNGO_</tt>. To do so, remove or add a checkmark at the desired option.
+3. If desired, you can now change the values of the CMake variables explained above. We recommend changing only those CMake variables that are prefixed with <tt>MAiNGO_</tt>.
 
 4. Press the \e Generate button. You should get a message saying <tt>Generating done</tt>.
 
-5. Press the \e Open \e Project button (or open the <tt>MAiNGO.sln</tt> file (with Visual Studio 15 2017) that was created by CMake in the build directory you specified).
+5. Press the \e Open \e Project button (or open the <tt>MAiNGO.sln</tt> file (with Visual Studio 2017 or 2019) that was created by CMake in the build directory you specified).
 Make sure to set the build type to \e Release, since this will result in MAiNGO being significantly faster.
 \htmlonly <style>div.image img[src="VS_Release.PNG"]{width:6cm;align:left}</style> \endhtmlonly
 \image html VS_Release.PNG width=6cm
 
-6. Compile MAiNGO by clicking <tt>Build->Build solution</tt>. This will create executables called <tt>MAiNGO.exe</tt> and/or <tt>MAiNGOcpp.exe</tt> in the <tt>Release</tt> directory within your build directory, depending on which CMake variables you have enabled (cf. above).
+6. Compile MAiNGO by clicking <tt>Build->Build solution</tt>. This will create executables called <tt>MAiNGO.exe</tt> and/or <tt>MAiNGOcpp.exe</tt> as well as a <tt>pymaingo</tt> folder in the <tt>Release</tt> directory within your build directory, depending on which CMake variables you have enabled (cf. above).
 MAiNGO.exe is the version that expects text-based input via ALE, while MAiNGOcpp.exe is the version that uses the C++ API and has a problem (e.g., the example problem compiled into it).
 
-7. <b>Do not execute MAiNGO directly from Visual Studio via the green play arrow</b>. The green play arrow executes MAiNGO in <tt>DEBUG</tt> mode, which is in general not desired.
-To properly execute MAiNGO, please refer to the section \ref executing_maingo found below. <br>
-If, however, you would like to debug MAiNGO, you need to set MAiNGO as the starting project first. This is done by right clicking on MAiNGO within your project explorer of Visual Studio
+7. If you would like to debug MAiNGO, you need to set MAiNGO as the starting project first. This is done by right clicking on MAiNGO within your project explorer of Visual Studio
 and setting it to be the starting project. If you get an error message saying that <tt>ALL_BUILD</tt> cannot be used as starting project, you did not set MAiNGO as starting project.
 
-@subsection cmake_linux_os Linux and Mac OS
+@subsection cmake_linux_os Linux and MacOS
 
-On Linux and Mac OS, the following compiler configurations have been tested:
+On Linux and MacOS, the following compiler configurations have been tested:
 - gcc 9.2, and 10.1 (Linux and MacOS)
-- Intel C++ and Fortran Compiler 16.0.8, 17.0.7, 18.0.3, and 19.1 (Linux) - only works if building without the parser (MAiNGO_build_parser=false, cf. below) and without the MeLOn toolbox
-  (MAiNGO_build_melon=false) because of missing C++17 features in Intel compilers
+- Intel C++ and Fortran Compiler 16.0.8, 17.0.7, 18.0.3, and 19.1 (Linux) - only works if building without the parser (<tt>MAiNGO_build_parser=false</tt>) and without the MeLOn toolbox
+  (<tt>MAiNGO_build_melon=false</tt>) because of missing C++17 features in Intel compilers
 - Clang 7.0, 8.0, 9.0 (Linux) and clang-1001.0.46.4 (MacOS) with gfortran - only works if not using CPLEX (CPLEX seems to be incompatible with Clang)
 
-On Linux, the Fortran parts are usually not an issue thanks to gcc/gfortran. On Mac OS, you may need to install gfortran separately. If you use gfortran and get a linker error when compiling the code stating that a library was not found for <tt>-lgfortran</tt>, execute
+On Linux, the Fortran parts are usually not an issue thanks to gcc/gfortran. On MacOS, you may need to install gfortran separately. If you use gfortran and get a linker error when compiling the code stating that a library was not found for <tt>-lgfortran</tt>, execute
 \code{.sh}
 export LIBRARY_PATH=\<pathToFolderContainingYourLibgfortran.a\>
 \endcode
 This may, for example, be <tt>/opt/local/lib/\<yourGccVersion\></tt>. You can try to locate libgfortran.a by calling <tt>locate gfortran</tt>.
 
-We recommend to create a build folder in the MAiNGO directory first and then navigate to it (you can create the build folder anywhere else on you machine).
+We recommend to create a build folder in the MAiNGO directory first and then navigate to it.
 \code{.sh}
 mkdir build
 cd build
@@ -234,42 +219,46 @@ make
 \endcode
 You can add the option <tt>-j n</tt> to compile using n cores of your machine, e.g., execute <tt>make -j 4</tt> to compile using 4 cores.
 
-@subsection executing_maingo Executing MAiNGO
+@section executing_maingo Executing MAiNGO
 
-To execute MAiNGO, open a terminal window in the build folder where the MAiNGO executable is. On Windows this is in the \e Release or \e Debug folder (depending on what you have built). In order
-not to have to navigate to the build folder on Windows, you can, e.g., <b>Shift + Right click</b> on the appropriate folder and select \e Command \e Prompt or \e Power \e Shell.
+To execute MAiNGO, open a terminal window in the build folder where the MAiNGO executable is. On Windows this is in the \e Release or \e Debug folder (depending on what you have built).
+You can, e.g., <b>Shift + Right click</b> on the appropriate folder and select \e Command \e Prompt or \e Power \e Shell.
 Depending on which version of MAiNGO you have selected via the CMake variables (cf. section \ref cmake), you can run MAiNGO as follows:
 
 
-If you have built the parser version of MAiNGO (i.e., with MAiNGO_build_parser=true), simply type<br>
+If you have built the parser version of MAiNGO (i.e., with <tt>MAiNGO_build_parser=true</tt>), simply type<br>
  - on Windows: <tt>  MAiNGO \<yourProblem\></tt><br>
- - on Linux / Mac OS:    <tt>./MAiNGO \<yourProblem\></tt><br>
+ - on Linux / MacOS:    <tt>./MAiNGO \<yourProblem\></tt><br>
 
 which starts MAiNGO for the problem defined in the <tt>\<yourProblem\></tt> file, e.g., <tt>MAiNGO C:/MAiNGO/examples/01_BasicExample/problem.txt</tt>.
 If you get an error message stating that the problem file has not been found, please check the path to your problem file.
 For details on how to write your own problem file, pleases refer to section \ref modeling_ALE. You can also execute MAiNGO with specific settings by calling
  - on Windows: <tt>  MAiNGO \<yourProblem\> \<yourSettings\></tt>
- - on Linux / Mac OS:    <tt>./MAiNGO \<yourProblem\> \<yourSettings\></tt>
+ - on Linux / MacOS:    <tt>./MAiNGO \<yourProblem\> \<yourSettings\></tt>
 
 where <tt>\<yourSettings\></tt> describes a path to your settings file, e.g., <tt>MAiNGO C:/MAiNGO/examples/01_BasicExample/problem.txt C:/MAiNGO/examples/MAiNGOSettings.txt</tt>.
 You can find an exemplary MAiNGO settings file in <tt>examples/MAiNGOSettings.txt</tt>.
 
 
-If you have built the standalone version in which the model is specified via the C++ API (i.e., with MAiNGO_build_standalone=true), type <br>
+If you have built the standalone version in which the model is specified via the C++ API (i.e., with <tt>MAiNGO_build_standalone=true</tt>), type <br>
  - on Windows: <tt>  MAiNGOcpp \<yourSettings\></tt><br>
- - on Linux / Mac OS:    <tt>./MAiNGOcpp \<yourSettings\></tt><br>
+ - on Linux / MacOS:    <tt>./MAiNGOcpp \<yourSettings\></tt><br>
 
 which starts MAiNGO for the problem defined in the header file included in <tt>examples/mainCppApi.cpp</tt> (by default, this is <tt>examples/01_BasicExample/problem.h</tt>.
-For details on how to write your own problem via the C++ API, please refer to secion \ref modeling_cpp.
+For details on how to write your own problem via the C++ API, please refer to secion \ref modeling_cpp_python.
+
+If you are using the Python interface, MAiNGO is invoked by Python, see for example <tt>examples/01_BasicExample/examplePythonInterface.py</tt>.
+
 
 
 \page writing_problem Modeling in MAiNGO
 
 @section modeling_ALE Modeling with ALE
 
-The most convenient way of modeling with MAiNGO is to use ALE (https://git.rwth-aachen.de/avt.svt/public/libale.git), which provides a framework for writing logical-algebraic expressions.
+A convenient way of modeling with MAiNGO is to use [ALE](https://git.rwth-aachen.de/avt.svt/public/libale.git), which provides a framework for writing logical-algebraic expressions.
 The input can be written as .txt files in ALE syntax.
-An exemplary problem.txt file can be found in <tt>exampls/01_BasicExample/problem.txt</tt>.
+An exemplary problem.txt file can be found in <tt>examples/01_BasicExample/problem.txt</tt>.
+An example for how MAiNGO can be used to read such as file can be found in <tt>examples/mainAleParser.cpp</tt>.
 
 The ALE syntax uses data types to decide which expressions can appear in which context.
 All data types are constructed from the basic types **real**, **index**, and **boolean** and potentially derived types such as **set** and **tensor**.
@@ -549,52 +538,65 @@ These basic sets can be refined by employing an **indicator set**, which only co
 \endcode
 
 
-@section modeling_cpp Modeling via C++
+@section modeling_cpp_python Modeling via C++ or Python
 
-Another way of modeling with MAiNGO is to directly work with the C++ API. If you are not interested in the development of an own Model class simply use the exemplary <tt>C++</tt> implementation,
-that can be found in <tt>examples/01_BasicExample/problem.h</tt> and proceed with the next subsection.
+Another way of modeling with MAiNGO is to directly work with the C++ or Python APIs.
+The Python API really just consists of Python bindings (enabled by <a href="https://pybind11.readthedocs.io/en/stable/index.html">pybind11</a>) that make the C++ API usable from Python.
+Thus, the following description applies equally to both APIs, although the Doxygen documentation of the classes and functions refers to the C++ version.
 
+An example for calling MAiNGO via the C++ API can be found in <tt>examples/mainCppApi.cpp</tt>.
 For communicating an optimization problem to MAiNGO, you need to implement a specialization of the
-\ref maingo.MAiNGOmodel "MAiNGOmodel" class. Your specialization of the MAiNGOmodel class needs to implement at least the following functions:
+\ref maingo.MAiNGOmodel "MAiNGOmodel" class. An example for such a specialization can be found in <tt>examples/01_BasicExample/problem.h</tt>.
+An example for the use of MAiNGO and implementation of an optimization problem in Python can be found in <tt>examples/01_BasicExample/examplePythonInterface.py</tt>.
+
+Your specialization of the MAiNGOmodel class needs to implement at least the following functions:
  - \ref maingo.MAiNGOmodel.get_variables "get_variables": Here you need to specify the optimization variables, which are defined by their lower and upper bounds.
-   This is done by adding an appropriate \ref babBase::OptimizationVariable "OptimizationVariable" object to the variables vector.
-   Optionally, each optimization variable can be given flags to determine whether they are continuous or binary (cf. \ref babBase::enums::VT "VT")
+   This is done by creating and returning a vector of \ref babBase::OptimizationVariable "OptimizationVariable" objects.
+   Typically, a variable at least needs to be given \ref babBase::Bounds "Bounds" (the only exception are binary variables).
+   Optionally, each optimization variable can be given flags to determine whether they are continuous, integer, or binary (cf. \ref babBase::enums::VT "VT")
    and a branching priority which has to be at least 0. The default branching priority is 1 and a branching priority N means that MAiNGO will branch log_2(n+1) more
-   often on the corresponding variable than on a variable with branching priority 1. Branching priority 0 means that MAiNGO will never branch on the variable.  <br><br>
+   often on the corresponding variable than on a variable with branching priority 1. Branching priority 0 means that MAiNGO will never branch on the variable.
+   A variable <b>can</b> also be given a name. However, this name is used <b>only</b> in the output.
+   Unfortunately, it currently <b>cannot</b> be used when implementing the functions in the <tt>evaluate</tt> function (cf. below).
+   Therefore, variable names also need not be unique. If no name is given, the variable will be called <tt>x\<i\></tt>, where <tt>\<i\></tt> is a running index. <br><br>
 
  - \ref maingo.MAiNGOmodel.evaluate "evaluate": this function is called by MAiNGO to construt the directed acyclic graph of the objective function and constraints. The results of the evaluation
- of f, g, and h have to be written to the objective, eq, and ineq members of the \ref maingo.EvaluationContainer "EvaluationContainer" returned by the evaluate function.
- In the implementation of the evaluate function, you need to consider the following points:
-        - All variables need to be of type mc::FFVar. In problem.h in the examples/01_BasicExample folder, we use a typedef to call it Var instead and save some typing. Other data types (e.g., double) must
-          only be used for constant parameters.
+ of f, g, and h have to be written to the <tt>objective</tt>, <tt>eq</tt>, and <tt>ineq</tt> members of the \ref maingo.EvaluationContainer "EvaluationContainer" returned by the evaluate function.
+ The evaluate function takes a vector of <tt>mc::FFVar</tt> objects as input. These correspond to the optimization variables defined in the <tt>get_variables</tt> function.
+ However, for technical reasons, they are not the same objects.
+ In particular, the optimization variable corresponding to an <tt>mc::FFVar</tt> variable in the argument vector of the <tt>evaluate</tt> function can only be identified by their positions in the corresponding vectors.
+ See, e.g., <tt>examples/01_BasicExample/problem.h</tt> or <tt>examples/01_BasicExample/examplePythonInterface.py</tt>.
+ The results of all calculations done with these <tt>mc::FVar</tt> objects are also of this type. Other data types (e.g., <tt>double</tt>) must
+          only be used for constant parameters. When working in Python, you need typically not worry about the types.
 
  Additionally, you may do the following in your specialization of \ref maingo.MAiNGOmodel "MAiNGOmodel":
  - Specify an initial point that is used for the first local search in multistart during pre-processing using \ref maingo.MAiNGOmodel.get_initial_point "get_initial_point".<br><br>
 
-@subsection advanced_modeling Advanced Modeling
+@subsection advanced_modeling Modeling Tips and Tricks
 
 Within the evaluate function, you can do almost any type of computation (including calling other functions / libraries), as long as they are implemented with mc::FFVar.
-It is not allowed to use loops with a number of iteration not known a priori (such as, e.g., solving a nonlinear equation system), and to use conditional statements.
+However, it is not allowed to use loops with a number of iteration not known a priori (such as, e.g., solving a nonlinear equation system), and to use conditional statements that depend on variables (and the resulting code will not compile, since comparison operations are not defined for mc::FFVar).
 For a list of intrinsic functions supported by MAiNGO, refer to the documentation in <tt>doc/implementedFunctions/Implemented_functions.pdf</tt>.
 
 If your model does contain equations that would require iterative solution, you need to leave appropriate optimization variables and equations to the optimizer instead
-(cf. Bongartz & Mitsos, J. Global Optim 69 (2017) 761).
+(cf. <a href="https://link.springer.com/article/10.1007/s10898-017-0547-4">Bongartz & Mitsos 2017a</a>).
 
-Using conditional statements that give non-smooth or discontinuous functions is not possible directly, since computing valid relaxations always requires information on
+Using conditional statements that depend on variables is not possible directly.
+This could results in non-smooth or discontinuous functions, and computing valid relaxations always requires information on
 the entire domain. Such statements can however be reformulated, either through the use of implemented non-smooth functions like the maximum of two functions, or using the
-methods for relaxation of discontinuous functions introduced by Wechsung et al., J. Global Optim. 63 (2015) 1. As an alternative, one can also resort to mixed integer formulations.
+methods for relaxation of discontinuous functions introduced by <a href="https://link.springer.com/article/10.1007/s10898-013-0060-3">Wechsung & Barton 2015</a>. As an alternative, one can also resort to mixed integer formulations.
 
 For the constraints, it is important to manually scale all constraints for the relevant terms to be of the order of one, since constraint tolerances are only implemented as absolute values.
 
-You can also specify constraints that are to be used only in the relaxation, not in the original problem (cf. Sahinidis & Tawarmalani, J. Global Optim. 32 (2005) 259).
-To this end, the EvaluationContainer returned by the evaluate function contains the vectors ineqRelaxationOnly and eqRelaxationOnly. This can be useful when adding redundant constraints that would complicate the
+You can also specify constraints that are to be used only in the relaxation, not in the original problem (cf. <a href="https://link.springer.com/article/10.1007/s10898-004-2705-8">Sahinidis & Tawarmalani 2005</a>).
+To this end, the \ref maingo.EvaluationContainer "EvaluationContainer" returned by the evaluate function contains the vectors <tt>ineqRelaxationOnly</tt> and <tt>eqRelaxationOnly</tt>. This can be useful when adding redundant constraints that would complicate the
 local solution of the original problem but might tighten the relaxations. Note that adding incorrect relaxation-only constraints may lead to false infeasibility claims or other
 spurious behavior of the optimization process.
 
-You may add OutputVariables to the output vector in the EvaluationContainer. This can be used to compute and return information that is not needed during the optimization
+You may add \ref maingo.OutputVariable "OutputVariables" to the <tt>output</tt> vector in the \ref maingo.EvaluationContainer "EvaluationContainer". This can be used to compute and return information that is not needed during the optimization
 but that you are interested in at the optimal solution.
 
-If you are using the squash_node function, it is neccessary to introduce appropriate squash inequalities in order to maintain correctness of the optimization problem. For more information refer to
+If you are using the <tt>squash_node</tt> function, it is neccessary to introduce appropriate squash inequalities to maintain correctness of the optimization problem. For more information refer to
 <tt>doc/implementedFunctions/Implemented_functions.pdf</tt>.
 
 @section parsing_gams Parsing GAMS Files
@@ -603,103 +605,117 @@ We also provide a tool for parsing GAMS convert files to ALE problem.txt or MAiN
 documentation found therein.
 
 
-\page maingo_output MAiNGO output
+\page maingo_output MAiNGO Output
+
+Depending on the settings, MAiNGO may produce different types of output printed to the screen or written into files.
+These are described in the following sections.
+When using the C++ API of MAiNGO (or its Python equivalent), there are also various functions for querying all results and statistics from the MAiNGO object in code.
+These are not covered here. Please refer to the documentation of the \ref maingo.MAiNGO "MAiNGO class" and the file <tt>examples/mainCppApi.cpp</tt> instead.
 
-@section Interpreting MAiNGO output
 
-After successfully finishing an optimization run, by default MAiNGO generates the files <tt>bab.log</tt> and <tt>MAiNGO_res.txt</tt>.
-The <tt>bab.log</tt> file should look something like this:
+@section logging Logging Output
+
+Depending on the setting \ref maingo::Settings::loggingDestination "loggingDestination", MAiNGO will write information on the progress and solution to the screen or to a log file (called <tt>maingo.log</tt> by default).
+This logging information typically looks something like this:
 \code{.sh}
-| ************************************************************************************************************************
-| *                                                                                                                      *
-| *                                             You are using MAiNGO v0.2.1                                              *
-| *                                                                                                                      *
-| *  Please cite the latest MAiNGO report from http://permalink.avt.rwth-aachen.de/?id=729717 :                          *
-| *  Bongartz, D., Najman, J., Sass, S. and Mitsos, A., MAiNGO - McCormick-based Algorithm for mixed-integer Nonlinear   *
-| *  Global Optimization. Technical Report, Process Systems Engineering (AVT.SVT), RWTH Aachen University (2018).        *
-| *                                                                                                                      *
-| ************************************************************************************************************************
-|
-|   Read settings from file MAiNGOSettings.txt.
-|   Settings set by the user:
-|     epsilonA 0.01
-|     epsilonR 0.01
-|   Done.
+|************************************************************************************************************************
+|*                                                                                                                      *
+|*                                             You are using MAiNGO v0.4.0                                              *
+|*                                                                                                                      *
+|*  Please cite the latest MAiNGO report from http://permalink.avt.rwth-aachen.de/?id=729717 :                          *
+|*  Bongartz, D., Najman, J., Sass, S. and Mitsos, A., MAiNGO - McCormick-based Algorithm for mixed-integer Nonlinear   *
+|*  Global Optimization. Technical Report, Process Systems Engineering (AVT.SVT), RWTH Aachen University (2018).        *
+|*                                                                                                                      *
+|************************************************************************************************************************
+|  
+|  Read settings from file MAiNGOSettings.txt.
+|  Settings set by the user:
+|    epsilonA 0.01
+|    epsilonR 0.01
+|  Done.
 |
-|   Pre-processing at root node:
-|     Initialize subsolvers & check options...
-|     Constraint propagation range reduction...
-|     Feasibility-based range reduction...
-|     Local searches...
-|       User-specified initial point is feasible with objective value 4.35581
-|     Constraint propagation range reduction...
-|     Feasibility and optimality-based range reduction...
-|     CPU time: 0.047 s.
-|   Done.
+|  Pre-processing at root node:
+|    Initialize subsolvers...
+|      Multistart: IPOPT
+|      Upper bounding: SLSQP
+|      Lower bounding: CPLEX
+|    Constraint propagation...
+|    Optimization-based bound tightening (feasibility only)...
+|    Multistart local searches...
+|      User-specified initial point is feasible with objective value 4.35581
+|    Constraint propagation...
+|    Optimization-based bound tightening (feasibility and optimality)...
+|    CPU time: 0.015 s.
+|  Done.
 |
-|   Entering branch-and-bound loop:
-|   Iteration        LBD              UBD        NodesLeft        AbsGap           RelGap            CPU
-|           1    -3.108624e-15     4.355813e+00          2     4.355813e+00     1.000000e+00     4.700000e-02
-|           5     4.355812e+00     4.355813e+00          0     1.227713e-06     2.818562e-07     4.700000e-02
-|   Done.
+|  Entering branch-and-bound loop:
+|  Iteration        LBD              UBD        NodesLeft        AbsGap           RelGap            CPU       
+|          1    -3.108624e-15     4.355813e+00          2     4.355813e+00     1.000000e+00     1.500000e-02  
+|          5     4.355812e+00     4.355813e+00          0     1.227713e-06     2.818562e-07     1.500000e-02  
+|  Done.
 |
-| ************************************************************************************************************************
-| *                                                                                                                      *
-| *                                             *** Regular termination. ***                                             *
-| *                                                                                                                      *
-| ************************************************************************************************************************
+|************************************************************************************************************************
+|*                                                                                                                      *
+|*                                             *** Regular termination. ***                                             *
+|*                                                                                                                      *
+|************************************************************************************************************************
 |
-|   Problem statistics:
-|     Variables                                = 2
-|       Thereof continuous                     = 1
-|       Thereof binary                         = 1
-|     Inequality constraints                   = 1
-|     Equality constraints                     = 1
+|  Problem statistics: 
+|    Variables                                = 2
+|      Thereof continuous                     = 1
+|      Thereof binary                         = 1
+|    Inequality constraints                   = 1
+|    Equality constraints                     = 1
 |
-|   Solution statistics:
-|     Total UBD problems solved         = 2
-|     Total LBD problems solved         = 5
-|     Total number of iterations        = 5
-|     Maximum number of nodes in memory = 3
-|     Best solution: First found at iteration 0
+|  Solution statistics: 
+|    Total UBD problems solved         = 2
+|    Total LBD problems solved         = 5
+|    Total number of iterations        = 5
+|    Maximum number of nodes in memory = 3
+|    Best solution: First found at iteration 0
 |
-| ===================================================================
+|===================================================================
 |
-|   Final LBD          = 4.355811692854402
-|   Final absolute gap = 1.227712946416659e-06
-|   Final relative gap = 2.818562157753893e-07
+|  Final LBD          = 4.355811692854402
+|  Final absolute gap = 1.227712946416659e-06
+|  Final relative gap = 2.818562157753893e-07
 |
-|   Objective value = 4.355812920567349
-|   Solution point:
-|     x =                    0
-|     y =                    1
+|  Objective value = 4.355812920567349
+|  Solution point:
+|    x =                    0
+|    y =                   -1
 |
-| ===================================================================
+|===================================================================
 |
-|   Additional Model outputs:
-|     Result of temp1 = -0.1414213562373095
+|  Additional Model outputs: 
+|    Result of temp1:  = -0.1414213562373095
 |
-| ===================================================================
+|===================================================================
 |
-|   CPU time:        0.047 seconds (Preprocessing + B&B).
-|   Wall-clock time: 0.432 seconds (Preprocessing + B&B).
+|  CPU time:        0.015 seconds (Preprocessing + B&B).
+|  Wall-clock time: 0.061 seconds (Preprocessing + B&B).
 \endcode
 
-First, MAiNGO lists the version you are using together with a note how to cite the software. This is followed by settings read from the file MAiNGOSettings.txt,
+First, MAiNGO lists the version you are using together with a note how to cite the software.
+This is followed by settings read from the settings file (here: <tt>MAiNGOSettings.txt</tt>, which is also the default settings file name),
 if such a file could be found.
 
-The actual algorithm starts at the line <tt>Pre-processing at root node:</tt>, first listing all pre-processing steps. After the line <tt>Entering branch-and-bound loop:</tt>,
-MAiNGO lists the current number of iterations, the current proven lower bound, the current best feasible point, the number of nodes left in the branch-and-bound tree, the current absoulte and relative gaps and the CPU time required until
+The actual algorithm starts at the line <tt>Pre-processing at root node:</tt>, first listing all pre-processing steps. 
+Under the line <tt>Initialize subsolvers</tt>, the subsolvers used for the current run are listed.
+After the line <tt>Entering branch-and-bound loop:</tt>,
+MAiNGO lists the current number of iterations, the current proven lower bound, the objective value of the current best feasible point, the number of nodes left in the branch-and-bound tree, the current absoulte and relative gaps and the CPU time required until
 now. For a more detailed description of the algorithm, please refer to the \ref algorithm page.
 The algorithm finishes with the statement <tt>Regular termination.</tt>.
 
-After the algorithm terminates, problem statistics such as the number and type of variables and constraints are listed. The probably most important part
-begin after the first <tt>===</tt> signs, where the final objective value, the solution point and the final lower bound and optimality gaps are listed.
-
+After the algorithm terminates, problem statistics such as the number and type of variables and constraints are listed.
+After the first <tt>===</tt> sign, the final objective value, the solution point and the final lower bound and optimality gaps are listed.
 Any additional model outputs are listed thereafter followed by the CPU and wall clock times.
 
-The file <tt>MAiNGO_res.txt</tt> holds information on the values of the optimization variables and lists the values of all constraints evaluated at the final
-solution point. The <tt>MAiNGO_res.txt</tt> file should look something like this:
+\section results_file Results File
+
+If the setting \ref maingo.Settings.writeResultFile "writeResultFile" is set to true, MAiNGO writes a file containing information on the optimal solution.
+By default, it is called <tt>MAiNGOresult.txt</tt>. It contains the values of the optimization variables along with their bounds, 
+and lists the values of all constraint residuals evaluated at the final solution point. The <tt>MAiNGOresult.txt</tt> file should look something like this:
 \code{.sh}
                 variables              lower bound           solution point              upper bound
 
@@ -722,52 +738,46 @@ solution point. The <tt>MAiNGO_res.txt</tt> file should look something like this
 
           circle equality                        0
 \endcode
-If a constraint is fulfilled only within given tolerances, e.g., an equality constraint with absolute value lesser or equal the given feasibility tolerance,
+If a constraint is fulfilled only within given tolerances, e.g., an equality constraint with absolute value less than or equal to the given feasibility tolerance,
 it is marked with an asterisk <tt>(*)</tt>. If a constraint is violated at the final solution point, it is marked with the keyword
 <tt>VIOLATED</tt>. Usually, this should not happen. If it does, it may either be that your model contains an invalid \ref advanced_modeling "relaxation-only constraint", or that there are numerical issues.
 If you feel like something is wrong, please contact the developers at MAiNGO@avt.rwth-aachen.de.
 
-@section MAiNGO Output alternatives
-
-MAiNGO is able to write its output in different formats. In addition to the standard <tt>bab.log</tt> and <tt>MAiNGO_res.txt</tt> files, MAiNGO can also
-generate <tt>.csv</tt> and <tt>.json</tt> files. The settings
-\ref maingo.Settings.writeCsv "writeCsv" and \ref maingo.Settings.writeJson "writeJson" define whether a <tt>.csv</tt> and a <tt>.json</tt> file shall be
-generated, respectively.
-Similarly, the setting \ref maingo.Settings.writeLog "writeLog" defines whether the <tt>bab.log</tt> file shall be generated while the setting
-\ref maingo.Settings.writeResFile "writeResFile" defines whether the <tt>MAiNGO_res.txt</tt> file shall be generated. 
+@section output_alternatives Alternative Output Files
 
-It is also possible to control the output via the setting \ref maingo.Settings.outstreamVerbosity "outstreamVerbosity", for more details please refer to
-the \ref maingo::Settings "Settings site".
+Beyond the two main outputs format described above, MAiNGO is able to write output in <tt>csv</tt> and <tt>json</tt> format.
+These outputs can be enabled via the settings \ref maingo.Settings.writeCsv "writeCsv" and \ref maingo.Settings.writeJson "writeJson", respectively.
+The <tt>csv</tt> output is divided into to files, called <tt>statisticsAndSolution.csv</tt> and <tt>iterations.csv</tt> by default. The former contains the solution point and statistics about the problem and the solution procedure.
+The latter contains the same information on the individual B&B iterations as the log file, but in csv format.
+The <tt>json</tt> output file is called <tt>statisticsAndSolution.json</tt> by default and also contains the solution point and various statistics.
 
 
 \page algorithm How does MAiNGO work?
 
+@section basic_structure Basic Structure
+
 MAiNGO implements a relatively basic spatial Branch-and-Bound (B&B) algorithm, enhanced with some features for range reduction and a multi-start heuristic.
 The basic structure of the solver is as follows (where x includes both the integer and continuous variables):
 
 \htmlonly <style>div.image img[src="Structure.PNG"]{width:20cm;align:left}</style> \endhtmlonly
 \image html Structure.PNG width=20cm
 
-Here, f, g, and h are bounded factorable functions (also including multivariate outer functions) that can be defined by some computer code not visible to the optimizer. The objective function
-and the constraints can either be modelled in C++ or via ALE as described in \ref writing_problem. Based on this implementation,
-MAiNGO will evaluate the functions to construct a directed acyclic graph represention of the model first using the MC++ library. We use automatic differentiation via FADBAD++ in order to obtain first and second derivatives of
-the functions and provide them to the desired local solver. Convex and concave relaxations together with their subgradients are constructed through MC++ using the McCormick theorems, where the required intervals are obtained via FILIB++.
-Note that in contrast to current state-of-the-art global solvers, MAiNGO does not introduce auxiliary variables when constructing the lower bounding problem synergizing with the reduced-space
-philosophy of modelling in MAiNGO.
+Here, f, g, and h are bounded factorable functions (also including multivariate outer functions) that can be implemented by some computer code or given in text format (see Section \ref writing_problem "Modeling in MAiNGO").
+Based on this implementation, MAiNGO will evaluate the functions to construct a directed acyclic graph (DAG) represention of the model using the <a href="https://omega-icl.github.io/mcpp/">MC++ library</a>.
+Later while solving the problem, MAiNGO works only with this DAG to evaluate the functions in different arithmetics:
+We use automatic differentiation via <a href="http://www.fadbad.com/fadbad.html">FADBAD++</a> to obtain first and second derivatives of the functions.
+Convex and concave relaxations together with their subgradients are constructed through MC++ using the McCormick theorems, where the required intervals are obtained via <a href="http://www2.math.uni-wuppertal.de/wrswt/software/filib.html">FILIB++</a>.
+To compute lower (LBD) and upper bounds (UBD) on the optimal objective value based on the gradients and relaxations, MAiNGO uses several linear programming and local nonlinear programming solvers.
+These are accessed through lower and upper bounding wrappers.
 
-Each B&B node k, defined by its lower and upper bounds on the optimization variables x, is successively handed to wrappers for lower and upper bounding that communicate with the respective
-subsolvers and return the respective lower (LBD) and upper (UBD) bounds, as well as the optimal solution points (see Figure above). To obtain a lower bound, a relaxation of the original problem
-on the current node is constructed by relaxing the integrality requirements, replacing equalities by two inequalities each, and using the relaxations of the objective function and
-constraints obtained from MC++. However, in general the McCormick relaxations are non-smooth, and therefore a further affine relaxation based on linearization using
-the subgradients at one or more linearization points xLin is conducted to obtain a linear program (LP) and thus allow the use of robust LP solvers (shown for one linearization point, but
-multiple points can be used in analogy):
 
-\htmlonly <style>div.image img[src="Relaxed_LBP.PNG"]{width:12.5cm;align:left}</style> \endhtmlonly
-\image html Relaxed_LBP.PNG
+@section algorithm_details Details of MINLP solution algorithm
 
+Initially, the structure of the problem is analyzed to treat special cases.
 If MAiNGO detects the problem to be a (mixed-integer) linear program or a (mixed-integer) quadratic program, then it simply calls an available (MI)LP or (MI)QP solver to solve the problem.
-Otherwise, the problem is handled as a (mixed-integer) non-linear program and the solution procedure is as follows (in the following, UBD denotes the current global upper bound on the optimal
-objective value, i.e., the best objective value encountered at a feasible point so far, and LBD denotes the lower bound on the optimal objective value):
+Otherwise, the problem is handled as a (mixed-integer) non-linear program and the solution procedure is as described in the following
+(in the following, UBD denotes the current global upper bound on the optimal
+objective value, i.e., the best objective value encountered at a feasible point so far, and LBD denotes the global lower bound on the optimal objective value):
 
 - Step 0: Preprocessing at the root node <br><br>
      - a: Initialization: Upper and lower bounding solvers and the branch-and-bound tree are initialized. The initial solution value is set to \ref maingo.Settings.infinity "infinity". <br><br>
@@ -790,7 +800,7 @@ objective value, i.e., the best objective value encountered at a feasible point
          its bound by at least \ref maingo.Settings.LBP_obbtMinImprovement "LBP_obbtMinImprovement" times the width of its interval bound in the current node. While this is not as crucial
          at the root node, it can make a big difference when using OBBT within the B&B loop. <br><br>
 
-     - e: Multi-start (optional): If the number of \ref maingo.Settings.PRE_maxLocalSearches "maximum local searches" is >0 and steps 0c-d did not prove the problem to be infeasible, several
+     - e: Multi-start (optional): If the number of \ref maingo.Settings.PRE_maxLocalSearches "PRE_maxLocalSearches" is >0 and steps 0c-d did not prove the problem to be infeasible, several
          runs of local optimization will be conducted using the local NLP solver specified by \ref maingo.Settings.UBP_solverPreprocessing "UBP_solverPreprocessing". If an initial point is specified by the user as part of the problem definition, it will be checked
          for feasibility first, then the first local search will start from here. The next local search starts from the midpoint of the root node, while all remaining searches start
          from randomly generated initial points within the root node.\n
@@ -802,7 +812,7 @@ objective value, i.e., the best objective value encountered at a feasible point
      - f: Constraint propagation (optional): If \ref maingo.Settings.BAB_constraintPropagation "BAB_constraintPropagation" is turned on, constraint propagation is executed for the root node.
           If a feasible point is available, we set the bounds of the objective to (-infinity, solution value) and to (-infinity,infinity) otherwise.<br><br>
 
-     - g: OBBT (optional): If OBBT was conducted in 0c and a feasible point was found in 0d, one additional round of OBBT is conducted that also considers optimality in additiona to feasibility.
+     - g: OBBT (optional): If OBBT was conducted in 0c and a feasible point was found in 0d, one additional round of OBBT is conducted that also considers optimality in addition to feasibility.
          That is, when maximizing and minimizing each variable, a constraint that the relaxed objective function be equal to or smaller than UBD is added in addition to the
          relaxed versions of the original constraints. Locatelli & Schoen call this step 'standard range reduction'. <br><br>
 
@@ -816,27 +826,39 @@ objective value, i.e., the best objective value encountered at a feasible point
     - 2: Pre-processing (constraint propagation and OBBT, optional):
 
         - a: If \ref maingo.Settings.BAB_constraintPropagation "BAB_constraintPropagation" is turned on, constraint propagation is executed for the current node.
-             If a feasible point is available, we set the bounds of the objective to (-infinity, solution value) and to (-infinity,infinity) otherwise.<br><br>
+             If a feasible point is available, we set the bounds of the objective to (-infinity, UBD) and to (-infinity,infinity) otherwise.<br><br>
 
         - b: If \ref maingo.Settings.BAB_alwaysSolveObbt "BAB_alwaysSolveObbt" is turned on, OBBT is conducted for the current node. If a feasible point has already been found,
              it considers both feasibility and optimality, otherwise it uses feasibility only. While many established global solvers (at least by default) do not perform OBBT at every node because
              the computational cost can get prohibitive for problems containing many variables (recall that we need to solve two additional LPs per variable), we decided to implement it since
-             by construction the problems that MAiNGO is designed for should have relatively few variables. Here, it can pay off to set
+             by construction the problems that MAiNGO is designed for (i.e., those with reduced-space formulations) should have relatively few variables. Here, it can pay off to set
              \ref maingo.Settings.LBP_obbtMinImprovement "LBP_obbtMinImprovement" (cf. 0c) to limit OBBT to those variables for which significant improvements can be achieved. \n
              If the node is proven to be infeasible during OBBT, it is fathomed by infeasibility and thus simply discarded (i.e., we go back directly to 10 and then back to 1).<br><br>
 
-    - 3: Lower bounding: The lower bounding problem (LBP) is solved for the current node using one of the \ref maingo.Settings.LBP_solver "LBP solvers". If the LP is infeasible, the node is fathomed by infeasibility and thus, simply discarded (i.e., we go directly to 10 and then back to 1). Otherwise, if
-         the computed lower bound is greater than the current incumbent UBD or above UBD but within tolerance, it is fathomed by value dominance and thus also discarded.<br><br>
-
-    - 4: Upper bounding: The original problem (UBP) is solved using the local NLP solver specified by \ref maingo.Settings.UBP_solverBab "UBP_solverBab". If available, the LBP solution point is used as an initial point. Otherwise, the center of the current node is used.\n
-         The solution point returned by the NLP solver is checked for
-         feasibility within the user-specified feasibility tolerances (\ref maingo.Settings.deltaIneq "deltaIneq", \ref maingo.Settings.deltaEq "deltaEq") regardless of the return code of the NLP solver.
-         If using binary variables, these are checked for integrality. If no NLP solver is used, a single \ref maingo::ubp::SOLVER_EVAL "function evaluation" is conducted and feasibility is
-         checked at the LBP solution point or the node center. \n
-         If a feasible point was found this way, it is compared to UBD and if it is better, it is stored as the new incumbent and it is represented by an asterisk '*' in the B&B output.
-         The asterisk is only shown if the new incumbent is at significantly better, i.e., is not within optimality tolerances of the previous best upper bound.
-         In this case, all nodes in the B&B tree (possibly including the current one) with a (node) lower bound greater than this new UBD are fathomed by value dominance and thus deleted from
-         the tree.<br><br>
+    - 3: Lower bounding:
+           To obtain a lower bound, a relaxation of the original problem on the current node is constructed in three steps:
+            1) Relax the integrality requirements. 2) Replace equalities by two inequalities each. 3) Using the McCormick relaxations of the objective function and
+            constraints obtained from MC++. However, in general the McCormick relaxations are non-smooth, and therefore a further affine relaxation based on linearization using
+            the subgradients at one or more linearization points xLin (controlled by the setting \ref maingo.Settings.LBP_linPoints "LBP_linPoints") is conducted.
+            We thus obtain a lower bounding problem (LBP) in the form of a linear program (LP), which allows the use of robust LP solvers (shown for one linearization point; the index <em>k</em> denotes the current B&B node):
+            \htmlonly <style>div.image img[src="Relaxed_LBP.PNG"]{width:12.5cm;align:left}</style> \endhtmlonly
+            \image html Relaxed_LBP.PNG
+            Note that in contrast to current state-of-the-art global solvers, MAiNGO typically does not introduce auxiliary variables when constructing the lower bounding problem, synergizing with the reduced-space
+            philosophy of modeling in MAiNGO. Thus, the above LBP typically has the same number of variables as the original problem.
+            MAiNGO will only add a few auxiliary variables for re-occurring nonlinear factors within the functions if the setting \ref maingo.Settings.LBP_addAuxiliaryVars "LBP_addAuxiliaryVars" is set to true.
+            This can lead to tighter relaxations, at the expense of a slightly larger LBP.
+            The LBP is solved for the current node using one of the \ref maingo.Settings.LBP_solver "LBP solvers". If the LBP is infeasible, the node is fathomed by infeasibility and thus, simply discarded (i.e., we go directly to 10 and then back to 1). Otherwise, if
+            the computed lower bound is greater than the current incumbent UBD or above UBD but within tolerance, the node is fathomed by value dominance and thus also discarded.<br><br>
+
+    - 4: Upper bounding: The original problem (UBP) is solved using the local NLP solver specified by \ref maingo.Settings.UBP_solverBab "UBP_solverBab". If available, the LBP solution point is used as an initial point. Otherwise, the center of the current node is used.
+         The solution point returned by the NLP solver is checked for feasibility within the user-specified feasibility tolerances (\ref maingo.Settings.deltaIneq "deltaIneq", \ref maingo.Settings.deltaEq "deltaEq") regardless of the return code of the NLP solver.
+         If no NLP solver is used, a single \ref maingo::ubp::UBP_SOLVER_EVAL "function evaluation" is conducted at the initial point. \n
+         If the problem contains integer (or binary) variables, these are relaxed in the problem handed to the NLP solver.
+         If the returned solution is not (integer) feasible, the integer variables are fixed to the nearest integer value and the problem is re-solved with only the continuous variables being free to be varied by the NLP solver.\n
+         If a feasible point was found this way, it is compared to the current incumbent. If it is better, the new point becomes the new incumbent and UBD is lowered to the objective value of this new incumbent.
+         In this case, all nodes in the B&B tree (possibly including the current one) with a (node) lower bound greater than this new UBD are fathomed by value dominance and thus deleted from the tree.
+         If the new UBD is significantly better than the previous one (i.e., they are not equal within the optimality tolerances), an asterisk '*' will be shown in the B&B output.
+         <br><br>
 
     - 5: Post-processing (DBBT & probing, optional): If \ref maingo.Settings.BAB_dbbt "duality-based bound tightening" (DBBT) is activated, (cf. Ryoo & Sahinidis, J. Global Optim. 8
         (1996) 107), we exploit dual information from the LBP solution to tighten bounds based on optimality. This only works if the LBP solution lies at a bound of the current node,
@@ -860,19 +882,18 @@ objective value, i.e., the best objective value encountered at a feasible point
     - 9: Updating statistics: All information regarding number of iterations, solved upper and lower bounding problems etc. are augmented.<br><br>
 
     - 10: Output: If \ref maingo.Settings.BAB_verbosity "B&B verbosity" is set to anything other than \ref maingo::VERB_NONE "VERB_NONE", output on the solution progress will be printed every
-        \ref maingo.Settings.BAB_printFreq "BAB_printFreq" nodes. Additionally, output will be printed whenever a new incumbent is found (marked by an asterisk in the first column).
+        \ref maingo.Settings.BAB_printFreq "BAB_printFreq" nodes. Additionally, output will be printed whenever a new (and significantly better) incumbent is found (marked by an asterisk in the first column).
         Note that \ref maingo.Settings.LBP_verbosity "LBP_verbosity" and \ref maingo.Settings.UBP_verbosity "UBP_verbosity" should only be changed from their default ( \ref maingo.VERB_NONE "VERB_NONE" )
         for diagnostic reasons since they are very noisy (so is \ref maingo.VERB_ALL "VERB_ALL" for \ref maingo.Settings.BAB_verbosity "BAB_verbosity"). By default, the printed output includes:
-            - the ID of the node treated
-            - the lower bound of the node (after solving the LBP, i.e., not the one inherited from the parent node)
-            - the overall LBD *before* treating the current node
-            - the current UBD *after* treating the current node
+            - the iteration number
+            - the overall LBD after treating the current node
+            - the current UBD after treating the current node
             - the number of nodes currently in the B&B tree
-            - the absolute difference between UBP and LBP
-            - the relative gap between UBP and LBP
+            - the absolute gap defined as UBD-LBD
+            - the relative gap defined as (UBD-LBD)/|UBD|
             - the CPU time spent so far <br><br>
 
-- Step 11: Final Output
+- Step 11: Final Output (afer termination of B&B loop):
         - The incumbent as well as its objective value are returned (if a feasible point has been found) along with a message stating the termination status. Note that the returned solution
             only corresponds to the global solution if MAiNGO reports regular termination. If it terminated because of surpassed CPU time or node limits, the solution may not even be a local optimum.
             If it reports the problem to be infeasible, this means it was actually proven to be infeasible through the LBPs and/or range reduction.
@@ -881,35 +902,37 @@ objective value, i.e., the best objective value encountered at a feasible point
             UBP is omitted.
         - If additional output variables were specified as part of the problem definition, the value of these variables will be calculated at the solution point and reported at
             the very end of the solution.
-        - If \ref maingo.Settings.writeLog "writeLog" is enabled, a log file is now written in the background that contains the same content as the screen output, except that the print frequency may be
-            different (set through \ref maingo.Settings.BAB_logFreq "BAB_logFreq"). Currently, the log file will be written in the working directory and is named bab.log.
-        - If \ref maingo.Settings.writeResFile "writeResFile" is enabled, a result file is written after a regular termination of the optimization process. The result file contains the value of all
-          variables, the objective and all constraints at the final solution point. A result file is only written if the problem is feasible.
+        - Depending on the value of  \ref maingo.Settings.loggingDestination "loggingDestination", a log file may now be written in the background that contains the same content as the screen output, except that the print frequency may be
+            different (set through \ref maingo.Settings.BAB_logFreq "BAB_logFreq").
+        - If the setting \ref maingo.Settings.writeResultFile "writeResultFile" is enabled, a result file is written after a regular termination of the optimization process. The result file contains the value of all
+          variables, the objective and all constraints at the final solution point. A result file is only written if a feasible point was found.
+        - Depending on the value of the settings \ref maingo.Settings.writeJson "writeJson" and \ref maingo.Settings.writeCsv "writeCsv", the optimal solution along with some statistics and (in case of the csv) a summary of the B\&B iterations is written to corresponding files.
         - Finally, the overall CPU time is reported. <br><br>
 
 @section    LBS Lower Bounding Solvers
 
-MAiNGO currently supports four different lower bounding solvers, namely a MAiNGO internal solver, a solver based on interval arithmetics only, CLP and CPLEX. The \ref maingo::lbp::SOLVER_MAiNGO "MAiNGO" internal solver relaxes constraints
-via natural interval extensions, linearizes the McCormick relaxations of the objective function at the mid point and then solves this very simple linear program. The \ref maingo::lbp::SOLVER_INTERVAL "interval-based" solver uses
-interval arithmetics only in order to solve the lower bounding problem. Both solvers, \ref maingo::lbp::SOLVER_MAiNGO "MAiNGO" and  \ref maingo::lbp::SOLVER_INTERVAL "interval-based" do not support
-OBBT or multiple-point linearization strategies. \ref maingo::lbp::SOLVER_CPLEX "CPLEX" is the third supported lower bounding solver and supports the full range of options implemented in MAiNGO.
-Note that the current version of CPLEX cannot work with values >1e19. This is automatically detected within MAiNGO and handled appropriately. \ref maingo::lbp::SOLVER_CLP "CLP" is the fourth supported lower bounding
+MAiNGO currently supports four lower bounding solvers: a MAiNGO internal solver, a solver based on interval arithmetics only, <a href="https://github.com/coin-or/Clp">CLP</a> and <a href="https://www.ibm.com/products/ilog-cplex-optimization-studio">CPLEX</a>. The \ref maingo::lbp::LBP_SOLVER_MAiNGO "MAiNGO" internal solver relaxes constraints
+via natural interval extensions, linearizes the McCormick relaxations of the objective function at the mid point and then solves this very simple linear program. The \ref maingo::lbp::LBP_SOLVER_INTERVAL "interval-based" solver uses
+interval arithmetics only in order to solve the lower bounding problem. Both solvers, \ref maingo::lbp::LBP_SOLVER_MAiNGO "MAiNGO" and  \ref maingo::lbp::LBP_SOLVER_INTERVAL "interval-based" do not support
+OBBT or multiple-point linearization strategies. \ref maingo::lbp::LBP_SOLVER_CPLEX "CPLEX" is the third supported lower bounding solver and supports the full range of options implemented in MAiNGO.
+Note that the current version of CPLEX cannot work with values >1e19. This is automatically detected within MAiNGO and handled appropriately. \ref maingo::lbp::LBP_SOLVER_CLP "CLP" is the fourth supported lower bounding
 solver and supports the full range of options implemented in MAiNGO. Note that while CLP may be faster for small problems than CPLEX, it is more error-prone (all errors are caught by MAiNGO and handled properly).
-It is recommended to use \ref maingo::lbp::SOLVER_CPLEX "CPLEX" as lower bounding solver to achieve best computational results.
+In general, it is recommended to use \ref maingo::lbp::LBP_SOLVER_CPLEX "CPLEX" as lower bounding solver to achieve best computational performance.
+
 
 @section    UBS Upper Bounding Solvers
 
-MAiNGO currently supports local solvers found in the NLopt package, IPOPT and Knitro. Additionally, you can optimize without any local solver by the use of
-\ref maingo::ubp::SOLVER_EVAL "simple function evaluations". \ref maingo::ubp::SOLVER_IPOPT "IPOPT" is an interior point optimizer. The NLopt package provides the two derivative free solvers \ref maingo::ubp::SOLVER_COBYLA "Cobyla" and \ref maingo::ubp::SOLVER_BOBYQA "Bobyqa" and two gradient-based
-solvers \ref maingo::ubp::SOLVER_LBFGS "LBFGS" and \ref maingo::ubp::SOLVER_SLSQP "SLSQP". \ref maingo::ubp::SOLVER_KNITRO "Knitro" is a commercial local (MI)NLP solver consisting of many
-different algorithms. For additional information, visit https://projects.coin-or.org/Ipopt , https://nlopt.readthedocs.io/en/latest/ and https://www.artelys.com/docs/knitro/2_userGuide/feasibility.html .
+MAiNGO currently supports local solvers found in the <a href="https://nlopt.readthedocs.io/en/latest/">NLopt package</a>, <a href="https://github.com/coin-or/Ipopt">IPOPT</a> and <a href="https://www.artelys.com/docs/knitro/index.html">Knitro</a>. Additionally, you can optimize without any local solver by the use of
+\ref maingo::ubp::UBP_SOLVER_EVAL "simple function evaluations". \ref maingo::ubp::UBP_SOLVER_IPOPT "IPOPT" is an interior point optimizer. The NLopt package provides the two derivative free solvers \ref maingo::ubp::UBP_SOLVER_COBYLA "Cobyla" and \ref maingo::ubp::UBP_SOLVER_BOBYQA "Bobyqa" and two gradient-based
+solvers \ref maingo::ubp::UBP_SOLVER_LBFGS "LBFGS" and \ref maingo::ubp::UBP_SOLVER_SLSQP "SLSQP". \ref maingo::ubp::UBP_SOLVER_KNITRO "Knitro" is a commercial local (MI)NLP solver consisting of many
+different algorithms.
 
 
 \page parallel_version MAiNGO - Parallel Version
 
-There is also a parallelized version of MAiNGO. Its main use is for large problems where the B&B algorithm needs a long time to converge. The parallel version can be accessed and compiled the same way
-as the sequential version. In order to generate a project of the parallel MAiNGO version please set the CMake variable <b>MAiNGO_use_mpi</b> to true and make sure you have an MPI library installed.
-Depending on where it is installed, you may need to adapt the file src/FindMPI.cmake.
+There is also a parallelized version of MAiNGO, which allows the use of multiple processors via MPI. Its main use is for large problems where the B&B algorithm needs a long time to converge. The parallel version can be accessed and compiled the same way
+as the sequential version. In order to generate a project of the parallel MAiNGO version please set the CMake variable <tt>MAiNGO_use_mpi=true</tt> and make sure you have an MPI library installed.
+Unfortunately, the parallel version is not yet supported when using MAiNGO from Python.
 
 To run MAiNGO using MPI, type
 \code{.sh}
@@ -917,7 +940,9 @@ To run MAiNGO using MPI, type
 \endcode
 where <tt>\<mpiexec\></tt> is the correct mpiexec executable of your MPI library.
 
-It may happen that MPI asks you for an username and a password. If you type in a wrong password or a wrong username resulting in MPI not allowing you to proceed. In this case just call "mpiexec -remove" in the command window.
+It may happen that MPI asks you for an username and a password.
+If you type in a wrong password or a wrong username resulting in MPI not allowing you to proceed.
+In this case you can reset it via <tt>\<mpiexec\> -remove</tt>.
 
 
 \page special_uses Special Uses of MAiNGO
@@ -932,62 +957,52 @@ It may happen that MPI asks you for an username and a password. If you type in a
 
 @section maingo_pure_bab Using MAiNGO as a pure B&B Solver:
 
-Set \ref maingo::Settings::PRE_obbtMaxRounds "PRE_obbtMaxRounds"=0, disable \ref maingo::Settings::BAB_dbbt "BAB_dbbt", \ref maingo::Settings::BAB_probing "BAB_probing" and
+Set \ref maingo::Settings::PRE_obbtMaxRounds "PRE_obbtMaxRounds"=0, disable \ref maingo::Settings::BAB_constraintPropagation "BAB_constraintPropagation", \ref maingo::Settings::BAB_dbbt "BAB_dbbt", \ref maingo::Settings::BAB_probing "BAB_probing" and
 \ref maingo::Settings::BAB_alwaysSolveObbt "BAB_alwaysSolveObbt". If desired, also set \ref maingo::Settings::PRE_maxLocalSearches "PRE_maxLocalSearches"=0 to avoid multi-start at the root node.
 
 @section maingo_feasibility_of_single_point Using MAiNGO to check feasibility of a single point:
 
-Set up the optimization problem using arbitrary bounds containing the point of interest. Proceed like for using MAiNGO as a multi-start local solver, but
-set the \ref maingo::Settings::PRE_maxLocalSearches "number of local searches" to 0.
-Alternatively, you can use the C++ function  \ref maingo::MAiNGO.get_model_at_point "get_model_at_point" function to simply evaluate a point of interest.
+From C++ of Python, simply use the function \ref maingo::MAiNGO.evaluate_model_at_point "evaluate_model_at_point" to simply evaluate a point of interest.
+Otherwise, set up the optimization problem using arbitrary bounds containing the point of interest. Proceed like for using MAiNGO as a multi-start local solver, but
+set \ref maingo::Settings::PRE_maxLocalSearches "PRE_maxLocalSearches" to 0.
 
 @section maingo_epsilon_constraint Using MAiNGO to solve Bi-objective Problems:
 
-MAiNGO implements the epsilon-constraint method for bi-objective problems, that is currently available through the C++ API only. In order to define a bi-objective problem, please take a look at
+MAiNGO implements the epsilon-constraint method for bi-objective problems, that is currently available through the C++ API only. To define a bi-objective problem, please take a look at
 the exemplary <tt>examples/03_Biobjective/problemEpsCon.h</tt> file. The implementation is very similar to the one described in section \ref writing_problem with the difference that now two objectives are required.
-In order to solve the bi-objective problem uncomment the appropriate code lines in <tt>examples/mainCppApi.cpp</tt>.
+To solve the bi-objective problem uncomment the appropriate code lines in <tt>examples/mainCppApi.cpp</tt>.
 
 @section maingo_write_files_to_other_language Using MAiNGO to write Files in other Modeling Languages:
 
-The most convenient way is to use the setting \ref maingo::Settings.writeToOtherLanguage "writeToOtherLanguage" which will automatically write a parsed file before solving your problem.
-The more advanced way is to use the C++ function \ref maingo::MAiNGO::parse_maingo_to_other_language "parse_maingo_to_other_language" can be called on your MAiNGO object to automatically write
-your model into a GAMS or ALE file with more options the when using the setting \ref maingo::Settings.writeToOtherLanguage "writeToOtherLanguage". An example of the usage of the function can be found in the <tt>examples/mainCppApi.cpp</tt>. The arguments provided to the <tt>parse_maingo_to_other_language</tt> function
-are a file name (default is MAiNGO_parsed_file.xxx), a solver (except if parsing to ALE; default is SCIP), whether you want to use the min and max functions or use the equivalent abs-function formulation
-(default is true, meaning that the min and max functions are written to the file), whether you want to use hyperbolic functions or use equivalent formulations with the exp-function if avaiable
-(default is true, meaning that the hyperbolic functions are written to the file), whether you want to ignore bounding functions which are available only within MAiNGO, see the <tt>doc/implementedFunctions/Implemented_functions.pdf</tt>
-(default is true, meaning that all used bounding functions are ignored when writing files), and whether you want to write all relaxation-only constraints (default is true,
-meaning that all constraints will be parsed). This function is extremely helpful if you want to do some cross-testing of solvers using the same model formulations.
+The most convenient way is to use the setting \ref maingo::Settings.modelWritingLanguage "modelWritingLanguage" which will automatically write the current model to a file called <tt>MAiNGO_written_model</tt> (with a filename extension depending on the chosen language) before solving your problem.
+The more advanced way is to use the function \ref maingo::MAiNGO::write_model_to_file_in_other_language "write_model_to_file_in_other_language", which can be called on your MAiNGO object (in C++ or Python) to automatically write
+your model to a file with more options than when using the setting \ref maingo::Settings.modelWritingLanguage "modelWritingLanguage". An example for the use of this function can be found in the <tt>examples/mainCppApi.cpp</tt>.
+This function is extremely helpful if you want to do some cross-testing of solvers using the same model formulations.
 
 
 \page maingo_in_your_software Using MAiNGO in Other Software
 
-@section standalone Using MAiNGO as a Standalone Solver
-
-If you want to use MAiNGO as a standalone solver, you can simply work with the files given in the example directory (and the CMakeLists.txt in the trunk of the Git repository) and implement
-your model as described in Section \ref writing_problem. An example of a C++ model can be found in <tt>examples/01_BasicExample/problem.h</tt>. An example for a .txt input file can be found in <tt>examples/01_BasicExample/problem.txt</tt>.
-After compiling, simply navigate to the folder where the executable was built and execute <tt>MAiNGO.exe</tt>.
-
-The standalone version of MAiNGO can read settings for solver options from a file. An example file including descriptions and default values of all options can be found in the example folder
-(<tt>MAiNGOSettings.txt</tt>). By default, MAiNGO looks for a file called <tt>MAiNGOSettings.txt</tt> in the directory where the <tt>MAiNGO.exe</tt> is located, but you can specify a custom file (including path) as a
-command line argument to <tt>MAiNGO.exe</tt>. The same applies to the MAiNGO version with parser.
-
 @section embedded Embedding MAiNGO in your Application
 
 If you would like to embed MAiNGO in your own application, you need to link it to your software project first. Probably the easiest way it to embed MAiNGO as a submodule
 of your project. For this purpose, please refer to the <tt>CMakeLists.txt</tt> in the trunk of the MAiNGO repository.
 
-In order to use the MAiNGO object, please refer to the <tt>main.cpp</tt> in the example folder. In particular, you need to do the following things:
+For an example of how to use the MAiNGO object, please refer to the file <tt>examples/mainCppApi.cpp</tt>. In particular, you need to do the following things:
  - Create an instance of the \ref maingo.MAiNGO "MAiNGO" class.
- - Hand an instance of your specialization of \ref maingo.MAiNGOmodel "MAiNGOmodel" to your MAiNGO instance via its constructor or using \ref maingo.MAiNGO.set_model "set_model"
+ - Hand an instance of your specialization of \ref maingo.MAiNGOmodel "MAiNGOmodel" to your MAiNGO instance via its constructor or using \ref maingo.MAiNGO.set_model "set_model".
+   Note that MAiNGO stores a copy of the model internally (or rather, its own representation of the model).
+   Therefore, any changes made to you model object after handing it to MAiNGO (via the constructor or the <tt>set_model</tt> function) will *not* change the model that MAiNGO will use in the next call to <tt>solve</tt> etc.
+   If you want MAiNGO to known about these changes, you need to hand the updated model to MAiNGO again using <tt>set_model</tt>.
  - Specify settings using \ref maingo.MAiNGO.set_option "set_option" or \ref maingo.MAiNGO.read_settings "read_settings"
  - Solve the problem using \ref maingo.MAiNGO.solve "solve". This function will return a \ref babBase::enums::BAB_RETCODE "RETCODE".
  - Query solution information using the function provided by the \ref maingo.MAiNGO "MAiNGO" class.
 
 @section extensions Extending MAiNGO
 
-MAiNGO is published under the ECLIPSE license. Please refer to the <tt>LICENSE</tt> file in the MAiNGO trunk.
+MAiNGO is published under the Eclipse Public License - v2.0. Please refer to the <tt>LICENSE</tt> file in the root of the MAiNGO repository.
+Note that the third-party dependencies in the <tt>dep</tt> folder use different licenses.
 
-Regarding the implementation of MAiNGO, just explore this documentation. If you expand MAiNGO, please follow our naming conventions:
+Regarding the implementation of MAiNGO, just explore this documentation. If you intend to contribute your changes to MAiNGO, please follow our naming conventions:
     - Variable names are written in camel case, starting with a lower case letter
     - Type names are written in camel case, starting with an upper case letter
     - Function names are all lower case, potentially with underscores
@@ -996,37 +1011,43 @@ Regarding the implementation of MAiNGO, just explore this documentation. If you
 
 \page maingo_settings MAiNGO Settings
 
-The documentation of all settings can be found on the \ref maingo::Settings "Settings site".
+The documentation of all available settings can be found on the page of the \ref maingo::Settings "Settings" struct.
+
+When using the C++ or Python APIs of MAiNGO, settings can be changed via \ref maingo.MAiNGO.set_option "set_option" function or read from a file via the \ref maingo.MAiNGO.read_settings "read_settings" function.
+If no file name is given to \ref maingo.MAiNGO.read_settings "read_settings", the default file name is <tt>MAiNGOSettings.txt</tt>.
+An example for such a settings file can be found at <tt>examples/MAiNGOSettings.txt</tt>.
 
-When using the \ref standalone "Standalone Version" of MAiNGO, settings can be read from a file as well. The default settings file is named <tt>MAiNGOSettings.txt</tt> and contains all settings.
-You can change the name of the default settings file when calling the \ref maingo.MAiNGO.read_settings "read_settings" function or simply tell maingo which settings file you want to use by
-calling the MAiNGO executable with an additional argument, e.g., <tt>MAiNGO.exe MySettings.txt</tt>.
+In the example main file for the C++-API, <tt>examples/mainCppApi.cpp</tt>, the name of the desired settings file is read as optional (first and only) command line argument. 
+If a file name is specified this way, MAiNGO will attempt to open a file of this name in the current working directory (i.e., typically where your <tt>MAiNGOcpp</tt> executable is).
+If this file is not found, it will display a warning and continue with default settings.
+If not file name is specified, MAiNGO will instead use the file <tt>MAiNGOSettings.txt</tt> if it exists in the working directory.
 
+Similarly, in the example main file for using text input based on ALE, <tt>examples/mainAleParser.cpp</tt>, the settings file name is read as optional second command line argument after the name of the input file containing the problem definition (cf. modeling_ALE).
 
 <br>
 \page faq What can go wrong?
 
 @section faq1 After starting the MAiNGO executable nothing happens
 
-This is usually the case if some of the libraries (in most cases CPLEX) are not found. Make sure that after you installed CPLEX, the CPLEX .lib and .dll files can be found in your
+This is usually the case if some of the libraries (in most cases CPLEX) are not found. Make sure that after you installed CPLEX, the directory containing the CPLEX .dll files can be found in your
 environment variables. If you cannot change your environment variables, simply copy the .dll files to the <tt>MAiNGO.exe</tt> folder.<br><br>
 
 @section faq2 MAiNGO reports a Problem to be infeasible although you expect it to be feasible
 
 Double-check your variable bounds, model equations, and selection of constraints to make sure there are no mistakes. This is the cause in most cases.
 Check whether your problem might be badly scaled and consider scaling variables and objective (note that the constraints need to be properly scaled to ensure consistent application
-of tolerances, cf. Section \ref writing_problem). If the problem persists, try disabling the settings \ref maingo::Settings::BAB_alwaysSolveObbt "BAB_alwaysSolveObbt",
+of tolerances, cf. Section \ref advanced_modeling). If the problem persists, try disabling the settings \ref maingo::Settings::BAB_constraintPropagation "BAB_constraintPropagation", \ref maingo::Settings::BAB_alwaysSolveObbt "BAB_alwaysSolveObbt",
 \ref maingo::Settings::PRE_obbtMaxRounds "PRE_obbtMaxRounds" and \ref maingo::Settings::BAB_dbbt "BAB_dbbt", which disables all range reduction. If this solves the problem,
 there might be an issue in the range reduction techniques. In this case, please report the problem to the developers. Otherwise, try to perform a multi-start by setting
 \ref maingo::Settings::PRE_pureMultistart "PRE_pureMultistart" to 1 and \ref maingo::Settings::PRE_maxLocalSearches "PRE_maxLocalSearches" to a high number, in addition use a powerful upper bounding solver
-(e.g., \ref maingo::ubp::SOLVER_IPOPT "IPOPT") and try a local solver from multiple initial points. If a feasible point is found like this, there is an issue with the relaxations of your problem.
-In this case, make sure your model does not contain conditional statements or loops with a number of iterations not known a priori. If you are using relaxation-only constraints, make sure these are actually valid.
+(e.g., \ref maingo::ubp::UBP_SOLVER_IPOPT "IPOPT") and try a local solver from multiple initial points. If a feasible point is found like this, there is an issue with the relaxations of your problem.
+If you are using relaxation-only constraints, make sure these are actually valid.
 If the problem persists, please report it to the developers. <br><br>
 
 @section faq3 MAiNGO reports a domain violation, e.g., division by 0
 
 This can have several causes: there may be a mistake in the model equations, the bounds on the optimization variables may be too loose, or the relaxations
-(or rather the underlying interval extensions) get too bad when propagating through the model equations. In the latter case, try locating the problem within your model by, e.g., using the
+(or rather the underlying interval extensions) become too weak when propagating through the model equations. In the latter case, try locating the problem within your model by, e.g., using the
 mc_print(,) function.
 There are two different ways to remedy such situations (except for reformulating the problem or choosing tighter bounds) depending on why the domain violation occurs:\n
 If you know that the argument of interest is within the correct domain for all values of your optimization variables within their box constraints (i.e., without considering additional (linear or nonlinear) constraints),
@@ -1035,32 +1056,27 @@ If, however, there are values of you optimization variables within their bounds
 Doing so would lead to wrong relaxations and unpredictable behavior. Instead, the points that lead to domain violations need to be excluded via a constraint and the argument can then be
 restricted using the functions min(,) or max(,) (cf. <tt>doc/implementedFunctions/Implemented_functions.pdf</tt>).
 
-@subsection faq5 MAiNGO terminates with a MC++ error saying something about alpha1 and alpha2
-
-There seems to be a problem with the relaxations, please report this to the developers.<br><br>
-
-@subsection faq6 MAiNGO finds feasible solutions early on, but the LBD takes forever to converge
+@section faq6 MAiNGO finds feasible solutions early on, but the LBD takes forever to converge
 
 This occurs frequently with deterministic global solvers. It is usually a sign for the relaxations being weak. Sometimes it helps to start with tighter bounds on the optimization variables. Otherwise, more effort might
-be needed to find better relaxations. If not doing so already, you should also consider using range reduction (cf. Section @ref algorithm).<br><br>
+be needed to find better relaxations. If not doing so already, you should also consider using some of the bound tightening techniques in MAiNGO (cf. Section @ref algorithm).<br><br>
 
-@subsection faq7 MAiNGO runs forever without finding a feasible point although LBD seems to be converged already
+@section faq7 MAiNGO runs forever without finding a feasible point although LBD seems to be converged already
 
-Try using a more powerful UBP solver (e.g., IPOPT or KNITRO), possibly increase \ref maingo::Settings::UBP_maxStepsBab "UBP_maxStepsPreprocessing". Also set \ref maingo::Settings::PRE_maxLocalSearches "PRE_maxLocalSearches"> to 0 in order to
-enable local searches at the root node. If the problem persists, it might be problematic for local solvers. Try a more powerful solver which may currently not be implemented in MAiNGO and
+Try using a more powerful UBP solver (e.g., IPOPT or Knitro), possibly increase \ref maingo::Settings::UBP_maxStepsBab "UBP_maxStepsPreprocessing". Also set \ref maingo::Settings::PRE_maxLocalSearches "PRE_maxLocalSearches" to >0 to
+enable local searches at the root node. If the issue persists, your problem might be problematic for local solvers. Try a more powerful solver which may currently not be implemented in MAiNGO and
 use the point reported by the external solver as an initial point for MAiNGO. Previous experience has shown that one possible cause can be redundant constraints (since these destroy
-constraint qualifications). If it seems like the lower bound converged, try using simple \ref maingo::ubp::SOLVER_EVAL "function evaluations". If your problem contains binary variables, improvements may be needed to the upper bounding strategy that currently does not distinguish between continuous
-and binary variables except that the latter are checked for integrality at the returned solution point. In this case, please report the problem to the developers.<br><br>
+constraint qualifications). If it seems like the lower bound converged, try using simple \ref maingo::ubp::UBP_SOLVER_EVAL "function evaluations". If your problem contains binary variables, improvements may be needed to the upper bounding strategy that is currently rather basic for integers.<br><br>
 
 \page maingo_settings MAiNGO Settings
 
 \page bib Where can I read more?
 
-Some more general information on MAiNGO can be found in the latest <a href="http://permalink.avt.rwth-aachen.de/?id=729717">MAiNGO report</a>:<br>
-    - D. Bongartz, J. Najman, S. Sass, and A. Mitsos, MAiNGO - <b>M</b>cCormick-based <b>A</b>lgorithm for mixed-<b>i</b>nteger <b>N</b>onlinear <b>G</b>lobal <b>O</b>ptimization. Technical Report, Process Systems Engineering (AVT.SVT), RWTH Aachen University (2018).
+Some more general information on MAiNGO can be found in the latest MAiNGO report:<br>
+    - D. Bongartz, J. Najman, S. Sass, and A. Mitsos, MAiNGO - <b>M</b>cCormick-based <b>A</b>lgorithm for mixed-<b>i</b>nteger <b>N</b>onlinear <b>G</b>lobal <b>O</b>ptimization. Technical Report, Process Systems Engineering (AVT.SVT), RWTH Aachen University (2018). http://permalink.avt.rwth-aachen.de/?id=729717
 
 @section readRelaxations Relaxations
-The relaxations implemented in MC++ that are used in MAiNGO were introduced in the following works (details on the implementation can be found in the documentation of MC++):
+The relaxations implemented in MC++ that are used in MAiNGO were introduced in the following works (details on the implementation can be found in the [documentation of MC++](https://omega-icl.github.io/mcpp/)):
     - G.P. McCormick, Computability of global solutions to factorable nonconvex programs: Part I - Convex underestimating problem, Mathematical Programming 10 (1976) 145-175.
     - A. Mitsos, B. Chachuat, and P.I. Barton, McCormick-Based Relaxations of Algorithms, SIAM Journal on Optimization 20 (2009) 573-601.
     - J.K. Scott, M.D. Stuber, and P.I. Barton, Generalized McCormick Relaxations, Journal of Global Optimization  51 (2011) 569-606.
@@ -1078,6 +1094,7 @@ Examples for the construction of tighter relaxations for special functions can b
     - A. Schweidtmann and A. Mitsos, Global Deterministic Optimization with Artificial Neural Networks Embedded, Journal of Optimization Theory and Applications 180(3) (2019).
     - J. Najman, D. Bongartz, and A. Mitsos, Relaxations of thermodynamic property and costing models in process engineering. Computers & Chemical Engineering 130 (2019) 106571.
     - J. Najman, D. Bongartz, and A. Mitsos, Convex Relaxations of Componentwise Convex Functions. Computers & Chemical Engineering 130 (2019) 106527.
+    - D. Bongartz, J. Najman, and A. Mitsos, Deterministic global optimization of steam cycles using the IAPWS-IF97 model, Optimization & Engineering 21 (2020) 1095-1131.
 
 Further extensions that are currently not implemented include the following:
     - M.D. Stuber, J.K. Scott, and P.I. Barton, Convex and concave relaxations of implicit functions, Optimization Methods and Software 30 (2015) 424-460.
@@ -1108,25 +1125,31 @@ A detailed discussion of optimization-based bound tightening (OBBT) as well as t
     - A.M. Gleixner, T. Berthold, B. Müller, and S. Weltge, Three enhancements for optimization-based bound tightening, Journal of Global Optimization 67 (2017) 731-757.
 
 McCormick subgradient-based interval heuristic:
-    - J. Najman, A. Mitsos, Tighter McCormick relaxations through subgradient propagation. Journal of Global Optimization (2019).
+    - J. Najman, A. Mitsos, Tighter McCormick relaxations through subgradient propagation. Journal of Global Optimization 75 (2019) 565-593.
 
 @section readUses Uses of MAiNGO
-Examples of applications of earlier versions of MAiNGO can be found in:
+An introduction to reduced-space modeling in MAiNGO is given in:
+    - D. Bongartz, Deterministic global flowsheet optimization for the design of energy conversion processes. Ph.D. Thesis, RWTH Aachen University (2020). Available at https://doi.org/10.18154/RWTH-2020-06052.
+    
+Examples of applications of (earlier versions of) MAiNGO can be found in:
     - D. Bongartz and A. Mitsos, Deterministic Global Optimization of Process Flowsheets in a Reduced Space Using McCormick Relaxations, Journal of Global Optimization 69 (2017) 761-796.
     - D. Bongartz and A. Mitsos, Infeasible Path Global Flowsheet Optimization Using McCormick Relaxations, In: Proceedings of the 27th Symposium on Computer Aided Process Engineering - ESCAPE27 (2017) 631-636.
-    - D. Bongartz and A. Mitsos, Deterministic Global Flowsheet Optimization: Between Equation-Oriented and Sequential-Modular Methods, AIChE Journal 65 (2019) 1022-1034.
-    - D. Bongartz, J. Najman, and A. Mitsos, Deterministic global optimization of steam cycles using the IAPWS-IF97 model, Optimization & Engineering (2020), in press.
     - W.R. Huster, D. Bongartz, and A. Mitsos, Deterministic Global Optimization of the Design of a Geothermal Organic Rankine Cycle, Energy Procedia 129 (2017) 50-57.
+    - D. Bongartz and A. Mitsos, Deterministic Global Flowsheet Optimization: Between Equation-Oriented and Sequential-Modular Methods, AIChE Journal 65 (2019) 1022-1034.
+    - D. Bongartz, J. Najman, and A. Mitsos, Deterministic global optimization of steam cycles using the IAPWS-IF97 model, Optimization & Engineering 21 (2020) 1095-1131.
+    - D. Bongartz, Deterministic global flowsheet optimization for the design of energy conversion processes. Ph.D. Thesis, RWTH Aachen University (2020). Available at https://doi.org/10.18154/RWTH-2020-06052.
+    - C.D. Kappatou, D. Bongartz, J. Najman, S. Sass and A. Mitsos, Global Dynamic Optimization with Hammerstein-Wiener Models Embedded, Submitted. Preprint available at http://www.optimization-online.org/DB_HTML/2020/09/8018.html.
 
-Examples of applications with machine-learning models using the "MeLOn" toolbox:
+Examples of MAiNGO applications with machine-learning models using the "MeLOn" toolbox:
     - W.R. Huster, A.M. Schweidtmann and A. Mitsos, Impact of accurate working fluid properties on the globally optimal design of an organic Rankine cycle, Computer Aided Chemical Engineering 47 (2019) 427-432.
     - W.R. Huster, A.M. Schweidtmann and A. Mitsos, Working fluid selection for organic rankine cycles via deterministic global optimization of design and operation, Optimization and Engineering (2020) in press.
     - D. Rall, D. Menne, A.M. Schweidtmann, J. Kamp, L. von Kolzenberg, A. Mitsos and Matthias Wessling, Rational design of ion separation membranes, Journal of Membrane Science 569 (2019) 209-219.
     - D. Rall, A.M. Schweidtmann, B., Aumeier, J. Kamp, J. Karwe, K., Ostendorf, K., A. Mitsos & Wessling, M. (2020). Simultaneous rational design of ion separation membranes and processes. Journal of Membrane Science, 600, 117860.
     - D. Rall, A.M. Schweidtmann, M. Kruse, E., Evdochenko, A., Mitsos, A., & Wessling, M. (2020). Multi-scale membrane process optimization with high-fidelity ion transport models through machine learning. Journal of Membrane Science, 118208.
-    - P. Schäfer, A.M. Schweidtmann, P.H.A. Lenz, H.M.C. Markgraf, A. Mitsos, Wavelet-based grid-adaptation for nonlinear scheduling subject to time-variable electricity prices, Computers and Chemical Engineering (2019) in press.
+    - P. Schäfer, A.M. Schweidtmann, P.H.A. Lenz, H.M.C. Markgraf, A. Mitsos, Wavelet-based grid-adaptation for nonlinear scheduling subject to time-variable electricity prices, Computers and Chemical Engineering 132 (2020) 106598.
     - A.M. Schweidtmann, D. Bongartz, W.R. Huster, A. Mitsos, Deterministic Global Process Optimization: Flash Calculations via Artificial Neural Networks, Computer Aided Chemical Engineering 46 (2019) 937-942.
     - A.M. Schweidtmann and A. Mitsos, Deterministic Global Optimization with Artificial Neural Networks Embedded, Journal of Optimization Theory and Applications 180 (2019) 925-948.
     - A.M. Schweidtmann, W.R. Huster, J.T. Lüthje and A. Mitsos, Deterministic global process optimization: Accurate (single-species) properties via artificial neural networks, Computers & Chemical Engineering 121 (2019) 67-74.
-    - A.M. Schweidtmann, D. Bongartz, G. Grothe, T. Kerkenhoff, X. Lin, J. Najman, and A. Mitsos, Global optimization of Gaussian processes, Submitted. Preprint available on https://arxiv.org/abs/2005.10902 (2020)
-*/
\ No newline at end of file
+    - W.R. Huster, A.M. Schweidtmann, J.T. Lüthje and A. Mitsos, Deterministic global superstructure-based optimization of an organic Rankine cycle, Computers & Chemical Engineering 141 (2020) 106996.
+    - A.M. Schweidtmann, D. Bongartz, G. Grothe, T. Kerkenhoff, X. Lin, J. Najman, and A. Mitsos, Global optimization of Gaussian processes, Submitted. Preprint available at https://arxiv.org/abs/2005.10902 (2020).
+ */
\ No newline at end of file
diff --git a/examples/01_BasicExample/Readme.md b/examples/01_BasicExample/Readme.md
index cac4b55aab93ff5f404a824a5fde083073317740..52aace203993eebb667916c299889925eb4fa4a5 100644
--- a/examples/01_BasicExample/Readme.md
+++ b/examples/01_BasicExample/Readme.md
@@ -2,7 +2,7 @@
 
 ## About
 
-This problem demonstrates some basic features of both the C++ API and the ALE input of MAiNGO.
+This problem demonstrates some basic features in both the C++ and Python APIs of MAiNGO as well as the text-based input in ALE format.
 The problem to be solved is
 
     min  -20 * exp(-0.2 * sqrt( (x^2 + y^2) / 2 )) - exp((cos(PI*x) + cos(PI*y)) / 2) + 20 + exp(1)  
@@ -11,16 +11,23 @@ The problem to be solved is
          x in {0, 1}  
          y in [-2,2]
 
-The problem implementations in the files `problem.h` (for the C++ API) and `problem.txt` (for text-based input via the ALE library) contain several detailed comments on the features that are required for implementing
+The problem implementations in the files `problem.h` (for the C++ API), `examplePythonInterface.py` (for the Python API), and `problem.txt` (for text-based input via the ALE library) contain several detailed comments on the features that are required for implementing
 not only this simple problem but also more complex ones.
 
-To solve this example problem via the text-based ALE input, make sure to copy the file `problem.txt` into the directory where your MAiNGO executable is.
+To solve this example problem **via the text-based ALE input**, make sure to copy the file `problem.txt` into the directory where your MAiNGO executable is.
 You can then solve the problem by executing the MAiNGO executable. As an alternative, you can provide a (relative or absolute) path to the `problem.txt` as the first command line argument to MAiNGO.
 
-To solve this example problem via the C++ API, you need to include the `problem.h` file in the `mainCppApi.cpp` file
+To solve this example problem **via the C++ API**, you need to include the `problem.h` file in the `mainCppApi.cpp` file
 (with the correct relative path from the directory containing `mainCppApi.cpp` to the one containing `problem.h`, if they are not in the same directory). Make sure that you have set the CMake variable `MAiNGO_build_standalone` to `true`.
 Then you need to compile MAiNGO and execute the `MAiNGOcpp` executable.
 
-Settings of MAiNGO can be specified via a settings file. By default, MAiNGO looks for a file called MAiNGOSettings.txt in the working directory. You can specify a different file
+To solve this example problem **via the Python API**, you need to make sure you built MAiNGO with its Python interface, such that the pymaingo package is available.
+To ensure that the pymaingo package is found, you may want to copy `examplePythonInterface.py` to your build directory, which should contain a sub-directory called pymaingo.
+Then just run `python examplePythonInterface.py` in your build directory.
+If you run into an error that pymaingo could not be found, also double check that the version of Python you are trying to run the example with is the same that was found by CMake when building MAiNGO (check the CMake output).
+If not, choose a different Python version either for running the example or for building MAiNGO (for the latter, see the documentation of MAiNGO).
+
+**Settings** of MAiNGO can be specified via a settings file. By default, MAiNGO looks for a file called MAiNGOSettings.txt in the working directory. You can specify a different file
 (including an absolute or relative path) as the second (when running the `MAiNGO` executable, which expects the problem file name as first argument) or first (when running the `MAiNGOcpp` executable) command line argument.
+In the example for the Python interface, you can just change the settings file name in the code of `examplePythonInterface.py`.
 An example settings file can be found in the folder `examples` in the MAiNGO repository.
\ No newline at end of file
diff --git a/examples/01_BasicExample/examplePythonInterface.py b/examples/01_BasicExample/examplePythonInterface.py
new file mode 100644
index 0000000000000000000000000000000000000000..4aff84aa7e1599e62fac6ccf478836ddc61d1999
--- /dev/null
+++ b/examples/01_BasicExample/examplePythonInterface.py
@@ -0,0 +1,139 @@
+from pymaingo import *
+from math import pi
+
+
+# Auxiliary class, just to highlight we can use other stuff in our models
+class SomeExternalClass():
+    def __init__(self, p1, p2):
+        self.p1 = p1
+        self.p2 = p2
+        
+    def functionOne(self, x, y):
+        return -self.p1 * sqrt( (sqr(x) + sqr(y))/2 )
+        
+    def functionTwo(self, x, y):
+        return ( cos(self.p2*x) + cos(self.p2*y) ) / 2
+
+
+#####################################################
+# To define a model, we need to spcecialize the MAiNGOmodel class
+class Model(MAiNGOmodel):
+    def __init__(self):
+        MAiNGOmodel.__init__(self) # Should be there for technical reasons
+        self.a = 20
+        self.ext = SomeExternalClass(0.2, pi)
+    
+    
+    # We need to implement the get_variables functions for specifying the optimization varibles
+    def get_variables(self):
+        # We need to return a list of OptimizationVariable objects.
+        # To define an optimization variable, we typically need to specify bounds, and optionally a variable type, a branching priority, and a name 
+        #
+        # Variable bounds:
+        #  This is mostly self-explanatory. The bounds have to be doubles and not NaN.
+        #
+        # Variable type:
+        #  There are three variable types in MAiNGO. VT_CONTINUOUS variables, VT_BINARY variables, and VT_INTEGER variables.
+        #  Double type bounds for binaries and integers will be rounded up for lower bounds and rounded down for upper bounds.
+        #
+        # Branching priority:
+        #  A branching priority 'n' means that we will branch log_2(n+1) times more often on that specific variable, n will be rounded down to the next integer meaning that a BP of 1.5 equals 1
+        #  If you want to branch less on a specific variable just increase the branching priority of all other variables
+        #  A branching priority of <1 means that MAiNGO will never branch on this specific variable. This may lead to non-convergence of the B&B algorithm
+        #
+        # Variable name:
+        #  The name has to be of string type. All ASCII characters are allowed and variables are allowed to have the same name.
+        #  MAiNGO outputs the variables in the same order as they are set in the variables list within this function.
+        #
+        variables = [OptimizationVariable(VT_BINARY, "x"),                     # A binary variable automatically has the bounds [0,1] - this is the only case where bounds are optional
+                     OptimizationVariable(Bounds(-2,2), VT_CONTINUOUS, "y")  ] # The VT_CONTINUOUS specifies that this is a real variable. It could be omitted, since this is the default
+        return variables
+
+    # Optional: we can implement a function for specifying an initial guess for our optimization variables
+    # If provided, MAiNGO will use this point for the first local search during pre-processing
+    def get_initial_point(self):
+        # If you choose to provide an initial point, you have to make sure that the size of the initialPoint equals the size of
+        # the variables list returned by get_variables. Otherwise, MAiNGO will throw an exception.
+        # The value of an initial point variable does not have to fit the type of the variable, e.g., it is allowed to set a double type value as an initial point for a binary variable
+        initialPoint = [0, 1]
+        return initialPoint
+
+
+    # We need to implement the evaluate function that computes the values of the objective and constraints from the variables.
+    # Note that the variables in the 'vars' argument of this function do correspond to the optimization variables defined in the get_variables function.
+    # However, they are different objects for technical reasons. The only mapping we have between them is the position in the list.
+    # The results of the evaluation (i.e., objective and constraint values) need to be return in an EvaluationContainer
+    def evaluate(self, vars):
+        # Create copies of the variables with nicer names
+        x = vars[0]
+        y = vars[1]
+        
+        # Here, we can do (almost, see docoumentation) kind of intermediate calculation.
+        # Any variables defined here are intermediates that are not optimization variables.
+        temp1 = self.ext.functionOne(x, y)
+        temp2 = self.ext.functionTwo(x, y)
+        
+        # The objective and constraints are returned in an EvaluationContainer
+        result = EvaluationContainer()
+        
+        # Example objective: the Ackley function
+        result.objective = -self.a * exp(temp1) - exp(temp2) + self.a + exp(1)
+        
+        # Inequalities: need to return a list of constraint residuals g(x) for constraints of form g(x)<=0
+        result.ineq = [x - 1] # This means: x-1 <= 0
+        
+        # Equalities: similarly, need to return a list of residuals h(x) for h(x)=0
+        result.eq = [x**2 + y**2 - 1] # Circle equality with radius 1
+       
+       
+        # Relaxation only inequalities and equalities are used for lower bounding only.
+        # None of the relaxation only (in)equalities are passed to the upper bounding solver.
+        # Only for the feasible point found in pre-processing and the final solution point,
+        # MAiNGO checks whether they satisfy relaxation only (in)equalities and warns the user
+        # if they do not.
+        # IMPORTANT: You thus need to make sure yourself that any relaxation-only constraints
+        #            are redundant with the "regular" constraints.
+        #
+        # Relaxation only inequalities (<=0):
+        # result.ineqRelaxationOnly = [y - 1];
+        #
+        # Relaxation only equalities (=0):
+        # result.eqRelaxationOnly = [y + x - 1]
+       
+        # Additional output can be used to access intermediate variables after a problem has been solved.
+        result.output = [OutputVariable("Result of temp1: ", temp1)]
+
+        return result
+
+
+#####################################################
+# To work with the problem, we first create an instance of the model.
+myModel = Model()
+
+# We then create an instance of MAiNGO, the solver, and hand it the model.
+myMAiNGO = MAiNGO(myModel)
+
+# Next, adjust settings as desired
+# We can have MAiNGO read a settings file:
+fileName = ""
+myMAiNGO.read_settings(fileName) # If fileName is empty, MAiNGO will attempt to open MAiNGOSettings.txt
+# We can also use the set_option function directly:
+# myMAiNGO.set_option("maxTime", 100) # set CPU time limit to 100s
+# myMAiNGO.set_option("loggingDestination", LOGGING_FILE) # write log to file only, not screen
+
+# We can also customize file names for written output if desired
+# myMAiNGO.set_log_file_name("my_log_file.log")
+# myMAiNGO.set_option("writeJson", True)
+# myMAiNGO.set_json_file_name("my_json_file.json")
+# myMAiNGO.set_option("writeCsv", True)
+# myMAiNGO.set_iterations_csv_file_name("iterations.csv")
+# myMAiNGO.set_solution_and_statistics_csv_file_name("solution_and_statistics.csv")
+
+# We can have MAiNGO write the current model to a file in a given modeling language.
+# (As an alternative, this could also be done within the solve function of MAiNGO
+# through the settings modelWritingLanguage, but with less options for customization)
+# myMAiNGO.write_model_to_file_in_other_language(writingLanguage=LANG_GAMS, fileName="my_problem_file_MAiNGO.gms", solverName="SCIP", writeRelaxationOnly=False)
+ 
+# Finally, we call the solve routine to solve the problem.
+maingoStatus = myMAiNGO.solve() 
+# print(maingoStatus)
\ No newline at end of file
diff --git a/examples/01_BasicExample/myComplicatedFunctions.h b/examples/01_BasicExample/myComplicatedFunctions.h
index b5f0427405a89cadbe1fab58dc251e393aeb26e8..d7cd95a881a6668f33776e7e192d3aeeafe2fa89 100644
--- a/examples/01_BasicExample/myComplicatedFunctions.h
+++ b/examples/01_BasicExample/myComplicatedFunctions.h
@@ -7,10 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file myComplicatedFunctions.h
- *
- * @brief File containing an exemplary class with functions needed in the problem.h.
- *
  **********************************************************************************/
 
 #ifndef MYCOMPLICATEDFUNCTIONS_H
diff --git a/examples/01_BasicExample/problem.h b/examples/01_BasicExample/problem.h
index cb7e9934ad942c6e2cc36a24ab36584835d40852..1c72534fc7d5a0e237b53f3529da92c113022ee7 100644
--- a/examples/01_BasicExample/problem.h
+++ b/examples/01_BasicExample/problem.h
@@ -7,10 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file problem.h
- *
- * @brief File containing an exemplary Model class defining an optimization problem.
- *
  **********************************************************************************/
 
 #pragma once
@@ -73,7 +69,7 @@ Model::get_variables()
     *  This is mostly self-explanatory. The bounds have to be doubles and not NaN.
     */
     /* Variable type:
-    *  There are three variable types in MAiNGO. VT_CONTINUOUS variables, VT_BINARY variables and VT_INTEGER variables. Binary and integer variables should have appriopriate integer bounds.
+    *  There are three variable types in MAiNGO. VT_CONTINUOUS variables, VT_BINARY variables and VT_INTEGER variables.
     *  Double type bounds for binaries and integers will be rounded up for lower bounds and rounded down for upper bounds.
     */
     /* Branching priority:
diff --git a/examples/02_FlowsheetPowerCycle/Thermo/IdealFluidModel.h b/examples/02_FlowsheetPowerCycle/Thermo/IdealFluidModel.h
index fac75a06b22e7e925e067f6d669b161905a07291..e7828446fce39b57d3b7cc8e2082f520eef82617 100644
--- a/examples/02_FlowsheetPowerCycle/Thermo/IdealFluidModel.h
+++ b/examples/02_FlowsheetPowerCycle/Thermo/IdealFluidModel.h
@@ -1,22 +1,13 @@
-/**
- * @file IdealFluidModel.h
- *
- * @brief Auxiliary file containing the definition of the IdealFluidModel class used in  
- *        Case Study II (Regenerative Rankine Cycle) that was published in
- *        D. Bongartz, A. Mitsos: "Deterministic global optimization of process flowsheets in a reduced space using McCormick relaxations", 
- *                                Journal of Global Optimization 69 (2017), 761-796.
- *                                https://link.springer.com/article/10.1007/s10898-017-0547-4
- *        E-mail: amitsos@alum.mit.edu
- *
- * ==============================================================================\n
- * © Process Systems Engineering (AVT.SVT), RWTH Aachen University               \n
- * ==============================================================================\n
+/**********************************************************************************
+ * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University
  *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
  *
- * @author Dominik Bongartz, Jaromil Najman, Susanne Sass, Alexander Mitsos
- * @date 04.11.2019
+ * SPDX-License-Identifier: EPL-2.0
  *
- */
+ **********************************************************************************/
 
 #pragma once
 
diff --git a/examples/02_FlowsheetPowerCycle/Thermo/IdealFluidProperties.h b/examples/02_FlowsheetPowerCycle/Thermo/IdealFluidProperties.h
index 2cd34b6097fc89029c5d9fba8f2e202cb307c864..bdd468e768bff35826cbfc3f4bb0c490e9c8437d 100644
--- a/examples/02_FlowsheetPowerCycle/Thermo/IdealFluidProperties.h
+++ b/examples/02_FlowsheetPowerCycle/Thermo/IdealFluidProperties.h
@@ -1,22 +1,13 @@
-/**
- * @file IdealFluidModel.h
- *
- * @brief Auxiliary file containing the definition of the IdealFluidProperties struct used in  
- *        Case Study II (Regenerative Rankine Cycle) that was published in
- *        D. Bongartz, A. Mitsos: "Deterministic global optimization of process flowsheets in a reduced space using McCormick relaxations", 
- *                                Journal of Global Optimization 69 (2017), 761-796.
- *                                https://link.springer.com/article/10.1007/s10898-017-0547-4
- *        E-mail: amitsos@alum.mit.edu
- *
- * ==============================================================================\n
- * © Process Systems Engineering (AVT.SVT), RWTH Aachen University               \n
- * ==============================================================================\n
+/**********************************************************************************
+ * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University
  *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
  *
- * @author Dominik Bongartz, Jaromil Najman, Susanne Sass, Alexander Mitsos
- * @date 04.11.2019
+ * SPDX-License-Identifier: EPL-2.0
  *
- */
+ **********************************************************************************/
 
 #pragma once
 
diff --git a/examples/02_FlowsheetPowerCycle/Thermo/ThermoModel.h b/examples/02_FlowsheetPowerCycle/Thermo/ThermoModel.h
index e0f02c0f50436b53fb596363ceed3733b71d1421..af0cc137f2271751e439acd8f799d19d55afce6c 100644
--- a/examples/02_FlowsheetPowerCycle/Thermo/ThermoModel.h
+++ b/examples/02_FlowsheetPowerCycle/Thermo/ThermoModel.h
@@ -1,22 +1,13 @@
-/**
- * @file IdealFluidModel.h
- *
- * @brief Auxiliary file containing the definition of the abstract base class ThermoModel used in  
- *        Case Study II (Regenerative Rankine Cycle) that was published in
- *        D. Bongartz, A. Mitsos: "Deterministic global optimization of process flowsheets in a reduced space using McCormick relaxations", 
- *                                Journal of Global Optimization 69 (2017), 761-796.
- *                                https://link.springer.com/article/10.1007/s10898-017-0547-4
- *        E-mail: amitsos@alum.mit.edu
- *
- * ==============================================================================\n
- * © Process Systems Engineering (AVT.SVT), RWTH Aachen University               \n
- * ==============================================================================\n
+/**********************************************************************************
+ * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University
  *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
  *
- * @author Dominik Bongartz, Jaromil Najman, Susanne Sass, Alexander Mitsos
- * @date 04.11.2019
+ * SPDX-License-Identifier: EPL-2.0
  *
- */
+ **********************************************************************************/
 
 #pragma once
 
diff --git a/examples/02_FlowsheetPowerCycle/problemCaseStudy2LCOE.h b/examples/02_FlowsheetPowerCycle/problemCaseStudy2LCOE.h
index 80bd0d2784d520b4ac07e40a593c67060c6e0341..305ba428fb0d48ee179c0c43a12100642fdf2e42 100644
--- a/examples/02_FlowsheetPowerCycle/problemCaseStudy2LCOE.h
+++ b/examples/02_FlowsheetPowerCycle/problemCaseStudy2LCOE.h
@@ -7,16 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file problemCaseStudy2LCOE.h
- *
- * @brief Problem definition for Case Study II (Regenerative Rankine Cycle) for
- *        minimizing the levelized cost of electricity that was published in
- *        D. Bongartz, A. Mitsos: "Deterministic global optimization of process
- *             flowsheets in a reduced space using McCormick relaxations",
- *             Journal of Global Optimization 69 (2017), 761-796.
- *             https://link.springer.com/article/10.1007/s10898-017-0547-4
- *        E-mail: amitsos@alum.mit.edu
- *
  **********************************************************************************/
 
 #pragma once
diff --git a/examples/03_Biobjective/problemEpsCon.h b/examples/03_Biobjective/problemEpsCon.h
index e8de199f0f437ed97cf30b92517bdfbc03074c7e..212c3ab49c1cccea80613391aee7d0fa9b6d7563 100644
--- a/examples/03_Biobjective/problemEpsCon.h
+++ b/examples/03_Biobjective/problemEpsCon.h
@@ -7,11 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file problemEpsCon.h
- *
- * @brief File containing declaration a Model class for an exemplary bi-objective
- *        problem to be solved using the epsilon-constraint method.
- *
  **********************************************************************************/
 
 #pragma once
diff --git a/examples/04_ArtificalNeuralNetwork/problemFullSpace.h b/examples/04_ArtificalNeuralNetwork/problemFullSpace.h
index 7409f15a6963dc178371ddd887172d8a5e835760..50e7fa1e98fba53a4384ce58bd3f16f26e7385c3 100644
--- a/examples/04_ArtificalNeuralNetwork/problemFullSpace.h
+++ b/examples/04_ArtificalNeuralNetwork/problemFullSpace.h
@@ -7,10 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file problemFullSpace.h
- *
- * @brief File containing an exemplary Model class defining an optimization problem.
- *
  **********************************************************************************/
 
 #pragma once
diff --git a/examples/04_ArtificalNeuralNetwork/problemReducedSpace.h b/examples/04_ArtificalNeuralNetwork/problemReducedSpace.h
index adb66402d21a6106d9db972a9f00c1088cbcf050..53f78496f92dfb3d76591ddbae50950974b68ef5 100644
--- a/examples/04_ArtificalNeuralNetwork/problemReducedSpace.h
+++ b/examples/04_ArtificalNeuralNetwork/problemReducedSpace.h
@@ -7,10 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file problemReducedSpace.h
- *
- * @brief File containing an exemplary Model class defining an optimization problem.
- *
  **********************************************************************************/
 
 #pragma once
diff --git a/examples/05_GaussianProcess/problemGpFullspace.h b/examples/05_GaussianProcess/problemGpFullspace.h
index 01962c6f699e9f1c713f753486d0d714cc1be654..abb05b34ebc63510e777f161495855b4645ae6a6 100644
--- a/examples/05_GaussianProcess/problemGpFullspace.h
+++ b/examples/05_GaussianProcess/problemGpFullspace.h
@@ -7,10 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file problemGpFullspace.h
- *
- * @brief File containing an exemplary Model class defining an optimization problem.
- *
  **********************************************************************************/
 
 #pragma once
diff --git a/examples/05_GaussianProcess/problemGpFullspacePrediction.h b/examples/05_GaussianProcess/problemGpFullspacePrediction.h
index e182ab546449696217a96e8999008a4d0bf84266..fd379e72ecc69f7ef5b71dd3fd362142d343f73b 100644
--- a/examples/05_GaussianProcess/problemGpFullspacePrediction.h
+++ b/examples/05_GaussianProcess/problemGpFullspacePrediction.h
@@ -7,10 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file problemGpFullspacePrediction.h
- *
- * @brief File containing an exemplary Model class defining an optimization problem.
- *
  **********************************************************************************/
 
 #pragma once
diff --git a/examples/05_GaussianProcess/problemGpFullspaceVariance.h b/examples/05_GaussianProcess/problemGpFullspaceVariance.h
index a198e1f4e18cd8c951783839b476767e436df89f..961a82f9c6e0c898730c62d76221a8c9f8ee553a 100644
--- a/examples/05_GaussianProcess/problemGpFullspaceVariance.h
+++ b/examples/05_GaussianProcess/problemGpFullspaceVariance.h
@@ -7,10 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file problemGpFullspaceVariance.h
- *
- * @brief File containing an exemplary Model class defining an optimization problem.
- *
  **********************************************************************************/
 
 #pragma once
diff --git a/examples/05_GaussianProcess/problemGpReducedSpace.h b/examples/05_GaussianProcess/problemGpReducedSpace.h
index 70ae3e5c27bbb6ee5a37bfbed295a8b3bfde06df..4bf3255bba84248754ce3eec5ab6e149298afbe7 100644
--- a/examples/05_GaussianProcess/problemGpReducedSpace.h
+++ b/examples/05_GaussianProcess/problemGpReducedSpace.h
@@ -7,10 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file problemGpReducedSpace.h
- *
- * @brief File containing an exemplary Model class defining an optimization problem.
- *
  **********************************************************************************/
 
 #pragma once
diff --git a/examples/06_BayesianOptimization/problemBayesianOptimizationFullspace.h b/examples/06_BayesianOptimization/problemBayesianOptimizationFullspace.h
index 567ee9888eee58c4457336be718fd72b54d8e4e2..467dd25a3c19e5da4a00d9892066f67a42fed4e1 100644
--- a/examples/06_BayesianOptimization/problemBayesianOptimizationFullspace.h
+++ b/examples/06_BayesianOptimization/problemBayesianOptimizationFullspace.h
@@ -7,11 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file problem.h
- *
- * @brief File containing an exemplary Model class defining an optimization problem.
- * @author Artur M. Schweidtmann, Linus Netze, Alexander Mitsos
- * @date 26.05.2020
  **********************************************************************************/
 
 #pragma once
diff --git a/examples/06_BayesianOptimization/problemBayesianOptimizationReducedSpace.h b/examples/06_BayesianOptimization/problemBayesianOptimizationReducedSpace.h
index eaa55048e58bfda4c1f706423f0ba25c15f992e2..680255baa7ff9b1465a985d004d51e1927c4480c 100644
--- a/examples/06_BayesianOptimization/problemBayesianOptimizationReducedSpace.h
+++ b/examples/06_BayesianOptimization/problemBayesianOptimizationReducedSpace.h
@@ -7,11 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file problem.h
- *
- * @brief File containing an exemplary Model class defining an optimization problem.
- * @author Artur M. Schweidtmann, Linus Netze, Alexander Mitsos
- * @date 26.05.2020
  **********************************************************************************/
 
 #pragma once
diff --git a/examples/MAiNGOSettings.txt b/examples/MAiNGOSettings.txt
index 69482600a2c15f613f6059355ecd0dafdbad40db..b616af45e6543f1276a78633e1143077aae3d773 100644
--- a/examples/MAiNGOSettings.txt
+++ b/examples/MAiNGOSettings.txt
@@ -4,10 +4,10 @@
 #----------------------------------------------------Tolerances & termination--------------------------------------------------
 
 #absolute optimality tolerance, has to be >=1e-9    (default: 1e-2)
-epsilonA                                1e-2
+#epsilonA                                1e-2
 
 #relative optimality tolerance, has to be >=1e-9    (default: 1e-2)
-epsilonR                                1e-2
+#epsilonR                                1e-2
 
 #inequality tolerance, has to be >=1e-9    (default: 1e-6)
 #deltaIneq                              1e-6
@@ -34,10 +34,10 @@ epsilonR                                1e-2
 #whether to terminate as soon as the first feasible point was found (no guarantee of global or local optimality!), has to be 0 for FALSE or 1 for TRUE   (default: 0)
 #terminateOnFeasiblePoint               0
 
-#target value for the lower bound on the optimal objective. MAiNGO terminates once LBD>=targetLowerBound (no guarantee of global or local optimality!), has to be <=1e51 and >=-1e51   (default: 1e51)
+#target value for the lower bound on the optimal objective. MAiNGO terminates once LBD>=targetLowerBound - no guarantee of global or local optimality!  (default: ~1.8e308)
 #targetLowerBound                       1e51
 
-#target value for the upper bound on the optimal objective. MAiNGO terminates once UBD<=targetUpperBound (no guarantee of global or local optimality!), has to be <=1e51 and >=-1e51   (default: -1e51)
+#target value for the upper bound on the optimal objective. MAiNGO terminates once UBD<=targetUpperBound - no guarantee of global or local optimality!  (default: ~-1.8e308)
 #targetUpperBound                       -1e51
 
 
@@ -83,7 +83,7 @@ epsilonR                                1e-2
 #----------------------------------------------------------LBP settings--------------------------------------------------------
 
 #This setting also sets the solver for purely (mixed-integer) quadratic/linear problems.
-#LBP solver: SOLVER_MAiNGO = 0, SOLVER_INTERVAL = 1, SOLVER_CPLEX = 2, SOLVER_CLP = 3    (default: 2)
+#LBP solver: LBP_SOLVER_MAiNGO = 0, LBP_SOLVER_INTERVAL = 1, LBP_SOLVER_CPLEX = 2, LBP_SOLVER_CLP = 3    (default: 2 if CPLEX is available, otherwise 3)
 #LBP_solver                             2
 
 #LBP linearization points strategy: LINP_MID = 0, LINP_INCUMBENT = 1, LINP_KELLEY = 2,
@@ -126,8 +126,8 @@ epsilonR                                1e-2
 #------------------------------------------------------------------------------------------------------------------------------
 #----------------------------------------------------------UBP settings--------------------------------------------------------
 
-#UBP solver to be used in pre-processing (i.e., multistart): SOLVER_EVAL = 0, SOLVER_COBYLA = 1, SOLVER_BOBYQA = 2, SOLVER_LBFGS = 3, SOLVER_SLSQP = 4,
-#                                                            SOLVER_IPOPT = 5, SOLVER_KNITRO=6  (default: 5)
+#UBP solver to be used in pre-processing (i.e., multistart): UBP_SOLVER_EVAL = 0, UBP_SOLVER_COBYLA = 1, UBP_SOLVER_BOBYQA = 2, UBP_SOLVER_LBFGS = 3, UBP_SOLVER_SLSQP = 4,
+#                                                            UBP_SOLVER_IPOPT = 5, UBP_SOLVER_KNITRO=6  (default: 5)
 #UBP_solverPreprocessing                5
 
 #maximum number of steps of UBP, has to be at least >=1   (default: 3000)
@@ -136,8 +136,8 @@ epsilonR                                1e-2
 #maximum CPU time for UBP, has to be at least >=0.1   (default: 100)
 #UBP_maxTimePreprocessing               100
 
-#UBP solver to be used during Branch-and-Bound: SOLVER_EVAL = 0, SOLVER_COBYLA = 1, SOLVER_BOBYQA = 2, SOLVER_LBFGS = 3, SOLVER_SLSQP = 4,
-#                                               SOLVER_IPOPT = 5, SOLVER_KNITRO=6  (default: 4)
+#UBP solver to be used during Branch-and-Bound: UBP_SOLVER_EVAL = 0, UBP_SOLVER_COBYLA = 1, UBP_SOLVER_BOBYQA = 2, UBP_SOLVER_LBFGS = 3, UBP_SOLVER_SLSQP = 4,
+#                                               UBP_SOLVER_IPOPT = 5, UBP_SOLVER_KNITRO=6  (default: 4)
 #UBP_solverBab                          4
 
 #maximum number of steps of UBP, has to be at least >=1   (default: 3)
@@ -160,13 +160,13 @@ epsilonR                                1e-2
 #------------------------------------------------------------------------------------------------------------------------------
 #---------------------------------------------------------Output settings------------------------------------------------------
 
-#output of B&B:  VERB_NONE = 0,  VERB_NORMAL = 1,   VERB_ALL = 2    (default: 1)
+#output of B&B:  VERB_NONE = 0 (i.e., nothing at all),  VERB_NORMAL = 1 (i.e., regular progress reporting),   VERB_ALL = 2 (i.e., diagnostic information, very noisy!)    (default: 1)
 #BAB_verbosity                          1
 
-#output of LBP:  VERB_NONE = 0,  VERB_NORMAL = 1,   VERB_ALL = 2    (default: 1)
+#output of LBP:  VERB_NONE = 0 (i.e., nothing at all),  VERB_NORMAL = 1 (i.e., only important warnings),   VERB_ALL = 2 (i.e., diagnostic information, very noisy!)    (default: 1)
 #LBP_verbosity                          1
 
-#output of UBP:  VERB_NONE = 0,  VERB_NORMAL = 1,   VERB_ALL = 2    (default: 1)
+#output of UBP:  VERB_NONE = 0 (i.e., nothing at all),  VERB_NORMAL = 1 (i.e., only important warnings),   VERB_ALL = 2 (i.e., diagnostic information, very noisy!)    (default: 1)
 #UBP_verbosity                          1
 
 #print info every x number of nodes    (default: 100)
@@ -175,34 +175,31 @@ epsilonR                                1e-2
 #write into log file every x nodes    (default: 100)
 #BAB_logFreq                            100
 
-#whether to write to output stream (e.g., console output) and to log: OUTSTREAM_NONE = 0, OUTSTREAM_OUTSTREAM = 1, OUTSTREAM_LOG = 2, OUTSTREAM_BOTH = 3    (default: 3)
-#outstreamVerbosity                     3
-
-#write log file, has to be 0 for FALSE and 1 for TRUE    (default: 1)
-#writeLog                               1
+#whether to write to output stream (e.g., shell) and to log: LOGGING_NONE = 0, LOGGING_OUTSTREAM = 1, LOGGING_FILE = 2, LOGGING_FILE_AND_STREAM = 3    (default: 3)
+#loggingDestination                     3
 
 #write to log/csv file every x number of CPU seconds, works only if writeLog or writeCsv is activated, has to be >=10    (default: 1800)
 #if set to -1, then a file containing all iterations of the B&B will be written at the end of optimization only
 #writeToLogSec                          1800
 
-#write a file MAiNGO_res.txt containing non-standard information about the model (e.g., residuals)
+#write a file MAiNGOresult.txt containing a summary about the best solution point found along with variable bounds, constraint residuals etc.
 #the file will be only written if the problem has been solved successfully, has to be 0 for FALSE and 1 for TRUE    (default: 1)
-#writeResFile                           1
+#writeResultFile                           1
 
-#write csv file of the B&B procedure (it is not written if pure multistart is enabled), has to be 0 for FALSE and 1 for TRUE    (default: 0)
+#write csv files with a summary of the B&B iterations as well as a summary of the solution and problem statistics, has to be 0 for FALSE and 1 for TRUE    (default: 0)
 #writeCsv                               0
 
-#write json file of the B&B procedure, has to be 0 for FALSE and 1 for TRUE    (default: 0)
+#write json file of the solution and problem statistics, has to be 0 for FALSE and 1 for TRUE    (default: 0)
 #writeJson                              0
 
 #whether to write output for every local search during multistart at the root node, has to be 0 for FALSE and 1 for TRUE    (default: 0)
 #PRE_printEveryLocalSearch              0
 
-#write to a different modeling language into the file "MAiNGO_parsed_file" before pre-processing
-#min/max functions will be reformulated to abs(), hyperbolic functions such as tanh will be reformulated to exp(),
+#write to a different modeling language into the file "MAiNGO_written_model" before pre-processing
+#min/max functions will be reformulated with abs(), hyperbolic functions such as tanh will be reformulated with exp(),
 #bounding functions will be ignored, relaxation only constraints will be ignored
-#DON'T WRITE = 0, GAMS = 1, ALE = 2    (default: 0)
-#writeToOtherLanguage                   0
+#LANG_NONE = 0, LANG_ALE = 1, LANG_GAMS = 2    (default: 0)
+#modelWritingLanguage                   0
 
 
 #-------------------------------------------------------------------------------------------------------------------------------
diff --git a/examples/Readme.md b/examples/Readme.md
index c3711aa3094b592fc930dc50150151b453a4485e..89c6050b157567909c5e2aab0d85dae00c92b15b 100644
--- a/examples/Readme.md
+++ b/examples/Readme.md
@@ -7,16 +7,24 @@ If you are new to MAiNGO, we recommend to look at the following documents in thi
 * `doc/html/index.html`: This is the manual for MAiNGO. It includes information on how to install and execute MAiNGO.
 * `01_BasicExample`: This folder contains the most basic example for solving problems with MAiNGO.
 
-Most examples are available in two forms: once for the C++ API of MAiNGO, and once for the text-based input using the ALE library.
+Most examples are available in three forms:
+* as text-based input using the Syntax of the [ALE library](https://git.rwth-aachen.de/avt.svt/public/libale)
+* as C++ problem file for the C++ API of MAiNGO
+* as Python script using the Python API of MAiNGO.
 
-To solve a problem via the text-based ALE input, you need to make sure that the CMake variable `MAiNGO_build_parser` is set to `true`.
+To solve a problem via the text-based ALE input, you need to build MAiNGO with the CMake variable `MAiNGO_build_parser` set to `true`.
 After compiling MAiNGO, you obtain an executable called `MAiNGO` which contains a parser for reading ALE input.
 By default, MAiNGO searches for a problem file called `problem.txt` in the current working directory from which you executed MAiNGO.
-You can specify a differen problem file name (including an absolute or relative path) as a command line argument.
+You can specify a different problem file name (including an absolute or relative path) as a command line argument.
 As an optional second command line argument, you can specify the file name (and path) of a settings file. If no settings file is specified, MAiNGO looks for a file called `MAiNGOSettings.txt`.
 An example for a settings file can be found in this directory (`examples`).
 
-To solve a problem via the C++ API of MAiNGO, you need to make sure that the CMake variable `MAiNGO_build_standalone` is set to `true`.
+To solve a problem via the C++ API of MAiNGO, you need to build MAiNGO with the CMake variable `MAiNGO_build_standalone` set to `true`.
 The problem is implemented by specializing the abstract `MAiNGOModel` class. In the examples, this is accomplished in a dedicated header file (e.g., `01_BasicExample/problem.h`).
 You need to include the header file with your problem definition in the `mainCppApi.cpp` file in this directory and then compile MAiNGO. This will produce an executable called `MAiNGOcpp`.
-When running this executable, the problem will be solved. Here, the only (optional) command line argument is the settings file name.
\ No newline at end of file
+When running this executable, the problem will be solved. Here, the only (optional) command line argument is the settings file name.
+
+To solve a problem via the Python API of MAiNGO, you need to build MAiNGO with its Python interface by setting the CMake variable `MAiNGO_build_python_interface` to `true`,
+which generates a Python package called `pymaingo`. You can then use MAiNGO from Python as shown, e.g., in the file `01_BasicExample\examplePythonInterface.py`, which you can run via `python3 examplePythonInterface.py`.
+For this to work, you need to ensure that the `pymaingo` package is available when executing the above command.
+For example, you can copy the `examplePythonInterface.py` to your build directory, which (after a successful build) should contain a sub-directory called `pymaingo`, and execute the command in your build directory.
\ No newline at end of file
diff --git a/examples/mainAleParser.cpp b/examples/mainAleParser.cpp
index e147266b93ef3436c1a13b29541784de9b7c553d..6117d1e9a179aa2a7d6a4b4354df19a851588610 100644
--- a/examples/mainAleParser.cpp
+++ b/examples/mainAleParser.cpp
@@ -7,10 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file mainAleParser.cpp
- *
- * @brief Main file when using MAiNGO with the ALE parser.
- *
  **********************************************************************************/
 
 #include "MAiNGO.h"
@@ -91,18 +87,20 @@ main(int argc, char *argv[])
     }
 
     // Read settings from file
-    std::string settingsFile;
     if (argc >= 3) {
         if (argc > 3) {
             std::cout << "  Warning: Accept only the problem and settings file names as input. Ignoring additional command line arguments." << std::endl
                       << std::endl;
         }
-        settingsFile = argv[2];
+        const std::string settingsFileName = argv[2];
+        myMAiNGO->read_settings(settingsFileName); // Attempt to read from a settings file with the given name in the current working directory
+    } else {
+        myMAiNGO->read_settings(); // Attempt to read from a settings file with the default name (MAiNGOSettings.txt) in the current working directory
     }
-    myMAiNGO->read_settings(settingsFile);
-    //myMAiNGO->set_log_file_name("my_log_file");                                           // Set name of log file, default name is bab
-    //myMAiNGO->set_csv_file_name("my_csv_iterations_file","my_csv_general_file");          // Set names of csv files, defaults names are bab_Report_Iterations and bab_Report_General
-
+    // myMAiNGO->set_log_file_name("my_log_file.log");                                 // Set name of log file; default name is maingo.log
+    // myMAiNGO->set_iterations_csv_file_name("my_csv_iterations_file.csv");           // Set names of csv iteration files; default name is iterations.csv
+    // myMAiNGO->set_solution_and_statistics_csv_file_name("my_csv_general_file.csv"); // Set names of csv with general information on solution and statistics; default name is statisticsAndSolution.csv
+    // myMAiNGO->set_json_file_name("my_json_file.json");                              // Set names of json file with solution and statistics; default name is statisticsAndSolution.json
 
     // Print MANGO and copyright
     // myMAiNGO->print_MAiNGO(std::cout);
@@ -116,11 +114,10 @@ main(int argc, char *argv[])
     // Solve the problem
     maingo::RETCODE maingoStatus;
     try {
-        // Write gams file, default file name is MAiNGO_GAMS_File, default solver is SCIP, default for using min and max is true,
-        // default for using hyperbolic functions is true, default for ignoring bounding functions is false, default for writing relaxation-only constraints is true
-        // This can also be done by using the MAiNGO Setting writeToOtherLanguage
+        // Optional: Write current model to file in a given modeling language (currently GAMS or ALE).
+        // Alternativey, this is also done by solve() when using the MAiNGO Setting writeToOtherLanguage, although with less possibility for customization of the output.
         MAiNGO_IF_BAB_MANAGER
-            // myMAiNGO->parse_maingo_to_other_language(maingo::PARSING_LANGUAGE::ALE,"my_problem_file_MAiNGO","SCIP",/*useMinMax*/true,/*useTrig*/true,/*ignoreBoundingFuncs*/false,/*useRelOnly*/true);
+            // myMAiNGO->write_model_to_file_in_other_language(maingo::WRITING_LANGUAGE::LANG_ALE,"my_problem_file_MAiNGO.txt","dummySolverName(onlyUsedWhenWritingGAMS)",/*useMinMax*/true,/*useTrig*/true,/*ignoreBoundingFuncs*/true,/*useRelOnly*/false);
         MAiNGO_END_IF
         maingoStatus = myMAiNGO->solve();
     }
diff --git a/examples/mainCppApi.cpp b/examples/mainCppApi.cpp
index 558556bd106fc774ec8693f09761abf9b23d753e..a2c94e174b5aab36979e49b39de1a65388996ce2 100644
--- a/examples/mainCppApi.cpp
+++ b/examples/mainCppApi.cpp
@@ -7,10 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file mainCppApi.cpp
- *
- * @brief Main file for using MAiNGO as a standalone solver.
- *
  **********************************************************************************/
 
 #include "MAiNGO.h"
@@ -89,17 +85,20 @@ main(int argc, char *argv[])
     }
 
     // Read settings from file
-    std::string settingsFile;
     if (argc >= 2) {
         if (argc > 2) {
             std::cout << "  Warning: Accept only the settings file name as input. Ignoring additional command line arguments." << std::endl
                       << std::endl;
         }
-        settingsFile = argv[1];
+        const std::string settingsFileName = argv[1];
+        myMAiNGO->read_settings(settingsFileName); // Attempt to read from a settings file with the given name in the current working directory
+    } else {
+        myMAiNGO->read_settings(); // Attempt to read from a settings file with the default name (MAiNGOSettings.txt) in the current working directory
     }
-    myMAiNGO->read_settings(settingsFile);
-    //myMAiNGO->set_log_file_name("my_log_file");                                           // Set name of log file, default name is bab
-    //myMAiNGO->set_csv_file_name("my_csv_iterations_file","my_csv_general_file");          // Set names of csv files, defaults names are bab_Report_Iterations and bab_Report_General
+    // myMAiNGO->set_log_file_name("my_log_file.log");                                 // Set name of log file; default name is maingo.log
+    // myMAiNGO->set_iterations_csv_file_name("my_csv_iterations_file.csv");           // Set names of csv iteration files; default name is iterations.csv
+    // myMAiNGO->set_solution_and_statistics_csv_file_name("my_csv_general_file.csv"); // Set names of csv with general information on solution and statistics; default name is statisticsAndSolution.csv
+    // myMAiNGO->set_json_file_name("my_json_file.json");                              // Set names of json file with solution and statistics; default name is statisticsAndSolution.json
 
     // myMAiNGO->print_MAiNGO(std::cout);
 
@@ -112,11 +111,10 @@ main(int argc, char *argv[])
     // Solve the problem
     maingo::RETCODE maingoStatus;
     try {
-        // Write gams file, default file name is MAiNGO_GAMS_File, default solver is SCIP, default for using min and max is true,
-        // default for using hyperbolic functions is true, default for ignoring bounding functions is false, default for writing relaxation-only constraints is true
-        // This can also be done by using the MAiNGO Setting writeToOtherLanguage
+        // Optional: Write current model to file in a given modeling language (currently GAMS or ALE).
+        // Alternativey, this is also done by solve() when using the MAiNGO Setting writeToOtherLanguage, although with less possibility for customization of the output.
         MAiNGO_IF_BAB_MANAGER
-            // myMAiNGO->parse_maingo_to_other_language(maingo::PARSING_LANGUAGE::ALE,"my_problem_file_MAiNGO","SCIP",/*useMinMax*/true,/*useTrig*/true,/*ignoreBoundingFuncs*/false,/*useRelOnly*/true);
+            // myMAiNGO->write_model_to_file_in_other_language(maingo::WRITING_LANGUAGE::LANG_ALE,"my_problem_file_MAiNGO.txt","dummySolverName(onlyUsedWhenWritingGAMS)",/*useMinMax*/true,/*useTrig*/true,/*ignoreBoundingFuncs*/true,/*useRelOnly*/false);
         MAiNGO_END_IF
         maingoStatus = myMAiNGO->solve();
         // Use this function instead of solve() for solving bi-objective problems using the epsilon-constraint method (don't forget to include the example problem in problemEpsCon.h):
diff --git a/inc/MAiNGO.h b/inc/MAiNGO.h
index a9df0d508a98cd293a8672b53a5b7cc406edf5ff..8c6aed95f32984e5f48cd2b69b526aa21b701430 100644
--- a/inc/MAiNGO.h
+++ b/inc/MAiNGO.h
@@ -7,10 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file MAiNGO.h
- *
- * @brief File containing declaration of the MAiNGO class.
- *
  **********************************************************************************/
 
 #pragma once
@@ -19,7 +15,6 @@
 #include "MAiNGOmodel.h"
 #include "constraint.h"
 #include "logger.h"
-#include "manual.h"
 #include "returnCodes.h"
 #include "settings.h"
 
@@ -82,69 +77,95 @@ class MAiNGO {
     RETCODE solve_epsilon_constraint();
 
     /**
-        *  @brief Sets an option
+        *  @brief Sets an option with a double value. This function is used for all options.
+        *
+        *  @param[in] option is the option name
+        *  @param[in] value is the option value (as double)
+        */
+    bool set_option(const std::string &option, const double value);
+
+    /**
+        *  @brief Sets an option with a boolean value.
+        *
+        *   Just forwards to version with double value. This is needed for compatibility with the Python interface.
+        *
+        *  @param[in] option is the option name
+        *  @param[in] value is the option value
+        */
+    bool set_option(const std::string &option, const bool value) { return set_option(option, (double)value); }
+
+    /**
+        *  @brief Sets an option with an integer value - just forwards to version with double value
+        *
+        *   Just forwards to version with double value. This is needed for compatibility with the Python interface.
         *
         *  @param[in] option is the option name
         *  @param[in] value is the option value
         */
-    bool set_option(const std::string option, const double value);
+    bool set_option(const std::string &option, const int value) { return set_option(option, (double)value); }
 
     /**
         *  @brief Reads settings from text file.
         *
-        *  @param[in] settingsFile is the file name. If it is empty, the default file name "MAiNGOSettings.txt" will be used instead.
+        *  @param[in] settingsFileName is the file name.
         */
-    void read_settings(std::string settingsFile);
+    void read_settings(const std::string &settingsFileName = "MAiNGOSettings.txt");
 
     /**
-        *  @brief Sets name of the log file.
+        *  @brief Sets output stream onto which logging information may be printed.
         *
-        *  @param[in] logFileName is the file name. If it is empty, the default file name "bab.log" will be used instead.
+        *  @param[in,out] outputStream is the new output stream to be used by MAiNGO.
         */
-    void set_log_file_name(std::string logFileName = "bab");
+    void set_output_stream(std::ostream *const outputStream) { _logger->set_output_stream(outputStream); }
 
     /**
-        *  @brief Sets name of the res file.
+        *  @brief Sets name of the log file into which logging information may be written.
         *
-        *  @param[in] resFileName is the file name. If it is empty, the default file name "MAiNGO_res.txt" will be used instead.
+        *  @param[in] logFileName is the file name.
         */
-    void set_res_file_name(std::string resFileName = "MAiNGO_res");
+    void set_log_file_name(const std::string &logFileName) { _logger->logFileName = logFileName; }
 
     /**
-        *  @brief Sets names of the csv files.
+        *  @brief Sets name of the text file into which information on the solution may be written.
         *
-        *  @param[in] csvIterationsName is the file name, where B&B iterations are written. If it is empty, the default file name "bab_Report_Iterations" will be used instead.
-        *  @param[in] csvGeneralName is the file name, where general optimization information are written. If it is empty, the default file name "bab_Report_General" will be used instead.
+        *  @param[in] resultFileName is the file name.
         */
-    void set_csv_file_name(std::string csvIterationsName = "bab_Report_Iterations", std::string csvGeneralName = "bab_Report_General");
+    void set_result_file_name(const std::string &resultFileName) { _resultFileName = resultFileName; }
 
     /**
-        *  @brief Sets name of the json file.
+        *  @brief Sets names of the csv file into which the solution and statistics may be written.
         *
-        *  @param[in] jsonFileName is the file name. If it is empty, the default file name "bab.json" will be used instead.
+        *  @param[in] csvSolutionStatisticsName is the file name.
         */
-    void set_json_file_name(std::string jsonFileName = "bab");
+    void set_solution_and_statistics_csv_file_name(const std::string &csvSolutionStatisticsName) { _csvSolutionStatisticsName = csvSolutionStatisticsName; }
 
     /**
-        *  @brief Sets output stream.
+        *  @brief Sets names of the csv file into which information on the individual B&B iterations may be written.
         *
-        *  @param[in,out] outputStream is the new output stream to be used by MAiNGO.
+        *  @param[in] csvIterationsName is the file name, where B&B iterations are written.
         */
-    void set_output_stream(std::ostream *outputStream);
+    void set_iterations_csv_file_name(const std::string &csvIterationsName) { _logger->csvIterationsName = csvIterationsName; }
 
     /**
-        *  @brief Writes MAiNGO model to a different modeling language.
+        *  @brief Sets name of the json file into which information on the problem and solution may be written.
         *
-        *  @param[in] parsing_language is the modeling language to which the MAiNGO model is parsed.
-        *  @param[in] fileName is the file name. If it is empty, the default name "MAiNGO_parsed_file" will be used instead.
-        *  @param[in] solverName is the solver name. If it is empty, the default solver SCIP will be called in the gams file.
+        *  @param[in] jsonFileName is the file name.
+        */
+    void set_json_file_name(const std::string &jsonFileName) { _jsonFileName = jsonFileName; }
+
+    /**
+        *  @brief Writes MAiNGO model to a a file in a different modeling language.
+        *
+        *  @param[in] writingLanguage is the modeling language in which the MAiNGO model is to be written.
+        *  @param[in] fileName is the file name. If it is empty, the default name "MAiNGO_written_model" will be used instead with a filename extensions depending on the modeling language.
+        *  @param[in] solverName is the solver name. If it is empty, the default solver SCIP will be used in the gams file.
         *  @param[in] useMinMax if true then min/max is used when writing output, otherwise the equivalent abs forms are used.
         *  @param[in] useTrig if true then sinh, cosh, tanh is used when writing output, otherwise the equivalent exp forms are used.
         *  @param[in] ignoreBoundingFuncs if true then squash_node, pos, neg, bounding_func, lb_func and ub_func are ignored otherwise they will be simply written into the file.
         *  @param[in] writeRelaxationOnly if true then relaxation-only equalities and inequalities will be written into the file as well.
         */
-    void parse_maingo_to_other_language(const PARSING_LANGUAGE parsing_language, const std::string fileName = "MAiNGO_parsed_file", const std::string solverName = "SCIP",
-                                        const bool useMinMax = true, const bool useTrig = true, const bool ignoreBoundingFuncs = false, const bool writeRelaxationOnly = true);
+    void write_model_to_file_in_other_language(const WRITING_LANGUAGE writingLanguage, std::string fileName = "", const std::string solverName = "SCIP",
+                                               const bool useMinMax = true, const bool useTrig = true, const bool ignoreBoundingFuncs = false, const bool writeRelaxationOnly = true);
 
     /**
         * @name MAiNGO getter functions
@@ -210,11 +231,6 @@ class MAiNGO {
         */
     RETCODE get_status() const;
 
-    /**
-        *  @brief Function returning the additional model outputs at solution point
-        */
-    std::vector<std::pair<std::string, double>> get_additional_outputs_at_solution_point();
-
     /**
         *  @brief Function returning all model function values at solution point.
         *         The ordering of the returned vector is:
@@ -225,11 +241,16 @@ class MAiNGO {
         *         vector[(1+ineq+eq+ineqRelOnly) to (1+ineq+eq+ineqRelOnly+eqRelOnly)]: relaxation only equalities ( + constant rel only equalities )
         *         vector[(1+ineq+eq+ineqRelOnly+eqRelOnly) to (1+ineq+eq+ineqRelOnly+eqRelOnly+ineqSquash)]: squash inequalities ( + constant squash inequalities )
         */
-    std::vector<double> get_model_at_solution_point();
+    std::vector<double> evaluate_model_at_solution_point();
+
+    /**
+        *  @brief Function returning the additional model outputs at the solution point
+        */
+    std::vector<std::pair<std::string, double>> evaluate_additional_outputs_at_solution_point();
 
     /**
         *  @brief Function telling whether a point is feasible or not and returning values of the set model of the objective and all constraints at a point.
-        *         The ordering of the vector returnResult is:
+        *         The ordering of the vector containing the values of the objective and constraints is:
         *         vector[0]: objective
         *         vector[1 to (1+ineq)]: inequalities ( + constant inequalities )
         *         vector[(1+ineq) to (1+ineq+eq)]: equalities ( + constant equalities )
@@ -238,17 +259,16 @@ class MAiNGO {
         *         vector[(1+ineq+eq+ineqRelOnly+eqRelOnly) to (1+ineq+eq+ineqRelOnly+eqRelOnly+ineqSquash)]: squash inequalities ( + constant squash inequalities )
         *
         *  @param[in] point is the point to be evaluated
-        *  @param[out] returnResult holds the objective and constraints as described above
-        *  @return returns whether the point is feasible or not
+        *  @return returns a tuple consisting of a vector containing the objective value and all constraint residuas, as well as a bool indicating whether the point is feasible or not
         */
-    bool get_model_at_point(const std::vector<double> &point, std::vector<double> &returnResult);
+    std::pair<std::vector<double>, bool> evaluate_model_at_point(const std::vector<double> &point);
 
     /**
         *  @brief Function returning values of the additional outputs of the set model at a point
         *
         *  @param[in] point is the point to be evaluated
         */
-    std::vector<std::pair<std::string, double>> get_additional_outputs_at_point(const std::vector<double> &point);
+    std::vector<std::pair<std::string, double>> evaluate_additional_outputs_at_point(const std::vector<double> &point);
     /**@}*/
 
     /**
@@ -299,7 +319,16 @@ class MAiNGO {
         *  @param[out] tmpFunctions holds all non-constant constraints (and objective(s))
         *  @param[in] tmpDAGVars holds all DAG variables
         */
-    void _classify_constraints(std::vector<mc::FFVar> &tmpFunctions, const std::vector<mc::FFVar> &tmpDAGVars);
+    void _classify_objective_and_constraints(std::vector<mc::FFVar> &tmpFunctions, const std::vector<mc::FFVar> &tmpDAGVars);
+
+    /**
+        *  @brief Ensures that the objective function stored in the _modelOutput is valid.
+        *         In particular, if _modelOutput is an empty vector, a constant will be used as objective function.
+        *         If the objective function is a constant, this functions makes sure it is still correctly associated with the DAG.
+        *
+        *  @param[in] dummyVariable is a valid optimization variable that is used to ensure that a potential constant objective is associated to the correct DAG
+        */
+    void _ensure_valid_objective_function_using_dummy_variable(const mc::FFVar &dummyVariable);
 
     /**
         *  @brief Checks if the constraints are non-zero (constant) after the DAG has been constructed (this may happen if some FFVars are equal).
@@ -387,13 +416,14 @@ class MAiNGO {
 
     /**
         *  @brief Writes logging and csv information to disk when an error occurs
+        *  @param[in] errorMessage is an error message to be appended
         */
-    void _write_files_error(const std::string &error);
+    void _write_files_error(const std::string &errorMessage);
 
     /**
         *  @brief Write csv summaries to disk
         */
-    void _write_csv_general();
+    void _write_solution_and_statistics_csv();
 
     /**
         *  @brief Write json summaries to disk
@@ -404,7 +434,7 @@ class MAiNGO {
         *  @brief Write res file to disk containing non-standard model information such as, e.g., residuals
         *         It will be only written if the problem has been solved successfully
         */
-    void _write_res_file();
+    void _write_result_file();
     /**@}*/
 
     /**
@@ -496,10 +526,10 @@ class MAiNGO {
     /**
         * @brief Write MAiNGO header for a different modeling language
         *
-        * @param[in] parsing_language is the desired modeling language
+        * @param[in] writingLanguage is the desired modeling language
         * @param[in,out] file is the file to be written to
         */
-    void _print_MAiNGO_header_for_other_modeling_language(const PARSING_LANGUAGE parsing_language, std::ofstream &file);
+    void _print_MAiNGO_header_for_other_modeling_language(const WRITING_LANGUAGE writingLanguage, std::ofstream &file);
     /**@}*/
 
     /**
@@ -524,74 +554,74 @@ class MAiNGO {
 
     /**
         *  @brief Function telling whether a point is feasible or not and returning values of the set model of the objective and all constraints at a point.
-        *         The ordering of the vector returnResult is:
+        *         The ordering of the vector containing the values of the objective and constraints is:
         *         vector[0]: objective
-        *         vector[1 to (1+ineq)]: inequalities
-        *         vector[(1+ineq) to (1+ineq+eq)]: equalities
-        *         vector[(1+ineq+eq) to (1+ineq+eq+ineqRelOnly)]: relaxation only inequalities
-        *         vector[(1+ineq+eq+ineqRelOnly) to (1+ineq+eq+ineqRelOnly+eqRelOnly)]: relaxation only equalities
+        *         vector[1 to (1+ineq)]: inequalities ( + constant inequalities )
+        *         vector[(1+ineq) to (1+ineq+eq)]: equalities ( + constant equalities )
+        *         vector[(1+ineq+eq) to (1+ineq+eq+ineqRelOnly)]: relaxation only inequalities ( + constant rel only inequalities )
+        *         vector[(1+ineq+eq+ineqRelOnly) to (1+ineq+eq+ineqRelOnly+eqRelOnly)]: relaxation only equalities ( + constant rel only equalities )
         *         vector[(1+ineq+eq+ineqRelOnly+eqRelOnly) to (1+ineq+eq+ineqRelOnly+eqRelOnly+ineqSquash)]: squash inequalities ( + constant squash inequalities )
         *
         *  @param[in] point is the point to be evaluated
-        *  @param[out] returnResult holds the objective and constraints as described above
-        *  @return returns whether the point is feasible or not
+        *  @return returns a tuple consisting of a vector containing the objective value and all constraint residuas, as well as a bool indicating whether the point is feasible or not
         */
-    bool _get_model_at_point(const std::vector<double> &point, std::vector<double> &returnResult);
+    std::pair<std::vector<double>, bool> _evaluate_model_at_point(const std::vector<double> &point);
 
     /**
         *  @brief Function returning values of the additional outputs of the set model at a point
         *
         *  @param[in] point is the point to be evaluated
         */
-    std::vector<std::pair<std::string, double>> _get_additional_outputs(const std::vector<double> &point);
+    std::vector<std::pair<std::string, double>> _evaluate_additional_outputs_at_point(const std::vector<double> &point);
 
     /**
         * @name Internal variables for storing information on the problem
         */
     /**@{*/
-    mc::FFGraph _DAG;                                         /*!< the actual DAG */
-    std::vector<mc::FFVar> _DAGvars;                          /*!< DAG variables */
-    std::vector<mc::FFVar> _DAGfunctions;                     /*!< list of all non-constant functions in the DAG except for additional output */
-    std::vector<mc::FFVar> _DAGoutputFunctions;               /*!< list of all constant functions needed for additional output computation */
-    std::vector<mc::FFVar> _resultVars;                       /*!< vector holding evaluated FFVar Objects to not lose pointers */
-    std::vector<OptimizationVariable> _originalVariables;     /*!< vector holding the original user-defined optimization variables (initial bounds, variable type, name, branching priority) */
-    std::vector<OptimizationVariable *> _infeasibleVariables; /*!< vector containing pointers to variables in _originalVariables with empty host set */
-    std::vector<OptimizationVariable> _variables;             /*!< vector holding the optimization variables participating in the problem (initial bounds, variable type, name, branching priority) */
-    std::vector<bool> _removedVariables;                      /*!< vector holding the information on which variable has been removed from the problem */
-    std::vector<std::string> _uniqueNamesOriginal;            /*!< auxiliary needed for parsing MAiNGO to a different modeling language since in most cases unique variable names are required */
-    std::vector<std::string> _uniqueNames;                    /*!< auxiliary needed for parsing MAiNGO to a different modeling language since in most cases unique variable names are required. It is holding the not removed variables */
-    std::vector<double> _initialPointOriginal;                /*!< vector holding the original initial point */
-    std::vector<double> _initialPoint;                        /*!< vector holding the initial point */
-    unsigned _nvarOriginal;                                   /*!< number of original user-defined optimization variables */
-    unsigned _nvarOriginalContinuous;                         /*!< number of original user-defined continuous optimization variables */
-    unsigned _nvarOriginalBinary;                             /*!< number of original user-defined binary optimization variables */
-    unsigned _nvarOriginalInteger;                            /*!< number of original user-defined integer optimization variables */
-    unsigned _nvar;                                           /*!< number of not-removed optimization variables participating in the problem */
-    unsigned _nineq;                                          /*!< number of non-constant inequalities */
-    unsigned _neq;                                            /*!< number of non-constant equalities */
-    unsigned _nineqRelaxationOnly;                            /*!< number of non-constant relaxation only inequalities */
-    unsigned _neqRelaxationOnly;                              /*!< number of non-constant relaxation only equalities */
-    unsigned _nineqSquash;                                    /*!< number of non-constant inequalities used when the squash_node function is applied in the model */
-    unsigned _noutputVariables;                               /*!< number of non-constant output variables */
-    unsigned _nconstantIneq;                                  /*!< number of constant inequalities */
-    unsigned _nconstantEq;                                    /*!< number of constant equalities */
-    unsigned _nconstantIneqRelOnly;                           /*!< number of constant relaxation only inequalities */
-    unsigned _nconstantEqRelOnly;                             /*!< number of constant relaxation only equalities */
-    unsigned _nconstantIneqSquash;                            /*!< number of constant inequalities used when the squash_node function is applied in the model */
-    unsigned _nconstantOutputVariables;                       /*!< number of constant output variables */
-    std::vector<std::string> _outputNames;                    /*!< strings for output variables */
-    std::shared_ptr<MAiNGOmodel> _myFFVARmodel;               /*!< pointer to a MAiNGOmodel object which will be evaluated with mc::FFVar variables */
-    EvaluationContainer _modelOutput;                         /*!< object holding the actual modelOutput in mc::FFVar, it is needed to not lose information on pointers */
-    bool _readyToSolve;                                       /*!< flag storing whether a model has been successfully specified and is ready to solve */
-    bool _DAGconstructed;                                     /*!< flag storing whether the DAG has already been constructed */
-    bool _variablesFeasible;                                  /*!< flag indicating whether the variable bounds define a non-empty set */
-    bool _constantConstraintsFeasible;                        /*!< flag indicating whether the constant constraints are feasible */
-    std::vector<Constraint> _originalConstraints;             /*!< vector holding all constraint (constant and non-constant) as they were read in by the MAiNGOModel evaluate() function. This is used when printing to other language */
-    std::vector<Constraint> _constantConstraints;             /*!< vector holding all constant constraints. This is used for convenient printing and writing of output */
-    std::vector<Constraint> _nonconstantConstraints;          /*!< vector holding all non-constant constraints. The pointer to this vector is provided to the underlying LBD wrapper to ease work with constraints. */
-    std::vector<Constraint> _nonconstantConstraintsUBP;       /*!< vector holding all non-constant constraints for the UBS solver. This vector has only obj, ineq, squash ineq and eq (in this order) and is passed to the UBD wrappers. */
-    std::vector<Constraint> _constantOutputs;                 /*!< vector holding all constant outputs */
-    std::vector<Constraint> _nonconstantOutputs;              /*!< vector holding all non-constant outputs */
+    mc::FFGraph _DAG;                                                    /*!< the actual DAG */
+    std::vector<mc::FFVar> _DAGvars;                                     /*!< DAG variables */
+    std::vector<mc::FFVar> _DAGfunctions;                                /*!< list of all non-constant functions in the DAG except for additional output */
+    std::vector<mc::FFVar> _DAGoutputFunctions;                          /*!< list of all constant functions needed for additional output computation */
+    std::vector<mc::FFVar> _resultVars;                                  /*!< vector holding evaluated FFVar Objects to not lose pointers */
+    std::vector<OptimizationVariable> _originalVariables;                /*!< vector holding the original user-defined optimization variables (initial bounds, variable type, name, branching priority) */
+    std::vector<OptimizationVariable *> _infeasibleVariables;            /*!< vector containing pointers to variables in _originalVariables with empty host set */
+    std::vector<OptimizationVariable> _variables;                        /*!< vector holding the optimization variables participating in the problem (initial bounds, variable type, name, branching priority) */
+    std::vector<bool> _removedVariables;                                 /*!< vector holding the information on which variable has been removed from the problem */
+    std::vector<std::string> _uniqueNamesOriginal;                       /*!< auxiliary needed for parsing MAiNGO to a different modeling language since in most cases unique variable names are required */
+    std::vector<std::string> _uniqueNames;                               /*!< auxiliary needed for parsing MAiNGO to a different modeling language since in most cases unique variable names are required. It is holding the not removed variables */
+    std::vector<double> _initialPointOriginal;                           /*!< vector holding the original initial point */
+    std::vector<double> _initialPoint;                                   /*!< vector holding the initial point */
+    unsigned _nvarOriginal;                                              /*!< number of original user-defined optimization variables */
+    unsigned _nvarOriginalContinuous;                                    /*!< number of original user-defined continuous optimization variables */
+    unsigned _nvarOriginalBinary;                                        /*!< number of original user-defined binary optimization variables */
+    unsigned _nvarOriginalInteger;                                       /*!< number of original user-defined integer optimization variables */
+    unsigned _nvar;                                                      /*!< number of not-removed optimization variables participating in the problem */
+    unsigned _nineq;                                                     /*!< number of non-constant inequalities */
+    unsigned _neq;                                                       /*!< number of non-constant equalities */
+    unsigned _nineqRelaxationOnly;                                       /*!< number of non-constant relaxation only inequalities */
+    unsigned _neqRelaxationOnly;                                         /*!< number of non-constant relaxation only equalities */
+    unsigned _nineqSquash;                                               /*!< number of non-constant inequalities used when the squash_node function is applied in the model */
+    unsigned _noutputVariables;                                          /*!< number of non-constant output variables */
+    unsigned _nconstantIneq;                                             /*!< number of constant inequalities */
+    unsigned _nconstantEq;                                               /*!< number of constant equalities */
+    unsigned _nconstantIneqRelOnly;                                      /*!< number of constant relaxation only inequalities */
+    unsigned _nconstantEqRelOnly;                                        /*!< number of constant relaxation only equalities */
+    unsigned _nconstantIneqSquash;                                       /*!< number of constant inequalities used when the squash_node function is applied in the model */
+    unsigned _nconstantOutputVariables;                                  /*!< number of constant output variables */
+    std::vector<std::string> _outputNames;                               /*!< strings for output variables */
+    std::shared_ptr<MAiNGOmodel> _myFFVARmodel;                          /*!< pointer to a MAiNGOmodel object which will be evaluated with mc::FFVar variables */
+    EvaluationContainer _modelOutput;                                    /*!< object holding the actual modelOutput in mc::FFVar, it is needed to not lose information on pointers */
+    bool _readyToSolve;                                                  /*!< flag storing whether a model has been successfully specified and is ready to solve */
+    bool _DAGconstructed;                                                /*!< flag storing whether the DAG has already been constructed */
+    bool _variablesFeasible;                                             /*!< flag indicating whether the variable bounds define a non-empty set */
+    bool _constantConstraintsFeasible;                                   /*!< flag indicating whether the constant constraints are feasible */
+    bool _feasibilityProblem;                                            /*!< flag indicating whether the current problem is a feasibility problem, i.e., no objective has been specified */
+    std::shared_ptr<std::vector<Constraint>> _originalConstraints;       /*!< vector holding all constraint (constant and non-constant) as they were read in by the MAiNGOModel evaluate() function. This is used when printing to other language */
+    std::shared_ptr<std::vector<Constraint>> _constantConstraints;       /*!< vector holding all constant constraints. This is used for convenient printing and writing of output */
+    std::shared_ptr<std::vector<Constraint>> _nonconstantConstraints;    /*!< vector holding all non-constant constraints. The pointer to this vector is provided to the underlying LBD wrapper to ease work with constraints. */
+    std::shared_ptr<std::vector<Constraint>> _nonconstantConstraintsUBP; /*!< vector holding all non-constant constraints for the UBS solver. This vector has only obj, ineq, squash ineq and eq (in this order) and is passed to the UBD wrappers. */
+    std::shared_ptr<std::vector<Constraint>> _constantOutputs;           /*!< vector holding all constant outputs */
+    std::shared_ptr<std::vector<Constraint>> _nonconstantOutputs;        /*!< vector holding all non-constant outputs */
     /**@}*/
 
     /**
@@ -638,9 +668,22 @@ class MAiNGO {
     std::shared_ptr<bab::BranchAndBound> _myBaB;         /*!< pointer to B&B solver */
     /**@}*/
 
-    Settings _maingoSettings;         /*!< object storing settings, may change during solution */
-    Settings _maingoOriginalSettings; /*!< object storing original settings */
-    Logger _logger;                   /*!< object taking care of printing and saving information to logs */
+    /**
+        * @name Settings
+        */
+    /**@{*/
+    std::shared_ptr<Settings> _maingoSettings = std::make_shared<Settings>(); /*!< object storing settings, may change during solution */
+    Settings _maingoOriginalSettings;                                         /*!< object storing original settings */
+
+    /**
+        * @name Output
+        */
+    /**@{*/
+    std::shared_ptr<Logger> _logger        = std::make_shared<Logger>();   /*!< object taking care of printing and saving information to logs */
+    std::string _jsonFileName              = "statisticsAndSolution.json"; /*!< name of the json file into which information about the problem and solution may be written */
+    std::string _resultFileName            = "MAiNGOresult.txt";           /*!< name of the text file into which the results (solution point, constraints residuals etc.) may be written */
+    std::string _csvSolutionStatisticsName = "statisticsAndSolution.csv";  /*!< name of the csv file into which the solution as well as statistics may be written */
+    /**@}*/
 
     /**
         * @name Auxiliaries variables for storing output and logging information
diff --git a/inc/MAiNGOException.h b/inc/MAiNGOException.h
new file mode 100644
index 0000000000000000000000000000000000000000..61286c14dd264b1715e75e5d26ccbfb6cb925d8b
--- /dev/null
+++ b/inc/MAiNGOException.h
@@ -0,0 +1,116 @@
+/**********************************************************************************
+ * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ **********************************************************************************/
+
+#pragma once
+
+#include "babNode.h"
+
+#include <exception>
+#include <sstream>
+#include <string>
+#include <typeinfo>
+
+
+namespace maingo {
+
+
+/**
+* @class MAiNGOException
+* @brief This class defines the exceptions thrown by MAiNGO
+*
+* The class contains different constructors that allow incorporating information about the error.
+* The minimum requirement is an error message. Additionally, information can be given about a
+* branch-and-bound node that the error occurred in, or information on the original exception can be included
+* in case the MAiNGOException is thrown in response to another type of exception.
+*
+*/
+class MAiNGOException: public std::exception {
+
+  public:
+    MAiNGOException()                       = delete;
+    MAiNGOException(const MAiNGOException&) = default;
+    MAiNGOException(MAiNGOException&&)      = default;
+    MAiNGOException& operator=(const MAiNGOException&) = default;
+    MAiNGOException& operator=(MAiNGOException&&) = default;
+    virtual ~MAiNGOException()                    = default;
+
+    explicit MAiNGOException(const std::string& errorMessage)
+    {
+        _construct_complete_error_message(errorMessage, nullptr, nullptr);
+    }
+
+    MAiNGOException(const std::string& errorMessage, const babBase::BabNode& nodeThatErrorOccurredIn)
+    {
+        _construct_complete_error_message(errorMessage, nullptr, &nodeThatErrorOccurredIn);
+    }
+
+    MAiNGOException(const std::string& errorMessage, const std::exception& originalException)
+    {
+        _construct_complete_error_message(errorMessage, &originalException, nullptr);
+    }
+
+    MAiNGOException(const std::string& errorMessage, const std::exception& originalException, const babBase::BabNode& nodeThatErrorOccurredIn)
+    {
+        _construct_complete_error_message(errorMessage, &originalException, &nodeThatErrorOccurredIn);
+    }
+
+    const char* what() const noexcept override
+    {
+        return _errorMessage.c_str();
+    }
+
+
+  private:
+    std::string _errorMessage{""};
+
+    void _construct_complete_error_message(const std::string& errorMessage, const std::exception* originalException, const babBase::BabNode* nodeThatErrorOccurredIn)
+    {
+        std::ostringstream errorMessageStream;
+
+        _append_original_exception_info_to_message(originalException, errorMessageStream);
+        _append_current_error_message_to_message(errorMessage, errorMessageStream);
+        _append_node_info_to_message(nodeThatErrorOccurredIn, errorMessageStream);
+
+        _errorMessage = errorMessageStream.str();
+    }
+
+    void _append_current_error_message_to_message(const std::string& currentErrorMessage, std::ostringstream& completeErrorMessage)
+    {
+        completeErrorMessage << currentErrorMessage;
+    }
+
+    void _append_original_exception_info_to_message(const std::exception* originalException, std::ostringstream& completeErrorMessage)
+    {
+        if (originalException) {
+            if (typeid(*originalException).name() != typeid(*this).name()) {
+                completeErrorMessage << "  Original exception type: " << typeid(*originalException).name() << ": " << std::endl
+                                     << "   ";
+            }
+            completeErrorMessage << originalException->what() << std::endl;
+        }
+    }
+
+    void _append_node_info_to_message(const babBase::BabNode* nodeThatErrorOccurredIn, std::ostringstream& completeErrorMessage)
+    {
+        if (nodeThatErrorOccurredIn) {
+            std::vector<double> lowerVarBounds(nodeThatErrorOccurredIn->get_lower_bounds()), upperVarBounds(nodeThatErrorOccurredIn->get_upper_bounds());
+            completeErrorMessage << std::endl
+                                 << "  Exception was thrown while processing node no. " << nodeThatErrorOccurredIn->get_ID() << ":";
+            for (size_t i = 0; i < lowerVarBounds.size(); i++) {
+                completeErrorMessage << std::endl
+                                     << "    x(" << i << "): " << std::setprecision(16) << lowerVarBounds[i] << ":" << upperVarBounds[i];
+            }
+        }
+    }
+};
+
+
+}    // end namespace maingo
\ No newline at end of file
diff --git a/inc/MAiNGOMpiException.h b/inc/MAiNGOMpiException.h
new file mode 100644
index 0000000000000000000000000000000000000000..98c5a82992c2c0497989b652a02f9c3923ddfc61
--- /dev/null
+++ b/inc/MAiNGOMpiException.h
@@ -0,0 +1,79 @@
+/**********************************************************************************
+ * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ **********************************************************************************/
+
+#ifdef HAVE_MAiNGO_MPI
+#pragma once
+
+#include "MAiNGOException.h"
+#include "babNode.h"
+
+
+namespace maingo {
+
+
+/**
+* @class MAiNGOMpiException
+* @brief This class defines the exceptions thrown by MAiNGO when using MPI
+*
+* In addition to the MAiNGOException class, it contains an enum to distinguish which process the exception came from.
+* At the point where an exception becomes relevant to the MPI communication scheme (i.e., a process needs to inform 
+* another process that something went wrong - or a process receives a message from another process stating that something
+* went wrong - these MAiNGOMpiExceptions are used. Such an exception can be newly created or converted from a MAiNGOException.
+*/
+class MAiNGOMpiException: public MAiNGOException {
+
+  public:
+    MAiNGOMpiException()                          = delete;
+    MAiNGOMpiException(const MAiNGOMpiException&) = default;
+    MAiNGOMpiException(MAiNGOMpiException&&)      = default;
+    MAiNGOMpiException& operator=(const MAiNGOMpiException&) = default;
+    MAiNGOMpiException& operator=(MAiNGOMpiException&&) = default;
+    ~MAiNGOMpiException()                               = default;
+
+    enum ORIGIN {
+        ORIGIN_ME = 1, /*!< An exception (not necessarily this one) was originally thrown by the current process */
+        ORIGIN_OTHER   /*!< An exception was thrown by another process and the present exception was thrown in responce to a corresponding MPI message */
+    };
+
+    MAiNGOMpiException(const std::string& errorMessage, const ORIGIN origin):
+        MAiNGOException(errorMessage), _origin(origin)
+    {
+    }
+
+    MAiNGOMpiException(const std::string& errorMessage, const babBase::BabNode& nodeThatProblemOccurredIn, const ORIGIN origin):
+        MAiNGOException(errorMessage, nodeThatProblemOccurredIn), _origin(origin)
+    {
+    }
+
+    MAiNGOMpiException(const std::string& errorMessage, const std::exception& originalException, const ORIGIN origin):
+        MAiNGOException(errorMessage, originalException), _origin(origin)
+    {
+    }
+
+    MAiNGOMpiException(const std::string& errorMessage, const std::exception& originalException, const babBase::BabNode& nodeThatProblemOccurredIn, const ORIGIN origin):
+        MAiNGOException(errorMessage, originalException, nodeThatProblemOccurredIn), _origin(origin)
+    {
+    }
+
+    MAiNGOMpiException(MAiNGOException& originalException, ORIGIN origin):
+        MAiNGOException(originalException), _origin(origin)
+    {
+    }
+
+    ORIGIN origin() const noexcept { return _origin; }
+
+  private:
+    ORIGIN _origin;
+};
+
+
+}    // end namespace maingo
+#endif
\ No newline at end of file
diff --git a/inc/MAiNGOdebug.h b/inc/MAiNGOdebug.h
index 01ebb8eabb88404d75719e0336aab84ae8c8ed77..f19399448533cb34d86704c06e9013c4ca50f32a 100644
--- a/inc/MAiNGOdebug.h
+++ b/inc/MAiNGOdebug.h
@@ -7,10 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file MAiNGOdebug.h
- *
- * @brief File declaring pre-processor variables for debugging
- *
  **********************************************************************************/
 
 #pragma once
diff --git a/inc/MAiNGOevaluator.h b/inc/MAiNGOevaluator.h
index 8c26fb0789b29f514ad202fae2f0755ab46e5158..43d711242961f7f7e3d7c7ca3b6074c06884c534 100644
--- a/inc/MAiNGOevaluator.h
+++ b/inc/MAiNGOevaluator.h
@@ -7,16 +7,11 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file maingoEvaluator.h
- *
- * @brief File containing the MaingoEvaluator class that evaluates ALE expression
- *        with mc:FFVar.
- *
  **********************************************************************************/
 
 #pragma once
 
-#include "exceptions.h"
+#include "MAiNGOException.h"
 #include "symbol_table.hpp"
 
 #include "util/evaluator.hpp"
diff --git a/inc/MAiNGOmodel.h b/inc/MAiNGOmodel.h
index ce9e5afe5a4790e0d0eef9a17bf66caaca8071ff..905892f3258811b50e50ec1293d2fc14a8569989 100644
--- a/inc/MAiNGOmodel.h
+++ b/inc/MAiNGOmodel.h
@@ -7,11 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file MAiNGOmodel.h
- *
- * @brief File containing declaration of the MAiNGOmodel class that needs to be
- *        specialized when specifying models via the C++ API of MAiNGO.
- *
  **********************************************************************************/
 
 #pragma once
diff --git a/inc/MAiNGOmodelEpsCon.h b/inc/MAiNGOmodelEpsCon.h
index 31b93c13d7e6d9747ebcce7ec028db3bb32362d6..182a4e154c504bb396b4a898583e6c9b971b929d 100644
--- a/inc/MAiNGOmodelEpsCon.h
+++ b/inc/MAiNGOmodelEpsCon.h
@@ -7,12 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file MAiNGOmodelEpsCon.h
- *
- * @brief File containing declaration of the MAiNGOmodelEpsCon class,
- *        which specializes the MAiNGOmodel class for bi-objective problems
- *        to be solved with the epsilon-constraint method.
- *
  **********************************************************************************/
 
 #pragma once
diff --git a/inc/aleModel.h b/inc/aleModel.h
index 4b11e24cdd5addf51cc99267cbb78822ab9580cc..110a7a4ea1a980b3c8f65292ada0d0a67ff2c1fe 100644
--- a/inc/aleModel.h
+++ b/inc/aleModel.h
@@ -7,17 +7,11 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file aleModel.h
- *
- * @brief File containing the AleModel specialization of MAiNGModel needed for the
- *        ALE parser.
- *
  **********************************************************************************/
 
 #pragma once
 
 #include "MAiNGOmodel.h"
-#include "exceptions.h"
 #include "program.h"
 
 #include "symbol_table.hpp"
diff --git a/inc/bab.h b/inc/bab.h
index ee09b9b751a99469ea07829269e6ba93b635d314..b35ad45fb9c803e4cbd11e31b0073d4837d4484a 100644
--- a/inc/bab.h
+++ b/inc/bab.h
@@ -7,11 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file bab.h
- *
- * @brief File declaring the BranchAndBound solver class which manages the tree
- *        and the respective sub-solvers.
- *
  **********************************************************************************/
 
 #pragma once
@@ -20,7 +15,7 @@
 #include "logger.h"
 #include "mpiUtilities.h"
 #ifdef HAVE_MAiNGO_MPI
-#include "exceptions.h"
+#include "MAiNGOMpiException.h"
 #endif
 
 #include "babBrancher.h"
@@ -74,7 +69,7 @@ class BranchAndBound {
         * @param[in] nvarWOaux is the number of optimization variables without the additional auxiliary variables added by the LBP_addAuxiliaryVars option
         */
     BranchAndBound(const std::vector<babBase::OptimizationVariable> &variables, std::shared_ptr<lbp::LowerBoundingSolver> LBSIn, std::shared_ptr<ubp::UpperBoundingSolver> UBSIn,
-                   Settings *settingsIn, Logger *loggerIn, const unsigned nvarWOaux);
+                   std::shared_ptr<Settings> settingsIn, std::shared_ptr<Logger> loggerIn, const unsigned nvarWOaux);
 
     /**
         * @brief Destructor
@@ -279,7 +274,7 @@ class BranchAndBound {
         *
         * @param[in] e is the exception to be handled
         */
-    void _handle_exception(maingo::MAiNGOMpiException &e);
+    void _communicate_exception_and_throw(const maingo::MAiNGOMpiException &e);
 
     /**
         * @brief Auxiliary function for receiving solved problems from workers
@@ -366,7 +361,7 @@ class BranchAndBound {
     std::shared_ptr<ubp::UpperBoundingSolver> _UBS; /*!< pointer to upper bounding solver */
     std::shared_ptr<lbp::LowerBoundingSolver> _LBS; /*!< pointer to lower bounding solver */
 
-    Settings *_maingoSettings; /*!< pointer to object storing settings */
+    std::shared_ptr<Settings> _maingoSettings; /*!< pointer to object storing settings */
 
     /**
         * @name Internal variables for storing problem parameters
@@ -429,13 +424,13 @@ class BranchAndBound {
         * @name Internal variables used for printing
         */
     /**@{*/
-    unsigned _linesprinted;       /*!< number of lines printed */
-    unsigned _iterations;         /*!< number of iterations */
-    unsigned _iterationsgap;      /*!< number defining the gap between two outputs*/
-    bool _printNewIncumbent;      /*!< auxiliary variable to make sure a line is printed whenever a new incumbent, which is better than the old one for more than the tolerances, is found */
-    unsigned _writeToLogEverySec; /*!< auxiliary variable to make sure we print to log every writeToLogSec seconds */
-    Logger *_logger;              /*!< pointer to MAiNGO logger */
-                                  /**@}*/
+    unsigned _linesprinted;          /*!< number of lines printed */
+    unsigned _iterations;            /*!< number of iterations */
+    unsigned _iterationsgap;         /*!< number defining the gap between two outputs*/
+    bool _printNewIncumbent;         /*!< auxiliary variable to make sure a line is printed whenever a new incumbent, which is better than the old one for more than the tolerances, is found */
+    unsigned _writeToLogEverySec;    /*!< auxiliary variable to make sure we print to log every writeToLogSec seconds */
+    std::shared_ptr<Logger> _logger; /*!< pointer to MAiNGO logger */
+                                     /**@}*/
 
 #ifdef HAVE_MAiNGO_MPI
     /**
diff --git a/inc/constraint.h b/inc/constraint.h
index 87c38c5308a6b2585641bd745358958817076985..ecb578529024111a91e139c2e36ce7eba48ed041 100644
--- a/inc/constraint.h
+++ b/inc/constraint.h
@@ -7,11 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file constraint.h
- *
- * @brief File containing declaration of constraint used for storing properties,
- *        indices, constness and name of a constraint
- *
  **********************************************************************************/
 
 #pragma once
diff --git a/inc/evaluationContainer.h b/inc/evaluationContainer.h
index 728c665116e96e171087a4dc84bb2eddd8b356d3..c709ac153cec28c75adfbac27068a634e3b5c778 100644
--- a/inc/evaluationContainer.h
+++ b/inc/evaluationContainer.h
@@ -7,11 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file evaluationContainer.h
- *
- * @brief File containing declaration of the EvaluationContainer struct used to 
- *        communicate model results
- *
  **********************************************************************************/
 
 #pragma once
@@ -27,18 +22,22 @@ namespace maingo {
 
 
 /**
-    * @struct modelFunction
+    * @struct ModelFunction
     * @brief Struct for making work with the EvaluationContainer easier for the user and also to ensure backward compatibility
     */
-struct modelFunction {
+struct ModelFunction {
 
-    modelFunction() {}  /*!< Default constructor */
-    ~modelFunction() {} /*!< Default destructor */
+    ModelFunction()                      = default;
+    ~ModelFunction()                     = default;
+    ModelFunction(const ModelFunction &) = default;
+    ModelFunction(ModelFunction &&)      = default;
+    ModelFunction &operator=(const ModelFunction &) = default;
+    ModelFunction &operator=(ModelFunction &&) = default;
 
     /**
         *  @brief Constructor with FFVar value only
         */
-    modelFunction(const mc::FFVar var)
+    ModelFunction(const mc::FFVar var)
     {
         value.clear();
         value.push_back(var);
@@ -49,7 +48,7 @@ struct modelFunction {
     /**
         *  @brief Constructor with FFVar value and a name
         */
-    modelFunction(const mc::FFVar var, const std::string &str)
+    ModelFunction(const mc::FFVar var, const std::string &str)
     {
         value.clear();
         value.push_back(var);
@@ -58,7 +57,16 @@ struct modelFunction {
     }
 
     /**
-        *  @brief Constructor with FFVar value only
+        *  @brief Constructor with vector of FFVar
+        */
+    ModelFunction(const std::vector<mc::FFVar> &vars)
+    {
+        value = vars;
+        name  = std::vector<std::string>(value.size(), "");
+    }
+
+    /**
+        *  @brief Function deleting everything in the model function
         */
     void clear()
     {
@@ -151,7 +159,7 @@ struct modelFunction {
     /**
         *  @brief = operator for backward compatibility
         */
-    inline modelFunction &operator=(const mc::FFVar var)
+    inline ModelFunction &operator=(const mc::FFVar var)
     {
         value.clear();
         value.push_back(var);
@@ -176,6 +184,14 @@ struct modelFunction {
         return value.at(i);
     }
 
+    /**
+        *  @brief Equality comparison operator
+        */
+    inline bool operator==(const ModelFunction &other) const
+    {
+        return ((name == other.name) && (value == other.value));
+    }
+
     std::vector<std::string> name; /*!< vector holding possible function names */
     std::vector<mc::FFVar> value;  /*!< vector holding the actual propagated FFVar values */
 };
@@ -190,12 +206,12 @@ struct modelFunction {
     * This concept has been taken from Sahinidis & Tawarmalani, J. Global Optim. 32 (2005) 259.
     */
 struct EvaluationContainer {
-    modelFunction objective;            /*!< value of objective function f(var) */
-    modelFunction ineq;                 /*!< vector of residuals of inequality constraints g(var) */
-    modelFunction eq;                   /*!< vector of residuals of equality constraints h(var) */
-    modelFunction ineqRelaxationOnly;   /*!< vector of residuals of inequality constraints to be used only in the relaxed problem */
-    modelFunction eqRelaxationOnly;     /*!< vector of residuals of equality constraints to be used only in the relaxed problem */
-    modelFunction ineqSquash;           /*!< vector of residuals of inequality constraints to be added when using the squash_node function */
+    ModelFunction objective;            /*!< value of objective function f(var) */
+    ModelFunction ineq;                 /*!< vector of residuals of inequality constraints g(var) */
+    ModelFunction eq;                   /*!< vector of residuals of equality constraints h(var) */
+    ModelFunction ineqRelaxationOnly;   /*!< vector of residuals of inequality constraints to be used only in the relaxed problem */
+    ModelFunction eqRelaxationOnly;     /*!< vector of residuals of equality constraints to be used only in the relaxed problem */
+    ModelFunction ineqSquash;           /*!< vector of residuals of inequality constraints to be added when using the squash_node function */
     std::vector<OutputVariable> output; /*!< vector of additional output variables (should only be computed and returned if calling evaluate with ADDITIONAL_OUTPUT) */
 
     /**
diff --git a/inc/functionWrapper.h b/inc/functionWrapper.h
index 3f6bc54a00c897ab3b69181e02d66591813b1a3f..c22218b7128cefaecfac9ceac2e83f08d3404ddf 100644
--- a/inc/functionWrapper.h
+++ b/inc/functionWrapper.h
@@ -7,12 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file functionWrapper.h
- *
- * @brief Wrapper to provide more convenient names for functions defined by MC++.
- *        In particular, the names are chosen for better consistency with the
- *        ones used by the ALE parser.
- *
  **********************************************************************************/
 
 #pragma once
diff --git a/inc/getTime.h b/inc/getTime.h
index 972672ee281f611f379127f18f8491877573940f..c0bf730e88f2336503f1ee250fc457f2335c030e 100644
--- a/inc/getTime.h
+++ b/inc/getTime.h
@@ -7,10 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file getTime.h
- *
- * @brief File containing declaration of functions for querying CPU and wall clock time.
- *
  **********************************************************************************/
 
 #pragma once
diff --git a/inc/intervalLibrary.h b/inc/intervalLibrary.h
index 8f5480d5d04d6efffb524ea1ad15625021c4f977..9ae6b457e3cf49fa7e02179838684e7cb08c737a 100644
--- a/inc/intervalLibrary.h
+++ b/inc/intervalLibrary.h
@@ -7,43 +7,20 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file intervalLibrary.h
- *
- * @brief File defining the interval library to be used and defines the resulting McCormick types.
- *
  **********************************************************************************/
 
 #pragma once
 
 
-// The interval library to be used is now set via CMake:
-// - If the CMake option MAiNGO_use_filib is enabled, the pre-processor variable USE_FILIB will be set automatically and filib++ will be used.
-// - Otherwise, the more basic interval library within MC++ will be used.
-
-#ifdef USE_FILIB
-
 #include "mcfilib.hpp"
 
 /**
 	*  @typedef filib::interval<double,filib::rounding_strategy::native_switched,filib::interval_mode::i_mode_extended> I
 	*
-	*  @brief A type definition for an Interval variable using FILIB++ library which does handle infinity and does not terminate the program
+	*  @brief A type definition for an Interval variable using FILIB++ library which handles infinity properly and does not abort the program
 	*/
 typedef filib::interval<double, filib::rounding_strategy::native_switched, filib::interval_mode::i_mode_extended> I;
-#undef FILIB_TERMINATE    // Define this variable if you use filib::interval<double> instead of the above type
-
-#else
-
-#include "interval.hpp"
-
-/**
-	*  @typedef mc::INTERVAL I
-	*
-	*  @brief A type definition for an Interval variable using MC++ library
-	*/
-typedef mc::Interval I;
 
-#endif
 
 #include "ffunc.hpp"
 #include "mccormick.hpp"
diff --git a/inc/ipoptProblem.h b/inc/ipoptProblem.h
index 55a63da32893d78ec62ff24a6e03f4e9d3e86120..ff17320648b345884b3b406f49513a750de03f6f 100644
--- a/inc/ipoptProblem.h
+++ b/inc/ipoptProblem.h
@@ -7,11 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file ipoptProblem.h
- *
- * @brief File containing declaration of problem class used by Ipopt.
- *        Based on ample file by Carl Laird, Andreas Waechter     IBM    2005-08-09
- *
  **********************************************************************************/
 
 #pragma once
@@ -64,7 +59,7 @@ class IpoptProblem: public Ipopt::TNLP {
         * @param[in] dagObj is a pointer to the struct holding the DAG to be evaluated
         */
     IpoptProblem(unsigned nvarIn, unsigned neqIn, unsigned nineqIn, unsigned nineqSquashIn, UbpStructure* structureIn,
-                 std::vector<Constraint>* constraintPropertiesIn, std::shared_ptr<DagObj> dagObj);
+                 std::shared_ptr<std::vector<Constraint>> constraintPropertiesIn, std::shared_ptr<DagObj> dagObj);
 
     /** @brief Destructor */
     virtual ~IpoptProblem();
@@ -223,17 +218,17 @@ class IpoptProblem: public Ipopt::TNLP {
         * @name Internal IPOPT variables
         */
     /**@{*/
-    Ipopt::Index _nvar;                             /*!< number of variables */
-    Ipopt::Index _nineq;                            /*!< number of inequalities */
-    Ipopt::Index _nineqSquash;                      /*!< number of squash inequalities */
-    Ipopt::Index _neq;                              /*!< number of equalities */
-    UbpStructure* _structure;                       /*!< pointer to struct storing information on the problem structure */
-    std::vector<Constraint>* _constraintProperties; /*!< pointer to constraint properties determined by MAiNGO */
-    double _solution_f;                             /*!< solution value */
-    std::vector<double> _xL;                        /*!< vector holding lower bounds */
-    std::vector<double> _xU;                        /*!< vector holding upper bounds */
-    std::vector<double> _xStart;                    /*!< vector holding the initial point */
-    std::vector<double> _solutionX;                 /*!< vector holding the solution point */
+    Ipopt::Index _nvar;                                             /*!< number of variables */
+    Ipopt::Index _nineq;                                            /*!< number of inequalities */
+    Ipopt::Index _nineqSquash;                                      /*!< number of squash inequalities */
+    Ipopt::Index _neq;                                              /*!< number of equalities */
+    UbpStructure* _structure;                                       /*!< pointer to struct storing information on the problem structure */
+    std::shared_ptr<std::vector<Constraint>> _constraintProperties; /*!< pointer to constraint properties determined by MAiNGO */
+    double _solution_f;                                             /*!< solution value */
+    std::vector<double> _xL;                                        /*!< vector holding lower bounds */
+    std::vector<double> _xU;                                        /*!< vector holding upper bounds */
+    std::vector<double> _xStart;                                    /*!< vector holding the initial point */
+    std::vector<double> _solutionX;                                 /*!< vector holding the solution point */
     /**@}*/
 
     // Copy constructors made private
diff --git a/inc/knitroProblem.h b/inc/knitroProblem.h
index 648425f9515bab124e3e0c5b90d049b8f3b7b7fd..48e1fe8c94704c01395951393228ebb7e5c19176 100644
--- a/inc/knitroProblem.h
+++ b/inc/knitroProblem.h
@@ -7,10 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file knitroProblem.h
- *
- * @brief File containing declaration of problem class used by Knitro.
- *
  **********************************************************************************/
 
 #pragma once
@@ -59,7 +55,7 @@ class KnitroProblem: public knitro::KTRProblem {
 		* @param[in] dagObj is a pointer to the struct holding the DAG to be evaluated
 		*/
     KnitroProblem(unsigned nvarIn, unsigned neqIn, unsigned nineqIn, const unsigned nineqSquashIn, const std::vector<babBase::OptimizationVariable>& variables,
-                  UbpStructure* structureIn, std::vector<Constraint>* constraintPropertiesIn, std::shared_ptr<DagObj> dagObj);
+                  UbpStructure* structureIn, std::shared_ptr<std::vector<Constraint>> constraintPropertiesIn, std::shared_ptr<DagObj> dagObj);
 
     /** @brief Destructor */
     virtual ~KnitroProblem();
@@ -126,7 +122,7 @@ class KnitroProblem: public knitro::KTRProblem {
     unsigned _nineqSquash;                                             /*!< number of squash inequalities */
     unsigned _neq;                                                     /*!< number of equalities */
     UbpStructure* _structure;                                          /*!< struct storing information on the problem structure */
-    std::vector<Constraint>* _constraintProperties;                    /*!< pointer to constraint properties determined by MAiNGO */
+    std::shared_ptr<std::vector<Constraint>> _constraintProperties;    /*!< pointer to constraint properties determined by MAiNGO */
     std::vector<babBase::OptimizationVariable> _optimizationVariables; /*!< optimization variables - needed to set if continuous, integer, binary */
     std::shared_ptr<DagObj> _DAGobj;                                   /*!< pointer to object containing DAG for upper bounding
 	  /**@}*/
diff --git a/inc/lbp.h b/inc/lbp.h
index 383361dab10226fd9ecdfa4b43bf47ee91b12ccf..f2abfa1f01ebd470a360699691cbd9a9792bba14 100644
--- a/inc/lbp.h
+++ b/inc/lbp.h
@@ -7,11 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file lbp.h
- *
- * @brief File containing declaration of LowerBoundingSolver class used for
- *        constructing and solving the lower bounding problems and OBBT.
- *
  **********************************************************************************/
 
 #pragma once
@@ -39,6 +34,16 @@ namespace maingo {
 namespace lbp {
 
 
+/**
+* @enum OBBT
+* @brief Enum for communicating whether Optimization-Based Bound Tightening should consider only feasibility or also optimality
+*/
+enum OBBT {
+    OBBT_FEAS = 0, /*!< Consider feasibility only, i.e., maximize and minimize each variable only subject to the relaxed (and linearized) constraints */
+    OBBT_FEASOPT   /*!< Consider both feasibility and optimality, i.e., including the objective function cut f_cv<=UBD */
+};
+
+
 /**
 * @struct LbpDualInfo
 * @brief Container for information from the LBP that is needed in DBBT and probing, used for communicating the results via bab.
@@ -78,7 +83,7 @@ class LowerBoundingSolver {
     LowerBoundingSolver(mc::FFGraph &DAG, const std::vector<mc::FFVar> &DAGvars, const std::vector<mc::FFVar> &DAGfunctions,
                         const std::vector<babBase::OptimizationVariable> &variables, const unsigned nineqIn, const unsigned neqIn,
                         const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn,
-                        Settings *settingsIn, Logger *loggerIn, std::vector<Constraint> *constraintPropertiesIn);
+                        std::shared_ptr<Settings> settingsIn, std::shared_ptr<Logger> loggerIn, std::shared_ptr<std::vector<Constraint>> constraintPropertiesIn);
 
     /**
         * @brief Virtual destructor, only needed to make sure the correct destructor of the derived classes is called
@@ -687,10 +692,10 @@ class LowerBoundingSolver {
         * @name Pointers to several objects. Note that these are NOT const, since if we want to resolve with MAiNGO, the pointers have to change
         */
     /**@{*/
-    std::shared_ptr<DagObj> _DAGobj;                /*!< object holding the DAG */
-    Settings *_maingoSettings;                      /*!< pointer to object holding the settings */
-    Logger *_logger;                                /*!< pointer to MAiNGO logger */
-    std::vector<Constraint> *_constraintProperties; /*!< pointer to constraint properties determined by MAiNGO */
+    std::shared_ptr<DagObj> _DAGobj;                                /*!< object holding the DAG */
+    std::shared_ptr<Settings> _maingoSettings;                      /*!< pointer to object holding the settings */
+    std::shared_ptr<Logger> _logger;                                /*!< pointer to MAiNGO logger */
+    std::shared_ptr<std::vector<Constraint>> _constraintProperties; /*!< pointer to constraint properties determined by MAiNGO */
     /**@}*/
 
     /**
@@ -710,6 +715,7 @@ class LowerBoundingSolver {
     const unsigned _nineqRelaxationOnly;                           /*!< number of non-constant inequalities for use only in the relaxed problem */
     const unsigned _neqRelaxationOnly;                             /*!< number of non-constant equalities for use only in the relaxed problem */
     const unsigned _nineqSquash;                                   /*!< number of non-constant squash inequalities in the original (not relaxed) problem*/
+    bool _onlyBoxConstraints;                                      /*!< flag indicating whether the relaxed problem has only box constraints, i.e., all constraint counters are 0 */
     std::vector<babBase::OptimizationVariable> _originalVariables; /*!< original variables (i.e., original upper and lower bounds, info on which variables are binary etc., cf. structs.h) */
     double _objectiveValue;                                        /*!< variable holding the objective value of the linear program for MAiNGO solver and Interval solver */
     std::vector<double> _solutionPoint;                            /*!< vector storing the solution point for MAiNGO solver and Interval solver */
@@ -767,7 +773,7 @@ class LowerBoundingSolver {
 std::shared_ptr<LowerBoundingSolver> make_lbp_solver(mc::FFGraph &DAG, const std::vector<mc::FFVar> &DAGvars, const std::vector<mc::FFVar> &DAGfunctions,
                                                      const std::vector<babBase::OptimizationVariable> &variables, const unsigned nineqIn, const unsigned neqIn,
                                                      const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn,
-                                                     Settings *settingsIn, Logger *loggerIn, std::vector<Constraint> *constraintPropertiesIn);
+                                                     std::shared_ptr<Settings> settingsIn, std::shared_ptr<Logger> loggerIn, std::shared_ptr<std::vector<Constraint>> constraintPropertiesIn);
 
 
 }    // end namespace lbp
diff --git a/inc/lbpClp.h b/inc/lbpClp.h
index b55f94a95c3d4df1248b2c991001741a394fe320..2cae1adf73fc0ee8265cc0a03a82274e5d958db9 100644
--- a/inc/lbpClp.h
+++ b/inc/lbpClp.h
@@ -7,11 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file lbpClp.h
- *
- * @brief File containing declaration of lbpClp class used for solving the
- *        lower bounding problems.
- *
  **********************************************************************************/
 
 #pragma once
@@ -58,7 +53,7 @@ class LbpClp: public LowerBoundingSolver {
     LbpClp(mc::FFGraph &DAG, const std::vector<mc::FFVar> &DAGvars, const std::vector<mc::FFVar> &DAGfunctions,
            const std::vector<babBase::OptimizationVariable> &variables, const unsigned nineqIn, const unsigned neqIn,
            const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn,
-           Settings *settingsIn, Logger *loggerIn, std::vector<Constraint> *constraintPropertiesIn);
+           std::shared_ptr<Settings> settingsIn, std::shared_ptr<Logger> loggerIn, std::shared_ptr<std::vector<Constraint>> constraintPropertiesIn);
 
     /**
         * @brief Destructor
diff --git a/inc/lbpCplex.h b/inc/lbpCplex.h
index 36897bc51861606c451da0a3ce98d2861fdc8fbb..3335a30c88af9ca94ce402f65d90b5fc02a0f744 100644
--- a/inc/lbpCplex.h
+++ b/inc/lbpCplex.h
@@ -7,11 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file lbpCplex.h
- *
- * @brief File containing declaration of LbpCplex class used for solving the
- *        lower bounding problems.
- *
  **********************************************************************************/
 
 #pragma once
@@ -56,7 +51,7 @@ class LbpCplex: public LowerBoundingSolver {
     LbpCplex(mc::FFGraph &DAG, const std::vector<mc::FFVar> &DAGvars, const std::vector<mc::FFVar> &DAGfunctions,
              const std::vector<babBase::OptimizationVariable> &variables, const unsigned nineqIn, const unsigned neqIn,
              const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn,
-             Settings *settingsIn, Logger *loggerIn, std::vector<Constraint> *constraintPropertiesIn);
+             std::shared_ptr<Settings> settingsIn, std::shared_ptr<Logger> loggerIn, std::shared_ptr<std::vector<Constraint>> constraintPropertiesIn);
 
     /**
         * @brief Destructor
diff --git a/inc/lbpDagObj.h b/inc/lbpDagObj.h
index 73468f4b604dce351f500be9d89e97a3abb60621..70a4a789f05e4c4c67eb4782e037e106521403e6 100644
--- a/inc/lbpDagObj.h
+++ b/inc/lbpDagObj.h
@@ -7,11 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file lbpDagObj.h
- *
- * @brief File containing declaration of lbp::DagObj struct which stores everything
- *        needed for DAG evaluation for lower bounding
- *
  **********************************************************************************/
 
 #pragma once
@@ -22,6 +17,7 @@
 
 #include "babOptVar.h"
 
+#include <memory>
 #include <utility>
 #include <vector>
 
@@ -88,7 +84,7 @@ struct DagObj {
     std::vector<unsigned> chosenLinPoints;          /*!< vector holding indices of linearization points chosen from simplexPoints */
     std::vector<bool> objRowFilled;                 /*!< vector holding bools whether a LP row of an objective has been filled. This is needed for proper handling in OBBT */
 
-    std::vector<Constraint> *_constraintProperties; /*!< pointer to constraint properties determined by MAiNGO */
+    std::shared_ptr<std::vector<Constraint>> _constraintProperties; /*!< pointer to constraint properties determined by MAiNGO */
 
     /**
             * @brief Constructor
@@ -96,7 +92,7 @@ struct DagObj {
     DagObj(mc::FFGraph &DAG, const std::vector<mc::FFVar> &DAGvars, const std::vector<mc::FFVar> &DAGfunctions,
            const std::vector<babBase::OptimizationVariable> &variables, const unsigned nineq, const unsigned neq,
            const unsigned nineqRelaxationOnly, const unsigned neqRelaxationOnly, const unsigned nineqSquash,
-           Settings *settings, std::vector<Constraint> *constraintPropertiesIn);
+           std::shared_ptr<Settings> settings, std::shared_ptr<std::vector<Constraint>> constraintPropertiesIn);
 
     /**
             * @brief Function for additional stuff neeeded when using vector McCormick
diff --git a/inc/lbpInterval.h b/inc/lbpInterval.h
index 2aae6638db38f021872195842cff39cbd12bf5bf..623cf7e5cbaee45eb8f3b4ccba0865f816ba9395 100644
--- a/inc/lbpInterval.h
+++ b/inc/lbpInterval.h
@@ -7,11 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file lbpInterval.h
- *
- * @brief File containing declaration of LbpInterval class used for solving the
- *        lower bounding problems.
- *
  **********************************************************************************/
 
 #pragma once
@@ -52,7 +47,7 @@ class LbpInterval: public LowerBoundingSolver {
     LbpInterval(mc::FFGraph &DAG, const std::vector<mc::FFVar> &DAGvars, const std::vector<mc::FFVar> &DAGfunctions,
                 const std::vector<babBase::OptimizationVariable> &variables, const unsigned nineqIn, const unsigned neqIn,
                 const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn,
-                Settings *settingsIn, Logger *loggerIn, std::vector<Constraint> *constraintPropertiesIn);
+                std::shared_ptr<Settings> settingsIn, std::shared_ptr<Logger> loggerIn, std::shared_ptr<std::vector<Constraint>> constraintPropertiesIn);
 
     /**
         * @brief Function called by the B&B solver to heuristically activate more scaling in the LBS
diff --git a/inc/logger.h b/inc/logger.h
index ae125f74fad62518334c8feb564df3dd4e1c4434..632b4b74c284dceae3336c8217f323137b14192f 100644
--- a/inc/logger.h
+++ b/inc/logger.h
@@ -7,11 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file logger.h
- *
- * @brief File declaring the logger class which manages the printing of output
- *        and writing of files.
- *
  **********************************************************************************/
 
 #pragma once
@@ -82,10 +77,9 @@ enum SETTING_NAMES {
     BAB_PRINTFREQ,               /*!< frequency of printed b&b iterations */
     BAB_LOGFREQ,                 /*!< frequency of written b&b iterations */
     OUTSTREAMVERBOSITY,          /*!< verbosity for outstream */
-    WRITELOG,                    /*!< whether to write log */
     WRITECSV,                    /*!< whether to write csv */
     WRITEJSON,                   /*!< whether to write json */
-    WRITERESFILE,                /*!< whether to write an additional log file containing non-standard information about the problem */
+    writeResultFile,             /*!< whether to write an additional log file containing non-standard information about the problem */
     WRITETOLOGSEC,               /*!< write to log/csv every x seconds */
     PRE_PRINTEVERYLOCALSEARCH,   /*!< whether to print every local search */
     WRITETOOTHERLANGUAGE,        /*!< write a file in a different modeling language */
@@ -125,12 +119,11 @@ class Logger {
         * @brief The main function used for printing a given message and storing it in log and/or csv
         *
         * @param[in] message is the message to be printed or written
-        * @param[in] writeLog says whether to write log
         * @param[in] verbosityGiven is the verbosity given by, e.g., settings
         * @param[in] verbosityNeeded is the least verbosity needed for the message to be printed/written
         * @param[in] givenOutstreamVerbosity tells whether to print to _outStream and/or write files
         */
-    void print_message(const std::string& message, bool writeLog, VERB verbosityGiven, VERB verbosityNeeded, OUTSTREAM_VERB givenOutstreamVerbosity);
+    void print_message(const std::string& message, const VERB verbosityGiven, const VERB verbosityNeeded, const LOGGING_DESTINATION givenOutstreamVerbosity);
 
     /**
         * @brief The main function used for printing a given message and storing it in log and/or csv
@@ -138,55 +131,40 @@ class Logger {
         * @param[in] message is the message to be printed or written
         * @param[in] givenOutstreamVerbosity tells whether to print to _outStream and/or write files
         */
-    void print_message_to_stream_only(const std::string& message, OUTSTREAM_VERB givenOutstreamVerbosity);
+    void print_message_to_stream_only(const std::string& message, const LOGGING_DESTINATION givenOutstreamVerbosity);
 
     /**
         *  @brief Sets output stream.
         *
-        *  @param[in,out] outputStream is the new output stream to be used by MAiNGO.
+        *  @param[in] outputStream is the new output stream to be used by MAiNGO.
         */
-    void set_output_stream(std::ostream* outputStream);
+    void set_output_stream(std::ostream* const outputStream);
 
     /**
         * @brief Function used for creating the log file
         *
-        * @param[in] writeLog says whether to write log
         * @param[in] givenOutstreamVerbosity tells whether to print to _outStream and/or write files
         */
-    void create_log_file(bool writeLog, OUTSTREAM_VERB givenOutstreamVerbosity);
-
-    /**
-        * @brief Function used for creating the csv files
-        *
-        * @param[in] pureMultistart tells whether the run was only a multistart
-        * @param[in] printEveryLocalSearch tells whether the user wants to list every local search
-        * @param[in] maxLocalSearches is the number of performed local searches
-        * @param[in] objectivesAtRoot holds all objectives attained at the root node
-        * @param[in] feasibleAtRoot holds whether search i was feasible
-        */
-    void create_csv_files(bool pureMultistart, bool printEveryLocalSearch, unsigned int maxLocalSearches, const std::vector<double>& objectivesAtRoot, const std::vector<SUBSOLVER_RETCODE>& feasibleAtRoot);
+    void create_log_file(const LOGGING_DESTINATION givenOutstreamVerbosity);
 
     /**
-        * @brief Function used for creating the json file
+        * @brief Function used for creating the csv file with information on the B&B iterations
         *
-        * @param[in] writeJson says whether to write json file
-        * @param[in] givenOutstreamVerbosity tells whether to print to _outStream and/or write files
+        * @param[in] writeCsv says whether to write the csv file
         */
-    void create_json_file(bool writeJson, OUTSTREAM_VERB givenOutstreamVerbosity);
+    void create_iterations_csv_file(const bool writeCsv);
 
     /**
-        * @brief Function used for writing all lines stored in queue babLine to log with name logFileName
+        * @brief Function used for writing all lines stored in queue babLine to log
         *
-        * @param[in] errmsg is a possible additional error message
+        * @param[in] errorMessage is a possible additional error message
         */
-    void write_all_lines_to_log(const std::string& errmsg = "");
+    void write_all_lines_to_log(const std::string& errorMessage = "");
 
     /**
-        * @brief Function used for writing all lines stored in queue babCsv to csv file with name csvIterationsName
-        *
-        * @param[in] errmsg is a possible additional error message
+        * @brief Function used for writing all iterations currently stored queue babLineCsv to csv
         */
-    void write_all_iterations_to_csv(const std::string& errmsg = "");
+    void write_all_iterations_to_csv();
 
     /**
         * @brief Function used for saving the names of setting files set by the user
@@ -194,7 +172,7 @@ class Logger {
         * @param[in] fileName it the name of the file set by the user
         * @param[in] fileFound tells whether the wanted file has been found
         */
-    void save_settings_file_name(const std::string& fileName, bool fileFound);
+    void save_settings_file_name(const std::string& fileName, const bool fileFound);
 
     /**
         * @brief Function used for saving the user-set settings
@@ -202,17 +180,16 @@ class Logger {
         * @param[in] settingName is the changed setting
         * @param[in] str is the corresponding string
         */
-    void save_setting(SETTING_NAMES settingName, const std::string& str);
+    void save_setting(const SETTING_NAMES settingName, const std::string& str);
 
     /**
         * @brief Function for printing and writing user-set settings
         *
-        * @param[in] writeLog says whether to write log
         * @param[in] verbosityGiven is the verbosity given by, e.g., settings
         * @param[in] verbosityNeeded is the least verbosity needed for the message to be printed/written
         * @param[in] givenOutstreamVerbosity tells whether to print to _outStream and/or write files
         */
-    void print_settings(bool writeLog, VERB verbosityGiven, VERB verbosityNeeded, OUTSTREAM_VERB givenOutstreamVerbosity);
+    void print_settings(const VERB verbosityGiven, const VERB verbosityNeeded, const LOGGING_DESTINATION givenOutstreamVerbosity);
 
     /**
         * @brief Clears all logging information
@@ -223,15 +200,12 @@ class Logger {
         * @name Auxiliary public variables for storing output and logging information
         */
     /**@{*/
-    std::queue<std::string> babLine;    /*!< queue for storing lines of B&B output */
-    std::queue<std::string> babLineCsv; /*!< queue for storing lines of B&B output for CSV file */
-    std::string logFileName;            /*!< string storing name of the log file */
-    std::string resFileName;            /*!< string storing name of the res file */
-    std::string csvIterationsName;      /*!< string storing name of the csv iterations file */
-    std::string csvGeneralName;         /*!< string storing name of the csv general file */
-    std::string jsonFileName;           /*!< string storing name of the json file */
-    bool reachedMinNodeSize;            /*!< bool for saving information if minimum node size has been reached within B&B */
-                                        /**@}*/
+    std::queue<std::string> babLine{};                /*!< queue for storing lines of B&B output */
+    std::queue<std::string> babLineCsv{};             /*!< queue for storing lines of B&B output for CSV file */
+    std::string logFileName       = "maingo.log";     /*!< name of the txt file into which the log may be written */
+    std::string csvIterationsName = "iterations.csv"; /*!< name of the csv file into which information on the individual B&B iterations may be written */
+    bool reachedMinNodeSize;                          /*!< bool for saving information if minimum node size has been reached within B&B */
+                                                      /**@}*/
 
   private:
     /**
diff --git a/inc/mcForward.h b/inc/mcForward.h
index bfc86578a37eb54be170a536caf974efd581dff3..2d1ec5debcfebbd6ddaebd9dc665868180537833 100644
--- a/inc/mcForward.h
+++ b/inc/mcForward.h
@@ -7,11 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file mcForward.h
- *
- * @brief File containing forward declaration of certain classes defined in MC++
- *        to avoid excessive dependencies.
- *
  **********************************************************************************/
 
 
diff --git a/inc/mpiUtilities.h b/inc/mpiUtilities.h
index 7f6c5f2cd236721149d28ba72780e95b073d7091..421069bb5e5ebce99b61d1e889107072d09cbc67 100644
--- a/inc/mpiUtilities.h
+++ b/inc/mpiUtilities.h
@@ -7,10 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file mpiUtilities.h
- *
- * @brief File containing macros and utility functions for parallel MAiNGO version.
- *
  **********************************************************************************/
 
 #pragma once
diff --git a/inc/outputVariable.h b/inc/outputVariable.h
index 1d5991d23af03cf177e927dad52ac427da195e16..eea1c00beb6fe67dc39a393251759ae5d6830f09 100644
--- a/inc/outputVariable.h
+++ b/inc/outputVariable.h
@@ -7,19 +7,14 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file outputVariable.h
- *
- * @brief File containing declaration of outputVariables used for communicating
- *        additional model output at the solution point
- *
  **********************************************************************************/
 
 #pragma once
 
-#include <string>
-
 #include "ffunc.hpp"
 
+#include <string>
+
 
 namespace maingo {
 
@@ -28,7 +23,7 @@ namespace maingo {
 	* @struct OutputVariable
 	* @brief Struct for storing additional output variables
 	*
-	* Since the model evaluation can contain several intermediate variables that appear neither as optimization variables nor as constraints directly, but the value of which might be interesting at the optimal solution point, 
+	* Since the model evaluation can contain several intermediate variables that appear neither as optimization variables nor as constraints directly, but the value of which might be interesting at the optimal solution point,
 	* a vector of these structs can be used in the EvaluationContainer to give such additional output after the problem is solved.
 	*/
 struct OutputVariable {
@@ -52,28 +47,65 @@ struct OutputVariable {
     OutputVariable(const mc::FFVar valueIn, const std::string descIn):
         value(valueIn), description(descIn) {}
 
+    /**
+			* @brief Constructor for use in the evaluate function
+			*
+			* @param[in] inTuple is a tuple containing the value of the variable at the current point and a descriptive string
+			*/
+    OutputVariable(const std::tuple<mc::FFVar, std::string> inTuple):
+        value(std::get<0>(inTuple)), description(std::get<1>(inTuple)) {}
+
+    /**
+			* @brief Constructor for use in the evaluate function
+			*
+			* @param[in] inTuple is a tuple containing the value of the variable at the current point and a descriptive string
+			*/
+    OutputVariable(const std::tuple<std::string, mc::FFVar> inTuple):
+        value(std::get<1>(inTuple)), description(std::get<0>(inTuple)) {}
+
+    /**
+			* @brief Destructor
+			*/
+    ~OutputVariable() = default;
+
     /**
 			* @brief Copy constructor
 			*
 			* @param[in] variableIn is the output variable to be copied
 			*/
-    OutputVariable(const OutputVariable& variableIn):
-        description(variableIn.description), value(variableIn.value) {}
+    OutputVariable(const OutputVariable& variableIn) = default;
+
+    /**
+			* @brief Move constructor
+			*
+			* @param[in] variableIn is the output variable to be moved
+			*/
+    OutputVariable(OutputVariable&& variableIn) = default;
 
     /**
 			* @brief Copy assignment operator
 			*
 			* @param[in] variableIn is the output variable to be copied
 			*/
-    OutputVariable& operator=(const OutputVariable& variableIn)
+    OutputVariable& operator=(const OutputVariable& variableIn) = default;
+
+    /**
+			* @brief Move assignment operator
+			*
+			* @param[in] variableIn is the output variable to be moved
+			*/
+    OutputVariable& operator=(OutputVariable&& variableIn) = default;
+
+    /**
+        *  @brief Equality comparison operator
+        */
+    inline bool operator==(const OutputVariable& other) const
     {
-        description = variableIn.description;
-        value       = variableIn.value;
-        return *this;
+        return ((description == other.description) && (value == other.value));
     }
 
-    std::string description; /*!< Description, e.g. name of variable */
-    mc::FFVar value;         /*!< Variable object */
+    mc::FFVar value         = {}; /*!< Variable object */
+    std::string description = {}; /*!< Description, e.g. name of variable */
 };
 
 
diff --git a/inc/program.h b/inc/program.h
index f2b5c106a52c8d2deca7712e333a55462ed19f54..377cf759c68bcb8bfa6147935a57ccadbf13d08d 100644
--- a/inc/program.h
+++ b/inc/program.h
@@ -7,11 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file progam.h
- *
- * @brief File declaring the Program struct for storing ALE objects describing an
- *        optimization problem.
- *
  **********************************************************************************/
 
 #pragma once
@@ -27,7 +22,7 @@ namespace maingo {
 * @brief Container Class for ALE expressions comprising an optimization problem
 */
 struct Program {
-    ale::expression<ale::real<0>> mObjective;                 /*!< Objective function expression*/
+    std::list<ale::expression<ale::real<0>>> mObjective;      /*!< Objective function expression*/
     std::list<ale::expression<ale::boolean<0>>> mConstraints; /*!< Constraint expressions*/
     std::list<ale::expression<ale::boolean<0>>> mRelaxations; /*!< Relaxation-only constraint expressions*/
     std::list<ale::expression<ale::boolean<0>>> mSquashes;    /*!< Squash constraint expressions*/
diff --git a/inc/programParser.h b/inc/programParser.h
index d039ef57d607274704dd0df0c87297abead9045e..badf65f070d519243c6dc8915f1a576c005d2b37 100644
--- a/inc/programParser.h
+++ b/inc/programParser.h
@@ -7,10 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file programParser.h
- *
- * @brief File declaring the ProgramParser specialization of the ale::parser.
- *
  **********************************************************************************/
 
 #pragma once
diff --git a/inc/returnCodes.h b/inc/returnCodes.h
index d35f29a7c8cda7c097824d88613dddefdf795c90..e6b11a49c593cda59ee81fc12a13456a838a1f86 100644
--- a/inc/returnCodes.h
+++ b/inc/returnCodes.h
@@ -7,10 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file returnCodes.h
- *
- * @brief File containing enums for the return codes of the different solvers
- *
  **********************************************************************************/
 
 #pragma once
diff --git a/inc/settings.h b/inc/settings.h
index 6d76372ac51cd05bf35dabaec7fd2f99216f9ee2..de343f3926d57f3814fc978feba14e71fa061c38 100644
--- a/inc/settings.h
+++ b/inc/settings.h
@@ -7,11 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file settings.h
- *
- * @brief File containing declarations of everything needed to specify settings
- *        for MAiNGO.
- *
  **********************************************************************************/
 
 #pragma once
@@ -31,36 +26,30 @@ namespace maingo {
 * @brief Enum for controlling the output level of solvers (i.e., how much should be printed on the screen and, possibly, to the log file).
 */
 enum VERB {
-    VERB_NONE = 0, /*!< Print no output whatsoever. */
-    VERB_NORMAL,   /*!< For BranchAndBound, this means that regular output on solution progress is printed according to the specified print frequency, as well as when the incumbent is updated. For LowerBoundingSolver and UpperBoundingSolver, only critical output is given (e.g., important warnings). */
-    VERB_ALL       /*!< Highest output level (very noisy!). */
+    VERB_NONE = 0,    //!< (=0): Print no output whatsoever.
+    VERB_NORMAL,      //!< (=1): For BranchAndBound, this means that regular output on solution progress is printed according to the specified print frequency, as well as when the incumbent is updated. For LowerBoundingSolver and UpperBoundingSolver, only critical output is given (e.g., important warnings).
+    VERB_ALL          //!< (=2): Highest output level (very noisy!).
 };
 
-
 /**
-* @enum OUTSTREAM_VERB
-* @brief Enum for controlling the output and writing level of MAiNGO (i.e., where should the output be written to, outstream and/or log)
+* @enum LOGGING_DESTINATION
+* @brief Enum for controlling where logging information of MAiNGO should be written.
 */
-enum OUTSTREAM_VERB {
-    OUTSTREAM_NONE = 0,  /*!< Print and write no output whatsoever. */
-    OUTSTREAM_OUTSTREAM, /*!< Print only to output stream (standard ist std::cout) */
-    OUTSTREAM_LOG,       /*!< Write to log only */
-    OUTSTREAM_BOTH       /*!< Print to output stream AND write the same information to log */
+enum LOGGING_DESTINATION {
+    LOGGING_NONE = 0,          //!< (=0): Do not print or write any logging information
+    LOGGING_OUTSTREAM,         //!< (=1): Print only to selected output stream. The stream can be selected via \ref maingo::MAiNGO::set_output_stream "set_output_stream"
+    LOGGING_FILE,              //!< (=2): Write to a log file only. The log filename can be set via \ref maingo::MAiNGO::set_log_file_name "set_log_file_name"
+    LOGGING_FILE_AND_STREAM    //!< (=3): Print to output stream AND write the same information to log file
 };
 
-
 /**
-* @enum PARSING_LANGUAGE
-* @brief Enum for representing possible modeling language for parsing a MAiNGO model to.
+* @enum WRITING_LANGUAGE
+* @brief Enum for representing the modeling language in which MAiNGO is supposed to write the current model to a file.
 */
-enum PARSING_LANGUAGE {
-    LANG_NONE = -1,    //!< A different parsing language is not set
-    AMPL,              //!< AMPL
-    ALE,               //!< ALE
-    BARON,             //!< BARON
-    GAMS,              //!< GAMS
-    PYOMO,             //!< PYOMO
-    NLP_LANG           //!< NLP
+enum WRITING_LANGUAGE {
+    LANG_NONE = 0,    //!< (=0): Do not write the current model to a file
+    LANG_ALE,         //!< (=1): Write the current model to a file using ALE syntax
+    LANG_GAMS         //!< (=2): Write the current model to a file using GAMS syntax
 };
 
 
@@ -76,19 +65,10 @@ namespace lbp {
     * @brief Enum for selecting the STRATegy so be used for solving the lower bounding problems
     */
 enum LBP_SOLVER {
-    SOLVER_MAiNGO   = 0, /*!< (=0): MAiNGO intern lower bounding solver consisting of linearizing the objective function at only 1 point and minimizing the linearization over box constraints */
-    SOLVER_INTERVAL = 1, /*!< (=1): solution of lower bounding problems using only interval based relaxations */
-    SOLVER_CPLEX    = 2, /*!< (=2): solution of lower bounding linear programs using CPLEX   */
-    SOLVER_CLP      = 3  /*!< (=3): solution of lower bounding linear programs using CLP   */
-};
-
-/**
-    * @enum OBBT
-    * @brief Enum for communicating whether Optimization-Based Bound Tightening should consider only feasibility or also optimality
-    */
-enum OBBT {
-    OBBT_FEAS = 0, /*!< Consider feasibility only, i.e., maximize and minimize each variable only subject to the relaxed (and linearized) constraints */
-    OBBT_FEASOPT   /*!< Consider both feasibility and optimality, i.e., including the objective function cut f_cv<=UBD */
+    LBP_SOLVER_MAiNGO = 0,    //!< (=0): MAiNGO internal lower bounding solver consisting of linearizing the objective function at only 1 point and minimizing the linearization over box constraints
+    LBP_SOLVER_INTERVAL,      //!< (=1): solution of lower bounding problems using only interval based relaxations
+    LBP_SOLVER_CPLEX,         //!< (=2): solution of lower bounding linear programs using CPLEX
+    LBP_SOLVER_CLP            //!< (=3): solution of lower bounding linear programs using CLP
 };
 
 /**
@@ -96,14 +76,15 @@ enum OBBT {
     * @brief Enum for selecting the Linearization Points to be used in constructing affine relaxations.
     */
 enum LINP {
-    LINP_MID = 0,       /*!< (=0) : Linearize only at the midpoint of the current node */
-    LINP_INCUMBENT,     /*!< (=1) : Linearize at the incumbent value if it is in the current interval, else linearize at mid point, if using the subgradient interval heuristic, the heuristic also linearizes each operation at the incumbent if possible */
-    LINP_KELLEY,        /*!< (=2) : Linearize at points determined via an adapted version of Kelley's algorithm, each function is treated individually */
-    LINP_SIMPLEX,       /*!< (=3) : Linearize at mid point + (n+1)/2 points given as vertices of the (n+1) simplex where n is the dimension of the problem */
-    LINP_RANDOM,        /*!< (=4) : Linearize at mid point + (n+1)/2 random points */
-    LINP_KELLEY_SIMPLEX /*!< (=5) : Linearize at mid point + (n+1)/2 points given as vertices of the (n+1) simplex where n is the dimension of the problem and then apply Kelleys algorithm */
+    LINP_MID = 0,          //!< (=0) : Linearize only at the midpoint of the current node */
+    LINP_INCUMBENT,        //!< (=1) : Linearize at the incumbent value if it is in the current interval, else linearize at mid point, if using the subgradient interval heuristic, the heuristic also linearizes each operation at the incumbent if possible
+    LINP_KELLEY,           //!< (=2) : Linearize at points determined via an adapted version of Kelley's algorithm, each function is treated individually
+    LINP_SIMPLEX,          //!< (=3) : Linearize at mid point + (n+1)/2 points given as vertices of the (n+1) simplex where n is the dimension of the problem
+    LINP_RANDOM,           //!< (=4) : Linearize at mid point + (n+1)/2 random points
+    LINP_KELLEY_SIMPLEX    //!< (=5) : Linearize at mid point + (n+1)/2 points given as vertices of the (n+1) simplex where n is the dimension of the problem and then apply Kelleys algorithm
 };
 
+
 }    // end namespace lbp
 
 
@@ -113,20 +94,21 @@ enum LINP {
 */
 namespace ubp {
 
+
 /**
     * @enum UBP_SOLVER
     * @brief Enum for selecting the STRATegy so be used for solving the upper bounding problems
     */
 enum UBP_SOLVER {
-    SOLVER_EVAL = 0,   /*!< (=0): no optimization, simple function evaluation at solution point of LBP  */
-    SOLVER_COBYLA,     /*!< (=1): local optimization using COBYLA (derivative free solver within NLopt, uses linear approximations via simplex of nvar+1 points) */
-    SOLVER_BOBYQA,     /*!< (=2): local optimization using BOBYQA (derivative free unconstrained solver in NLopt, constructs quadratic approximations; constraints are moved to the objective via augmented Lagrangian method) */
-    SOLVER_LBFGS,      /*!< (=3): local optimization using LBFGS (lower-storage BFGS algorithm (i.e., gradient-based) for unconstrained optimization within NLopt; constraints are moved to the objective via augmented Lagrangian method) */
-    SOLVER_SLSQP,      /*!< (=4): local optimization using SLSQP (SQP solver within NLopt) */
-    SOLVER_IPOPT,      /*!< (=5): local optimization using Ipopt (using the exact Hessian for problems with at most 50 variables, else using L-BFGS) */
-    SOLVER_KNITRO,     /*!< (=6): local optimization using Knitro (using the exact Hessian) */
-    SOLVER_CPLEX = 42, /*!< (=42): optimization using CPLEX. Called only for (MI)LPs and (MI)QCPs. */
-    SOLVER_CLP         /*!< (=43): optimization using CLP. Called only for LPs. */
+    UBP_SOLVER_EVAL = 0,      //!< (=0): no optimization, simple function evaluation at solution point of LBP
+    UBP_SOLVER_COBYLA,        //!< (=1): local optimization using COBYLA (derivative free solver within NLopt, uses linear approximations via simplex of nvar+1 points)
+    UBP_SOLVER_BOBYQA,        //!< (=2): local optimization using BOBYQA (derivative free unconstrained solver in NLopt, constructs quadratic approximations; constraints are moved to the objective via augmented Lagrangian method)
+    UBP_SOLVER_LBFGS,         //!< (=3): local optimization using LBFGS (lower-storage BFGS algorithm (i.e., gradient-based) for unconstrained optimization within NLopt; constraints are moved to the objective via augmented Lagrangian method)
+    UBP_SOLVER_SLSQP,         //!< (=4): local optimization using SLSQP (SQP solver within NLopt)
+    UBP_SOLVER_IPOPT,         //!< (=5): local optimization using Ipopt (using the exact Hessian for problems with at most 50 variables, else using L-BFGS)
+    UBP_SOLVER_KNITRO,        //!< (=6): local optimization using Knitro (using the exact Hessian)
+    UBP_SOLVER_CPLEX = 42,    //!< (=42): optimization using CPLEX. Called only for (MI)LPs and (MI)QCPs.
+    UBP_SOLVER_CLP            //!< (=43): optimization using CLP. Called only for LPs.
 };
 
 
@@ -143,121 +125,120 @@ enum UBP_SOLVER {
 struct Settings {
 
     /**
-    * @brief Constructor, sets default values (cf. settings.cpp).
+    * @name Tolerances
     */
-    Settings();
+    /**@{*/
+    double epsilonA   = 1.0e-2;    //!< Absolute optimality tolerance, i.e., termination when (UBD-LBD) < BAB_epsilon_a
+    double epsilonR   = 1.0e-2;    //!< Relative optimality tolerance, i.e., termination when (UBD-LBD) < BAB_epsilon_r * UBD
+    double deltaIneq  = 1.0e-6;    //!< Absolute feasibility tolerance for inequality constraints, i.e., constraint is considered satisfied if gi_(x)<=UBP_delta_ineq
+    double deltaEq    = 1.0e-6;    //!< Absolute feasibility tolerance for equality constraints, i.e., constraint is considered satisfied if |hi_(x)|<=UBP_delta_eq
+    double relNodeTol = 1.0e-9;    //!< Relative tolerance for minimum node size. Nodes are discarded if in every dimension their width gets below this tolerance times the original width. In this case, global optimality to the desired optimality tolerances may not be reached.
+    /**@}*/
 
     /**
-    * @brief Default copy constructor.
+    * @name Other termination settings
     */
-    Settings(const Settings&) = default;
+    /**@{*/
+    unsigned BAB_maxNodes         = std::numeric_limits<unsigned>::max();    //!< Maximum number of nodes (i.e., solver terminates when more than BAB_maxnodes are held in memory; used to avoid excessive branching)
+    unsigned BAB_maxIterations    = std::numeric_limits<unsigned>::max();    //!< Maximum number of iterations (i.e., maximum number of nodes visited in the Branch-and-Bound tree)
+    unsigned maxTime              = 86400 /*=24h*/;                          //!< CPU time limit in seconds
+    bool confirmTermination       = false;                                   //!< Whether to ask the user before terminating when reaching time, node, or iteration limits
+    bool terminateOnFeasiblePoint = false;                                   //!< Whether to terminate as soon as the first feasible point was found (no guarantee of global or local optimality!)
+    double targetLowerBound       = std::numeric_limits<double>::max();      //!< Target value for the lower bound on the optimal objective. MAiNGO terminates once LBD>=targetLowerBound  (no guarantee of global or local optimality!)
+    double targetUpperBound       = -std::numeric_limits<double>::max();     //!< Target value for the upper bound on the optimal objective. MAiNGO terminates once UBD<=targetUpperBound  (no guarantee of global or local optimality!)
+    double infinity               = std::numeric_limits<double>::max();      //!< User definition of infinity (used to initialize UBD and LBD) [currently cannot be set by the user via set_option]
+    /**@}*/
 
     /**
-    * @brief Default copy assignment.
+    * @name Output
     */
-    Settings& operator=(const Settings&) = default;
+    /**@{*/
+    VERB BAB_verbosity                     = VERB_NORMAL;                //!< How much output to print from Branch & Bound solver. See documentation of \ref maingo.VERB for possible values.
+    VERB LBP_verbosity                     = VERB_NORMAL;                //!< How much output to print from Lower Bounding Solver. See documentation of \ref maingo.VERB for possible values.
+    VERB UBP_verbosity                     = VERB_NORMAL;                //!< How much output to print from Upper Bounding Solver. See documentation of \ref maingo.VERB for possible values.
+    unsigned BAB_printFreq                 = 100;                        //!< After how many iterations to print progress on screen (additionally, a line is printed when a new incumbent is found)
+    unsigned BAB_logFreq                   = 100;                        //!< Like BAB_printFreq, but for log
+    LOGGING_DESTINATION loggingDestination = LOGGING_FILE_AND_STREAM;    //!< Where to print or write the output. See documentation of \ref maingo.LOGGING_DESTINATION for possible values.
+    unsigned writeToLogSec                 = 1800;                       //!< Write to log file after a given ammount of CPU seconds
+    bool writeResultFile                   = true;                       //!< Whether to write an additional file containing non-standard information about the solved model
+    bool writeCsv                          = false;                      //!< Whether to write csv-log files (named bab_statistics.csv and bab_iterations.csv).
+    bool writeJson                         = false;                      //!< Whether to write a json-log file (named bab.json).
+    bool PRE_printEveryLocalSearch         = false;                      //!< Whether to print every run during multistart at the root node
+    WRITING_LANGUAGE modelWritingLanguage  = LANG_NONE;                  //!< In what modeling language to write the current model to a file in.  See documentation of \ref maingo.WRITING_LANGUAGE for possible values.
+    /**@}*/
 
     /**
-    * @name Tolerances and termination
+    * @name Pre-processing
     */
     /**@{*/
-    double epsilonA;      //!< Absolute optimality tolerance, i.e., termination when (UBD-LBD) < BAB_epsilon_a
-    double epsilonR;      //!< Relative optimality tolerance, i.e., termination when (UBD-LBD) < BAB_epsilon_r * UBD
-    double deltaIneq;     //!< Absolute feasibility tolerance for inequality constraints (i.e., constraint is considered satisfied if gi_(x)<=UBP_delta_ineq
-    double deltaEq;       //!< Absolute feasibility tolerance for equality constraints (i.e., constraint is considered satisfied if |hi_(x)|<=UBP_delta_eq
-    double relNodeTol;    //!< Relative tolerance for minimum node size
-
-    unsigned BAB_maxNodes;            //!< Maximum number of nodes (i.e., solver terminates when more than BAB_maxnodes are held in memory; used to avoid excessive branching)
-    unsigned BAB_maxIterations;       //!< Maximum number of iterations (i.e., maximum number of nodes visited in the Branch-and-Bound tree)
-    unsigned maxTime;                 //!< CPU time limit in seconds
-    bool confirmTermination;          //!< Whether to ask the user before terminating when reaching time, node, or iteration limits
-    bool terminateOnFeasiblePoint;    //!< Whether to terminate as soon as the first feasible point was found (no guarantee of global or local optimality!)
-    double targetLowerBound;          //!< Target value for the lower bound on the optimal objective. MAiNGO terminates once LBD>=targetLowerBound  (no guarantee of global or local optimality!)
-    double targetUpperBound;          //!< Target value for the upper bound on the optimal objective. MAiNGO terminates once UBD<=targetUpperBound  (no guarantee of global or local optimality!)
-    double infinity;                  //!< User definition of infinity (used to initialize UBD and LBD) [currently cannot be set by the user via set_option]
+    unsigned PRE_maxLocalSearches = 3;        //!< Number of local searches in the multistart heuristic during preprocessing at the root node
+    unsigned PRE_obbtMaxRounds    = 10;       //!< Maximum number of rounds of optimization-based range reduction (OBBT; cf., e.g., Gleixner et al., J. Glob. Optim. 67 (2017) 731; maximizing and minimizing each variable subject to relaxed constraints) at the root node. If >=1 and a feasible point is found during multistart, one round of OBBT using an objective cut (f_cv<=UBD) is conducted as well.
+    bool PRE_pureMultistart       = false;    //!< Whether to perform a multistart only. A B&B tree will not be constructed and no lower bounding problems will be solved
     /**@}*/
 
     /**
-    * @name Pre-processing
+    * @name B&B settings - Tree management
     */
     /**@{*/
-    unsigned PRE_maxLocalSearches;    //!< Number of local searches in the multistart heuristic during preprocessing at the root node
-    unsigned PRE_obbtMaxRounds;       //!< Maximum number of rounds of optimization-based range reduction (OBBT; cf., e.g., Gleixner et al., J. Glob. Optim. 67 (2017) 731; maximizing and minimizing each variable subject to relaxed constraints) at the root node. If >=1 and a feasible point is found during multistart, one round of OBBT using an objective cut (f_cv<=UBD) is conducted as well.
-    bool PRE_pureMultistart;          //!< Whether to perform a multistart only. A B&B tree will not be constructed and no lower bounding problems will be solved
+    babBase::enums::NS BAB_nodeSelection  = babBase::enums::NS_BESTBOUND;    //!< How to select the next node to process. See documentation of babBase::enums::NS for possible values.
+    babBase::enums::BV BAB_branchVariable = babBase::enums::BV_RELDIAM;      //!< Which dimension to branch in for the current node. See documentation of babBase::enums::BV for possible values.
     /**@}*/
 
     /**
-    * @name B&B Settings - Tree management & range reduction
+    * @name B&B settings - Range reduction
     */
     /**@{*/
-    babBase::enums::NS BAB_nodeSelection;     //!< How to select the next node to process. See documentation of babBase::enums::NS for possible values.
-    babBase::enums::BV BAB_branchVariable;    //!< Which dimension to branch in for the current node. See documentation of babBase::enums::BV for possible values.
-    bool BAB_alwaysSolveObbt;                 //!< Whether to solve OBBT (feasibility- and, once a feasible point has been found, also optimality-based) at every BaB node
-    bool BAB_dbbt;                            //!< Whether to do a single round of duality based bound tightening (DBBT, cf. Ryoo&Sahinidis, Comput. Chem. Eng. 19 (1995) 551). If false, no DBBT is used. If true, multipliers from CPLEX are used to tighten bounds (essentially for free). we tried additional rounds but without reasonable improvement.
-    bool BAB_probing;                         //!< Whether to do probing (cf. Ryoo&Sahinidis, Comput. Chem. Eng. 19 (1995) 551) at every node (can only be done if BAB_DBBT_maxrounds>=1)
-    bool BAB_constraintPropagation;           //!< Whether to do constraint propagation. If false, no constraint propagation is executed.
+    bool BAB_alwaysSolveObbt       = true;     //!< Whether to solve OBBT (feasibility- and, once a feasible point has been found, also optimality-based) at every BaB node
+    bool BAB_dbbt                  = true;     //!< Whether to do a single round of duality based bound tightening (DBBT, cf. Ryoo&Sahinidis, Comput. Chem. Eng. 19 (1995) 551). If false, no DBBT is used. If true, multipliers from CPLEX are used to tighten bounds (essentially for free). we tried additional rounds but without reasonable improvement.
+    bool BAB_probing               = false;    //!< Whether to do probing (cf. Ryoo&Sahinidis, Comput. Chem. Eng. 19 (1995) 551) at every node (can only be done if BAB_DBBT_maxrounds>=1)
+    bool BAB_constraintPropagation = true;     //!< Whether to do constraint propagation. If false, no constraint propagation is executed.
     /**@}*/
 
     /**
     * @name LBP Settings
     */
     /**@{*/
-    lbp::LBP_SOLVER LBP_solver;              //!< Solver for solution of (mixed-integer) linear lower bounding problems. It also sets the solver when solving purely (mixed-integer) quadratic/linear problems.
-    lbp::LINP LBP_linPoints;                 //!< At which points to linearize for affine relaxation. See documentation of lbp::LINP for possible values.
-    bool LBP_subgradientIntervals;           //!< Whether to use the heuristic to improve McCormick relaxations by tightening the range of each factor with the use of subgradients (cf. Najman & Mitsos, JOGO 2019)
-    double LBP_obbtMinImprovement;           //!< How much improvement needs to be achievable (relative to initial diameter) to conduct OBBT for a variable
-    unsigned LBP_activateMoreScaling;        //!< Number of consecutive iterations without LBD improvement needed to activate more aggressive scaling in LP solver (e.g., CPLEX)
-    bool LBP_addAuxiliaryVars;               //!< Whether to add auxiliary variables for common factors in the lower bounding DAG/problem
-    unsigned LBP_minFactorsForAux;           //!< Minimum number of common factors to add an auxiliary variable
-    unsigned LBP_maxNumberOfAddedFactors;    //!< Maximum number of added factor as auxiliaries
+#ifdef HAVE_CPLEX
+    lbp::LBP_SOLVER LBP_solver = lbp::LBP_SOLVER_CPLEX;    //!< Solver for solution of (mixed-integer) linear lower bounding problems. It also sets the solver when solving purely (mixed-integer) quadratic/linear problems. See documentation of \ref lbp::LBP_SOLVER for possible values
+#else
+    lbp::LBP_SOLVER LBP_solver = lbp::LBP_SOLVER_CLP;    //!< Solver for solution of (mixed-integer) linear lower bounding problems. It also sets the solver when solving purely (mixed-integer) quadratic/linear problems. See documentation of \ref lbp::LBP_SOLVER for possible values
+#endif
+    lbp::LINP LBP_linPoints              = lbp::LINP_MID;    //!< At which points to linearize for affine relaxation. See documentation of lbp::LINP for possible values
+    bool LBP_subgradientIntervals        = true;             //!< Whether to use the heuristic to improve McCormick relaxations by tightening the range of each factor with the use of subgradients (cf. Najman & Mitsos, JOGO 2019)
+    double LBP_obbtMinImprovement        = 0.01;             //!< How much improvement needs to be achievable (relative to initial diameter) to conduct OBBT for a variable
+    unsigned LBP_activateMoreScaling     = 10000;            //!< Number of consecutive iterations without LBD improvement needed to activate more aggressive scaling in LP solver (e.g., CPLEX)
+    bool LBP_addAuxiliaryVars            = false;            //!< Whether to add auxiliary variables for common factors in the lower bounding DAG/problem
+    unsigned LBP_minFactorsForAux        = 2;                //!< Minimum number of common factors to add an auxiliary variable
+    unsigned LBP_maxNumberOfAddedFactors = 1;                //!< Maximum number of added factor as auxiliaries
     /**@}*/
 
     /**
     * @name MC++ settings
     */
     /**@{*/
-    bool MC_mvcompUse;      //!< Whether to use multivariate composition theorem for computing McCormick relaxations  (see MC++ documentation for details)
-    double MC_mvcompTol;    //!< (see MC++ documentation for details)
-    double MC_envelTol;     //!< (see MC++ documentation for details)
+    bool MC_mvcompUse   = true;      //!< Whether to use multivariate composition theorem for computing McCormick relaxations  (see MC++ documentation for details)
+    double MC_mvcompTol = 1.0e-9;    //!< Tolerance used in the multivariate composition theorem for computing McCormick relaxations (see MC++ documentation for details)
+    double MC_envelTol  = 1.0e-9;    //!< Tolerance for computing the envelopes of intrinsic functions (see MC++ documentation for details)
     /**@}*/
 
     /**
     * @name UBP Settings
     */
     /**@{*/
-    ubp::UBP_SOLVER UBP_solverPreprocessing;    //!< Solver to be used during pre-processing (i.e., multistart). See documentation of ubp::UBP_SOLVER for possible values.
-    unsigned UBP_maxStepsPreprocessing;         //!< Maximum number of steps the local solver is allowed to take in each local run during multistart in pre-processing.
-    double UBP_maxTimePreprocessing;            //!< Maximum CPU time the local solver is allowed to take in each local run during multistart in pre-processing. Usually, this should only be a fall-back option to prevent truly getting stuck in local solution.
-    ubp::UBP_SOLVER UBP_solverBab;              //!< Solver to be used during Branch-and-Bound. See documentation of ubp::UBP_SOLVER for possible values.
-    unsigned UBP_maxStepsBab;                   //!< Maximum number of steps the local solver is allowed to take at each BaB node.
-    double UBP_maxTimeBab;                      //!< Maximum CPU time the local solver is allowed to take at each BaB node. Usually, this should only be a fall-back option to prevent truly getting stuck in local solution.
-    bool UBP_ignoreNodeBounds;                  //!< Flag indicating whether the UBP solvers should ignore the box constraints of the current node during the B&B (and consider only the ones of the root node instead).
+    ubp::UBP_SOLVER UBP_solverPreprocessing = ubp::UBP_SOLVER_IPOPT;    //!< Solver to be used during pre-processing (i.e., multistart). See documentation of ubp::UBP_SOLVER for possible values.
+    unsigned UBP_maxStepsPreprocessing      = 3000;                     //!< Maximum number of steps the local solver is allowed to take in each local run during multistart in pre-processing.
+    double UBP_maxTimePreprocessing         = 100.0;                    //!< Maximum CPU time the local solver is allowed to take in each local run during multistart in pre-processing. Usually, this should only be a fall-back option to prevent truly getting stuck in local solution.
+    ubp::UBP_SOLVER UBP_solverBab           = ubp::UBP_SOLVER_SLSQP;    //!< Solver to be used during Branch-and-Bound. See documentation of ubp::UBP_SOLVER for possible values.
+    unsigned UBP_maxStepsBab                = 3;                        //!< Maximum number of steps the local solver is allowed to take at each BaB node.
+    double UBP_maxTimeBab                   = 10.0;                     //!< Maximum CPU time the local solver is allowed to take at each BaB node. Usually, this should only be a fall-back option to prevent truly getting stuck in local solution.
+    bool UBP_ignoreNodeBounds               = false;                    //!< Flag indicating whether the UBP solvers should ignore the box constraints of the current node during the B&B (and consider only the ones of the root node instead).
     /**@}*/
 
     /**
     * @name Epsilon-constraint settings
     */
     /**@{*/
-    unsigned EC_nPoints;    //!< Number of points on the Pareto front to be computed in epsilon-constraint method (only available via the C++ API)
-    /**@}*/
-
-    /**
-    * @name Output
-    */
-    /**@{*/
-    VERB BAB_verbosity;                       //!< How much output to print from Branch & Bound solver. Possible values are VERB_NONE (=0), VERB_NORMAL (=1), VERB_ALL (=2)
-    VERB LBP_verbosity;                       //!< How much output to print from Lower Bounding Solver. Possible values are VERB_NONE (=0), VERB_NORMAL (=1), VERB_ALL (=2)
-    VERB UBP_verbosity;                       //!< How much output to print from Upper Bounding Solver. Possible values are VERB_NONE (=0), VERB_NORMAL (=1), VERB_ALL (=2)
-    unsigned BAB_printFreq;                   //!< After how many iterations to print progress on screen (additionally, a line is printed when a new incumbent is found)
-    unsigned BAB_logFreq;                     //!< Like BAB_printFreq, but for log
-    OUTSTREAM_VERB outstreamVerbosity;        //!< Where to print or write the output. Possible values are OUTSTREAM_NONE (=0), OUTSTREAM_OUTSTREAM (=1), OUTSTREAM_LOG (=2),  OUTSTREAM_BOTH (=3)
-    bool writeLog;                            //!< Whether to write a log file (named bab.log)
-    unsigned writeToLogSec;                   //!< Write to log file after a given ammount of CPU seconds
-    bool writeResFile;                        //!< Whether to write an additional file containing non-standard information about the solved model
-    bool writeCsv;                            //!< Whether to write csv-log files (named bab_Report_General.csv and bab_Report_Iterations.csv).
-    bool writeJson;                           //!< Whether to write a json-log file (named bab.json).
-    bool PRE_printEveryLocalSearch;           //!< Whether to print every run during multistart at the root node
-    PARSING_LANGUAGE writeToOtherLanguage;    //!< Write to a file in a different modeling language
+    unsigned EC_nPoints = 10;    //!< Number of points on the Pareto front to be computed in epsilon-constraint method (only available via the C++ API)
     /**@}*/
 };
 
diff --git a/inc/ubp.h b/inc/ubp.h
index c96286aa6c7454f9b0c5c829430a8da8e73c7a8b..5ecc248b0344e49c0a54ef154508e30f458bd861 100644
--- a/inc/ubp.h
+++ b/inc/ubp.h
@@ -7,11 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file ubp.h
- *
- * @brief File containing declaration of UpperBoundingSolver class used as base
- *        class for different upper bounding solver wrappers.
- *
  **********************************************************************************/
 
 #pragma once
@@ -74,7 +69,7 @@ class UpperBoundingSolver {
 		* @param[in] useIn communicates what the solver is to be used for
 		*/
     UpperBoundingSolver(mc::FFGraph &DAG, const std::vector<mc::FFVar> &DAGvars, const std::vector<mc::FFVar> &DAGfunctions, const std::vector<babBase::OptimizationVariable> &variables,
-                        const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector<Constraint> *constraintPropertiesIn, UBS_USE useIn);
+                        const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr<Settings> settingsIn, std::shared_ptr<Logger> loggerIn, std::shared_ptr<std::vector<Constraint>> constraintPropertiesIn, UBS_USE useIn);
 
     /**
 		* @brief Virtual destructor, only needed to make sure the correct destructor of the derived classes is called
@@ -192,12 +187,12 @@ class UpperBoundingSolver {
         * @name Pointers to several objects. Note that these are NOT const, since if we want to resolve with MAiNGO, the pointers have to change
         */
     /**@{*/
-    Settings *_maingoSettings;                      /*!< pointer to object holding MAiNGO settings */
-    Logger *_logger;                                /*!< pointer to MAiNGO logger */
-    std::shared_ptr<DagObj> _DAGobj;                /*!< pointer to object containing DAG for upper bounding */
-    UBS_USE _intendedUse;                           /*!< object storing information about the intended use of this UpperBoundingSolver object */
-    std::vector<Constraint> *_constraintProperties; /*!< pointer to constraint properties determined by MAiNGO */
-                                                    /**@}*/
+    std::shared_ptr<Settings> _maingoSettings;                      /*!< pointer to object holding MAiNGO settings */
+    std::shared_ptr<Logger> _logger;                                /*!< pointer to MAiNGO logger */
+    std::shared_ptr<DagObj> _DAGobj;                                /*!< pointer to object containing DAG for upper bounding */
+    UBS_USE _intendedUse;                                           /*!< object storing information about the intended use of this UpperBoundingSolver object */
+    std::shared_ptr<std::vector<Constraint>> _constraintProperties; /*!< pointer to constraint properties determined by MAiNGO */
+                                                                    /**@}*/
 
     /**
 		* @name Internal variables for storing information on the problem
@@ -238,7 +233,7 @@ class UpperBoundingSolver {
 */
 std::shared_ptr<UpperBoundingSolver> make_ubp_solver(mc::FFGraph &DAG, const std::vector<mc::FFVar> &DAGvars, const std::vector<mc::FFVar> &DAGfunctions,
                                                      const std::vector<babBase::OptimizationVariable> &variables, const unsigned nineqIn, const unsigned neqIn,
-                                                     const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector<Constraint> *constraintPropertiesIn,
+                                                     const unsigned nineqSquashIn, std::shared_ptr<Settings> settingsIn, std::shared_ptr<Logger> loggerIn, std::shared_ptr<std::vector<Constraint>> constraintPropertiesIn,
                                                      UpperBoundingSolver::UBS_USE useIn);
 
 
diff --git a/inc/ubpClp.h b/inc/ubpClp.h
index ea02ab6dbef5d769be15af40a3937945d95d6fb0..b80f5707a4844bcb143b401c74d75a1d0fd200f3 100644
--- a/inc/ubpClp.h
+++ b/inc/ubpClp.h
@@ -7,12 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file ubpClp.h
- *
- * @brief File containing declaration of UbpClp class used for solving the upper
- *        bounding problems (or, rather, the entire problem) in the case when the
- *        original problem is an LP.
- *
  **********************************************************************************/
 
 #pragma once
@@ -58,7 +52,7 @@ class UbpClp: public UpperBoundingSolver {
 		* @param[in] useIn communicates what the solver is to be used for
 		*/
     UbpClp(mc::FFGraph& DAG, const std::vector<mc::FFVar>& DAGvars, const std::vector<mc::FFVar>& DAGfunctions, const std::vector<babBase::OptimizationVariable>& variables,
-           const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings* settingsIn, Logger* loggerIn, std::vector<Constraint>* constraintPropertiesIn, UBS_USE useIn);
+           const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr<Settings> settingsIn, std::shared_ptr<Logger> loggerIn, std::shared_ptr<std::vector<Constraint>> constraintPropertiesIn, UBS_USE useIn);
 
   private:
     /**
diff --git a/inc/ubpCplex.h b/inc/ubpCplex.h
index f5010fcbcaef45c5b090b0c7e1a5c8579694b03f..43522ca90073a2ee912ad41f0e1db46023bc84ac 100644
--- a/inc/ubpCplex.h
+++ b/inc/ubpCplex.h
@@ -7,12 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file ubpCplex.h
- *
- * @brief File containing declaration of UbpCplex class used for solving the upper
- *        bounding problems in the case when the underlying problem is an LP, MIP,
- *        QCP, or MIQCP.
- *
  **********************************************************************************/
 
 #pragma once
@@ -57,12 +51,12 @@ class UbpCplex: public UpperBoundingSolver {
         * @param[in] useIn communicates what the solver is to be used for
         */
     UbpCplex(mc::FFGraph &DAG, const std::vector<mc::FFVar> &DAGvars, const std::vector<mc::FFVar> &DAGfunctions, const std::vector<babBase::OptimizationVariable> &variables,
-             const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector<Constraint> *constraintPropertiesIn, UBS_USE useIn);
+             const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr<Settings> settingsIn, std::shared_ptr<Logger> loggerIn, std::shared_ptr<std::vector<Constraint>> constraintPropertiesIn, UBS_USE useIn);
 
     /**
         * @brief Destructor
         */
-    ~UbpCplex();
+    ~UbpCplex() { _terminate_cplex(); }
 
   private:
     /**
diff --git a/inc/ubpDagObj.h b/inc/ubpDagObj.h
index f9c1ef56ed50c5de5aea7fc23b6658714cbd3edf..085b00db372eb8ef460af17109c35ac1a2f5c3fc 100644
--- a/inc/ubpDagObj.h
+++ b/inc/ubpDagObj.h
@@ -7,11 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file ubpDagObj.h
- *
- * @brief File containing declaration of ubp::DagObj struct which stores everything
- *        needed for DAG evaluation for upper bounding
- *
  **********************************************************************************/
 
 #pragma once
@@ -87,9 +82,9 @@ struct DagObj {
     mc::FFSubgraph subgraphIneqSquashIneq;          /*!< subgraph holding the list of operations of the normal and squash inequalities */
     mc::FFSubgraph subgraphIneqEq;                  /*!< subgraph holding the list of operations of the (squash) inequalities & equalities */
 
-    Settings* maingoSettings; /*!< pointer to settings file, used for exception handling */
-    Logger* logger;           /*!< pointer to logger, used for exception handling */
-    bool warningFlag;         /*!< flag indicating whether the user already got a warning triggered by an exception in mc::fadbad, used to avoid excessive output */
+    std::shared_ptr<Settings> maingoSettings; /*!< pointer to settings file, used for exception handling */
+    std::shared_ptr<Logger> logger;           /*!< pointer to logger, used for exception handling */
+    bool warningFlag;                         /*!< flag indicating whether the user already got a warning triggered by an exception in mc::fadbad, used to avoid excessive output */
     /**@}*/
 
     /**
@@ -108,7 +103,7 @@ struct DagObj {
 	*/
     DagObj(mc::FFGraph& DAG, const std::vector<mc::FFVar>& DAGvars, const std::vector<mc::FFVar>& DAGfunctions,
            const std::vector<babBase::OptimizationVariable>& variables, const unsigned nineq, const unsigned neq,
-           const unsigned nineqSquash, std::vector<Constraint>* constraintProperties, Settings* settingsIn, Logger* loggerIn):
+           const unsigned nineqSquash, std::shared_ptr<std::vector<Constraint>> constraintProperties, std::shared_ptr<Settings> settingsIn, std::shared_ptr<Logger> loggerIn):
         maingoSettings(settingsIn),
         logger(loggerIn)
     {
diff --git a/inc/ubpEvaluators.h b/inc/ubpEvaluators.h
index b9d88a823d4903348d9a72e08174d1d81c996f43..8fd4546b918012e8a3d691371378880c58059484 100644
--- a/inc/ubpEvaluators.h
+++ b/inc/ubpEvaluators.h
@@ -7,10 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file ubpEvaluators.h
- *
- * @brief File containing declaration of functions for evaluating the model.
- *
  **********************************************************************************/
 
 #pragma once
diff --git a/inc/ubpIpopt.h b/inc/ubpIpopt.h
index 84664a048bd902922168c3bf83f05622cda3c389..ccd86f0f68d8ee412fb155d97dac9f970a30f127 100644
--- a/inc/ubpIpopt.h
+++ b/inc/ubpIpopt.h
@@ -7,11 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file ubpIpopt.h
- *
- * @brief File containing declaration of UbpIpopt class used for solving the
- *        upper bounding problems.
- *
  **********************************************************************************/
 
 #pragma once
@@ -55,7 +50,7 @@ class UbpIpopt: public UpperBoundingSolver {
 		* @param[in] useIn communicates what the solver is to be used for
 		*/
     UbpIpopt(mc::FFGraph &DAG, const std::vector<mc::FFVar> &DAGvars, const std::vector<mc::FFVar> &DAGfunctions, const std::vector<babBase::OptimizationVariable> &variables,
-             const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector<Constraint> *constraintPropertiesIn, UBS_USE useIn);
+             const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr<Settings> settingsIn, std::shared_ptr<Logger> loggerIn, std::shared_ptr<std::vector<Constraint>> constraintPropertiesIn, UBS_USE useIn);
 
 
   private:
diff --git a/inc/ubpKnitro.h b/inc/ubpKnitro.h
index b3b5b22f1678f4da3688295248b5a5f8fee9ddfa..6caca56ecd61fc717e0f1b422380985a6881d86f 100644
--- a/inc/ubpKnitro.h
+++ b/inc/ubpKnitro.h
@@ -7,11 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file ubpKnitro.h
- *
- * @brief File containing declaration of UbpKnitro class used for solving the
- *        upper bounding problems.
- *
  **********************************************************************************/
 
 #pragma once
@@ -53,7 +48,7 @@ class UbpKnitro: public UpperBoundingSolver {
 		* @param[in] useIn communicates what the solver is to be used for
 		*/
     UbpKnitro(mc::FFGraph &DAG, const std::vector<mc::FFVar> &DAGvars, const std::vector<mc::FFVar> &DAGfunctions, const std::vector<babBase::OptimizationVariable> &variables,
-              const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector<Constraint> *constraintPropertiesIn, UBS_USE useIn);
+              const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr<Settings> settingsIn, std::shared_ptr<Logger> loggerIn, std::shared_ptr<std::vector<Constraint>> constraintPropertiesIn, UBS_USE useIn);
 
     /**
 		* @brief Destructor
diff --git a/inc/ubpNLopt.h b/inc/ubpNLopt.h
index bbfa1c039fd954fcbf1c59567994329344c9bb5d..34ab615221de00e88fbb8039dc9288b06cfd485f 100644
--- a/inc/ubpNLopt.h
+++ b/inc/ubpNLopt.h
@@ -7,11 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file ubpNLopt.h
- *
- * @brief File containing declaration of UbpNLopt class used for solving the
- *        upper bounding problems.
- *
  **********************************************************************************/
 
 #pragma once
@@ -54,7 +49,7 @@ class UbpNLopt: public UpperBoundingSolver {
 		* @param[in] useIn communicates what the solver is to be used for
 		*/
     UbpNLopt(mc::FFGraph& DAG, const std::vector<mc::FFVar>& DAGvars, const std::vector<mc::FFVar>& DAGfunctions, const std::vector<babBase::OptimizationVariable>& variables,
-             const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings* settingsIn, Logger* loggerIn, std::vector<Constraint>* constraintPropertiesIn, UBS_USE useIn);
+             const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr<Settings> settingsIn, std::shared_ptr<Logger> loggerIn, std::shared_ptr<std::vector<Constraint>> constraintPropertiesIn, UBS_USE useIn);
 
   private:
     /**
diff --git a/inc/ubpQuadExpr.h b/inc/ubpQuadExpr.h
index bef8c6afcae3fc35c5d3d4b7b0779472e6509739..20d2604daae35c696de2b8df929637f9cf5289a7 100644
--- a/inc/ubpQuadExpr.h
+++ b/inc/ubpQuadExpr.h
@@ -7,16 +7,11 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file ubpQuadExpr.h
- *
- * @brief File containing declaration of structure UbpQuadExpr used to compute
- *        coefficients of linear and quadratic terms in (MIQ)Ps.
- *
  **********************************************************************************/
 
 #pragma once
 
-#include "exceptions.h"
+#include "MAiNGOException.h"
 
 #include "mcop.hpp"
 
diff --git a/inc/ubpStructure.h b/inc/ubpStructure.h
index 25270b97d222e270e18b4c9853d80a4a7a24c480..52a73be18feb4a6e9d5c5202c2d05a371bc3c846 100644
--- a/inc/ubpStructure.h
+++ b/inc/ubpStructure.h
@@ -7,11 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file ubpStructure.h
- *
- * @brief File containing definition of struct for storing information on the
- *        structure and sparsity patterns of problems for upper bounding.
- *
  **********************************************************************************/
 
 #pragma once
diff --git a/inc/utilities.h b/inc/utilities.h
index 95c5bb8272ddb21b8d2e86c2f86c8f265f2bb2f6..621a66ddb8c5741bc8662a995eea8a815843a147 100644
--- a/inc/utilities.h
+++ b/inc/utilities.h
@@ -7,11 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file utilities.h
- *
- * @brief File containing a few auxiliary functions needed in different 
- *        parts of MAiNGO
- *
  **********************************************************************************/
 
 #pragma once
@@ -53,7 +48,7 @@ larger_or_equal_within_tolerance(const double LBD, const double UBD, Settings* m
 inline std::string
 print_version()
 {
-    return "v0.3.0 ";
+    return "v0.4.0 ";
 }
 
 
diff --git a/inc/variableLister.h b/inc/variableLister.h
index 2ef92e0f4ab74854b5cb14df99f0dd22b65a1052..4fbd2c76a31e13d817df7c9c864a41fa9ba09715 100644
--- a/inc/variableLister.h
+++ b/inc/variableLister.h
@@ -7,11 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file variableLister.h
- *
- * @brief File declaring the VariableLister class that lists given symbols
- *        as OptimizationVariable objects.
- *
  **********************************************************************************/
 
 #pragma once
diff --git a/pymaingo/Readme.md b/pymaingo/Readme.md
new file mode 100644
index 0000000000000000000000000000000000000000..4a2d4ec22d29d92a0f6b381b32585aae097cda16
--- /dev/null
+++ b/pymaingo/Readme.md
@@ -0,0 +1,16 @@
+# pymaingo - A Python interface for MAiNGO
+
+pymaingo is the Python interface of MAiNGO, the McCormick-based Algorithm for mixed-integer Nonlinear Global Optimization.
+For information on MAiNGO, please visit the [MAiNGO website](http://permalink.avt.rwth-aachen.de/?id=729717).
+The open source version of MAiNGO is available on our [GitLab page](https://git.rwth-aachen.de/avt.svt/public/maingo).
+
+## Obtaining Pymaingo
+
+Currently, pymaingo needs to be built from source along with MAiNGO.
+To do so, obtain the code from our [GitLab page](https://git.rwth-aachen.de/avt.svt/public/maingo) and follow the instructions provided there.
+
+## Using Pymaingo
+
+Pymaingo provides Python bindings (enabled by [pybind11](https://pybind11.readthedocs.io/en/stable/index.html)) for the C++ API of MAiNGO.
+Details on how to use it are available in the documentation on the MAiNGO [GitLab page](https://git.rwth-aachen.de/avt.svt/public/maingo).
+Example problems can be found in the [GitLab page](https://git.rwth-aachen.de/avt.svt/public/maingo/-/tree/master/examples) in the MAiNGO repository.
\ No newline at end of file
diff --git a/pymaingo/__init__.py b/pymaingo/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..1cc891cd00cf86948eb15e542d7ea3458d53aa18
--- /dev/null
+++ b/pymaingo/__init__.py
@@ -0,0 +1 @@
+from ._pymaingo import *
\ No newline at end of file
diff --git a/pymaingo/_pymaingo.cpp b/pymaingo/_pymaingo.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..0b7189a942675d6f805da59761bbd848e337a6cd
--- /dev/null
+++ b/pymaingo/_pymaingo.cpp
@@ -0,0 +1,407 @@
+/**********************************************************************************
+ * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ **********************************************************************************/
+
+#include "MAiNGO.h"
+#include "MAiNGOmodel.h"
+#include "MAiNGOmodelEpsCon.h"
+#include "functionWrapper.h"
+
+#include "babOptVar.h"
+
+#include "ffunc.hpp"
+
+#include <pybind11/operators.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+
+// First, create a dummy classes that is needed later to expose the MAiNGOmodel base class
+// so that it can be used and inherited from in Python
+class PyMAiNGOmodel: public maingo::MAiNGOmodel {
+  public:
+    using maingo::MAiNGOmodel::MAiNGOmodel;
+
+    std::vector<maingo::OptimizationVariable> get_variables() override
+    {
+        PYBIND11_OVERLOAD_PURE(
+            std::vector<maingo::OptimizationVariable>, /* Return type */
+            maingo::MAiNGOmodel,                       /* Parent class */
+            get_variables,                             /* Name of function in C++ (must match Python name) */
+                                                       /* Argument(s) - here none */
+        );
+    }
+
+    maingo::EvaluationContainer evaluate(const std::vector<mc::FFVar>& vars) override
+    {
+        PYBIND11_OVERLOAD_PURE(
+            maingo::EvaluationContainer, /* Return type */
+            maingo::MAiNGOmodel,         /* Parent class */
+            evaluate,                    /* Name of function in C++ (must match Python name) */
+            vars                         /* Argument(s) */
+        );
+    }
+
+    std::vector<double> get_initial_point() override
+    {
+        PYBIND11_OVERLOAD(
+            std::vector<double>, /* Return type */
+            maingo::MAiNGOmodel, /* Parent class */
+            get_initial_point,   /* Name of function in C++ (must match Python name) */
+                                 /* Argument(s) - here none */
+        );
+    }
+};
+
+
+// Definition of the actual Python module called _pymaingo
+PYBIND11_MODULE(_pymaingo, m)
+{
+    m.doc() = "MAiNGO - McCormick-based Algorithm for mixed-integer Nonlinear Global Optimization";
+
+    // Frist create bindings for the actual MAiNGO object as well as the enums for the return code of the solve method
+    py::class_<maingo::MAiNGO>(m, "MAiNGO")
+        .def(py::init<std::shared_ptr<maingo::MAiNGOmodel>>())
+        .def("solve", &maingo::MAiNGO::solve)
+        .def("set_model", &maingo::MAiNGO::set_model)
+        .def("set_option", py::overload_cast<const std::string&, const double>(&maingo::MAiNGO::set_option))
+        .def("set_option", py::overload_cast<const std::string&, const bool>(&maingo::MAiNGO::set_option))
+        .def("set_option", py::overload_cast<const std::string&, const int>(&maingo::MAiNGO::set_option))
+        .def("read_settings", &maingo::MAiNGO::read_settings, py::arg("settingsFileName") = "MAiNGOSettings.txt")
+        .def("set_log_file_name", &maingo::MAiNGO::set_log_file_name)
+        .def("set_result_file_name", &maingo::MAiNGO::set_result_file_name)
+        .def("set_solution_and_statistics_csv_file_name", &maingo::MAiNGO::set_solution_and_statistics_csv_file_name)
+        .def("set_iterations_csv_file_name", &maingo::MAiNGO::set_iterations_csv_file_name)
+        .def("set_json_file_name", &maingo::MAiNGO::set_json_file_name)
+        .def("write_model_to_file_in_other_language", &maingo::MAiNGO::write_model_to_file_in_other_language,
+             py::arg("writingLanguage"), py::arg("fileName") = "MAiNGO_written_model", py::arg("solverName") = "SCIP",
+             py::arg("useMinMax") = true, py::arg("useTrig") = true, py::arg("ignoreBoundingFuncs") = false, py::arg("writeRelaxationOnly") = true)
+        .def("evaluate_model_at_point", &maingo::MAiNGO::evaluate_model_at_point)
+        .def("evaluate_model_at_solution_point", &maingo::MAiNGO::evaluate_model_at_solution_point)
+        .def("evaluate_additional_outputs_at_point", &maingo::MAiNGO::evaluate_additional_outputs_at_point)
+        .def("evaluate_additional_outputs_at_solution_point", &maingo::MAiNGO::evaluate_additional_outputs_at_solution_point)
+        .def("get_cpu_solution_time", &maingo::MAiNGO::get_cpu_solution_time)
+        .def("get_final_abs_gap", &maingo::MAiNGO::get_final_abs_gap)
+        .def("get_final_LBD", &maingo::MAiNGO::get_final_LBD)
+        .def("get_final_rel_gap", &maingo::MAiNGO::get_final_rel_gap)
+        .def("get_iterations", &maingo::MAiNGO::get_iterations)
+        .def("get_LBP_count", &maingo::MAiNGO::get_LBP_count)
+        .def("get_max_nodes_in_memory", &maingo::MAiNGO::get_max_nodes_in_memory)
+        .def("get_objective_value", &maingo::MAiNGO::get_objective_value)
+        .def("get_solution_point", &maingo::MAiNGO::get_solution_point)
+        .def("get_status", &maingo::MAiNGO::get_status)
+        .def("get_UBP_count", &maingo::MAiNGO::get_UBP_count)
+        .def("get_wallclock_solution_time", &maingo::MAiNGO::get_wallclock_solution_time);
+    py::enum_<maingo::RETCODE>(m, "RETCODE")
+        .value("GLOBALLY_OPTIMAL", maingo::RETCODE::GLOBALLY_OPTIMAL)
+        .value("INFEASIBLE", maingo::RETCODE::INFEASIBLE)
+        .value("FEASIBLE_POINT", maingo::RETCODE::FEASIBLE_POINT)
+        .value("NO_FEASIBLE_POINT_FOUND", maingo::RETCODE::NO_FEASIBLE_POINT_FOUND)
+        .value("BOUND_TARGETS", maingo::RETCODE::BOUND_TARGETS)
+        .value("NOT_SOLVED_YET", maingo::RETCODE::NOT_SOLVED_YET)
+        .value("JUST_A_WORKER_DONT_ASK_ME", maingo::RETCODE::JUST_A_WORKER_DONT_ASK_ME)
+        .export_values();
+    py::enum_<maingo::WRITING_LANGUAGE>(m, "WRITING_LANGUAGE")
+        .value("LANG_NONE", maingo::WRITING_LANGUAGE::LANG_NONE)
+        .value("LANG_ALE", maingo::WRITING_LANGUAGE::LANG_ALE)
+        .value("LANG_GAMS", maingo::WRITING_LANGUAGE::LANG_GAMS)
+        .export_values();
+
+    // Expose enums for settings
+    py::enum_<maingo::VERB>(m, "VERB")
+        .value("VERB_NONE", maingo::VERB::VERB_NONE)
+        .value("VERB_NORMAL", maingo::VERB::VERB_NORMAL)
+        .value("VERB_ALL", maingo::VERB::VERB_ALL)
+        .export_values();
+    py::enum_<maingo::LOGGING_DESTINATION>(m, "LOGGING_DESTINATION")
+        .value("LOGGING_NONE", maingo::LOGGING_DESTINATION::LOGGING_NONE)
+        .value("LOGGING_OUTSTREAM", maingo::LOGGING_DESTINATION::LOGGING_OUTSTREAM)
+        .value("LOGGING_FILE", maingo::LOGGING_DESTINATION::LOGGING_FILE)
+        .value("LOGGING_FILE_AND_STREAM", maingo::LOGGING_DESTINATION::LOGGING_FILE_AND_STREAM)
+        .export_values();
+    py::enum_<maingo::lbp::LBP_SOLVER>(m, "LBP_SOLVER")
+        .value("LBP_SOLVER_MAiNGO", maingo::lbp::LBP_SOLVER::LBP_SOLVER_MAiNGO)
+        .value("LBP_SOLVER_INTERVAL", maingo::lbp::LBP_SOLVER::LBP_SOLVER_INTERVAL)
+        .value("LBP_SOLVER_CPLEX", maingo::lbp::LBP_SOLVER::LBP_SOLVER_CPLEX)
+        .value("LBP_SOLVER_CLP", maingo::lbp::LBP_SOLVER::LBP_SOLVER_CLP)
+        .export_values();
+    py::enum_<maingo::lbp::LINP>(m, "LINP")
+        .value("LINP_MID", maingo::lbp::LINP_MID)
+        .value("LINP_INCUMBENT", maingo::lbp::LINP::LINP_INCUMBENT)
+        .value("LINP_KELLEY", maingo::lbp::LINP::LINP_KELLEY)
+        .value("LINP_SIMPLEX", maingo::lbp::LINP::LINP_SIMPLEX)
+        .value("LINP_RANDOM", maingo::lbp::LINP::LINP_RANDOM)
+        .value("LINP_KELLEY_SIMPLEX", maingo::lbp::LINP::LINP_KELLEY_SIMPLEX)
+        .export_values();
+    py::enum_<maingo::ubp::UBP_SOLVER>(m, "UBP_SOLVER")
+        .value("UBP_SOLVER_EVAL", maingo::ubp::UBP_SOLVER::UBP_SOLVER_EVAL)
+        .value("UBP_SOLVER_COBYLA", maingo::ubp::UBP_SOLVER::UBP_SOLVER_COBYLA)
+        .value("UBP_SOLVER_BOBYQA", maingo::ubp::UBP_SOLVER::UBP_SOLVER_BOBYQA)
+        .value("UBP_SOLVER_LBFGS", maingo::ubp::UBP_SOLVER::UBP_SOLVER_LBFGS)
+        .value("UBP_SOLVER_SLSQP", maingo::ubp::UBP_SOLVER::UBP_SOLVER_SLSQP)
+        .value("UBP_SOLVER_IPOPT", maingo::ubp::UBP_SOLVER::UBP_SOLVER_IPOPT)
+        .value("UBP_SOLVER_KNITRO", maingo::ubp::UBP_SOLVER::UBP_SOLVER_KNITRO)
+        .export_values();
+
+    // Expose the MAiNGOmodel class via the dummy class defined above
+    py::class_<maingo::MAiNGOmodel, PyMAiNGOmodel, std::shared_ptr<maingo::MAiNGOmodel>>(m, "MAiNGOmodel")
+        .def(py::init<>())
+        .def("get_variables", &maingo::MAiNGOmodel::get_variables)
+        .def("get_initial_point", &maingo::MAiNGOmodel::get_initial_point)
+        .def("evaluate", &maingo::MAiNGOmodel::evaluate);
+
+    // Expose everything needed to create variables
+    py::class_<babBase::Bounds>(m, "Bounds")
+        .def(py::init<const double, const double>());
+    py::enum_<babBase::enums::VT>(m, "VT")
+        .value("VT_CONTINUOUS", babBase::enums::VT::VT_CONTINUOUS)
+        .value("VT_BINARY", babBase::enums::VT::VT_BINARY)
+        .value("VT_INTEGER", babBase::enums::VT::VT_INTEGER)
+        .export_values();
+
+    py::class_<babBase::OptimizationVariable>(m, "OptimizationVariable")
+        .def(py::init<const babBase::Bounds&, const babBase::enums::VT, const unsigned, const std::string>())
+        .def(py::init<const babBase::Bounds&, const babBase::enums::VT, const unsigned>())
+        .def(py::init<const babBase::Bounds&, const babBase::enums::VT, const std::string>())
+        .def(py::init<const babBase::Bounds&, const unsigned, const std::string>())
+        .def(py::init<const babBase::Bounds&, const babBase::enums::VT>())
+        .def(py::init<const babBase::Bounds&, const unsigned>())
+        .def(py::init<const babBase::Bounds&, const std::string>())
+        .def(py::init<const babBase::Bounds&>())
+        .def(py::init<const babBase::enums::VT, const unsigned, const std::string>())
+        .def(py::init<const babBase::enums::VT, const unsigned>())
+        .def(py::init<const babBase::enums::VT, const std::string>())
+        .def(py::init<const babBase::enums::VT>())
+        .def(py::init<const unsigned>())
+        .def(py::init<const unsigned, const std::string>())
+        .def(py::init<const std::string>())
+        .def("get_lower_bound", &babBase::OptimizationVariable::get_lower_bound)
+        .def("get_upper_bound", &babBase::OptimizationVariable::get_upper_bound);
+
+    // Expose FFVar along with the overloaded operators - so we can write the evaluate function
+    py::class_<mc::FFVar>(m, "FFVar")
+        .def(py::init<>())
+        .def(py::init<double>())
+        .def(py::init<int>())
+        .def(py::self * py::self)
+        .def(py::self * float())
+        .def(float() * py::self)
+        .def(py::self + py::self)
+        .def(py::self + float())
+        .def(float() + py::self)
+        .def(+py::self)
+        .def(py::self - py::self)
+        .def(py::self - float())
+        .def(float() - py::self)
+        .def(-py::self)
+        .def(py::self / py::self)
+        .def(py::self / float())
+        .def(float() / py::self)
+        .def(py::self == py::self)
+        .def(py::self += py::self)
+        .def(py::self -= py::self)
+        .def(py::self *= py::self)
+        .def(py::self /= py::self)
+        .def(
+            "__rpow__", [](const mc::FFVar& x, const double d) { return mc::pow(d, x); }, py::is_operator())
+        .def("__pow__", py::overload_cast<const mc::FFVar&, const double>(&mc::pow), py::is_operator())
+        .def("__pow__", py::overload_cast<const mc::FFVar&, const int>(&mc::pow), py::is_operator())
+        .def("__pow__", py::overload_cast<const mc::FFVar&, const mc::FFVar&>(&mc::pow), py::is_operator());
+    py::implicitly_convertible<double, mc::FFVar>();
+    py::implicitly_convertible<int, mc::FFVar>();
+
+
+    // Expose all intrinsic functions (beyond the operators)
+    m.def("inv", py::overload_cast<const mc::FFVar&>(&mc::inv), "Multiplicative inverse function");
+    m.def("sqr", py::overload_cast<const mc::FFVar&>(&mc::sqr), "Square function");
+    m.def("exp", py::overload_cast<const mc::FFVar&>(&mc::exp), "Exponential function");
+    m.def("log", py::overload_cast<const mc::FFVar&>(&mc::log), "Natural logartihm");
+    m.def("xlog", py::overload_cast<const mc::FFVar&>(&mc::xlog), "x * log(x)");
+    m.def("fabsx_times_x", py::overload_cast<const mc::FFVar&>(&mc::fabsx_times_x), "|x| * x");
+    m.def("xexpax", py::overload_cast<const mc::FFVar&, const double>(&mc::xexpax), "x*exp(a*x)");
+    m.def("arh", py::overload_cast<const mc::FFVar&, const double>(&mc::arh), "exp(-k/x)");
+    m.def("vapor_pressure", py::overload_cast<const mc::FFVar&, const double, const double, const double, const double, const double, const double, const double, const double, const double, const double, const double>(&mc::vapor_pressure), "Vapor pressure",
+          py::arg("x"), py::arg("type"), py::arg("p1"), py::arg("p2"), py::arg("p3"), py::arg("p4") = 0, py::arg("p5") = 0, py::arg("p6") = 0, py::arg("p7") = 0, py::arg("p8") = 0, py::arg("p9") = 0, py::arg("p10") = 0);
+    m.def("ideal_gas_enthalpy", py::overload_cast<const mc::FFVar&, const double, const double, const double, const double, const double, const double, const double, const double, const double>(&mc::ideal_gas_enthalpy), "Ideal gas enthalpy",
+          py::arg("x"), py::arg("0"), py::arg("type"), py::arg("p1"), py::arg("p2"), py::arg("p3"), py::arg("p4"), py::arg("p5"), py::arg("p6") = 0, py::arg("p7") = 0);
+    m.def("saturation_temperature", py::overload_cast<const mc::FFVar&, const double, const double, const double, const double, const double, const double, const double, const double, const double, const double, const double>(&mc::saturation_temperature), "Saturation temperature",
+          py::arg("x"), py::arg("type"), py::arg("p1"), py::arg("p2"), py::arg("p3"), py::arg("p4") = 0, py::arg("p5") = 0, py::arg("p6") = 0, py::arg("p7") = 0, py::arg("p8") = 0, py::arg("p9") = 0, py::arg("p10") = 0);
+    m.def("enthalpy_of_vaporization", py::overload_cast<const mc::FFVar&, const double, const double, const double, const double, const double, const double, const double>(&mc::enthalpy_of_vaporization), "Enthalpy of vaporization",
+          py::arg("x"), py::arg("type"), py::arg("p1"), py::arg("p2"), py::arg("p3"), py::arg("p4"), py::arg("p5"), py::arg("p6") = 0);
+    m.def("cost_function", py::overload_cast<const mc::FFVar&, const double, const double, const double, const double>(&mc::cost_function), "Cost function");
+    m.def("sum_div", py::overload_cast<const std::vector<mc::FFVar>&, const std::vector<double>&>(&mc::sum_div), "sum_div: a*x_0 / (b_0*x*0 + ... + b_n*x_n)");
+    m.def("xlog_sum", py::overload_cast<const std::vector<mc::FFVar>&, const std::vector<double>&>(&mc::xlog_sum), "x_0*log(a_0*x_0 + ... + a_n*x_n)");
+    m.def("nrtl_tau", py::overload_cast<const mc::FFVar&, const double, const double, const double, const double>(&mc::nrtl_tau), "NRTL tau");
+    m.def("nrtl_dtau", py::overload_cast<const mc::FFVar&, const double, const double, const double>(&mc::nrtl_dtau), "NRTL dTau/dT");
+    m.def("nrtl_G", py::overload_cast<const mc::FFVar&, const double, const double, const double, const double, const double>(&mc::nrtl_G), "NRTL G");
+    m.def("nrtl_Gtau", py::overload_cast<const mc::FFVar&, const double, const double, const double, const double, const double>(&mc::nrtl_Gtau), "NRTL G*tau");
+    m.def("nrtl_Gdtau", py::overload_cast<const mc::FFVar&, const double, const double, const double, const double, const double>(&mc::nrtl_Gdtau), "NRTL G*dtau/dT");
+    m.def("nrtl_dGtau", py::overload_cast<const mc::FFVar&, const double, const double, const double, const double, const double>(&mc::nrtl_dGtau), "NRTL tau*dG/dT");
+    m.def("iapws", py::overload_cast<const mc::FFVar&, const double>(&mc::iapws), "IAPWS (1D)");
+    m.def("iapws", py::overload_cast<const mc::FFVar&, const mc::FFVar&, const double>(&mc::iapws), " IAPWS (2D)");
+    m.def("p_sat_ethanol_schroeder", py::overload_cast<const mc::FFVar&>(&mc::p_sat_ethanol_schroeder), "psat Ethanol Schroeder");
+    m.def("rho_vap_sat_ethanol_schroeder", py::overload_cast<const mc::FFVar&>(&mc::rho_vap_sat_ethanol_schroeder), "rhovap Ethanol Schroeder");
+    m.def("rho_liq_sat_ethanol_schroeder", py::overload_cast<const mc::FFVar&>(&mc::rho_liq_sat_ethanol_schroeder), "rholiq Ethanol Schroeder");
+    m.def("covariance_function", py::overload_cast<const mc::FFVar&, const double>(&mc::covariance_function), "Covariance function");
+    m.def("acquisition_function", py::overload_cast<const mc::FFVar&, const mc::FFVar&, const double, const double>(&mc::acquisition_function), "Acquisition function");
+    m.def("gaussian_probability_density_function", py::overload_cast<const mc::FFVar&>(&mc::gaussian_probability_density_function), "Probability density function");
+    m.def("regnormal", py::overload_cast<const mc::FFVar&, const double, const double>(&mc::regnormal), "Regnormal: x / sqrt(a+b*x^2)");
+    m.def("pos", py::overload_cast<const mc::FFVar&>(&mc::pos), "pos(x) - cuts off convex relaxation at eps>0");
+    m.def("neg", py::overload_cast<const mc::FFVar&>(&mc::neg), "neg(x) - cuts off concave relaxation at -eps<0");
+    m.def("lb_func", py::overload_cast<const mc::FFVar&, const double>(&mc::lb_func), "lbfunc(x,a) - cuts off convex relaxation at a");
+    m.def("ub_func", py::overload_cast<const mc::FFVar&, const double>(&mc::ub_func), "ubfunc(x,a) - cuts off concave relaxation at a");
+    m.def("bounding_func", py::overload_cast<const mc::FFVar&, const double, const double>(&mc::bounding_func), "boundingfunc(x,a,b)  - cuts off relaxations to be within [a,b]");
+    m.def("squash_node", py::overload_cast<const mc::FFVar&, const double, const double>(&mc::squash_node), "Squashing node");    // this node is meant to be used for better reduced space formulations
+    m.def("sqrt", py::overload_cast<const mc::FFVar&>(&mc::sqrt), "Square root");
+    m.def("fabs", py::overload_cast<const mc::FFVar&>(&mc::fabs), "Absolute value");
+    m.def("cos", py::overload_cast<const mc::FFVar&>(&mc::cos), "Cosine");
+    m.def("sin", py::overload_cast<const mc::FFVar&>(&mc::sin), "Sine");
+    m.def("tan", py::overload_cast<const mc::FFVar&>(&mc::tan), "Tangent");
+    m.def("acos", py::overload_cast<const mc::FFVar&>(&mc::acos), "Inverse cosine");
+    m.def("asin", py::overload_cast<const mc::FFVar&>(&mc::asin), "Inverse sine");
+    m.def("atan", py::overload_cast<const mc::FFVar&>(&mc::atan), "Inverse tangent");
+    m.def("cosh", py::overload_cast<const mc::FFVar&>(&mc::cosh), "Hyperbolic cosine");
+    m.def("sinh", py::overload_cast<const mc::FFVar&>(&mc::sinh), "Hyperbolic sine");
+    m.def("tanh", py::overload_cast<const mc::FFVar&>(&mc::tanh), "Hyperbolic tangent");
+    m.def("coth", py::overload_cast<const mc::FFVar&>(&mc::coth), "Hyperbolic cotangent");
+    m.def("erf", py::overload_cast<const mc::FFVar&>(&mc::erf), "Error function");
+    m.def("erfc", py::overload_cast<const mc::FFVar&>(&mc::erfc), "Complementary error function");
+    m.def("fstep", py::overload_cast<const mc::FFVar&>(&mc::fstep), "Forward step: fstep(x) = 1 if x>=0, and 0 otherwise");
+    m.def("bstep", py::overload_cast<const mc::FFVar&>(&mc::bstep), "Backward step: bstep(x) = 1 if x<0, and o otherwise");
+    m.def("pow", py::overload_cast<const mc::FFVar&, const int>(&mc::pow), "x^n, where n is a natural number");
+    m.def("pow", py::overload_cast<const mc::FFVar&, const double>(&mc::pow), "x^d, where d is a real number");
+    m.def("pow", py::overload_cast<const mc::FFVar&, const mc::FFVar&>(&mc::pow), "x^y, where x and y are both variables");
+    m.def("pow", py::overload_cast<const double, const mc::FFVar&>(&mc::pow), "d^x, where d is a real number");
+    m.def("cheb", py::overload_cast<const mc::FFVar&, const unsigned>(&mc::cheb), "cheb(x,n) = Chebyshev polynomial of degree n");
+
+
+    // More intrinsic functions that require a special twist:
+    // The py::overload_cast has problems with the combination of template and non-template overloads used in MC++
+    // see also https://github.com/pybind/py/issues/1153
+    //  --> need to resort to conventional casts
+    m.def("max", static_cast<mc::FFVar (*)(const mc::FFVar&, const mc::FFVar&)>(&mc::max), "Maximum of two variables");
+    m.def("max", static_cast<mc::FFVar (*)(const double&, const mc::FFVar&)>(&mc::max<double>), "Maximum of a constant and a variable");
+    m.def("max", static_cast<mc::FFVar (*)(const mc::FFVar&, const double&)>(&mc::max<double>), "Maximum of a variable and a constant");
+    m.def("min", static_cast<mc::FFVar (*)(const mc::FFVar&, const mc::FFVar&)>(&mc::min), "Minimum of two variables");
+    m.def("min", static_cast<mc::FFVar (*)(const double&, const mc::FFVar&)>(&mc::min<double>), "Minimum of a constant and a variable");
+    m.def("min", static_cast<mc::FFVar (*)(const mc::FFVar&, const double&)>(&mc::min<double>), "Minimum of a variable and a constant");
+    m.def("lmtd", static_cast<mc::FFVar (*)(const mc::FFVar&, const mc::FFVar&)>(&mc::lmtd), "Log mean temperature difference: lmtd(x,y)");
+    m.def("lmtd", static_cast<mc::FFVar (*)(const double&, const mc::FFVar&)>(&mc::lmtd<double>), "Log mean temperature difference: lmtd(a,x)");
+    m.def("lmtd", static_cast<mc::FFVar (*)(const mc::FFVar&, const double&)>(&mc::lmtd<double>), "Log mean temperature difference: lmtd(x,a)");
+    m.def("rlmtd", static_cast<mc::FFVar (*)(const mc::FFVar&, const mc::FFVar&)>(&mc::rlmtd), "Inverse of log mean temperature difference: rlmtd(x,y)");
+    m.def("rlmtd", static_cast<mc::FFVar (*)(const double&, const mc::FFVar&)>(&mc::rlmtd<double>), "Inverse of log mean temperature difference: rlmtd(a,x)");
+    m.def("rlmtd", static_cast<mc::FFVar (*)(const mc::FFVar&, const double&)>(&mc::rlmtd<double>), "Inverse of log mean temperature difference: rlmtd(x,a)");
+    m.def("euclidean_norm_2d", static_cast<mc::FFVar (*)(const mc::FFVar&, const mc::FFVar&)>(&mc::euclidean_norm_2d), "Euclidean norm in 2d");
+    m.def("euclidean_norm_2d", static_cast<mc::FFVar (*)(const double&, const mc::FFVar&)>(&mc::euclidean_norm_2d<double>), "Euclidean norm in 2d");
+    m.def("euclidean_norm_2d", static_cast<mc::FFVar (*)(const mc::FFVar&, const double&)>(&mc::euclidean_norm_2d<double>), "Euclidean norm in 2d");
+    m.def("expx_times_y", static_cast<mc::FFVar (*)(const mc::FFVar&, const mc::FFVar&)>(&mc::expx_times_y), "exp(x) * y");
+    m.def("expx_times_y", static_cast<mc::FFVar (*)(const double&, const mc::FFVar&)>(&mc::expx_times_y<double>), "exp(a) * x");
+    m.def("expx_times_y", static_cast<mc::FFVar (*)(const mc::FFVar&, const double&)>(&mc::expx_times_y<double>), "exp(x) * a");
+
+
+    // Expose additional function aliases defined in functionWrapper.h
+    m.def("xlogx", py::overload_cast<const mc::FFVar&>(&xlogx), "x * log(x)");
+    m.def("xexpy", py::overload_cast<const mc::FFVar&, const mc::FFVar&>(&xexpy), "exp(x)*y");
+    m.def("norm2", py::overload_cast<const mc::FFVar&, const mc::FFVar&>(&norm2), "Euclidean norm in 2d");
+    m.def("xabsx", py::overload_cast<const mc::FFVar&>(&xabsx), "|x| * x");
+    m.def("squash", py::overload_cast<const mc::FFVar&, const double, const double>(&squash), "Squashing node");
+    m.def("ext_antoine_psat", py::overload_cast<const mc::FFVar&, const double, const double, const double, const double, const double, const double, const double>(&ext_antoine_psat), "Extended Antoine vapor pressure model");
+    m.def("ext_antoine_psat", py::overload_cast<const mc::FFVar&, const std::vector<double>>(&ext_antoine_psat), "Extended Antoine vapor pressure model");
+    m.def("antoine_psat", py::overload_cast<const mc::FFVar&, const double, const double, const double>(&antoine_psat), "Antoine vapor pressure model");
+    m.def("antoine_psat", py::overload_cast<const mc::FFVar&, const std::vector<double>>(&antoine_psat), "Antoine vapor pressure model");
+    m.def("wagner_psat", py::overload_cast<const mc::FFVar&, const double, const double, const double, const double, const double, const double>(&wagner_psat), "Wagner vapor pressure model");
+    m.def("wagner_psat", py::overload_cast<const mc::FFVar&, const std::vector<double>>(&wagner_psat), "Wagner vapor pressure model");
+    m.def("ik_cape_psat", py::overload_cast<const mc::FFVar&, const double, const double, const double, const double, const double, const double, const double, const double, const double, const double>(&ik_cape_psat), "IK Cape vapor pressure model");
+    m.def("ik_cape_psat", py::overload_cast<const mc::FFVar&, const std::vector<double>>(&ik_cape_psat), "IK Cape vapor pressure model");
+    m.def("antoine_tsat", py::overload_cast<const mc::FFVar&, const double, const double, const double>(&antoine_tsat), "Antoine saturation temperature model");
+    m.def("antoine_tsat", py::overload_cast<const mc::FFVar&, const std::vector<double>>(&antoine_tsat), "Antoine saturation temperature model");
+    m.def("aspen_hig", py::overload_cast<const mc::FFVar&, const double, const double, const double, const double, const double, const double, const double>(&aspen_hig), "Aspen ideal gas enthalpy model");
+    m.def("aspen_hig", py::overload_cast<const mc::FFVar&, const double, const std::vector<double>>(&aspen_hig), "Aspen ideal gas enthalpy model");
+    m.def("nasa9_hig", py::overload_cast<const mc::FFVar&, const double, const double, const double, const double, const double, const double, const double, const double>(&nasa9_hig), "NASA 9-coefficient ideal gas enthalpy model");
+    m.def("nasa9_hig", py::overload_cast<const mc::FFVar&, const double, const std::vector<double>>(&nasa9_hig), "NASA 9-coefficient ideal gas enthalpy model");
+    m.def("dippr107_hig", py::overload_cast<const mc::FFVar&, const double, const double, const double, const double, const double, const double>(&dippr107_hig), "DIPPR-107 ideal gas enthalpy model");
+    m.def("dippr107_hig", py::overload_cast<const mc::FFVar&, const double, const std::vector<double>>(&dippr107_hig), "DIPPR-107 ideal gas enthalpy model");
+    m.def("dippr127_hig", py::overload_cast<const mc::FFVar&, const double, const double, const double, const double, const double, const double, const double, const double>(&dippr127_hig), "DIPPR-127 ideal gas enthalpy model");
+    m.def("dippr127_hig", py::overload_cast<const mc::FFVar&, const double, const std::vector<double>>(&dippr127_hig), "DIPPR-127 ideal gas enthalpy model");
+    m.def("watson_dhvap", py::overload_cast<const mc::FFVar&, const double, const double, const double, const double, const double>(&watson_dhvap), "Watson enthalpy of vaporization model");
+    m.def("watson_dhvap", py::overload_cast<const mc::FFVar&, const std::vector<double>>(&watson_dhvap), "Watson enthalpy of vaporization model");
+    m.def("dippr106_dhvap", py::overload_cast<const mc::FFVar&, const double, const double, const double, const double, const double, const double>(&dippr106_dhvap), "DIPPR106 enthalpy of vaporization model");
+    m.def("dippr106_dhvap", py::overload_cast<const mc::FFVar&, const std::vector<double>>(&dippr106_dhvap), "DIPPR106 enthalpy of vaporization model");
+    m.def("nrtl_tau", py::overload_cast<const mc::FFVar&, const std::vector<double>>(&nrtl_tau), "NRTL tau");
+    m.def("nrtl_dtau", py::overload_cast<const mc::FFVar&, const std::vector<double>>(&nrtl_dtau), "NRTL dtau/dT");
+    m.def("nrtl_g", py::overload_cast<const mc::FFVar&, const double, const double, const double, const double, const double>(&nrtl_g), "NRTL G");
+    m.def("nrtl_g", py::overload_cast<const mc::FFVar&, const std::vector<double>>(&nrtl_g), "NRTL G");
+    m.def("nrtl_gtau", py::overload_cast<const mc::FFVar&, const std::vector<double>>(&nrtl_gtau), "NRTL G*tau");
+    m.def("nrtl_gtau", py::overload_cast<const mc::FFVar&, const double, const double, const double, const double, const double>(&nrtl_gtau), "NRTL G*tau");
+    m.def("nrtl_gdtau", py::overload_cast<const mc::FFVar&, const std::vector<double>>(&nrtl_gdtau), "NRTL G*dtau/dT");
+    m.def("nrtl_gdtau", py::overload_cast<const mc::FFVar&, const double, const double, const double, const double, const double>(&nrtl_gdtau), "NRTL G*dtau/dT");
+    m.def("nrtl_dgtau", py::overload_cast<const mc::FFVar&, const std::vector<double>>(&nrtl_dgtau), "NRTL dG/dT*tau");
+    m.def("nrtl_dgtau", py::overload_cast<const mc::FFVar&, const double, const double, const double, const double, const double>(&nrtl_dgtau), "NRTL dG/dT*tau");
+    m.def("schroeder_ethanol_p", py::overload_cast<const mc::FFVar&>(&schroeder_ethanol_p), "psat Ethanol Schroeder");
+    m.def("schroeder_ethanol_rhovap", py::overload_cast<const mc::FFVar&>(&schroeder_ethanol_rhovap), "rhovap Ethanol Schroeder");
+    m.def("schroeder_ethanol_rholiq", py::overload_cast<const mc::FFVar&>(&schroeder_ethanol_rholiq), "rholiq Ethanol Schroeder");
+    m.def("cost_turton", py::overload_cast<const mc::FFVar&, const std::vector<double>>(&cost_turton), "Turton cost function");
+    m.def("cost_turton", py::overload_cast<const mc::FFVar&, const double, const double, const double>(&cost_turton), "Turton cost function");
+    m.def("covar_matern_1", py::overload_cast<const mc::FFVar&>(&covar_matern_1), "Matern 1 covariance function");
+    m.def("covar_matern_3", py::overload_cast<const mc::FFVar&>(&covar_matern_3), "Matern 3 covariance function");
+    m.def("covar_matern_5", py::overload_cast<const mc::FFVar&>(&covar_matern_5), "Matern 5 covariance function");
+    m.def("covar_sqrexp", py::overload_cast<const mc::FFVar&>(&covar_sqrexp), "Squared exponential covariance function");
+    m.def("af_lcb", py::overload_cast<const mc::FFVar&, const mc::FFVar&, const double>(&af_lcb), "Lower confidence bound acquisition function");
+    m.def("af_ei", py::overload_cast<const mc::FFVar&, const mc::FFVar&, const double>(&af_ei), "Expected improvement acquisition function");
+    m.def("af_pi", py::overload_cast<const mc::FFVar&, const mc::FFVar&, const double>(&af_pi), "Probability of improvement acquisition function");
+    m.def("gpdf", py::overload_cast<const mc::FFVar&>(&gpdf), "Gaussian probability density function");
+
+
+    // Expose everything needed to return the result of the evaluate function
+    py::class_<maingo::EvaluationContainer>(m, "EvaluationContainer")
+        .def(py::init<>())
+        .def_readwrite("objective", &maingo::EvaluationContainer::objective)
+        .def_readwrite("obj", &maingo::EvaluationContainer::objective)
+        .def_readwrite("eq", &maingo::EvaluationContainer::eq)
+        .def_readwrite("equalities", &maingo::EvaluationContainer::eq)
+        .def_readwrite("ineq", &maingo::EvaluationContainer::ineq)
+        .def_readwrite("inequalities", &maingo::EvaluationContainer::ineq)
+        .def_readwrite("eqRelaxationOnly", &maingo::EvaluationContainer::eqRelaxationOnly)
+        .def_readwrite("eqRO", &maingo::EvaluationContainer::eqRelaxationOnly)
+        .def_readwrite("equalitiesRelaxationOnly", &maingo::EvaluationContainer::eqRelaxationOnly)
+        .def_readwrite("ineqRelaxationOnly", &maingo::EvaluationContainer::ineqRelaxationOnly)
+        .def_readwrite("ineqRO", &maingo::EvaluationContainer::ineqRelaxationOnly)
+        .def_readwrite("inequalitiesRelaxationOnly", &maingo::EvaluationContainer::ineqRelaxationOnly)
+        .def_readwrite("ineqSquash", &maingo::EvaluationContainer::ineqSquash)
+        .def_readwrite("inequalitiesSquash", &maingo::EvaluationContainer::ineqSquash)
+        .def_readwrite("output", &maingo::EvaluationContainer::output)
+        .def_readwrite("out", &maingo::EvaluationContainer::output);
+    py::class_<maingo::ModelFunction>(m, "ModelFunction")
+        .def(py::init<>())
+        .def(py::init<const mc::FFVar>())
+        .def(py::init<const mc::FFVar, const std::string&>())
+        .def(py::init<const std::vector<mc::FFVar>&>())
+        .def("clear", &maingo::ModelFunction::clear)
+        .def("push_back", py::overload_cast<const mc::FFVar>(&maingo::ModelFunction::push_back))
+        .def("append", py::overload_cast<const mc::FFVar>(&maingo::ModelFunction::push_back))    // Addition to allow for more intuitive use in Python
+        .def("push_back", py::overload_cast<const mc::FFVar, const std::string&>(&maingo::ModelFunction::push_back))
+        .def("push_back", py::overload_cast<const std::vector<mc::FFVar>&>(&maingo::ModelFunction::push_back))
+        .def("push_back", py::overload_cast<const std::vector<mc::FFVar>&, const std::string&>(&maingo::ModelFunction::push_back))
+        .def_readwrite("name", &maingo::ModelFunction::name)
+        .def_readwrite("value", &maingo::ModelFunction::value)
+        .def(py::self == py::self);
+    py::implicitly_convertible<mc::FFVar, maingo::ModelFunction>();
+    py::implicitly_convertible<std::vector<mc::FFVar>, maingo::ModelFunction>();
+    py::class_<maingo::OutputVariable>(m, "OutputVariable")
+        .def(py::init<const std::string, const mc::FFVar>())
+        .def(py::init<const mc::FFVar, const std::string>())
+        .def(py::init<const std::tuple<std::string, mc::FFVar>>())
+        .def(py::init<const std::tuple<mc::FFVar, std::string>>())
+        .def_readwrite("description", &maingo::OutputVariable::description)
+        .def_readwrite("value", &maingo::OutputVariable::value)
+        .def(py::self == py::self);
+}
\ No newline at end of file
diff --git a/pymaingo/tests/individualPythonTests/__init__.py b/pymaingo/tests/individualPythonTests/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/pymaingo/tests/individualPythonTests/testEvaluationContainer.py b/pymaingo/tests/individualPythonTests/testEvaluationContainer.py
new file mode 100644
index 0000000000000000000000000000000000000000..2efe0335e79356c075a0114776838ab8a12ddfbd
--- /dev/null
+++ b/pymaingo/tests/individualPythonTests/testEvaluationContainer.py
@@ -0,0 +1,85 @@
+from pymaingo import *
+import unittest
+
+class TestEvaluationContainer(unittest.TestCase):
+
+    def test_output_variable(self):
+        myVar = FFVar()
+        myDescription = "foo"
+        try:
+            myOutVar = OutputVariable(myVar,myDescription)
+            myOutVar = OutputVariable(myDescription,myVar)
+            myOutVar = OutputVariable((myDescription,myVar))
+            myOutVar = OutputVariable((myVar,myDescription))
+        except:
+            self.fail("Initialization of OutputVariable raised exception unexpectedly")
+
+        self.assertEqual(myOutVar.description, myDescription)
+        self.assertEqual(myOutVar.value, myVar)
+
+
+    def test_model_function(self):
+        myVar = FFVar()
+        myVarVector = [FFVar(), FFVar()]
+        try:
+            myModelFunc = ModelFunction()
+            myModelFunc = ModelFunction(myVar)
+            myModelFunc = ModelFunction(myVarVector)
+            myModelFunc = ModelFunction(myVar,"x")
+        except:
+            self.fail("Initialization of ModelFunction raised exception unexpectedly")
+
+        self.assertEqual(myModelFunc.name, ["x"])
+        self.assertEqual(myModelFunc.value, [myVar])
+
+        try:
+            myModelFunc.push_back(myVar)
+            myModelFunc.push_back(myVar,"x")
+            myModelFunc.push_back(myVarVector)
+            myModelFunc.push_back(myVarVector,"x")
+        except:
+            self.fail("Function push_back of ModelFunction raised exception unexpectedly")
+
+        try:
+            myModelFunc.clear()
+        except:
+            self.fail("Function clear of ModelFunction raised exception unexpectedly")
+
+
+    def test_evaluation_container(self):
+        try:
+            myContainer = EvaluationContainer()
+        except:
+            self.fail("Initialization of EvaluationContainer raised exception unexpectedly")
+
+        # Make sure all required members are exposed and the aliases work
+        myModelFunc = ModelFunction([FFVar(), FFVar()])
+        myContainer.objective = myModelFunc
+        self.assertEqual(myContainer.obj, myModelFunc)
+        myContainer.equalities = myModelFunc
+        self.assertEqual(myContainer.eq, myModelFunc)
+        myContainer.inequalities = myModelFunc
+        self.assertEqual(myContainer.ineq, myModelFunc)
+        myContainer.equalitiesRelaxationOnly = myModelFunc
+        self.assertEqual(myContainer.eqRelaxationOnly, myModelFunc)
+        self.assertEqual(myContainer.eqRO, myModelFunc)
+        myContainer.inequalitiesRelaxationOnly = myModelFunc
+        self.assertEqual(myContainer.ineqRelaxationOnly, myModelFunc)
+        self.assertEqual(myContainer.ineqRO, myModelFunc)
+        myContainer.inequalitiesSquash = myModelFunc
+        self.assertEqual(myContainer.ineqSquash, myModelFunc)
+
+        myOutVar = OutputVariable(FFVar(),"Foo")
+        myContainer.output = [myOutVar]
+        self.assertEqual(myContainer.out, [myOutVar])
+
+        # Test implicit conversion of mc::FFVar and std::vector<mc::FFVar> to ModelFunction
+        try:
+            myContainer.objective = FFVar()
+            myContainer.objective = [FFVar(), FFVar()]
+        except:
+            self.fail("Implicit conversion to ModelFunction raised exception unexpectedly")
+
+
+if __name__ == '__main__':
+    unittest.main()
\ No newline at end of file
diff --git a/pymaingo/tests/individualPythonTests/testIntrinsicFunctions.py b/pymaingo/tests/individualPythonTests/testIntrinsicFunctions.py
new file mode 100644
index 0000000000000000000000000000000000000000..dd91303ade96c84c74f8282c7c863de9a3bd7d3c
--- /dev/null
+++ b/pymaingo/tests/individualPythonTests/testIntrinsicFunctions.py
@@ -0,0 +1,174 @@
+from pymaingo import *
+import unittest
+
+class TestInstrinsicFunctions(unittest.TestCase):
+
+
+    def test_FFVar_initialization(self):
+        try:
+            x = FFVar()
+            x = FFVar(1)
+            x = FFVar(1.5)
+        except:
+            self.fail("Initialization of FFVar raised exception unexpectedly")
+
+
+    def test_basic_operations(self):
+        x = FFVar(3.)
+        y = FFVar(1.)
+        try:
+            z = x +y
+            z = x + 2.
+            z = 2.+y
+            z =   +y
+            z = x -y
+            z = x - 2.
+            z = 2.-y
+            z =   -y
+            z = x *y
+            z = x *2.
+            z = 2.*y
+            z = x /y
+            z = x /2.
+            z = 2./y
+            z = x**2.
+            z = x**2
+            z = x**y
+            z = 2.**x
+            x == y
+            x != y
+            x += y
+            x -= y
+            x *= y
+            x /= y
+        except:
+            self.fail("Basic operation with FFVar raised exception unexpectedly")
+
+
+    def test_intrinsic_functions(self):
+        x = FFVar(1.)
+        y = FFVar(1.)
+        try:
+            z = inv(x)
+            z = sqr(x)
+            z = exp(x)
+            z = log(x)
+            z = xlog(x)
+            z = fabsx_times_x(x)
+            z = xexpax(x,2.)
+            z = arh(x,2.)
+            z = vapor_pressure(x,1.,1.,1.,1.,1.,1.,1.,1.)
+            z = vapor_pressure(x,2.,1.,1.,1.)
+            z = vapor_pressure(x,3.,1.,1.,1.,1.,1.,1.)
+            z = vapor_pressure(x,4.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.)
+            z = saturation_temperature(x,2.,1.,1.,1.)
+            z = ideal_gas_enthalpy(x,1.,1.,1.,1.,1.,1.,1.)
+            z = ideal_gas_enthalpy(x,2.,1.,1.,1.,1.,1.,1.,1.)
+            z = ideal_gas_enthalpy(x,3.,1.,1.,1.,1.,1.,1.)
+            z = ideal_gas_enthalpy(x,4.,1.,1.,1.,1.,1.,1.,1.)
+            z = enthalpy_of_vaporization(x,1.,1.,1.,1.,1.,1.)
+            z = enthalpy_of_vaporization(x,2.,1.,1.,1.,1.,1.,1.)
+            z = cost_function(x,1.,1.,1.,1.)
+            z = sum_div([x,y],[1.,1.,1.])
+            z = xlog_sum([x,y],[1.,1.])
+            z = nrtl_tau(x,1.,1.,1.,1.)
+            z = nrtl_dtau(x,1.,1.,1.)
+            z = nrtl_G(x,1.,1.,1.,1.,1.)
+            z = nrtl_Gtau(x,1.,1.,1.,1.,1.)
+            z = nrtl_Gdtau(x,1.,1.,1.,1.,1.)
+            z = nrtl_dGtau(x,1.,1.,1.,1.,1.)
+            z = iapws(x,42)
+            z = iapws(x,y,11)
+            z = p_sat_ethanol_schroeder(x)
+            z = rho_vap_sat_ethanol_schroeder(x)
+            z = rho_liq_sat_ethanol_schroeder(x)
+            z = covariance_function(x,1.)
+            z = acquisition_function(x,y,1.,1.)
+            z = gaussian_probability_density_function(x)
+            z = regnormal(x,1.,1.)
+            z = pos(x)
+            z = neg(x)
+            z = lb_func(x,1.)
+            z = ub_func(x,1.)
+            z = squash_node(x,0.,1.)
+            z = bounding_func(x,0.,1.)
+            z = sqrt(x)
+            z = fabs(x)
+            z = cos(x)
+            z = sin(x)
+            z = tan(x)
+            z = acos(x)
+            z = asin(x)
+            z = atan(x)
+            z = cosh(x)
+            z = sinh(x)
+            z = tanh(x)
+            z = coth(x)
+            z = erf(x)
+            z = erfc(x)
+            z = fstep(x)
+            z = bstep(x)
+            z = pow(x,2)
+            z = pow(x,2.5)
+            z = pow(x,y)
+            z = pow(2.5,x)
+            z = cheb(x,2)
+            z = xlogx(x)
+            z = xexpy(x,y)
+            z = norm2(x,y)
+            z = squash(x,0.,1.)
+            z = ext_antoine_psat(x,1.,1.,1.,1.,1.,1.,1.)
+            z = ext_antoine_psat(x,[1.,1.,1.,1.,1.,1.,1.])
+            z = antoine_psat(x,1.,1.,1.)
+            z = antoine_psat(x,[1.,1.,1.])
+            z = wagner_psat(x,1.,1.,1.,1.,1.,1.)
+            z = wagner_psat(x,[1.,1.,1.,1.,1.,1.])
+            z = ik_cape_psat(x,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.)
+            z = ik_cape_psat(x,[1.,1.,1.,1.,1.,1.,1.,1.,1.,1.])
+            z = antoine_tsat(x,1.,1.,1.)
+            z = antoine_tsat(x,[1.,1.,1.])
+            z = aspen_hig(x,1.,1.,1.,1.,1.,1.,1.)
+            z = aspen_hig(x,1.,[1.,1.,1.,1.,1.,1.])
+            z = nasa9_hig(x,1.,1.,1.,1.,1.,1.,1.,1.)
+            z = nasa9_hig(x,1.,[1.,1.,1.,1.,1.,1.,1.])
+            z = dippr107_hig(x,1.,1.,1.,1.,1.,1.)
+            z = dippr107_hig(x,1.,[1.,1.,1.,1.,1.])
+            z = dippr127_hig(x,1.,1.,1.,1.,1.,1.,1.,1.)
+            z = dippr127_hig(x,1.,[1.,1.,1.,1.,1.,1.,1.])
+            z = watson_dhvap(x,1.,1.,1.,1.,1.)
+            z = watson_dhvap(x,[1.,1.,1.,1.,1.])
+            z = dippr106_dhvap(x,1.,1.,1.,1.,1.,1.)
+            z = dippr106_dhvap(x,[1.,1.,1.,1.,1.,1.])
+            z = nrtl_tau(x,[1.,1.,1.,1.])
+            z = nrtl_dtau(x,[1.,1.,1.])
+            z = nrtl_g(x,1.,1.,1.,1.,1.)
+            z = nrtl_g(x,[1.,1.,1.,1.,1.])
+            z = nrtl_gtau(x,1.,1.,1.,1.,1.)
+            z = nrtl_gtau(x,[1.,1.,1.,1.,1.])
+            z = nrtl_gdtau(x,1.,1.,1.,1.,1.)
+            z = nrtl_gdtau(x,[1.,1.,1.,1.,1.])
+            z = nrtl_dgtau(x,1.,1.,1.,1.,1.)
+            z = nrtl_dgtau(x,[1.,1.,1.,1.,1.])
+            z = schroeder_ethanol_p(x)
+            z = schroeder_ethanol_rhovap(x)
+            z = schroeder_ethanol_rholiq(x)
+            z = cost_turton(x,1.,1.,1.)
+            z = cost_turton(x,[1.,1.,1.])
+            z = covar_matern_1(x)
+            z = covar_matern_3(x)
+            z = covar_matern_5(x)
+            z = covar_sqrexp(x)
+            z = af_lcb(x,y,1.)
+            z = af_ei(x,y,1.)
+            z = af_pi(x,y,1.)
+            z = gpdf(x)
+
+            # Test implicit convertion of int and double to FFVar
+            z = pos(1)
+            z = pos(1.5)
+        except:
+            self.fail("Intrinsic function with FFVar raised exception unexpectedly")
+
+
+if __name__ == '__main__':
+    unittest.main()
\ No newline at end of file
diff --git a/pymaingo/tests/individualPythonTests/testMAiNGOmodel.py b/pymaingo/tests/individualPythonTests/testMAiNGOmodel.py
new file mode 100644
index 0000000000000000000000000000000000000000..415930104082e3900ebaa16adb1cf837b507e7c7
--- /dev/null
+++ b/pymaingo/tests/individualPythonTests/testMAiNGOmodel.py
@@ -0,0 +1,98 @@
+from pymaingo import *
+import unittest
+
+class CompleteModel(MAiNGOmodel):
+    def get_variables(self):
+        variables = [OptimizationVariable(Bounds(0,1)),
+                     OptimizationVariable(Bounds(2,3))  ]
+        return variables
+        
+    def get_initial_point(self):
+        return [0.5,
+                2.5]
+
+    def evaluate(self,vars):
+        result = EvaluationContainer()
+        result.obj = vars[0]*vars[1]
+        result.ineq = [0.5 - vars[0],
+                       2.5 - vars[1]]
+        return result
+
+
+class ModelMissingVariables(MAiNGOmodel):
+    def get_initial_point(self):
+        return [0.5,
+                2.5]
+
+    def evaluate(self,vars):
+        result = EvaluationContainer()
+        result.obj = vars[0]*vars[1]
+        result.ineq = [0.5 - vars[0],
+                       2.5 - vars[1]]
+        return result
+ 
+
+class ModelMissingEvaluate(MAiNGOmodel):
+    def get_variables(self):
+        variables = [OptimizationVariable(Bounds(0,1)),
+                     OptimizationVariable(Bounds(2,3))  ]
+        return variables
+        
+    def get_initial_point(self):
+        return [0.5,
+                2.5]
+
+
+class ModelWithoutInitialPoint(MAiNGOmodel):
+    def get_variables(self):
+        variables = [OptimizationVariable(Bounds(0,1)),
+                     OptimizationVariable(Bounds(2,3))  ]
+        return variables
+
+    def evaluate(self,vars):
+        result = EvaluationContainer()
+        result.obj = vars[0]*vars[1]
+        result.ineq = [0.5 - vars[0],
+                       2.5 - vars[1]]
+        return result
+        
+            
+class TestMAiNGOmodel(unittest.TestCase):
+    def test_model_missing_variables(self):
+        model = ModelMissingVariables()
+        with self.assertRaises(Exception):
+            model.get_variables()
+    
+    
+    def test_model_missing_evaluate(self):
+        model = ModelMissingEvaluate()
+        with self.assertRaises(Exception):
+            model.evaluate()
+    
+    
+    def test_model_without_initial_point(self):
+        model = ModelWithoutInitialPoint()
+        initialPoint = model.get_initial_point()
+        self.assertEqual(len(initialPoint), 0)
+
+
+    def test_get_variables(self):
+        model = CompleteModel()
+        variables = model.get_variables()
+        self.assertEqual(len(variables), 2)
+        self.assertEqual(variables[0].get_lower_bound(), 0)
+        self.assertEqual(variables[0].get_upper_bound(), 1)
+        self.assertEqual(variables[1].get_lower_bound(), 2)
+        self.assertEqual(variables[1].get_upper_bound(), 3)
+
+
+    def test_get_initial_point(self):
+        model = CompleteModel()
+        initialPoint = model.get_initial_point()
+        self.assertEqual(len(initialPoint), 2)
+        self.assertEqual(initialPoint[0], 0.5)
+        self.assertEqual(initialPoint[1], 2.5)
+        
+
+if __name__ == '__main__':
+    unittest.main()
\ No newline at end of file
diff --git a/pymaingo/tests/individualPythonTests/testOptimizationVariables.py b/pymaingo/tests/individualPythonTests/testOptimizationVariables.py
new file mode 100644
index 0000000000000000000000000000000000000000..e224bf9ff665870289004441a1328c27f126c8e4
--- /dev/null
+++ b/pymaingo/tests/individualPythonTests/testOptimizationVariables.py
@@ -0,0 +1,98 @@
+from pymaingo import *
+import unittest
+
+class TestVariables(unittest.TestCase):
+
+
+    def test_bound_initialization(self):
+        try:
+            myBounds = Bounds(-0.5,1.5)
+            myBounds = Bounds(1.,0.)
+        except:
+            self.fail("Initialization of Bounds raised exception unexpectedly")
+
+
+    def test_VT_enum(self):
+        try:
+            myVT = VT_CONTINUOUS
+            myVT = VT_INTEGER
+            myVT = VT_BINARY
+        except:
+            self.fail("Value of enum VT not avilable")
+
+
+    def test_optimization_variable_initialization(self):
+        myBounds = Bounds(-0.5,1.5)
+        try:
+            myVar = OptimizationVariable(myBounds, VT_CONTINUOUS, 5, "x")
+            myVar = OptimizationVariable(myBounds, VT_CONTINUOUS, 5)
+            myVar = OptimizationVariable(myBounds, VT_CONTINUOUS, "x")
+            myVar = OptimizationVariable(myBounds, 5, "x")
+            myVar = OptimizationVariable(myBounds, 5)
+            myVar = OptimizationVariable(myBounds, "x")
+            myVar = OptimizationVariable(myBounds)
+            myVar = OptimizationVariable(VT_BINARY, 5, "x")
+            myVar = OptimizationVariable(VT_BINARY, 5)
+            myVar = OptimizationVariable(VT_BINARY, "x")
+            myVar = OptimizationVariable(VT_BINARY)
+        except:
+            self.fail("Initialization of OptimizationVariable raised exception unexpectedly")
+
+        with self.assertRaises(Exception):
+            myVar = OptimizationVariable(myBounds, VT_CONTINUOUS, 5.5, "x")
+        with self.assertRaises(Exception):
+            myVar = OptimizationVariable(myBounds, VT_CONTINUOUS, -5, "x")
+        with self.assertRaises(Exception):
+            myVar = OptimizationVariable(myBounds, VT_CONTINUOUS, 5.5)
+        with self.assertRaises(Exception):
+            myVar = OptimizationVariable(myBounds, VT_CONTINUOUS, -5)
+        with self.assertRaises(Exception):
+            myVar = OptimizationVariable(myBounds, 5.5)
+        with self.assertRaises(Exception):
+            myVar = OptimizationVariable(myBounds, -5)
+        with self.assertRaises(Exception):
+            myVar = OptimizationVariable(VT_INTEGER, 5, "x")
+        with self.assertRaises(Exception):
+            myVar = OptimizationVariable(VT_INTEGER, 5)
+        with self.assertRaises(Exception):
+            myVar = OptimizationVariable(VT_INTEGER, "x")
+        with self.assertRaises(Exception):
+            myVar = OptimizationVariable(VT_INTEGER)
+        with self.assertRaises(Exception):
+            myVar = OptimizationVariable(VT_CONTINUOUS, 5, "x")
+        with self.assertRaises(Exception):
+            myVar = OptimizationVariable(VT_CONTINUOUS, 5)
+        with self.assertRaises(Exception):
+            myVar = OptimizationVariable(VT_CONTINUOUS, "x")
+        with self.assertRaises(Exception):
+            myVar = OptimizationVariable(VT_CONTINUOUS)
+        with self.assertRaises(Exception):
+            myVar = OptimizationVariable(VT_BINARY, 5.5, "x")
+        with self.assertRaises(Exception):
+            myVar = OptimizationVariable(VT_BINARY, -5)
+        with self.assertRaises(Exception):
+            myVar = OptimizationVariable(VT_INTEGER, 5.5, "x")
+        with self.assertRaises(Exception):
+            myVar = OptimizationVariable(VT_INTEGER, -5)
+        with self.assertRaises(Exception):
+            myVar = OptimizationVariable(VT_CONTINUOUS, 5.5, "x")
+        with self.assertRaises(Exception):
+            myVar = OptimizationVariable(VT_CONTINUOUS, -5)
+        with self.assertRaises(Exception):
+            myVar = OptimizationVariable(5)
+        with self.assertRaises(Exception):
+            myVar = OptimizationVariable(5.5)
+        with self.assertRaises(Exception):
+            myVar = OptimizationVariable(-5)
+        with self.assertRaises(Exception):
+            myVar = OptimizationVariable(5,"x")
+        with self.assertRaises(Exception):
+            myVar = OptimizationVariable(5.5,"x")
+        with self.assertRaises(Exception):
+            myVar = OptimizationVariable(-5,"x")
+        with self.assertRaises(Exception):
+            myVar = OptimizationVariable("x")
+
+
+if __name__ == '__main__':
+    unittest.main()
\ No newline at end of file
diff --git a/pymaingo/tests/individualPythonTests/testSolver.py b/pymaingo/tests/individualPythonTests/testSolver.py
new file mode 100644
index 0000000000000000000000000000000000000000..5a6ec6949bffd205da6373cc5551bbb3f800d83a
--- /dev/null
+++ b/pymaingo/tests/individualPythonTests/testSolver.py
@@ -0,0 +1,257 @@
+from pymaingo import *
+import os
+import re
+import unittest
+
+class Model(MAiNGOmodel):
+    def __init__(self):
+        MAiNGOmodel.__init__(self)
+
+    def get_variables(self):
+        variables = [OptimizationVariable(Bounds(0,1)),
+                     OptimizationVariable(Bounds(2,3))  ]
+        return variables
+
+    def evaluate(self,vars):
+        result = EvaluationContainer()
+        result.obj = vars[0]*vars[1]
+        result.ineq = [vars[0] - vars[1]]
+        result.out = [OutputVariable("The answer", 42)]
+        return result
+
+
+
+class TestMAiNGO(unittest.TestCase):
+    def test_RETCODE_enum(self):
+        try:
+            myRetCode = GLOBALLY_OPTIMAL
+            myRetCode = INFEASIBLE
+            myRetCode = FEASIBLE_POINT
+            myRetCode = NO_FEASIBLE_POINT_FOUND
+            myRetCode = BOUND_TARGETS
+            myRetCode = NOT_SOLVED_YET
+            myRetCode = JUST_A_WORKER_DONT_ASK_ME
+        except:
+            self.fail("Value of enum RETCODE not avilable")
+
+    def test_VERB_enum(self):
+        try:
+            verbosity = VERB_NONE
+            verbosity = VERB_NORMAL
+            verbosity = VERB_ALL
+        except:
+            self.fail("Value of enum VERB not avilable")
+
+    def test_LOGGING_DESTINATION_enum(self):
+        try:
+            verbosity = LOGGING_NONE
+            verbosity = LOGGING_OUTSTREAM
+            verbosity = LOGGING_FILE
+            verbosity = LOGGING_FILE_AND_STREAM
+        except:
+            self.fail("Value of enum LOGGING_DESTINATION not avilable")
+
+    def test_LBP_SOLVER_enum(self):
+        try:
+            lbpSolver = LBP_SOLVER_MAiNGO
+            lbpSolver = LBP_SOLVER_INTERVAL
+            lbpSolver = LBP_SOLVER_CPLEX
+            lbpSolver = LBP_SOLVER_CLP
+        except:
+            self.fail("Value of enum LBP_SOLVER not avilable")
+
+    def test_UBP_SOLVER_enum(self):
+        try:
+            ubpSolver = UBP_SOLVER_EVAL
+            ubpSolver = UBP_SOLVER_COBYLA
+            ubpSolver = UBP_SOLVER_BOBYQA
+            ubpSolver = UBP_SOLVER_LBFGS
+            ubpSolver = UBP_SOLVER_SLSQP
+            ubpSolver = UBP_SOLVER_IPOPT
+            ubpSolver = UBP_SOLVER_KNITRO
+        except:
+            self.fail("Value of enum UBP_SOLVER not avilable")
+
+    def test_LBP_SOLVER_enum(self):
+        try:
+            lbpSolver = LBP_SOLVER_MAiNGO
+            lbpSolver = LBP_SOLVER_INTERVAL
+            lbpSolver = LBP_SOLVER_CPLEX
+            lbpSolver = LBP_SOLVER_CLP
+        except:
+            self.fail("Value of enum LBP_SOLVER not avilable")
+
+    def test_WRITING_LANGUAGE_enum(self):
+        try:
+            myLanguage = LANG_NONE
+            myLanguage = LANG_ALE
+            myLanguage = LANG_GAMS
+        except:
+            self.fail("Value of enum PARSING_LANGUAGE not avilable")
+
+    def test_initialize_maingo(self):
+        try:
+            myMAiNGO = MAiNGO(Model())
+        except:
+            self.fail("Initialization of MAiNGO raised exception unexpectedly")
+
+    def test_maingo_setters(self):
+        myMAiNGO = MAiNGO(Model())
+        try:
+            myMAiNGO.set_model(Model())
+            myMAiNGO.set_log_file_name("LogFileName.log")
+            myMAiNGO.set_result_file_name("ResFileName.txt")
+            myMAiNGO.set_solution_and_statistics_csv_file_name("solutionStatistics.csv")
+            myMAiNGO.set_iterations_csv_file_name("Iterations.csv")
+            myMAiNGO.set_json_file_name("JsonFileName.json")
+        except:
+            self.fail("Setter function of MAiNGO raised exception unexpectedly")
+
+    def test_set_option(self):
+        myMAiNGO = MAiNGO(Model())
+        self.assertEqual(myMAiNGO.set_option("madeUpOptionThatDoesNotExist",42), False)
+        with open('individualPythonTests/MAiNGOSettings.txt', 'r') as f:
+            file_content = f.read()
+        pattern = re.compile(r'(?:#.+\n)+#?\s*(\w+)\s+(\S+)')
+        example_file_options = re.findall(pattern, file_content)
+        for option, value in example_file_options:
+            self.assertEqual(myMAiNGO.set_option(option, float(value)), True)
+
+    def test_read_settings(self):
+        myMAiNGO = MAiNGO(Model())
+        try:
+            myMAiNGO.read_settings("madeUpSettingsFileThatDoesNotExists.txt")
+            myMAiNGO.read_settings("individualPythonTests/MAiNGOSettings.txt")
+            myMAiNGO.read_settings()
+        except:
+            self.fail("read_settings function of MAiNGO raised exception unexpectedly")
+
+    def test_write_to_other_language_via_function(self):
+        if os.path.exists("tmpAleFile.txt"):
+            self.fail("Error testing the writing of ALE file via function: tmpAleFile.txt already exists.")
+        myModel = Model()
+        myMAiNGO = MAiNGO(myModel)
+        myMAiNGO.set_option("loggingDestination",LOGGING_NONE)
+        myMAiNGO.set_option("writeResultFile",False)
+        myMAiNGO.write_model_to_file_in_other_language(LANG_ALE, "tmpAleFile.txt")
+        if not os.path.exists("tmpAleFile.txt"):
+            self.fail("MAiNGO did not write ALE file via function.")
+        os.remove("tmpAleFile.txt")
+
+    def test_write_to_other_language_via_option(self):
+        if os.path.exists("MAiNGO_written_model.txt"):
+            self.fail("Error testing the writing of ALE file via option: MAiNGO_written_model.txt already exists.")
+        myModel = Model()
+        myMAiNGO = MAiNGO(myModel)
+        myMAiNGO.set_option("loggingDestination",LOGGING_NONE)
+        myMAiNGO.set_option("writeResultFile",False)
+        myMAiNGO.set_option("modelWritingLanguage",LANG_ALE)
+        myMAiNGO.set_option("PRE_pureMultistart",True)
+        myMAiNGO.set_option("PRE_maxLocalSearches",0)
+        myMAiNGO.solve()
+        if not os.path.exists("MAiNGO_written_model.txt"):
+            self.fail("MAiNGO did not write ALE file via option.")
+        os.remove("MAiNGO_written_model.txt")
+
+    def test_getters_before_solve(self):
+        myModel = Model()
+        myMAiNGO = MAiNGO(myModel)
+        self.assertEqual(myMAiNGO.get_status(), NOT_SOLVED_YET)
+        with self.assertRaises(Exception):
+            myMAiNGO.get_additional_outputs_at_solution_point()
+        with self.assertRaises(Exception):
+            myMAiNGO.get_cpu_solution_time()
+        with self.assertRaises(Exception):
+            myMAiNGO.get_final_abs_gap()
+        with self.assertRaises(Exception):
+            myMAiNGO.get_final_LBD()
+        with self.assertRaises(Exception):
+            myMAiNGO.get_final_rel_gap()
+        with self.assertRaises(Exception):
+            myMAiNGO.get_iterations()
+        with self.assertRaises(Exception):
+            myMAiNGO.get_LBP_count()
+        with self.assertRaises(Exception):
+            myMAiNGO.get_max_nodes_in_memory()
+        with self.assertRaises(Exception):
+            myMAiNGO.get_model_at_solution_point()
+        with self.assertRaises(Exception):
+            myMAiNGO.get_objective_value()
+        with self.assertRaises(Exception):
+            myMAiNGO.get_solution_point()
+        with self.assertRaises(Exception):
+            myMAiNGO.get_UBP_count()
+        with self.assertRaises(Exception):
+            myMAiNGO.get_wallclock_solution_time()
+
+    def test_model_evaluation_infeasible(self):
+        myModel = Model()
+        myMAiNGO = MAiNGO(myModel)
+        result = myMAiNGO.evaluate_model_at_point([0.5, 0])
+        self.assertEqual(result[1],False)
+        self.assertEqual(len(result[0]), 2)
+        self.assertEqual(result[0][0],0.5*0.)
+        self.assertEqual(result[0][1],0.5-0.)
+
+    def test_model_evaluation_feasible(self):
+        myModel = Model()
+        myMAiNGO = MAiNGO(myModel)
+        result = myMAiNGO.evaluate_model_at_point([0.5, 2.5])
+        self.assertEqual(result[1],True)
+        self.assertEqual(len(result[0]), 2)
+        self.assertEqual(result[0][0],0.5*2.5)
+        self.assertEqual(result[0][1],0.5-2.5)
+
+    def test_additional_outputs_evaluation_infeasible(self):
+        myModel = Model()
+        myMAiNGO = MAiNGO(myModel)
+        result = myMAiNGO.evaluate_additional_outputs_at_point([0.5, 0])
+        self.assertEqual(len(result), 1)
+        self.assertEqual(result[0], ("The answer", 42))
+
+    def test_additional_outputs_evaluation_feasible(self):
+        myModel = Model()
+        myMAiNGO = MAiNGO(myModel)
+        result = myMAiNGO.evaluate_additional_outputs_at_point([0.5, 2.5])
+        self.assertEqual(len(result), 1)
+        self.assertEqual(result[0], ("The answer", 42))
+
+    def test_solve_and_getters_after_solve(self):
+        myModel = Model()
+        myMAiNGO = MAiNGO(myModel)
+        myMAiNGO.set_option("loggingDestination", LOGGING_NONE)
+        myMAiNGO.set_option("writeResultFile", False)
+        status = myMAiNGO.solve()
+        self.assertEqual(status, GLOBALLY_OPTIMAL)
+
+        try:
+            myMAiNGO.get_cpu_solution_time()
+            myMAiNGO.get_final_abs_gap()
+            myMAiNGO.get_final_LBD()
+            myMAiNGO.get_final_rel_gap()
+            myMAiNGO.get_iterations()
+            myMAiNGO.get_LBP_count()
+            myMAiNGO.get_max_nodes_in_memory()
+            myMAiNGO.get_UBP_count()
+            myMAiNGO.get_wallclock_solution_time()
+        except:
+            self.fail("Getter function of MAiNGO raised exception unexpectedly when called after solve")
+
+        self.assertAlmostEqual(myMAiNGO.get_objective_value(), 0, 4)
+        solutionPoint = myMAiNGO.get_solution_point()
+        self.assertEqual(len(solutionPoint), 2)
+        self.assertAlmostEqual(solutionPoint[0], 0)
+
+        evaluationResult = myMAiNGO.evaluate_model_at_solution_point()
+        self.assertEqual(len(evaluationResult), 2)
+        self.assertEqual(evaluationResult[0], myMAiNGO.get_objective_value())
+        self.assertLessEqual(evaluationResult[1], 1e-6)
+
+        additionalOutputs = myMAiNGO.evaluate_additional_outputs_at_solution_point()
+        self.assertEqual(len(additionalOutputs), 1)
+        self.assertEqual(additionalOutputs[0], ("The answer", 42))
+
+
+
+if __name__ == '__main__':
+    unittest.main()
\ No newline at end of file
diff --git a/pymaingo/tests/testPyMAiNGO.py b/pymaingo/tests/testPyMAiNGO.py
new file mode 100644
index 0000000000000000000000000000000000000000..28aa82f0c65d0eca5934e84cb9522dd7175d84c9
--- /dev/null
+++ b/pymaingo/tests/testPyMAiNGO.py
@@ -0,0 +1,9 @@
+from individualPythonTests.testOptimizationVariables import *
+from individualPythonTests.testIntrinsicFunctions import *
+from individualPythonTests.testEvaluationContainer import *
+from individualPythonTests.testMAiNGOmodel import *
+from individualPythonTests.testSolver import *
+import unittest
+
+if __name__ == '__main__':
+    unittest.main()
\ No newline at end of file
diff --git a/src/MAiNGO.cpp b/src/MAiNGO.cpp
index bc29183628a5c202f660fe22864ebd69e1e8a604..ff5d86138706c5ab40e0bc8d23cccc5a5d7175c3 100644
--- a/src/MAiNGO.cpp
+++ b/src/MAiNGO.cpp
@@ -7,16 +7,12 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file MAiNGO.cpp
- *
- * @brief File containing implementation of the MAiNGO object.
- *
  **********************************************************************************/
 
 #include "MAiNGO.h"
+#include "MAiNGOException.h"
 #include "MAiNGOmodelEpsCon.h"
 #include "bab.h"
-#include "exceptions.h"
 #include "getTime.h"
 #include "intervalLibrary.h"
 #include "lbp.h"
@@ -51,7 +47,7 @@ MAiNGO::solve()
 {
 
     if (!_readyToSolve) {
-        throw(MAiNGOException("  Error trying to solve problem: Model has not been set successfully."));
+        throw MAiNGOException("  Error trying to solve problem: Model has not been set successfully.");
     }
 
     // ---------------------------------------------------------------------------------
@@ -61,12 +57,12 @@ MAiNGO::solve()
         // Start timing and print header
         _preprocessTime        = get_cpu_time();
         _solutionTimeWallClock = get_wall_time();
-        _logger.clear();
-        _logger.create_log_file(_maingoSettings.writeLog, _maingoSettings.outstreamVerbosity);
+        _logger->clear();
+        _logger->create_log_file(_maingoSettings->loggingDestination);
         _print_MAiNGO_header();
 #ifdef HAVE_MAiNGO_MPI
-        _logger.print_message("\n  You are using the parallel MAiNGO version. This run uses " + std::to_string(_nProcs) + " processes ( 1 manager and " + std::to_string(_nProcs - 1) + " workers ).\n",
-                              _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+        _logger->print_message("\n  You are using the parallel MAiNGO version. This run uses " + std::to_string(_nProcs) + " processes ( 1 manager and " + std::to_string(_nProcs - 1) + " workers ).\n",
+                               _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
 #endif
     MAiNGO_END_IF
     MAiNGO_MPI_BARRIER
@@ -75,19 +71,19 @@ MAiNGO::solve()
         // ---------------------------------------------------------------------------------
         // 1: Inform the user about changed Settings
         // ---------------------------------------------------------------------------------
-        _maingoOriginalSettings = _maingoSettings;    // Save original settings
+        _maingoOriginalSettings = *_maingoSettings;    // Save original settings
     MAiNGO_IF_BAB_MANAGER
-        _logger.print_settings(_maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+        _logger->print_settings(_maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
         // Write MAiNGO model to other language if desired
-        if (_maingoSettings.writeToOtherLanguage != LANG_NONE) {
+        if (_maingoSettings->modelWritingLanguage != LANG_NONE) {
             _inMAiNGOsolve = true;
-            parse_maingo_to_other_language(_maingoSettings.writeToOtherLanguage);
+            write_model_to_file_in_other_language(_maingoSettings->modelWritingLanguage);
             _inMAiNGOsolve     = false;
             double tmpTimeCPU  = get_cpu_time() - _preprocessTime;
             double tmpTimeWall = get_wall_time() - _solutionTimeWallClock;
             std::string str;
-            switch (_maingoSettings.writeToOtherLanguage) {
-                case GAMS:
+            switch (_maingoSettings->modelWritingLanguage) {
+                case LANG_GAMS:
                     str = ".gms";
                     break;
                 default:
@@ -95,10 +91,10 @@ MAiNGO::solve()
                     break;
             }
             std::ostringstream outstr;
-            outstr << "  Writing to file \"MAiNGO_parsed_file" + str + "\" took:\n";
+            outstr << "  Writing to file \"MAiNGO_written_model" + str + "\" took:\n";
             outstr << "  CPU time:         " << std::fixed << std::setprecision(3) << tmpTimeCPU << " seconds.\n";
             outstr << "  Wall-clock time:  " << std::fixed << std::setprecision(3) << tmpTimeWall << " seconds.\n";
-            _logger.print_message(outstr.str(), _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+            _logger->print_message(outstr.str(), _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
             // Reset times, since we don't want to add the file writing to the final MAiNGO solution time
             _preprocessTime        = get_cpu_time();
             _solutionTimeWallClock = get_wall_time();
@@ -112,30 +108,20 @@ MAiNGO::solve()
     try {
         _construct_DAG();
     }
-    catch (MC::Exceptions& e) {
-        MAiNGO_IF_BAB_MANAGER
-            std::ostringstream errmsg;
-            errmsg << e.what() << "\n  Encountered a fatal error during DAG construction. Terminating.";
-            _write_files_error(errmsg.str());
-            throw(MAiNGOException("  Encountered a fatal error during DAG construction. Terminating. " + e.what()));
-            MAiNGO_ELSE
-                throw;
-            MAiNGO_END_IF
-    }
     catch (const std::exception& e) {
         MAiNGO_IF_BAB_MANAGER
             std::ostringstream errmsg;
-            errmsg << e.what() << "\n  Encountered a fatal error during DAG construction. Terminating.";
+            errmsg << e.what() << "\n  Encountered a fatal error during DAG construction.";
             _write_files_error(errmsg.str());
-            throw(MAiNGOException("  Encountered a fatal error during DAG construction. Terminating.", e));
+            throw MAiNGOException("  Encountered a fatal error during DAG construction.", e);
             MAiNGO_ELSE
                 throw;
             MAiNGO_END_IF
     }
     catch (...) {
         MAiNGO_IF_BAB_MANAGER
-            _write_files_error("  Encountered a fatal error during DAG construction. Terminating.");
-            throw(MAiNGOException("  Encountered a fatal error during DAG construction. Terminating."));
+            _write_files_error("  Encountered an unknown fatal error during DAG construction.");
+            throw MAiNGOException("  Encountered an unknown fatal error during DAG construction.");
             MAiNGO_ELSE
                 throw;
             MAiNGO_END_IF
@@ -155,9 +141,6 @@ MAiNGO::solve()
         // Timing for output
         _outputTime = get_cpu_time();
 
-        // Restore settings
-        _maingoSettings = _maingoOriginalSettings;
-
         // Print problem statistics, solution, additional output & CPU time.
         _print_statistics();
         _print_solution();
@@ -166,6 +149,9 @@ MAiNGO::solve()
 
         // Write files
         _write_files();
+
+        // Restore settings
+        *_maingoSettings = _maingoOriginalSettings;
     MAiNGO_END_IF
 
 
@@ -180,7 +166,7 @@ MAiNGO::solve_epsilon_constraint()
 {
 
     if (!_readyToSolve) {
-        throw(MAiNGOException("  Error trying to solve problem: Model has not been set successfully."));
+        throw MAiNGOException("  Error trying to solve problem: Model has not been set successfully.");
     }
 
     // ---------------------------------------------------------------------------------
@@ -191,12 +177,13 @@ MAiNGO::solve_epsilon_constraint()
         // Start timing and print header
         cpuTimeEpsCon  = 0.;    // We compute the CPU time by suming over all runs
         wallTimeEpsCon = get_wall_time();
-        _logger.clear();
-        _logger.create_log_file(_maingoSettings.writeLog, _maingoSettings.outstreamVerbosity);
+        _logger->clear();
+        _logger->create_log_file(_maingoSettings->loggingDestination);
+        _logger->create_iterations_csv_file(_maingoSettings->writeCsv);
         _print_MAiNGO_header();
 #ifdef HAVE_MAiNGO_MPI
-        _logger.print_message("\n  You are using the parallel MAiNGO version. This run uses " + std::to_string(_nProcs) + " processes ( 1 manager and " + std::to_string(_nProcs - 1) + " workers ).\n",
-                              _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+        _logger->print_message("\n  You are using the parallel MAiNGO version. This run uses " + std::to_string(_nProcs) + " processes ( 1 manager and " + std::to_string(_nProcs - 1) + " workers ).\n",
+                               _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
 #endif
     MAiNGO_END_IF
     MAiNGO_MPI_BARRIER
@@ -205,12 +192,12 @@ MAiNGO::solve_epsilon_constraint()
         // ---------------------------------------------------------------------------------
         // 1: Inform the user about changed Settings
         // ---------------------------------------------------------------------------------
-        _maingoOriginalSettings = _maingoSettings;    // Save original settings
+        _maingoOriginalSettings = *_maingoSettings;    // Save original settings
     MAiNGO_IF_BAB_MANAGER
-        _logger.print_settings(_maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+        _logger->print_settings(_maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
         // Don't write MAiNGO model to other language, even if desired
-        if (_maingoSettings.writeToOtherLanguage != LANG_NONE) {
-            _logger.print_message("  Warning: Not writing to other language when solving multi-objective problem.", _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+        if (_maingoSettings->modelWritingLanguage != LANG_NONE) {
+            _logger->print_message("  Warning: Not writing to other language when solving multi-objective problem.", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
         }
     MAiNGO_END_IF
     MAiNGO_MPI_BARRIER
@@ -223,7 +210,7 @@ MAiNGO::solve_epsilon_constraint()
             epsConModel = std::dynamic_pointer_cast<MAiNGOmodelEpsCon>(_myFFVARmodel);
     if (!epsConModel) {
         MAiNGO_IF_BAB_MANAGER
-            throw(MAiNGOException("  Error in epsilon-constraint method: model needs to be derived from MAiNGOmodelEpsCon."));
+            throw MAiNGOException("  Error in epsilon-constraint method: model needs to be derived from MAiNGOmodelEpsCon.");
             MAiNGO_ELSE
                 throw;
             MAiNGO_END_IF
@@ -232,12 +219,12 @@ MAiNGO::solve_epsilon_constraint()
     size_t nObj                    = userResult.objective.size();
     if (nObj != 2) {
         MAiNGO_IF_BAB_MANAGER
-            throw(MAiNGOException("  Error in epsilon-constraint method: currently only supporting exactly two objectives."));
+            throw MAiNGOException("  Error in epsilon-constraint method: currently only supporting exactly two objectives.");
             MAiNGO_ELSE
                 throw;
             MAiNGO_END_IF
     }
-    std::vector<double> epsilon(nObj, _maingoSettings.infinity);
+    std::vector<double> epsilon(nObj, _maingoSettings->infinity);
 
 
     // ---------------------------------------------------------------------------------
@@ -263,23 +250,22 @@ MAiNGO::solve_epsilon_constraint()
         catch (const std::exception& e) {
             MAiNGO_IF_BAB_MANAGER
                 std::ostringstream errmsg;
-                errmsg << e.what() << "\n  Encountered a fatal error during DAG construction. Terminating.";
+                errmsg << e.what() << "\n  Encountered a fatal error during DAG construction.";
                 _write_files_error(errmsg.str());
-                throw(MAiNGOException("  Encountered a fatal error during DAG construction. Terminating.", e));
+                throw MAiNGOException("  Encountered a fatal error during DAG construction.", e);
                 MAiNGO_ELSE
                     throw;
                 MAiNGO_END_IF
         }
         catch (...) {
             MAiNGO_IF_BAB_MANAGER
-                _write_files_error("  Encountered a fatal error during DAG construction. Terminating.");
-                throw(MAiNGOException("  Encountered a fatal error during DAG construction. Terminating."));
+                _write_files_error("  Encountered an unknown fatal error during DAG construction.");
+                throw MAiNGOException("  Encountered an unknown fatal error during DAG construction.");
                 MAiNGO_ELSE
                     throw;
                 MAiNGO_END_IF
         }
-        status          = _analyze_and_solve_problem();
-        _maingoSettings = _maingoOriginalSettings;
+        status = _analyze_and_solve_problem();
         MAiNGO_IF_BAB_MANAGER
             // Print problem statistics, solution, additional output & CPU time.
             _outputTime = get_cpu_time();
@@ -301,7 +287,7 @@ MAiNGO::solve_epsilon_constraint()
                 break;
             }
             std::vector<double> tmpObjectives(nObj);
-            std::vector<std::pair<std::string, double>> tmpOutput = get_additional_outputs_at_solution_point();
+            std::vector<std::pair<std::string, double>> tmpOutput = evaluate_additional_outputs_at_solution_point();
             for (size_t jObj = 0; jObj < nObj; jObj++) {
                 tmpObjectives[jObj] = tmpOutput[tmpOutput.size() - nObj + jObj].second;
             }
@@ -315,10 +301,11 @@ MAiNGO::solve_epsilon_constraint()
                 BCAST_TAG tag;
                 MPI_Bcast(&tag, 1, MPI_INT, 0, MPI_COMM_WORLD);
                 if (tag == BCAST_EXCEPTION) {
-                    throw(MAiNGOMpiException(MAiNGOMpiException::MPI_OTHER));
+                    throw MAiNGOMpiException("  Worker " + std::to_string(_rank) + " received message about an exception during epsilon-constraint method.", MAiNGOMpiException::ORIGIN_OTHER);
                 }
 #endif
             MAiNGO_END_IF
+            *_maingoSettings = _maingoOriginalSettings;
             // Next, minimize the other objective s.t. iObj stays the same
             MAiNGO_IF_BAB_MANAGER
                 // Reset timing for this run and give intermediate output
@@ -345,23 +332,22 @@ MAiNGO::solve_epsilon_constraint()
             catch (const std::exception& e) {
                 MAiNGO_IF_BAB_MANAGER
                     std::ostringstream errmsg;
-                    errmsg << e.what() << "\n  Encountered a fatal error during DAG construction. Terminating.";
+                    errmsg << e.what() << "\n  Encountered a fatal error during DAG construction.";
                     _write_files_error(errmsg.str());
-                    throw(MAiNGOException("  Encountered a fatal error during DAG construction. Terminating.", e));
+                    throw MAiNGOException("  Encountered a fatal error during DAG construction.", e);
                     MAiNGO_ELSE
                         throw;
                     MAiNGO_END_IF
             }
             catch (...) {
                 MAiNGO_IF_BAB_MANAGER
-                    _write_files_error("  Encountered a fatal error during DAG construction. Terminating.");
-                    throw(MAiNGOException("  Encountered a fatal error during DAG construction. Terminating."));
+                    _write_files_error("  Encountered an unknown fatal error during DAG construction.");
+                    throw MAiNGOException("  Encountered an unknown fatal error during DAG construction.");
                     MAiNGO_ELSE
                         throw;
                     MAiNGO_END_IF
             }
-            status          = _analyze_and_solve_problem();
-            _maingoSettings = _maingoOriginalSettings;
+            status = _analyze_and_solve_problem();
             MAiNGO_IF_BAB_MANAGER
                 // Print problem statistics, solution, additional output & CPU time.
                 _outputTime = get_cpu_time();
@@ -382,7 +368,7 @@ MAiNGO::solve_epsilon_constraint()
 #endif
                     break;
                 }
-                std::vector<std::pair<std::string, double>> tmpOutput2 = get_additional_outputs_at_solution_point();
+                std::vector<std::pair<std::string, double>> tmpOutput2 = evaluate_additional_outputs_at_solution_point();
                 for (size_t jObj = 0; jObj < nObj; jObj++) {
                     optimalObjectives[iObj][jObj] = tmpOutput2[tmpOutput2.size() - nObj + jObj].second;
                 }
@@ -396,10 +382,11 @@ MAiNGO::solve_epsilon_constraint()
                     BCAST_TAG tag;
                     MPI_Bcast(&tag, 1, MPI_INT, 0, MPI_COMM_WORLD);
                     if (tag == BCAST_EXCEPTION) {
-                        throw(MAiNGOMpiException(MAiNGOMpiException::MPI_OTHER));
+                        throw MAiNGOMpiException("  Worker " + std::to_string(_rank) + " received message about an exception during epsilon-constraint method.", MAiNGOMpiException::ORIGIN_OTHER);
                     }
 #endif
                 MAiNGO_END_IF
+                *_maingoSettings = _maingoOriginalSettings;
     }
     MAiNGO_MPI_BARRIER
 
@@ -423,7 +410,7 @@ MAiNGO::solve_epsilon_constraint()
 #endif
             epsConModel->set_single_objective(false);
             epsConModel->set_objective_index(0);
-            const size_t nPoints = _maingoSettings.EC_nPoints;
+            const size_t nPoints = _maingoSettings->EC_nPoints;
             for (size_t iEps = 1; iEps < nPoints - 1; iEps++) {
                 MAiNGO_IF_BAB_MANAGER
                     // Reset timing for this run and give intermediate output
@@ -443,23 +430,22 @@ MAiNGO::solve_epsilon_constraint()
                 catch (const std::exception& e) {
                     MAiNGO_IF_BAB_MANAGER
                         std::ostringstream errmsg;
-                        errmsg << e.what() << "\n  Encountered a fatal error during DAG construction. Terminating.";
+                        errmsg << e.what() << "\n  Encountered a fatal error during DAG construction.";
                         _write_files_error(errmsg.str());
-                        throw(MAiNGOException("  Encountered a fatal error during DAG construction. Terminating.", e));
+                        throw MAiNGOException("  Encountered a fatal error during DAG construction.", e);
                         MAiNGO_ELSE
                             throw;
                         MAiNGO_END_IF
                 }
                 catch (...) {
                     MAiNGO_IF_BAB_MANAGER
-                        _write_files_error("  Encountered a fatal error during DAG construction. Terminating.");
-                        throw(MAiNGOException("  Encountered a fatal error during DAG construction. Terminating."));
+                        _write_files_error("  Encountered an unknown fatal error during DAG construction.");
+                        throw MAiNGOException("  Encountered an unknown fatal error during DAG construction.");
                         MAiNGO_ELSE
                             throw;
                         MAiNGO_END_IF
                 }
-                status          = _analyze_and_solve_problem();
-                _maingoSettings = _maingoOriginalSettings;
+                status = _analyze_and_solve_problem();
                 MAiNGO_IF_BAB_MANAGER
                     // Print problem statistics, solution, additional output & CPU time.
                     _outputTime = get_cpu_time();
@@ -476,7 +462,7 @@ MAiNGO::solve_epsilon_constraint()
                         break;
                     }
                     std::vector<double> tmpObjectives(nObj);
-                    std::vector<std::pair<std::string, double>> tmpOutput = get_additional_outputs_at_solution_point();
+                    std::vector<std::pair<std::string, double>> tmpOutput = evaluate_additional_outputs_at_solution_point();
                     for (size_t jObj = 0; jObj < nObj; jObj++) {
                         tmpObjectives[jObj] = tmpOutput[tmpOutput.size() - nObj + jObj].second;
                     }
@@ -491,10 +477,11 @@ MAiNGO::solve_epsilon_constraint()
                         BCAST_TAG tag;
                         MPI_Bcast(&tag, 1, MPI_INT, 0, MPI_COMM_WORLD);
                         if (tag == BCAST_EXCEPTION) {
-                            throw(MAiNGOMpiException(MAiNGOMpiException::MPI_OTHER));
+                            throw MAiNGOMpiException("  Worker " + std::to_string(_rank) + " received message about an exception during epsilon-constraint method.", MAiNGOMpiException::ORIGIN_OTHER);
                         }
 #endif
                     MAiNGO_END_IF
+                    *_maingoSettings = _maingoOriginalSettings;
             }
     }
 
@@ -503,12 +490,12 @@ MAiNGO::solve_epsilon_constraint()
     // ---------------------------------------------------------------------------------
     MAiNGO_IF_BAB_MANAGER
         // Restore settings
-        _maingoSettings = _maingoOriginalSettings;
+        *_maingoSettings = _maingoOriginalSettings;
         // Write files
         _write_files();
         _write_epsilon_constraint_result(optimalObjectives, solutionPoints);
         // Print time (slight abuse of regular time variables...)
-        _logger.print_message("\n  Overall time for epsilon constraint method:", _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+        _logger->print_message("\n  Overall time for epsilon constraint method:", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
         _preprocessTime        = 0.;
         _babTime               = cpuTimeEpsCon;
         _outputTime            = get_cpu_time();
@@ -541,17 +528,17 @@ MAiNGO::_analyze_and_solve_problem()
         catch (const std::exception& e) {
             MAiNGO_IF_BAB_MANAGER
                 std::ostringstream errmsg;
-                errmsg << e.what() << "\n  Encountered a fatal error during structure recognition. Terminating.";
+                errmsg << e.what() << "\n  Encountered a fatal error during structure recognition.";
                 _write_files_error(errmsg.str());
-                throw(MAiNGOException("  Encountered a fatal error during structure recognition. Terminating.", e));
+                throw MAiNGOException("  Encountered a fatal error during structure recognition.", e);
                 MAiNGO_ELSE
                     throw;
                 MAiNGO_END_IF
         }
         catch (...) {
             MAiNGO_IF_BAB_MANAGER
-                _write_files_error("  Encountered a fatal error during structure recognition. Terminating.");
-                throw(MAiNGOException("  Encountered a fatal error during structure recognition. Terminating."));
+                _write_files_error("  Encountered an unknown fatal error during structure recognition.");
+                throw MAiNGOException("  Encountered an unknown fatal error during structure recognition.");
                 MAiNGO_ELSE
                     throw;
                 MAiNGO_END_IF
@@ -564,40 +551,47 @@ MAiNGO::_analyze_and_solve_problem()
 #ifdef HAVE_CPLEX    // If we have CPLEX, we can use of it directly for problems of type LP, MIP, QP, or MIQP
             case LP:
                 MAiNGO_IF_BAB_MANAGER
-                    _logger.print_message("\n  Recognized the problem to be a linear program.\n", _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+                    _logger->print_message("\n  Recognized the problem to be a linear program.\n", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                 MAiNGO_END_IF
                 return _solve_MIQP();
                 break;
             case MIP:
                 MAiNGO_IF_BAB_MANAGER
-                    _logger.print_message("\n  Recognized the problem to be a mixed-integer linear program.\n", _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+                    _logger->print_message("\n  Recognized the problem to be a mixed-integer linear program.\n", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                 MAiNGO_END_IF
                 return _solve_MIQP();
                 break;
             case QP:
                 MAiNGO_IF_BAB_MANAGER
-                    _logger.print_message("\n  Recognized the problem to be a quadratic program.\n", _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+                    _logger->print_message("\n  Recognized the problem to be a quadratic program.\n", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                 MAiNGO_END_IF
                 return _solve_MIQP();
                 break;
             case MIQP:
                 MAiNGO_IF_BAB_MANAGER
-                    _logger.print_message("\n  Recognized the problem to be a mixed-integer quadratic program.\n", _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+                    _logger->print_message("\n  Recognized the problem to be a mixed-integer quadratic program.\n", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                 MAiNGO_END_IF
                 return _solve_MIQP();
                 break;
 #else    // If we don't CPLEX, we only pass LPs to CLP and solve all other problems as general MINLP
             case LP:
                 MAiNGO_IF_BAB_MANAGER
-                    _logger.print_message("\n  Recognized the problem to be a linear program.\n", _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+                    _logger->print_message("\n  Recognized the problem to be a linear program.\n", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                 MAiNGO_END_IF
                 return _solve_MIQP();
                 break;
             case QP:
+                _logger->print_message("\n  Recognized the problem to be a quadratic program, but no dedicated QP solver is available.\n  Solving it as an NLP.\n", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                 _problemStructure = NLP;
+                return _solve_MINLP();
             case MIP:
+                _logger->print_message("\n  Recognized the problem to be a mixed-integer linear program, but no dedicated MILP solver is available.\n  Solving it as an MINLP.\n", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
+                _problemStructure = MINLP;
+                return _solve_MINLP();
             case MIQP:
+                _logger->print_message("\n  Recognized the problem to be a mixed-integer quadratic program, but no dedicated MIQP solver is available.\n  Solving it as an MINLP.\n", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                 _problemStructure = MINLP;
+                return _solve_MINLP();
 #endif
             case NLP:
             case DNLP:
@@ -636,100 +630,72 @@ MAiNGO::_solve_MIQP()
 
             // 1a: Initialize  & start timing
 #ifdef HAVE_CPLEX
-            switch (_maingoSettings.LBP_solver) {
-                case lbp::SOLVER_MAiNGO: {
-                    _logger.print_message("\n  MAiNGO solver is not available as (mixed-integer) linear/quadratic solver. Calling CPLEX.\n", _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
-                    _maingoSettings.UBP_solverPreprocessing = ubp::SOLVER_CPLEX;
+            switch (_maingoSettings->LBP_solver) {
+                case lbp::LBP_SOLVER_MAiNGO: {
+                    _logger->print_message("\n  MAiNGO solver is not available as (mixed-integer) linear/quadratic solver. Calling CPLEX.\n", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
+                    _maingoSettings->UBP_solverPreprocessing = ubp::UBP_SOLVER_CPLEX;
                     break;
                 }
-                case lbp::SOLVER_INTERVAL: {
-                    _logger.print_message("\n  Interval solver is not available as (mixed-integer) linear/quadratic solver. Calling CPLEX.\n", _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
-                    _maingoSettings.UBP_solverPreprocessing = ubp::SOLVER_CPLEX;
+                case lbp::LBP_SOLVER_INTERVAL: {
+                    _logger->print_message("\n  Interval solver is not available as (mixed-integer) linear/quadratic solver. Calling CPLEX.\n", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
+                    _maingoSettings->UBP_solverPreprocessing = ubp::UBP_SOLVER_CPLEX;
                     break;
                 }
-                case lbp::SOLVER_CPLEX: {
-                    _logger.print_message("\n  Calling CPLEX.\n", _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
-                    _maingoSettings.UBP_solverPreprocessing = ubp::SOLVER_CPLEX;
+                case lbp::LBP_SOLVER_CPLEX: {
+                    _logger->print_message("\n  Calling CPLEX.\n", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
+                    _maingoSettings->UBP_solverPreprocessing = ubp::UBP_SOLVER_CPLEX;
                     break;
                 }
-                case lbp::SOLVER_CLP: {
+                case lbp::LBP_SOLVER_CLP: {
                     if (_problemStructure > LP) {
-                        _logger.print_message("\n  CLP is not available as (mixed-integer) quadratic solver. Calling CPLEX.\n", _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
-                        _maingoSettings.UBP_solverPreprocessing = ubp::SOLVER_CPLEX;
+                        _logger->print_message("\n  CLP is not available as (mixed-integer) linear/quadratic solver. Calling CPLEX.\n", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
+                        _maingoSettings->UBP_solverPreprocessing = ubp::UBP_SOLVER_CPLEX;
                     }
                     else {
-                        _logger.print_message("\n  Calling CLP.\n", _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
-                        _maingoSettings.UBP_solverPreprocessing = ubp::SOLVER_CLP;
+                        _logger->print_message("\n  Calling CLP.\n", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
+                        _maingoSettings->UBP_solverPreprocessing = ubp::UBP_SOLVER_CLP;
                     }
                     break;
                 }
                 default:
                 {
                     std::ostringstream errmsg;
-                    errmsg << "  Error in _solve_MIQP: Unknown lower bounding solver: " << _maingoSettings.LBP_solver << std::endl;
-                    throw(MAiNGOException(errmsg.str()));
+                    errmsg << "  Error in _solve_MIQP: Unknown lower bounding solver: " << _maingoSettings->LBP_solver;
+                    throw MAiNGOException(errmsg.str());
                 }
             }
 #else
             // It is not possible to reach this point with a problem which is not an LP due to the code in lines 564-601
-            switch (_maingoSettings.LBP_solver) {
-                case lbp::SOLVER_MAiNGO: {
-                    _logger.print_message("\n  MAiNGO solver is not available as a linear solver. Calling CLP.\n", _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
-                    _maingoSettings.UBP_solverPreprocessing = ubp::SOLVER_CLP;
+            switch (_maingoSettings->LBP_solver) {
+                case lbp::LBP_SOLVER_MAiNGO: {
+                    _logger->print_message("\n  MAiNGO solver is not available as a linear solver. Calling CLP.\n", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
+                    _maingoSettings->UBP_solverPreprocessing = ubp::UBP_SOLVER_CLP;
                     break;
                 }
-                case lbp::SOLVER_INTERVAL: {
-                    _logger.print_message("\n  Interval solver is not available as a linear solver. Calling CLP.\n", _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
-                    _maingoSettings.UBP_solverPreprocessing = ubp::SOLVER_CLP;
+                case lbp::LBP_SOLVER_INTERVAL: {
+                    _logger->print_message("\n  Interval solver is not available as a linear solver. Calling CLP.\n", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
+                    _maingoSettings->UBP_solverPreprocessing = ubp::UBP_SOLVER_CLP;
                     break;
                 }
-                case lbp::SOLVER_CPLEX: {
-                    _logger.print_message("\n  CPLEX is not available on your machine. Calling CLP.\n", _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
-                    _maingoSettings.UBP_solverPreprocessing = ubp::SOLVER_CLP;
+                case lbp::LBP_SOLVER_CPLEX: {
+                    _logger->print_message("\n  CPLEX is not available on your machine. Calling CLP.\n", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
+                    _maingoSettings->UBP_solverPreprocessing = ubp::UBP_SOLVER_CLP;
                     break;
                 }
-                case lbp::SOLVER_CLP: {
-                    _logger.print_message("\n  Calling CLP.\n", _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
-                    _maingoSettings.UBP_solverPreprocessing = ubp::SOLVER_CLP;
+                case lbp::LBP_SOLVER_CLP: {
+                    _logger->print_message("\n  Calling CLP.\n", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
+                    _maingoSettings->UBP_solverPreprocessing = ubp::UBP_SOLVER_CLP;
                     break;
                 }
                 default:
                 {
                     std::ostringstream errmsg;
-                    errmsg << "  Error in _solve_MIQP: Unknown lower bounding solver: " << _maingoSettings.LBP_solver << std::endl;
-                    throw(MAiNGOException(errmsg.str()));
+                    errmsg << "  Error in _solve_MIQP: Unknown lower bounding solver: " << _maingoSettings->LBP_solver;
+                    throw MAiNGOException(errmsg.str());
                 }
             }
 #endif
             _initialize_solve();
-
-            // 1b: Create csv file
-            if (_maingoSettings.writeCsv) {
-                std::ofstream outfileIterations(_logger.csvIterationsName);
-                switch (_problemStructure) {
-                    case LP:
-#ifdef HAVE_CPLEX
-                        outfileIterations << "Recognized the problem to be a linear program. Calling CPLEX." << std::endl;
-#else
-                        outfileIterations << "Recognized the problem to be a linear program. Calling CLP." << std::endl;
-#endif
-                        break;
-                    case MIP:
-                        outfileIterations << "Recognized the problem to be a mixed-integer linear program. Calling CPLEX." << std::endl;
-                        break;
-                    case QP:
-                        outfileIterations << "Recognized the problem to be a quadratic program. Calling CPLEX." << std::endl;
-                        break;
-                    case MIQP:
-                        outfileIterations << "Recognized the problem to be a mixed-integer quadratic program. Calling CPLEX." << std::endl;
-                        break;
-                    default:
-                        outfileIterations << "Internal error in solution of an LP, MIP, QP or MIQP. " << std::endl;
-                        break;
-                }
-                outfileIterations.close();
-            }
-
             _preprocessTime = get_cpu_time() - _preprocessTime;
 
             // ---------------------------------------------------------------------------------
@@ -760,9 +726,9 @@ MAiNGO::_solve_MIQP()
             BCAST_TAG bcastTag = BCAST_EXCEPTION;
             MPI_Bcast(&bcastTag, 1, MPI_INT, 0, MPI_COMM_WORLD);
             std::ostringstream errmsg;
-            errmsg << e.what() << "\n  Encountered a fatal error during solution. Terminating.";
+            errmsg << e.what() << "\n  Encountered a fatal error during MIQP solution.";
             _write_files_error(errmsg.str());
-            throw(MAiNGOException("  Encountered a fatal error during solution. Terminating.", e));
+            throw MAiNGOException("  Encountered a fatal error during MIQP solution.", e);
         }
 #endif
         catch (const std::exception& e) {
@@ -771,17 +737,17 @@ MAiNGO::_solve_MIQP()
             MPI_Bcast(&bcastTag, 1, MPI_INT, 0, MPI_COMM_WORLD);
 #endif
             std::ostringstream errmsg;
-            errmsg << e.what() << "\n  Encountered a fatal error during solution. Terminating.";
+            errmsg << e.what() << "\n  Encountered a fatal error during MIQP solution.";
             _write_files_error(errmsg.str());
-            throw(MAiNGOException("  Encountered a fatal error during solution. Terminating.", e));
+            throw MAiNGOException("  Encountered a fatal error during MIQP solution.", e);
         }
         catch (...) {
 #ifdef HAVE_MAiNGO_MPI
             BCAST_TAG bcastTag = BCAST_EXCEPTION;
             MPI_Bcast(&bcastTag, 1, MPI_INT, 0, MPI_COMM_WORLD);
 #endif
-            _write_files_error("  Encountered a fatal error during solution. Terminating.");
-            throw(MAiNGOException("  Encountered a fatal error during solution. Terminating."));
+            _write_files_error("  Encountered an unknown fatal error during MIQP solution.");
+            throw MAiNGOException("  Encountered an unknown fatal error during MIQP solution.");
         }
 #ifdef HAVE_MAiNGO_MPI
         MAiNGO_ELSE    // Workers just wait for a broadcast
@@ -789,7 +755,7 @@ MAiNGO::_solve_MIQP()
             BCAST_TAG tag;
             MPI_Bcast(&tag, 1, MPI_INT, 0, MPI_COMM_WORLD);
             if (tag == BCAST_EXCEPTION) {
-                throw(MAiNGOMpiException(MAiNGOMpiException::MPI_OTHER));
+                throw MAiNGOMpiException("  Worker " + std::to_string(_rank) + " received message about an exception during MIQP solution.", MAiNGOMpiException::ORIGIN_OTHER);
             }
         MAiNGO_END_IF
 #endif
@@ -822,8 +788,8 @@ MAiNGO::_solve_MINLP()
 
         // 1a: Initialize
         MAiNGO_IF_BAB_MANAGER
-            _logger.print_message("\n  Pre-processing at root node:\n", _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
-            if (_maingoSettings.LBP_addAuxiliaryVars) {
+            _logger->print_message("\n  Pre-processing at root node:\n", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
+            if (_maingoSettings->LBP_addAuxiliaryVars) {
                 std::ostringstream ostr;
                 if (_nvarLbd - _nvar == 1) {
                     ostr << "    Added " << _nvarLbd - _nvar << " auxiliary variable...\n";
@@ -831,21 +797,21 @@ MAiNGO::_solve_MINLP()
                 else {
                     ostr << "    Added " << _nvarLbd - _nvar << " auxiliary variables...\n";
                 }
-                _logger.print_message(ostr.str(), _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+                _logger->print_message(ostr.str(), _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
             }
             // This stands BEFORE _initialize_solve, since it is checked in _initialize_solve() whether the user has CPLEX installed
-            _logger.print_message("    Initialize subsolvers & check options...\n", _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+            _logger->print_message("    Initialize subsolvers...\n", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
         MAiNGO_END_IF
         _initialize_solve();
 
-        if (!_maingoSettings.PRE_pureMultistart) {
+        if (!_maingoSettings->PRE_pureMultistart) {
 
             // 1b: Check set options (large values in LP and additional option checks based on chosen lower bounding strategy)
             _myLBS->preprocessor_check_options(_rootNode);
             MAiNGO_MPI_BARRIER
 
                 // 1c: Constraint propagation before a local search is executed
-                if (_maingoSettings.BAB_constraintPropagation)
+                if (_maingoSettings->BAB_constraintPropagation)
             {
                 _root_constraint_propagation();
             }
@@ -855,7 +821,7 @@ MAiNGO::_solve_MINLP()
             {    // If we haven't proven infeasibility, continue
 
                 // 1d: Optimization-based bound tightening (OBBT) at the root node considering feasibility only
-                if (_maingoSettings.PRE_obbtMaxRounds > 0) {
+                if (_maingoSettings->PRE_obbtMaxRounds > 0) {
                     _root_obbt_feasibility();
                 }
                 MAiNGO_MPI_BARRIER
@@ -867,17 +833,17 @@ MAiNGO::_solve_MINLP()
                     _root_multistart();
                     MAiNGO_MPI_BARRIER
 
-                        if (_rootMultistartStatus == SUBSOLVER_FEASIBLE && !_maingoSettings.terminateOnFeasiblePoint && _solutionValue > _maingoSettings.targetUpperBound)
+                        if (_rootMultistartStatus == SUBSOLVER_FEASIBLE && !_maingoSettings->terminateOnFeasiblePoint && _solutionValue > _maingoSettings->targetUpperBound)
                     {    // If we have found a feasible point, but it isn't good enough yet, continue
 
                         // 1f: Constraint propagation after a local search has been executed
-                        if (_maingoSettings.BAB_constraintPropagation) {
+                        if (_maingoSettings->BAB_constraintPropagation) {
                             _root_constraint_propagation();
                         }
                         MAiNGO_MPI_BARRIER
 
                             // 1g: OBBT at the root node considering both feasibility and optimality
-                            if (_maingoSettings.PRE_obbtMaxRounds > 0)
+                            if (_maingoSettings->PRE_obbtMaxRounds > 0)
                         {
                             _root_obbt_feasibility_optimality();
                         }
@@ -898,7 +864,7 @@ MAiNGO::_solve_MINLP()
             std::ostringstream outstr;
             outstr << "    CPU time: " << std::setprecision(6) << _preprocessTime << " s." << std::endl;
             outstr << "  Done." << std::endl;
-            _logger.print_message(outstr.str(), _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+            _logger->print_message(outstr.str(), _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
         MAiNGO_END_IF
 
 #ifdef HAVE_MAiNGO_MPI
@@ -916,8 +882,9 @@ MAiNGO::_solve_MINLP()
             // 2: Branch & Bound
             // ---------------------------------------------------------------------------------
 
-            if (_rootConPropStatus != TIGHTENING_INFEASIBLE && _rootObbtStatus != TIGHTENING_INFEASIBLE && !_maingoSettings.PRE_pureMultistart && !(_maingoSettings.terminateOnFeasiblePoint && _rootMultistartStatus == SUBSOLVER_FEASIBLE) && _solutionValue > _maingoSettings.targetUpperBound)
+            if (_rootConPropStatus != TIGHTENING_INFEASIBLE && _rootObbtStatus != TIGHTENING_INFEASIBLE && !_maingoSettings->PRE_pureMultistart && !(_maingoSettings->terminateOnFeasiblePoint && _rootMultistartStatus == SUBSOLVER_FEASIBLE) && _solutionValue > _maingoSettings->targetUpperBound)
         {
+            _logger->create_iterations_csv_file(_maingoSettings->writeCsv);
             _babStatus = _myBaB->solve(_rootNode, _solutionValue, _solutionPoint, _preprocessTime, _babTime);
             _babTime -= _preprocessTime;    // Get the B&B time only
         }
@@ -943,7 +910,7 @@ MAiNGO::_solve_MINLP()
                 }
                 else {
                     if (!_solutionPoint.empty()) {
-                        if (_solutionValue <= _maingoSettings.targetUpperBound) {
+                        if (_solutionValue <= _maingoSettings->targetUpperBound) {
                             _maingoStatus = BOUND_TARGETS;
                         }
                         else {
@@ -965,9 +932,9 @@ MAiNGO::_solve_MINLP()
     catch (MAiNGOMpiException& e) {
         MAiNGO_IF_BAB_MANAGER
             std::ostringstream errmsg;
-            errmsg << e.what() << "\n  Encountered a fatal error during solution. Terminating.";
+            errmsg << e.what() << "\n  Encountered a fatal error during solution.";
             _write_files_error(errmsg.str());
-            throw(MAiNGOException("  Encountered a fatal error during solution. Terminating.", e));
+            throw MAiNGOException("  Encountered a fatal error during solution.", e);
             MAiNGO_ELSE
                 throw;
             MAiNGO_END_IF
@@ -976,17 +943,17 @@ MAiNGO::_solve_MINLP()
     catch (const std::exception& e) {
         MAiNGO_IF_BAB_MANAGER
             std::ostringstream errmsg;
-            errmsg << e.what() << "\n  Encountered a fatal error during solution. Terminating.";
+            errmsg << e.what() << "\n  Encountered a fatal error during solution.";
             _write_files_error(errmsg.str());
-            throw(MAiNGOException("  Encountered a fatal error during solution. Terminating.", e));
+            throw MAiNGOException("  Encountered a fatal error during solution.", e);
             MAiNGO_ELSE
                 throw;
             MAiNGO_END_IF
     }
     catch (...) {
         MAiNGO_IF_BAB_MANAGER
-            _write_files_error("  Encountered a fatal error during solution. Terminating.");
-            throw(MAiNGOException("  Encountered a fatal error during solution. Terminating."));
+            _write_files_error("  Encountered an unknown fatal error during solution.");
+            throw MAiNGOException("  Encountered an unknown fatal error during solution.");
             MAiNGO_ELSE
                 throw;
             MAiNGO_END_IF
@@ -1008,9 +975,10 @@ MAiNGO::set_model(std::shared_ptr<MAiNGOmodel> myModel)
             _maingoStatus = JUST_A_WORKER_DONT_ASK_ME;
 #endif
         MAiNGO_END_IF
-        _problemStructure = MINLP;    // default
-        _readyToSolve     = false;
-        _DAGconstructed   = false;
+        _problemStructure   = MINLP;    // default
+        _feasibilityProblem = false;
+        _readyToSolve       = false;
+        _DAGconstructed     = false;
 
         // Store pointer to problem
         _myFFVARmodel = myModel;
@@ -1018,9 +986,7 @@ MAiNGO::set_model(std::shared_ptr<MAiNGOmodel> myModel)
         // Read optimization variables (and optionally initial point)
         _originalVariables = myModel->get_variables();
         if (_originalVariables.empty()) {
-            std::ostringstream errmsg;
-            errmsg << "  MAiNGO: Error while setting model: Empty vector of optimization variables.";
-            throw MAiNGOException(errmsg.str());
+            throw MAiNGOException("  MAiNGO: Error while setting model: Empty vector of optimization variables.");
         }
         _initialPointOriginal = myModel->get_initial_point();
         if ((!_initialPointOriginal.empty()) && (_initialPointOriginal.size() != _originalVariables.size())) {
@@ -1058,11 +1024,6 @@ MAiNGO::set_model(std::shared_ptr<MAiNGOmodel> myModel)
             }
         }
 
-        // Reset file names
-        _logger.logFileName       = "";
-        _logger.csvIterationsName = "";
-        _logger.csvGeneralName    = "";
-
         // Confirm model is ready to use
         _readyToSolve = true;
 }
@@ -1093,14 +1054,11 @@ MAiNGO::_construct_DAG()
     catch (std::exception& e) {
         throw MAiNGOException("  MAiNGO: Error while evaluating specified model to construct DAG.", e);
     }
-    catch (mc::FFGraph::Exceptions& e) {
-        throw MAiNGOException("  MAiNGO: Error while evaluating specified model to construct DAG: " + e.what());
-    }
     catch (...) {
         throw MAiNGOException("  MAiNGO: Unknown error while evaluating specified model to construct DAG.");
     }
 
-    _classify_constraints(tmpFunctions, tmpDAGVars);
+    _classify_objective_and_constraints(tmpFunctions, tmpDAGVars);
 
     // Recognize and remove variables that do not participate in the actual problem
     // Recognize first
@@ -1129,6 +1087,7 @@ MAiNGO::_construct_DAG()
         }
     }
     _nvar = _nvarOriginal - nRemoved;
+
     // Make actual DAG without these unnecessary variables
     _DAG.clear();
     _DAGvars.clear();
@@ -1192,7 +1151,7 @@ MAiNGO::_construct_DAG()
     _DAGoutputFunctionsLbd.clear();
     _nvarLbd              = _nvar;
     _nauxiliaryRelOnlyEqs = 0;
-    if (_maingoSettings.LBP_addAuxiliaryVars) {
+    if (_maingoSettings->LBP_addAuxiliaryVars) {
         for (size_t i = 0; i < _DAGvars.size(); i++) {
             mc::FFVar Y;                     // Create a new DAG variable
             _DAGvarsLbd.push_back(Y);        // Add the new DAG variable to the vars vector
@@ -1227,28 +1186,28 @@ MAiNGO::_initialize_solve()
 {
 
     // Initialize subsolvers (upper bounding is always needed, lower bounding and B&B are not)
-    _myUBSPre = ubp::make_ubp_solver(_DAG, _DAGvars, _DAGfunctions, _variables, _nineq, _neq, _nineqSquash, &_maingoSettings, &_logger, &_nonconstantConstraintsUBP, ubp::UpperBoundingSolver::USE_PRE);
+    _myUBSPre = ubp::make_ubp_solver(_DAG, _DAGvars, _DAGfunctions, _variables, _nineq, _neq, _nineqSquash, _maingoSettings, _logger, _nonconstantConstraintsUBP, ubp::UpperBoundingSolver::USE_PRE);
     _myUBSBab = nullptr;
     _myLBS    = nullptr;
     _myBaB    = nullptr;
     if (_problemStructure >= NLP) {
-        if (!_maingoSettings.PRE_pureMultistart) {    // For a pure multistart, lower bounding solver and the B&B tree are not needed
-            _myUBSBab = ubp::make_ubp_solver(_DAG, _DAGvars, _DAGfunctions, _variables, _nineq, _neq, _nineqSquash, &_maingoSettings, &_logger, &_nonconstantConstraintsUBP, ubp::UpperBoundingSolver::USE_BAB);
-            if (_maingoSettings.LBP_addAuxiliaryVars) {
+        if (!_maingoSettings->PRE_pureMultistart) {    // For a pure multistart, lower bounding solver and the B&B tree are not needed
+            _myUBSBab = ubp::make_ubp_solver(_DAG, _DAGvars, _DAGfunctions, _variables, _nineq, _neq, _nineqSquash, _maingoSettings, _logger, _nonconstantConstraintsUBP, ubp::UpperBoundingSolver::USE_BAB);
+            if (_maingoSettings->LBP_addAuxiliaryVars) {
                 _myLBS = lbp::make_lbp_solver(_DAGlbd, _DAGvarsLbd, _DAGfunctionsLbd, _variablesLbd, _nineq, _neq, _nineqRelaxationOnly, _neqRelaxationOnly + _nauxiliaryRelOnlyEqs,
-                                              _nineqSquash, &_maingoSettings, &_logger, &_nonconstantConstraints);
+                                              _nineqSquash, _maingoSettings, _logger, _nonconstantConstraints);
             }
             else {
                 _myLBS = lbp::make_lbp_solver(_DAG, _DAGvars, _DAGfunctions, _variables, _nineq, _neq, _nineqRelaxationOnly, _neqRelaxationOnly,
-                                              _nineqSquash, &_maingoSettings, &_logger, &_nonconstantConstraints);
+                                              _nineqSquash, _maingoSettings, _logger, _nonconstantConstraints);
             }
-            _myBaB = std::make_shared<bab::BranchAndBound>(_variablesLbd, _myLBS, _myUBSBab, &_maingoSettings, &_logger, /*number of variables w/o auxiliaries*/ _nvar);
+            _myBaB = std::make_shared<bab::BranchAndBound>(_variablesLbd, _myLBS, _myUBSBab, _maingoSettings, _logger, /*number of variables w/o auxiliaries*/ _nvar);
         }
     }
 
     // Initialize solution variables
     _solutionPoint.clear();
-    _solutionValue = _maingoSettings.infinity;
+    _solutionValue = _maingoSettings->infinity;
     _babTime       = 0.;
 
     // Initialize status
@@ -1266,11 +1225,11 @@ MAiNGO::_initialize_solve()
         _babStatus            = babBase::enums::NOT_SOLVED_YET;
 
         // Initialize root node
-        if (_maingoSettings.LBP_addAuxiliaryVars) {
-            _rootNode = babBase::BabNode(-_maingoSettings.infinity, _variablesLbd, 0, 0, false);
+        if (_maingoSettings->LBP_addAuxiliaryVars) {
+            _rootNode = babBase::BabNode(-_maingoSettings->infinity, _variablesLbd, 0, 0, false);
         }
         else {
-            _rootNode = babBase::BabNode(-_maingoSettings.infinity, _variables, 0, 0, false);
+            _rootNode = babBase::BabNode(-_maingoSettings->infinity, _variables, 0, 0, false);
         }
 
         // Clear logging (except for settings)
@@ -1289,17 +1248,12 @@ MAiNGO::_initialize_solve()
                 default:
                     break;
             }
-            if (_originalVariables[i].changedBounds.lowerBoundChanged) {
+            if (_originalVariables[i].bounds_changed_from_user_input()) {
                 std::ostringstream ostr;
-                ostr << "    Warning: Lower bound of " << variableType << " variable " << _originalVariables[i].get_name()
-                     << " is set from user input " << _originalVariables[i].changedBounds.userLowerBound << " to " << _originalVariables[i].get_lower_bound() << ".\n";
-                _logger.print_message(ostr.str(), _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
-            }
-            if (_originalVariables[i].changedBounds.upperBoundChanged) {
-                std::ostringstream ostr;
-                ostr << "    Warning: Upper bound of " << variableType << " variable " << _originalVariables[i].get_name()
-                     << " is set from user input " << _originalVariables[i].changedBounds.userUpperBound << " to " << _originalVariables[i].get_upper_bound() << ".\n";
-                _logger.print_message(ostr.str(), _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+                ostr << "    Warning: bounds of " << variableType << " variable " << _originalVariables[i].get_name() << " are changed from user input "
+                     << "[" << _originalVariables[i].get_user_lower_bound() << ", " << _originalVariables[i].get_user_upper_bound() << "] to "
+                     << "[" << _originalVariables[i].get_lower_bound() << ", " << _originalVariables[i].get_upper_bound() << "].\n";
+                _logger->print_message(ostr.str(), _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
             }
         }
 }
@@ -1312,13 +1266,13 @@ MAiNGO::_root_obbt_feasibility()
 {
 
     MAiNGO_IF_BAB_MANAGER
-        _logger.print_message("    Feasibility-based range reduction...\n", _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+        _logger->print_message("    Optimization-based bound tightening (feasibility only)...\n", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
 
-        for (unsigned iLP = 0; iLP < _maingoSettings.PRE_obbtMaxRounds; iLP++) {
+        for (unsigned iLP = 0; iLP < _maingoSettings->PRE_obbtMaxRounds; iLP++) {
 
-            _logger.print_message("        Run " + std::to_string(iLP + 1) + "\n", _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_ALL, _maingoSettings.outstreamVerbosity);
+            _logger->print_message("        Run " + std::to_string(iLP + 1) + "\n", _maingoSettings->BAB_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
             try {
-                _rootObbtStatus = _myLBS->solve_OBBT(_rootNode, _maingoSettings.infinity, lbp::OBBT_FEAS);
+                _rootObbtStatus = _myLBS->solve_OBBT(_rootNode, _maingoSettings->infinity, lbp::OBBT_FEAS);
             }
             catch (std::exception& e) {
 #ifdef HAVE_MAiNGO_MPI
@@ -1326,7 +1280,7 @@ MAiNGO::_root_obbt_feasibility()
                 BCAST_TAG bcastTag = BCAST_EXCEPTION;
                 MPI_Bcast(&bcastTag, 1, MPI_INT, 0, MPI_COMM_WORLD);
 #endif
-                throw(MAiNGOException("  Encountered a fatal error during feasibility-based OBBT during pre-processing. Terminating.", e));
+                throw MAiNGOException("  Encountered a fatal error during feasibility-based OBBT during pre-processing.", e);
             }
             catch (...) {
 #ifdef HAVE_MAiNGO_MPI
@@ -1334,7 +1288,7 @@ MAiNGO::_root_obbt_feasibility()
                 BCAST_TAG bcastTag = BCAST_EXCEPTION;
                 MPI_Bcast(&bcastTag, 1, MPI_INT, 0, MPI_COMM_WORLD);
 #endif
-                throw(MAiNGOException("  Encountered a fatal error during feasibility-based OBBT during pre-processing. Terminating."));
+                throw MAiNGOException("  Encountered an unknown fatal error during feasibility-based OBBT during pre-processing.");
             }
             // If we make no more progress or prove infeasibility, terminate
             if ((_rootObbtStatus == TIGHTENING_INFEASIBLE) || (_rootObbtStatus == TIGHTENING_UNCHANGED)) {
@@ -1343,7 +1297,7 @@ MAiNGO::_root_obbt_feasibility()
         }
 
         if (_rootObbtStatus == TIGHTENING_INFEASIBLE) {
-            _logger.print_message("      Found problem to be infeasible.\n", _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+            _logger->print_message("      Found problem to be infeasible.\n", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
         }
 #ifdef HAVE_MAiNGO_MPI
         // Send results to workers
@@ -1363,7 +1317,7 @@ MAiNGO::_root_obbt_feasibility()
             BCAST_TAG tag;
             MPI_Bcast(&tag, 1, MPI_INT, 0, MPI_COMM_WORLD);
             if (tag == BCAST_EXCEPTION) {
-                throw(MAiNGOMpiException(MAiNGOMpiException::MPI_OTHER));
+                throw MAiNGOMpiException("  Worker " + std::to_string(_rank) + " received message about an exception during feasibility-based OBBT during pre-processing.", MAiNGOMpiException::ORIGIN_OTHER);
             }
             else if (tag == BCAST_INFEASIBLE) {
                 _rootObbtStatus = TIGHTENING_INFEASIBLE;
@@ -1383,7 +1337,7 @@ MAiNGO::_root_obbt_feasibility_optimality()
 {
 
     MAiNGO_IF_BAB_MANAGER
-        _logger.print_message("    Feasibility and optimality-based range reduction...\n", _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+        _logger->print_message("    Optimization-based bound tightening (feasibility and optimality)...\n", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
 
         babBase::BabNode tmpNode(_rootNode);
         try {
@@ -1395,24 +1349,24 @@ MAiNGO::_root_obbt_feasibility_optimality()
             BCAST_TAG bcastTag = BCAST_EXCEPTION;
             MPI_Bcast(&bcastTag, 1, MPI_INT, 0, MPI_COMM_WORLD);
 #endif
-            throw(MAiNGOException("  Encountered a fatal error during feas-opt-based OBBT during pre-processing. Terminating.", e));
+            throw MAiNGOException("  Encountered a fatal error during feasibility- and optimality-based OBBT during pre-processing.", e);
         }
         catch (...) {
 #ifdef HAVE_MAiNGO_MPI
             BCAST_TAG tag = BCAST_EXCEPTION;
             MPI_Bcast(&tag, 1, MPI_INT, 0, MPI_COMM_WORLD);
 #endif
-            throw(MAiNGOException("  Encountered a fatal error during feas-opt-based OBBT during pre-processing. Terminating."));
+            throw MAiNGOException("  Encountered an unknown fatal error during feasibility- and optimality-based OBBT during pre-processing.");
         }
 
         if (_rootObbtStatus == TIGHTENING_INFEASIBLE) {
             std::string str = "      Warning: OBBT declared the problem infeasible although a feasible point was found.\n";
             str += "               This may be caused by numerical difficulties or an isolated optimum in your model.\n";
             str += "               Turning off OBBT, restoring valid bounds and proceeding...\n";
-            _logger.print_message(str, _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
-            _maingoSettings.PRE_obbtMaxRounds   = 0;
-            _maingoSettings.BAB_alwaysSolveObbt = false;
-            _rootObbtStatus                     = TIGHTENING_UNCHANGED;
+            _logger->print_message(str, _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
+            _maingoSettings->PRE_obbtMaxRounds   = 0;
+            _maingoSettings->BAB_alwaysSolveObbt = false;
+            _rootObbtStatus                      = TIGHTENING_UNCHANGED;
 #ifdef HAVE_MAiNGO_MPI
             BCAST_TAG tag = BCAST_TIGHTENING_INFEASIBLE;
             MPI_Bcast(&tag, 1, MPI_INT, 0, MPI_COMM_WORLD);
@@ -1436,11 +1390,11 @@ MAiNGO::_root_obbt_feasibility_optimality()
             BCAST_TAG tag;
             MPI_Bcast(&tag, 1, MPI_INT, 0, MPI_COMM_WORLD);
             if (tag == BCAST_EXCEPTION) {
-                throw(MAiNGOMpiException(MAiNGOMpiException::MPI_OTHER));
+                throw MAiNGOMpiException("  Worker " + std::to_string(_rank) + " received message about an exception during feasibility- and optimality-based during pre-processing.", MAiNGOMpiException::ORIGIN_OTHER);
             }
             else if (tag == BCAST_TIGHTENING_INFEASIBLE) {
-                _maingoSettings.PRE_obbtMaxRounds   = 0;
-                _maingoSettings.BAB_alwaysSolveObbt = 0;
+                _maingoSettings->PRE_obbtMaxRounds   = 0;
+                _maingoSettings->BAB_alwaysSolveObbt = 0;
             }
             // Note that workers don't need the possibly changed node, since they will get new nodes in the B&B algorithm
 #endif
@@ -1455,14 +1409,14 @@ MAiNGO::_root_constraint_propagation()
 {
 
     MAiNGO_IF_BAB_MANAGER
-        _logger.print_message("    Constraint propagation range reduction...\n", _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+        _logger->print_message("    Constraint propagation...\n", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
 
         babBase::BabNode tmpNode(_rootNode);
         if (_rootMultistartStatus == SUBSOLVER_FEASIBLE) {
             _rootConPropStatus = _myLBS->do_constraint_propagation(tmpNode, _solutionValue, 30);
         }
         else {
-            _rootConPropStatus = _myLBS->do_constraint_propagation(tmpNode, _maingoSettings.infinity, 30);
+            _rootConPropStatus = _myLBS->do_constraint_propagation(tmpNode, _maingoSettings->infinity, 30);
         }
 
         // If we prove infeasibility, don't overwrite root node
@@ -1472,16 +1426,16 @@ MAiNGO::_root_constraint_propagation()
                 std::string str = "      Warning: Constraint propagation declared the problem infeasible although a feasible point was found.\n";
                 str += "               This may be caused by numerical difficulties.\n";
                 str += "               Turning off constraint propagation, restoring valid bounds and proceeding...\n";
-                _logger.print_message(str, _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
-                _maingoSettings.BAB_constraintPropagation = false;
-                _rootConPropStatus                        = TIGHTENING_UNCHANGED;
+                _logger->print_message(str, _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
+                _maingoSettings->BAB_constraintPropagation = false;
+                _rootConPropStatus                         = TIGHTENING_UNCHANGED;
 #ifdef HAVE_MAiNGO_MPI
                 BCAST_TAG tag = BCAST_CONSTR_PROP_INFEASIBLE;
                 MPI_Bcast(&tag, 1, MPI_INT, 0, MPI_COMM_WORLD);
 #endif
             }
             else {
-                _logger.print_message("      Found problem to be infeasible.\n", _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+                _logger->print_message("      Found problem to be infeasible.\n", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
 #ifdef HAVE_MAiNGO_MPI
                 BCAST_TAG tag = BCAST_INFEASIBLE;
                 MPI_Bcast(&tag, 1, MPI_INT, 0, MPI_COMM_WORLD);
@@ -1505,7 +1459,7 @@ MAiNGO::_root_constraint_propagation()
             BCAST_TAG tag;
             MPI_Bcast(&tag, 1, MPI_INT, 0, MPI_COMM_WORLD);
             if (tag == BCAST_CONSTR_PROP_INFEASIBLE) {
-                _maingoSettings.BAB_constraintPropagation = false;
+                _maingoSettings->BAB_constraintPropagation = false;
             }
             else if (tag == BCAST_INFEASIBLE) {
                 _rootConPropStatus = TIGHTENING_INFEASIBLE;
@@ -1523,22 +1477,22 @@ MAiNGO::_root_multistart()
 {
 
     MAiNGO_IF_BAB_MANAGER
-        if (_maingoSettings.PRE_pureMultistart) {
-            if (_maingoSettings.PRE_maxLocalSearches > 0) {
+        if (_maingoSettings->PRE_pureMultistart) {
+            if (_maingoSettings->PRE_maxLocalSearches > 0) {
                 std::ostringstream outstr;
-                outstr << "    Multistart with " << _maingoSettings.PRE_maxLocalSearches << " initial points...\n";
-                _logger.print_message(outstr.str(), _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+                outstr << "    Multistart with " << _maingoSettings->PRE_maxLocalSearches << " initial points...\n";
+                _logger->print_message(outstr.str(), _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
             }
             else {
                 // users... :-/
-                _logger.print_message("    Requested pure multistart with 0 local searches. Only checking user-specified initial point for feasibility ...\n", _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+                _logger->print_message("    Requested pure multistart with 0 local searches. Only checking user-specified initial point for feasibility ...\n", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
             }
         }
-        else if (_maingoSettings.PRE_maxLocalSearches > 0) {
-            _logger.print_message("    Local searches...\n", _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+        else if (_maingoSettings->PRE_maxLocalSearches > 0) {
+            _logger->print_message("    Multistart local searches...\n", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
         }
         else if (_initialPoint.size() == _nvar) {
-            _logger.print_message("    Checking user-specified initial point...\n", _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+            _logger->print_message("    Checking user-specified initial point...\n", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
         }
     MAiNGO_END_IF
     _solutionPoint        = _initialPoint;
@@ -1575,7 +1529,7 @@ MAiNGO::_root_multistart()
             }
             else {
                 _rootNode.set_holds_incumbent(true);
-                if (!_maingoSettings.PRE_pureMultistart) {
+                if (!_maingoSettings->PRE_pureMultistart) {
                     _myLBS->update_incumbent_LBP(_solutionPoint);
                 }
             }
@@ -1585,7 +1539,7 @@ MAiNGO::_root_multistart()
                 std::string str;
                 std::string whitespaces = "      ";
                 _check_feasibility_of_relaxation_only_constraints(_solutionPoint, str, whitespaces);
-                _logger.print_message(str, _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+                _logger->print_message(str, _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
             }
         MAiNGO_END_IF
 }
@@ -1660,28 +1614,28 @@ MAiNGO::_recognize_structure()
 
     switch (_problemStructure) {
         case LP:
-            _logger.print_message("\n  The problem is an LP", _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_ALL, _maingoSettings.outstreamVerbosity);
+            _logger->print_message("\n  The problem is an LP", _maingoSettings->BAB_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
             break;
         case MIP:
-            _logger.print_message("\n  The problem is an MIP", _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_ALL, _maingoSettings.outstreamVerbosity);
+            _logger->print_message("\n  The problem is an MIP", _maingoSettings->BAB_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
             break;
         case QP:
-            _logger.print_message("\n  The problem is a QP", _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_ALL, _maingoSettings.outstreamVerbosity);
+            _logger->print_message("\n  The problem is a QP", _maingoSettings->BAB_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
             break;
         case MIQP:
-            _logger.print_message("\n  The problem is an MIQP", _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_ALL, _maingoSettings.outstreamVerbosity);
+            _logger->print_message("\n  The problem is an MIQP", _maingoSettings->BAB_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
             break;
         case NLP:
-            _logger.print_message("\n  The problem is an NLP", _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_ALL, _maingoSettings.outstreamVerbosity);
+            _logger->print_message("\n  The problem is an NLP", _maingoSettings->BAB_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
             break;
         case DNLP:
-            _logger.print_message("\n  The problem is a DNLP", _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_ALL, _maingoSettings.outstreamVerbosity);
+            _logger->print_message("\n  The problem is a DNLP", _maingoSettings->BAB_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
             break;
         case MINLP:
-            _logger.print_message("\n  The problem is an MINLP", _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_ALL, _maingoSettings.outstreamVerbosity);
+            _logger->print_message("\n  The problem is an MINLP", _maingoSettings->BAB_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
             break;
         default:
-            _logger.print_message("\n  Could not recognize structure", _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_ALL, _maingoSettings.outstreamVerbosity);
+            _logger->print_message("\n  Could not recognize structure", _maingoSettings->BAB_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
             break;
     }
 }
@@ -1693,23 +1647,24 @@ bool
 MAiNGO::_check_feasibility_of_relaxation_only_constraints(const std::vector<double>& solutionPoint, std::string& str, const std::string& whitespaces)
 {
 
-    bool isFeasible = true;
+    bool isFeasible;
     std::vector<double> modelValues;
+    std::tie(modelValues, isFeasible) = _evaluate_model_at_point(solutionPoint);
     std::vector<unsigned> infeasibleRelOnlyIneqs;
     std::vector<unsigned> infeasibleRelOnlyEqs;
-    unsigned index = 1 + _nineq + _nconstantIneq + _neq + _nconstantEq;
-    if (!_get_model_at_point(solutionPoint, modelValues)) {
+    const unsigned startingIndex = 1 + _nineq + _nconstantIneq + _neq + _nconstantEq;
+    if (!isFeasible) {
         // Since the UBS found a feasible point, the point can only be infeasible in the relaxation only constraints
         // Relaxation only inequalities
         for (unsigned i = 0; i < _nineqRelaxationOnly + _nconstantIneqRelOnly; i++) {
-            if (modelValues[i + index] > _maingoSettings.deltaIneq) {
+            if (modelValues[i + startingIndex] > _maingoSettings->deltaIneq) {
                 infeasibleRelOnlyIneqs.push_back(i);
                 isFeasible = false;
             }
         }
         // Relaxations only equalities
         for (unsigned int i = 0; i < _neqRelaxationOnly + _nconstantEqRelOnly; i++) {
-            if (modelValues[i + index + _nineqRelaxationOnly + _nconstantIneqRelOnly] > _maingoSettings.deltaEq || modelValues[i + index + _nineqRelaxationOnly + _nconstantIneqRelOnly] < -_maingoSettings.deltaEq) {
+            if (modelValues[i + startingIndex + _nineqRelaxationOnly + _nconstantIneqRelOnly] > _maingoSettings->deltaEq || modelValues[i + startingIndex + _nineqRelaxationOnly + _nconstantIneqRelOnly] < -_maingoSettings->deltaEq) {
                 infeasibleRelOnlyEqs.push_back(i);
                 isFeasible = false;
             }
@@ -1728,8 +1683,8 @@ MAiNGO::_check_feasibility_of_relaxation_only_constraints(const std::vector<doub
             for (size_t i = 0; i < infeasibleRelOnlyIneqs.size(); i++) {
                 outstr << "\n"
                        << whitespaces << "         number " << infeasibleRelOnlyIneqs[i] + 1
-                       << " (violation = " << std::setprecision(16) << modelValues[infeasibleRelOnlyIneqs[i] + index]
-                       << " > " << std::setprecision(9) << _maingoSettings.deltaIneq << " = deltaIneq)";
+                       << " (violation = " << std::setprecision(16) << modelValues[infeasibleRelOnlyIneqs[i] + startingIndex]
+                       << " > " << std::setprecision(9) << _maingoSettings->deltaIneq << " = deltaIneq)";
             }
             outstr << ".\n";
         }
@@ -1744,8 +1699,8 @@ MAiNGO::_check_feasibility_of_relaxation_only_constraints(const std::vector<doub
             for (size_t i = 0; i < infeasibleRelOnlyEqs.size(); i++) {
                 outstr << "\n"
                        << whitespaces << "         number " << infeasibleRelOnlyEqs[i] + 1
-                       << " (violation = " << std::setprecision(9) << modelValues[infeasibleRelOnlyEqs[i] + index + _nineqRelaxationOnly + _nconstantIneqRelOnly]
-                       << " not in [-" << std::setprecision(9) << _maingoSettings.deltaEq << "," << std::setprecision(9) << _maingoSettings.deltaEq << "] = deltaEq)";
+                       << " (violation = " << std::setprecision(9) << modelValues[infeasibleRelOnlyEqs[i] + startingIndex + _nineqRelaxationOnly + _nconstantIneqRelOnly]
+                       << " not in [-" << std::setprecision(9) << _maingoSettings->deltaEq << "," << std::setprecision(9) << _maingoSettings->deltaEq << "] = deltaEq)";
             }
             outstr << ".\n";
         }
@@ -1758,16 +1713,16 @@ MAiNGO::_check_feasibility_of_relaxation_only_constraints(const std::vector<doub
 /////////////////////////////////////////////////////////////////////////
 // fills the constraints vectors (and output vectors)
 void
-MAiNGO::_classify_constraints(std::vector<mc::FFVar>& tmpFunctions, const std::vector<mc::FFVar>& tmpDAGVars)
+MAiNGO::_classify_objective_and_constraints(std::vector<mc::FFVar>& tmpFunctions, const std::vector<mc::FFVar>& tmpDAGVars)
 {
 
     // Assign the array of functions
     _constantConstraintsFeasible = true;
-    _originalConstraints.clear();
-    _constantConstraints.clear();
-    _nonconstantConstraints.clear();
-    _constantOutputs.clear();
-    _nonconstantOutputs.clear();
+    _originalConstraints         = std::make_shared<std::vector<Constraint>>();
+    _constantConstraints         = std::make_shared<std::vector<Constraint>>();
+    _nonconstantConstraints      = std::make_shared<std::vector<Constraint>>();
+    _constantOutputs             = std::make_shared<std::vector<Constraint>>();
+    _nonconstantOutputs          = std::make_shared<std::vector<Constraint>>();
     unsigned indexNonconstant = 0, indexOriginal = 0, indexConstant = 0, indexType = 0, indexTypeNonconstant = 0, indexTypeConstant = 0;
     _nineq                = 0;
     _neq                  = 0;
@@ -1780,24 +1735,11 @@ MAiNGO::_classify_constraints(std::vector<mc::FFVar>& tmpFunctions, const std::v
     _nconstantEqRelOnly   = 0;
     _nconstantIneqSquash  = 0;
     // Objective(s)
-    if (_modelOutput.objective.size() == 0) {
-        // If no objective has been specified, simply add some dummy
-        _modelOutput.objective.push_back(tmpDAGVars[0] + 1.0 + 0 - tmpDAGVars[0] - 1.0);
-        _logger.print_message("\n  Warning: No objective function has been specified. Setting dummy objective to minimize 0.",
-                              _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
-    }
+    _ensure_valid_objective_function_using_dummy_variable(tmpDAGVars[0]);
     for (size_t i = 0; i < _modelOutput.objective.size(); i++) {
-        if (!_modelOutput.objective[i].dag()) {    // Check if DAG pointer is set, if not the objective is a constant
-            // This is basically saying objective = x1 + 1 + constant - x1 - 1 = constant.
-            // We are doing this since 0*x1 or x1 - x1 will be recognized by the DAG (this may change in future).
-            // Adding and substracting the 1.0 avoids errors in the case of non-defined objective.
-            // An alternative would be to define a flag telling whether the objective is constant and propagate it to the LBD and UBD solvers.
-            _modelOutput.objective.set_value(tmpDAGVars[0] + 1.0 + _modelOutput.objective[i].num().val() - tmpDAGVars[0] - 1.0, i);
-            // throw MAiNGOException("  MAiNGO: Objective function is a constant or not provided at all. This is currently not supported.");
-        }
         tmpFunctions.push_back(_modelOutput.objective.value[i]);
-        _originalConstraints.push_back(Constraint(CONSTRAINT_TYPE::OBJ, indexOriginal, indexType, indexNonconstant, indexTypeNonconstant, _modelOutput.objective.name[i]));
-        _nonconstantConstraints.push_back(Constraint(CONSTRAINT_TYPE::OBJ, indexOriginal++, indexType++, indexNonconstant++, indexTypeNonconstant++, _modelOutput.objective.name[i]));
+        _originalConstraints->push_back(Constraint(CONSTRAINT_TYPE::OBJ, indexOriginal, indexType, indexNonconstant, indexTypeNonconstant, _modelOutput.objective.name[i]));
+        _nonconstantConstraints->push_back(Constraint(CONSTRAINT_TYPE::OBJ, indexOriginal++, indexType++, indexNonconstant++, indexTypeNonconstant++, _modelOutput.objective.name[i]));
     }
     // Inequalities
     indexType            = 0;
@@ -1807,25 +1749,25 @@ MAiNGO::_classify_constraints(std::vector<mc::FFVar>& tmpFunctions, const std::v
         if (!_modelOutput.ineq[i].dag()) {    // Check if DAG pointer is set, if not the constraint is a constant
             double val = _modelOutput.ineq[i].num().val();
             _nconstantIneq++;
-            if (val > _maingoSettings.deltaIneq) {
-                _originalConstraints.push_back(Constraint(CONSTRAINT_TYPE::INEQ, indexOriginal, indexType, indexConstant, indexTypeConstant,
-                                                          /*isConstant*/ true, /*isFeasible*/ false, val, _modelOutput.ineq.name[i]));
-                _constantConstraints.push_back(Constraint(CONSTRAINT_TYPE::INEQ, indexOriginal++, indexType++, indexConstant++, indexTypeConstant++,
-                                                          /*isConstant*/ true, /*isFeasible*/ false, val, _modelOutput.ineq.name[i]));
+            if (val > _maingoSettings->deltaIneq) {
+                _originalConstraints->push_back(Constraint(CONSTRAINT_TYPE::INEQ, indexOriginal, indexType, indexConstant, indexTypeConstant,
+                                                           /*isConstant*/ true, /*isFeasible*/ false, val, _modelOutput.ineq.name[i]));
+                _constantConstraints->push_back(Constraint(CONSTRAINT_TYPE::INEQ, indexOriginal++, indexType++, indexConstant++, indexTypeConstant++,
+                                                           /*isConstant*/ true, /*isFeasible*/ false, val, _modelOutput.ineq.name[i]));
                 _constantConstraintsFeasible = false;
             }
             else {
-                _originalConstraints.push_back(Constraint(CONSTRAINT_TYPE::INEQ, indexOriginal, indexType, indexConstant, indexTypeConstant,
-                                                          /*isConstant*/ true, /*isFeasible*/ true, val, _modelOutput.ineq.name[i]));
-                _constantConstraints.push_back(Constraint(CONSTRAINT_TYPE::INEQ, indexOriginal++, indexType++, indexConstant++, indexTypeConstant++,
-                                                          /*isConstant*/ true, /*isFeasible*/ true, val, _modelOutput.ineq.name[i]));
+                _originalConstraints->push_back(Constraint(CONSTRAINT_TYPE::INEQ, indexOriginal, indexType, indexConstant, indexTypeConstant,
+                                                           /*isConstant*/ true, /*isFeasible*/ true, val, _modelOutput.ineq.name[i]));
+                _constantConstraints->push_back(Constraint(CONSTRAINT_TYPE::INEQ, indexOriginal++, indexType++, indexConstant++, indexTypeConstant++,
+                                                           /*isConstant*/ true, /*isFeasible*/ true, val, _modelOutput.ineq.name[i]));
             }
         }
         else {    // Function is non-constant
-            _originalConstraints.push_back(Constraint(CONSTRAINT_TYPE::INEQ, indexOriginal, indexType, indexNonconstant,
-                                                      indexTypeNonconstant, _modelOutput.ineq.name[i]));
-            _nonconstantConstraints.push_back(Constraint(CONSTRAINT_TYPE::INEQ, indexOriginal++, indexType++, indexNonconstant++,
-                                                         indexTypeNonconstant++, _modelOutput.ineq.name[i]));
+            _originalConstraints->push_back(Constraint(CONSTRAINT_TYPE::INEQ, indexOriginal, indexType, indexNonconstant,
+                                                       indexTypeNonconstant, _modelOutput.ineq.name[i]));
+            _nonconstantConstraints->push_back(Constraint(CONSTRAINT_TYPE::INEQ, indexOriginal++, indexType++, indexNonconstant++,
+                                                          indexTypeNonconstant++, _modelOutput.ineq.name[i]));
             tmpFunctions.push_back(_modelOutput.ineq[i]);
             _nineq++;
         }
@@ -1838,25 +1780,25 @@ MAiNGO::_classify_constraints(std::vector<mc::FFVar>& tmpFunctions, const std::v
         if (!_modelOutput.eq[i].dag()) {    // Check if DAG pointer is set, if not the constraint is a constant
             double val = _modelOutput.eq[i].num().val();
             _nconstantEq++;
-            if (std::fabs(val) > _maingoSettings.deltaEq) {
-                _originalConstraints.push_back(Constraint(CONSTRAINT_TYPE::EQ, indexOriginal, indexType, indexConstant, indexTypeConstant,
-                                                          /*isConstant*/ true, /*isFeasible*/ false, val, _modelOutput.eq.name[i]));
-                _constantConstraints.push_back(Constraint(CONSTRAINT_TYPE::EQ, indexOriginal++, indexType++, indexConstant++, indexTypeConstant++,
-                                                          /*isConstant*/ true, /*isFeasible*/ false, val, _modelOutput.eq.name[i]));
+            if (std::fabs(val) > _maingoSettings->deltaEq) {
+                _originalConstraints->push_back(Constraint(CONSTRAINT_TYPE::EQ, indexOriginal, indexType, indexConstant, indexTypeConstant,
+                                                           /*isConstant*/ true, /*isFeasible*/ false, val, _modelOutput.eq.name[i]));
+                _constantConstraints->push_back(Constraint(CONSTRAINT_TYPE::EQ, indexOriginal++, indexType++, indexConstant++, indexTypeConstant++,
+                                                           /*isConstant*/ true, /*isFeasible*/ false, val, _modelOutput.eq.name[i]));
                 _constantConstraintsFeasible = false;
             }
             else {
-                _originalConstraints.push_back(Constraint(CONSTRAINT_TYPE::EQ, indexOriginal, indexType, indexConstant, indexTypeConstant,
-                                                          /*isConstant*/ true, /*isFeasible*/ true, val, _modelOutput.eq.name[i]));
-                _constantConstraints.push_back(Constraint(CONSTRAINT_TYPE::EQ, indexOriginal++, indexType++, indexConstant++, indexTypeConstant++,
-                                                          /*isConstant*/ true, /*isFeasible*/ true, val, _modelOutput.eq.name[i]));
+                _originalConstraints->push_back(Constraint(CONSTRAINT_TYPE::EQ, indexOriginal, indexType, indexConstant, indexTypeConstant,
+                                                           /*isConstant*/ true, /*isFeasible*/ true, val, _modelOutput.eq.name[i]));
+                _constantConstraints->push_back(Constraint(CONSTRAINT_TYPE::EQ, indexOriginal++, indexType++, indexConstant++, indexTypeConstant++,
+                                                           /*isConstant*/ true, /*isFeasible*/ true, val, _modelOutput.eq.name[i]));
             }
         }
         else {
-            _originalConstraints.push_back(Constraint(CONSTRAINT_TYPE::EQ, indexOriginal, indexType, indexNonconstant,
-                                                      indexTypeNonconstant, _modelOutput.eq.name[i]));
-            _nonconstantConstraints.push_back(Constraint(CONSTRAINT_TYPE::EQ, indexOriginal++, indexType++, indexNonconstant++,
-                                                         indexTypeNonconstant++, _modelOutput.eq.name[i]));
+            _originalConstraints->push_back(Constraint(CONSTRAINT_TYPE::EQ, indexOriginal, indexType, indexNonconstant,
+                                                       indexTypeNonconstant, _modelOutput.eq.name[i]));
+            _nonconstantConstraints->push_back(Constraint(CONSTRAINT_TYPE::EQ, indexOriginal++, indexType++, indexNonconstant++,
+                                                          indexTypeNonconstant++, _modelOutput.eq.name[i]));
             tmpFunctions.push_back(_modelOutput.eq[i]);
             _neq++;
         }
@@ -1869,25 +1811,25 @@ MAiNGO::_classify_constraints(std::vector<mc::FFVar>& tmpFunctions, const std::v
         if (!_modelOutput.ineqRelaxationOnly[i].dag()) {    // Check if DAG pointer is set, if not the constraint is a constant
             double val = _modelOutput.ineqRelaxationOnly[i].num().val();
             _nconstantIneqRelOnly++;
-            if (val > _maingoSettings.deltaIneq) {
-                _originalConstraints.push_back(Constraint(CONSTRAINT_TYPE::INEQ_REL_ONLY, indexOriginal, indexType, indexConstant, indexTypeConstant,
-                                                          /*isConstant*/ true, /*isFeasible*/ false, val, _modelOutput.ineqRelaxationOnly.name[i]));
-                _constantConstraints.push_back(Constraint(CONSTRAINT_TYPE::INEQ_REL_ONLY, indexOriginal++, indexType++, indexConstant++, indexTypeConstant++,
-                                                          /*isConstant*/ true, /*isFeasible*/ false, val, _modelOutput.ineqRelaxationOnly.name[i]));
+            if (val > _maingoSettings->deltaIneq) {
+                _originalConstraints->push_back(Constraint(CONSTRAINT_TYPE::INEQ_REL_ONLY, indexOriginal, indexType, indexConstant, indexTypeConstant,
+                                                           /*isConstant*/ true, /*isFeasible*/ false, val, _modelOutput.ineqRelaxationOnly.name[i]));
+                _constantConstraints->push_back(Constraint(CONSTRAINT_TYPE::INEQ_REL_ONLY, indexOriginal++, indexType++, indexConstant++, indexTypeConstant++,
+                                                           /*isConstant*/ true, /*isFeasible*/ false, val, _modelOutput.ineqRelaxationOnly.name[i]));
                 _constantConstraintsFeasible = false;
             }
             else {
-                _originalConstraints.push_back(Constraint(CONSTRAINT_TYPE::INEQ_REL_ONLY, indexOriginal, indexType, indexConstant, indexTypeConstant,
-                                                          /*isConstant*/ true, /*isFeasible*/ true, val, _modelOutput.ineqRelaxationOnly.name[i]));
-                _constantConstraints.push_back(Constraint(CONSTRAINT_TYPE::INEQ_REL_ONLY, indexOriginal++, indexType++, indexConstant++, indexTypeConstant++,
-                                                          /*isConstant*/ true, /*isFeasible*/ true, val, _modelOutput.ineqRelaxationOnly.name[i]));
+                _originalConstraints->push_back(Constraint(CONSTRAINT_TYPE::INEQ_REL_ONLY, indexOriginal, indexType, indexConstant, indexTypeConstant,
+                                                           /*isConstant*/ true, /*isFeasible*/ true, val, _modelOutput.ineqRelaxationOnly.name[i]));
+                _constantConstraints->push_back(Constraint(CONSTRAINT_TYPE::INEQ_REL_ONLY, indexOriginal++, indexType++, indexConstant++, indexTypeConstant++,
+                                                           /*isConstant*/ true, /*isFeasible*/ true, val, _modelOutput.ineqRelaxationOnly.name[i]));
             }
         }
         else {
-            _originalConstraints.push_back(Constraint(CONSTRAINT_TYPE::INEQ_REL_ONLY, indexOriginal, indexType,
-                                                      indexNonconstant, indexTypeNonconstant, _modelOutput.ineqRelaxationOnly.name[i]));
-            _nonconstantConstraints.push_back(Constraint(CONSTRAINT_TYPE::INEQ_REL_ONLY, indexOriginal++, indexType++,
-                                                         indexNonconstant++, indexTypeNonconstant++, _modelOutput.ineqRelaxationOnly.name[i]));
+            _originalConstraints->push_back(Constraint(CONSTRAINT_TYPE::INEQ_REL_ONLY, indexOriginal, indexType,
+                                                       indexNonconstant, indexTypeNonconstant, _modelOutput.ineqRelaxationOnly.name[i]));
+            _nonconstantConstraints->push_back(Constraint(CONSTRAINT_TYPE::INEQ_REL_ONLY, indexOriginal++, indexType++,
+                                                          indexNonconstant++, indexTypeNonconstant++, _modelOutput.ineqRelaxationOnly.name[i]));
             tmpFunctions.push_back(_modelOutput.ineqRelaxationOnly[i]);
             _nineqRelaxationOnly++;
         }
@@ -1900,25 +1842,25 @@ MAiNGO::_classify_constraints(std::vector<mc::FFVar>& tmpFunctions, const std::v
         if (!_modelOutput.eqRelaxationOnly[i].dag()) {    // Check if DAG pointer is set, if not the constraint is a constant
             double val = _modelOutput.eqRelaxationOnly[i].num().val();
             _nconstantEqRelOnly++;
-            if (std::fabs(val) > _maingoSettings.deltaEq) {
-                _originalConstraints.push_back(Constraint(CONSTRAINT_TYPE::EQ_REL_ONLY, indexOriginal, indexType, indexConstant, indexTypeConstant,
-                                                          /*isConstant*/ true, /*isFeasible*/ false, val, _modelOutput.eqRelaxationOnly.name[i]));
-                _constantConstraints.push_back(Constraint(CONSTRAINT_TYPE::EQ_REL_ONLY, indexOriginal++, indexType++, indexConstant++, indexTypeConstant++,
-                                                          /*isConstant*/ true, /*isFeasible*/ false, val, _modelOutput.eqRelaxationOnly.name[i]));
+            if (std::fabs(val) > _maingoSettings->deltaEq) {
+                _originalConstraints->push_back(Constraint(CONSTRAINT_TYPE::EQ_REL_ONLY, indexOriginal, indexType, indexConstant, indexTypeConstant,
+                                                           /*isConstant*/ true, /*isFeasible*/ false, val, _modelOutput.eqRelaxationOnly.name[i]));
+                _constantConstraints->push_back(Constraint(CONSTRAINT_TYPE::EQ_REL_ONLY, indexOriginal++, indexType++, indexConstant++, indexTypeConstant++,
+                                                           /*isConstant*/ true, /*isFeasible*/ false, val, _modelOutput.eqRelaxationOnly.name[i]));
                 _constantConstraintsFeasible = false;
             }
             else {
-                _originalConstraints.push_back(Constraint(CONSTRAINT_TYPE::EQ_REL_ONLY, indexOriginal, indexType, indexConstant, indexTypeConstant,
-                                                          /*isConstant*/ true, /*isFeasible*/ true, val, _modelOutput.eqRelaxationOnly.name[i]));
-                _constantConstraints.push_back(Constraint(CONSTRAINT_TYPE::EQ_REL_ONLY, indexOriginal++, indexType++, indexConstant++, indexTypeConstant++,
-                                                          /*isConstant*/ true, /*isFeasible*/ true, val, _modelOutput.eqRelaxationOnly.name[i]));
+                _originalConstraints->push_back(Constraint(CONSTRAINT_TYPE::EQ_REL_ONLY, indexOriginal, indexType, indexConstant, indexTypeConstant,
+                                                           /*isConstant*/ true, /*isFeasible*/ true, val, _modelOutput.eqRelaxationOnly.name[i]));
+                _constantConstraints->push_back(Constraint(CONSTRAINT_TYPE::EQ_REL_ONLY, indexOriginal++, indexType++, indexConstant++, indexTypeConstant++,
+                                                           /*isConstant*/ true, /*isFeasible*/ true, val, _modelOutput.eqRelaxationOnly.name[i]));
             }
         }
         else {
-            _originalConstraints.push_back(Constraint(CONSTRAINT_TYPE::EQ_REL_ONLY, indexOriginal, indexType,
-                                                      indexNonconstant, indexTypeNonconstant, _modelOutput.eqRelaxationOnly.name[i]));
-            _nonconstantConstraints.push_back(Constraint(CONSTRAINT_TYPE::EQ_REL_ONLY, indexOriginal++, indexType++,
-                                                         indexNonconstant++, indexTypeNonconstant++, _modelOutput.eqRelaxationOnly.name[i]));
+            _originalConstraints->push_back(Constraint(CONSTRAINT_TYPE::EQ_REL_ONLY, indexOriginal, indexType,
+                                                       indexNonconstant, indexTypeNonconstant, _modelOutput.eqRelaxationOnly.name[i]));
+            _nonconstantConstraints->push_back(Constraint(CONSTRAINT_TYPE::EQ_REL_ONLY, indexOriginal++, indexType++,
+                                                          indexNonconstant++, indexTypeNonconstant++, _modelOutput.eqRelaxationOnly.name[i]));
             tmpFunctions.push_back(_modelOutput.eqRelaxationOnly[i]);
             _neqRelaxationOnly++;
         }
@@ -1932,24 +1874,24 @@ MAiNGO::_classify_constraints(std::vector<mc::FFVar>& tmpFunctions, const std::v
             double val = _modelOutput.ineqSquash[i].num().val();
             _nconstantIneqSquash++;
             if (val > 0) {    // No tolerances are allowed for squash inequalities!
-                _originalConstraints.push_back(Constraint(CONSTRAINT_TYPE::INEQ_SQUASH, indexOriginal, indexType, indexConstant, indexTypeConstant,
-                                                          /*isConstant*/ true, /*isFeasible*/ false, val, _modelOutput.ineqSquash.name[i]));
-                _constantConstraints.push_back(Constraint(CONSTRAINT_TYPE::INEQ_SQUASH, indexOriginal++, indexType++, indexConstant++, indexTypeConstant++,
-                                                          /*isConstant*/ true, /*isFeasible*/ false, val, _modelOutput.ineqSquash.name[i]));
+                _originalConstraints->push_back(Constraint(CONSTRAINT_TYPE::INEQ_SQUASH, indexOriginal, indexType, indexConstant, indexTypeConstant,
+                                                           /*isConstant*/ true, /*isFeasible*/ false, val, _modelOutput.ineqSquash.name[i]));
+                _constantConstraints->push_back(Constraint(CONSTRAINT_TYPE::INEQ_SQUASH, indexOriginal++, indexType++, indexConstant++, indexTypeConstant++,
+                                                           /*isConstant*/ true, /*isFeasible*/ false, val, _modelOutput.ineqSquash.name[i]));
                 _constantConstraintsFeasible = false;
             }
             else {
-                _originalConstraints.push_back(Constraint(CONSTRAINT_TYPE::INEQ_SQUASH, indexOriginal, indexType, indexConstant, indexTypeConstant,
-                                                          /*isConstant*/ true, /*isFeasible*/ true, val, _modelOutput.ineqSquash.name[i]));
-                _constantConstraints.push_back(Constraint(CONSTRAINT_TYPE::INEQ_SQUASH, indexOriginal++, indexType++, indexConstant++, indexTypeConstant++,
-                                                          /*isConstant*/ true, /*isFeasible*/ true, val, _modelOutput.ineqSquash.name[i]));
+                _originalConstraints->push_back(Constraint(CONSTRAINT_TYPE::INEQ_SQUASH, indexOriginal, indexType, indexConstant, indexTypeConstant,
+                                                           /*isConstant*/ true, /*isFeasible*/ true, val, _modelOutput.ineqSquash.name[i]));
+                _constantConstraints->push_back(Constraint(CONSTRAINT_TYPE::INEQ_SQUASH, indexOriginal++, indexType++, indexConstant++, indexTypeConstant++,
+                                                           /*isConstant*/ true, /*isFeasible*/ true, val, _modelOutput.ineqSquash.name[i]));
             }
         }
         else {
-            _originalConstraints.push_back(Constraint(CONSTRAINT_TYPE::INEQ_SQUASH, indexOriginal, indexType,
-                                                      indexNonconstant, indexTypeNonconstant, _modelOutput.ineqSquash.name[i]));
-            _nonconstantConstraints.push_back(Constraint(CONSTRAINT_TYPE::INEQ_SQUASH, indexOriginal++, indexType++,
-                                                         indexNonconstant++, indexTypeNonconstant++, _modelOutput.ineqSquash.name[i]));
+            _originalConstraints->push_back(Constraint(CONSTRAINT_TYPE::INEQ_SQUASH, indexOriginal, indexType,
+                                                       indexNonconstant, indexTypeNonconstant, _modelOutput.ineqSquash.name[i]));
+            _nonconstantConstraints->push_back(Constraint(CONSTRAINT_TYPE::INEQ_SQUASH, indexOriginal++, indexType++,
+                                                          indexNonconstant++, indexTypeNonconstant++, _modelOutput.ineqSquash.name[i]));
             tmpFunctions.push_back(_modelOutput.ineqSquash[i]);
             _nineqSquash++;
         }
@@ -1967,13 +1909,13 @@ MAiNGO::_classify_constraints(std::vector<mc::FFVar>& tmpFunctions, const std::v
     for (unsigned int i = 0; i < _modelOutput.output.size(); i++) {
         if (!_modelOutput.output[i].value.dag()) {    // Check if DAG pointer is set, if not the output is a constant
             double val = _modelOutput.output[i].value.num().val();
-            _constantOutputs.push_back(Constraint(CONSTRAINT_TYPE::OUTPUT, indexOriginal++, indexType++, indexConstant++, indexTypeConstant++,
-                                                  /*isConstant*/ true, /*isFeasible*/ true, val, _modelOutput.output[i].description));
+            _constantOutputs->push_back(Constraint(CONSTRAINT_TYPE::OUTPUT, indexOriginal++, indexType++, indexConstant++, indexTypeConstant++,
+                                                   /*isConstant*/ true, /*isFeasible*/ true, val, _modelOutput.output[i].description));
             _nconstantOutputVariables++;
         }
         else {
-            _nonconstantOutputs.push_back(Constraint(CONSTRAINT_TYPE::OUTPUT, indexOriginal++, indexType++, indexNonconstant++,
-                                                     indexTypeNonconstant++, _modelOutput.output[i].description));
+            _nonconstantOutputs->push_back(Constraint(CONSTRAINT_TYPE::OUTPUT, indexOriginal++, indexType++, indexNonconstant++,
+                                                      indexTypeNonconstant++, _modelOutput.output[i].description));
             tmpFunctions.push_back(_modelOutput.output[i].value);
             _noutputVariables++;
         }
@@ -1981,6 +1923,35 @@ MAiNGO::_classify_constraints(std::vector<mc::FFVar>& tmpFunctions, const std::v
 }
 
 
+/////////////////////////////////////////////////////////////////////////
+// Ensures that the objective function stored in the _modelOutput is valid
+void
+MAiNGO::_ensure_valid_objective_function_using_dummy_variable(const mc::FFVar& dummyVariable)
+{
+    if (_modelOutput.objective.size() == 0) {
+        // If no objective has been specified, simply add some dummy
+        _modelOutput.objective.push_back(dummyVariable + 1.0 + 0 - dummyVariable - 1.0);
+        _feasibilityProblem                       = true;
+        _maingoSettings->terminateOnFeasiblePoint = true;
+        _logger->print_message("\n  Warning: No objective function has been specified. Assuming this is a feasibility problem.\n           During solution, a constant dummy objective with value 0 will be used.",
+                               _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
+    }
+    else {
+        for (size_t i = 0; i < _modelOutput.objective.size(); i++) {
+            if (!_modelOutput.objective[i].dag()) {    // Check if DAG pointer is set, if not the objective is a constant
+                // This is basically saying objective = x1 + 1 + constant - x1 - 1 = constant.
+                // We are doing this since 0*x1 or x1 - x1 will be recognized by the DAG (this may change in future).
+                // Adding and substracting the 1.0 avoids errors in the case of non-defined objective.
+                // An alternative would be to define a flag telling whether the objective is constant and propagate it to the LBD and UBD solvers.
+                _logger->print_message("\n  Warning: Objective function is a constant with value " + std::to_string(_modelOutput.objective[i].num().val()) + ".",
+                                       _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
+                _modelOutput.objective.set_value(dummyVariable + 1.0 + _modelOutput.objective[i].num().val() - dummyVariable - 1.0, i);
+            }
+        }
+    }
+}
+
+
 /////////////////////////////////////////////////////////////////////////
 // checks whether some constraints (or output) is not indeed 0 and also fills the _DAGoutputFunctions vector
 bool
@@ -1993,7 +1964,7 @@ MAiNGO::_check_for_hidden_zero_constraints(const std::vector<mc::FFVar>& tmpDAGV
     for (int i = _resultVars.size() - _noutputVariables - 1; i >= 0; i--) {
         if (!_resultVars[i].dag()) {
             foundHiddenZero = true;
-            switch (_nonconstantConstraints[i].type) {
+            switch ((*_nonconstantConstraints)[i].type) {
                 case OBJ:
                     _resultVars[i] = tmpDAGVars[0] + 1.0 + _modelOutput.objective[i].num().val() - tmpDAGVars[0] - 1.0;
                     tmpDAGFunctions.push_back(_resultVars[i]);    // Get functions
@@ -2024,29 +1995,29 @@ MAiNGO::_check_for_hidden_zero_constraints(const std::vector<mc::FFVar>& tmpDAGV
             }    // End of switch
             // Erase the constraint from nonconstant constraints and insert it into the constant constraints vector
             updateIndices  = true;
-            Constraint tmp = _nonconstantConstraints[i];
-            _nonconstantConstraints.erase(_nonconstantConstraints.begin() + i);
-            tmp.isFeasible                          = true;
-            tmp.isConstant                          = true;
-            tmp.constantValue                       = 0;
-            tmp.indexNonconstant                    = 0;
-            tmp.indexTypeNonconstant                = 0;
-            _originalConstraints[tmp.indexOriginal] = tmp;
+            Constraint tmp = (*_nonconstantConstraints)[i];
+            _nonconstantConstraints->erase(_nonconstantConstraints->begin() + i);
+            tmp.isFeasible                             = true;
+            tmp.isConstant                             = true;
+            tmp.constantValue                          = 0;
+            tmp.indexNonconstant                       = 0;
+            tmp.indexTypeNonconstant                   = 0;
+            (*_originalConstraints)[tmp.indexOriginal] = tmp;
             // Insert the constraint to the constantConstraints vector at the right place
-            if (_constantConstraints.empty()) {
-                _constantConstraints.push_back(tmp);
+            if (_constantConstraints->empty()) {
+                _constantConstraints->push_back(tmp);
             }
             else {
-                for (size_t i = 0; i < _constantConstraints.size(); i++) {
-                    if (_constantConstraints[i].indexOriginal < tmp.indexOriginal) {
-                        if (i == _constantConstraints.size() - 1) {
-                            _constantConstraints.insert(_constantConstraints.end(), tmp);
+                for (size_t i = 0; i < _constantConstraints->size(); i++) {
+                    if ((*_constantConstraints)[i].indexOriginal < tmp.indexOriginal) {
+                        if (i == _constantConstraints->size() - 1) {
+                            _constantConstraints->insert(_constantConstraints->end(), tmp);
                             break;
                         }
                         continue;
                     }
                     else {
-                        _constantConstraints.insert(_constantConstraints.begin() + i, tmp);
+                        _constantConstraints->insert(_constantConstraints->begin() + i, tmp);
                         break;
                     }
                 }
@@ -2060,33 +2031,33 @@ MAiNGO::_check_for_hidden_zero_constraints(const std::vector<mc::FFVar>& tmpDAGV
     // Update nonconstant and constant index of constraints
     if (updateIndices) {
         unsigned indexObj = 0, indexIneq = 0, indexEq = 0, indexIneqRelOnly = 0, indexEqRelOnly = 0, indexIneqSquash = 0;
-        for (size_t i = 0; i < _nonconstantConstraints.size(); i++) {
-            _nonconstantConstraints[i].indexNonconstant                                     = i;
-            _originalConstraints[_nonconstantConstraints[i].indexOriginal].indexNonconstant = i;
-            switch (_nonconstantConstraints[i].type) {
+        for (size_t i = 0; i < _nonconstantConstraints->size(); i++) {
+            (*_nonconstantConstraints)[i].indexNonconstant                                        = i;
+            (*_originalConstraints)[(*_nonconstantConstraints)[i].indexOriginal].indexNonconstant = i;
+            switch ((*_nonconstantConstraints)[i].type) {
                 case OBJ:
-                    _nonconstantConstraints[i].indexTypeNonconstant                                     = indexObj;
-                    _originalConstraints[_nonconstantConstraints[i].indexOriginal].indexTypeNonconstant = indexObj++;
+                    (*_nonconstantConstraints)[i].indexTypeNonconstant                                        = indexObj;
+                    (*_originalConstraints)[(*_nonconstantConstraints)[i].indexOriginal].indexTypeNonconstant = indexObj++;
                     break;
                 case INEQ:
-                    _nonconstantConstraints[i].indexTypeNonconstant                                     = indexIneq;
-                    _originalConstraints[_nonconstantConstraints[i].indexOriginal].indexTypeNonconstant = indexIneq++;
+                    (*_nonconstantConstraints)[i].indexTypeNonconstant                                        = indexIneq;
+                    (*_originalConstraints)[(*_nonconstantConstraints)[i].indexOriginal].indexTypeNonconstant = indexIneq++;
                     break;
                 case EQ:
-                    _nonconstantConstraints[i].indexTypeNonconstant                                     = indexEq;
-                    _originalConstraints[_nonconstantConstraints[i].indexOriginal].indexTypeNonconstant = indexEq++;
+                    (*_nonconstantConstraints)[i].indexTypeNonconstant                                        = indexEq;
+                    (*_originalConstraints)[(*_nonconstantConstraints)[i].indexOriginal].indexTypeNonconstant = indexEq++;
                     break;
                 case INEQ_REL_ONLY:
-                    _nonconstantConstraints[i].indexTypeNonconstant                                     = indexIneqRelOnly;
-                    _originalConstraints[_nonconstantConstraints[i].indexOriginal].indexTypeNonconstant = indexIneqRelOnly++;
+                    (*_nonconstantConstraints)[i].indexTypeNonconstant                                        = indexIneqRelOnly;
+                    (*_originalConstraints)[(*_nonconstantConstraints)[i].indexOriginal].indexTypeNonconstant = indexIneqRelOnly++;
                     break;
                 case EQ_REL_ONLY:
-                    _nonconstantConstraints[i].indexTypeNonconstant                                     = indexEqRelOnly;
-                    _originalConstraints[_nonconstantConstraints[i].indexOriginal].indexTypeNonconstant = indexEqRelOnly++;
+                    (*_nonconstantConstraints)[i].indexTypeNonconstant                                        = indexEqRelOnly;
+                    (*_originalConstraints)[(*_nonconstantConstraints)[i].indexOriginal].indexTypeNonconstant = indexEqRelOnly++;
                     break;
                 case INEQ_SQUASH:
-                    _nonconstantConstraints[i].indexTypeNonconstant                                     = indexIneqSquash;
-                    _originalConstraints[_nonconstantConstraints[i].indexOriginal].indexTypeNonconstant = indexIneqSquash++;
+                    (*_nonconstantConstraints)[i].indexTypeNonconstant                                        = indexIneqSquash;
+                    (*_originalConstraints)[(*_nonconstantConstraints)[i].indexOriginal].indexTypeNonconstant = indexIneqSquash++;
                     break;
                 default:
                     break;
@@ -2098,33 +2069,33 @@ MAiNGO::_check_for_hidden_zero_constraints(const std::vector<mc::FFVar>& tmpDAGV
         indexIneqRelOnly = 0;
         indexEqRelOnly   = 0;
         indexIneqSquash  = 0;
-        for (size_t i = 0; i < _constantConstraints.size(); i++) {
-            _constantConstraints[i].indexConstant                                     = i;
-            _originalConstraints[_constantConstraints[i].indexOriginal].indexConstant = i;
-            switch (_constantConstraints[i].type) {
+        for (size_t i = 0; i < _constantConstraints->size(); i++) {
+            (*_constantConstraints)[i].indexConstant                                        = i;
+            (*_originalConstraints)[(*_constantConstraints)[i].indexOriginal].indexConstant = i;
+            switch ((*_constantConstraints)[i].type) {
                 case OBJ:
-                    _constantConstraints[i].indexTypeConstant                                     = indexObj;
-                    _originalConstraints[_constantConstraints[i].indexOriginal].indexTypeConstant = indexObj++;
+                    (*_constantConstraints)[i].indexTypeConstant                                        = indexObj;
+                    (*_originalConstraints)[(*_constantConstraints)[i].indexOriginal].indexTypeConstant = indexObj++;
                     break;
                 case INEQ:
-                    _constantConstraints[i].indexTypeConstant                                     = indexIneq;
-                    _originalConstraints[_constantConstraints[i].indexOriginal].indexTypeConstant = indexIneq++;
+                    (*_constantConstraints)[i].indexTypeConstant                                        = indexIneq;
+                    (*_originalConstraints)[(*_constantConstraints)[i].indexOriginal].indexTypeConstant = indexIneq++;
                     break;
                 case EQ:
-                    _constantConstraints[i].indexTypeConstant                                     = indexEq;
-                    _originalConstraints[_constantConstraints[i].indexOriginal].indexTypeConstant = indexEq++;
+                    (*_constantConstraints)[i].indexTypeConstant                                        = indexEq;
+                    (*_originalConstraints)[(*_constantConstraints)[i].indexOriginal].indexTypeConstant = indexEq++;
                     break;
                 case INEQ_REL_ONLY:
-                    _constantConstraints[i].indexTypeConstant                                     = indexIneqRelOnly;
-                    _originalConstraints[_constantConstraints[i].indexOriginal].indexTypeConstant = indexIneqRelOnly++;
+                    (*_constantConstraints)[i].indexTypeConstant                                        = indexIneqRelOnly;
+                    (*_originalConstraints)[(*_constantConstraints)[i].indexOriginal].indexTypeConstant = indexIneqRelOnly++;
                     break;
                 case EQ_REL_ONLY:
-                    _constantConstraints[i].indexTypeConstant                                     = indexEqRelOnly;
-                    _originalConstraints[_constantConstraints[i].indexOriginal].indexTypeConstant = indexEqRelOnly++;
+                    (*_constantConstraints)[i].indexTypeConstant                                        = indexEqRelOnly;
+                    (*_originalConstraints)[(*_constantConstraints)[i].indexOriginal].indexTypeConstant = indexEqRelOnly++;
                     break;
                 case INEQ_SQUASH:
-                    _constantConstraints[i].indexTypeConstant                                     = indexIneqSquash;
-                    _originalConstraints[_constantConstraints[i].indexOriginal].indexTypeConstant = indexIneqSquash++;
+                    (*_constantConstraints)[i].indexTypeConstant                                        = indexIneqSquash;
+                    (*_originalConstraints)[(*_constantConstraints)[i].indexOriginal].indexTypeConstant = indexIneqSquash++;
                     break;
                 default:
                     break;
@@ -2142,27 +2113,27 @@ MAiNGO::_check_for_hidden_zero_constraints(const std::vector<mc::FFVar>& tmpDAGV
             _nconstantOutputVariables++;
             newConstantOutputs++;
             updateIndices  = true;
-            Constraint tmp = _nonconstantOutputs[_noutputVariables + newConstantOutputs - _resultVars.size() + i];
-            _nonconstantOutputs.erase(_nonconstantOutputs.begin() + (_noutputVariables - _resultVars.size() + i + newConstantOutputs));
+            Constraint tmp = (*_nonconstantOutputs)[_noutputVariables + newConstantOutputs - _resultVars.size() + i];
+            _nonconstantOutputs->erase(_nonconstantOutputs->begin() + (_noutputVariables - _resultVars.size() + i + newConstantOutputs));
             tmp.isFeasible       = true;
             tmp.isConstant       = true;
             tmp.constantValue    = 0;
             tmp.indexNonconstant = 0;
             // Insert the constraint to the constantOutputs vector at the right place
-            if (_constantOutputs.empty()) {
-                _constantOutputs.push_back(tmp);
+            if (_constantOutputs->empty()) {
+                _constantOutputs->push_back(tmp);
             }
             else {
-                for (size_t j = 0; j < _constantOutputs.size(); j++) {
-                    if (_constantOutputs[j].indexOriginal < tmp.indexOriginal) {
-                        if (j == _constantOutputs.size() - 1) {
-                            _constantOutputs.insert(_constantOutputs.end(), tmp);
+                for (size_t j = 0; j < _constantOutputs->size(); j++) {
+                    if ((*_constantOutputs)[j].indexOriginal < tmp.indexOriginal) {
+                        if (j == _constantOutputs->size() - 1) {
+                            _constantOutputs->insert(_constantOutputs->end(), tmp);
                             break;
                         }
                         continue;
                     }
                     else {
-                        _constantOutputs.insert(_constantOutputs.begin() + j, tmp);
+                        _constantOutputs->insert(_constantOutputs->begin() + j, tmp);
                         break;
                     }
                 }
@@ -2175,11 +2146,11 @@ MAiNGO::_check_for_hidden_zero_constraints(const std::vector<mc::FFVar>& tmpDAGV
     std::reverse(tmpDAGoutputFunctions.begin(), tmpDAGoutputFunctions.end());    // Reverse the ordering to be equal to initial user input
                                                                                  // Update nonconstant and constant index of outputs
     if (updateIndices) {
-        for (size_t i = 0; i < _nonconstantOutputs.size(); i++) {
-            _nonconstantOutputs[i].indexNonconstant = i;
+        for (size_t i = 0; i < _nonconstantOutputs->size(); i++) {
+            (*_nonconstantOutputs)[i].indexNonconstant = i;
         }
-        for (size_t i = 0; i < _constantOutputs.size(); i++) {
-            _constantOutputs[i].indexConstant = i;
+        for (size_t i = 0; i < _constantOutputs->size(); i++) {
+            (*_constantOutputs)[i].indexConstant = i;
         }
     }
     return foundHiddenZero;
@@ -2210,7 +2181,7 @@ MAiNGO::_add_auxiliary_variables_to_lbd_dag()
         variableMC[i].sub(_nvar, i);    // Set subgradient dimension
     }
 
-    if (_maingoSettings.LBP_subgradientIntervals) {
+    if (_maingoSettings->LBP_subgradientIntervals) {
         MC::options.SUB_INT_HEUR_USE = true;
     }
     else {
@@ -2220,9 +2191,9 @@ MAiNGO::_add_auxiliary_variables_to_lbd_dag()
     MC::subHeur.clear();
     MC::options.ENVEL_USE           = true;
     MC::options.ENVEL_MAXIT         = 100;
-    MC::options.ENVEL_TOL           = _maingoSettings.MC_envelTol;
-    MC::options.MVCOMP_USE          = _maingoSettings.MC_mvcompUse;
-    MC::options.MVCOMP_TOL          = _maingoSettings.MC_mvcompTol;
+    MC::options.ENVEL_TOL           = _maingoSettings->MC_envelTol;
+    MC::options.MVCOMP_USE          = _maingoSettings->MC_mvcompUse;
+    MC::options.MVCOMP_TOL          = _maingoSettings->MC_mvcompTol;
     MC::subHeur.originalLowerBounds = &lowerVarBounds;
     MC::subHeur.originalUpperBounds = &upperVarBounds;
     MC::subHeur.referencePoint      = &linearizationPoint;
@@ -2239,7 +2210,7 @@ MAiNGO::_add_auxiliary_variables_to_lbd_dag()
     mc::FFGraph::it_Vars itv = Vars.begin();
     unsigned counter         = 0;
     // Iterate over all FFVars in the DAG
-    std::set<unsigned> numberOfOccurrences;    // Numbers saying how often factors occur, they have to occur at least _maingoSettings.LBP_minFactorsForAux times
+    std::set<unsigned> numberOfOccurrences;    // Numbers saying how often factors occur, they have to occur at least _maingoSettings->LBP_minFactorsForAux times
     std::set<unsigned> depthOfFactors;         // Nonlinear operation depths of factors of interest
     std::multimap<std::pair<unsigned, double>, std::pair<mc::FFVar*, mc::FFDep::TYPE>> factorRanking;
     for (; itv != Vars.end(); ++itv) {
@@ -2247,7 +2218,7 @@ MAiNGO::_add_auxiliary_variables_to_lbd_dag()
         if ((*itv)->id().first != mc::FFVar::VAR && (*itv)->id().first != mc::FFVar::CINT && (*itv)->id().first != mc::FFVar::CREAL) {
             typename mc::FFVar::t_Ops Ops = (*itv)->ops().second;    // This is a list of all operations where this FFVar is used
             mc::FFOp* ito                 = (*itv)->ops().first;     // This is the operation of this FFVar
-            if (Ops.size() >= _maingoSettings.LBP_minFactorsForAux) {
+            if (Ops.size() >= _maingoSettings->LBP_minFactorsForAux) {
 
                 std::map<int, int> func_dep;
                 func_dep                          = (*itv)->dep().dep();
@@ -2283,7 +2254,7 @@ MAiNGO::_add_auxiliary_variables_to_lbd_dag()
 
                     averageRelaxationOffset += std::fabs(operationMC[index].cv() - operationDouble[index]) + std::fabs(operationMC[index].cc() - operationDouble[index]);
 
-                    if (Ops.size() >= _maingoSettings.LBP_minFactorsForAux) {
+                    if (Ops.size() >= _maingoSettings->LBP_minFactorsForAux) {
                         numberOfOccurrences.insert(Ops.size());
                     }
 
@@ -2296,7 +2267,7 @@ MAiNGO::_add_auxiliary_variables_to_lbd_dag()
         }
     }
 
-    unsigned maxNumberOfAuxVars = _maingoSettings.LBP_maxNumberOfAddedFactors;
+    unsigned maxNumberOfAuxVars = _maingoSettings->LBP_maxNumberOfAddedFactors;
 
     unsigned indexOriginal        = _DAGfunctions.size();
     unsigned indexType            = 0;
@@ -2314,10 +2285,10 @@ MAiNGO::_add_auxiliary_variables_to_lbd_dag()
         _DAGvarsLbd.push_back(tmp1);      // Add the auxiliary variable to the DAG
         mc::FFVar tmp = tmp1 - (*itv);    // Add the equality aux - f(x) = 0
         _DAGfunctionsLbd.push_back(tmp);
-        _originalConstraints.push_back(Constraint(CONSTRAINT_TYPE::AUX_EQ_REL_ONLY, indexOriginal, indexType,
-                                                  indexNonconstant, indexTypeNonconstant));
-        _nonconstantConstraints.push_back(Constraint(CONSTRAINT_TYPE::AUX_EQ_REL_ONLY, indexOriginal++, indexType++,
-                                                     indexNonconstant++, indexTypeNonconstant++));
+        _originalConstraints->push_back(Constraint(CONSTRAINT_TYPE::AUX_EQ_REL_ONLY, indexOriginal, indexType,
+                                                   indexNonconstant, indexTypeNonconstant));
+        _nonconstantConstraints->push_back(Constraint(CONSTRAINT_TYPE::AUX_EQ_REL_ONLY, indexOriginal++, indexType++,
+                                                      indexNonconstant++, indexTypeNonconstant++));
         _nauxiliaryRelOnlyEqs++;
         counter++;
         // Find the correct range interval of the replaced FFVar
@@ -2363,7 +2334,7 @@ MAiNGO::_set_constraint_properties()
     unsigned size = 1 + _nineq + _neq + _nineqRelaxationOnly + _neqRelaxationOnly + _nineqSquash + _nauxiliaryRelOnlyEqs;
     func_dep.resize(size);
     for (unsigned int i = 0; i < size; i++) {
-        if (_maingoSettings.LBP_addAuxiliaryVars) {
+        if (_maingoSettings->LBP_addAuxiliaryVars) {
             func_dep[i] = _DAGfunctionsLbd[i].dep().dep();
         }
         else {
@@ -2388,84 +2359,84 @@ MAiNGO::_set_constraint_properties()
                 }
             }
         }
-        _nonconstantConstraints[i].nparticipatingVariables                                     = participatingVars.size();
-        _originalConstraints[_nonconstantConstraints[i].indexOriginal].nparticipatingVariables = participatingVars.size();
-        _nonconstantConstraints[i].participatingVariables                                      = participatingVars;
-        _originalConstraints[_nonconstantConstraints[i].indexOriginal].participatingVariables  = participatingVars;
-        unsigned indexOriginal                                                                 = _nonconstantConstraints[i].indexOriginal;
+        (*_nonconstantConstraints)[i].nparticipatingVariables                                        = participatingVars.size();
+        (*_originalConstraints)[(*_nonconstantConstraints)[i].indexOriginal].nparticipatingVariables = participatingVars.size();
+        (*_nonconstantConstraints)[i].participatingVariables                                         = participatingVars;
+        (*_originalConstraints)[(*_nonconstantConstraints)[i].indexOriginal].participatingVariables  = participatingVars;
+        unsigned indexOriginal                                                                       = (*_nonconstantConstraints)[i].indexOriginal;
         switch (functionStructure) {
             case mc::FFDep::L:
-                _nonconstantConstraints[i].dependency           = LINEAR;
-                _originalConstraints[indexOriginal].dependency  = LINEAR;
-                _nonconstantConstraints[i].indexLinear          = indexLinear;
-                _originalConstraints[indexOriginal].indexLinear = indexLinear++;
+                (*_nonconstantConstraints)[i].dependency           = LINEAR;
+                (*_originalConstraints)[indexOriginal].dependency  = LINEAR;
+                (*_nonconstantConstraints)[i].indexLinear          = indexLinear;
+                (*_originalConstraints)[indexOriginal].indexLinear = indexLinear++;
                 break;
             case mc::FFDep::B:
-                _nonconstantConstraints[i].dependency              = BILINEAR;
-                _originalConstraints[indexOriginal].dependency     = BILINEAR;
-                _nonconstantConstraints[i].indexNonlinear          = indexNonlinear;
-                _originalConstraints[indexOriginal].indexNonlinear = indexNonlinear++;
+                (*_nonconstantConstraints)[i].dependency              = BILINEAR;
+                (*_originalConstraints)[indexOriginal].dependency     = BILINEAR;
+                (*_nonconstantConstraints)[i].indexNonlinear          = indexNonlinear;
+                (*_originalConstraints)[indexOriginal].indexNonlinear = indexNonlinear++;
                 break;
             case mc::FFDep::Q:
-                _nonconstantConstraints[i].dependency              = QUADRATIC;
-                _originalConstraints[indexOriginal].dependency     = QUADRATIC;
-                _nonconstantConstraints[i].indexNonlinear          = indexNonlinear;
-                _originalConstraints[indexOriginal].indexNonlinear = indexNonlinear++;
+                (*_nonconstantConstraints)[i].dependency              = QUADRATIC;
+                (*_originalConstraints)[indexOriginal].dependency     = QUADRATIC;
+                (*_nonconstantConstraints)[i].indexNonlinear          = indexNonlinear;
+                (*_originalConstraints)[indexOriginal].indexNonlinear = indexNonlinear++;
                 break;
             case mc::FFDep::P:
-                _nonconstantConstraints[i].dependency              = POLYNOMIAL;
-                _originalConstraints[indexOriginal].dependency     = POLYNOMIAL;
-                _nonconstantConstraints[i].indexNonlinear          = indexNonlinear;
-                _originalConstraints[indexOriginal].indexNonlinear = indexNonlinear++;
+                (*_nonconstantConstraints)[i].dependency              = POLYNOMIAL;
+                (*_originalConstraints)[indexOriginal].dependency     = POLYNOMIAL;
+                (*_nonconstantConstraints)[i].indexNonlinear          = indexNonlinear;
+                (*_originalConstraints)[indexOriginal].indexNonlinear = indexNonlinear++;
                 break;
             case mc::FFDep::R:
-                _nonconstantConstraints[i].dependency              = RATIONAL;
-                _originalConstraints[indexOriginal].dependency     = RATIONAL;
-                _nonconstantConstraints[i].indexNonlinear          = indexNonlinear;
-                _originalConstraints[indexOriginal].indexNonlinear = indexNonlinear++;
+                (*_nonconstantConstraints)[i].dependency              = RATIONAL;
+                (*_originalConstraints)[indexOriginal].dependency     = RATIONAL;
+                (*_nonconstantConstraints)[i].indexNonlinear          = indexNonlinear;
+                (*_originalConstraints)[indexOriginal].indexNonlinear = indexNonlinear++;
                 break;
             case mc::FFDep::N:
             case mc::FFDep::D:
             default:
-                _nonconstantConstraints[i].dependency              = NONLINEAR;
-                _originalConstraints[indexOriginal].dependency     = NONLINEAR;
-                _nonconstantConstraints[i].indexNonlinear          = indexNonlinear;
-                _originalConstraints[indexOriginal].indexNonlinear = indexNonlinear++;
+                (*_nonconstantConstraints)[i].dependency              = NONLINEAR;
+                (*_originalConstraints)[indexOriginal].dependency     = NONLINEAR;
+                (*_nonconstantConstraints)[i].indexNonlinear          = indexNonlinear;
+                (*_originalConstraints)[indexOriginal].indexNonlinear = indexNonlinear++;
                 break;
         }
-        _nonconstantConstraints[i].convexity             = CONV_NONE;
-        _originalConstraints[indexOriginal].convexity    = CONV_NONE;
-        _nonconstantConstraints[i].monotonicity          = MON_NONE;
-        _originalConstraints[indexOriginal].monotonicity = MON_NONE;
+        (*_nonconstantConstraints)[i].convexity             = CONV_NONE;
+        (*_originalConstraints)[indexOriginal].convexity    = CONV_NONE;
+        (*_nonconstantConstraints)[i].monotonicity          = MON_NONE;
+        (*_originalConstraints)[indexOriginal].monotonicity = MON_NONE;
     }
 
     // Fill the vector with nonconstant constraints for the UBS properly
-    unsigned indexUBP = 0;
-    unsigned offset   = _neq + _nineqRelaxationOnly + _neqRelaxationOnly;    // Auxiliary relaxation only equalities are added at the end
-    _nonconstantConstraintsUBP.clear();
-    _nonconstantConstraintsUBP.resize(1 + _nineq + _nineqSquash + _neq);
+    unsigned indexUBP          = 0;
+    unsigned offset            = _neq + _nineqRelaxationOnly + _neqRelaxationOnly;    // Auxiliary relaxation only equalities are added at the end
+    _nonconstantConstraintsUBP = std::make_shared<std::vector<Constraint>>();
+    _nonconstantConstraintsUBP->resize(1 + _nineq + _nineqSquash + _neq);
     for (unsigned int i = 0; i < size; i++) {
-        unsigned indexOriginal = _nonconstantConstraints[i].indexOriginal;
-        switch (_nonconstantConstraints[i].type) {
+        unsigned indexOriginal = (*_nonconstantConstraints)[i].indexOriginal;
+        switch ((*_nonconstantConstraints)[i].type) {
             case OBJ:
             case INEQ:    // Objective and inequalities keep their order
-                _nonconstantConstraintsUBP[i]                           = _nonconstantConstraints[i];
-                _nonconstantConstraintsUBP[i].indexNonconstantUBP       = indexUBP;
-                _nonconstantConstraints[i].indexNonconstantUBP          = indexUBP;
-                _originalConstraints[indexOriginal].indexNonconstantUBP = indexUBP++;
+                (*_nonconstantConstraintsUBP)[i]                           = (*_nonconstantConstraints)[i];
+                (*_nonconstantConstraintsUBP)[i].indexNonconstantUBP       = indexUBP;
+                (*_nonconstantConstraints)[i].indexNonconstantUBP          = indexUBP;
+                (*_originalConstraints)[indexOriginal].indexNonconstantUBP = indexUBP++;
                 break;
             case EQ:
-                _nonconstantConstraintsUBP[i + _nineqSquash]                     = _nonconstantConstraints[i];
-                _nonconstantConstraintsUBP[i + _nineqSquash].indexNonconstantUBP = indexUBP + _nineqSquash;
-                _nonconstantConstraints[i].indexNonconstantUBP                   = indexUBP + _nineqSquash;
-                _originalConstraints[indexOriginal].indexNonconstantUBP          = indexUBP + _nineqSquash;
+                (*_nonconstantConstraintsUBP)[i + _nineqSquash]                     = (*_nonconstantConstraints)[i];
+                (*_nonconstantConstraintsUBP)[i + _nineqSquash].indexNonconstantUBP = indexUBP + _nineqSquash;
+                (*_nonconstantConstraints)[i].indexNonconstantUBP                   = indexUBP + _nineqSquash;
+                (*_originalConstraints)[indexOriginal].indexNonconstantUBP          = indexUBP + _nineqSquash;
                 indexUBP++;
                 break;
             case INEQ_SQUASH:
-                _nonconstantConstraintsUBP[i - offset]                     = _nonconstantConstraints[i];
-                _nonconstantConstraintsUBP[i - offset].indexNonconstantUBP = indexUBP - _neq;
-                _nonconstantConstraints[i].indexNonconstantUBP             = indexUBP - _neq;
-                _originalConstraints[indexOriginal].indexNonconstantUBP    = indexUBP - _neq;
+                (*_nonconstantConstraintsUBP)[i - offset]                     = (*_nonconstantConstraints)[i];
+                (*_nonconstantConstraintsUBP)[i - offset].indexNonconstantUBP = indexUBP - _neq;
+                (*_nonconstantConstraints)[i].indexNonconstantUBP             = indexUBP - _neq;
+                (*_originalConstraints)[indexOriginal].indexNonconstantUBP    = indexUBP - _neq;
                 indexUBP++;
                 break;
             case INEQ_REL_ONLY:
diff --git a/src/MAiNGOevaluationFunctions.cpp b/src/MAiNGOevaluationFunctions.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..436fe31bb436a29aba84ae42c5cd426693a0ace9
--- /dev/null
+++ b/src/MAiNGOevaluationFunctions.cpp
@@ -0,0 +1,239 @@
+/**********************************************************************************
+ * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ **********************************************************************************/
+
+#include "MAiNGO.h"
+#include "MAiNGOException.h"
+
+
+using namespace maingo;
+
+
+////////////////////////////////////////////////////////////////////////////////////////
+// function returning the objective and all constraints at solution point
+std::vector<double>
+MAiNGO::evaluate_model_at_solution_point()
+{
+
+    // Problem has to be solved
+    if (_solutionPoint.empty()) {
+        std::ostringstream errmsg;
+        errmsg << "  MAiNGO: Error querying model outputs in get_model_at_solution_point. MAiNGO status: " << _maingoStatus;
+        throw MAiNGOException(errmsg.str());
+    }
+
+    std::vector<double> evaluationResult;
+    bool feasibleDummy;    // Solution point is always feasible
+    std::tie(evaluationResult, feasibleDummy) = _evaluate_model_at_point(_solutionPoint);
+    return evaluationResult;
+}
+
+
+////////////////////////////////////////////////////////////////////////////////////////
+// function returning the additional model outputs at the solution point
+std::vector<std::pair<std::string, double>>
+MAiNGO::evaluate_additional_outputs_at_solution_point()
+{
+
+    // Return variable additional model outputs
+    if (_solutionPoint.empty()) {
+        std::ostringstream errmsg;
+        errmsg << "  MAiNGO: Error querying additional model outputs in get_additional_outputs_at_solution_point. MAiNGO status: " << _maingoStatus;
+        throw MAiNGOException(errmsg.str());
+    }
+
+    if ((!_solutionPoint.empty()) && (_noutputVariables > 0 || _nconstantOutputVariables > 0) && (_constantConstraintsFeasible)) {
+        return _evaluate_additional_outputs_at_point(_solutionPoint);
+    }
+    else {
+        return std::vector<std::pair<std::string, double>>();
+    }
+}
+
+
+////////////////////////////////////////////////////////////////////////////////////////
+// function returning the objective and all constraints at a user specified point
+std::pair<std::vector<double>, bool>
+MAiNGO::evaluate_model_at_point(const std::vector<double> &point)
+{
+
+    // DAG has to be constructed
+    if (!_DAGconstructed) {
+        _construct_DAG();
+    }
+
+    if (!_readyToSolve) {
+        std::ostringstream errmsg;
+        errmsg << "  MAiNGO: Error in get_model_at_point. Model has not been set yet.";
+        throw MAiNGOException(errmsg.str());
+    }
+
+    if (point.size() != _nvarOriginal) {
+        std::ostringstream errmsg;
+        errmsg << "  MAiNGO: The dimension of the point in function get_model_at_point does not match the dimensions of the set MAiNGO model.";
+        throw MAiNGOException(errmsg.str());
+    }
+
+    // Match each DAG variable to a double variable and skip removed variables
+    // Evaluate DAG at point
+    std::vector<double> pointUsed;
+    for (unsigned int i = 0; i < _nvarOriginal; i++) {
+        if (!_removedVariables[i]) {
+            pointUsed.push_back(point[i]);
+        }
+    }
+
+    return _evaluate_model_at_point(pointUsed);
+}
+
+
+////////////////////////////////////////////////////////////////////////////////////////
+// function returning the additional model outputs at a user specified point
+std::vector<std::pair<std::string, double>>
+MAiNGO::evaluate_additional_outputs_at_point(const std::vector<double> &point)
+{
+    // DAG has to be constructed
+    if (!_DAGconstructed) {
+        _construct_DAG();
+    }
+
+    if (!_readyToSolve) {
+        std::ostringstream errmsg;
+        errmsg << "  MAiNGO: Error in get_additional_output_at_point. Model has not been set yet.";
+        throw MAiNGOException(errmsg.str());
+    }
+
+    if (point.size() != _nvarOriginal) {
+        std::ostringstream errmsg;
+        errmsg << "  MAiNGO: The dimension of the point in function get_additional_output_at_point does not match the dimensions of the set MAiNGO model.";
+        throw MAiNGOException(errmsg.str());
+    }
+
+    // Match each DAG variable to a double variable and skip removed variables
+    // Evaluate DAG at point
+    std::vector<double> pointUsed;
+    for (unsigned int i = 0; i < _nvarOriginal; i++) {
+        if (!_removedVariables[i]) {
+            pointUsed.push_back(point[i]);
+        }
+    }
+
+    return _evaluate_additional_outputs_at_point(pointUsed);
+}
+
+
+////////////////////////////////////////////////////////////////////////////////////////
+// function returning the additional model outputs at a user specified point
+std::vector<std::pair<std::string, double>>
+MAiNGO::_evaluate_additional_outputs_at_point(const std::vector<double> &pointUsed)
+{
+
+    // Match each DAG variable to a double variable
+    // Evaluate DAG to compute outputs
+    std::vector<double> outputRes(_DAGoutputFunctions.size());
+    try {
+        _DAG.eval(_DAGoutputFunctions.size(), _DAGoutputFunctions.data(), outputRes.data(), _nvar, _DAGvars.data(), pointUsed.data());
+    }
+    catch (std::exception &e) {
+        throw MAiNGOException("  MAiNGO: Error while evaluating additional user outputs.", e);
+    }
+    catch (...) {
+        throw MAiNGOException("  MAiNGO: Unknown error while evaluating additional user outputs.");
+    }
+    // Get additional output, don't forget the constant ones
+    std::vector<std::pair<std::string, double>> additionalModelOutputs(_noutputVariables + _nconstantOutputVariables);
+    // Non-constant outputs first
+    for (size_t i = 0; i < _noutputVariables; i++) {
+        additionalModelOutputs[(*_nonconstantOutputs)[i].indexOriginal] = std::make_pair((*_nonconstantOutputs)[i].name, outputRes[(*_nonconstantOutputs)[i].indexNonconstant]);
+    }
+    // Constant outputs second
+    for (size_t i = 0; i < _nconstantOutputVariables; i++) {
+        additionalModelOutputs[(*_constantOutputs)[i].indexOriginal] = std::make_pair((*_constantOutputs)[i].name, (*_constantOutputs)[i].constantValue);
+    }
+
+    return additionalModelOutputs;
+}
+
+
+////////////////////////////////////////////////////////////////////////////////////////
+// function returning the objective and all constraints at a user specified point
+std::pair<std::vector<double>, bool>
+MAiNGO::_evaluate_model_at_point(const std::vector<double> &pointUsed)
+{
+
+    std::vector<double> result(_DAGfunctions.size());
+    _DAG.eval(_DAGfunctions.size(), _DAGfunctions.data(), result.data(), _nvar, _DAGvars.data(), pointUsed.data());
+
+    bool isFeasible = true;
+    // Don't forget the constant functions
+    std::vector<double> evaluationResult(1 + _nineq + _nconstantIneq + _neq + _nconstantEq + _nineqRelaxationOnly + _nconstantIneqRelOnly + _neqRelaxationOnly + _nconstantEqRelOnly + _nineqSquash + _nconstantIneqSquash);
+    evaluationResult[0] = result[0];    // Objective first
+    // Non-constant constraints first
+    unsigned offset = _nauxiliaryRelOnlyEqs;    // Don't count auxiliary equalities
+    for (size_t i = 0; i < _nonconstantConstraints->size() - offset; i++) {
+        double value = result[(*_nonconstantConstraints)[i].indexNonconstant];
+        switch ((*_nonconstantConstraints)[i].type) {
+            case INEQ:
+            case INEQ_REL_ONLY: {
+                if (value > _maingoSettings->deltaIneq) {
+                    isFeasible = false;
+                }
+                break;
+            }
+            case EQ:
+            case EQ_REL_ONLY: {
+                if (std::fabs(value) > _maingoSettings->deltaEq) {
+                    isFeasible = false;
+                }
+                break;
+            }
+            case INEQ_SQUASH: {
+                if (value > 0) {
+                    isFeasible = false;
+                }
+                break;
+            }
+            default:
+                break;
+        }
+        evaluationResult[(*_nonconstantConstraints)[i].indexOriginal] = value;
+    }
+    // Constant constraints second
+    for (size_t i = 0; i < _constantConstraints->size(); i++) {
+        double value = (*_constantConstraints)[i].constantValue;
+        switch ((*_constantConstraints)[i].type) {
+            case INEQ:
+            case INEQ_REL_ONLY: {
+                if (value > _maingoSettings->deltaIneq) {
+                    isFeasible = false;
+                }
+                break;
+            }
+            case EQ:
+            case EQ_REL_ONLY: {
+                if (std::fabs(value) > _maingoSettings->deltaEq) {
+                    isFeasible = false;
+                }
+                break;
+            }
+            case INEQ_SQUASH: {
+                if (value > 0) {
+                    isFeasible = false;
+                }
+                break;
+            }
+            default:
+                break;
+        }
+        evaluationResult[(*_constantConstraints)[i].indexOriginal] = value;
+    }
+
+    return std::make_pair(evaluationResult, isFeasible);
+}
\ No newline at end of file
diff --git a/src/MAiNGOgetterFunctions.cpp b/src/MAiNGOgetterFunctions.cpp
index e0d7fb3c817727e0911911a46007c9756311b4cb..e95602dacb9992d7f4c45e526d8a65e3cf3e6347 100644
--- a/src/MAiNGOgetterFunctions.cpp
+++ b/src/MAiNGOgetterFunctions.cpp
@@ -7,15 +7,11 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file MAiNGOgetterFunctions.cpp
- *
- * @brief File containing implementation of MAiNGO getter functions.
- *
  **********************************************************************************/
 
 #include "MAiNGO.h"
+#include "MAiNGOException.h"
 #include "bab.h"
-#include "exceptions.h"
 
 
 using namespace maingo;
@@ -29,7 +25,7 @@ MAiNGO::get_objective_value() const
     if ((_maingoStatus != GLOBALLY_OPTIMAL) && (_maingoStatus != FEASIBLE_POINT)) {
         std::ostringstream errmsg;
         errmsg << "  MAiNGO: Error querying objective value. MAiNGO status: " << _maingoStatus;
-        throw(MAiNGOException(errmsg.str()));
+        throw MAiNGOException(errmsg.str());
     }
     return _solutionValue;
 }
@@ -43,7 +39,7 @@ MAiNGO::get_solution_point() const
     if (_solutionPoint.empty()) {
         std::ostringstream errmsg;
         errmsg << "  MAiNGO: Error querying solution point. MAiNGO status: " << _maingoStatus;
-        throw(MAiNGOException(errmsg.str()));
+        throw MAiNGOException(errmsg.str());
     }
     std::vector<double> solutionPoint;
     unsigned removed = 0;
@@ -70,7 +66,7 @@ MAiNGO::get_cpu_solution_time() const
     if ((_maingoStatus == NOT_SOLVED_YET)) {
         std::ostringstream errmsg;
         errmsg << "  MAiNGO: Error querying solution time. MAiNGO status: " << _maingoStatus;
-        throw(MAiNGOException(errmsg.str()));
+        throw MAiNGOException(errmsg.str());
     }
     return _solutionTime;
 }
@@ -84,7 +80,7 @@ MAiNGO::get_wallclock_solution_time() const
     if ((_maingoStatus == NOT_SOLVED_YET)) {
         std::ostringstream errmsg;
         errmsg << "  MAiNGO: Error querying solution time. MAiNGO status: " << _maingoStatus;
-        throw(MAiNGOException(errmsg.str()));
+        throw MAiNGOException(errmsg.str());
     }
     return _solutionTimeWallClock;
 }
@@ -98,7 +94,7 @@ MAiNGO::get_iterations() const
     if ((_maingoStatus == NOT_SOLVED_YET)) {
         std::ostringstream errmsg;
         errmsg << "  MAiNGO: Error querying number of iterations. MAiNGO status: " << _maingoStatus;
-        throw(MAiNGOException(errmsg.str()));
+        throw MAiNGOException(errmsg.str());
     }
     if (_myBaB) {
         return _myBaB->get_iterations();
@@ -117,7 +113,7 @@ MAiNGO::get_max_nodes_in_memory() const
     if ((_maingoStatus == NOT_SOLVED_YET)) {
         std::ostringstream errmsg;
         errmsg << "  MAiNGO: Error querying number of nodes in memory. MAiNGO status: " << _maingoStatus;
-        throw(MAiNGOException(errmsg.str()));
+        throw MAiNGOException(errmsg.str());
     }
     if (_myBaB) {
         return _myBaB->get_max_nodes_in_memory();
@@ -136,7 +132,7 @@ MAiNGO::get_UBP_count() const
     if ((_maingoStatus == NOT_SOLVED_YET)) {
         std::ostringstream errmsg;
         errmsg << "  MAiNGO: Error querying UBP count. MAiNGO status: " << _maingoStatus;
-        throw(MAiNGOException(errmsg.str()));
+        throw MAiNGOException(errmsg.str());
     }
     if (_myBaB) {
         return _myBaB->get_UBP_count();
@@ -155,7 +151,7 @@ MAiNGO::get_LBP_count() const
     if ((_maingoStatus == NOT_SOLVED_YET)) {
         std::ostringstream errmsg;
         errmsg << "  MAiNGO: Error querying LBP count. MAiNGO status: " << _maingoStatus;
-        throw(MAiNGOException(errmsg.str()));
+        throw MAiNGOException(errmsg.str());
     }
     if (_myBaB) {
         return _myBaB->get_LBP_count();
@@ -174,7 +170,7 @@ MAiNGO::get_final_LBD() const
     if ((_maingoStatus == NOT_SOLVED_YET)) {
         std::ostringstream errmsg;
         errmsg << "  MAiNGO: Error querying final LBD. MAiNGO status: " << _maingoStatus;
-        throw(MAiNGOException(errmsg.str()));
+        throw MAiNGOException(errmsg.str());
     }
     if (_myBaB) {
         return _myBaB->get_final_LBD();
@@ -193,7 +189,7 @@ MAiNGO::get_final_abs_gap() const
     if ((_maingoStatus == NOT_SOLVED_YET)) {
         std::ostringstream errmsg;
         errmsg << "  MAiNGO: Error querying final absolute gap. MAiNGO status: " << _maingoStatus;
-        throw(MAiNGOException(errmsg.str()));
+        throw MAiNGOException(errmsg.str());
     }
     if (_myBaB) {
         return _myBaB->get_final_abs_gap();
@@ -212,7 +208,7 @@ MAiNGO::get_final_rel_gap() const
     if ((_maingoStatus == NOT_SOLVED_YET)) {
         std::ostringstream errmsg;
         errmsg << "  MAiNGO: Error querying final relative gap. MAiNGO status: " << _maingoStatus;
-        throw(MAiNGOException(errmsg.str()));
+        throw MAiNGOException(errmsg.str());
     }
     if (_myBaB) {
         return _myBaB->get_final_rel_gap();
@@ -228,232 +224,5 @@ MAiNGO::get_final_rel_gap() const
 RETCODE
 MAiNGO::get_status() const
 {
-    if ((_maingoStatus == NOT_SOLVED_YET)) {
-        std::ostringstream errmsg;
-        errmsg << "  MAiNGO: Error querying final relative gap. MAiNGO status: " << _maingoStatus;
-        throw(MAiNGOException(errmsg.str()));
-    }
     return _maingoStatus;
-}
-
-
-////////////////////////////////////////////////////////////////////////////////////////
-// function returning the objective and all constraints at solution point
-std::vector<double>
-MAiNGO::get_model_at_solution_point()
-{
-
-    // Problem has to be solved
-    if (_solutionPoint.empty()) {
-        std::ostringstream errmsg;
-        errmsg << "  MAiNGO: Error querying model outputs in get_model_at_solution_point. MAiNGO status: " << _maingoStatus;
-        throw(MAiNGOException(errmsg.str()));
-    }
-
-    std::vector<double> result(_DAGfunctions.size());
-    _get_model_at_point(_solutionPoint, result);
-    return result;
-}
-
-
-////////////////////////////////////////////////////////////////////////////////////////
-// function returning the additional model outputs at the solution point
-std::vector<std::pair<std::string, double>>
-MAiNGO::get_additional_outputs_at_solution_point()
-{
-
-    // Return variable additional model outputs
-    if (_solutionPoint.empty()) {
-        std::ostringstream errmsg;
-        errmsg << "  MAiNGO: Error querying additional model outputs in get_additional_outputs_at_solution_point. MAiNGO status: " << _maingoStatus;
-        throw(MAiNGOException(errmsg.str()));
-    }
-
-    std::vector<std::pair<std::string, double>> additionalModelOutputs;
-    if ((!_solutionPoint.empty()) && (_noutputVariables > 0 || _nconstantOutputVariables > 0) && (_constantConstraintsFeasible)) {
-        return _get_additional_outputs(_solutionPoint);
-    }
-
-    return additionalModelOutputs;
-}
-
-
-////////////////////////////////////////////////////////////////////////////////////////
-// function returning the objective and all constraints at a user specified point
-bool
-MAiNGO::get_model_at_point(const std::vector<double> &point, std::vector<double> &returnResult)
-{
-    // DAG has to be constructed
-    if (!_DAGconstructed) {
-        _construct_DAG();
-    }
-
-    if (!_readyToSolve) {
-        std::ostringstream errmsg;
-        errmsg << "  MAiNGO: Error in get_model_at_point. Model has not been set yet.";
-        throw(MAiNGOException(errmsg.str()));
-    }
-
-    if (point.size() != _nvarOriginal) {
-        std::ostringstream errmsg;
-        errmsg << "  MAiNGO: The dimension of the point in function get_model_at_point does not match the dimensions of the set MAiNGO model.";
-        throw(MAiNGOException(errmsg.str()));
-    }
-
-    // Match each DAG variable to a double variable and skip removed variables
-    // Evaluate DAG at point
-    std::vector<double> pointUsed;
-    for (unsigned int i = 0; i < _nvarOriginal; i++) {
-        if (!_removedVariables[i]) {
-            pointUsed.push_back(point[i]);
-        }
-    }
-
-    return _get_model_at_point(pointUsed, returnResult);
-}
-
-
-////////////////////////////////////////////////////////////////////////////////////////
-// function returning the additional model outputs at a user specified point
-std::vector<std::pair<std::string, double>>
-MAiNGO::get_additional_outputs_at_point(const std::vector<double> &point)
-{
-    // DAG has to be constructed
-    if (!_DAGconstructed) {
-        _construct_DAG();
-    }
-
-    if (!_readyToSolve) {
-        std::ostringstream errmsg;
-        errmsg << "  MAiNGO: Error in get_additional_output_at_point. Model has not been set yet.";
-        throw(MAiNGOException(errmsg.str()));
-    }
-
-    if (point.size() != _nvarOriginal) {
-        std::ostringstream errmsg;
-        errmsg << "  MAiNGO: The dimension of the point in function get_additional_output_at_point does not match the dimensions of the set MAiNGO model.";
-        throw(MAiNGOException(errmsg.str()));
-    }
-
-    // Match each DAG variable to a double variable and skip removed variables
-    // Evaluate DAG at point
-    std::vector<double> pointUsed;
-    for (unsigned int i = 0; i < _nvarOriginal; i++) {
-        if (!_removedVariables[i]) {
-            pointUsed.push_back(point[i]);
-        }
-    }
-
-    return _get_additional_outputs(pointUsed);
-}
-
-
-////////////////////////////////////////////////////////////////////////////////////////
-// function returning the additional model outputs at a user specified point
-std::vector<std::pair<std::string, double>>
-MAiNGO::_get_additional_outputs(const std::vector<double> &pointUsed)
-{
-
-    // Match each DAG variable to a double variable
-    // Evaluate DAG to compute outputs
-    std::vector<double> outputRes(_DAGoutputFunctions.size());
-    try {
-        _DAG.eval(_DAGoutputFunctions.size(), _DAGoutputFunctions.data(), outputRes.data(), _nvar, _DAGvars.data(), pointUsed.data());
-    }
-    catch (std::exception &e) {
-        throw MAiNGOException("  MAiNGO: Error while evaluating additional user outputs.", e);
-    }
-    catch (...) {
-        throw MAiNGOException("  MAiNGO: Error while evaluating additional user outputs.");
-    }
-    // Get additional output, don't forget the constant ones
-    std::vector<std::pair<std::string, double>> additionalModelOutputs(_noutputVariables + _nconstantOutputVariables);
-    // Non-constant outputs first
-    for (size_t i = 0; i < _noutputVariables; i++) {
-        additionalModelOutputs[_nonconstantOutputs[i].indexOriginal] = std::make_pair(_nonconstantOutputs[i].name, outputRes[_nonconstantOutputs[i].indexNonconstant]);
-    }
-    // Constant outputs second
-    for (size_t i = 0; i < _nconstantOutputVariables; i++) {
-        additionalModelOutputs[_constantOutputs[i].indexOriginal] = std::make_pair(_constantOutputs[i].name, _constantOutputs[i].constantValue);
-    }
-
-    return additionalModelOutputs;
-}
-
-
-////////////////////////////////////////////////////////////////////////////////////////
-// function returning the objective and all constraints at a user specified point
-bool
-MAiNGO::_get_model_at_point(const std::vector<double> &pointUsed, std::vector<double> &returnResult)
-{
-
-    std::vector<double> result(_DAGfunctions.size());
-    _DAG.eval(_DAGfunctions.size(), _DAGfunctions.data(), result.data(), _nvar, _DAGvars.data(), pointUsed.data());
-
-    bool isFeasible = true;
-    // Don't forget the constant functions
-    returnResult.clear();    // The vector to be returned
-    returnResult.resize(1 + _nineq + _nconstantIneq + _neq + _nconstantEq + _nineqRelaxationOnly + _nconstantIneqRelOnly + _neqRelaxationOnly + _nconstantEqRelOnly + _nineqSquash + _nconstantIneqSquash);
-    returnResult[0] = result[0];    // Objective first
-    // Non-constant constraints first
-    unsigned offset = _nauxiliaryRelOnlyEqs;    // Don't count auxiliary equalities
-    for (size_t i = 0; i < _nonconstantConstraints.size() - offset; i++) {
-        double value = result[_nonconstantConstraints[i].indexNonconstant];
-        switch (_nonconstantConstraints[i].type) {
-            case INEQ:
-            case INEQ_REL_ONLY: {
-                if (value > _maingoSettings.deltaIneq) {
-                    isFeasible = false;
-                }
-                break;
-            }
-            case EQ:
-            case EQ_REL_ONLY: {
-                if (std::fabs(value) > _maingoSettings.deltaEq) {
-                    isFeasible = false;
-                }
-                break;
-            }
-            case INEQ_SQUASH: {
-                if (value > 0) {
-                    isFeasible = false;
-                }
-                break;
-            }
-            default:
-                break;
-        }
-        returnResult[_nonconstantConstraints[i].indexOriginal] = value;
-    }
-    // Constant constraints second
-    for (size_t i = 0; i < _constantConstraints.size(); i++) {
-        double value = _constantConstraints[i].constantValue;
-        switch (_constantConstraints[i].type) {
-            case INEQ:
-            case INEQ_REL_ONLY: {
-                if (value > _maingoSettings.deltaIneq) {
-                    isFeasible = false;
-                }
-                break;
-            }
-            case EQ:
-            case EQ_REL_ONLY: {
-                if (std::fabs(value) > _maingoSettings.deltaEq) {
-                    isFeasible = false;
-                }
-                break;
-            }
-            case INEQ_SQUASH: {
-                if (value > 0) {
-                    isFeasible = false;
-                }
-                break;
-            }
-            default:
-                break;
-        }
-        returnResult[_constantConstraints[i].indexOriginal] = value;
-    }
-
-    return isFeasible;
 }
\ No newline at end of file
diff --git a/src/MAiNGOmodelEpsCon.cpp b/src/MAiNGOmodelEpsCon.cpp
index 65799a17a3890b14a6f85a9d7703d2fdf0747c8d..e444d4fb8946ce86da7766c1977928d4de4d56ff 100644
--- a/src/MAiNGOmodelEpsCon.cpp
+++ b/src/MAiNGOmodelEpsCon.cpp
@@ -7,16 +7,10 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file MAiNGOmodelEpsCon.cpp
- *
- * @brief File containing implementation of the MAiNGOmodelEpsCon class,
- *        which specializes the MAiNGOmodel class for bi-objective problems
- *        to be solved with the epsilon-constraint method.
- *
  **********************************************************************************/
 
 #include "MAiNGOmodelEpsCon.h"
-#include "exceptions.h"
+#include "MAiNGOException.h"
 
 #include <string>
 
diff --git a/src/MAiNGOprintingFunctions.cpp b/src/MAiNGOprintingFunctions.cpp
index aad00629e7e444e780625ca5990fa66a869cb718..e5a717058afb6796a78fd4633d4f28ee11807cb9 100644
--- a/src/MAiNGOprintingFunctions.cpp
+++ b/src/MAiNGOprintingFunctions.cpp
@@ -7,15 +7,11 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file MAiNGOprintingFunctions.cpp
- *
- * @brief File containing implementation of MAiNGO functions for printing output.
- *
  **********************************************************************************/
 
 #include "MAiNGO.h"
+#include "MAiNGOException.h"
 #include "bab.h"
-#include "exceptions.h"
 #include "getTime.h"
 #include "utilities.h"
 
@@ -36,13 +32,13 @@ MAiNGO::_print_statistics()
         if ((_rootConPropStatus == TIGHTENING_INFEASIBLE) || (_rootObbtStatus == TIGHTENING_INFEASIBLE) || (_problemStructure < NLP) || (!_constantConstraintsFeasible) || (!_infeasibleVariables.empty())) {
             _print_message(std::string("*** Regular termination. ***"));
         }
-        else if (_maingoSettings.terminateOnFeasiblePoint && _rootMultistartStatus == SUBSOLVER_FEASIBLE) {
+        else if (_maingoSettings->terminateOnFeasiblePoint && _rootMultistartStatus == SUBSOLVER_FEASIBLE) {
             _print_message(std::string("*** Found feasible point. ***"));
         }
-        else if (_maingoSettings.PRE_pureMultistart) {
+        else if (_maingoSettings->PRE_pureMultistart) {
             _print_message(std::string("*** Finished multistart. ***"));
         }
-        else if (_solutionValue <= _maingoSettings.targetUpperBound) {
+        else if (_solutionValue <= _maingoSettings->targetUpperBound) {
             _print_message(std::string("*** Reached target upper bound. ***"));
         }
     }
@@ -98,14 +94,19 @@ MAiNGO::_print_statistics()
         outstream << "    Total number of iterations " << std::setw(9) << "= " << _myBaB->get_iterations() << std::endl;
         outstream << "    Maximum number of nodes in memory = " << _myBaB->get_max_nodes_in_memory() << std::endl;
         if (!_solutionPoint.empty()) {
-            outstream << "    Best solution: First found at iteration " << _myBaB->get_first_found() << std::endl;
+            if (_feasibilityProblem) {
+                outstream << "    Feasible point first found at iteration " << _myBaB->get_first_found() << std::endl;
+            }
+            else {
+                outstream << "    Best solution first found at iteration " << _myBaB->get_first_found() << std::endl;
+            }
         }
     }
 
     outstream << std::endl
               << "===================================================================" << std::endl;
 
-    _logger.print_message(outstream.str(), _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+    _logger->print_message(outstream.str(), _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
 }
 
 
@@ -135,32 +136,32 @@ MAiNGO::_print_solution()
         outstream << std::endl
                   << "  Problem is infeasible." << std::endl;
         outstream << "\n  The problem is infeasible because of the following constant constraints:" << std::endl;
-        for (size_t i = 0; i < _constantConstraints.size(); i++) {
-            if (!_constantConstraints[i].isFeasible) {
-                switch (_constantConstraints[i].type) {
+        for (size_t i = 0; i < _constantConstraints->size(); i++) {
+            if (!(*_constantConstraints)[i].isFeasible) {
+                switch ((*_constantConstraints)[i].type) {
                     case INEQ:
-                        outstream << "  Inequality " << _constantConstraints[i].name << " has value "
-                                  << _constantConstraints[i].constantValue << " > " << _maingoSettings.deltaIneq << std::endl;
+                        outstream << "  Inequality " << (*_constantConstraints)[i].name << " has value "
+                                  << (*_constantConstraints)[i].constantValue << " > " << _maingoSettings->deltaIneq << std::endl;
                         break;
                     case EQ:
-                        outstream << "  Equality " << _constantConstraints[i].name << " has value "
-                                  << _constantConstraints[i].constantValue << " and is not in [-" << _maingoSettings.deltaEq << "," << _maingoSettings.deltaEq << "]" << std::endl;
+                        outstream << "  Equality " << (*_constantConstraints)[i].name << " has value "
+                                  << (*_constantConstraints)[i].constantValue << " and is not in [-" << _maingoSettings->deltaEq << "," << _maingoSettings->deltaEq << "]" << std::endl;
                         break;
                     case INEQ_REL_ONLY:
-                        outstream << "  Inequality (relaxation only) " << _constantConstraints[i].name << " has value "
-                                  << _constantConstraints[i].constantValue << " > " << _maingoSettings.deltaIneq << std::endl;
+                        outstream << "  Inequality (relaxation only) " << (*_constantConstraints)[i].name << " has value "
+                                  << (*_constantConstraints)[i].constantValue << " > " << _maingoSettings->deltaIneq << std::endl;
                         break;
                     case EQ_REL_ONLY:
-                        outstream << "  Equality (relaxation only) " << _constantConstraints[i].name << " has value "
-                                  << _constantConstraints[i].constantValue << " and is not in [-" << _maingoSettings.deltaEq << "," << _maingoSettings.deltaEq << "]" << std::endl;
+                        outstream << "  Equality (relaxation only) " << (*_constantConstraints)[i].name << " has value "
+                                  << (*_constantConstraints)[i].constantValue << " and is not in [-" << _maingoSettings->deltaEq << "," << _maingoSettings->deltaEq << "]" << std::endl;
                         break;
                     case INEQ_SQUASH:
-                        outstream << "  Inequality (squash) " << _constantConstraints[i].name << " has value "
-                                  << _constantConstraints[i].constantValue << " > 0" << std::endl;
+                        outstream << "  Inequality (squash) " << (*_constantConstraints)[i].name << " has value "
+                                  << (*_constantConstraints)[i].constantValue << " > 0" << std::endl;
                         break;
                     default:
-                        outstream << "  Constraint " << _constantConstraints[i].name << " of type  " << _constantConstraints[i].type << " has value "
-                                  << _constantConstraints[i].constantValue << std::endl;
+                        outstream << "  Constraint " << (*_constantConstraints)[i].name << " of type  " << (*_constantConstraints)[i].type << " has value "
+                                  << (*_constantConstraints)[i].constantValue << std::endl;
                         break;
                 }
             }
@@ -168,28 +169,29 @@ MAiNGO::_print_solution()
     }
     else if (_problemStructure >= NLP) {
         if (!_solutionPoint.empty()) {
-            if (_babStatus != babBase::enums::BAB_RETCODE::NOT_SOLVED_YET) {
-                outstream << std::endl
-                          << "  Final LBD " << std::setw(11) << "= " << std::setprecision(16) << _myBaB->get_final_LBD() << std::endl;
-                outstream << "  Final absolute gap = " << _myBaB->get_final_abs_gap() << std::endl;
-                if (mc::isequal(_solutionValue, 0, mc::machprec(), mc::machprec())) {
-                    outstream << "  Final relative gap = not defined" << std::endl;
-                }
-                else {
-                    outstream << "  Final relative gap = " << _myBaB->get_final_rel_gap() << std::endl;
-                }
-                if (_myBaB->get_final_abs_gap() < 0) {
-                    if (_myBaB->get_final_abs_gap() >= -_maingoSettings.MC_mvcompTol) {
-                        outstream << "  Warning: Final gap is negative. This is probably due to numerical precision and probably okay.\n";
-                        outstream << "           You can try to re-run the problem with decreased MC_mvcompTol." << std::endl;
+            outstream << std::endl;
+            if (!_feasibilityProblem) {
+                if (_babStatus != babBase::enums::BAB_RETCODE::NOT_SOLVED_YET) {
+                    outstream << "  Final LBD " << std::setw(11) << "= " << std::setprecision(16) << _myBaB->get_final_LBD() << std::endl;
+                    outstream << "  Final absolute gap = " << _myBaB->get_final_abs_gap() << std::endl;
+                    if (mc::isequal(_solutionValue, 0, mc::machprec(), mc::machprec())) {
+                        outstream << "  Final relative gap = not defined" << std::endl;
                     }
                     else {
-                        outstream << "  Warning: Final gap is negative. Please report this issue to the developers." << std::endl;
+                        outstream << "  Final relative gap = " << _myBaB->get_final_rel_gap() << std::endl;
+                    }
+                    if (_myBaB->get_final_abs_gap() < 0) {
+                        if (_myBaB->get_final_abs_gap() >= -_maingoSettings->MC_mvcompTol) {
+                            outstream << "  Warning: Final gap is negative. This is probably due to numerical precision and probably okay.\n";
+                            outstream << "           You can try to re-run the problem with decreased MC_mvcompTol." << std::endl;
+                        }
+                        else {
+                            outstream << "  Warning: Final gap is negative. Please report this issue to the developers." << std::endl;
+                        }
                     }
                 }
+                outstream << "  Objective value = " << _solutionValue << std::endl;
             }
-            outstream << std::endl
-                      << "  Objective value = " << _solutionValue << std::endl;
             outstream << "  Solution point:" << std::endl;
             unsigned removed = 0;
             for (unsigned i = 0; i < _nvarOriginal; ++i) {
@@ -249,8 +251,10 @@ MAiNGO::_print_solution()
                       << "  Problem is infeasible." << std::endl;
         }
         else {
-            outstream << std::endl
-                      << "  Objective value = " << _solutionValue << std::endl;
+            outstream << std::endl;
+            if (!_feasibilityProblem) {
+                outstream << "  Objective value = " << _solutionValue << std::endl;
+            }
             if (!_solutionPoint.empty()) {
                 outstream << "  Solution point: " << std::endl;
                 unsigned removed = 0;
@@ -299,7 +303,7 @@ MAiNGO::_print_solution()
     outstream << std::endl
               << "===================================================================" << std::endl;
 
-    _logger.print_message(outstream.str(), _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+    _logger->print_message(outstream.str(), _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
 }
 
 
@@ -325,7 +329,7 @@ MAiNGO::_print_time()
         unsigned int minutes = (unsigned int)((_solutionTime - hours * 3600) / 60);
         outstr << minutes << "m " << std::fixed << std::setprecision(3) << (_solutionTime - hours * 3600. - minutes * 60.) << "s (CPU).\n";
     }
-    _logger.print_message(outstr.str(), _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+    _logger->print_message(outstr.str(), _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
 
     // Wall-clock time
     outstr.str("");
@@ -342,7 +346,7 @@ MAiNGO::_print_time()
         unsigned int minutes = (unsigned int)((_solutionTimeWallClock - hours * 3600) / 60);
         outstr << minutes << "m " << std::fixed << std::setprecision(3) << (_solutionTimeWallClock - hours * 3600. - minutes * 60.) << "s (wall clock).\n";
     }
-    _logger.print_message(outstr.str(), _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+    _logger->print_message(outstr.str(), _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
 }
 
 
@@ -361,13 +365,13 @@ MAiNGO::_print_additional_output()
         // Get maximal output name length for nicer output
         size_t maxWordLength = 0;
         for (unsigned int i = 0; i < _noutputVariables; i++) {
-            maxWordLength = std::max(maxWordLength, _nonconstantOutputs[i].name.length());
+            maxWordLength = std::max(maxWordLength, (*_nonconstantOutputs)[i].name.length());
         }
         for (unsigned int i = 0; i < _nconstantOutputVariables; i++) {
-            maxWordLength = std::max(maxWordLength, _constantOutputs[i].name.length());
+            maxWordLength = std::max(maxWordLength, (*_constantOutputs)[i].name.length());
         }
 
-        std::vector<std::pair<std::string, double>> output = get_additional_outputs_at_solution_point();
+        std::vector<std::pair<std::string, double>> output = evaluate_additional_outputs_at_solution_point();
         for (unsigned int i = 0; i < output.size(); i++) {
             outstream << "    " << std::setw(maxWordLength) << output[i].first << " = " << std::setprecision(16) << output[i].second << std::endl;
         }
@@ -375,7 +379,7 @@ MAiNGO::_print_additional_output()
                   << "===================================================================" << std::endl;
     }
 
-    _logger.print_message(outstream.str(), _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+    _logger->print_message(outstream.str(), _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
 }
 
 
@@ -426,8 +430,8 @@ MAiNGO::_print_MAiNGO_header()
     outstream << "*                                                                                                                      *" << std::endl;
     outstream << "************************************************************************************************************************" << std::endl;
 
-    VERB verbosityGiven = std::max(_maingoSettings.BAB_verbosity, std::max(_maingoSettings.UBP_verbosity, _maingoSettings.LBP_verbosity));
-    _logger.print_message(outstream.str(), _maingoSettings.writeLog, verbosityGiven, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+    VERB verbosityGiven = std::max(_maingoSettings->BAB_verbosity, std::max(_maingoSettings->UBP_verbosity, _maingoSettings->LBP_verbosity));
+    _logger->print_message(outstream.str(), verbosityGiven, VERB_NORMAL, _maingoSettings->loggingDestination);
 }
 
 
@@ -452,6 +456,6 @@ MAiNGO::_print_message(const std::string& message)
     outstream << "*" << leftString << message << rightString << "*" << std::endl;
     outstream << "*                                                                                                                      *" << std::endl;
     outstream << "************************************************************************************************************************" << std::endl;
-    VERB verbosityGiven = std::max(_maingoSettings.BAB_verbosity, std::max(_maingoSettings.UBP_verbosity, _maingoSettings.LBP_verbosity));
-    _logger.print_message(outstream.str(), _maingoSettings.writeLog, verbosityGiven, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+    VERB verbosityGiven = std::max(_maingoSettings->BAB_verbosity, std::max(_maingoSettings->UBP_verbosity, _maingoSettings->LBP_verbosity));
+    _logger->print_message(outstream.str(), verbosityGiven, VERB_NORMAL, _maingoSettings->loggingDestination);
 }
diff --git a/src/MAiNGOreadSettings.cpp b/src/MAiNGOreadSettings.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..fb750ee8d73c506d9703c08de5610e9b57aabeae
--- /dev/null
+++ b/src/MAiNGOreadSettings.cpp
@@ -0,0 +1,62 @@
+/**********************************************************************************
+ * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ **********************************************************************************/
+
+#include "MAiNGO.h"
+#include "settings.h"
+
+#include <fstream>
+#include <sstream>
+#include <string>
+
+
+using namespace maingo;
+
+
+/////////////////////////////////////////////////////////////////////////
+// reads settings from file
+void
+MAiNGO::read_settings(const std::string& settingsFileName)
+{
+
+    std::ifstream file;
+    file.open(settingsFileName);
+    if (file.is_open()) {
+
+        std::string line;
+        std::string word;
+        double number;
+        bool firstLine = true;
+        while (std::getline(file, line)) {    // Read file line by line
+            if (firstLine) {
+                // Check for BOM in UTF 8, BOM is ALWAYS at the beginning of a file -- NOTE: We only correctly handle UTF 8 setting files!
+                if (line.length() >= 3) {
+                    if (line[0] == (char)0XEF && line[1] == (char)0XBB && line[2] == (char)0XBF) {
+                        line.erase(0, 3);
+                    }
+                }
+                firstLine = false;
+            }
+            // If the line is not a comment, proceed (\r is for carriage return)
+            if ((line.find_first_not_of(' ') != std::string::npos) && !line.empty() && line[0] != '#' && line[0] != '\r') {
+                std::istringstream iss(line);    // This allows access to line as real std::string
+                iss >> word;
+                iss >> number;
+                set_option(word, number);
+            }
+        }
+        _logger->save_settings_file_name(settingsFileName, true);
+    }
+    else {    // File not found
+        _logger->save_settings_file_name(settingsFileName, false);
+    }
+
+    file.close();
+}
\ No newline at end of file
diff --git a/src/MAiNGOsetOption.cpp b/src/MAiNGOsetOption.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..63d90c2a7dd0b92fef6b917ba66760688446d362
--- /dev/null
+++ b/src/MAiNGOsetOption.cpp
@@ -0,0 +1,795 @@
+/**********************************************************************************
+ * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ **********************************************************************************/
+
+#include "MAiNGO.h"
+#include "settings.h"
+
+#include <limits>
+#include <string>
+
+
+using namespace maingo;
+
+
+/////////////////////////////////////////////////////////////////////////
+// modifies an option of MAiNGO. Returns true if successful and false if option is unknown.
+// Note that in the former case, when violating a bound imposed on the value for a certain option,
+// the respective bound is chosen as new value instead of the value specified in the function call
+bool
+MAiNGO::set_option(const std::string& option, const double value)
+{
+
+    std::ostringstream oss;    // Dummy ostringstream for more accurate output of doubles
+    oss << value;
+    if (option == "epsilonA") {
+        if (value < 1e-9) {
+            _logger->save_setting(EPSILONA, "epsilonA has to be >=1e-9, setting it to 1e-9");
+            _maingoSettings->epsilonA = 1e-9;
+        }
+        else {
+            _maingoSettings->epsilonA = value;
+            _logger->save_setting(EPSILONA, option + " " + oss.str());
+        }
+    }
+    else if (option == "epsilonR") {
+        if (value < 1e-9) {
+            _logger->save_setting(EPSILONR, "epsilonR has to be >=1e-9, setting it to 1e-9");
+            _maingoSettings->epsilonR = 1e-9;
+        }
+        else {
+            _maingoSettings->epsilonR = value;
+            _logger->save_setting(EPSILONR, option + " " + oss.str());
+        }
+    }
+    else if (option == "deltaIneq") {
+        if (value < 1e-9) {
+            _logger->save_setting(DELTAINEQ, "deltaIneq has to be >=1e-9, setting it to 1e-9");
+            _maingoSettings->deltaIneq = 1e-9;
+        }
+        else {
+            _maingoSettings->deltaIneq  = value;
+            _maingoSettings->relNodeTol = std::max(1e-12, std::min(_maingoSettings->relNodeTol, std::min(value * 1e-1, _maingoSettings->deltaEq * 1e-1)));
+            _logger->save_setting(DELTAINEQ, option + " " + oss.str());
+        }
+    }
+    else if (option == "deltaEq") {
+        if (value < 1e-9) {
+            _logger->save_setting(DELTAEQ, "deltaEq has to be >=1e-9, setting it to 1e-9");
+            _maingoSettings->deltaEq = 1e-9;
+        }
+        else {
+            _maingoSettings->deltaEq    = value;
+            _maingoSettings->relNodeTol = std::max(1e-12, std::min(_maingoSettings->relNodeTol, std::min(value * 1e-1, _maingoSettings->deltaIneq * 1e-1)));
+            _logger->save_setting(DELTAEQ, option + " " + oss.str());
+        }
+    }
+    else if (option == "relNodeTol") {
+        if (value < 1e-12) {
+            _logger->save_setting(RELNODETOL, "relNodeTol has to be >=1e-12, setting it to 1e-12");
+            _maingoSettings->relNodeTol = 1e-12;
+        }
+        else {
+            _maingoSettings->relNodeTol = std::max(1e-12, std::min(value, std::min(_maingoSettings->deltaIneq * 1e-1, _maingoSettings->deltaEq * 1e-1)));
+            _logger->save_setting(RELNODETOL, option + " " + oss.str());
+        }
+    }
+    else if (option == "BAB_maxNodes") {
+        if (value < 0 && value != -1) {
+            _logger->save_setting(BAB_MAXNODES, "BAB_maxNodes has to be >=0 or -1 (=inf), setting it to 0");
+            _maingoSettings->BAB_maxNodes = 0;
+        }
+        else {
+            if (value == -1) {
+                _maingoSettings->BAB_maxNodes = std::numeric_limits<unsigned>::max();
+                _logger->save_setting(BAB_MAXNODES, option + " " + oss.str());
+            }
+            else {
+                _maingoSettings->BAB_maxNodes = (int)value;
+                _logger->save_setting(BAB_MAXNODES, option + " " + oss.str());
+            }
+        }
+    }
+    else if (option == "BAB_maxIterations") {
+        if (value < 0 && value != -1) {
+            _logger->save_setting(BAB_MAXITERATIONS, "BAB_maxIterations has to be >=0 or -1 (=inf), setting it to 0");
+            _maingoSettings->BAB_maxIterations = 0;
+        }
+        else {
+            if (value == -1) {
+                _maingoSettings->BAB_maxIterations = std::numeric_limits<unsigned>::max();
+                _logger->save_setting(BAB_MAXITERATIONS, option + " " + oss.str());
+            }
+            else {
+                _maingoSettings->BAB_maxIterations = (int)value;
+                _logger->save_setting(BAB_MAXITERATIONS, option + " " + oss.str());
+            }
+        }
+    }
+    else if (option == "maxTime") {
+        if (value < 10 && value != -1) {
+            _logger->save_setting(MAXTIME, "maxTime has to be >= 10 or -1 (=inf), setting it to 10");
+            _maingoSettings->maxTime = 10;
+        }
+        else {
+            if (value == -1) {
+                _maingoSettings->maxTime = std::numeric_limits<unsigned>::max();
+                _logger->save_setting(MAXTIME, option + " " + oss.str());
+            }
+            else {
+                _maingoSettings->maxTime = (int)value;
+                _logger->save_setting(MAXTIME, option + " " + oss.str());
+            }
+        }
+    }
+    else if (option == "confirmTermination") {
+        if (value != 0 && value != 1) {
+            _logger->save_setting(CONFIRMTERMINATION, "confirmTermination has to be 0 or 1, setting to 0");
+            _maingoSettings->confirmTermination = false;
+        }
+        else {
+            if (value == 0) {
+                _maingoSettings->confirmTermination = false;
+                _logger->save_setting(CONFIRMTERMINATION, option + " 0");
+            }
+            else {
+                _maingoSettings->confirmTermination = true;
+                _logger->save_setting(CONFIRMTERMINATION, option + " 1");
+            }
+        }
+    }
+    else if (option == "terminateOnFeasiblePoint") {
+        if (value != 0 && value != 1) {
+            _logger->save_setting(TERMINATEONFEASIBLEPOINT, "terminateOnFeasiblePoint has to be 0 or 1, setting to 0");
+            _maingoSettings->terminateOnFeasiblePoint = false;
+        }
+        else {
+            if (value == 0) {
+                _maingoSettings->terminateOnFeasiblePoint = false;
+                _logger->save_setting(TERMINATEONFEASIBLEPOINT, option + " 0");
+            }
+            else {
+                _maingoSettings->terminateOnFeasiblePoint = true;
+                _logger->save_setting(TERMINATEONFEASIBLEPOINT, option + " 1");
+            }
+        }
+    }
+    else if (option == "targetLowerBound") {
+        _maingoSettings->targetLowerBound = value;
+        _logger->save_setting(TARGETLOWERBOUND, option + " " + oss.str());
+    }
+    else if (option == "targetUpperBound") {
+        _maingoSettings->targetUpperBound = value;
+        _logger->save_setting(TARGETUPPERBOUND, option + " " + oss.str());
+    }
+    else if (option == "PRE_maxLocalSearches") {
+        if (value < 0) {
+            _logger->save_setting(PRE_MAXLOCALSEARCHES, "PRE_maxLocalSearches has to be at least 0, setting it to 0");
+            _maingoSettings->PRE_maxLocalSearches = 0;
+        }
+        else {
+            _maingoSettings->PRE_maxLocalSearches = (int)value;
+            _logger->save_setting(PRE_MAXLOCALSEARCHES, option + " " + oss.str());
+        }
+    }
+    else if (option == "PRE_obbtMaxRounds") {
+        if (value < 0) {
+            _logger->save_setting(PRE_OBBTMAXROUNDS, "PRE_obbtMaxRounds has to be at least 0, setting it to 0");
+            _maingoSettings->PRE_obbtMaxRounds = 0;
+        }
+        else {
+            _maingoSettings->PRE_obbtMaxRounds = (int)value;
+            _logger->save_setting(PRE_OBBTMAXROUNDS, option + " " + oss.str());
+        }
+    }
+    else if (option == "PRE_pureMultistart") {
+        if (value != 0 && value != 1) {
+            _logger->save_setting(PRE_PUREMULTISTART, "PRE_pureMultistart has to be either 1 or 0, setting it to 0");
+            _maingoSettings->PRE_pureMultistart = false;
+        }
+        else {
+            if (value == 0) {
+                _maingoSettings->PRE_pureMultistart = false;
+                _logger->save_setting(PRE_PUREMULTISTART, option + " 0");
+            }
+            else {
+                _maingoSettings->PRE_pureMultistart = true;
+                _logger->save_setting(PRE_PUREMULTISTART, option + " 1");
+            }
+        }
+    }
+    else if (option == "BAB_nodeSelection") {
+        if (value != 0 && value != 1 && value != 2) {
+            _logger->save_setting(BAB_NODESELECTION, "BAB_nodeSelection has to be 0, 1 or 2, setting to 0");
+            _maingoSettings->BAB_nodeSelection = babBase::enums::NS_BESTBOUND;
+        }
+        else {
+            if ((int)value == 0) {
+                _maingoSettings->BAB_nodeSelection = babBase::enums::NS_BESTBOUND;
+            }
+            else if ((int)value == 1) {
+                _maingoSettings->BAB_nodeSelection = babBase::enums::NS_DEPTHFIRST;
+            }
+            else {
+                _maingoSettings->BAB_nodeSelection = babBase::enums::NS_BREADTHFIRST;
+            }
+            _logger->save_setting(BAB_NODESELECTION, option + " " + oss.str());
+        }
+    }
+    else if (option == "BAB_branchVariable") {
+        if (value != 0 && value != 1) {
+            _logger->save_setting(BAB_BRANCHVARIABLE, "BAB_branchVariable has to be 0 or 1, setting to 0");
+            _maingoSettings->BAB_branchVariable = babBase::enums::BV_ABSDIAM;
+        }
+        else {
+            if ((int)value == 0) {
+                _maingoSettings->BAB_branchVariable = babBase::enums::BV_ABSDIAM;
+            }
+            else {
+                _maingoSettings->BAB_branchVariable = babBase::enums::BV_RELDIAM;
+            }
+            _logger->save_setting(BAB_BRANCHVARIABLE, option + " " + oss.str());
+        }
+    }
+    else if (option == "BAB_alwaysSolveObbt") {
+        if (value != 0 && value != 1) {
+            _logger->save_setting(BAB_ALWAYSSOLVEOBBT, "BAB_alwaysSolveObbt has to be 0 or 1, setting to 0");
+            _maingoSettings->BAB_alwaysSolveObbt = false;
+        }
+        else {
+            if (value == 0) {
+                _maingoSettings->BAB_alwaysSolveObbt = false;
+                _logger->save_setting(BAB_ALWAYSSOLVEOBBT, option + " 0");
+            }
+            else {
+                _maingoSettings->BAB_alwaysSolveObbt = true;
+                _logger->save_setting(BAB_ALWAYSSOLVEOBBT, option + " 1");
+            }
+        }
+    }
+    else if (option == "BAB_probing") {
+        if (value < 0) {
+            _logger->save_setting(BAB_PROBING, "BAB_probing has to be 0 or 1, setting to 0");
+            _maingoSettings->BAB_probing = false;
+        }
+        else {
+            if (value == 0) {
+                _maingoSettings->BAB_probing = false;
+                _logger->save_setting(BAB_PROBING, option + " 0");
+            }
+            else {
+                _maingoSettings->BAB_probing = true;
+                _logger->save_setting(BAB_PROBING, option + " 1");
+            }
+        }
+    }
+    else if (option == "BAB_dbbt") {
+        if (value != 0 && value != 1) {
+            _logger->save_setting(BAB_DBBT, "BAB_dbbt has to be 0 or 1, setting to 1");
+            _maingoSettings->BAB_dbbt = true;
+        }
+        else {
+            if (value == 0) {
+                _maingoSettings->BAB_dbbt = false;
+                _logger->save_setting(BAB_DBBT, option + " 0");
+            }
+            else {
+                _maingoSettings->BAB_dbbt = true;
+                _logger->save_setting(BAB_DBBT, option + " 1");
+            }
+        }
+    }
+    else if (option == "BAB_constraintPropagation") {
+        if (value < 0) {
+            _logger->save_setting(BAB_CONSTRAINTPROPAGATION, "BAB_constraintPropagation has to be 0 or 1, setting to 0");
+            _maingoSettings->BAB_constraintPropagation = false;
+        }
+        else {
+            if (value == 0) {
+                _maingoSettings->BAB_constraintPropagation = false;
+                _logger->save_setting(BAB_CONSTRAINTPROPAGATION, option + " 0");
+            }
+            else {
+                _maingoSettings->BAB_constraintPropagation = true;
+                _logger->save_setting(BAB_CONSTRAINTPROPAGATION, option + " 1");
+            }
+        }
+    }
+    else if (option == "LBP_solver") {
+        if (value != 0 && value != 1 && value != 2 && value != 3) {
+            _logger->save_setting(LBP_SOLVER, "LBP_solver has to be in {0,1,2,3}, setting it to 0");
+            _maingoSettings->LBP_solver = lbp::LBP_SOLVER_MAiNGO;
+        }
+        else {
+            if ((int)value == 0) {
+                _maingoSettings->LBP_solver = lbp::LBP_SOLVER_MAiNGO;
+            }
+            else if ((int)value == 1) {
+                _maingoSettings->LBP_solver = lbp::LBP_SOLVER_INTERVAL;
+            }
+            else if ((int)value == 2) {
+#ifdef HAVE_CPLEX
+                _maingoSettings->LBP_solver = lbp::LBP_SOLVER_CPLEX;
+#else
+                _logger->save_setting(LBP_SOLVER, "Cannot use LBP_solver 2 (LBP_UBP_SOLVER_CPLEX) because your MAiNGO build does not contain CPLEX. Setting it to 3 (CLP)");
+                _maingoSettings->LBP_solver = lbp::LBP_SOLVER_CLP;
+#endif
+            }
+            else if ((int)value == 3) {
+                _maingoSettings->LBP_solver = lbp::LBP_SOLVER_CLP;
+            }
+            _logger->save_setting(LBP_SOLVER, option + " " + oss.str());
+        }
+    }
+    else if (option == "LBP_linPoints") {
+        if (value != 0 && value != 1 && value != 2 && value != 3 && value != 4 && value != 5) {
+            _logger->save_setting(LBP_LINPOINTS, "LBP_linPoints has to be in {0,1,2,3,4,5}, setting to 0");
+            _maingoSettings->LBP_linPoints = lbp::LINP_MID;
+        }
+        else {
+            if ((int)value == 0) {
+                _maingoSettings->LBP_linPoints = lbp::LINP_MID;
+            }
+            else if ((int)value == 1) {
+                _maingoSettings->LBP_linPoints = lbp::LINP_INCUMBENT;
+            }
+            else if ((int)value == 2) {
+                _maingoSettings->LBP_linPoints = lbp::LINP_KELLEY;
+            }
+            else if ((int)value == 3) {
+                _maingoSettings->LBP_linPoints = lbp::LINP_SIMPLEX;
+            }
+            else if ((int)value == 4) {
+                _maingoSettings->LBP_linPoints = lbp::LINP_RANDOM;
+            }
+            else if ((int)value == 5) {
+                _maingoSettings->LBP_linPoints = lbp::LINP_KELLEY_SIMPLEX;
+            }
+            _logger->save_setting(LBP_LINPOINTS, option + " " + oss.str());
+        }
+    }
+    else if (option == "LBP_subgradientIntervals") {
+        if (value != 0 && value != 1) {
+            _logger->save_setting(LBP_SUBGRADIENTINTERVALS, "LBP_subgradientIntervals has to be 0 or 1, setting to 0");
+            _maingoSettings->LBP_subgradientIntervals = false;
+        }
+        else {
+            if (value == 0) {
+                _maingoSettings->LBP_subgradientIntervals = false;
+                _logger->save_setting(LBP_SUBGRADIENTINTERVALS, option + " 0");
+            }
+            else {
+                _maingoSettings->LBP_subgradientIntervals = true;
+                _logger->save_setting(LBP_SUBGRADIENTINTERVALS, option + " 1");
+            }
+        }
+    }
+    else if (option == "LBP_obbtMinImprovement") {
+        if ((value < 0) || (value > 1)) {
+            _logger->save_setting(LBP_OBBTMINIMPROVEMENT, "LBP_obbtMinImprovement has to be between 0 and 1, setting it to 0.5");
+            _maingoSettings->LBP_obbtMinImprovement = 0.5;
+        }
+        else {
+            _maingoSettings->LBP_obbtMinImprovement = value;
+            _logger->save_setting(LBP_OBBTMINIMPROVEMENT, option + " " + oss.str());
+        }
+    }
+    else if (option == "LBP_activateMoreScaling") {
+        if ((value < 100) || (value > 100000)) {
+            _logger->save_setting(LBP_OBBTMINIMPROVEMENT, "LBP_activateMoreScaling has to be between 100 and 100000, setting it to 10000");
+            _maingoSettings->LBP_activateMoreScaling = 10000;
+        }
+        else {
+            _maingoSettings->LBP_activateMoreScaling = value;
+            _logger->save_setting(LBP_ACTIVATEMORESCALING, option + " " + oss.str());
+        }
+    }
+    else if (option == "LBP_addAuxiliaryVars") {
+        if (value != 0 && value != 1) {
+            _logger->save_setting(LBP_ADDAUXILIARYVARS, "LBP_addAuxiliaryVars has to be 0 or 1, setting it to 0");
+            _maingoSettings->LBP_addAuxiliaryVars = false;
+        }
+        else {
+            if (value == 0) {
+                _maingoSettings->LBP_addAuxiliaryVars = false;
+                _logger->save_setting(LBP_ADDAUXILIARYVARS, option + " 0");
+            }
+            else {
+                _maingoSettings->LBP_addAuxiliaryVars = true;
+                _logger->save_setting(LBP_ADDAUXILIARYVARS, option + " 1");
+            }
+        }
+    }
+    else if (option == "LBP_minFactorsForAux") {
+        if (value < 2) {
+            _logger->save_setting(LBP_MINFACTORSFORAUX, "LBP_minFactorsForAux has to be at least 2, setting it to 2");
+            _maingoSettings->LBP_minFactorsForAux = 2;
+        }
+        else {
+            _maingoSettings->LBP_minFactorsForAux = value;
+            _logger->save_setting(LBP_MINFACTORSFORAUX, option + " " + oss.str());
+        }
+    }
+    else if (option == "LBP_maxNumberOfAddedFactors") {
+        if (value < 1) {
+            _logger->save_setting(LBP_MAXNUMBEROFADDEDFACTORS, "LBP_maxNumberOfAddedFactors has to be at least 1, setting it to 1");
+            _maingoSettings->LBP_maxNumberOfAddedFactors = 1;
+        }
+        else {
+            _maingoSettings->LBP_maxNumberOfAddedFactors = value;
+            _logger->save_setting(LBP_MAXNUMBEROFADDEDFACTORS, option + " " + oss.str());
+        }
+    }
+    else if (option == "MC_mvcompUse") {
+        if (value != 0 && value != 1) {
+            _logger->save_setting(MC_MVCOMPUSE, "MC_mvcompUse has to be 0 or 1, setting to 1");
+            _maingoSettings->MC_mvcompUse = true;
+        }
+        else {
+            if (value == 0) {
+                _maingoSettings->MC_mvcompUse = false;
+                _logger->save_setting(MC_MVCOMPUSE, option + " 0");
+            }
+            else {
+                _maingoSettings->MC_mvcompUse = true;
+                _logger->save_setting(MC_MVCOMPUSE, option + " 1");
+            }
+        }
+    }
+    else if (option == "MC_mvcompTol") {
+        if (value < 1e-12 || value > 1e-9) {
+            _logger->save_setting(MC_MVCOMPTOL, "MC_mvcompTol has to be in [1e-9,1e-12], setting it to 1e-12");
+            _maingoSettings->MC_mvcompTol = 1e-12;
+        }
+        else {
+            _maingoSettings->MC_mvcompTol = value;
+            _logger->save_setting(MC_MVCOMPTOL, option + " " + oss.str());
+        }
+    }
+    else if (option == "MC_envelTol") {
+        if (value < 1e-12) {
+            _logger->save_setting(MC_ENVELTOL, "MC_envelTol has to be in [1e-9,1e-12], setting it to 1e-12");
+            _maingoSettings->MC_envelTol = 1e-12;
+        }
+        else {
+            _maingoSettings->MC_envelTol = value;
+            _logger->save_setting(MC_ENVELTOL, option + " " + oss.str());
+        }
+    }
+    else if (option == "UBP_solverPreprocessing") {
+        if (!((int)value >= 0 && (int)value <= 6)) {
+            _logger->save_setting(UBP_SOLVERPRE, "UBP_solverPreprocessing has to be 0, 1, 2, 3, 4, 5, 6, setting to 5");
+            _maingoSettings->UBP_solverPreprocessing = ubp::UBP_SOLVER_IPOPT;
+        }
+        else {
+            if ((int)value == 0) {
+                _maingoSettings->UBP_solverPreprocessing = ubp::UBP_SOLVER_EVAL;
+            }
+            else if ((int)value == 1) {
+                _maingoSettings->UBP_solverPreprocessing = ubp::UBP_SOLVER_COBYLA;
+            }
+            else if ((int)value == 2) {
+                _maingoSettings->UBP_solverPreprocessing = ubp::UBP_SOLVER_BOBYQA;
+            }
+            else if ((int)value == 3) {
+                _maingoSettings->UBP_solverPreprocessing = ubp::UBP_SOLVER_LBFGS;
+            }
+            else if ((int)value == 4) {
+                _maingoSettings->UBP_solverPreprocessing = ubp::UBP_SOLVER_SLSQP;
+            }
+            else if ((int)value == 5) {
+                _maingoSettings->UBP_solverPreprocessing = ubp::UBP_SOLVER_IPOPT;
+            }
+            else if ((int)value == 6) {
+#ifdef HAVE_KNITRO
+                _maingoSettings->UBP_solverPreprocessing = ubp::UBP_SOLVER_KNITRO;
+#else
+                _logger->save_setting(UBP_SOLVERPRE, "Cannot use UBP_solverPreprocessing 6 (UBP_SOLVER_KNITRO) because your MAiNGO build does not contain KNITRO. Setting it to 5");
+                _maingoSettings->UBP_solverPreprocessing = ubp::UBP_SOLVER_IPOPT;
+#endif
+            }
+            _logger->save_setting(UBP_SOLVERPRE, option + " " + std::to_string(_maingoSettings->UBP_solverPreprocessing));
+        }
+    }
+    else if (option == "UBP_maxStepsPreprocessing") {
+        if (value < 1) {
+            _logger->save_setting(UBP_MAXSTEPSPRE, "UBP_maxStepsPreprocessing has to be at least 1, setting to 1");
+            _maingoSettings->UBP_maxStepsPreprocessing = 1;
+        }
+        else {
+            _maingoSettings->UBP_maxStepsPreprocessing = (int)value;
+            _logger->save_setting(UBP_MAXSTEPSPRE, option + " " + oss.str());
+        }
+    }
+    else if (option == "UBP_maxTimePreprocessing") {
+        if (value < 0.1) {
+            _logger->save_setting(UBP_MAXTIMEPRE, "UBP_maxTimePreprocessing has to be at least 0.1, setting to 0.1");
+            _maingoSettings->UBP_maxTimePreprocessing = 0.1;
+        }
+        else {
+            _maingoSettings->UBP_maxTimePreprocessing = value;
+            _logger->save_setting(UBP_MAXTIMEPRE, option + " " + oss.str());
+        }
+    }
+    else if (option == "UBP_solverBab") {
+        if (!((int)value >= 0 && (int)value <= 6)) {
+            _logger->save_setting(UBP_SOLVERBAB, "UBP_solverBab has to be 0, 1, 2, 3, 4, 5, 6, setting to 4");
+            _maingoSettings->UBP_solverBab = ubp::UBP_SOLVER_SLSQP;
+        }
+        else {
+            if ((int)value == 0) {
+                _maingoSettings->UBP_solverBab = ubp::UBP_SOLVER_EVAL;
+            }
+            else if ((int)value == 1) {
+                _maingoSettings->UBP_solverBab = ubp::UBP_SOLVER_COBYLA;
+            }
+            else if ((int)value == 2) {
+                _maingoSettings->UBP_solverBab = ubp::UBP_SOLVER_BOBYQA;
+            }
+            else if ((int)value == 3) {
+                _maingoSettings->UBP_solverBab = ubp::UBP_SOLVER_LBFGS;
+            }
+            else if ((int)value == 4) {
+                _maingoSettings->UBP_solverBab = ubp::UBP_SOLVER_SLSQP;
+            }
+            else if ((int)value == 5) {
+                _maingoSettings->UBP_solverBab = ubp::UBP_SOLVER_IPOPT;
+            }
+            else if ((int)value == 6) {
+#ifdef HAVE_KNITRO
+                _maingoSettings->UBP_solverBab = ubp::UBP_SOLVER_KNITRO;
+#else
+                _logger->save_setting(UBP_SOLVERBAB, "Cannot use UBP_solverBab 6 (UBP_SOLVER_KNITRO) because your MAiNGO build does not contain KNITRO. Setting it to 4");
+                _maingoSettings->UBP_solverBab = ubp::UBP_SOLVER_SLSQP;
+#endif
+            }
+            _logger->save_setting(UBP_SOLVERBAB, option + " " + std::to_string(_maingoSettings->UBP_solverBab));
+        }
+    }
+    else if (option == "UBP_maxStepsBab") {
+        if (value < 1) {
+            _logger->save_setting(UBP_MAXSTEPSBAB, "UBP_maxStepsBab has to be at least 1, setting to 1");
+            _maingoSettings->UBP_maxStepsBab = 1;
+        }
+        else {
+            _maingoSettings->UBP_maxStepsBab = (int)value;
+            _logger->save_setting(UBP_MAXSTEPSBAB, option + " " + oss.str());
+        }
+    }
+    else if (option == "UBP_maxTimeBab") {
+        if (value < 0.1) {
+            _logger->save_setting(UBP_MAXTIMEBAB, "UBP_maxTimeBab has to be at least 0.1, setting to 0.1");
+            _maingoSettings->UBP_maxTimeBab = 0.1;
+        }
+        else {
+            _maingoSettings->UBP_maxTimeBab = value;
+            _logger->save_setting(UBP_MAXTIMEBAB, option + " " + oss.str());
+        }
+    }
+    else if (option == "UBP_ignoreNodeBounds") {
+        if (value != 0 && value != 1) {
+            _logger->save_setting(UBP_IGNORENODEBOUNDS, "UBP_ignoreNodeBounds has to be 0 or 1, setting it to 0");
+            _maingoSettings->UBP_ignoreNodeBounds = false;
+        }
+        else {
+            if (value == 0) {
+                _maingoSettings->UBP_ignoreNodeBounds = false;
+                _logger->save_setting(UBP_IGNORENODEBOUNDS, option + " 0");
+            }
+            else {
+                _maingoSettings->UBP_ignoreNodeBounds = true;
+                _logger->save_setting(UBP_IGNORENODEBOUNDS, option + " 1");
+            }
+        }
+    }
+    else if (option == "EC_nPoints") {
+        if (value < 2) {
+            _logger->save_setting(EC_NPOINTS, "EC_nPoints has to at least 2, settings it to 2");
+            _maingoSettings->EC_nPoints = 2;
+        }
+        else {
+            _maingoSettings->EC_nPoints = (unsigned)value;
+            _logger->save_setting(EC_NPOINTS, option + " " + oss.str());
+        }
+    }
+    else if (option == "LBP_verbosity") {
+        if (value != 0 && value != 1 && value != 2) {
+            _logger->save_setting(LBP_VERBOSITY, "LBP_verbosity has to be 0, 1 or 2, setting to 1");
+            _maingoSettings->LBP_verbosity = VERB_NORMAL;
+        }
+        else {
+            if ((int)value == 0) {
+                _maingoSettings->LBP_verbosity = VERB_NONE;
+            }
+            else if ((int)value == 1) {
+                _maingoSettings->LBP_verbosity = VERB_NORMAL;
+            }
+            else {
+                _maingoSettings->LBP_verbosity = VERB_ALL;
+            }
+            _logger->save_setting(LBP_VERBOSITY, option + " " + oss.str());
+        }
+    }
+    else if (option == "UBP_verbosity") {
+        if (value != 0 && value != 1 && value != 2) {
+            _logger->save_setting(UBP_VERBOSITY, "UBP_verbosity has to be 0, 1 or 2, setting to 1");
+            _maingoSettings->UBP_verbosity = VERB_NORMAL;
+        }
+        else {
+            if ((int)value == 0) {
+                _maingoSettings->UBP_verbosity = VERB_NONE;
+            }
+            else if ((int)value == 1) {
+                _maingoSettings->UBP_verbosity = VERB_NORMAL;
+            }
+            else {
+                _maingoSettings->UBP_verbosity = VERB_ALL;
+            }
+            _logger->save_setting(UBP_VERBOSITY, option + " " + oss.str());
+        }
+    }
+    else if (option == "BAB_verbosity") {
+        if (value != 0 && value != 1 && value != 2) {
+            _logger->save_setting(BAB_VERBOSITY, "BAB_verbosity has to be 0, 1 or 2, setting to 1");
+            _maingoSettings->BAB_verbosity = VERB_NORMAL;
+        }
+        else {
+            if ((int)value == 0) {
+                _maingoSettings->BAB_verbosity = VERB_NONE;
+            }
+            else if ((int)value == 1) {
+                _maingoSettings->BAB_verbosity = VERB_NORMAL;
+            }
+            else {
+                _maingoSettings->BAB_verbosity = VERB_ALL;
+            }
+            _logger->save_setting(BAB_VERBOSITY, option + " " + oss.str());
+        }
+    }
+    else if (option == "BAB_printFreq") {
+        if (value < 1) {
+            _logger->save_setting(BAB_PRINTFREQ, "BAB_printFreq has to be at least 1, setting to 1");
+            _maingoSettings->BAB_printFreq = 1;
+        }
+        else {
+            _maingoSettings->BAB_printFreq = (int)value;
+            _logger->save_setting(BAB_PRINTFREQ, option + " " + oss.str());
+        }
+    }
+    else if (option == "BAB_logFreq") {
+        if (value < 1) {
+            _logger->save_setting(BAB_LOGFREQ, "BAB_logFreq has to be at least 1, setting to 1");
+            _maingoSettings->BAB_logFreq = 1;
+        }
+        else {
+            _maingoSettings->BAB_logFreq = (int)value;
+            _logger->save_setting(BAB_LOGFREQ, option + " " + oss.str());
+        }
+    }
+    else if (option == "loggingDestination") {
+        if (value != 0 && value != 1 && value != 2 && value != 3) {
+            _logger->save_setting(OUTSTREAMVERBOSITY, "loggingDestination has to be 0, 1, 2 or 3, setting to 3");
+            _maingoSettings->loggingDestination = LOGGING_FILE_AND_STREAM;
+        }
+        else {
+            if ((int)value == 0) {
+                _maingoSettings->loggingDestination = LOGGING_NONE;
+            }
+            else if ((int)value == 1) {
+                _maingoSettings->loggingDestination = LOGGING_OUTSTREAM;
+            }
+            else if ((int)value == 2) {
+                _maingoSettings->loggingDestination = LOGGING_FILE;
+            }
+            else {
+                _maingoSettings->loggingDestination = LOGGING_FILE_AND_STREAM;
+            }
+            _logger->save_setting(OUTSTREAMVERBOSITY, option + " " + oss.str());
+        }
+    }
+    else if (option == "writeCsv") {
+        if (value != 0 && value != 1) {
+            _logger->save_setting(WRITECSV, "writeCsv has to be 0 or 1, setting to 0");
+            _maingoSettings->writeCsv = false;
+        }
+        else {
+            if (value == 0) {
+                _maingoSettings->writeCsv = false;
+                _logger->save_setting(WRITECSV, option + " 0");
+            }
+            else {
+                _maingoSettings->writeCsv = true;
+                _logger->save_setting(WRITECSV, option + " 1");
+            }
+        }
+    }
+    else if (option == "writeJson") {
+        if (value != 0 && value != 1) {
+            _logger->save_setting(WRITEJSON, "writeJson has to be 0 or 1, setting to 0");
+            _maingoSettings->writeJson = false;
+        }
+        else {
+            if (value == 0) {
+                _maingoSettings->writeJson = false;
+                _logger->save_setting(WRITEJSON, option + " 0");
+            }
+            else {
+                _maingoSettings->writeJson = true;
+                _logger->save_setting(WRITEJSON, option + " 1");
+            }
+        }
+    }
+    else if (option == "writeResultFile") {
+        if (value != 0 && value != 1) {
+            _logger->save_setting(writeResultFile, "writeResultFile has to be 0 or 1, setting to 0");
+            _maingoSettings->writeResultFile = false;
+        }
+        else {
+            if (value == 0) {
+                _maingoSettings->writeResultFile = false;
+                _logger->save_setting(writeResultFile, option + " 0");
+            }
+            else {
+                _maingoSettings->writeResultFile = true;
+                _logger->save_setting(writeResultFile, option + " 1");
+            }
+        }
+    }
+    else if (option == "writeToLogSec") {
+        if (value != -1 && value < 10.) {
+            _logger->save_setting(WRITETOLOGSEC, "writeToLogSec has to be at least 10, setting it to default (1800)");
+            _maingoSettings->writeToLogSec = 1800;
+        }
+        else {
+            _maingoSettings->writeToLogSec = (int)value;
+            _logger->save_setting(WRITETOLOGSEC, option + " " + oss.str());
+        }
+    }
+    else if (option == "PRE_printEveryLocalSearch") {
+        if (value != 0 && value != 1) {
+            _logger->save_setting(PRE_PRINTEVERYLOCALSEARCH, "PRE_printEveryLocalSearch has to be 0 or 1, setting to 0");
+            _maingoSettings->PRE_printEveryLocalSearch = false;
+        }
+        else {
+            if (value == 0) {
+                _maingoSettings->PRE_printEveryLocalSearch = false;
+                _logger->save_setting(PRE_PRINTEVERYLOCALSEARCH, option + " 0");
+            }
+            else {
+                _maingoSettings->PRE_printEveryLocalSearch = true;
+                _logger->save_setting(PRE_PRINTEVERYLOCALSEARCH, option + " 1");
+            }
+        }
+    }
+    else if (option == "modelWritingLanguage") {
+        if (value != 0 && value != 1 && value != 2) {
+            _logger->save_setting(UBP_VERBOSITY, "modelWritingLanguage has to be 0, 1, 2, setting to 1");
+            _maingoSettings->modelWritingLanguage = LANG_ALE;
+        }
+        else {
+            if ((int)value == 0) {
+                _maingoSettings->modelWritingLanguage = LANG_NONE;
+            }
+            else if ((int)value == 1) {
+                _maingoSettings->modelWritingLanguage = LANG_ALE;
+            }
+            else if ((int)value == 2) {
+                _maingoSettings->modelWritingLanguage = LANG_GAMS;
+            }
+            _logger->save_setting(WRITETOOTHERLANGUAGE, option + " " + oss.str());
+        }
+    }
+    else {
+        _logger->save_setting(UNKNOWN_SETTING, "Could not find setting " + option + ". Proceeding.");
+        return false;
+    }
+
+    return true;
+}
\ No newline at end of file
diff --git a/src/MAiNGOtoOtherLanguage.cpp b/src/MAiNGOtoOtherLanguage.cpp
index 68180edf5bb881c9d06a2320115edbc993b781f1..82053572469087ba5e7d27c11b844001346321b8 100644
--- a/src/MAiNGOtoOtherLanguage.cpp
+++ b/src/MAiNGOtoOtherLanguage.cpp
@@ -7,16 +7,10 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file MAiNGOtoOtherLanguage.cpp
- *
- * @brief File containing implementation of functions needed to write GAMS files
- *        out of MAiNGO DAG.
- *
  **********************************************************************************/
 
-
 #include "MAiNGO.h"
-#include "exceptions.h"
+#include "MAiNGOException.h"
 #include "utilities.h"
 
 #include "fftostring.hpp"
@@ -32,8 +26,8 @@ using namespace maingo;
 /////////////////////////////////////////////////////////////////////////
 // writes file in a given modeling language out of MAiNGO DAG
 void
-MAiNGO::parse_maingo_to_other_language(const PARSING_LANGUAGE parsing_language, const std::string fileName, const std::string solverName,
-                                       const bool useMinMax, const bool useTrig, const bool ignoreBoundingFuncs, const bool writeRelaxationOnly)
+MAiNGO::write_model_to_file_in_other_language(const WRITING_LANGUAGE writingLanguage, std::string fileName, const std::string solverName,
+                                              const bool useMinMax, const bool useTrig, const bool ignoreBoundingFuncs, const bool writeRelaxationOnly)
 {
 
     try {
@@ -41,27 +35,27 @@ MAiNGO::parse_maingo_to_other_language(const PARSING_LANGUAGE parsing_language,
     }
     catch (const std::exception &e) {
         std::ostringstream errmsg;
-        errmsg << e.what() << "\n  Encountered a fatal error during DAG construction. Terminating.";
+        errmsg << e.what() << "\n  Encountered a fatal error during DAG construction.";
         if (_inMAiNGOsolve) {
             _write_files_error(errmsg.str());
         }
-        throw(MAiNGOException("  Encountered a fatal error during DAG construction. Terminating.", e));
+        throw MAiNGOException("  Encountered a fatal error during DAG construction.", e);
     }
     catch (...) {
         if (_inMAiNGOsolve) {
-            _write_files_error("\n  Encountered a fatal error during DAG construction. Terminating.");
+            _write_files_error("\n  Encountered an unknown fatal error during DAG construction.");
         }
-        throw(MAiNGOException("  Encountered a fatal error during DAG construction. Terminating."));
+        throw MAiNGOException("  Encountered an unknown fatal error during DAG construction.");
     }
 
     if (_DAGvars.empty() || _DAGfunctions.empty()) {
         std::ostringstream ostr;
-        ostr << "\n  You need to set your model before parsing to a different modeling language. Parsing of model to a different modeling language aborted. Proceeding...\n";
+        ostr << "\n  You need to set your model before writing it to file in a different modeling language. Writing of model to file aborted. Proceeding...\n";
         if (_inMAiNGOsolve) {
-            _logger.print_message(ostr.str(), _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+            _logger->print_message(ostr.str(), _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
         }
         else {
-            _logger.print_message_to_stream_only(ostr.str(), _maingoSettings.outstreamVerbosity);
+            _logger->print_message_to_stream_only(ostr.str(), _maingoSettings->loggingDestination);
         }
         return;
     }
@@ -72,27 +66,29 @@ MAiNGO::parse_maingo_to_other_language(const PARSING_LANGUAGE parsing_language,
     mc::FFToString::options.IGNORE_BOUNDING_FUNCS         = ignoreBoundingFuncs;
     mc::FFToString::options.USED_ENTHALPY_OF_VAPORIZATION = false;    // This is set to false. If it is true after writing of the file, we have to give a warning
 
-    switch (parsing_language) {
-        case GAMS:
-            mc::FFToString::options.PARSING_LANGUAGE = mc::FFToString::LANGUAGE::GAMS;
+    switch (writingLanguage) {
+        case LANG_GAMS:
+            mc::FFToString::options.WRITING_LANGUAGE = mc::FFToString::LANGUAGE::GAMS;
+            if (fileName.empty()) {
+                fileName = "MAiNGO_written_model.gms";
+            }
             _write_gams_file(fileName, solverName, writeRelaxationOnly);
             break;
-        case ALE:
-            mc::FFToString::options.PARSING_LANGUAGE = mc::FFToString::LANGUAGE::ALE;
+        case LANG_ALE:
+            mc::FFToString::options.WRITING_LANGUAGE = mc::FFToString::LANGUAGE::ALE;
+            if (fileName.empty()) {
+                fileName = "MAiNGO_written_model.txt";
+            }
             _write_ale_file(fileName, solverName, writeRelaxationOnly);
             break;
-        case AMPL:
-        case BARON:
-        case PYOMO:
-        case NLP_LANG:
         default:
             std::ostringstream ostr;
-            ostr << "\n  Unknown or not supported modeling language. Parsing of model to a different modeling language aborted. Proceeding...\n";
+            ostr << "\n  Unknown or not supported modeling language. Writing of model to file aborted. Proceeding...\n";
             if (_inMAiNGOsolve) {
-                _logger.print_message(ostr.str(), _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+                _logger->print_message(ostr.str(), _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
             }
             else {
-                _logger.print_message_to_stream_only(ostr.str(), _maingoSettings.outstreamVerbosity);
+                _logger->print_message_to_stream_only(ostr.str(), _maingoSettings->loggingDestination);
             }
             break;
     }
@@ -102,10 +98,10 @@ MAiNGO::parse_maingo_to_other_language(const PARSING_LANGUAGE parsing_language,
         std::ostringstream ostr;
         ostr << "  Warning: Function ENTHALPY_OF_VAPORIZATION is piecewise defined in MAiNGO. Only the subcritical part will be used.\n";
         if (_inMAiNGOsolve) {
-            _logger.print_message(ostr.str(), _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+            _logger->print_message(ostr.str(), _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
         }
         else {
-            _logger.print_message_to_stream_only(ostr.str(), _maingoSettings.outstreamVerbosity);
+            _logger->print_message_to_stream_only(ostr.str(), _maingoSettings->loggingDestination);
         }
         mc::FFToString::options.USED_ENTHALPY_OF_VAPORIZATION = false;    // Reset this value
     }
@@ -121,22 +117,22 @@ MAiNGO::_write_gams_file(const std::string gamsFileName, const std::string solve
     std::ostringstream ostr;
     ostr << "\n  Writing GAMS file. Depending on your model size and complexity, this may need a lot of memory and time...\n";
     if (_inMAiNGOsolve) {
-        _logger.print_message(ostr.str(), _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+        _logger->print_message(ostr.str(), _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
     }
     else {
-        _logger.print_message_to_stream_only(ostr.str(), _maingoSettings.outstreamVerbosity);
+        _logger->print_message_to_stream_only(ostr.str(), _maingoSettings->loggingDestination);
     }
 
     std::string str;
     if (gamsFileName.empty()) {
-        str = "MAiNGO_parsed_file.gms";
+        str = "MAiNGO_written_model.gms";
     }
     else {
-        str = gamsFileName + ".gms";
+        str = gamsFileName;
     }
     std::ofstream gamsFile(str);
 
-    _print_MAiNGO_header_for_other_modeling_language(GAMS, gamsFile);
+    _print_MAiNGO_header_for_other_modeling_language(LANG_GAMS, gamsFile);
 
     _write_gams_variables(gamsFile);
     _write_gams_functions(gamsFile, writeRelaxationOnly);
@@ -166,6 +162,12 @@ MAiNGO::_write_gams_variables(std::ofstream &gamsFile)
     unsigned lengthCounterInt  = 0;
     for (unsigned int i = 0; i < _originalVariables.size(); i++) {
         std::string currentName = _originalVariables[i].get_name();
+        if (currentName.length() == 0) {
+            currentName = "x";
+        }
+        else if (!std::isalpha(currentName[0])) {    // Check for first character
+            currentName = 'x' + currentName;
+        }
         // Get rid of forbidden characters and replace them by _
         for (unsigned int j = 0; j < currentName.length(); j++) {
             if (!std::isalpha(currentName[j]) && !std::isdigit(currentName[j])) {
@@ -311,10 +313,10 @@ MAiNGO::_write_gams_functions(std::ofstream &gamsFile, bool writeRelaxationOnly)
     if (_nineq > 0 || _nconstantIneq > 0) {
         str = str + "\n";
         for (unsigned int i = 1; i < _nineq + _nconstantIneq + 1; i++) {
-            ostr << _originalConstraints[i].indexType + 1;
+            ostr << (*_originalConstraints)[i].indexType + 1;
             str = str + "ineq" + ostr.str();
-            if ("ineq" + ostr.str() != _originalConstraints[i].name) {
-                str = str + " \"" + _originalConstraints[i].name + "\"";
+            if ("ineq" + ostr.str() != (*_originalConstraints)[i].name) {
+                str = str + " \"" + (*_originalConstraints)[i].name + "\"";
             }
             str = str + ",\n";
             ostr.str("");
@@ -325,10 +327,10 @@ MAiNGO::_write_gams_functions(std::ofstream &gamsFile, bool writeRelaxationOnly)
     if (_neq > 0 || _nconstantEq > 0) {
         str = str + "\n";
         for (unsigned int i = 1 + _nineq + _nconstantIneq; i < 1 + _nineq + _nconstantIneq + _neq + _nconstantEq; i++) {
-            ostr << _originalConstraints[i].indexType + 1;
+            ostr << (*_originalConstraints)[i].indexType + 1;
             str = str + "eq" + ostr.str();
-            if ("eq" + ostr.str() != _originalConstraints[i].name) {
-                str = str + " \"" + _originalConstraints[i].name + "\"";
+            if ("eq" + ostr.str() != (*_originalConstraints)[i].name) {
+                str = str + " \"" + (*_originalConstraints)[i].name + "\"";
             }
             str = str + ",\n";
             ostr.str("");
@@ -340,10 +342,10 @@ MAiNGO::_write_gams_functions(std::ofstream &gamsFile, bool writeRelaxationOnly)
         if (_nineqRelaxationOnly > 0 || _nconstantIneqRelOnly > 0) {
             str = str + "\n";
             for (unsigned int i = 1 + _nineq + _nconstantIneq + _neq + _nconstantEq; i < 1 + _nineq + _nconstantIneq + _neq + _nconstantEq + _nineqRelaxationOnly + _nconstantIneqRelOnly; i++) {
-                ostr << _originalConstraints[i].indexType + 1;
+                ostr << (*_originalConstraints)[i].indexType + 1;
                 str = str + "relOnlyIneq" + ostr.str();
-                if ("relOnlyIneq" + ostr.str() != _originalConstraints[i].name) {
-                    str = str + " \"" + _originalConstraints[i].name + "\"";
+                if ("relOnlyIneq" + ostr.str() != (*_originalConstraints)[i].name) {
+                    str = str + " \"" + (*_originalConstraints)[i].name + "\"";
                 }
                 str = str + ",\n";
                 ostr.str("");
@@ -354,10 +356,10 @@ MAiNGO::_write_gams_functions(std::ofstream &gamsFile, bool writeRelaxationOnly)
         if (_neqRelaxationOnly > 0 || _nconstantEqRelOnly > 0) {
             str = str + "\n";
             for (unsigned int i = 1 + _nineq + _nconstantIneq + _neq + _nconstantEq + _nineqRelaxationOnly + _nconstantIneqRelOnly; i < 1 + _nineq + _nconstantIneq + _neq + _nconstantEq + _nineqRelaxationOnly + _nconstantIneqRelOnly + _neqRelaxationOnly + _nconstantEqRelOnly; i++) {
-                ostr << _originalConstraints[i].indexType + 1;
+                ostr << (*_originalConstraints)[i].indexType + 1;
                 str = str + "relOnlyEq" + ostr.str();
-                if ("relOnlyEq" + ostr.str() != _originalConstraints[i].name) {
-                    str = str + " \"" + _originalConstraints[i].name + "\"";
+                if ("relOnlyEq" + ostr.str() != (*_originalConstraints)[i].name) {
+                    str = str + " \"" + (*_originalConstraints)[i].name + "\"";
                 }
                 str = str + ",\n";
                 ostr.str("");
@@ -368,11 +370,11 @@ MAiNGO::_write_gams_functions(std::ofstream &gamsFile, bool writeRelaxationOnly)
     // Squash inequalities
     if (_nineqSquash > 0 || _nconstantIneqSquash > 0) {
         str = str + "\n";
-        for (unsigned int i = 1 + _nineq + _nconstantIneq + _neq + _nconstantEq + _nineqRelaxationOnly + _nconstantIneqRelOnly + _neqRelaxationOnly + _nconstantEqRelOnly; i < _originalConstraints.size(); i++) {
-            ostr << _originalConstraints[i].indexType + 1;
+        for (unsigned int i = 1 + _nineq + _nconstantIneq + _neq + _nconstantEq + _nineqRelaxationOnly + _nconstantIneqRelOnly + _neqRelaxationOnly + _nconstantEqRelOnly; i < _originalConstraints->size(); i++) {
+            ostr << (*_originalConstraints)[i].indexType + 1;
             str = str + "squashIneq" + ostr.str();
-            if ("squashIneq" + ostr.str() != _originalConstraints[i].name) {
-                str = str + " \"" + _originalConstraints[i].name + "\"";
+            if ("squashIneq" + ostr.str() != (*_originalConstraints)[i].name) {
+                str = str + " \"" + (*_originalConstraints)[i].name + "\"";
             }
             str = str + ",\n";
             ostr.str("");
@@ -412,12 +414,12 @@ MAiNGO::_write_gams_functions(std::ofstream &gamsFile, bool writeRelaxationOnly)
     if (_nineq > 0 || _nconstantIneq > 0) {
         str = str + "*Inequalities\n";
         for (unsigned int i = 1; i < 1 + _nineq + _nconstantIneq; i++) {
-            ostr << _originalConstraints[i].indexType + 1;
-            if (_originalConstraints[i].isConstant) {
-                longstr = std::to_string(_originalConstraints[i].constantValue);
+            ostr << (*_originalConstraints)[i].indexType + 1;
+            if ((*_originalConstraints)[i].isConstant) {
+                longstr = std::to_string((*_originalConstraints)[i].constantValue);
             }
             else {
-                longstr = resultString[_originalConstraints[i].indexNonconstant].get_function_string();
+                longstr = resultString[(*_originalConstraints)[i].indexNonconstant].get_function_string();
             }
             _add_linebreaks_to_gams_string(longstr);
             str = str + "ineq" + ostr.str() + " .. " + longstr + " =L= 0;\n";
@@ -433,12 +435,12 @@ MAiNGO::_write_gams_functions(std::ofstream &gamsFile, bool writeRelaxationOnly)
     if (_neq > 0 || _nconstantEq > 0) {
         str = str + "*Equalities\n";
         for (unsigned int i = 1 + _nineq + _nconstantIneq; i < 1 + _nineq + _nconstantIneq + _neq + _nconstantEq; i++) {
-            ostr << _originalConstraints[i].indexType + 1;
-            if (_originalConstraints[i].isConstant) {
-                longstr = std::to_string(_originalConstraints[i].constantValue);
+            ostr << (*_originalConstraints)[i].indexType + 1;
+            if ((*_originalConstraints)[i].isConstant) {
+                longstr = std::to_string((*_originalConstraints)[i].constantValue);
             }
             else {
-                longstr = resultString[_originalConstraints[i].indexNonconstant].get_function_string();
+                longstr = resultString[(*_originalConstraints)[i].indexNonconstant].get_function_string();
             }
             _add_linebreaks_to_gams_string(longstr);
             str = str + "eq" + ostr.str() + " .. " + longstr + " =E= 0;\n";
@@ -457,10 +459,10 @@ MAiNGO::_write_gams_functions(std::ofstream &gamsFile, bool writeRelaxationOnly)
         outstr << "  Warning: Your model contains relaxation-only constraints. These will be written to the GAMS model, but it is up to you to mark them as relaxation-only!" << std::endl
                << "           Otherwise, they will be treated as regular constraints. To our knowledge, BARON is the only solver in GAMS that supports relaxation-only constraints." << std::endl;
         if (_inMAiNGOsolve) {
-            _logger.print_message(outstr.str(), _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+            _logger->print_message(outstr.str(), _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
         }
         else {
-            _logger.print_message_to_stream_only(outstr.str(), _maingoSettings.outstreamVerbosity);
+            _logger->print_message_to_stream_only(outstr.str(), _maingoSettings->loggingDestination);
         }
         gamsFile << "*Warning: Your model contains relaxation-only constraints. These have been written to the GAMS model, but it is up to you to mark them as relaxation-only!" << std::endl
                  << "*         Otherwise, they will be treated as regular constraints. To our knowledge, BARON is the only solver in GAMS that supports relaxation-only constraints." << std::endl;
@@ -469,12 +471,12 @@ MAiNGO::_write_gams_functions(std::ofstream &gamsFile, bool writeRelaxationOnly)
         if (_nineqRelaxationOnly > 0 || _nconstantIneqRelOnly > 0) {
             str = str + "*Relaxation-only inequalities\n";
             for (unsigned int i = 1 + _nineq + _nconstantIneq + _neq + _nconstantEq; i < 1 + _nineq + _nconstantIneq + _neq + _nconstantEq + _nineqRelaxationOnly + _nconstantIneqRelOnly; i++) {
-                ostr << _originalConstraints[i].indexType + 1;
-                if (_originalConstraints[i].isConstant) {
-                    longstr = std::to_string(_originalConstraints[i].constantValue);
+                ostr << (*_originalConstraints)[i].indexType + 1;
+                if ((*_originalConstraints)[i].isConstant) {
+                    longstr = std::to_string((*_originalConstraints)[i].constantValue);
                 }
                 else {
-                    longstr = resultString[_originalConstraints[i].indexNonconstant].get_function_string();
+                    longstr = resultString[(*_originalConstraints)[i].indexNonconstant].get_function_string();
                 }
                 _add_linebreaks_to_gams_string(longstr);
                 str = str + "relOnlyIneq" + ostr.str() + " .. " + longstr + " =L= 0;\n";
@@ -490,12 +492,12 @@ MAiNGO::_write_gams_functions(std::ofstream &gamsFile, bool writeRelaxationOnly)
         if (_neqRelaxationOnly > 0 || _nconstantEqRelOnly > 0) {
             str = str + "*Relaxation-only equalities\n";
             for (size_t i = 1 + _nineq + _nconstantIneq + _neq + _nconstantEq + _nineqRelaxationOnly + _nconstantIneqRelOnly; i < 1 + _nineq + _nconstantIneq + _neq + _nconstantEq + _nineqRelaxationOnly + _nconstantIneqRelOnly + _neqRelaxationOnly + _nconstantEqRelOnly; i++) {
-                ostr << _originalConstraints[i].indexType + 1;
-                if (_originalConstraints[i].isConstant) {
-                    longstr = std::to_string(_originalConstraints[i].constantValue);
+                ostr << (*_originalConstraints)[i].indexType + 1;
+                if ((*_originalConstraints)[i].isConstant) {
+                    longstr = std::to_string((*_originalConstraints)[i].constantValue);
                 }
                 else {
-                    longstr = resultString[_originalConstraints[i].indexNonconstant].get_function_string();
+                    longstr = resultString[(*_originalConstraints)[i].indexNonconstant].get_function_string();
                 }
                 _add_linebreaks_to_gams_string(longstr);
                 str = str + "relOnlyEq" + ostr.str() + " .. " + longstr + " =E= 0;\n";
@@ -515,20 +517,20 @@ MAiNGO::_write_gams_functions(std::ofstream &gamsFile, bool writeRelaxationOnly)
         outstr << "  Warning: Your model contains squash inequalities. These have been written to the GAMS model and will be treated as regular constraints." << std::endl
                << "           To our knowledge, GAMS does not supports squash inequalities." << std::endl;
         if (_inMAiNGOsolve) {
-            _logger.print_message(outstr.str(), _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+            _logger->print_message(outstr.str(), _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
         }
         else {
-            _logger.print_message_to_stream_only(outstr.str(), _maingoSettings.outstreamVerbosity);
+            _logger->print_message_to_stream_only(outstr.str(), _maingoSettings->loggingDestination);
         }
         str = str + "*Warning: Your model contains squash inequalities. These have been written to the GAMS model and will be treated as regular constraints. To our knowledge, GAMS does not supports squash inequalities.\n";
         str = str + "*Squash Inequalities\n";
-        for (unsigned int i = 1 + _nineq + _nconstantIneq + _neq + _nconstantEq + _nineqRelaxationOnly + _nconstantIneqRelOnly + _neqRelaxationOnly + _nconstantEqRelOnly; i < _originalConstraints.size(); i++) {
-            ostr << _originalConstraints[i].indexType + 1;
-            if (_originalConstraints[i].isConstant) {
-                longstr = std::to_string(_originalConstraints[i].constantValue);
+        for (unsigned int i = 1 + _nineq + _nconstantIneq + _neq + _nconstantEq + _nineqRelaxationOnly + _nconstantIneqRelOnly + _neqRelaxationOnly + _nconstantEqRelOnly; i < _originalConstraints->size(); i++) {
+            ostr << (*_originalConstraints)[i].indexType + 1;
+            if ((*_originalConstraints)[i].isConstant) {
+                longstr = std::to_string((*_originalConstraints)[i].constantValue);
             }
             else {
-                longstr = resultString[_originalConstraints[i].indexNonconstant].get_function_string();
+                longstr = resultString[(*_originalConstraints)[i].indexNonconstant].get_function_string();
             }
             _add_linebreaks_to_gams_string(longstr);
             str = str + "squashIneq" + ostr.str() + " .. " + longstr + " =L= 0;\n";
@@ -560,15 +562,15 @@ MAiNGO::_write_gams_options(std::ofstream &gamsFile, std::string solverName)
 
     // Optimality tolerances and time
     gamsFile << "*Optimality tolerances, time and solver\n";
-    ostr << _maingoSettings.epsilonA;
+    ostr << _maingoSettings->epsilonA;
     gamsFile << "option OPTCA = " << ostr.str() << ";\n";
     ostr.str("");
     ostr.clear();
-    ostr << _maingoSettings.epsilonR;
+    ostr << _maingoSettings->epsilonR;
     gamsFile << "option OPTCR = " << ostr.str() << ";\n";
     ostr.str("");
     ostr.clear();
-    ostr << _maingoSettings.maxTime;
+    ostr << _maingoSettings->maxTime;
     gamsFile << "option RESLIM = " << ostr.str() << ";\n";
     ostr.str("");
     ostr.clear();
@@ -646,22 +648,22 @@ MAiNGO::_write_ale_file(const std::string aleFileName, const std::string solverN
     std::ostringstream ostr;
     ostr << "\n  Writing ALE file. Depending on your model size and complexity, this may need a lot of memory and time...\n";
     if (_inMAiNGOsolve) {
-        _logger.print_message(ostr.str(), _maingoSettings.writeLog, _maingoSettings.BAB_verbosity, VERB_NORMAL, _maingoSettings.outstreamVerbosity);
+        _logger->print_message(ostr.str(), _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
     }
     else {
-        _logger.print_message_to_stream_only(ostr.str(), _maingoSettings.outstreamVerbosity);
+        _logger->print_message_to_stream_only(ostr.str(), _maingoSettings->loggingDestination);
     }
 
     std::string str;
     if (aleFileName.empty()) {
-        str = "MAiNGO_parsed_file.txt";
+        str = "MAiNGO_written_model.txt";
     }
     else {
-        str = aleFileName + ".txt";
+        str = aleFileName;
     }
     std::ofstream aleFile(str);
 
-    _print_MAiNGO_header_for_other_modeling_language(ALE, aleFile);
+    _print_MAiNGO_header_for_other_modeling_language(LANG_ALE, aleFile);
 
     _write_ale_variables(aleFile);
     _write_ale_functions(aleFile, writeRelaxationOnly);
@@ -692,8 +694,11 @@ MAiNGO::_write_ale_variables(std::ofstream &aleFile)
     unsigned lengthCounterInt  = 0;
     for (unsigned int i = 0; i < _originalVariables.size(); i++) {
         std::string currentName = _originalVariables[i].get_name();
-        if (!std::isalpha(currentName[0])) {    // Check for first character
-            currentName[0] = 'x';
+        if (currentName.length() == 0) {
+            currentName = "x";
+        }
+        else if (!std::isalpha(currentName[0])) {    // Check for first character
+            currentName = 'x' + currentName;
         }
         // Get rid of forbidden characters
         for (unsigned int j = 0; j < currentName.length(); j++) {
@@ -811,17 +816,17 @@ MAiNGO::_write_ale_functions(std::ofstream &aleFile, bool writeRelaxationOnly)
     if (_nineq > 0 || _nconstantIneq > 0) {
         str = str + "#Inequalities\n";
         for (unsigned int i = 1; i < 1 + _nineq + _nconstantIneq; i++) {
-            ostr << _originalConstraints[i].indexType + 1;
-            if (_originalConstraints[i].isConstant) {
-                longstr = std::to_string(_originalConstraints[i].constantValue);
+            ostr << (*_originalConstraints)[i].indexType + 1;
+            if ((*_originalConstraints)[i].isConstant) {
+                longstr = std::to_string((*_originalConstraints)[i].constantValue);
             }
             else {
-                longstr = resultString[_originalConstraints[i].indexNonconstant].get_function_string();
+                longstr = resultString[(*_originalConstraints)[i].indexNonconstant].get_function_string();
             }
             _add_linebreaks_to_gams_string(longstr);
             str = str + " " + longstr + " <= 0";
-            if (_originalConstraints[i].name != "ineq" + ostr.str()) {
-                str = str + " \"" + _originalConstraints[i].name + "\"";
+            if ((*_originalConstraints)[i].name != "ineq" + ostr.str()) {
+                str = str + " \"" + (*_originalConstraints)[i].name + "\"";
             }
             str = str + ";\n";
             ostr.str("");
@@ -836,17 +841,17 @@ MAiNGO::_write_ale_functions(std::ofstream &aleFile, bool writeRelaxationOnly)
     if (_neq > 0 || _nconstantEq > 0) {
         str = str + "#Equalities\n";
         for (unsigned int i = 1 + _nineq + _nconstantIneq; i < 1 + _nineq + _nconstantIneq + _neq + _nconstantEq; i++) {
-            ostr << _originalConstraints[i].indexType + 1;
-            if (_originalConstraints[i].isConstant) {
-                longstr = std::to_string(_originalConstraints[i].constantValue);
+            ostr << (*_originalConstraints)[i].indexType + 1;
+            if ((*_originalConstraints)[i].isConstant) {
+                longstr = std::to_string((*_originalConstraints)[i].constantValue);
             }
             else {
-                longstr = resultString[_originalConstraints[i].indexNonconstant].get_function_string();
+                longstr = resultString[(*_originalConstraints)[i].indexNonconstant].get_function_string();
             }
             _add_linebreaks_to_gams_string(longstr);
             str = str + " " + longstr + " = 0";
-            if (_originalConstraints[i].name != "eq" + ostr.str()) {
-                str = str + " \"" + _originalConstraints[i].name + "\"";
+            if ((*_originalConstraints)[i].name != "eq" + ostr.str()) {
+                str = str + " \"" + (*_originalConstraints)[i].name + "\"";
             }
             str = str + ";\n";
             ostr.str("");
@@ -864,17 +869,17 @@ MAiNGO::_write_ale_functions(std::ofstream &aleFile, bool writeRelaxationOnly)
         if (_nineqRelaxationOnly > 0 || _nconstantIneqRelOnly > 0) {
             str = str + "#Relaxation-only inequalities\n";
             for (unsigned int i = 1 + _nineq + _nconstantIneq + _neq + _nconstantEq; i < 1 + _nineq + _nconstantIneq + _neq + _nconstantEq + _nineqRelaxationOnly + _nconstantIneqRelOnly; i++) {
-                ostr << _originalConstraints[i].indexType + 1;
-                if (_originalConstraints[i].isConstant) {
-                    longstr = std::to_string(_originalConstraints[i].constantValue);
+                ostr << (*_originalConstraints)[i].indexType + 1;
+                if ((*_originalConstraints)[i].isConstant) {
+                    longstr = std::to_string((*_originalConstraints)[i].constantValue);
                 }
                 else {
-                    longstr = resultString[_originalConstraints[i].indexNonconstant].get_function_string();
+                    longstr = resultString[(*_originalConstraints)[i].indexNonconstant].get_function_string();
                 }
                 _add_linebreaks_to_gams_string(longstr);
                 str = str + " " + longstr + " <= 0";
-                if (_originalConstraints[i].name != "relOnlyIneq" + ostr.str()) {
-                    str = str + " \"" + _originalConstraints[i].name + "\"";
+                if ((*_originalConstraints)[i].name != "relOnlyIneq" + ostr.str()) {
+                    str = str + " \"" + (*_originalConstraints)[i].name + "\"";
                 }
                 str = str + ";\n";
                 ostr.str("");
@@ -889,17 +894,17 @@ MAiNGO::_write_ale_functions(std::ofstream &aleFile, bool writeRelaxationOnly)
         if (_neqRelaxationOnly > 0 || _nconstantEqRelOnly > 0) {
             str = str + "#Relaxation-only equalities\n";
             for (size_t i = 1 + _nineq + _nconstantIneq + _neq + _nconstantEq + _nineqRelaxationOnly + _nconstantIneqRelOnly; i < 1 + _nineq + _nconstantIneq + _neq + _nconstantEq + _nineqRelaxationOnly + _nconstantIneqRelOnly + _neqRelaxationOnly + _nconstantEqRelOnly; i++) {
-                ostr << _originalConstraints[i].indexType + 1;
-                if (_originalConstraints[i].isConstant) {
-                    longstr = std::to_string(_originalConstraints[i].constantValue);
+                ostr << (*_originalConstraints)[i].indexType + 1;
+                if ((*_originalConstraints)[i].isConstant) {
+                    longstr = std::to_string((*_originalConstraints)[i].constantValue);
                 }
                 else {
-                    longstr = resultString[_originalConstraints[i].indexNonconstant].get_function_string();
+                    longstr = resultString[(*_originalConstraints)[i].indexNonconstant].get_function_string();
                 }
                 _add_linebreaks_to_gams_string(longstr);
                 str = str + " " + longstr + " = 0";
-                if (_originalConstraints[i].name != "relOnlyEq" + ostr.str()) {
-                    str = str + " \"name=" + _originalConstraints[i].name + "\"";
+                if ((*_originalConstraints)[i].name != "relOnlyEq" + ostr.str()) {
+                    str = str + " \"name=" + (*_originalConstraints)[i].name + "\"";
                 }
                 str = str + ";\n";
                 ostr.str("");
@@ -916,18 +921,18 @@ MAiNGO::_write_ale_functions(std::ofstream &aleFile, bool writeRelaxationOnly)
     if (_nineqSquash > 0 || _nconstantIneqSquash > 0) {
         str = str + "squashing constraints:\n";
         str = str + "#Squash inequalities\n";
-        for (unsigned int i = 1 + _nineq + _nconstantIneq + _neq + _nconstantEq + _nineqRelaxationOnly + _nconstantIneqRelOnly + _neqRelaxationOnly + _nconstantEqRelOnly; i < _originalConstraints.size(); i++) {
-            ostr << _originalConstraints[i].indexType + 1;
-            if (_originalConstraints[i].isConstant) {
-                longstr = std::to_string(_originalConstraints[i].constantValue);
+        for (unsigned int i = 1 + _nineq + _nconstantIneq + _neq + _nconstantEq + _nineqRelaxationOnly + _nconstantIneqRelOnly + _neqRelaxationOnly + _nconstantEqRelOnly; i < _originalConstraints->size(); i++) {
+            ostr << (*_originalConstraints)[i].indexType + 1;
+            if ((*_originalConstraints)[i].isConstant) {
+                longstr = std::to_string((*_originalConstraints)[i].constantValue);
             }
             else {
-                longstr = resultString[_originalConstraints[i].indexNonconstant].get_function_string();
+                longstr = resultString[(*_originalConstraints)[i].indexNonconstant].get_function_string();
             }
             _add_linebreaks_to_gams_string(longstr);
             str = str + " " + longstr + " <= 0";
-            if (_originalConstraints[i].name != "squashIneq" + ostr.str()) {
-                str = str + " \"name=" + _originalConstraints[i].name + "\"";
+            if ((*_originalConstraints)[i].name != "squashIneq" + ostr.str()) {
+                str = str + " \"name=" + (*_originalConstraints)[i].name + "\"";
             }
             str = str + ";\n";
             ostr.str("");
@@ -956,13 +961,13 @@ MAiNGO::_write_ale_functions(std::ofstream &aleFile, bool writeRelaxationOnly)
         // Get the outputs in correct order
         // Non-constant outputs first
         for (size_t i = 0; i < _noutputVariables; i++) {
-            longstr = resultString[_nonconstantOutputs[i].indexTypeNonconstant].get_function_string();
+            longstr = resultString[(*_nonconstantOutputs)[i].indexTypeNonconstant].get_function_string();
             _add_linebreaks_to_gams_string(longstr);
-            outputStrings[_nonconstantOutputs[i].indexType] = std::make_tuple(longstr, _nonconstantOutputs[i].name, _nonconstantOutputs[i].indexType + 1);
+            outputStrings[(*_nonconstantOutputs)[i].indexType] = std::make_tuple(longstr, (*_nonconstantOutputs)[i].name, (*_nonconstantOutputs)[i].indexType + 1);
         }
         // Constant outputs second
         for (size_t i = 0; i < _nconstantOutputVariables; i++) {
-            outputStrings[_constantOutputs[i].indexType] = std::make_tuple(std::to_string(_constantOutputs[i].constantValue), _constantOutputs[i].name, _constantOutputs[i].indexType + 1);
+            outputStrings[(*_constantOutputs)[i].indexType] = std::make_tuple(std::to_string((*_constantOutputs)[i].constantValue), (*_constantOutputs)[i].name, (*_constantOutputs)[i].indexType + 1);
         }
         str = str + "\n\noutputs:\n";
         str = str + "#Additional outputs\n";
@@ -983,22 +988,18 @@ MAiNGO::_write_ale_functions(std::ofstream &aleFile, bool writeRelaxationOnly)
 /////////////////////////////////////////////////////////////////////////
 // print MAiNGO header for other modeling language
 void
-MAiNGO::_print_MAiNGO_header_for_other_modeling_language(const PARSING_LANGUAGE parsing_language, std::ofstream &file)
+MAiNGO::_print_MAiNGO_header_for_other_modeling_language(const WRITING_LANGUAGE writingLanguage, std::ofstream &file)
 {
 
     std::string commentSign;
 
-    switch (parsing_language) {
-        case GAMS:
+    switch (writingLanguage) {
+        case LANG_GAMS:
             commentSign = "*";
             break;
-        case ALE:
+        case LANG_ALE:
             commentSign = "#";
             break;
-        case AMPL:
-        case BARON:
-        case PYOMO:
-        case NLP_LANG:
         default:
             commentSign = "//";
             break;
diff --git a/src/MAiNGOwritingFunctions.cpp b/src/MAiNGOwritingFunctions.cpp
index 22d21fd2a53301f8de827f0fbc8de34e24bd09fb..5504cf95062643ce93137ddd01a734fbaee41df8 100644
--- a/src/MAiNGOwritingFunctions.cpp
+++ b/src/MAiNGOwritingFunctions.cpp
@@ -7,45 +7,36 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file MAiNGOwritingFunctions.cpp
- *
- * @brief File containing implementation of MAiNGO functions for writing files.
- *
  **********************************************************************************/
 
 #include "MAiNGO.h"
 #include "bab.h"
-#include "exceptions.h"
 #include "utilities.h"
 
-#include <limits.h>    // Needed for maximum value for specific settings
-
 
 using namespace maingo;
 
 
 ////////////////////////////////////////////////////////////////////////
-// writes final logging information to disk
+// Writes final logging information, results file, and csv and json files to disk
 void
 MAiNGO::_write_files()
 {
-    if (_maingoSettings.outstreamVerbosity >= OUTSTREAM_LOG) {
-        // Write all iterations in the B&B, statistics etc. into the files
-        if (_maingoSettings.writeLog) {
-            _logger.write_all_lines_to_log();
-        }
-        if (_maingoSettings.writeCsv) {
-            _logger.create_csv_files(_maingoSettings.PRE_pureMultistart, _maingoSettings.PRE_printEveryLocalSearch, _maingoSettings.PRE_maxLocalSearches, _objectivesAtRoot, _feasibleAtRoot);
-            _logger.write_all_iterations_to_csv();
-            _write_csv_general();
-        }
-        if (_maingoSettings.writeJson) {
-            _logger.create_json_file(_maingoSettings.writeJson, _maingoSettings.outstreamVerbosity);
-            _write_json_file();
-        }
-        if (_maingoSettings.writeResFile && !_solutionPoint.empty()) {
-            _write_res_file();
-        }
+    if ((_maingoSettings->loggingDestination == LOGGING_FILE) || (_maingoSettings->loggingDestination == LOGGING_FILE_AND_STREAM)) {
+        _logger->write_all_lines_to_log();
+    }
+
+    if (_maingoSettings->writeCsv) {
+        _logger->write_all_iterations_to_csv();
+        _write_solution_and_statistics_csv();
+    }
+
+    if (_maingoSettings->writeJson) {
+        _write_json_file();
+    }
+
+    if (_maingoSettings->writeResultFile && (!_solutionPoint.empty())) {
+        _write_result_file();
     }
 }
 
@@ -53,1341 +44,412 @@ MAiNGO::_write_files()
 ////////////////////////////////////////////////////////////////////////
 // writes final logging information to disk
 void
-MAiNGO::_write_files_error(const std::string& error)
+MAiNGO::_write_files_error(const std::string& errorMessage)
 {
-    if (_maingoSettings.outstreamVerbosity >= OUTSTREAM_LOG) {
-        // Write all iterations in the B&B into the files
+    if ((_maingoSettings->loggingDestination == LOGGING_FILE) || (_maingoSettings->loggingDestination == LOGGING_FILE_AND_STREAM)) {
+        _logger->write_all_lines_to_log(errorMessage);
+    }
 
-        if (_maingoSettings.writeLog) {
-            _logger.write_all_lines_to_log(error);
-        }
-        if (_maingoSettings.writeCsv) {
-            _logger.write_all_iterations_to_csv(error);
-        }
+    if (_maingoSettings->writeCsv) {
+        _logger->write_all_iterations_to_csv();
     }
 }
 
 
 ////////////////////////////////////////////////////////////////////////
-// write csv summaries
+// write file containing additional non-standard information about the problem
 void
-MAiNGO::_write_csv_general()
+MAiNGO::_write_result_file()
 {
-    if (_maingoSettings.outstreamVerbosity >= OUTSTREAM_LOG) {
-        // Write results in a csv
-        // csv file allows easy data exchange to other software (like Matlab)
-
-        std::ofstream outfile;
-        outfile.open(_logger.csvGeneralName, std::ios::app);
-        outfile << "Problem type,";
-        switch (_problemStructure) {
-            case LP:
-                outfile << "0" << std::endl;
-                break;
-            case QP:
-                outfile << "1" << std::endl;
-                break;
-            case MIP:
-                outfile << "2" << std::endl;
-                break;
-            case MIQP:
-                outfile << "3" << std::endl;
-                break;
-            case NLP:
-                outfile << "4" << std::endl;
-                break;
-            case DNLP:
-                outfile << "5" << std::endl;
-                break;
-            case MINLP:
-                outfile << "6" << std::endl;
-                break;
-            default:
-                outfile << "6" << std::endl;
-                break;
-        }
-        if (!_maingoSettings.PRE_pureMultistart && _problemStructure > MIQP) {
-            outfile << "No of Iterations," << _myBaB->get_iterations() << std::endl;
-            outfile << "Total LBD problems solved," << _myBaB->get_LBP_count() << std::endl;
-            outfile << "Total UBD problems solved," << _myBaB->get_UBP_count() << std::endl;
-            outfile << "Maximum number of nodes in memory," << _myBaB->get_max_nodes_in_memory() << std::endl;
-            outfile << "No of nodes left," << _myBaB->get_nodes_left() << std::endl;
+    const std::vector<double> solutionPoint              = get_solution_point();
+    const std::vector<double> modelValuesAtSolutionPoint = evaluate_model_at_solution_point();
+
+    std::ofstream resultFile;
+    resultFile.open(_resultFileName, std::ios::out);
+
+    resultFile << std::setw(25) << "variables" << std::setw(25) << "lower bound"
+               << std::setw(25) << "solution point" << std::setw(25) << "upper bound" << std::endl
+               << std::endl;
+    for (size_t i = 0; i < solutionPoint.size(); i++) {
+        resultFile << std::setw(25) << _originalVariables[i].get_name() << std::setw(25) << std::setprecision(16) << _originalVariables[i].get_lower_bound()
+                   << std::setw(25) << solutionPoint[i] << std::setw(25) << _originalVariables[i].get_upper_bound() << std::endl;
+    }
+    resultFile << std::endl;
+    resultFile << "-------------------------------------------------------------------------------------------------------------" << std::endl
+               << std::endl;
+
+    resultFile << std::setw(25) << "objective value" << std::setw(25) << std::setprecision(16) << modelValuesAtSolutionPoint[0] << std::endl
+               << std::endl;
+    if (_nineq > 0 || _nconstantIneq > 0) {
+        resultFile << "-------------------------------------------------------------------------------------------------------------" << std::endl
+                   << std::endl;
+        resultFile << std::setw(25) << "inequalities" << std::setw(25) << "value" << std::setw(25) << "at bound" << std::setw(25) << "tolerance = " << _maingoSettings->deltaIneq << std::endl
+                   << std::endl;
+
+        for (size_t i = 1; i < 1 + _nineq + _nconstantIneq; i++) {
+            std::string ineq = (*_originalConstraints)[i].name;
+            resultFile << std::setw(25) << ineq << std::setw(25) << std::setprecision(16) << modelValuesAtSolutionPoint[i];
+            if (modelValuesAtSolutionPoint[i] > _maingoSettings->deltaIneq) {
+                resultFile << std::setw(25) << "VIOLATED" << std::endl;
+            }
+            else if (modelValuesAtSolutionPoint[i] < _maingoSettings->deltaIneq && modelValuesAtSolutionPoint[i] >= 0.) {
+                resultFile << std::setw(25) << " * " << std::endl;
+            }
+            else if (modelValuesAtSolutionPoint[i] < 0 && modelValuesAtSolutionPoint[i] >= -_maingoSettings->deltaIneq) {
+                resultFile << std::setw(25) << "(*)" << std::endl;
+            }
+            else {
+                resultFile << std::endl;
+            }
         }
-        outfile << "Time pre-processing (s)," << _preprocessTime << std::endl;
-        outfile << "Time branch-and-bound (s)," << _solutionTime - _preprocessTime << std::endl;
-        outfile << "Total CPU solution time (s)," << _solutionTime << std::endl;
-        outfile << "Total wall solution time (s)," << _solutionTimeWallClock << std::endl;
-        outfile << "Found feasible solution," << (!_solutionPoint.empty()) << std::endl;
-
+        resultFile << std::endl;
+    }
+    resultFile << "-------------------------------------------------------------------------------------------------------------" << std::endl
+               << std::endl;
 
-        if (!_solutionPoint.empty()) {
+    if (_neq > 0 || _nconstantEq > 0) {
+        resultFile << std::setw(25) << "equalities" << std::setw(25) << "value" << std::setw(25) << " " << std::setw(25) << "tolerance = " << _maingoSettings->deltaEq << std::endl
+                   << std::endl;
 
-            outfile << "Optimal Solution," << _solutionValue << std::endl;
-            if (!_maingoSettings.PRE_pureMultistart && _problemStructure > MIQP) {
-                outfile << "Best solution: First found at iteration," << _myBaB->get_first_found() << std::endl;
-                outfile << "Final absolute gap," << _myBaB->get_final_abs_gap() << std::endl;
-                outfile << "Final relative gap," << _myBaB->get_final_rel_gap() << std::endl;
+        for (size_t i = 1 + _nineq + _nconstantIneq; i < 1 + _nineq + _nconstantIneq + _neq + _nconstantEq; i++) {
+            std::string eq = (*_originalConstraints)[i].name;
+            resultFile << std::setw(25) << eq << std::setw(25) << std::setprecision(16) << modelValuesAtSolutionPoint[i];
+            // These should never be violated but just to make sure we check it here
+            if (modelValuesAtSolutionPoint[i] > _maingoSettings->deltaEq || modelValuesAtSolutionPoint[i] < -_maingoSettings->deltaEq) {
+                resultFile << std::setw(25) << "VIOLATED" << std::endl;
             }
-            outfile << "Solution point";
-            std::vector<double> solutionPoint = get_solution_point();
-            // We write only the used non-constant (output) variables into the csv file
-            for (unsigned i = 0; i < _nvarOriginal; ++i) {
-                outfile << "," << solutionPoint[i];
-            }
-            outfile << std::endl;
-            outfile << "Additional output";
-            std::vector<std::pair<std::string, double>> additionalOutput = get_additional_outputs_at_solution_point();
-            for (unsigned i = 0; i < additionalOutput.size(); ++i) {
-                outfile << "," << additionalOutput[i].second;
+            else {
+                resultFile << std::endl;
             }
-            outfile << std::endl;
         }
-
-        outfile.close();
+        resultFile << std::endl;
     }
-}
 
+    if (_nineqRelaxationOnly > 0 || _nconstantIneqRelOnly > 0) {
+        resultFile << "-------------------------------------------------------------------------------------------------------------" << std::endl
+                   << std::endl;
 
-////////////////////////////////////////////////////////////////////////
-// write json summaries
-void
-MAiNGO::_write_json_file()
-{
-    if (_maingoSettings.outstreamVerbosity >= OUTSTREAM_LOG) {
-        std::ofstream outfile;
-        outfile.open(_logger.jsonFileName, std::ios::app);
-        outfile << "{" << std::endl;
-        outfile << "  \"MAiNGOversion\" : \"" << print_version() << "\"," << std::endl;
-        outfile << "  \"ProblemType\" : \"";
-        switch (_problemStructure) {
-            case LP:
-                outfile << "LP\"," << std::endl;
-                break;
-            case QP:
-                outfile << "QP\"," << std::endl;
-                break;
-            case MIP:
-                outfile << "MIP\"," << std::endl;
-                break;
-            case MIQP:
-                outfile << "MIQP\"," << std::endl;
-                break;
-            case NLP:
-                outfile << "NLP\"," << std::endl;
-                break;
-            case DNLP:
-                outfile << "DNLP\"," << std::endl;
-                break;
-            case MINLP:
-                outfile << "MINLP\"," << std::endl;
-                break;
-            default:
-                outfile << "MINLP\"," << std::endl;
-                break;
-        }
-        if (!_maingoSettings.PRE_pureMultistart && _problemStructure > MIQP) {
-            outfile << "  \"SolutionStatistics\" : {" << std::endl;
-            outfile << "    \"NumberOfIterations\" : " << _myBaB->get_iterations() << "," << std::endl;
-            outfile << "    \"LBDProblemsSolved\" : " << _myBaB->get_LBP_count() << "," << std::endl;
-            outfile << "    \"UBPProblemsSolved\" : " << _myBaB->get_UBP_count() << "," << std::endl;
-            outfile << "    \"MaximumNodesInMemory\" : " << _myBaB->get_max_nodes_in_memory() << "," << std::endl;
-            outfile << "    \"NumberOfNodesLeft\" : " << _myBaB->get_nodes_left() << std::endl;
-            outfile << "  }," << std::endl;
-        }
-        outfile << "  \"Timing\" : {" << std::endl;
-        outfile << "    \"PreProcessingCPU\" : " << _preprocessTime << "," << std::endl;
-        outfile << "    \"BranchAndBoundCPU\" : " << _solutionTime - _preprocessTime << "," << std::endl;
-        outfile << "    \"TotalCPU\" : " << _solutionTime << "," << std::endl;
-        outfile << "    \"TotalWall\" : " << _solutionTimeWallClock << std::endl;
-        outfile << "  }," << std::endl;
-        std::string str = (!_solutionPoint.empty()) ? "true" : "false";
-        outfile << "  \"Solution\" : {" << std::endl;
-        outfile << "    \"FoundFeasiblePoint\" : " << str << "," << std::endl;
-        outfile << "    \"MAiNGOstatus\" : ";
-        switch (_maingoStatus) {
-            case GLOBALLY_OPTIMAL:
-                outfile << "\"Globally optimal\"," << std::endl;
-                break;
-            case INFEASIBLE:
-                outfile << "\"Infeasible\"," << std::endl;
-                break;
-            case FEASIBLE_POINT:
-                outfile << "\"Feasible point\"," << std::endl;
-                break;
-            case NO_FEASIBLE_POINT_FOUND:
-                outfile << "\"No feasible point found\"," << std::endl;
-                break;
-            case BOUND_TARGETS:
-                outfile << "\"Reached target bound\"," << std::endl;
-                break;
-            case NOT_SOLVED_YET:
-                outfile << "\"Not solved yet\"," << std::endl;
-                break;
-            case JUST_A_WORKER_DONT_ASK_ME:
-                outfile << "\"Just a worker\"," << std::endl;
-                break;
-            default:
-                outfile << "\"Not solved yet\"," << std::endl;
-                break;
-        }
-
+        resultFile << std::setw(25) << "rel only inequalities" << std::setw(25) << "value" << std::setw(25) << "at bound" << std::setw(25) << "tolerance = " << _maingoSettings->deltaIneq << std::endl
+                   << std::endl;
 
-        if (!_solutionPoint.empty()) {
-            outfile << "    \"BestSolutionValue\" : " << _solutionValue << "," << std::endl;
-            if (!_maingoSettings.PRE_pureMultistart && _problemStructure > MIQP) {
-                outfile << "    \"FoundAtNode\" : " << _myBaB->get_first_found() << "," << std::endl;
-                outfile << "    \"AbsoluteGap\" : " << _myBaB->get_final_abs_gap() << "," << std::endl;
-                outfile << "    \"RelativeGap\" : " << _myBaB->get_final_rel_gap() << "," << std::endl;
+        for (size_t i = 1 + _nineq + _nconstantIneq + _neq + _nconstantEq; i < 1 + _nineq + _nconstantIneq + _neq + _nconstantEq + _nineqRelaxationOnly + _nconstantIneqRelOnly; i++) {
+            std::string ineq = (*_originalConstraints)[i].name;
+            resultFile << std::setw(25) << ineq << std::setw(25) << std::setprecision(16) << modelValuesAtSolutionPoint[i];
+            if (modelValuesAtSolutionPoint[i] > _maingoSettings->deltaIneq) {
+                resultFile << std::setw(25) << "VIOLATED" << std::endl;
             }
-            outfile << "    \"SolutionPoint\" : [" << std::endl;
-            std::vector<double> solutionPoint = get_solution_point();
-            // We write only the used non-constant (output) variables into the csv file
-            for (unsigned i = 0; i < _nvarOriginal; ++i) {
-                outfile << "      {" << std::endl;
-                outfile << "        \"VariableName\" : \"" << _originalVariables[i].get_name() << "\"," << std::endl;
-                outfile << "        \"VariableValue\" : " << solutionPoint[i] << std::endl;
-                if (i + 1 < _nvarOriginal) {
-                    outfile << "      }," << std::endl;
-                }
-                else {
-                    outfile << "      }" << std::endl;
-                }
+            else if (modelValuesAtSolutionPoint[i] < _maingoSettings->deltaIneq && modelValuesAtSolutionPoint[i] >= 0.) {
+                resultFile << std::setw(25) << " * " << std::endl;
             }
-            outfile << "    ]," << std::endl;
-            outfile << "    \"AdditionalOutput\" : [" << std::endl;
-            std::vector<std::pair<std::string, double>> additionalOutput = get_additional_outputs_at_solution_point();
-            for (unsigned i = 0; i < additionalOutput.size(); ++i) {
-                outfile << "      {" << std::endl;
-                outfile << "        \"VariableName\" : \"" << additionalOutput[i].first << "\"," << std::endl;
-                outfile << "        \"VariableValue\" : " << additionalOutput[i].second << std::endl;
-                if (i + 1 < additionalOutput.size()) {
-                    outfile << "      }," << std::endl;
-                }
-                else {
-                    outfile << "      }" << std::endl;
-                }
+            else if (modelValuesAtSolutionPoint[i] < 0 && modelValuesAtSolutionPoint[i] >= -_maingoSettings->deltaIneq) {
+                resultFile << std::setw(25) << "(*)" << std::endl;
+            }
+            else {
+                resultFile << std::endl;
             }
-            outfile << "    ]" << std::endl;
         }
-        outfile << "  }" << std::endl;
-        outfile << "}";
-
-        outfile.close();
-    }
-}
-
-/////////////////////////////////////////////////////////////////////////
-// sets name of log file
-void
-MAiNGO::set_log_file_name(std::string logFileName)
-{
-
-    if (logFileName.empty()) {
-        _logger.logFileName = "bab.log";
-    }
-    else {
-        _logger.logFileName = logFileName + ".log";
-    }
-}
-
-
-/////////////////////////////////////////////////////////////////////////
-// sets name of res file
-void
-MAiNGO::set_res_file_name(std::string resFileName)
-{
-
-    if (resFileName.empty()) {
-        _logger.resFileName = "MAiNGO_res.txt";
+        resultFile << std::endl;
     }
-    else {
-        _logger.resFileName = resFileName + ".txt";
-    }
-}
-
 
-/////////////////////////////////////////////////////////////////////////
-// sets names of csv files
-void
-MAiNGO::set_csv_file_name(std::string csvIterationsName, std::string csvGeneralName)
-{
+    if (_neqRelaxationOnly > 0 || _nconstantEqRelOnly > 0) {
+        resultFile << "-------------------------------------------------------------------------------------------------------------" << std::endl
+                   << std::endl;
 
-    if (csvIterationsName.empty()) {
-        _logger.csvIterationsName = "bab_Report_Iterations.csv";
-    }
-    else {
-        _logger.csvIterationsName = csvIterationsName + ".csv";
-    }
+        resultFile << std::setw(25) << "rel only equalities" << std::setw(25) << "value" << std::setw(25) << " " << std::setw(25) << "tolerance = " << _maingoSettings->deltaEq << std::endl
+                   << std::endl;
 
-    if (csvGeneralName.empty()) {
-        _logger.csvGeneralName = "bab_Report_General.csv";
-    }
-    else {
-        _logger.csvGeneralName = csvGeneralName + ".csv";
+        for (size_t i = 1 + _nineq + _nconstantIneq + _neq + _nconstantEq + _nineqRelaxationOnly + _nconstantIneqRelOnly; i < 1 + _nineq + _nconstantIneq + _neq + _nconstantEq + _nineqRelaxationOnly + _nconstantIneqRelOnly + _neqRelaxationOnly + _nconstantEqRelOnly; i++) {
+            std::string eq = (*_originalConstraints)[i].name;
+            resultFile << std::setw(25) << eq << std::setw(25) << std::setprecision(16) << modelValuesAtSolutionPoint[i];
+            if (modelValuesAtSolutionPoint[i] > _maingoSettings->deltaEq || modelValuesAtSolutionPoint[i] < -_maingoSettings->deltaEq) {
+                resultFile << std::setw(25) << "VIOLATED" << std::endl;
+            }
+            else {
+                resultFile << std::endl;
+            }
+        }
+        resultFile << std::endl;
     }
-}
 
+    if (_nineqSquash > 0 || _nconstantIneqSquash > 0) {
+        resultFile << "-------------------------------------------------------------------------------------------------------------" << std::endl
+                   << std::endl;
 
-/////////////////////////////////////////////////////////////////////////
-// sets name of json file
-void
-MAiNGO::set_json_file_name(std::string jsonFileName)
-{
+        resultFile << std::setw(25) << "squash inequalities" << std::setw(25) << "value" << std::setw(25) << " " << std::setw(25) << "tolerance = " << 0 << std::endl
+                   << std::endl;
 
-    if (jsonFileName.empty()) {
-        _logger.jsonFileName = "bab.json";
-    }
-    else {
-        _logger.jsonFileName = jsonFileName + ".json";
+        for (size_t i = 1 + _nineq + _nconstantIneq + _neq + _nconstantEq + _nineqRelaxationOnly + _nconstantIneqRelOnly + _neqRelaxationOnly + _nconstantEqRelOnly; i < _originalConstraints->size(); i++) {
+            std::string ineq = (*_originalConstraints)[i].name;
+            resultFile << std::setw(25) << ineq << std::setw(25) << std::setprecision(16) << modelValuesAtSolutionPoint[i];
+            if (modelValuesAtSolutionPoint[i] > 0) {
+                resultFile << std::setw(25) << "VIOLATED" << std::endl;
+            }
+            else if (modelValuesAtSolutionPoint[i] < 0 && modelValuesAtSolutionPoint[i] >= -_maingoSettings->deltaIneq) {
+                resultFile << std::setw(25) << "(*)" << std::endl;
+            }
+            else {
+                resultFile << std::endl;
+            }
+        }
+        resultFile << std::endl;
     }
-}
 
-/////////////////////////////////////////////////////////////////////////
-// sets output stream
-void
-MAiNGO::set_output_stream(std::ostream* outputStream)
-{
-    _logger.set_output_stream(outputStream);
+    resultFile.close();
 }
 
 
-/////////////////////////////////////////////////////////////////////////
-// creates the log file
+////////////////////////////////////////////////////////////////////////
+// write csv summaries
 void
-MAiNGO::_write_epsilon_constraint_result(const std::vector<std::vector<double>>& objectiveValues, const std::vector<std::vector<double>>& solutionPoints)
+MAiNGO::_write_solution_and_statistics_csv()
 {
 
-    if (_maingoSettings.outstreamVerbosity >= OUTSTREAM_LOG) {
-        std::ofstream objectiveValuesFile("MAiNGO_epsilon_constraint_objective_values.csv");
-        objectiveValuesFile << "obj1, obj2" << std::endl;
+    std::ofstream solutionStatisticsFile;
+    solutionStatisticsFile.open(_csvSolutionStatisticsName, std::ios::out);
 
-        for (size_t i = 0; i < objectiveValues.size(); i++) {
-            objectiveValuesFile << objectiveValues[i][0];
-            for (size_t j = 1; j < objectiveValues[i].size(); j++) {
-                objectiveValuesFile << ", " << objectiveValues[i][j];
-            }
-            objectiveValuesFile << std::endl;
-        }
-        objectiveValuesFile.close();
+    if (_maingoSettings->PRE_pureMultistart) {
+        solutionStatisticsFile << "  Pure Multistart " << std::endl;
+        solutionStatisticsFile << "  No of local searches," << _maingoSettings->PRE_maxLocalSearches << std::endl;
+    }
 
-        std::ofstream pointsFile("MAiNGO_epsilon_constraint_solution_points.csv");
-        pointsFile << "x0";
-        for (size_t i = 1; i < solutionPoints[0].size(); i++) {
-            pointsFile << ", x" << i;
-        }
-        pointsFile << std::endl;
-        for (size_t i = 0; i < solutionPoints.size(); i++) {
-            pointsFile << solutionPoints[i][0];
-            for (size_t j = 1; j < solutionPoints[i].size(); j++) {
-                pointsFile << ", " << solutionPoints[i][j];
+    if (_maingoSettings->PRE_printEveryLocalSearch) {
+        for (unsigned i = 0; i < _maingoSettings->PRE_maxLocalSearches; i++) {
+            if (_feasibleAtRoot[i] == SUBSOLVER_FEASIBLE) {
+                solutionStatisticsFile << "  \tRun No," << i + 1 << ",objective value," << _objectivesAtRoot[i] << std::endl;
             }
-            pointsFile << std::endl;
-        }
-        pointsFile.close();
-    }
+            else {
+                solutionStatisticsFile << "  \tRun No," << i + 1 << ",No feasible point found" << std::endl;
+            }
+        }
+    }
+
+    solutionStatisticsFile << "Problem type,";
+    switch (_problemStructure) {
+        case LP:
+            solutionStatisticsFile << "0" << std::endl;
+            break;
+        case QP:
+            solutionStatisticsFile << "1" << std::endl;
+            break;
+        case MIP:
+            solutionStatisticsFile << "2" << std::endl;
+            break;
+        case MIQP:
+            solutionStatisticsFile << "3" << std::endl;
+            break;
+        case NLP:
+            solutionStatisticsFile << "4" << std::endl;
+            break;
+        case DNLP:
+            solutionStatisticsFile << "5" << std::endl;
+            break;
+        case MINLP:
+            solutionStatisticsFile << "6" << std::endl;
+            break;
+        default:
+            solutionStatisticsFile << "6" << std::endl;
+            break;
+    }
+
+    if (!_maingoSettings->PRE_pureMultistart && _problemStructure > MIQP) {
+        solutionStatisticsFile << "No of Iterations," << _myBaB->get_iterations() << std::endl;
+        solutionStatisticsFile << "Total LBD problems solved," << _myBaB->get_LBP_count() << std::endl;
+        solutionStatisticsFile << "Total UBD problems solved," << _myBaB->get_UBP_count() << std::endl;
+        solutionStatisticsFile << "Maximum number of nodes in memory," << _myBaB->get_max_nodes_in_memory() << std::endl;
+        solutionStatisticsFile << "No of nodes left," << _myBaB->get_nodes_left() << std::endl;
+    }
+
+    solutionStatisticsFile << "Time pre-processing (s)," << _preprocessTime << std::endl;
+    solutionStatisticsFile << "Time branch-and-bound (s)," << _solutionTime - _preprocessTime << std::endl;
+    solutionStatisticsFile << "Total CPU solution time (s)," << _solutionTime << std::endl;
+    solutionStatisticsFile << "Total wall solution time (s)," << _solutionTimeWallClock << std::endl;
+    solutionStatisticsFile << "Found feasible solution," << (!_solutionPoint.empty()) << std::endl;
+
+
+    if (!_solutionPoint.empty()) {
+        solutionStatisticsFile << "Optimal Solution," << _solutionValue << std::endl;
+        if (!_maingoSettings->PRE_pureMultistart && _problemStructure > MIQP) {
+            solutionStatisticsFile << "Best solution: First found at iteration," << _myBaB->get_first_found() << std::endl;
+            solutionStatisticsFile << "Final absolute gap," << _myBaB->get_final_abs_gap() << std::endl;
+            solutionStatisticsFile << "Final relative gap," << _myBaB->get_final_rel_gap() << std::endl;
+        }
+        solutionStatisticsFile << "Solution point";
+        std::vector<double> solutionPoint = get_solution_point();
+        // We write only the used non-constant (output) variables into the csv file
+        for (unsigned i = 0; i < _nvarOriginal; ++i) {
+            solutionStatisticsFile << "," << solutionPoint[i];
+        }
+        solutionStatisticsFile << std::endl;
+        solutionStatisticsFile << "Additional output";
+        std::vector<std::pair<std::string, double>> additionalOutput = evaluate_additional_outputs_at_solution_point();
+        for (unsigned i = 0; i < additionalOutput.size(); ++i) {
+            solutionStatisticsFile << "," << additionalOutput[i].second;
+        }
+        solutionStatisticsFile << std::endl;
+    }
+
+    solutionStatisticsFile.close();
 }
 
 
 ////////////////////////////////////////////////////////////////////////
-// write file containing additional non-standard information about the problem
+// write json summaries
 void
-MAiNGO::_write_res_file()
+MAiNGO::_write_json_file()
 {
-    if (_maingoSettings.outstreamVerbosity >= OUTSTREAM_LOG && _maingoSettings.writeResFile && !_solutionPoint.empty()) {
-
-        std::vector<double> solutionPoint              = get_solution_point();
-        std::vector<double> modelValuesAtSolutionPoint = get_model_at_solution_point();
-
-        // Write results to res file
-        std::ofstream outfile;
-        outfile.open(_logger.resFileName, std::ios::out);
-
-        outfile << std::setw(25) << "variables" << std::setw(25) << "lower bound"
-                << std::setw(25) << "solution point" << std::setw(25) << "upper bound" << std::endl
-                << std::endl;
-        for (size_t i = 0; i < solutionPoint.size(); i++) {
-            outfile << std::setw(25) << _originalVariables[i].get_name() << std::setw(25) << std::setprecision(16) << _originalVariables[i].get_lower_bound()
-                    << std::setw(25) << solutionPoint[i] << std::setw(25) << _originalVariables[i].get_upper_bound() << std::endl;
-        }
-        outfile << std::endl;
-        outfile << "-------------------------------------------------------------------------------------------------------------" << std::endl
-                << std::endl;
-
-        outfile << std::setw(25) << "objective value" << std::setw(25) << std::setprecision(16) << modelValuesAtSolutionPoint[0] << std::endl
-                << std::endl;
-        if (_nineq > 0 || _nconstantIneq > 0) {
-            outfile << "-------------------------------------------------------------------------------------------------------------" << std::endl
-                    << std::endl;
-            outfile << std::setw(25) << "inequalities" << std::setw(25) << "value" << std::setw(25) << "at bound" << std::setw(25) << "tolerance = " << _maingoSettings.deltaIneq << std::endl
-                    << std::endl;
-
-            for (size_t i = 1; i < 1 + _nineq + _nconstantIneq; i++) {
-                std::string ineq = _originalConstraints[i].name;
-                outfile << std::setw(25) << ineq << std::setw(25) << std::setprecision(16) << modelValuesAtSolutionPoint[i];
-                if (modelValuesAtSolutionPoint[i] > _maingoSettings.deltaIneq) {
-                    outfile << std::setw(25) << "VIOLATED" << std::endl;
-                }
-                else if (modelValuesAtSolutionPoint[i] < _maingoSettings.deltaIneq && modelValuesAtSolutionPoint[i] >= 0.) {
-                    outfile << std::setw(25) << " * " << std::endl;
-                }
-                else if (modelValuesAtSolutionPoint[i] < 0 && modelValuesAtSolutionPoint[i] >= -_maingoSettings.deltaIneq) {
-                    outfile << std::setw(25) << "(*)" << std::endl;
-                }
-                else {
-                    outfile << std::endl;
-                }
+    std::ofstream jsonFile;
+    jsonFile.open(_jsonFileName, std::ios::out);
+
+    jsonFile << "{" << std::endl;
+    jsonFile << "  \"MAiNGOversion\" : \"" << print_version() << "\"," << std::endl;
+    jsonFile << "  \"ProblemType\" : \"";
+    switch (_problemStructure) {
+        case LP:
+            jsonFile << "LP\"," << std::endl;
+            break;
+        case QP:
+            jsonFile << "QP\"," << std::endl;
+            break;
+        case MIP:
+            jsonFile << "MIP\"," << std::endl;
+            break;
+        case MIQP:
+            jsonFile << "MIQP\"," << std::endl;
+            break;
+        case NLP:
+            jsonFile << "NLP\"," << std::endl;
+            break;
+        case DNLP:
+            jsonFile << "DNLP\"," << std::endl;
+            break;
+        case MINLP:
+            jsonFile << "MINLP\"," << std::endl;
+            break;
+        default:
+            jsonFile << "MINLP\"," << std::endl;
+            break;
+    }
+    if (!_maingoSettings->PRE_pureMultistart && _problemStructure > MIQP) {
+        jsonFile << "  \"SolutionStatistics\" : {" << std::endl;
+        jsonFile << "    \"NumberOfIterations\" : " << _myBaB->get_iterations() << "," << std::endl;
+        jsonFile << "    \"LBDProblemsSolved\" : " << _myBaB->get_LBP_count() << "," << std::endl;
+        jsonFile << "    \"UBPProblemsSolved\" : " << _myBaB->get_UBP_count() << "," << std::endl;
+        jsonFile << "    \"MaximumNodesInMemory\" : " << _myBaB->get_max_nodes_in_memory() << "," << std::endl;
+        jsonFile << "    \"NumberOfNodesLeft\" : " << _myBaB->get_nodes_left() << std::endl;
+        jsonFile << "  }," << std::endl;
+    }
+    jsonFile << "  \"Timing\" : {" << std::endl;
+    jsonFile << "    \"PreProcessingCPU\" : " << _preprocessTime << "," << std::endl;
+    jsonFile << "    \"BranchAndBoundCPU\" : " << _solutionTime - _preprocessTime << "," << std::endl;
+    jsonFile << "    \"TotalCPU\" : " << _solutionTime << "," << std::endl;
+    jsonFile << "    \"TotalWall\" : " << _solutionTimeWallClock << std::endl;
+    jsonFile << "  }," << std::endl;
+    std::string str = (!_solutionPoint.empty()) ? "true" : "false";
+    jsonFile << "  \"Solution\" : {" << std::endl;
+    jsonFile << "    \"FoundFeasiblePoint\" : " << str << "," << std::endl;
+    jsonFile << "    \"MAiNGOstatus\" : ";
+    switch (_maingoStatus) {
+        case GLOBALLY_OPTIMAL:
+            jsonFile << "\"Globally optimal\"," << std::endl;
+            break;
+        case INFEASIBLE:
+            jsonFile << "\"Infeasible\"," << std::endl;
+            break;
+        case FEASIBLE_POINT:
+            jsonFile << "\"Feasible point\"," << std::endl;
+            break;
+        case NO_FEASIBLE_POINT_FOUND:
+            jsonFile << "\"No feasible point found\"," << std::endl;
+            break;
+        case BOUND_TARGETS:
+            jsonFile << "\"Reached target bound\"," << std::endl;
+            break;
+        case NOT_SOLVED_YET:
+            jsonFile << "\"Not solved yet\"," << std::endl;
+            break;
+        case JUST_A_WORKER_DONT_ASK_ME:
+            jsonFile << "\"Just a worker\"," << std::endl;
+            break;
+        default:
+            jsonFile << "\"Not solved yet\"," << std::endl;
+            break;
+    }
+
+
+    if (!_solutionPoint.empty()) {
+        jsonFile << "    \"BestSolutionValue\" : " << _solutionValue << "," << std::endl;
+        if (!_maingoSettings->PRE_pureMultistart && _problemStructure > MIQP) {
+            jsonFile << "    \"FoundAtNode\" : " << _myBaB->get_first_found() << "," << std::endl;
+            jsonFile << "    \"AbsoluteGap\" : " << _myBaB->get_final_abs_gap() << "," << std::endl;
+            jsonFile << "    \"RelativeGap\" : " << _myBaB->get_final_rel_gap() << "," << std::endl;
+        }
+        jsonFile << "    \"SolutionPoint\" : [" << std::endl;
+        std::vector<double> solutionPoint = get_solution_point();
+        // We write only the used non-constant (output) variables into the csv file
+        for (unsigned i = 0; i < _nvarOriginal; ++i) {
+            jsonFile << "      {" << std::endl;
+            jsonFile << "        \"VariableName\" : \"" << _originalVariables[i].get_name() << "\"," << std::endl;
+            jsonFile << "        \"VariableValue\" : " << solutionPoint[i] << std::endl;
+            if (i + 1 < _nvarOriginal) {
+                jsonFile << "      }," << std::endl;
             }
-            outfile << std::endl;
-        }
-        outfile << "-------------------------------------------------------------------------------------------------------------" << std::endl
-                << std::endl;
-
-        if (_neq > 0 || _nconstantEq > 0) {
-            outfile << std::setw(25) << "equalities" << std::setw(25) << "value" << std::setw(25) << " " << std::setw(25) << "tolerance = " << _maingoSettings.deltaEq << std::endl
-                    << std::endl;
-
-            for (size_t i = 1 + _nineq + _nconstantIneq; i < 1 + _nineq + _nconstantIneq + _neq + _nconstantEq; i++) {
-                std::string eq = _originalConstraints[i].name;
-                outfile << std::setw(25) << eq << std::setw(25) << std::setprecision(16) << modelValuesAtSolutionPoint[i];
-                // These should never be violated but just to make sure we check it here
-                if (modelValuesAtSolutionPoint[i] > _maingoSettings.deltaEq || modelValuesAtSolutionPoint[i] < -_maingoSettings.deltaEq) {
-                    outfile << std::setw(25) << "VIOLATED" << std::endl;
-                }
-                else {
-                    outfile << std::endl;
-                }
-            }
-            outfile << std::endl;
-        }
-
-        if (_nineqRelaxationOnly > 0 || _nconstantIneqRelOnly > 0) {
-            outfile << "-------------------------------------------------------------------------------------------------------------" << std::endl
-                    << std::endl;
-
-            outfile << std::setw(25) << "rel only inequalities" << std::setw(25) << "value" << std::setw(25) << "at bound" << std::setw(25) << "tolerance = " << _maingoSettings.deltaIneq << std::endl
-                    << std::endl;
-
-            for (size_t i = 1 + _nineq + _nconstantIneq + _neq + _nconstantEq; i < 1 + _nineq + _nconstantIneq + _neq + _nconstantEq + _nineqRelaxationOnly + _nconstantIneqRelOnly; i++) {
-                std::string ineq = _originalConstraints[i].name;
-                outfile << std::setw(25) << ineq << std::setw(25) << std::setprecision(16) << modelValuesAtSolutionPoint[i];
-                if (modelValuesAtSolutionPoint[i] > _maingoSettings.deltaIneq) {
-                    outfile << std::setw(25) << "VIOLATED" << std::endl;
-                }
-                else if (modelValuesAtSolutionPoint[i] < _maingoSettings.deltaIneq && modelValuesAtSolutionPoint[i] >= 0.) {
-                    outfile << std::setw(25) << " * " << std::endl;
-                }
-                else if (modelValuesAtSolutionPoint[i] < 0 && modelValuesAtSolutionPoint[i] >= -_maingoSettings.deltaIneq) {
-                    outfile << std::setw(25) << "(*)" << std::endl;
-                }
-                else {
-                    outfile << std::endl;
-                }
+            else {
+                jsonFile << "      }" << std::endl;
             }
-            outfile << std::endl;
         }
-
-        if (_neqRelaxationOnly > 0 || _nconstantEqRelOnly > 0) {
-            outfile << "-------------------------------------------------------------------------------------------------------------" << std::endl
-                    << std::endl;
-
-            outfile << std::setw(25) << "rel only equalities" << std::setw(25) << "value" << std::setw(25) << " " << std::setw(25) << "tolerance = " << _maingoSettings.deltaEq << std::endl
-                    << std::endl;
-
-            for (size_t i = 1 + _nineq + _nconstantIneq + _neq + _nconstantEq + _nineqRelaxationOnly + _nconstantIneqRelOnly; i < 1 + _nineq + _nconstantIneq + _neq + _nconstantEq + _nineqRelaxationOnly + _nconstantIneqRelOnly + _neqRelaxationOnly + _nconstantEqRelOnly; i++) {
-                std::string eq = _originalConstraints[i].name;
-                outfile << std::setw(25) << eq << std::setw(25) << std::setprecision(16) << modelValuesAtSolutionPoint[i];
-                if (modelValuesAtSolutionPoint[i] > _maingoSettings.deltaEq || modelValuesAtSolutionPoint[i] < -_maingoSettings.deltaEq) {
-                    outfile << std::setw(25) << "VIOLATED" << std::endl;
-                }
-                else {
-                    outfile << std::endl;
-                }
+        jsonFile << "    ]," << std::endl;
+        jsonFile << "    \"AdditionalOutput\" : [" << std::endl;
+        std::vector<std::pair<std::string, double>> additionalOutput = evaluate_additional_outputs_at_solution_point();
+        for (unsigned i = 0; i < additionalOutput.size(); ++i) {
+            jsonFile << "      {" << std::endl;
+            jsonFile << "        \"VariableName\" : \"" << additionalOutput[i].first << "\"," << std::endl;
+            jsonFile << "        \"VariableValue\" : " << additionalOutput[i].second << std::endl;
+            if (i + 1 < additionalOutput.size()) {
+                jsonFile << "      }," << std::endl;
             }
-            outfile << std::endl;
-        }
-
-        if (_nineqSquash > 0 || _nconstantIneqSquash > 0) {
-            outfile << "-------------------------------------------------------------------------------------------------------------" << std::endl
-                    << std::endl;
-
-            outfile << std::setw(25) << "squash inequalities" << std::setw(25) << "value" << std::setw(25) << " " << std::setw(25) << "tolerance = " << 0 << std::endl
-                    << std::endl;
-
-            for (size_t i = 1 + _nineq + _nconstantIneq + _neq + _nconstantEq + _nineqRelaxationOnly + _nconstantIneqRelOnly + _neqRelaxationOnly + _nconstantEqRelOnly; i < _originalConstraints.size(); i++) {
-                std::string ineq = _originalConstraints[i].name;
-                outfile << std::setw(25) << ineq << std::setw(25) << std::setprecision(16) << modelValuesAtSolutionPoint[i];
-                if (modelValuesAtSolutionPoint[i] > 0) {
-                    outfile << std::setw(25) << "VIOLATED" << std::endl;
-                }
-                else if (modelValuesAtSolutionPoint[i] < 0 && modelValuesAtSolutionPoint[i] >= -_maingoSettings.deltaIneq) {
-                    outfile << std::setw(25) << "(*)" << std::endl;
-                }
-                else {
-                    outfile << std::endl;
-                }
+            else {
+                jsonFile << "      }" << std::endl;
             }
-            outfile << std::endl;
         }
-
-        outfile.close();
+        jsonFile << "    ]" << std::endl;
     }
+    jsonFile << "  }" << std::endl;
+    jsonFile << "}";
+
+    jsonFile.close();
 }
 
 
 /////////////////////////////////////////////////////////////////////////
-// reads settings from file
+// write files containing the results of the solution of a bi-objective problem solved via the epsilon constraint method
 void
-MAiNGO::read_settings(std::string settingsFile)
+MAiNGO::_write_epsilon_constraint_result(const std::vector<std::vector<double>>& objectiveValues, const std::vector<std::vector<double>>& solutionPoints)
 {
 
-    if (settingsFile.empty()) {
-        // Look for file with default name in same folder as .exe
-        settingsFile = "MAiNGOSettings.txt";
-    }
-
-    std::ifstream file;
-    file.open(settingsFile);
-    if (file.is_open()) {
+    std::ofstream objectiveValuesFile("MAiNGO_epsilon_constraint_objective_values.csv", std::ios::out);
+    objectiveValuesFile << "obj1, obj2" << std::endl;
 
-        std::string line;
-        std::string word;
-        long double number;
-        bool firstLine = true;
-        while (std::getline(file, line)) {    // Read file line by line
-            if (firstLine) {
-                // Check for BOM in UTF 8, BOM is ALWAYS at the beginning of a file -- NOTE: We only correctly handle UTF 8 setting files!
-                if (line.length() >= 3) {
-                    if (line[0] == (char)0XEF && line[1] == (char)0XBB && line[2] == (char)0XBF) {
-                        line.erase(0, 3);
-                    }
-                }
-                firstLine = false;
-            }
-            // If the line is not a comment, proceed (\r is for carriage return)
-            if ((line.find_first_not_of(' ') != std::string::npos) && !line.empty() && line[0] != '#' && line[0] != '\r') {
-                std::istringstream iss(line);    // This allows access to line as real std::string
-                iss >> word;
-                iss >> number;
-                set_option(word, number);
-            }
+    for (size_t i = 0; i < objectiveValues.size(); i++) {
+        objectiveValuesFile << objectiveValues[i][0];
+        for (size_t j = 1; j < objectiveValues[i].size(); j++) {
+            objectiveValuesFile << ", " << objectiveValues[i][j];
         }
-        _logger.save_settings_file_name(settingsFile, true);
-    }
-    else {    // File not found
-        _logger.save_settings_file_name(settingsFile, false);
+        objectiveValuesFile << std::endl;
     }
+    objectiveValuesFile.close();
 
-    file.close();
-}
-
-
-/////////////////////////////////////////////////////////////////////////
-// modifies an option of MAiNGO. Returns true if successful and false if option is unknown.
-// Note that in the former case, when violating a bound imposed on the value for a certain option,
-// the respective bound is chosen as new value instead of the value specified in the function call
-bool
-MAiNGO::set_option(const std::string option, const double value)
-{
-
-    std::ostringstream oss;    // Dummy ostringstream for more accurate output of doubles
-    oss << value;
-    if (option == "epsilonA") {
-        if (value < 1e-9) {
-            _logger.save_setting(EPSILONA, "epsilonA has to be >=1e-9, setting it to 1e-9");
-            _maingoSettings.epsilonA = 1e-9;
-        }
-        else {
-            _maingoSettings.epsilonA = value;
-            _logger.save_setting(EPSILONA, option + " " + oss.str());
-        }
-    }
-    else if (option == "epsilonR") {
-        if (value < 1e-9) {
-            _logger.save_setting(EPSILONR, "epsilonR has to be >=1e-9, setting it to 1e-9");
-            _maingoSettings.epsilonR = 1e-9;
-        }
-        else {
-            _maingoSettings.epsilonR = value;
-            _logger.save_setting(EPSILONR, option + " " + oss.str());
-        }
-    }
-    else if (option == "deltaIneq") {
-        if (value < 1e-9) {
-            _logger.save_setting(DELTAINEQ, "deltaIneq has to be >=1e-9, setting it to 1e-9");
-            _maingoSettings.deltaIneq = 1e-9;
-        }
-        else {
-            _maingoSettings.deltaIneq  = value;
-            _maingoSettings.relNodeTol = std::max(1e-12, std::min(_maingoSettings.relNodeTol, std::min(value * 1e-1, _maingoSettings.deltaEq * 1e-1)));
-            _logger.save_setting(DELTAINEQ, option + " " + oss.str());
-        }
-    }
-    else if (option == "deltaEq") {
-        if (value < 1e-9) {
-            _logger.save_setting(DELTAEQ, "deltaEq has to be >=1e-9, setting it to 1e-9");
-            _maingoSettings.deltaEq = 1e-9;
-        }
-        else {
-            _maingoSettings.deltaEq    = value;
-            _maingoSettings.relNodeTol = std::max(1e-12, std::min(_maingoSettings.relNodeTol, std::min(value * 1e-1, _maingoSettings.deltaIneq * 1e-1)));
-            _logger.save_setting(DELTAEQ, option + " " + oss.str());
-        }
-    }
-    else if (option == "relNodeTol") {
-        if (value < 1e-12) {
-            _logger.save_setting(RELNODETOL, "relNodeTol has to be >=1e-12, setting it to 1e-12");
-            _maingoSettings.relNodeTol = 1e-12;
-        }
-        else {
-            _maingoSettings.relNodeTol = std::max(1e-12, std::min(value, std::min(_maingoSettings.deltaIneq * 1e-1, _maingoSettings.deltaEq * 1e-1)));
-            _logger.save_setting(RELNODETOL, option + " " + oss.str());
-        }
-    }
-    else if (option == "BAB_maxNodes") {
-        if (value < 0 && value != -1) {
-            _logger.save_setting(BAB_MAXNODES, "BAB_maxNodes has to be >=0 or -1 (=inf), setting it to 0");
-            _maingoSettings.BAB_maxNodes = 0;
-        }
-        else {
-            if (value == -1) {
-                _maingoSettings.BAB_maxNodes = std::numeric_limits<unsigned>::max();
-                _logger.save_setting(BAB_MAXNODES, option + " " + oss.str());
-            }
-            else {
-                _maingoSettings.BAB_maxNodes = (int)value;
-                _logger.save_setting(BAB_MAXNODES, option + " " + oss.str());
-            }
-        }
-    }
-    else if (option == "BAB_maxIterations") {
-        if (value < 0 && value != -1) {
-            _logger.save_setting(BAB_MAXITERATIONS, "BAB_maxIterations has to be >=0 or -1 (=inf), setting it to 0");
-            _maingoSettings.BAB_maxIterations = 0;
-        }
-        else {
-            if (value == -1) {
-                _maingoSettings.BAB_maxIterations = std::numeric_limits<unsigned>::max();
-                _logger.save_setting(BAB_MAXITERATIONS, option + " " + oss.str());
-            }
-            else {
-                _maingoSettings.BAB_maxIterations = (int)value;
-                _logger.save_setting(BAB_MAXITERATIONS, option + " " + oss.str());
-            }
-        }
-    }
-    else if (option == "maxTime") {
-        if (value < 10 && value != -1) {
-            _logger.save_setting(MAXTIME, "maxTime has to be >= 10 or -1 (=inf), setting it to 10");
-            _maingoSettings.maxTime = 10;
-        }
-        else {
-            if (value == -1) {
-                _maingoSettings.maxTime = std::numeric_limits<unsigned>::max();
-                _logger.save_setting(MAXTIME, option + " " + oss.str());
-            }
-            else {
-                _maingoSettings.maxTime = (int)value;
-                _logger.save_setting(MAXTIME, option + " " + oss.str());
-            }
-        }
-    }
-    else if (option == "confirmTermination") {
-        if (value != 0 && value != 1) {
-            _logger.save_setting(CONFIRMTERMINATION, "confirmTermination has to be 0 or 1, setting to 0");
-            _maingoSettings.confirmTermination = false;
-        }
-        else {
-            if (value == 0) {
-                _maingoSettings.confirmTermination = false;
-                _logger.save_setting(CONFIRMTERMINATION, option + " 0");
-            }
-            else {
-                _maingoSettings.confirmTermination = true;
-                _logger.save_setting(CONFIRMTERMINATION, option + " 1");
-            }
-        }
-    }
-    else if (option == "terminateOnFeasiblePoint") {
-        if (value != 0 && value != 1) {
-            _logger.save_setting(TERMINATEONFEASIBLEPOINT, "terminateOnFeasiblePoint has to be 0 or 1, setting to 0");
-            _maingoSettings.terminateOnFeasiblePoint = false;
-        }
-        else {
-            if (value == 0) {
-                _maingoSettings.terminateOnFeasiblePoint = false;
-                _logger.save_setting(TERMINATEONFEASIBLEPOINT, option + " 0");
-            }
-            else {
-                _maingoSettings.terminateOnFeasiblePoint = true;
-                _logger.save_setting(TERMINATEONFEASIBLEPOINT, option + " 1");
-            }
-        }
-    }
-    else if (option == "targetLowerBound") {
-        if (value > 1e51) {
-            _logger.save_setting(TARGETLOWERBOUND, "targetLowerBound has to be at most 1e51, setting it to 1e51");
-            _maingoSettings.targetLowerBound = 1e51;
-        }
-        else if (value < -1e51) {
-            _logger.save_setting(TARGETLOWERBOUND, "targetLowerBound has to be at least -1e51, setting it to -1e51");
-            _maingoSettings.targetLowerBound = -1e51;
-        }
-        else {
-            _maingoSettings.targetLowerBound = value;
-            _logger.save_setting(TARGETLOWERBOUND, option + " " + oss.str());
-        }
-    }
-    else if (option == "targetUpperBound") {
-        if (value > 1e51) {
-            _logger.save_setting(TARGETUPPERBOUND, "targetUpperBound has to be at most 1e51, setting it to 1e51");
-            _maingoSettings.targetUpperBound = 1e51;
-        }
-        else if (value < -1e51) {
-            _logger.save_setting(TARGETUPPERBOUND, "targetUpperBound has to be at least -1e51, setting it to -1e51");
-            _maingoSettings.targetUpperBound = -1e51;
-        }
-        else {
-            _maingoSettings.targetUpperBound = value;
-            _logger.save_setting(TARGETUPPERBOUND, option + " " + oss.str());
-        }
-    }
-    else if (option == "PRE_maxLocalSearches") {
-        if (value < 0) {
-            _logger.save_setting(PRE_MAXLOCALSEARCHES, "PRE_maxLocalSearches has to be at least 0, setting it to 0");
-            _maingoSettings.PRE_maxLocalSearches = 0;
-        }
-        else {
-            _maingoSettings.PRE_maxLocalSearches = (int)value;
-            _logger.save_setting(PRE_MAXLOCALSEARCHES, option + " " + oss.str());
-        }
-    }
-    else if (option == "PRE_obbtMaxRounds") {
-        if (value < 0) {
-            _logger.save_setting(PRE_OBBTMAXROUNDS, "PRE_obbtMaxRounds has to be at least 0, setting it to 0");
-            _maingoSettings.PRE_obbtMaxRounds = 0;
-        }
-        else {
-            _maingoSettings.PRE_obbtMaxRounds = (int)value;
-            _logger.save_setting(PRE_OBBTMAXROUNDS, option + " " + oss.str());
-        }
-    }
-    else if (option == "PRE_pureMultistart") {
-        if (value != 0 && value != 1) {
-            _logger.save_setting(PRE_PUREMULTISTART, "PRE_pureMultistart has to be either 1 or 0, setting it to 0");
-            _maingoSettings.PRE_pureMultistart = false;
-        }
-        else {
-            if (value == 0) {
-                _maingoSettings.PRE_pureMultistart = false;
-                _logger.save_setting(PRE_PUREMULTISTART, option + " 0");
-            }
-            else {
-                _maingoSettings.PRE_pureMultistart = true;
-                _logger.save_setting(PRE_PUREMULTISTART, option + " 1");
-            }
-        }
-    }
-    else if (option == "BAB_nodeSelection") {
-        if (value != 0 && value != 1 && value != 2) {
-            _logger.save_setting(BAB_NODESELECTION, "BAB_nodeSelection has to be 0, 1 or 2, setting to 0");
-            _maingoSettings.BAB_nodeSelection = babBase::enums::NS_BESTBOUND;
-        }
-        else {
-            if ((int)value == 0) {
-                _maingoSettings.BAB_nodeSelection = babBase::enums::NS_BESTBOUND;
-            }
-            else if ((int)value == 1) {
-                _maingoSettings.BAB_nodeSelection = babBase::enums::NS_DEPTHFIRST;
-            }
-            else {
-                _maingoSettings.BAB_nodeSelection = babBase::enums::NS_BREADTHFIRST;
-            }
-            _logger.save_setting(BAB_NODESELECTION, option + " " + oss.str());
-        }
-    }
-    else if (option == "BAB_branchVariable") {
-        if (value != 0 && value != 1) {
-            _logger.save_setting(BAB_BRANCHVARIABLE, "BAB_branchVariable has to be 0 or 1, setting to 0");
-            _maingoSettings.BAB_branchVariable = babBase::enums::BV_ABSDIAM;
-        }
-        else {
-            if ((int)value == 0) {
-                _maingoSettings.BAB_branchVariable = babBase::enums::BV_ABSDIAM;
-            }
-            else {
-                _maingoSettings.BAB_branchVariable = babBase::enums::BV_RELDIAM;
-            }
-            _logger.save_setting(BAB_BRANCHVARIABLE, option + " " + oss.str());
-        }
-    }
-    else if (option == "BAB_alwaysSolveObbt") {
-        if (value != 0 && value != 1) {
-            _logger.save_setting(BAB_ALWAYSSOLVEOBBT, "BAB_alwaysSolveObbt has to be 0 or 1, setting to 0");
-            _maingoSettings.BAB_alwaysSolveObbt = false;
-        }
-        else {
-            if (value == 0) {
-                _maingoSettings.BAB_alwaysSolveObbt = false;
-                _logger.save_setting(BAB_ALWAYSSOLVEOBBT, option + " 0");
-            }
-            else {
-                _maingoSettings.BAB_alwaysSolveObbt = true;
-                _logger.save_setting(BAB_ALWAYSSOLVEOBBT, option + " 1");
-            }
-        }
-    }
-    else if (option == "BAB_probing") {
-        if (value < 0) {
-            _logger.save_setting(BAB_PROBING, "BAB_probing has to be 0 or 1, setting to 0");
-            _maingoSettings.BAB_probing = false;
-        }
-        else {
-            if (value == 0) {
-                _maingoSettings.BAB_probing = false;
-                _logger.save_setting(BAB_PROBING, option + " 0");
-            }
-            else {
-                _maingoSettings.BAB_probing = true;
-                _logger.save_setting(BAB_PROBING, option + " 1");
-            }
-        }
-    }
-    else if (option == "BAB_dbbt") {
-        if (value != 0 && value != 1) {
-            _logger.save_setting(BAB_DBBT, "BAB_dbbt has to be 0 or 1, setting to 1");
-            _maingoSettings.BAB_dbbt = true;
-        }
-        else {
-            if (value == 0) {
-                _maingoSettings.BAB_dbbt = false;
-                _logger.save_setting(BAB_DBBT, option + " 0");
-            }
-            else {
-                _maingoSettings.BAB_dbbt = true;
-                _logger.save_setting(BAB_DBBT, option + " 1");
-            }
-        }
-    }
-    else if (option == "BAB_constraintPropagation") {
-        if (value < 0) {
-            _logger.save_setting(BAB_CONSTRAINTPROPAGATION, "BAB_constraintPropagation has to be 0 or 1, setting to 0");
-            _maingoSettings.BAB_constraintPropagation = false;
-        }
-        else {
-            if (value == 0) {
-                _maingoSettings.BAB_constraintPropagation = false;
-                _logger.save_setting(BAB_CONSTRAINTPROPAGATION, option + " 0");
-            }
-            else {
-                _maingoSettings.BAB_constraintPropagation = true;
-                _logger.save_setting(BAB_CONSTRAINTPROPAGATION, option + " 1");
-            }
-        }
-    }
-    else if (option == "LBP_solver") {
-        if (value != 0 && value != 1 && value != 2 && value != 3) {
-            _logger.save_setting(LBP_SOLVER, "LBP_solver has to be in {0,1,2,3}, setting it to 0");
-            _maingoSettings.LBP_solver = lbp::SOLVER_MAiNGO;
-        }
-        else {
-            if ((int)value == 0) {
-                _maingoSettings.LBP_solver = lbp::SOLVER_MAiNGO;
-            }
-            else if ((int)value == 1) {
-                _maingoSettings.LBP_solver = lbp::SOLVER_INTERVAL;
-            }
-            else if ((int)value == 2) {
-#ifdef HAVE_CPLEX
-                _maingoSettings.LBP_solver = lbp::SOLVER_CPLEX;
-#else
-                _logger.save_setting(LBP_SOLVER, "Cannot use LBP_solver 2 (SOLVER_CPLEX) because your MAiNGO build does not contain CPLEX. Setting it to 3 (CLP)");
-                _maingoSettings.LBP_solver = lbp::SOLVER_CLP;
-#endif
-            }
-            else if ((int)value == 3) {
-                _maingoSettings.LBP_solver = lbp::SOLVER_CLP;
-            }
-            _logger.save_setting(LBP_SOLVER, option + " " + oss.str());
-        }
-    }
-    else if (option == "LBP_linPoints") {
-        if (value != 0 && value != 1 && value != 2 && value != 3 && value != 4 && value != 5) {
-            _logger.save_setting(LBP_LINPOINTS, "LBP_linPoints has to be in {0,1,2,3,4,5}, setting to 0");
-            _maingoSettings.LBP_linPoints = lbp::LINP_MID;
-        }
-        else {
-            if ((int)value == 0) {
-                _maingoSettings.LBP_linPoints = lbp::LINP_MID;
-            }
-            else if ((int)value == 1) {
-                _maingoSettings.LBP_linPoints = lbp::LINP_INCUMBENT;
-            }
-            else if ((int)value == 2) {
-                _maingoSettings.LBP_linPoints = lbp::LINP_KELLEY;
-            }
-            else if ((int)value == 3) {
-                _maingoSettings.LBP_linPoints = lbp::LINP_SIMPLEX;
-            }
-            else if ((int)value == 4) {
-                _maingoSettings.LBP_linPoints = lbp::LINP_RANDOM;
-            }
-            else if ((int)value == 5) {
-                _maingoSettings.LBP_linPoints = lbp::LINP_KELLEY_SIMPLEX;
-            }
-            _logger.save_setting(LBP_LINPOINTS, option + " " + oss.str());
-        }
+    std::ofstream pointsFile("MAiNGO_epsilon_constraint_solution_points.csv", std::ios::out);
+    pointsFile << "x0";
+    for (size_t i = 1; i < solutionPoints[0].size(); i++) {
+        pointsFile << ", x" << i;
     }
-    else if (option == "LBP_subgradientIntervals") {
-        if (value != 0 && value != 1) {
-            _logger.save_setting(LBP_SUBGRADIENTINTERVALS, "LBP_subgradientIntervals has to be 0 or 1, setting to 0");
-            _maingoSettings.LBP_subgradientIntervals = false;
+    pointsFile << std::endl;
+    for (size_t i = 0; i < solutionPoints.size(); i++) {
+        pointsFile << solutionPoints[i][0];
+        for (size_t j = 1; j < solutionPoints[i].size(); j++) {
+            pointsFile << ", " << solutionPoints[i][j];
         }
-        else {
-            if (value == 0) {
-                _maingoSettings.LBP_subgradientIntervals = false;
-                _logger.save_setting(LBP_SUBGRADIENTINTERVALS, option + " 0");
-            }
-            else {
-                _maingoSettings.LBP_subgradientIntervals = true;
-                _logger.save_setting(LBP_SUBGRADIENTINTERVALS, option + " 1");
-            }
-        }
-    }
-    else if (option == "LBP_obbtMinImprovement") {
-        if ((value < 0) || (value > 1)) {
-            _logger.save_setting(LBP_OBBTMINIMPROVEMENT, "LBP_obbtMinImprovement has to be between 0 and 1, setting it to 0.5");
-            _maingoSettings.LBP_obbtMinImprovement = 0.5;
-        }
-        else {
-            _maingoSettings.LBP_obbtMinImprovement = value;
-            _logger.save_setting(LBP_OBBTMINIMPROVEMENT, option + " " + oss.str());
-        }
-    }
-    else if (option == "LBP_activateMoreScaling") {
-        if ((value < 100) || (value > 100000)) {
-            _logger.save_setting(LBP_OBBTMINIMPROVEMENT, "LBP_activateMoreScaling has to be between 100 and 100000, setting it to 10000");
-            _maingoSettings.LBP_activateMoreScaling = 10000;
-        }
-        else {
-            _maingoSettings.LBP_activateMoreScaling = value;
-            _logger.save_setting(LBP_ACTIVATEMORESCALING, option + " " + oss.str());
-        }
-    }
-    else if (option == "LBP_addAuxiliaryVars") {
-        if (value != 0 && value != 1) {
-            _logger.save_setting(LBP_ADDAUXILIARYVARS, "LBP_addAuxiliaryVars has to be 0 or 1, setting it to 0");
-            _maingoSettings.LBP_addAuxiliaryVars = false;
-        }
-        else {
-            if (value == 0) {
-                _maingoSettings.LBP_addAuxiliaryVars = false;
-                _logger.save_setting(LBP_ADDAUXILIARYVARS, option + " 0");
-            }
-            else {
-                _maingoSettings.LBP_addAuxiliaryVars = true;
-                _logger.save_setting(LBP_ADDAUXILIARYVARS, option + " 1");
-            }
-        }
-    }
-    else if (option == "LBP_minFactorsForAux") {
-        if (value < 2) {
-            _logger.save_setting(LBP_MINFACTORSFORAUX, "LBP_minFactorsForAux has to be at least 2, setting it to 2");
-            _maingoSettings.LBP_minFactorsForAux = 2;
-        }
-        else {
-            _maingoSettings.LBP_minFactorsForAux = value;
-            _logger.save_setting(LBP_MINFACTORSFORAUX, option + " " + oss.str());
-        }
-    }
-    else if (option == "LBP_maxNumberOfAddedFactors") {
-        if (value < 1) {
-            _logger.save_setting(LBP_MAXNUMBEROFADDEDFACTORS, "LBP_maxNumberOfAddedFactors has to be at least 1, setting it to 1");
-            _maingoSettings.LBP_maxNumberOfAddedFactors = 1;
-        }
-        else {
-            _maingoSettings.LBP_maxNumberOfAddedFactors = value;
-            _logger.save_setting(LBP_MAXNUMBEROFADDEDFACTORS, option + " " + oss.str());
-        }
-    }
-    else if (option == "MC_mvcompUse") {
-        if (value != 0 && value != 1) {
-            _logger.save_setting(MC_MVCOMPUSE, "MC_mvcompUse has to be 0 or 1, setting to 1");
-            _maingoSettings.MC_mvcompUse = true;
-        }
-        else {
-            if (value == 0) {
-                _maingoSettings.MC_mvcompUse = false;
-                _logger.save_setting(MC_MVCOMPUSE, option + " 0");
-            }
-            else {
-                _maingoSettings.MC_mvcompUse = true;
-                _logger.save_setting(MC_MVCOMPUSE, option + " 1");
-            }
-        }
-    }
-    else if (option == "MC_mvcompTol") {
-        if (value < 1e-12 || value > 1e-9) {
-            _logger.save_setting(MC_MVCOMPTOL, "MC_mvcompTol has to be in [1e-9,1e-12], setting it to 1e-12");
-            _maingoSettings.MC_mvcompTol = 1e-12;
-        }
-        else {
-            _maingoSettings.MC_mvcompTol = value;
-            _logger.save_setting(MC_MVCOMPTOL, option + " " + oss.str());
-        }
-    }
-    else if (option == "MC_envelTol") {
-        if (value < 1e-12) {
-            _logger.save_setting(MC_ENVELTOL, "MC_envelTol has to be in [1e-9,1e-12], setting it to 1e-12");
-            _maingoSettings.MC_envelTol = 1e-12;
-        }
-        else {
-            _maingoSettings.MC_envelTol = value;
-            _logger.save_setting(MC_ENVELTOL, option + " " + oss.str());
-        }
-    }
-    else if (option == "UBP_solverPreprocessing") {
-        if (!((int)value >= 0 && (int)value <= 6)) {
-            _logger.save_setting(UBP_SOLVERPRE, "UBP_solverPreprocessing has to be 0, 1, 2, 3, 4, 5, 6, setting to 5");
-            _maingoSettings.UBP_solverPreprocessing = ubp::SOLVER_IPOPT;
-        }
-        else {
-            if ((int)value == 0) {
-                _maingoSettings.UBP_solverPreprocessing = ubp::SOLVER_EVAL;
-            }
-            else if ((int)value == 1) {
-                _maingoSettings.UBP_solverPreprocessing = ubp::SOLVER_COBYLA;
-            }
-            else if ((int)value == 2) {
-                _maingoSettings.UBP_solverPreprocessing = ubp::SOLVER_BOBYQA;
-            }
-            else if ((int)value == 3) {
-                _maingoSettings.UBP_solverPreprocessing = ubp::SOLVER_LBFGS;
-            }
-            else if ((int)value == 4) {
-                _maingoSettings.UBP_solverPreprocessing = ubp::SOLVER_SLSQP;
-            }
-            else if ((int)value == 5) {
-                _maingoSettings.UBP_solverPreprocessing = ubp::SOLVER_IPOPT;
-            }
-            else if ((int)value == 6) {
-#ifdef HAVE_KNITRO
-                _maingoSettings.UBP_solverPreprocessing = ubp::SOLVER_KNITRO;
-#else
-                _logger.save_setting(UBP_SOLVERPRE, "Cannot use UBP_solverPreprocessing 6 (SOLVER_KNITRO) because your MAiNGO build does not contain KNITRO. Setting it to 5");
-                _maingoSettings.UBP_solverPreprocessing = ubp::SOLVER_IPOPT;
-#endif
-            }
-            _logger.save_setting(UBP_SOLVERPRE, option + " " + std::to_string(_maingoSettings.UBP_solverPreprocessing));
-        }
-    }
-    else if (option == "UBP_maxStepsPreprocessing") {
-        if (value < 1) {
-            _logger.save_setting(UBP_MAXSTEPSPRE, "UBP_maxStepsPreprocessing has to be at least 1, setting to 1");
-            _maingoSettings.UBP_maxStepsPreprocessing = 1;
-        }
-        else {
-            _maingoSettings.UBP_maxStepsPreprocessing = (int)value;
-            _logger.save_setting(UBP_MAXSTEPSPRE, option + " " + oss.str());
-        }
-    }
-    else if (option == "UBP_maxTimePreprocessing") {
-        if (value < 0.1) {
-            _logger.save_setting(UBP_MAXTIMEPRE, "UBP_maxTimePreprocessing has to be at least 0.1, setting to 0.1");
-            _maingoSettings.UBP_maxTimePreprocessing = 0.1;
-        }
-        else {
-            _maingoSettings.UBP_maxTimePreprocessing = value;
-            _logger.save_setting(UBP_MAXTIMEPRE, option + " " + oss.str());
-        }
-    }
-    else if (option == "UBP_solverBab") {
-        if (!((int)value >= 0 && (int)value <= 6)) {
-            _logger.save_setting(UBP_SOLVERBAB, "UBP_solverBab has to be 0, 1, 2, 3, 4, 5, 6, setting to 4");
-            _maingoSettings.UBP_solverBab = ubp::SOLVER_SLSQP;
-        }
-        else {
-            if ((int)value == 0) {
-                _maingoSettings.UBP_solverBab = ubp::SOLVER_EVAL;
-            }
-            else if ((int)value == 1) {
-                _maingoSettings.UBP_solverBab = ubp::SOLVER_COBYLA;
-            }
-            else if ((int)value == 2) {
-                _maingoSettings.UBP_solverBab = ubp::SOLVER_BOBYQA;
-            }
-            else if ((int)value == 3) {
-                _maingoSettings.UBP_solverBab = ubp::SOLVER_LBFGS;
-            }
-            else if ((int)value == 4) {
-                _maingoSettings.UBP_solverBab = ubp::SOLVER_SLSQP;
-            }
-            else if ((int)value == 5) {
-                _maingoSettings.UBP_solverBab = ubp::SOLVER_IPOPT;
-            }
-            else if ((int)value == 6) {
-#ifdef HAVE_KNITRO
-                _maingoSettings.UBP_solverBab = ubp::SOLVER_KNITRO;
-#else
-                _logger.save_setting(UBP_SOLVERBAB, "Cannot use UBP_solverBab 6 (SOLVER_KNITRO) because your MAiNGO build does not contain KNITRO. Setting it to 4");
-                _maingoSettings.UBP_solverBab = ubp::SOLVER_SLSQP;
-#endif
-            }
-            _logger.save_setting(UBP_SOLVERBAB, option + " " + std::to_string(_maingoSettings.UBP_solverBab));
-        }
-    }
-    else if (option == "UBP_maxStepsBab") {
-        if (value < 1) {
-            _logger.save_setting(UBP_MAXSTEPSBAB, "UBP_maxStepsBab has to be at least 1, setting to 1");
-            _maingoSettings.UBP_maxStepsBab = 1;
-        }
-        else {
-            _maingoSettings.UBP_maxStepsBab = (int)value;
-            _logger.save_setting(UBP_MAXSTEPSBAB, option + " " + oss.str());
-        }
-    }
-    else if (option == "UBP_maxTimeBab") {
-        if (value < 0.1) {
-            _logger.save_setting(UBP_MAXTIMEBAB, "UBP_maxTimeBab has to be at least 0.1, setting to 0.1");
-            _maingoSettings.UBP_maxTimeBab = 0.1;
-        }
-        else {
-            _maingoSettings.UBP_maxTimeBab = value;
-            _logger.save_setting(UBP_MAXTIMEBAB, option + " " + oss.str());
-        }
-    }
-    else if (option == "UBP_ignoreNodeBounds") {
-        if (value != 0 && value != 1) {
-            _logger.save_setting(UBP_IGNORENODEBOUNDS, "UBP_ignoreNodeBounds has to be 0 or 1, setting it to 0");
-            _maingoSettings.UBP_ignoreNodeBounds = false;
-        }
-        else {
-            if (value == 0) {
-                _maingoSettings.UBP_ignoreNodeBounds = false;
-                _logger.save_setting(UBP_IGNORENODEBOUNDS, option + " 0");
-            }
-            else {
-                _maingoSettings.UBP_ignoreNodeBounds = true;
-                _logger.save_setting(UBP_IGNORENODEBOUNDS, option + " 1");
-            }
-        }
-    }
-    else if (option == "EC_nPoints") {
-        if (value < 2) {
-            _logger.save_setting(EC_NPOINTS, "EC_nPoints has to at least 2, settings it to 2");
-            _maingoSettings.EC_nPoints = 2;
-        }
-        else {
-            _maingoSettings.EC_nPoints = (unsigned)value;
-            _logger.save_setting(EC_NPOINTS, option + " " + oss.str());
-        }
-    }
-    else if (option == "LBP_verbosity") {
-        if (value != 0 && value != 1 && value != 2) {
-            _logger.save_setting(LBP_VERBOSITY, "LBP_verbosity has to be 0, 1 or 2, setting to 1");
-            _maingoSettings.LBP_verbosity = VERB_NORMAL;
-        }
-        else {
-            if ((int)value == 0) {
-                _maingoSettings.LBP_verbosity = VERB_NONE;
-            }
-            else if ((int)value == 1) {
-                _maingoSettings.LBP_verbosity = VERB_NORMAL;
-            }
-            else {
-                _maingoSettings.LBP_verbosity = VERB_ALL;
-            }
-            _logger.save_setting(LBP_VERBOSITY, option + " " + oss.str());
-        }
-    }
-    else if (option == "UBP_verbosity") {
-        if (value != 0 && value != 1 && value != 2) {
-            _logger.save_setting(UBP_VERBOSITY, "UBP_verbosity has to be 0, 1 or 2, setting to 1");
-            _maingoSettings.UBP_verbosity = VERB_NORMAL;
-        }
-        else {
-            if ((int)value == 0) {
-                _maingoSettings.UBP_verbosity = VERB_NONE;
-            }
-            else if ((int)value == 1) {
-                _maingoSettings.UBP_verbosity = VERB_NORMAL;
-            }
-            else {
-                _maingoSettings.UBP_verbosity = VERB_ALL;
-            }
-            _logger.save_setting(UBP_VERBOSITY, option + " " + oss.str());
-        }
-    }
-    else if (option == "BAB_verbosity") {
-        if (value != 0 && value != 1 && value != 2) {
-            _logger.save_setting(BAB_VERBOSITY, "BAB_verbosity has to be 0, 1 or 2, setting to 1");
-            _maingoSettings.BAB_verbosity = VERB_NORMAL;
-        }
-        else {
-            if ((int)value == 0) {
-                _maingoSettings.BAB_verbosity = VERB_NONE;
-            }
-            else if ((int)value == 1) {
-                _maingoSettings.BAB_verbosity = VERB_NORMAL;
-            }
-            else {
-                _maingoSettings.BAB_verbosity = VERB_ALL;
-            }
-            _logger.save_setting(BAB_VERBOSITY, option + " " + oss.str());
-        }
-    }
-    else if (option == "BAB_printFreq") {
-        if (value < 1) {
-            _logger.save_setting(BAB_PRINTFREQ, "BAB_printFreq has to be at least 1, setting to 1");
-            _maingoSettings.BAB_printFreq = 1;
-        }
-        else {
-            _maingoSettings.BAB_printFreq = (int)value;
-            _logger.save_setting(BAB_PRINTFREQ, option + " " + oss.str());
-        }
-    }
-    else if (option == "BAB_logFreq") {
-        if (value < 1) {
-            _logger.save_setting(BAB_LOGFREQ, "BAB_logFreq has to be at least 1, setting to 1");
-            _maingoSettings.BAB_logFreq = 1;
-        }
-        else {
-            _maingoSettings.BAB_logFreq = (int)value;
-            _logger.save_setting(BAB_LOGFREQ, option + " " + oss.str());
-        }
-    }
-    else if (option == "outstreamVerbosity") {
-        if (value != 0 && value != 1 && value != 2 && value != 3) {
-            _logger.save_setting(OUTSTREAMVERBOSITY, "outstreamVerbosity has to be 0, 1, 2 or 3, setting to 3");
-            _maingoSettings.outstreamVerbosity = OUTSTREAM_BOTH;
-        }
-        else {
-            if ((int)value == 0) {
-                _maingoSettings.outstreamVerbosity = OUTSTREAM_NONE;
-            }
-            else if ((int)value == 1) {
-                _maingoSettings.outstreamVerbosity = OUTSTREAM_OUTSTREAM;
-            }
-            else if ((int)value == 2) {
-                _maingoSettings.outstreamVerbosity = OUTSTREAM_LOG;
-            }
-            else {
-                _maingoSettings.outstreamVerbosity = OUTSTREAM_BOTH;
-            }
-            _logger.save_setting(OUTSTREAMVERBOSITY, option + " " + oss.str());
-        }
-    }
-    else if (option == "writeLog") {
-        if (value != 0 && value != 1) {
-            _logger.save_setting(WRITELOG, "writeLog has to be 0 or 1, setting to 0");
-            _maingoSettings.writeLog = false;
-        }
-        else {
-            if (value == 0) {
-                _maingoSettings.writeLog = false;
-                _logger.save_setting(WRITELOG, option + " 0");
-            }
-            else {
-                _maingoSettings.writeLog = true;
-                _logger.save_setting(WRITELOG, option + " 1");
-            }
-        }
-    }
-    else if (option == "writeCsv") {
-        if (value != 0 && value != 1) {
-            _logger.save_setting(WRITECSV, "writeCsv has to be 0 or 1, setting to 0");
-            _maingoSettings.writeCsv = false;
-        }
-        else {
-            if (value == 0) {
-                _maingoSettings.writeCsv = false;
-                _logger.save_setting(WRITECSV, option + " 0");
-            }
-            else {
-                _maingoSettings.writeCsv = true;
-                _logger.save_setting(WRITECSV, option + " 1");
-            }
-        }
-    }
-    else if (option == "writeJson") {
-        if (value != 0 && value != 1) {
-            _logger.save_setting(WRITEJSON, "writeJson has to be 0 or 1, setting to 0");
-            _maingoSettings.writeJson = false;
-        }
-        else {
-            if (value == 0) {
-                _maingoSettings.writeJson = false;
-                _logger.save_setting(WRITEJSON, option + " 0");
-            }
-            else {
-                _maingoSettings.writeJson = true;
-                _logger.save_setting(WRITEJSON, option + " 1");
-            }
-        }
-    }
-    else if (option == "writeResFile") {
-        if (value != 0 && value != 1) {
-            _logger.save_setting(WRITERESFILE, "writeResFile has to be 0 or 1, setting to 0");
-            _maingoSettings.writeResFile = false;
-        }
-        else {
-            if (value == 0) {
-                _maingoSettings.writeResFile = false;
-                _logger.save_setting(WRITERESFILE, option + " 0");
-            }
-            else {
-                _maingoSettings.writeResFile = true;
-                _logger.save_setting(WRITERESFILE, option + " 1");
-            }
-        }
-    }
-    else if (option == "writeToLogSec") {
-        if (value != -1 && value < 10.) {
-            _logger.save_setting(WRITETOLOGSEC, "writeToLogSec has to be at least 10, setting it to default (1800)");
-            _maingoSettings.writeToLogSec = 1800;
-        }
-        else {
-            _maingoSettings.writeToLogSec = (int)value;
-            _logger.save_setting(WRITETOLOGSEC, option + " " + oss.str());
-        }
-    }
-    else if (option == "PRE_printEveryLocalSearch") {
-        if (value != 0 && value != 1) {
-            _logger.save_setting(PRE_PRINTEVERYLOCALSEARCH, "PRE_printEveryLocalSearch has to be 0 or 1, setting to 0");
-            _maingoSettings.PRE_printEveryLocalSearch = false;
-        }
-        else {
-            if (value == 0) {
-                _maingoSettings.PRE_printEveryLocalSearch = false;
-                _logger.save_setting(PRE_PRINTEVERYLOCALSEARCH, option + " 0");
-            }
-            else {
-                _maingoSettings.PRE_printEveryLocalSearch = true;
-                _logger.save_setting(PRE_PRINTEVERYLOCALSEARCH, option + " 1");
-            }
-        }
-    }
-    else if (option == "writeToOtherLanguage") {
-        if (value != 0 && value != 1 && value != 2) {
-            _logger.save_setting(UBP_VERBOSITY, "writeToOtherLanguage has to be 0, 1, 2, setting to 1");
-            _maingoSettings.writeToOtherLanguage = GAMS;
-        }
-        else {
-            if ((int)value == 0) {
-                _maingoSettings.writeToOtherLanguage = LANG_NONE;
-            }
-            else if ((int)value == 1) {
-                _maingoSettings.writeToOtherLanguage = GAMS;
-            }
-            else if ((int)value == 2) {
-                _maingoSettings.writeToOtherLanguage = ALE;
-            }
-            _logger.save_setting(WRITETOOTHERLANGUAGE, option + " " + oss.str());
-        }
-    }
-    else {
-        _logger.save_setting(UNKNOWN_SETTING, "Could not find setting " + option + ". Proceeding.");
-        return false;
+        pointsFile << std::endl;
     }
-
-    return true;
+    pointsFile.close();
 }
\ No newline at end of file
diff --git a/src/aleModel.cpp b/src/aleModel.cpp
index 8495cf35d4ad5de9a611e35bd222bbed8394508d..7221f5929951235c5a66e51b1194a03ee43db9bd 100644
--- a/src/aleModel.cpp
+++ b/src/aleModel.cpp
@@ -7,10 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file aleModel.cpp
- *
- * @brief File containing implementation of member functions of the AleModel class.
- *
  **********************************************************************************/
 
 #include "aleModel.h"
@@ -60,7 +56,10 @@ AleModel::evaluate(const std::vector<Var>& optVars)
     EvaluationContainer result;
 
     MaingoEvaluator eval(_symbols, optVars, _positions);
-    result.objective.push_back(eval.dispatch(_prog.mObjective), _prog.mObjective.m_note);
+    for (auto it = _prog.mObjective.begin(); it != _prog.mObjective.end(); ++it) {
+        auto obj = eval.dispatch(*it);
+        result.objective.push_back(obj, it->m_note);
+    }
 
     for (auto it = _prog.mConstraints.begin(); it != _prog.mConstraints.end(); ++it) {
         auto cons = eval.dispatch(*it);
@@ -77,7 +76,7 @@ AleModel::evaluate(const std::vector<Var>& optVars)
     for (auto it = _prog.mSquashes.begin(); it != _prog.mSquashes.end(); ++it) {
         auto cons = eval.dispatch(*it);
         if (cons.eq.size() > 0) {
-            throw MAiNGOException("  Encountered equality squash constraint");
+            throw MAiNGOException("  Error: AleModel -- Encountered squash equality constraint. These are not allowed.");
         }
         result.ineqSquash.push_back(cons.ineq, it->m_note);
     }
diff --git a/src/bab.cpp b/src/bab.cpp
index b7d3974496cd9565d636759e254741aea214bf1c..b9f6da626e477d3b028da9695a10cc40b89b5096 100644
--- a/src/bab.cpp
+++ b/src/bab.cpp
@@ -7,16 +7,10 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file bab.cpp
- *
- * @brief File implementing the BranchAndBound solver class which manages the
- *        tree and the respective sub-solvers.
- *
  **********************************************************************************/
 
-
 #include "bab.h"
-#include "exceptions.h"
+#include "MAiNGOException.h"
 #include "getTime.h"
 #include "lbp.h"
 #include "mpiUtilities.h"
@@ -32,7 +26,7 @@ using namespace bab;
 ////////////////////////////////////////////////////////////////////////////////////////
 // constructor for the branch and bound object
 BranchAndBound::BranchAndBound(const std::vector<babBase::OptimizationVariable> &variables, std::shared_ptr<lbp::LowerBoundingSolver> LBSIn, std::shared_ptr<ubp::UpperBoundingSolver> UBSIn,
-                               Settings *settingsIn, Logger *loggerIn, const unsigned nvarWOauxIn):
+                               std::shared_ptr<Settings> settingsIn, std::shared_ptr<Logger> loggerIn, const unsigned nvarWOauxIn):
     _originalVariables(variables),
     _LBS(LBSIn), _UBS(UBSIn), _nvar(variables.size()), _maingoSettings(settingsIn), _logger(loggerIn), _nvarWOaux(nvarWOauxIn)
 {
@@ -159,7 +153,7 @@ BranchAndBound::solve(babBase::BabNode &rootNodeIn, double &solutionValue, std::
             // 1-10: Main Branch-and-Bound loop
             // ---------------------------------------------------------------------------------
             MAiNGO_IF_BAB_MANAGER
-                _logger->print_message("\n  Entering branch-and-bound loop:\n", _maingoSettings->writeLog, _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                _logger->print_message("\n  Entering branch-and-bound loop:\n", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
             MAiNGO_END_IF
 
             // Check termination criteria: when terminating regularly, no nodes should be left; otherwise, termination occurs when hitting CPU time or node limit
@@ -201,7 +195,7 @@ BranchAndBound::solve(babBase::BabNode &rootNodeIn, double &solutionValue, std::
                         // -----------------------------------
                         MPI_Recv(NULL, 0, MPI_INT, status.MPI_SOURCE, status.MPI_TAG, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
                         std::string str = "  Worker ran into exception!";
-                        throw MAiNGOMpiException(str, MAiNGOMpiException::MPI_OTHER);
+                        throw MAiNGOMpiException(str, MAiNGOMpiException::ORIGIN_OTHER);
                     }
                     else if (status.MPI_TAG == TAG_FOUND_INCUMBENT) {
                         // -----------------------------------
@@ -316,10 +310,11 @@ BranchAndBound::solve(babBase::BabNode &rootNodeIn, double &solutionValue, std::
                     // Send communication request to manager
                     MPI_Issend(NULL, 0, MPI_INT, 0, nodeStatus, MPI_COMM_WORLD, &solutionRequest);
                     _sync_with_master(solutionRequest, terminate);
-                    if (terminate)
+                    if (terminate) {
                         break;
-
+                    }
                     _send_solved_problem(currentNode, currentLBD, lbpSolutionPoint, nAddedLBSolves, nAddedUBSolves, nodeStatus);
+
                 MAiNGO_END_IF    // End of MAiNGO_IF_BAB_WORKER
 #endif
 
@@ -426,16 +421,13 @@ BranchAndBound::solve(babBase::BabNode &rootNodeIn, double &solutionValue, std::
                         std::ostringstream outstr;
                         outstr << "    Days spent: " << _daysPassed << std::endl
                                << std::endl;
-                        _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                        _logger->print_message(outstr.str(), _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                     MAiNGO_END_IF
                 }
                 _timePassed = _timePreprocess + _daysPassed * 86400 + (currentTime - startTime);
                 lastTime    = currentTime - startTime;
                 MAiNGO_IF_BAB_MANAGER
                     // Print output
-                    if (_maingoSettings->BAB_verbosity > VERB_NORMAL) {
-                        _print_one_node(currentNode.get_pruning_score(), currentNode);
-                    }
                     _display_and_log_progress(currentLBD, currentNode);
 
                     // -----------------------------------
@@ -509,36 +501,30 @@ BranchAndBound::solve(babBase::BabNode &rootNodeIn, double &solutionValue, std::
         // --------------------- End: Prepare output -------------------------------
     }
 #ifdef HAVE_MAiNGO_MPI
-    catch (MAiNGOMpiException &e) {
-        _handle_exception(e);
-    }
-    catch (MAiNGOException &e) {
-        MAiNGOMpiException e_mpi(e, MAiNGOMpiException::MPI_ME);
-        _handle_exception(e_mpi);
-    }
-#else
-catch (MAiNGOException &e)
-{
-    throw e;
-}
-#endif
     catch (std::exception &e) {
-        throw e;
+        MAiNGOMpiException e_mpi("  Error during branch-and-bound.", e, MAiNGOMpiException::ORIGIN_ME);
+        _communicate_exception_and_throw(e_mpi);
     }
     catch (...) {
-#ifdef HAVE_MAiNGO_MPI
         std::string str;
         MAiNGO_IF_BAB_MANAGER
-            str = "  Unknown error in BranchAndBound (Manager).\n";
+            str = "  Unknown error during branch-and-bound (Manager).";
             MAiNGO_ELSE
-                str = "  Unknown error in BranchAndBound (Worker).\n";
+                str = "  Unknown error during branch-and-bound (Worker).";
             MAiNGO_END_IF
-            MAiNGOMpiException e(str, MAiNGOMpiException::MPI_ME);
-            _handle_exception(e);
+            MAiNGOMpiException e(str, MAiNGOMpiException::ORIGIN_ME);
+            _communicate_exception_and_throw(e);
+    }
 #else
-    throw MAiNGOException("  Unknown error in BranchAndBound.\n");
+catch (std::exception &e)
+{
+    throw MAiNGOException("  Error during branch-and-bound.", e);
+}
+catch (...)
+{
+    throw MAiNGOException("  Unknown error during branch-and-bound.");
+}
 #endif
-    }
     return _status;    // Return code is determined in _check_termination()
 }
 
@@ -685,7 +671,7 @@ BranchAndBound::_solve_LBP(const babBase::BabNode &currentNode)
         if (_maingoSettings->BAB_verbosity > VERB_NORMAL) {
             std::ostringstream outstr;
             outstr << "  LBD obtained for node " << currentNode.get_ID() << " is lower than LBD of its parent node. Using parent LBD." << std::endl;
-            _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+            _logger->print_message(outstr.str(), _maingoSettings->BAB_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
         }
         currentLBD = parentLBD;
     }
@@ -701,7 +687,7 @@ BranchAndBound::_solve_LBP(const babBase::BabNode &currentNode)
         if (_maingoSettings->BAB_verbosity > VERB_NORMAL) {
             std::ostringstream outstr;
             outstr << "  Node #" << currentNode.get_ID() << " converged with LBD " << currentLBD << " to UBD " << _ubd << std::endl;
-            _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+            _logger->print_message(outstr.str(), _maingoSettings->BAB_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
         }
 
         nodeConverged = true;
@@ -730,14 +716,14 @@ BranchAndBound::_solve_UBP(const babBase::BabNode &currentNode, std::vector<doub
             if (ubpObjectiveValue > -_maingoSettings->infinity) {
                 std::ostringstream errmsg;
                 errmsg << std::endl
-                       << "  Error in bab - Upper bounding - Branch-and-Bound: Upper bound < lower bound for the following node: " << std::endl;
+                       << "  Error while checking objective returned by upper bounding solver: Upper bound < lower bound for the following node: " << std::endl;
                 _print_one_node(currentNode.get_pruning_score(), currentNode, errmsg);
                 errmsg << "  LBD = " << std::setprecision(16) << currentLBD << std::endl
                        << "UBD = " << ubpObjectiveValue << std::endl;
 #ifdef HAVE_MAiNGO_MPI
-                throw(MAiNGOMpiException(errmsg.str(), currentNode, MAiNGOMpiException::MPI_ME));
+                throw MAiNGOMpiException(errmsg.str(), currentNode, MAiNGOMpiException::ORIGIN_ME);
 #else
-                throw(MAiNGOException(errmsg.str()));
+                throw MAiNGOException(errmsg.str());
 #endif
             }
             else {
@@ -745,7 +731,7 @@ BranchAndBound::_solve_UBP(const babBase::BabNode &currentNode, std::vector<doub
                 std::ostringstream outstr;
                 outstr << "  Warning: UBD found in node " << currentNode.get_ID() << " is lower than the MAiNGO infinity value " << -_maingoSettings->infinity << ".\n";
                 outstr << "           Please consider scaling your objective function.\n";
-                _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                _logger->print_message(outstr.str(), _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
             }
         }
 
@@ -761,7 +747,7 @@ BranchAndBound::_solve_UBP(const babBase::BabNode &currentNode, std::vector<doub
             if (_maingoSettings->BAB_verbosity > VERB_NORMAL) {
                 std::ostringstream outstr;
                 outstr << "  Node #" << currentNode.get_ID() << " converged with LBD " << currentLBD << " to UBD " << _ubd << std::endl;
-                _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+                _logger->print_message(outstr.str(), _maingoSettings->BAB_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
             }
             nodeConverged = true;
         }
@@ -783,6 +769,9 @@ BranchAndBound::_postprocess_node(babBase::BabNode &currentNode, const std::vect
     }
     else {
         TIGHTENING_RETCODE status = _LBS->do_dbbt_and_probing(currentNode, lbpSolutionPoint, dualInfo, _ubd);
+        if (_maingoSettings->BAB_verbosity > VERB_NORMAL) {
+            _print_one_node(currentNode.get_pruning_score(), currentNode);
+        }
         switch (status) {
             case TIGHTENING_INFEASIBLE:
                 nodeProvenInfeasible = true;
@@ -835,6 +824,7 @@ BranchAndBound::_update_incumbent_and_fathom(const double solval, const std::vec
         _bestLbdFathomed           = std::min(smallestFathomedLBD, _bestLbdFathomed);
         _nNodesFathomed += nodesBefore - _brancher->get_nodes_in_tree();
         _nNodesDeleted += nodesBefore - _brancher->get_nodes_in_tree();
+        _nNodesLeft = _brancher->get_nodes_in_tree();
     }
 }
 
@@ -894,7 +884,7 @@ BranchAndBound::_check_if_more_scaling_needed()
 #endif
             if (_maingoSettings->LBP_solver > 1) {    // LBP_solver = 0 is MAiNGO default, LBP_solver = 1 is interval-based
                 VERB verbosityGiven = std::max(_maingoSettings->BAB_verbosity, _maingoSettings->LBP_verbosity);
-                _logger->print_message("  Warning: Additional scaling in the lower bounding solver activated.\n", _maingoSettings->writeLog, verbosityGiven, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                _logger->print_message("  Warning: Additional scaling in the lower bounding solver activated.\n", verbosityGiven, VERB_NORMAL, _maingoSettings->loggingDestination);
             }
         }
     }
@@ -917,7 +907,7 @@ BranchAndBound::_display_and_log_progress(const double currentNodeLBD, const bab
     bool maxIterationsReached = (_iterations >= _maingoSettings->BAB_maxIterations && _workCount == 0);
     bool specialOccasion      = _printNewIncumbent || solved || maxNodesReached || maxTimeReached || maxIterationsReached || _iterations == 1;
     bool printToStream        = specialOccasion || (!((int)fmod((double)_iterations, (double)_maingoSettings->BAB_printFreq)));
-    bool printToLog           = (!((int)fmod((double)_iterations, (double)_maingoSettings->BAB_logFreq)));
+    bool printToLog           = specialOccasion || (!((int)fmod((double)_iterations, (double)_maingoSettings->BAB_logFreq)));
 
     std::ostringstream strout;
     std::ostringstream stroutCsv;
@@ -997,29 +987,27 @@ BranchAndBound::_display_and_log_progress(const double currentNodeLBD, const bab
         _linesprinted++;
         if (printToStream) {
             // This is done instead of print_message, since the logging freq and print freq may differ
-            _logger->print_message_to_stream_only(strout.str(), _maingoSettings->outstreamVerbosity);
+            _logger->print_message_to_stream_only(strout.str(), _maingoSettings->loggingDestination);
         }
     }
 
     // Save information if we want a log or csv file
-    if (_maingoSettings->writeLog || _maingoSettings->writeCsv) {
-        if ((specialOccasion) || printToLog) {
-            if (_maingoSettings->writeLog) {
-                _logger->babLine.push(strout.str());
-            }
-            if (_maingoSettings->writeCsv) {
-                _logger->babLineCsv.push(stroutCsv.str());
-            }
+    if (specialOccasion || printToLog) {
+        if ((_maingoSettings->loggingDestination == LOGGING_FILE) || (_maingoSettings->loggingDestination == LOGGING_FILE_AND_STREAM)) {
+            _logger->babLine.push(strout.str());
         }
-        if ((_maingoSettings->writeToLogSec > 0) && (((double)_timePassed) / ((double)_maingoSettings->writeToLogSec) > _writeToLogEverySec)) {
-            if (_maingoSettings->writeLog && _maingoSettings->outstreamVerbosity >= OUTSTREAM_LOG) {
-                _logger->write_all_lines_to_log();
-            }
-            if (_maingoSettings->writeCsv && _maingoSettings->outstreamVerbosity >= OUTSTREAM_LOG) {
-                _logger->write_all_iterations_to_csv();
-            }
-            _writeToLogEverySec++;
+        if (_maingoSettings->writeCsv) {
+            _logger->babLineCsv.push(stroutCsv.str());
+        }
+    }
+    if ((_maingoSettings->writeToLogSec > 0) && (((double)_timePassed) / ((double)_maingoSettings->writeToLogSec) > _writeToLogEverySec)) {
+        if ((_maingoSettings->loggingDestination == LOGGING_FILE) || (_maingoSettings->loggingDestination == LOGGING_FILE_AND_STREAM)) {
+            _logger->write_all_lines_to_log();
         }
+        if (_maingoSettings->writeCsv) {
+            _logger->write_all_iterations_to_csv();
+        }
+        _writeToLogEverySec++;
     }
     _printNewIncumbent = false;
 }
@@ -1035,7 +1023,7 @@ BranchAndBound::_print_one_node(const double theLBD, const int ID, const std::ve
     for (unsigned int i = 0; i < _nvar; i++) {
         outstr << "  " << std::setprecision(16) << "var " << i + 1 << " " << lowerVarBounds[i] << "..." << upperVarBounds[i] << std::endl;
     }
-    _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->BAB_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+    _logger->print_message(outstr.str(), _maingoSettings->BAB_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
 }
 
 
@@ -1098,12 +1086,12 @@ BranchAndBound::_check_termination()
 
         if (_status == babBase::enums::GLOBALLY_OPTIMAL || _status == babBase::enums::INFEASIBLE) {
             // Print on screen and write to log
-            _logger->print_message("  Done.\n", _maingoSettings->writeLog, _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+            _logger->print_message("  Done.\n", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
             _print_termination("*                                             *** Regular termination. ***                                             *");
         }
         else {
             // Print on screen and write to log
-            _logger->print_message("  Done.\n", _maingoSettings->writeLog, _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+            _logger->print_message("  Done.\n", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
             _print_termination("*                                             *** Regular termination. ***                                             *\n*               *** Reached minimum node size. User-defined optimality tolerance could not be reached ***              *");
         }
     }
@@ -1113,7 +1101,7 @@ BranchAndBound::_check_termination()
         }
         terminate = _TERMINATED;
         _status   = babBase::enums::TARGET_UBD;
-        _logger->print_message("  Done.\n", _maingoSettings->writeLog, _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+        _logger->print_message("  Done.\n", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
         _print_termination("*                                          *** Reached target upper bound. ***                                         *");
     }
     else if (reachedTargetLbd) {    // Reached user-defined lower bound
@@ -1122,7 +1110,7 @@ BranchAndBound::_check_termination()
         }
         terminate = _TERMINATED;
         _status   = babBase::enums::TARGET_LBD;
-        _logger->print_message("  Done.\n", _maingoSettings->writeLog, _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+        _logger->print_message("  Done.\n", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
         _print_termination("*                                          *** Reached target lower bound. ***                                         *");
     }
     else if (_maingoSettings->terminateOnFeasiblePoint && _foundFeas) {    // Found feasible point and this is enough for the user
@@ -1131,7 +1119,7 @@ BranchAndBound::_check_termination()
         }
         terminate = _TERMINATED;
         _status   = babBase::enums::FEASIBLE_POINT_ONLY;
-        _logger->print_message("  Done.\n", _maingoSettings->writeLog, _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+        _logger->print_message("  Done.\n", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
         _print_termination("*                                            *** Found feasible point. ***                                             *");
     }
     else if (maxNodesReached || maxTimeReached || maxIterationsReached) {    // Reached some other termination criterion.
@@ -1152,15 +1140,12 @@ BranchAndBound::_check_termination()
             limit           = &_maingoSettings->maxTime;
             potentialStatus = babBase::enums::MAX_TIME;
         }
-        else if (maxIterationsReached) {
+        else {
             message         = "*                                      *** Reached maximum number of B&B iterations! ***                                   *";
             criterion       = "B&B iterations";
             limit           = &_maingoSettings->BAB_maxIterations;
             potentialStatus = babBase::enums::MAX_ITERATIONS;
         }
-        else {
-            throw(MAiNGOException("  Error while checking termination criteria: Unknown criterion"));
-        }
 
 
         if (!_maingoSettings->confirmTermination) {    // Just terminate.
@@ -1191,9 +1176,9 @@ BranchAndBound::_check_termination()
 
             // Query input
             outstr << "  Do you want to continue (y/n)? ";
-            _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->BAB_verbosity, VERB_NONE, _maingoSettings->outstreamVerbosity);
+            _logger->print_message(outstr.str(), _maingoSettings->BAB_verbosity, VERB_NONE, _maingoSettings->loggingDestination);
             while (getline(std::cin, userInput) && userInput != "y" && userInput != "n") {
-                _logger->print_message("  Invalid input. Please type 'y' or 'n' and press enter: ", _maingoSettings->writeLog, _maingoSettings->BAB_verbosity, VERB_NONE, _maingoSettings->outstreamVerbosity);
+                _logger->print_message("  Invalid input. Please type 'y' or 'n' and press enter: ", _maingoSettings->BAB_verbosity, VERB_NONE, _maingoSettings->loggingDestination);
             }
 
             // Interpret input
@@ -1201,18 +1186,18 @@ BranchAndBound::_check_termination()
                 outstr.str("");
                 outstr.clear();
                 outstr << "  User input: yes\n  Enter new limit for " << criterion << ": ";
-                _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->BAB_verbosity, VERB_NONE, _maingoSettings->outstreamVerbosity);
+                _logger->print_message(outstr.str(), _maingoSettings->BAB_verbosity, VERB_NONE, _maingoSettings->loggingDestination);
                 while (getline(std::cin, userInput) && (*limit >= atof(userInput.c_str()))) {
                     outstr.str("");
                     outstr.clear();
                     outstr << "  Invalid input (has to be greater than  " << *limit << "), please revise: ";
-                    _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->BAB_verbosity, VERB_NONE, _maingoSettings->outstreamVerbosity);
+                    _logger->print_message(outstr.str(), _maingoSettings->BAB_verbosity, VERB_NONE, _maingoSettings->loggingDestination);
                 }
                 if (userInput == "") {
-                    throw(MAiNGOException("  Error in bab - confirm termination: Querying user input while checking termination criteria."));
+                    throw MAiNGOException("  Error while checking termination: Querying user input while checking termination criteria.");
                 }
                 else if (atof(userInput.c_str()) > std::numeric_limits<int>::max()) {
-                    _logger->print_message("  Value is too high for integer type, set to maximum.\n", _maingoSettings->writeLog, _maingoSettings->BAB_verbosity, VERB_NONE, _maingoSettings->outstreamVerbosity);
+                    _logger->print_message("  Value is too high for integer type, set to maximum.\n", _maingoSettings->BAB_verbosity, VERB_NONE, _maingoSettings->loggingDestination);
                     *limit = std::numeric_limits<int>::max();
                 }
                 else {
@@ -1222,18 +1207,18 @@ BranchAndBound::_check_termination()
                 outstr.clear();
                 outstr << "  User input: " << (*limit) << "\n  Okay, Resuming solution..." << std::endl
                        << std::endl;
-                _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->BAB_verbosity, VERB_NONE, _maingoSettings->outstreamVerbosity);
+                _logger->print_message(outstr.str(), _maingoSettings->BAB_verbosity, VERB_NONE, _maingoSettings->loggingDestination);
                 _linesprinted = 0;    // To make sure header line is printed before continuing to print progress
                 terminate     = _NOT_TERMINATED;
             }
             else if (userInput == "n") {
-                _logger->print_message("  User input: no\n  ", _maingoSettings->writeLog, _maingoSettings->BAB_verbosity, VERB_NONE, _maingoSettings->outstreamVerbosity);
+                _logger->print_message("  User input: no\n  ", _maingoSettings->BAB_verbosity, VERB_NONE, _maingoSettings->loggingDestination);
                 terminate = _TERMINATED;
                 _print_termination(message);
                 _status = potentialStatus;
             }
             else {
-                throw(MAiNGOException("  Error reading user input while checking termination criteria."));
+                throw MAiNGOException("  Error while checking termination: invalid user input '" + userInput + "'");
             }
         }
     }
@@ -1257,5 +1242,5 @@ BranchAndBound::_print_termination(std::string message)
                << "************************************************************************************************************************" << std::endl;
     }
 
-    _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+    _logger->print_message(outstr.str(), _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
 }
\ No newline at end of file
diff --git a/src/babMpi.cpp b/src/babMpi.cpp
index 32a98284b034c4376acd58154b8d67a5bde401bc..e2aaa386c3b0f0e18ec5485b5a58a72926365957 100644
--- a/src/babMpi.cpp
+++ b/src/babMpi.cpp
@@ -7,16 +7,12 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file babMPI.cpp
- *
- * @brief File implementing MPI functions for parallel B&B.
- *
  **********************************************************************************/
 
 #ifdef HAVE_MAiNGO_MPI
 
+#include "MAiNGOException.h"
 #include "bab.h"
-#include "exceptions.h"
 #include "getTime.h"
 #include "lbp.h"
 #include "mpiUtilities.h"
@@ -247,11 +243,11 @@ BranchAndBound::_sync_with_master(MPI_Request &req, bool &terminate)
 
             MPI_Request_get_status(req, &flag, &status);
             if (_bcastTag == BCAST_EXCEPTION) {    // Other worker ran into an exception
-                _logger->print_message("  Error while syncing with master.\n", _maingoSettings->writeLog, _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                _logger->print_message("  Received exception flag from master.\n", _maingoSettings->BAB_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                 // Cancel pending node request
                 MPI_Cancel(&req);
                 MPI_Request_free(&req);
-                throw MAiNGOMpiException("  Error while syncing with master", MAiNGOMpiException::MPI_OTHER);
+                throw MAiNGOMpiException("  Received exception flag from master", MAiNGOMpiException::ORIGIN_OTHER);
             }
             else if (_bcastTag == BCAST_TERMINATE) {    // Termination condition reached
                                                         // Cancel pending node request
@@ -278,13 +274,13 @@ BranchAndBound::_sync_with_master(MPI_Request &req, bool &terminate)
 ////////////////////////////////////////////////////////////////////////////////////////
 // function for handling exceptions
 void
-BranchAndBound::_handle_exception(maingo::MAiNGOMpiException &e)
+BranchAndBound::_communicate_exception_and_throw(const maingo::MAiNGOMpiException &e)
 {
 
     MAiNGO_IF_BAB_MANAGER
         _inform_worker_about_event(BCAST_EXCEPTION, true);
         MAiNGO_ELSE
-            if (e.ierr() == MAiNGOMpiException::MPI_ME) {
+            if (e.origin() == MAiNGOMpiException::ORIGIN_ME) {
                 std::cout << e.what() << std::endl;
                 MPI_Request req;
                 MPI_Issend(NULL, 0, MPI_INT, 0, TAG_EXCEPTION, MPI_COMM_WORLD, &req);
diff --git a/src/getTime.cpp b/src/getTime.cpp
index 1ad73a8101d3ca572f868fd093eefb3f53202cc6..391f89a54be2ef0293b0a33ac5a8aacf2e99e26f 100644
--- a/src/getTime.cpp
+++ b/src/getTime.cpp
@@ -7,10 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file getTime.cpp
- *
- * @brief File containing functions for querying CPU and wall clock time.
- *
  **********************************************************************************/
 
 #if defined(_WIN32)
diff --git a/src/ipoptProblem.cpp b/src/ipoptProblem.cpp
index 6030c2c99f8687bdc90fd20a9b84ff29baa56530..4359c6b54bbc8de4a9807aa4ba1943922dbd8228 100644
--- a/src/ipoptProblem.cpp
+++ b/src/ipoptProblem.cpp
@@ -7,14 +7,10 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file ipoptProblem.cpp
- *
- * @brief File containing implementation of problem class used by Ipopt.
- *
  **********************************************************************************/
 
 #include "ipoptProblem.h"
-#include "exceptions.h"
+#include "MAiNGOException.h"
 #include "ubpEvaluators.h"
 
 #include <cassert>
@@ -28,7 +24,7 @@ using namespace ubp;
 /////////////////////////////////////////////////////////////////////////
 // constructor
 IpoptProblem::IpoptProblem(unsigned nvarIn, unsigned neqIn, unsigned nineqIn, unsigned nineqSquashIn, UbpStructure* structureIn,
-                           std::vector<Constraint>* constraintPropertiesIn, std::shared_ptr<DagObj> dagObj):
+                           std::shared_ptr<std::vector<Constraint>> constraintPropertiesIn, std::shared_ptr<DagObj> dagObj):
     _nvar(nvarIn),
     _neq(neqIn), _nineq(nineqIn), _nineqSquash(nineqSquashIn), _structure(structureIn), _constraintProperties(constraintPropertiesIn), _DAGobj(dagObj)
 {
@@ -252,13 +248,7 @@ IpoptProblem::finalize_solution(SolverReturn status,
 double
 IpoptProblem::get_solution(std::vector<double>& sol_x)
 {
-
-    if (_solutionX.size() != sol_x.size()) {
-        throw(MAiNGOException("  Error in IpoptProblem: size of stored solution point is not equal to size queried by Ipopt."));
-    }
-
     sol_x = _solutionX;
-
     return _solution_f;
 }
 
diff --git a/src/knitroProblem.cpp b/src/knitroProblem.cpp
index f310094b3a975d0d3326ca4b953320670259c227..f9f1cabbd20ea89c81851b65434da22c2b7a1854 100644
--- a/src/knitroProblem.cpp
+++ b/src/knitroProblem.cpp
@@ -7,10 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file knitroProblem.cpp
- *
- * @brief File containing implementation of problem class used by Knitro.
- *
  **********************************************************************************/
 
 #ifdef HAVE_KNITRO
@@ -27,7 +23,7 @@ using namespace ubp;
 /////////////////////////////////////////////////////////////////////////
 // constructor
 KnitroProblem::KnitroProblem(unsigned nvarIn, unsigned neqIn, unsigned nineqIn, unsigned nineqSquashIn, const std::vector<babBase::OptimizationVariable>& variables,
-                             UbpStructure* structureIn, std::vector<Constraint>* constraintPropertiesIn, std::shared_ptr<DagObj> dagObj):
+                             UbpStructure* structureIn, std::shared_ptr<std::vector<Constraint>> constraintPropertiesIn, std::shared_ptr<DagObj> dagObj):
     KTRProblem((int)nvarIn, (int)(neqIn + nineqIn + nineqSquashIn), (int)(structureIn->nnonZeroJac), (int)(structureIn->nnonZeroHessian)),
     _nvar(nvarIn), _neq(neqIn), _nineq(nineqIn), _nineqSquash(nineqSquashIn),
     _optimizationVariables(variables), _structure(structureIn), _constraintProperties(constraintPropertiesIn), _DAGobj(dagObj)
diff --git a/src/lbp.cpp b/src/lbp.cpp
index 8333b83141b611cba8d8d7b5659359d8adf5888f..7ad1dc6c600a846b5c82c09cae979f42ee05089b 100644
--- a/src/lbp.cpp
+++ b/src/lbp.cpp
@@ -7,18 +7,10 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file lbp.cpp
- *
- * @brief File containing implementation of LowerBoundingSolver class used
- *        for constructing and solving the lower bounding problems and OBBT.
- *        It also contains a basic lower bounding solver implementation based on
- *        simple interval arithmetics for constraints and a single linearization
- *        of the objective.
- *
  **********************************************************************************/
 
 #include "lbp.h"
-#include "exceptions.h"
+#include "MAiNGOException.h"
 #include "lbpDagObj.h"
 #include "utilities.h"
 
@@ -33,7 +25,7 @@ using namespace lbp;
 // constructor for the lower bounding solver
 LowerBoundingSolver::LowerBoundingSolver(mc::FFGraph &DAG, const std::vector<mc::FFVar> &DAGvars, const std::vector<mc::FFVar> &DAGfunctions,
                                          const std::vector<babBase::OptimizationVariable> &variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn,
-                                         const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector<Constraint> *constraintPropertiesIn):
+                                         const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, std::shared_ptr<Settings> settingsIn, std::shared_ptr<Logger> loggerIn, std::shared_ptr<std::vector<Constraint>> constraintPropertiesIn):
     _originalVariables(variables),
     _nvar(variables.size()), _nineq(nineqIn), _neq(neqIn), _nineqRelaxationOnly(nineqRelaxationOnlyIn),
     _neqRelaxationOnly(neqRelaxationOnlyIn), _nineqSquash(nineqSquashIn), _maingoSettings(settingsIn), _logger(loggerIn), _constraintProperties(constraintPropertiesIn)
@@ -129,7 +121,7 @@ LowerBoundingSolver::LowerBoundingSolver(mc::FFGraph &DAG, const std::vector<mc:
     _nLinIneqRelaxationOnly.resize(_nineqRelaxationOnly);
     _nLinEqRelaxationOnly.resize(_neqRelaxationOnly);
     _nLinIneqSquash.resize(_nineqSquash);
-    if (_maingoSettings->LBP_solver == SOLVER_MAiNGO || _maingoSettings->LBP_solver == SOLVER_INTERVAL) {
+    if (_maingoSettings->LBP_solver == LBP_SOLVER_MAiNGO || _maingoSettings->LBP_solver == LBP_SOLVER_INTERVAL) {
         _set_number_of_linpoints(LINP_MID);
         _lowerVarBounds.resize(_nvar);
         _upperVarBounds.resize(_nvar);
@@ -138,16 +130,19 @@ LowerBoundingSolver::LowerBoundingSolver(mc::FFGraph &DAG, const std::vector<mc:
         _set_number_of_linpoints(_maingoSettings->LBP_linPoints);
     }
 
+    if (_nineq + _neq + _nineqRelaxationOnly + _neqRelaxationOnly + _nineqSquash == 0) {
+        _onlyBoxConstraints = true;
+    }
+    else {
+        _onlyBoxConstraints = false;
+    }
+
     _LPstatus = LP_UNKNOWN;
 
     // Set the feasibility tolerance to max(LBP_feasTol, deltaIneq, deltaEq) to achieve consistency in optimization
     _computationTol = std::max(_maingoSettings->deltaIneq, _maingoSettings->deltaEq);
 
 
-#if defined FILIB_TERMINATE
-    std::set_terminate(filibTerminate);
-#endif
-
     // Resize Matrix A and rhs b to appropriate sizes  ---  A*x <= b
     _matrixObj.resize(1);
     _matrixIneq.resize(_nineq);
@@ -378,8 +373,7 @@ LowerBoundingSolver::_set_number_of_linpoints(const unsigned int LBP_linPoints)
             }
             default:
             {
-                throw(MAiNGOException("  Error initializing LowerBoundingSolver: Unknown linearization point for LBP."));
-                break;
+                throw MAiNGOException("  Error initializing LowerBoundingSolver: Unknown linearization point for LBP.");
             }
         }    // End of switch(LBP_linPoints)
     }
@@ -398,10 +392,10 @@ LowerBoundingSolver::solve_LBP(const babBase::BabNode &currentNode, double &lowe
         linStatus = _update_LP(currentNode);
     }
     catch (std::exception &e) {
-        throw(MAiNGOException("  Error while modifying the lower bounding LP for LBP.", e, currentNode));
+        throw MAiNGOException("  Error while modifying the lower bounding LP for LBP.", e, currentNode);
     }
     catch (...) {
-        throw(MAiNGOException("  Unknown error while modifying the lower bounding LP for LBP.", currentNode));
+        throw MAiNGOException("  Unknown error while modifying the lower bounding LP for LBP.", currentNode);
     }
 
     // Solve problem and check return status
@@ -415,7 +409,7 @@ LowerBoundingSolver::solve_LBP(const babBase::BabNode &currentNode, double &lowe
     if (_LPstatus == LP_INFEASIBLE) {
         if (_maingoSettings->LBP_verbosity > VERB_NORMAL) {
             // The if-statement seems like doubling of work but in the most common case LBP_verbosity <= VERB_NORMAL we don't want to always allocate the string
-            _logger->print_message("  LBP status: Infeasible", _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+            _logger->print_message("  LBP status: Infeasible", _maingoSettings->LBP_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
         }
 
         if (currentNode.holds_incumbent()) {
@@ -427,7 +421,7 @@ LowerBoundingSolver::solve_LBP(const babBase::BabNode &currentNode, double &lowe
 #endif
                 std::ostringstream outstr;
                 outstr << "  Warning: Node with id " << currentNode.get_ID() << " declared infeasible by LBP although it contains the incumbent. Proceeding with parent LBD..." << std::endl;
-                _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
 
                 return SUBSOLVER_FEASIBLE;
             }
@@ -438,7 +432,7 @@ LowerBoundingSolver::solve_LBP(const babBase::BabNode &currentNode, double &lowe
         }
         else {
 #ifdef LP__OPTIMALITY_CHECK
-            if (_maingoSettings->LBP_solver == lbp::SOLVER_CLP) {    // For CLP, we need this additional check to avoid weird behavior for some problems
+            if (_maingoSettings->LBP_solver == lbp::LBP_SOLVER_CLP) {    // For CLP, we need this additional check to avoid weird behavior for some problems
                 bool reallyInfeasible = _check_if_LP_really_infeasible();
                 if (!reallyInfeasible)
                     return SUBSOLVER_FEASIBLE;
@@ -453,12 +447,12 @@ LowerBoundingSolver::solve_LBP(const babBase::BabNode &currentNode, double &lowe
         std::string str = "solve_LBP_unknown_status_code";
         _write_LP_to_file(str);
 #endif
-        _logger->print_message("  Warning: LP solver returned unknown status code. Using interval bounds instead.\n", _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+        _logger->print_message("  Warning: LP solver returned unknown status code. Using interval bounds instead.\n", _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
         return _fallback_to_intervals(lowerBound);
     }
     if (_maingoSettings->LBP_verbosity > VERB_NORMAL) {
         // The if-statement seems like doubling of work but in the most common case LBP_verbosity <= VERB_NORMAL we don't want to always allocate the string
-        _logger->print_message("  LBP status: Optimal", _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+        _logger->print_message("  LBP status: Optimal", _maingoSettings->LBP_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
     }
 
     // Process solution: solution point (If we got here, the LP solver declared that an optimal solution was found)
@@ -469,7 +463,7 @@ LowerBoundingSolver::solve_LBP(const babBase::BabNode &currentNode, double &lowe
     catch (std::exception &e) {
         std::ostringstream outstr;
         outstr << "  Warning: Variables at solution of LBP could be not obtained by LP solver: " << e.what() << std::endl;
-        _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+        _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
         // Return empty solution instead
         solution.clear();
         return SUBSOLVER_FEASIBLE;
@@ -482,7 +476,7 @@ LowerBoundingSolver::solve_LBP(const babBase::BabNode &currentNode, double &lowe
         for (unsigned int i = 0; i < _nvar; i++) {
             outstr << "   x(" << i << "): " << solution[i] << std::endl;
         }
-        _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+        _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
     }
 #ifdef LP__OPTIMALITY_CHECK
     // Feasibility check
@@ -497,12 +491,12 @@ LowerBoundingSolver::solve_LBP(const babBase::BabNode &currentNode, double &lowe
     if (!(newLBD >= (-_maingoSettings->infinity))) {    // Note that all comparisons return false if one operand is NAN
         std::ostringstream outstr;
         outstr << "  Warning: Objective obtained from LP solver in LBP is out of bounds (" << newLBD << ") although the LP solver solution status is optimal. Keeping parent LBD." << std::endl;
-        _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+        _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
         return SUBSOLVER_FEASIBLE;
     }
 
     // If the lower bound becomes too low, CPLEX returns -1e19 as lowest value, we need to catch that to properly proceed
-    if (newLBD <= -1e19 && _maingoSettings->LBP_solver == SOLVER_CPLEX) {
+    if (newLBD <= -1e19 && _maingoSettings->LBP_solver == LBP_SOLVER_CPLEX) {
         // Not providing multipliers
         dualInfo.multipliers.clear();
         // Simply fallback to intervals
@@ -518,7 +512,7 @@ LowerBoundingSolver::solve_LBP(const babBase::BabNode &currentNode, double &lowe
         outstr << "  No multipliers obtained from LP solver: " << e.what() << std::endl;
         if (_maingoSettings->LBP_verbosity > VERB_NORMAL) {
             // The if-statement seems like doubling of work but in the most common case LBP_verbosity <= VERB_NORMAL we don't want to always allocate the string
-            _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+            _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
         }
         dualInfo.multipliers.clear();
         return SUBSOLVER_FEASIBLE;
@@ -539,7 +533,7 @@ LowerBoundingSolver::solve_LBP(const babBase::BabNode &currentNode, double &lowe
         // The if-statement seems like doubling of work but in the most common case LBP_verbosity <= VERB_NORMAL we don't want to always allocate the string
         std::ostringstream outstr;
         outstr << "  LBD: " << lowerBound << std::endl;
-        _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+        _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
     }
 
     return SUBSOLVER_FEASIBLE;
@@ -552,6 +546,9 @@ TIGHTENING_RETCODE
 LowerBoundingSolver::solve_OBBT(babBase::BabNode &currentNode, const double currentUBD, const OBBT reductionType)
 {
 
+    if ((reductionType == OBBT_FEAS) && _onlyBoxConstraints) {
+        return TIGHTENING_UNCHANGED;
+    }
 
     std::vector<double> lowerVarBounds(currentNode.get_lower_bounds()), upperVarBounds(currentNode.get_upper_bounds());
     std::vector<double> originalWidth(_nvar);
@@ -565,10 +562,10 @@ LowerBoundingSolver::solve_OBBT(babBase::BabNode &currentNode, const double curr
         linStatus = _update_LP(currentNode);
     }
     catch (std::exception &e) {
-        throw(MAiNGOException("  Error while modifying the lower bounding LP for OBBT.", e, currentNode));
+        throw MAiNGOException("  Error while modifying the lower bounding LP for OBBT.", e, currentNode);
     }
     catch (...) {
-        throw(MAiNGOException("  Unknown error while modifying the lower bounding LP for OBBT.", currentNode));
+        throw MAiNGOException("  Unknown error while modifying the lower bounding LP for OBBT.", currentNode);
     }
 
     bool foundInfeasible = false;
@@ -585,13 +582,13 @@ LowerBoundingSolver::solve_OBBT(babBase::BabNode &currentNode, const double curr
                 }
                 std::ostringstream outstr;
                 outstr << "  Warning: Node with id " << currentNode.get_ID() << " declared infeasible by linearization technique in OBBT although it contains the incumbent. Skipping OBBT..." << std::endl;
-                _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                 return TIGHTENING_UNCHANGED;
             }
             else {
                 std::ostringstream outstr;
                 outstr << "  Warning: Node with id " << currentNode.get_ID() << " is numerically sensitive in linearization technique in OBBT. Proceeding..." << std::endl;
-                _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                 foundInfeasible = false;
             }
         }
@@ -632,8 +629,8 @@ LowerBoundingSolver::solve_OBBT(babBase::BabNode &currentNode, const double curr
             default:
             {
                 std::ostringstream errmsg;
-                errmsg << "  Unknown OBBT range reduction type: " << reductionType << std::endl;
-                throw(MAiNGOException(errmsg.str(), currentNode));
+                errmsg << "  Unknown OBBT range reduction type: " << reductionType;
+                throw MAiNGOException(errmsg.str(), currentNode);
             }
         }
 
@@ -731,7 +728,7 @@ LowerBoundingSolver::solve_OBBT(babBase::BabNode &currentNode, const double curr
                 if (_maingoSettings->LBP_verbosity > VERB_NORMAL) {
                     std::ostringstream outstr;
                     outstr << "  LP Obbt status: Infeasible" << std::endl;
-                    _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                    _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                 }
                 if (currentNode.holds_incumbent()) {
                     bool reallyInfeasible = _check_if_LP_really_infeasible();
@@ -746,13 +743,13 @@ LowerBoundingSolver::solve_OBBT(babBase::BabNode &currentNode, const double curr
                         }
                         std::ostringstream outstr;
                         outstr << "  Warning: Node with id " << currentNode.get_ID() << " declared infeasible by OBBT although it contains the incumbent. Skipping OBBT..." << std::endl;
-                        _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                        _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                         break;
                     }
                     else {
                         std::ostringstream outstr;
                         outstr << "  Warning: Node with id " << currentNode.get_ID() << " is numerically sensitive in OBBT for bound " << iVar << " with sense " << optimizationSense << ". Skipping this bound..." << std::endl;
-                        _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                        _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                         _set_optimization_sense_of_variable(iVar, 0);
                         continue;
                     }
@@ -768,14 +765,14 @@ LowerBoundingSolver::solve_OBBT(babBase::BabNode &currentNode, const double curr
                 if (_maingoSettings->LBP_verbosity > VERB_NORMAL) {
                     std::ostringstream outstr;
                     outstr << "  OBBT status: " << _LPstatus << std::endl;
-                    _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+                    _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
                 }
                 break;
             }    // end of if(_LPstatus == LP_INFEASIBLE)
             else if (_LPstatus != LP_OPTIMAL) {
                 std::ostringstream outstr;
                 outstr << "  Warning: No optimal solution found in OBBT. Status: " << _LPstatus << ". Skipping OBBT..." << std::endl;
-                _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                 break;
             }
             else {
@@ -789,7 +786,7 @@ LowerBoundingSolver::solve_OBBT(babBase::BabNode &currentNode, const double curr
                 catch (std::exception &e) {
                     std::ostringstream outstr;
                     outstr << "  Warning: Variables at solution of OBBT could be not obtained by LP solver: " << e.what() << std::endl;
-                    _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                    _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                     _set_optimization_sense_of_variable(iVar, 0);
                     continue;
                 }
@@ -808,7 +805,7 @@ LowerBoundingSolver::solve_OBBT(babBase::BabNode &currentNode, const double curr
                 if (!(objectiveValue >= (-_maingoSettings->infinity))) {    // Note that all comparisons return false if one operand is NaN
                     std::ostringstream outstr;
                     outstr << "  Warning: Objective obtained from LP solver in OBBT is out of bounds (" << objectiveValue << ") although LP solution status is optimal. Skipping this bound." << std::endl;
-                    _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                    _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                     _set_optimization_sense_of_variable(iVar, 0);
                     continue;
                 }
@@ -827,7 +824,7 @@ LowerBoundingSolver::solve_OBBT(babBase::BabNode &currentNode, const double curr
                                     std::ostringstream outstr;
                                     outstr << "  Warning: Node #" << currentNode.get_ID() << " contains the incumbent and OBBT computed a lower bound for variable " << iVar << " which cuts off the incumbent. " << std::endl
                                            << "           Correcting this bound and skipping OBBT... " << std::endl;
-                                    _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                                    _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                                 }
                                 // We skip the bound, even if the bound is within computational tolerances
                                 break;
@@ -842,7 +839,7 @@ LowerBoundingSolver::solve_OBBT(babBase::BabNode &currentNode, const double curr
                                     std::ostringstream outstr;
                                     outstr << "  Warning: Node #" << currentNode.get_ID() << " contains the incumbent and OBBT computed an upper bound for variable " << iVar << " which cuts off the incumbent. " << std::endl
                                            << "           Correcting this bound and skipping OBBT... " << std::endl;
-                                    _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                                    _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                                 }
                                 // We skip the bound, even if the bound is within computational tolerances
                                 break;
@@ -870,7 +867,7 @@ LowerBoundingSolver::solve_OBBT(babBase::BabNode &currentNode, const double curr
                         else {
                             outstr << std::setprecision(16) << "  Upper Bound = " << newBound << " < " << std::setprecision(16) << (*otherBoundVector)[iVar] << " = Lower Bound. Skipping this bound." << std::endl;
                         }
-                        _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                        _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                     }
                     _set_optimization_sense_of_variable(iVar, 0);
                     continue;
@@ -954,7 +951,7 @@ LowerBoundingSolver::solve_OBBT(babBase::BabNode &currentNode, const double curr
                                 }
                                 break;
                             default:
-                                throw(MAiNGOException("  Error in lbp - solving OBBT: Unknown variable type."));
+                                throw MAiNGOException("  Error while solving OBBT: Unknown variable type.");
                                 break;
                         }
                     }
@@ -990,6 +987,11 @@ TIGHTENING_RETCODE
 LowerBoundingSolver::do_constraint_propagation(babBase::BabNode &currentNode, const double currentUBD, const unsigned pass)
 {
 
+    if ((currentUBD >= _maingoSettings->infinity) && _onlyBoxConstraints) {
+        return TIGHTENING_UNCHANGED;
+    }
+
+
     // Set lower and upper bounds for intervals
     for (unsigned int i = 0; i < _nvar; i++) {
         _DAGobj->currentIntervals[i] = I(currentNode.get_lower_bounds()[i], currentNode.get_upper_bounds()[i]);
@@ -1031,7 +1033,7 @@ LowerBoundingSolver::do_constraint_propagation(babBase::BabNode &currentNode, co
             if (mc::Op<I>::l(_DAGobj->currentIntervals[i]) > mc::Op<I>::u(_DAGobj->currentIntervals[i])) {
                 std::ostringstream outstr;
                 outstr << "  Warning: Something went wrong in constraint propagation. Skipping constraint propagation...";
-                _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                 break;
             }
             double newLowerBound = mc::Op<I>::l(_DAGobj->currentIntervals[i]);
@@ -1045,7 +1047,7 @@ LowerBoundingSolver::do_constraint_propagation(babBase::BabNode &currentNode, co
                         std::ostringstream outstr;
                         outstr << "  Warning: Node #" << currentNode.get_ID() << " contains the incumbent and constraint propagation computed a bound for variable " << i << " which cuts off the incumbent. " << std::endl;
                         outstr << "           Correcting this bound and skipping constraint propagation... " << std::endl;
-                        _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                        _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                         break;
                     }
                 }
@@ -1110,8 +1112,8 @@ LowerBoundingSolver::do_constraint_propagation(babBase::BabNode &currentNode, co
                     break;
                 default:
                     std::ostringstream errmsg;
-                    errmsg << "  Error in lbp - constraint propagation: Unknown variable type " << _originalVariables[i].get_variable_type() << std::endl;
-                    throw(MAiNGOException(errmsg.str()));
+                    errmsg << "  Error while solving constraint propagation: Unknown variable type " << _originalVariables[i].get_variable_type() << std::endl;
+                    throw MAiNGOException(errmsg.str());
                     break;
             }
         }
@@ -1127,7 +1129,7 @@ LowerBoundingSolver::do_constraint_propagation(babBase::BabNode &currentNode, co
             }
             std::ostringstream outstr;
             outstr << "  Warning: Constraint propagation declared node #" << currentNode.get_ID() << " as infeasible although it holds the incumbent. Skipping constraint propagation..." << std::endl;
-            _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+            _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
 
             return TIGHTENING_UNCHANGED;
         }
@@ -1181,12 +1183,8 @@ LowerBoundingSolver::do_dbbt_and_probing(babBase::BabNode &currentNode, const st
                     if (newLowerBounds[iVar] > newUpperBounds[iVar]) {
                         std::ostringstream errmsg;
                         errmsg << "  Error in LowerBoundingSolver - DBBT - 1: while setting new lower bound during DBBT for variable " << iVar << ": upper bound became larger than lower bound: " << std::endl;
-                        errmsg << "  " << newLowerBounds[iVar] << " > " << newUpperBounds[iVar] << std::endl;
-#ifdef HAVE_MAiNGO_MPI
-                        throw(MAiNGOMpiException(errmsg.str(), currentNode, MAiNGOMpiException::MPI_ME));
-#else
-                        throw(MAiNGOException(errmsg.str()));
-#endif
+                        errmsg << "  " << newLowerBounds[iVar] << " > " << newUpperBounds[iVar];
+                        throw MAiNGOException(errmsg.str());
                     }
                 }
             }
@@ -1212,12 +1210,8 @@ LowerBoundingSolver::do_dbbt_and_probing(babBase::BabNode &currentNode, const st
                     if (newLowerBounds[iVar] > newUpperBounds[iVar]) {
                         std::ostringstream errmsg;
                         errmsg << "  Error in LowerBoundingSolver - DBBT - 2: while setting new lower bound during DBBT for variable " << iVar << ": upper bound became larger than lower bound: " << std::endl;
-                        errmsg << "  " << newLowerBounds[iVar] << " > " << newUpperBounds[iVar] << std::endl;
-#ifdef HAVE_MAiNGO_MPI
-                        throw(MAiNGOMpiException(errmsg.str(), currentNode, MAiNGOMpiException::MPI_ME));
-#else
-                        throw(MAiNGOException(errmsg.str()));
-#endif
+                        errmsg << "  " << newLowerBounds[iVar] << " > " << newUpperBounds[iVar];
+                        throw MAiNGOException(errmsg.str());
                     }
                 }
             }
@@ -1314,10 +1308,10 @@ LowerBoundingSolver::_solve_probing_LBP(babBase::BabNode &currentNode, LbpDualIn
         _update_LP(currentNode);
     }
     catch (std::exception &e) {
-        throw(MAiNGOException("  Error while modifying the lower bounding LP for Probing LBP.", e, currentNode));
+        throw MAiNGOException("  Error while modifying the lower bounding LP for probing.", e, currentNode);
     }
     catch (...) {
-        throw(MAiNGOException("  Unknown error while modifying the lower bounding LP for Probing LBP.", currentNode));
+        throw MAiNGOException("  Unknown error while modifying the lower bounding LP for probing.", currentNode);
     }
 
     // Fix variable
@@ -1330,12 +1324,12 @@ LowerBoundingSolver::_solve_probing_LBP(babBase::BabNode &currentNode, LbpDualIn
     if (_LPstatus == LP_INFEASIBLE) {
         if (_maingoSettings->LBP_verbosity > VERB_NORMAL) {
             // The if-statement seems like doubling of work but in the most common case LBP_verbosity <= VERB_NORMAL we don't want to always allocate the string
-            _logger->print_message("  Probing LBP status: Infeasible", _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+            _logger->print_message("  Probing LBP status: Infeasible", _maingoSettings->LBP_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
         }
         return SUBSOLVER_INFEASIBLE;
     }    // end of if(_LPstatus == LP_INFEASIBLE)
     else if (_LPstatus == LP_UNKNOWN) {
-        _logger->print_message("  Warning: LP solver returned unknown status code. Proceeding with parent LBD.\n", _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+        _logger->print_message("  Warning: LP solver returned unknown status code. Proceeding with parent LBD.\n", _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
 #ifdef LP__WRITE_CHECK_FILES
         std::string str = "solve_probing_LBP_unknown_status_code";
         _write_LP_to_file(str);
@@ -1344,7 +1338,7 @@ LowerBoundingSolver::_solve_probing_LBP(babBase::BabNode &currentNode, LbpDualIn
     }
     if (_maingoSettings->LBP_verbosity > VERB_NORMAL) {
         // The if-statement seems like doubling of work but in the most common case LBP_verbosity <= VERB_NORMAL we don't want to always allocate the string
-        _logger->print_message("  Probing LBP status: Optimal", _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+        _logger->print_message("  Probing LBP status: Optimal", _maingoSettings->LBP_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
     }
 
     // Process solution: solution point (If we got here, the LP solver declared that an optimal solution was found)
@@ -1356,7 +1350,7 @@ LowerBoundingSolver::_solve_probing_LBP(babBase::BabNode &currentNode, LbpDualIn
     catch (std::exception &e) {
         std::ostringstream outstr;
         outstr << "  Warning: Variables at solution of Probing LBP could be not obtained by LP solver: " << e.what() << std::endl;
-        _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+        _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
         // Return empty solution instead
         solution.clear();
         return SUBSOLVER_INFEASIBLE;
@@ -1369,7 +1363,7 @@ LowerBoundingSolver::_solve_probing_LBP(babBase::BabNode &currentNode, LbpDualIn
         for (unsigned int i = 0; i < _nvar; i++) {
             outstr << "   x(" << i << "): " << solution[i] << std::endl;
         }
-        _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+        _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
     }
 #ifdef LP__OPTIMALITY_CHECK
     // Feasibility check
@@ -1385,12 +1379,12 @@ LowerBoundingSolver::_solve_probing_LBP(babBase::BabNode &currentNode, LbpDualIn
     if (!(newLBD >= (-_maingoSettings->infinity))) {    // Note that all comparisons return false if one operand is NAN
         std::ostringstream outstr;
         outstr << "  Warning: Objective obtained from LP solver in Probing LBP is out of bounds (" << newLBD << ") although the LP solver solution status is optimal. Keeping parent LBD." << std::endl;
-        _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+        _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
         return SUBSOLVER_INFEASIBLE;
     }
 
     // If the lower bound becomes too low, CPLEX returns -1e19 as lowest value, we need to catch that to properly proceed
-    if (newLBD <= -1e19 && _maingoSettings->LBP_solver == SOLVER_CPLEX) {
+    if (newLBD <= -1e19 && _maingoSettings->LBP_solver == LBP_SOLVER_CPLEX) {
         // Not providing multipliers
         dualInfo.multipliers.clear();
         // Simply fallback to intervals
@@ -1406,7 +1400,7 @@ LowerBoundingSolver::_solve_probing_LBP(babBase::BabNode &currentNode, LbpDualIn
         outstr << "  No multipliers obtained from LP solver for probing: " << e.what() << std::endl;
         if (_maingoSettings->LBP_verbosity > VERB_NORMAL) {
             // The if-statement seems like doubling of work but in the most common case LBP_verbosity <= VERB_NORMAL we don't want to always allocate the string
-            _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+            _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
         }
         dualInfo.multipliers.clear();
         return SUBSOLVER_INFEASIBLE;
@@ -1444,7 +1438,7 @@ LowerBoundingSolver::_solve_probing_LBP(babBase::BabNode &currentNode, LbpDualIn
         // The if-statement seems like doubling of work but in the most common case LBP_verbosity <= VERB_NORMAL we don't want to always allocate the string
         std::ostringstream outstr;
         outstr << "  Probing LBD: " << dualInfo.lpLowerBound << std::endl;
-        _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+        _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
     }
 
     return SUBSOLVER_FEASIBLE;
@@ -1506,7 +1500,7 @@ LowerBoundingSolver::_update_LP(const babBase::BabNode &currentNode)
         }
         default:
         {
-            throw(MAiNGOException("  Unknown linearization strategy. Terminating."));
+            throw MAiNGOException("  Error while updating LP: Unknown linearization strategy.");
             break;
         }
     }
@@ -1565,10 +1559,10 @@ void
 LowerBoundingSolver::_update_LP_obj(const MC &resultRelaxation, const std::vector<double> &linearizationPoint, const std::vector<double> &lowerVarBounds, const std::vector<double> &upperVarBounds, unsigned const &iLin, unsigned const &iObj)
 {
 
-    if (_maingoSettings->LBP_solver != SOLVER_MAiNGO) {
+    if (_maingoSettings->LBP_solver != LBP_SOLVER_MAiNGO) {
         std::ostringstream outstr;
         outstr << "  You need to define function _update_LP_obj in the derived lower bounding solver " << _maingoSettings->LBP_solver << " !";
-        _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+        _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
     }
 
     // Not needed in the default solver
@@ -1581,10 +1575,10 @@ void
 LowerBoundingSolver::_update_LP_ineq(const MC &resultRelaxation, const std::vector<double> &linearizationPoint, const std::vector<double> &lowerVarBounds, const std::vector<double> &upperVarBounds, unsigned const &iLin, unsigned const &iIneq)
 {
 
-    if (_maingoSettings->LBP_solver != SOLVER_MAiNGO) {
+    if (_maingoSettings->LBP_solver != LBP_SOLVER_MAiNGO) {
         std::ostringstream outstr;
         outstr << "  You need to define function _update_LP_ineq in the derived lower bounding solver " << _maingoSettings->LBP_solver << " !";
-        _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+        _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
     }
 
     // Not needed in the default solver
@@ -1597,10 +1591,10 @@ void
 LowerBoundingSolver::_update_LP_eq(const MC &resultRelaxationCv, const MC &resultRelaxationCc, const std::vector<double> &linearizationPoint, const std::vector<double> &lowerVarBounds, const std::vector<double> &upperVarBounds, unsigned const &iLin, unsigned const &iEq)
 {
 
-    if (_maingoSettings->LBP_solver != SOLVER_MAiNGO) {
+    if (_maingoSettings->LBP_solver != LBP_SOLVER_MAiNGO) {
         std::ostringstream outstr;
         outstr << "  You need to define function _update_LP_eq in the derived lower bounding solver " << _maingoSettings->LBP_solver << " !";
-        _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+        _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
     }
 
     // Not needed in the default solver
@@ -1613,10 +1607,10 @@ void
 LowerBoundingSolver::_update_LP_ineqRelaxationOnly(const MC &resultRelaxation, const std::vector<double> &linearizationPoint, const std::vector<double> &lowerVarBounds, const std::vector<double> &upperVarBounds, unsigned const &iLin, unsigned const &iIneqRelaxationOnly)
 {
 
-    if (_maingoSettings->LBP_solver != SOLVER_MAiNGO) {
+    if (_maingoSettings->LBP_solver != LBP_SOLVER_MAiNGO) {
         std::ostringstream outstr;
         outstr << "  You need to define function _update_LP_ineqRelaxationOnly in the derived lower bounding solver " << _maingoSettings->LBP_solver << " !";
-        _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+        _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
     }
 
     // Not needed in the default solver
@@ -1629,10 +1623,10 @@ void
 LowerBoundingSolver::_update_LP_eqRelaxationOnly(const MC &resultRelaxationCv, const MC &resultRelaxationCc, const std::vector<double> &linearizationPoint, const std::vector<double> &lowerVarBounds, const std::vector<double> &upperVarBounds, unsigned const &iLin, unsigned const &iEqRelaxationOnly)
 {
 
-    if (_maingoSettings->LBP_solver != SOLVER_MAiNGO) {
+    if (_maingoSettings->LBP_solver != LBP_SOLVER_MAiNGO) {
         std::ostringstream outstr;
         outstr << "  You need to define function _update_LP_eqRelaxationOnly in the derived lower bounding solver " << _maingoSettings->LBP_solver << " !";
-        _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+        _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
     }
 
     // Not needed in the default solver
@@ -1645,10 +1639,10 @@ void
 LowerBoundingSolver::_update_LP_ineq_squash(const MC &resultRelaxation, const std::vector<double> &linearizationPoint, const std::vector<double> &lowerVarBounds, const std::vector<double> &upperVarBounds, unsigned const &iLin, unsigned const &iIneqSquash)
 {
 
-    if (_maingoSettings->LBP_solver != SOLVER_MAiNGO) {
+    if (_maingoSettings->LBP_solver != LBP_SOLVER_MAiNGO) {
         std::ostringstream outstr;
         outstr << "  You need to define function _update_LP_ineq_squash in the derived lower bounding solver " << _maingoSettings->LBP_solver << " !";
-        _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+        _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
     }
 
     // Not needed in the default solver
@@ -1712,10 +1706,10 @@ void
 LowerBoundingSolver::_update_LP_obj(const vMC &resultRelaxationVMC, const std::vector<std::vector<double>> &linearizationPoint, const std::vector<double> &lowerVarBounds, const std::vector<double> &upperVarBounds, unsigned const &iObj)
 {
 
-    if (_maingoSettings->LBP_solver != SOLVER_MAiNGO) {
+    if (_maingoSettings->LBP_solver != LBP_SOLVER_MAiNGO) {
         std::ostringstream outstr;
         outstr << "  You need to define function _update_LP_obj for vector McCormick in the derived lower bounding solver " << _maingoSettings->LBP_solver << " !";
-        _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+        _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
     }
 
     // Not needed in the default solver
@@ -1728,10 +1722,10 @@ void
 LowerBoundingSolver::_update_LP_ineq(const vMC &resultRelaxationVMC, const std::vector<std::vector<double>> &linearizationPoint, const std::vector<double> &lowerVarBounds, const std::vector<double> &upperVarBounds, unsigned const &iIneq)
 {
 
-    if (_maingoSettings->LBP_solver != SOLVER_MAiNGO) {
+    if (_maingoSettings->LBP_solver != LBP_SOLVER_MAiNGO) {
         std::ostringstream outstr;
         outstr << "  You need to define function _update_LP_ineq for vector McCormick in the derived lower bounding solver " << _maingoSettings->LBP_solver << " !";
-        _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+        _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
     }
 
     // Not needed in the default solver
@@ -1744,10 +1738,10 @@ void
 LowerBoundingSolver::_update_LP_eq(const vMC &resultRelaxationCvVMC, const vMC &resultRelaxationCcVMC, const std::vector<std::vector<double>> &linearizationPoint, const std::vector<double> &lowerVarBounds, const std::vector<double> &upperVarBounds, unsigned const &iEq)
 {
 
-    if (_maingoSettings->LBP_solver != SOLVER_MAiNGO) {
+    if (_maingoSettings->LBP_solver != LBP_SOLVER_MAiNGO) {
         std::ostringstream outstr;
         outstr << "  You need to define function _update_LP_eq for vector McCormick in the derived lower bounding solver " << _maingoSettings->LBP_solver << " !";
-        _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+        _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
     }
 
     // Not needed in the default solver
@@ -1760,10 +1754,10 @@ void
 LowerBoundingSolver::_update_LP_ineqRelaxationOnly(const vMC &resultRelaxationVMC, const std::vector<std::vector<double>> &linearizationPoint, const std::vector<double> &lowerVarBounds, const std::vector<double> &upperVarBounds, unsigned const &iIneqRelaxationOnly)
 {
 
-    if (_maingoSettings->LBP_solver != SOLVER_MAiNGO) {
+    if (_maingoSettings->LBP_solver != LBP_SOLVER_MAiNGO) {
         std::ostringstream outstr;
         outstr << "  You need to define function _update_LP_ineqRelaxationOnly for vector McCormick in the derived lower bounding solver " << _maingoSettings->LBP_solver << " !";
-        _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+        _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
     }
 
     // Not needed in the default solver
@@ -1776,10 +1770,10 @@ void
 LowerBoundingSolver::_update_LP_eqRelaxationOnly(const vMC &resultRelaxationCvVMC, const vMC &resultRelaxationCcVMC, const std::vector<std::vector<double>> &linearizationPoint, const std::vector<double> &lowerVarBounds, const std::vector<double> &upperVarBounds, unsigned const &iEqRelaxationOnly)
 {
 
-    if (_maingoSettings->LBP_solver != SOLVER_MAiNGO) {
+    if (_maingoSettings->LBP_solver != LBP_SOLVER_MAiNGO) {
         std::ostringstream outstr;
         outstr << "  You need to define function _update_LP_eqRelaxationOnly for vectpr McCormick in the derived lower bounding solver " << _maingoSettings->LBP_solver << " !";
-        _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+        _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
     }
 
     // Not needed in the default solver
@@ -1792,10 +1786,10 @@ void
 LowerBoundingSolver::_update_LP_ineq_squash(const vMC &resultRelaxationVMC, const std::vector<std::vector<double>> &linearizationPoint, const std::vector<double> &lowerVarBounds, const std::vector<double> &upperVarBounds, unsigned const &iIneqSquash)
 {
 
-    if (_maingoSettings->LBP_solver != SOLVER_MAiNGO) {
+    if (_maingoSettings->LBP_solver != LBP_SOLVER_MAiNGO) {
         std::ostringstream outstr;
         outstr << "  You need to define function _update_LP_ineq_squash for vector McCormick in the derived lower bounding solver " << _maingoSettings->LBP_solver << " !";
-        _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+        _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
     }
 
     // Not needed in the default solver
@@ -2056,43 +2050,24 @@ LowerBoundingSolver::preprocessor_check_options(const babBase::BabNode &rootNode
         }
 
         if (_maingoSettings->LBP_addAuxiliaryVars && !_maingoSettings->BAB_constraintPropagation) {
-            _logger->print_message("        The option BAB_constraintPropagation has to be 1 when using option LBP_addAuxiliaryVars. Setting it to 1.\n", _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+            _logger->print_message("        The option BAB_constraintPropagation has to be 1 when using option LBP_addAuxiliaryVars. Setting it to 1.\n", _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
             _maingoSettings->BAB_constraintPropagation = true;
         }
 
         // Check whether the options can be applied with respect to the used solver
         _turn_off_specific_options();
     }
-#if defined USE_INTERVAL
-    catch (I::Exception &e) {
-        std::ostringstream errmsg;
-        errmsg << "  Error in natural interval extension:" << std::endl
-               << "  " << e.what() << std::endl;
-        throw(MAiNGOException(errmsg.str()));
-    }
-#endif
-#if defined USE_FILIB
-    catch (filib::interval_io_exception &e) {
-        std::ostringstream errmsg;
-        errmsg << "  Error in natural interval extension:" << std::endl
-               << "  " << e.what() << std::endl;
-        throw(MAiNGOException(errmsg.str()));
+    catch (const filib::interval_io_exception &e) {
+        throw MAiNGOException(std::string("  (Preprocessor) Error in interval extensions: ") + e.what());
     }
-#endif
-#if defined USE_PROFIL
-// Not supported
-#endif
-    catch (MC::Exceptions &e) {
-        std::ostringstream errmsg;
-        errmsg << "  Error " << e.ierr() << " in McCormick relaxation:" << std::endl
-               << "  " << e.what() << std::endl;
-        throw(MAiNGOException(errmsg.str()));
+    catch (const MC::Exceptions &e) {
+        throw MAiNGOException(std::string("  (Preprocessor) Error in evaluation of McCormick relaxations: ") + e.what());
     }
     catch (const std::exception &e) {
-        throw(MAiNGOException("  (Preprocessor) Error in evaluation of relaxed Model equations:\n ", e));
+        throw MAiNGOException("  (Preprocessor) Error in evaluation of relaxed model equations. ", e);
     }
     catch (...) {
-        throw(MAiNGOException("  Unknown (Preprocessor) Error in evaluation of relaxed Model equations:\n "));
+        throw MAiNGOException("  (Preprocessor) Unknown error in evaluation of relaxed model equations. ");
     }
 }
 
@@ -2103,20 +2078,20 @@ void
 LowerBoundingSolver::_turn_off_specific_options()
 {
 
-    if (_maingoSettings->LBP_solver != SOLVER_MAiNGO) {
-        _logger->print_message("        Warning: Function for turning off specific options not implemented. Not changing any settings. Proceeding...\n", _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+    if (_maingoSettings->LBP_solver != LBP_SOLVER_MAiNGO) {
+        _logger->print_message("        Warning: Function for turning off specific options not implemented. Not changing any settings. Proceeding...\n", _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
     }
     else {
         if (_maingoSettings->LBP_linPoints != LINP_MID) {
-            _logger->print_message("        The option LBP_linPoints has to be  0 when using the default MAiNGO solver (LBP_solver = 0). Setting it to 0.\n", _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+            _logger->print_message("        The option LBP_linPoints has to be  0 when using the default MAiNGO solver (LBP_solver = 0). Setting it to 0.\n", _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
             _maingoSettings->LBP_linPoints = LINP_MID;    // Note that this already has been used in the constructor!
         }
         if (_maingoSettings->PRE_obbtMaxRounds > 0) {
-            _logger->print_message("        The option PRE_obbtMaxRounds has to be 0 when using the default MAiNGO solver (LBP_solver = 0). Setting it to 0.\n", _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+            _logger->print_message("        The option PRE_obbtMaxRounds has to be 0 when using the default MAiNGO solver (LBP_solver = 0). Setting it to 0.\n", _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
             _maingoSettings->PRE_obbtMaxRounds = 0;
         }
         if (_maingoSettings->BAB_alwaysSolveObbt) {
-            _logger->print_message("        The option BAB_alwaysSolveObbt has to be 0 when using the default MAiNGO solver (LBP_solver = 0). Setting it to 0.\n", _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+            _logger->print_message("        The option BAB_alwaysSolveObbt has to be 0 when using the default MAiNGO solver (LBP_solver = 0). Setting it to 0.\n", _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
             _maingoSettings->BAB_alwaysSolveObbt = false;
         }
     }
@@ -2352,7 +2327,7 @@ LowerBoundingSolver::_print_LP(const std::vector<double> &lowerVarBounds, const
         outstr << "  x(" << i << "): " << lowerVarBounds[i] << " : " << upperVarBounds[i] << std::endl;
     }
 
-    _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NONE, _maingoSettings->outstreamVerbosity);
+    _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NONE, _maingoSettings->loggingDestination);
 }
 #endif
 
@@ -2420,24 +2395,4 @@ LowerBoundingSolver::_write_LP_to_file(std::string &fileName)
     lpFile << "End\n";
     lpFile.close();
 }
-#endif
-
-
-#if defined FILIB_TERMINATE
-
-/**
-*  @brief: Termination handler to close MAiNGO properly when std::terminate() is called in the FILIB++ library
-*/
-void
-filibTerminate()
-{
-
-    std::cout << "  Error in Filib library.\n Try using the MC++ built-in interval extensions or change the filib::interval_mode to filib::interval_mode::i_mode_extended.\n See MAiNGO/inc/intervalLibrary.h and rebuild your project.\n Terminating." << std::endl;
-    std::ofstream logFile;
-    logFile.open("bab.log", std::ios::app);
-    logFile << "  Error in Filib library.\n Try using the MC++ built-in interval extensions or change the filib::interval_mode to filib::interval_mode::i_mode_extended.\n See MAiNGO/inc/intervalLibrary.h and rebuild your project.\n Terminating.";
-    logFile.close();
-    exit(0);
-}
-
 #endif
\ No newline at end of file
diff --git a/src/lbpClp.cpp b/src/lbpClp.cpp
index 35087a39914c5a8b585315db853b3c07d3ea51eb..1c5502e30e39e0661d7657c79616e16f5d3d57ae 100644
--- a/src/lbpClp.cpp
+++ b/src/lbpClp.cpp
@@ -1,3 +1,4 @@
+
 /**********************************************************************************
  * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University
  *
@@ -7,15 +8,10 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file lbpClp.cpp
- *
- * @brief File containing implementation of LbpClp class used for solving
- *        the lower bounding problems.
- *
  **********************************************************************************/
 
 #include "lbpClp.h"
-#include "exceptions.h"
+#include "MAiNGOException.h"
 
 #include <algorithm>
 #include <limits>
@@ -28,7 +24,7 @@ using namespace lbp;
 // constructor for the lower bounding solver
 LbpClp::LbpClp(mc::FFGraph &DAG, const std::vector<mc::FFVar> &DAGvars, const std::vector<mc::FFVar> &DAGfunctions, const std::vector<babBase::OptimizationVariable> &variables,
                const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn,
-               Settings *settingsIn, Logger *loggerIn, std::vector<Constraint> *constraintPropertiesIn):
+               std::shared_ptr<Settings> settingsIn, std::shared_ptr<Logger> loggerIn, std::shared_ptr<std::vector<Constraint>> constraintPropertiesIn):
     LowerBoundingSolver(DAG, DAGvars, DAGfunctions, variables, nineqIn, neqIn, nineqRelaxationOnlyIn, neqRelaxationOnlyIn, nineqSquashIn, settingsIn, loggerIn, constraintPropertiesIn)
 {
     try {
@@ -68,9 +64,9 @@ LbpClp::LbpClp(mc::FFGraph &DAG, const std::vector<mc::FFVar> &DAGvars, const st
         _clp.setPrimalTolerance(1e-9);
         _clp.setDualTolerance(1e-9);
         _clp.setMaximumIterations(100000);
-        // Suppress output
-        if (_maingoSettings->LBP_verbosity <= VERB_NORMAL ||
-            _maingoSettings->outstreamVerbosity == 0 || _maingoSettings->outstreamVerbosity == 2) {
+        _clp.setRandomSeed(42);    // Make the behavior of CLP deterministic
+        // Suppress output - unfortunately we cannot redirect the output of CLP to our log file right now...
+        if ((_maingoSettings->LBP_verbosity <= VERB_NORMAL) || (_maingoSettings->loggingDestination == LOGGING_NONE) || (_maingoSettings->loggingDestination == LOGGING_FILE)) {
             _clp.messageHandler()->setLogLevel(0);
         }
 
@@ -115,10 +111,10 @@ LbpClp::LbpClp(mc::FFGraph &DAG, const std::vector<mc::FFVar> &DAGvars, const st
 #endif
     }
     catch (std::exception &e) {
-        throw(MAiNGOException("Error initializing CLP during initialization of LowerBoundingSolver.", e));
+        throw MAiNGOException("  Error initializing CLP during initialization of LowerBoundingSolver.", e);
     }
     catch (...) {
-        throw(MAiNGOException("Unknown error initializing CLP during initialization of LowerBoundingSolver."));
+        throw MAiNGOException("  Unknown error initializing CLP during initialization of LowerBoundingSolver.");
     }
 }
 
@@ -226,7 +222,7 @@ LbpClp::_update_LP_obj(const MC &resultRelaxation, const std::vector<double> &li
 
     // Linearize objective function:
     if (resultRelaxation.nsub() == 0) {
-        throw(MAiNGOException("Error in evaluation of the relaxed objective function: objective function does not depend on variables."));
+        throw MAiNGOException("  Error in evaluation of the relaxed objective function for CLP: objective function does not depend on variables.");
     }
     double rhs = 0;
     // If the numbers are too large, we simply set the whole row to 0
@@ -265,8 +261,8 @@ LbpClp::_update_LP_ineq(const MC &resultRelaxation, const std::vector<double> &l
     // Linearize inequality constraints:
     if (resultRelaxation.nsub() == 0) {
         std::ostringstream errmsg;
-        errmsg << "Error in evaluation of relaxed inequality constraint " << iIneq + 1 << " (of " << _nineq << "): constraint does not depend on variables.";
-        throw(MAiNGOException(errmsg.str()));
+        errmsg << "  Error in evaluation of relaxed inequality constraint " << iIneq + 1 << " (of " << _nineq << ") for CLP: constraint does not depend on variables.";
+        throw MAiNGOException(errmsg.str());
     }
     double rhs = 0;
     if (std::fabs(-resultRelaxation.cv()) > 1e19 || (resultRelaxation.cv() != resultRelaxation.cv())) {
@@ -301,8 +297,8 @@ LbpClp::_update_LP_eq(const MC &resultRelaxationCv, const MC &resultRelaxationCc
 
     if (resultRelaxationCv.nsub() == 0 || resultRelaxationCc.nsub() == 0) {
         std::ostringstream errmsg;
-        errmsg << "Error in evaluation of relaxed equality constraint " << iEq + 1 << " (of " << _neq << "): constraint does not depend on variables.";
-        throw(MAiNGOException(errmsg.str()));
+        errmsg << "  Error in evaluation of relaxed equality constraint " << iEq + 1 << " (of " << _neq << ") for CLP: constraint does not depend on variables.";
+        throw MAiNGOException(errmsg.str());
     }
     double rhs = 0;
     // Convex relaxation <=0:
@@ -361,8 +357,8 @@ LbpClp::_update_LP_ineqRelaxationOnly(const MC &resultRelaxation, const std::vec
 
     if (resultRelaxation.nsub() == 0) {
         std::ostringstream errmsg;
-        errmsg << "Error in evaluation of relaxation-only inequality constraint " << iIneqRelaxationOnly + 1 << " (of " << _nineqRelaxationOnly << "): constraint does not depend on variables.";
-        throw(MAiNGOException(errmsg.str()));
+        errmsg << "  Error in evaluation of relaxation-only inequality constraint " << iIneqRelaxationOnly + 1 << " (of " << _nineqRelaxationOnly << ") for CLP: constraint does not depend on variables.";
+        throw MAiNGOException(errmsg.str());
     }
     double rhs = 0;
     if (std::fabs(resultRelaxation.cv()) > 1e19 || (resultRelaxation.cv() != resultRelaxation.cv())) {
@@ -399,8 +395,8 @@ LbpClp::_update_LP_eqRelaxationOnly(const MC &resultRelaxationCv, const MC &resu
     // Linearize relaxation only equalities
     if (resultRelaxationCv.nsub() == 0 || resultRelaxationCc.nsub() == 0) {
         std::ostringstream errmsg;
-        errmsg << "Error in evaluation of relaxation-only equality constraint " << iEqRelaxationOnly + 1 << " (of " << _neqRelaxationOnly << "): constraint does not depend on variables.";
-        throw(MAiNGOException(errmsg.str()));
+        errmsg << "  Error in evaluation of relaxation-only equality constraint " << iEqRelaxationOnly + 1 << " (of " << _neqRelaxationOnly << ") for CLP: constraint does not depend on variables.";
+        throw MAiNGOException(errmsg.str());
     }
     double rhs = 0;
     // Convex relaxation <=0:
@@ -463,8 +459,8 @@ LbpClp::_update_LP_ineq_squash(const MC &resultRelaxation, const std::vector<dou
     // Linearize inequality constraints:
     if (resultRelaxation.nsub() == 0) {
         std::ostringstream errmsg;
-        errmsg << "Error in evaluation of relaxed squash inequality constraint " << iIneqSquash + 1 << " (of " << _nineqSquash << "): constraint does not depend on variables.";
-        throw(MAiNGOException(errmsg.str()));
+        errmsg << "  Error in evaluation of relaxed squash inequality constraint " << iIneqSquash + 1 << " (of " << _nineqSquash << ") for CLP: constraint does not depend on variables.";
+        throw MAiNGOException(errmsg.str());
     }
     double rhs = 0;
     if (std::fabs(-resultRelaxation.cv()) > 1e19 || (resultRelaxation.cv() != resultRelaxation.cv())) {
@@ -500,8 +496,8 @@ LbpClp::_update_LP_obj(const vMC &resultRelaxationVMC, const std::vector<std::ve
     // Linearize objective function:
     if (resultRelaxationVMC.nsub() == 0) {
         std::ostringstream errmsg;
-        errmsg << "Error in evaluation of the relaxed objective function (vector): objective function does not depend on variables.";
-        throw(MAiNGOException(errmsg.str()));
+        errmsg << "  Error in evaluation of the relaxed objective function (vector) for CLP: objective function does not depend on variables.";
+        throw MAiNGOException(errmsg.str());
     }
     // Loop over all linearization points
     unsigned wantedLins = _differentNumberOfLins ? _DAGobj->chosenLinPoints.size() : _nLinObj[0];
@@ -545,8 +541,8 @@ LbpClp::_update_LP_ineq(const vMC &resultRelaxationVMC, const std::vector<std::v
     // Linearize inequality constraints:
     if (resultRelaxationVMC.nsub() == 0) {
         std::ostringstream errmsg;
-        errmsg << "Error in evaluation of relaxed inequality constraint " << iIneq + 1 << " (of " << _nineq << ") (vector): constraint does not depend on variables.";
-        throw(MAiNGOException(errmsg.str()));
+        errmsg << "  Error in evaluation of relaxed inequality constraint " << iIneq + 1 << " (of " << _nineq << ") (vector) for CLP: constraint does not depend on variables.";
+        throw MAiNGOException(errmsg.str());
     }
     // Loop over all linearization points
     unsigned wantedLins = _differentNumberOfLins ? _DAGobj->chosenLinPoints.size() : _nLinIneq[iIneq];
@@ -586,8 +582,8 @@ LbpClp::_update_LP_eq(const vMC &resultRelaxationCvVMC, const vMC &resultRelaxat
     // Linearize equality Constraints:
     if (resultRelaxationCvVMC.nsub() == 0 || resultRelaxationCcVMC.nsub() == 0) {
         std::ostringstream errmsg;
-        errmsg << "Error in evaluation of relaxed equality constraint " << iEq + 1 << " (of " << _neq << ") (vector): constraint does not depend on variables.";
-        throw(MAiNGOException(errmsg.str()));
+        errmsg << "  Error in evaluation of relaxed equality constraint " << iEq + 1 << " (of " << _neq << ") (vector) for CLP: constraint does not depend on variables.";
+        throw MAiNGOException(errmsg.str());
     }
     // Loop over all linearization points
     unsigned wantedLins = _differentNumberOfLins ? _DAGobj->chosenLinPoints.size() : _nLinEq[iEq];
@@ -651,8 +647,8 @@ LbpClp::_update_LP_ineqRelaxationOnly(const vMC &resultRelaxationVMC, const std:
     // Linearize relaxation only inequalities
     if (resultRelaxationVMC.nsub() == 0) {
         std::ostringstream errmsg;
-        errmsg << "Error in evaluation of relaxation-only inequality constraint " << iIneqRelaxationOnly + 1 << " (of " << _nineqRelaxationOnly << ") (vector): constraint does not depend on variables.";
-        throw(MAiNGOException(errmsg.str()));
+        errmsg << "  Error in evaluation of relaxation-only inequality constraint " << iIneqRelaxationOnly + 1 << " (of " << _nineqRelaxationOnly << ") (vector) for CLP: constraint does not depend on variables.";
+        throw MAiNGOException(errmsg.str());
     }
     // Loop over all linearization points
     unsigned wantedLins = _differentNumberOfLins ? _DAGobj->chosenLinPoints.size() : _nLinIneqRelaxationOnly[iIneqRelaxationOnly];
@@ -692,8 +688,8 @@ LbpClp::_update_LP_eqRelaxationOnly(const vMC &resultRelaxationCvVMC, const vMC
     // Linearize relaxation only equalities
     if (resultRelaxationCvVMC.nsub() == 0 || resultRelaxationCcVMC.nsub() == 0) {
         std::ostringstream errmsg;
-        errmsg << "Error in evaluation of relaxation-only equality constraint " << iEqRelaxationOnly + 1 << " (of " << _neqRelaxationOnly << ") (vector): constraint does not depend on variables.";
-        throw(MAiNGOException(errmsg.str()));
+        errmsg << "  Error in evaluation of relaxation-only equality constraint " << iEqRelaxationOnly + 1 << " (of " << _neqRelaxationOnly << ") (vector) for CLP: constraint does not depend on variables.";
+        throw MAiNGOException(errmsg.str());
     }
     // Loop over all linearization points
     unsigned wantedLins = _differentNumberOfLins ? _DAGobj->chosenLinPoints.size() : _nLinEqRelaxationOnly[iEqRelaxationOnly];
@@ -756,8 +752,8 @@ LbpClp::_update_LP_ineq_squash(const vMC &resultRelaxationVMC, const std::vector
     // Linearize inequality constraints:
     if (resultRelaxationVMC.nsub() == 0) {
         std::ostringstream errmsg;
-        errmsg << "Error in evaluation of relaxed squash inequality constraint " << iIneqSquash + 1 << " (of " << _nineqSquash << ") (vector): constraint does not depend on variables.";
-        throw(MAiNGOException(errmsg.str()));
+        errmsg << "  Error in evaluation of relaxed squash inequality constraint " << iIneqSquash + 1 << " (of " << _nineqSquash << ") (vector) for CLP: constraint does not depend on variables.";
+        throw MAiNGOException(errmsg.str());
     }
     // Loop over all linearization points
     unsigned wantedLins = _differentNumberOfLins ? _DAGobj->chosenLinPoints.size() : _nLinIneqSquash[iIneqSquash];
@@ -900,10 +896,10 @@ LbpClp::_solve_LP(const babBase::BabNode &currentNode)
         _clp.dual();
     }
     catch (std::exception &e) {
-        throw(MAiNGOException("Error while solving the LP with CLP.", e, currentNode));
+        throw MAiNGOException("  Error while solving the LP with CLP.", e, currentNode);
     }
     catch (...) {
-        throw(MAiNGOException("Unknown error while solving the LP with CLP.", currentNode));
+        throw MAiNGOException("  Unknown error while solving the LP with CLP.", currentNode);
     }
 }
 
@@ -940,7 +936,7 @@ LbpClp::_get_solution_point(std::vector<double> &solution, double &etaVal)
         etaVal       = _clp.objectiveValue();
     }
     catch (std::exception &e) {
-        throw(MAiNGOException("  Error querying solution point from CLP.", e));
+        throw MAiNGOException("  Error querying solution point from CLP.", e);
     }
     // Ok, successfully obtained solution point
     solution.clear();
@@ -974,7 +970,7 @@ LbpClp::_get_multipliers(std::vector<double> &multipliers)
         }
     }
     catch (std::exception &e) {
-        throw(MAiNGOException("  Could not extract multipliers from CLP", e));
+        throw MAiNGOException("  Error while extracting multipliers from CLP", e);
     }
 }
 
@@ -1121,7 +1117,7 @@ LbpClp::_check_infeasibility(const babBase::BabNode &currentNode)
 
             farkasVals = _clp.infeasibilityRay();
             if (!farkasVals) {
-                _logger->print_message("  Warning: Could not retrieve Farkas' values from CLP. Continuing with parent LBD...\n", _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                _logger->print_message("  Warning: Could not retrieve Farkas' values from CLP. Continuing with parent LBD...\n", _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                 return SUBSOLVER_FEASIBLE;
             }
 
@@ -1140,8 +1136,8 @@ LbpClp::_check_infeasibility(const babBase::BabNode &currentNode)
     catch (std::exception &e) {
         std::ostringstream errmsg;
         errmsg << "  Error: Variables at dual point of Farkas' certificate of LBP could not be extracted from CLP. " << std::endl;
-        errmsg << "  CLP status is: " << _clp.status() << std::endl;
-        throw(MAiNGOException(errmsg.str(), e, currentNode));
+        errmsg << "  CLP status is: " << _clp.status();
+        throw MAiNGOException(errmsg.str(), e, currentNode);
     }
 
     if (reallyInfeasible) {
@@ -1291,10 +1287,8 @@ LbpClp::_check_infeasibility(const babBase::BabNode &currentNode)
 #endif
 
             std::ostringstream outstr;
-            outstr << "  Infeasibility condition violated" << std::endl
-                   << "  It holds that (" << std::setprecision(16) << res1 << " =) y^T * b - y^T *A *x (=  " << std::setprecision(16) << res2
-                   << ") <= 0. For further information, see Farkas' Lemma." << std::endl;
-            _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+            outstr << "  Warning: CLP provided an invalid Farkas' certificate. Continuing with parent LBD..." << std::endl;
+            _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
             return SUBSOLVER_FEASIBLE;
         }
         return SUBSOLVER_INFEASIBLE;
@@ -1330,7 +1324,7 @@ LbpClp::_check_feasibility(const std::vector<double> &solution)
                         }
                     }
                     outstr << "           Continuing with parent LBD." << std::endl;
-                    _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                    _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                 }
                 return SUBSOLVER_INFEASIBLE;
             }
@@ -1355,7 +1349,7 @@ LbpClp::_check_feasibility(const std::vector<double> &solution)
                         }
                     }
                     outstr << "           Continuing with parent LBD." << std::endl;
-                    _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                    _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                 }
                 return SUBSOLVER_INFEASIBLE;
             }
@@ -1375,7 +1369,7 @@ LbpClp::_check_feasibility(const std::vector<double> &solution)
                         }
                     }
                     outstr << "           Continuing with parent LBD." << std::endl;
-                    _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                    _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                 }
                 return SUBSOLVER_INFEASIBLE;
             }
@@ -1400,7 +1394,7 @@ LbpClp::_check_feasibility(const std::vector<double> &solution)
                         }
                     }
                     outstr << "           Continuing with parent LBD." << std::endl;
-                    _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                    _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                 }
                 return SUBSOLVER_INFEASIBLE;
             }
@@ -1425,7 +1419,7 @@ LbpClp::_check_feasibility(const std::vector<double> &solution)
                         }
                     }
                     outstr << "           Continuing with parent LBD." << std::endl;
-                    _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                    _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                 }
                 return SUBSOLVER_INFEASIBLE;
             }
@@ -1445,7 +1439,7 @@ LbpClp::_check_feasibility(const std::vector<double> &solution)
                         }
                     }
                     outstr << "           Continuing with parent LBD." << std::endl;
-                    _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                    _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                 }
                 return SUBSOLVER_INFEASIBLE;
             }
@@ -1470,7 +1464,7 @@ LbpClp::_check_feasibility(const std::vector<double> &solution)
                         }
                     }
                     outstr << "           Continuing with parent LBD." << std::endl;
-                    _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                    _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                 }
                 return SUBSOLVER_INFEASIBLE;
             }
@@ -1541,7 +1535,7 @@ LbpClp::_check_optimality(const babBase::BabNode &currentNode, const double newL
             }
     }
     catch (std::exception &e) {
-        throw MAiNGOException("  Error in optimality check:: Variables at dual solution of LBP could not be extracted from CLP", e, currentNode);
+        throw MAiNGOException("  Error in optimality check: Variables at dual solution of LBP could not be extracted from CLP", e, currentNode);
     }
 
     // Ok, successfully obtained dual solution point
@@ -1604,7 +1598,7 @@ LbpClp::_check_optimality(const babBase::BabNode &currentNode, const double newL
     if (!mc::isequal(dual, newLBD, _computationTol, _computationTol)) {
         std::ostringstream outstr;
         outstr << "  Calculated dual: " << dual << " does not equal the solution value returned by CLP: " << newLBD << std::endl;
-        _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+        _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
 
 #ifdef LP__WRITE_CHECK_FILES
         std::string str = "clp_optim_check";
@@ -1633,7 +1627,7 @@ LbpClp::_check_optimality(const babBase::BabNode &currentNode, const double newL
             }
         }
         outstr << "  CLP failed in returning a correct objective value! Falling back to interval arithmetic and proceeding." << std::endl;
-        _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+        _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
 
 #ifdef LP__WRITE_CHECK_FILES
         std::string str = "clp_optim_check";
diff --git a/src/lbpCplex.cpp b/src/lbpCplex.cpp
index 1dd930c6c0a42995d74d00930f207f6ff4a21328..fabb5c6625007dba03864fdc186ebfdd26305224 100644
--- a/src/lbpCplex.cpp
+++ b/src/lbpCplex.cpp
@@ -7,17 +7,12 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file lbpCplex.cpp
- *
- * @brief File containing implementation of LbpCplex class used for solving the
- *        lower bounding problems.
- *
  **********************************************************************************/
 
 #ifdef HAVE_CPLEX
 
 #include "lbpCplex.h"
-#include "exceptions.h"
+#include "MAiNGOException.h"
 #include "lbpDagObj.h"
 
 
@@ -29,7 +24,7 @@ using namespace lbp;
 // constructor for the lower bounding solver
 LbpCplex::LbpCplex(mc::FFGraph &DAG, const std::vector<mc::FFVar> &DAGvars, const std::vector<mc::FFVar> &DAGfunctions, const std::vector<babBase::OptimizationVariable> &variables,
                    const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn,
-                   Settings *settingsIn, Logger *loggerIn, std::vector<Constraint> *constraintPropertiesIn):
+                   std::shared_ptr<Settings> settingsIn, std::shared_ptr<Logger> loggerIn, std::shared_ptr<std::vector<Constraint>> constraintPropertiesIn):
     LowerBoundingSolver(DAG, DAGvars, DAGfunctions, variables, nineqIn, neqIn, nineqRelaxationOnlyIn, neqRelaxationOnlyIn, nineqSquashIn, settingsIn, loggerIn, constraintPropertiesIn)
 {
 
@@ -139,15 +134,14 @@ LbpCplex::LbpCplex(mc::FFGraph &DAG, const std::vector<mc::FFVar> &DAGvars, cons
         cplex.setParam(IloCplex::Param::Barrier::Limits::Iteration, 100000);
         cplex.setParam(IloCplex::Param::Network::Iterations, 100000);
         // Set options
-        cplex.setParam(IloCplex::EpOpt, 1e-9);    // Tightest possible opt tolerance in CPLEX
-        cplex.setParam(IloCplex::EpRHS, 1e-9);    // Tightest possible feas tolerance in CPLEX
+        cplex.setParam(IloCplex::EpOpt, 1e-9);              // Tightest possible opt tolerance in CPLEX
+        cplex.setParam(IloCplex::EpRHS, 1e-9);              // Tightest possible feas tolerance in CPLEX
+        cplex.setParam(IloCplex::Param::RandomSeed, 42);    // Make the behavior of CPLEX deterministic
         // Disable scaling of LP matrix, we experienced numerical problems within CPLEX for scaled problems, e.g., CPLEX declaring problems as infeasible although there is a delta-feasible point
         cplex.setParam(IloCplex::Param::Read::Scale, 0);
-        // Suppress output
-        if (_maingoSettings->LBP_verbosity <= VERB_NORMAL || _maingoSettings->outstreamVerbosity == 0 || _maingoSettings->outstreamVerbosity == 2) {
+        // Suppress output - unfortunately we cannot redirect the output of CPLEX to our log file right now...
+        if ((_maingoSettings->LBP_verbosity <= VERB_NORMAL) || (_maingoSettings->loggingDestination == LOGGING_NONE) || (_maingoSettings->loggingDestination == LOGGING_FILE)) {
             cplex.setOut(cplxEnv.getNullStream());
-        }
-        if (_maingoSettings->LBP_verbosity <= VERB_NORMAL || _maingoSettings->outstreamVerbosity == 0 || _maingoSettings->outstreamVerbosity == 2) {
             cplex.setWarning(cplxEnv.getNullStream());
         }
 
@@ -187,10 +181,10 @@ LbpCplex::LbpCplex(mc::FFGraph &DAG, const std::vector<mc::FFVar> &DAGvars, cons
 #endif
     }
     catch (std::exception &e) {
-        throw(MAiNGOException("  Error initializing CPLEX during initialization of LowerBoundingSolver.", e));
+        throw MAiNGOException("  Error initializing CPLEX during initialization of LowerBoundingSolver.", e);
     }
     catch (...) {
-        throw(MAiNGOException("  Unknown error initializing CPLEX during initialization of LowerBoundingSolver."));
+        throw MAiNGOException("  Unknown error initializing CPLEX during initialization of LowerBoundingSolver.");
     }
 }
 
@@ -241,8 +235,8 @@ LbpCplex::_update_LP_obj(const MC &resultRelaxation, const std::vector<double> &
     // Linearize objective function:
     if (resultRelaxation.nsub() == 0) {
         std::ostringstream errmsg;
-        errmsg << "  Error in evaluation of the relaxed objective function: objective function does not depend on variables.";
-        throw(MAiNGOException(errmsg.str()));
+        errmsg << "  Error in evaluation of the relaxed objective function for CPLEX: objective function does not depend on variables.";
+        throw MAiNGOException(errmsg.str());
     }
     double rhs = 0;
     // If the numbers are too large, we simply set the whole row to 0
@@ -293,8 +287,8 @@ LbpCplex::_update_LP_ineq(const MC &resultRelaxation, const std::vector<double>
     // Linearize inequality constraints:
     if (resultRelaxation.nsub() == 0) {
         std::ostringstream errmsg;
-        errmsg << "  Error in evaluation of relaxed inequality constraint " << iIneq + 1 << " (of " << _nineq << "): constraint does not depend on variables.";
-        throw(MAiNGOException(errmsg.str()));
+        errmsg << "  Error in evaluation of relaxed inequality constraint " << iIneq + 1 << " (of " << _nineq << ") for CPLEX: constraint does not depend on variables.";
+        throw MAiNGOException(errmsg.str());
     }
     double rhs = 0;
     if (std::fabs(-resultRelaxation.cv()) > 1e19 || (resultRelaxation.cv() != resultRelaxation.cv())) {
@@ -339,8 +333,8 @@ LbpCplex::_update_LP_eq(const MC &resultRelaxationCv, const MC &resultRelaxation
     // Linearize equality Constraints:
     if (resultRelaxationCv.nsub() == 0 || resultRelaxationCc.nsub() == 0) {
         std::ostringstream errmsg;
-        errmsg << "  Error in evaluation of relaxed equality constraint " << iEq + 1 << " (of " << _neq << "): constraint does not depend on variables.";
-        throw(MAiNGOException(errmsg.str()));
+        errmsg << "  Error in evaluation of relaxed equality constraint " << iEq + 1 << " (of " << _neq << ") for CPLEX: constraint does not depend on variables.";
+        throw MAiNGOException(errmsg.str());
     }
     double rhs = 0;
     // Convex relaxation <=0:
@@ -418,8 +412,8 @@ LbpCplex::_update_LP_ineqRelaxationOnly(const MC &resultRelaxation, const std::v
     // Linearize relaxation only inequalities
     if (resultRelaxation.nsub() == 0) {
         std::ostringstream errmsg;
-        errmsg << "  Error in evaluation of relaxation-only inequality constraint " << iIneqRelaxationOnly + 1 << " (of " << _nineqRelaxationOnly << "): constraint does not depend on variables.";
-        throw(MAiNGOException(errmsg.str()));
+        errmsg << "  Error in evaluation of relaxation-only inequality constraint " << iIneqRelaxationOnly + 1 << " (of " << _nineqRelaxationOnly << ") for CPLEX: constraint does not depend on variables.";
+        throw MAiNGOException(errmsg.str());
     }
     double rhs = 0;
     if (std::fabs(resultRelaxation.cv()) > 1e19 || (resultRelaxation.cv() != resultRelaxation.cv())) {
@@ -464,8 +458,8 @@ LbpCplex::_update_LP_eqRelaxationOnly(const MC &resultRelaxationCv, const MC &re
     // Linearize relaxation only equalities
     if (resultRelaxationCv.nsub() == 0 || resultRelaxationCc.nsub() == 0) {
         std::ostringstream errmsg;
-        errmsg << "  Error in evaluation of relaxation-only equality constraint " << iEqRelaxationOnly + 1 << " (of " << _neqRelaxationOnly << "): constraint does not depend on variables.";
-        throw(MAiNGOException(errmsg.str()));
+        errmsg << "  Error in evaluation of relaxation-only equality constraint " << iEqRelaxationOnly + 1 << " (of " << _neqRelaxationOnly << ") for CPLEX: constraint does not depend on variables.";
+        throw MAiNGOException(errmsg.str());
     }
     double rhs = 0;
     // Convex relaxation <=0:
@@ -542,8 +536,8 @@ LbpCplex::_update_LP_ineq_squash(const MC &resultRelaxation, const std::vector<d
     // Linearize inequality constraints:
     if (resultRelaxation.nsub() == 0) {
         std::ostringstream errmsg;
-        errmsg << "  Error in evaluation of relaxed squash inequality constraint " << iIneqSquash + 1 << " (of " << _nineqSquash << "): constraint does not depend on variables.";
-        throw(MAiNGOException(errmsg.str()));
+        errmsg << "  Error in evaluation of relaxed squash inequality constraint " << iIneqSquash + 1 << " (of " << _nineqSquash << ") for CPLEX: constraint does not depend on variables.";
+        throw MAiNGOException(errmsg.str());
     }
     double rhs = 0;
     if (std::fabs(-resultRelaxation.cv()) > 1e19 || (resultRelaxation.cv() != resultRelaxation.cv())) {
@@ -588,8 +582,8 @@ LbpCplex::_update_LP_obj(const vMC &resultRelaxationVMC, const std::vector<std::
     // Linearize objective function:
     if (resultRelaxationVMC.nsub() == 0) {
         std::ostringstream errmsg;
-        errmsg << "  Error in evaluation of the relaxed objective function (vector): objective function does not depend on variables.";
-        throw(MAiNGOException(errmsg.str()));
+        errmsg << "  Error in evaluation of the relaxed objective function (vector) for CPLEX: objective function does not depend on variables.";
+        throw MAiNGOException(errmsg.str());
     }
     // Loop over all linearization points
     unsigned wantedLins = _differentNumberOfLins ? _DAGobj->chosenLinPoints.size() : _nLinObj[0];
@@ -644,8 +638,8 @@ LbpCplex::_update_LP_ineq(const vMC &resultRelaxationVMC, const std::vector<std:
     // Linearize inequality constraints:
     if (resultRelaxationVMC.nsub() == 0) {
         std::ostringstream errmsg;
-        errmsg << "  Error in evaluation of relaxed inequality constraint " << iIneq + 1 << " (of " << _nineq << ") (vector): constraint does not depend on variables.";
-        throw(MAiNGOException(errmsg.str()));
+        errmsg << "  Error in evaluation of relaxed inequality constraint " << iIneq + 1 << " (of " << _nineq << ") (vector) for CPLEX: constraint does not depend on variables.";
+        throw MAiNGOException(errmsg.str());
     }
     // Loop over all linearization points
     unsigned wantedLins = _differentNumberOfLins ? _DAGobj->chosenLinPoints.size() : _nLinIneq[iIneq];
@@ -694,8 +688,8 @@ LbpCplex::_update_LP_eq(const vMC &resultRelaxationCvVMC, const vMC &resultRelax
     // Linearize equality Constraints:
     if (resultRelaxationCvVMC.nsub() == 0 || resultRelaxationCcVMC.nsub() == 0) {
         std::ostringstream errmsg;
-        errmsg << "  Error in evaluation of relaxed equality constraint " << iEq + 1 << " (of " << _neq << ") (vector): constraint does not depend on variables.";
-        throw(MAiNGOException(errmsg.str()));
+        errmsg << "  Error in evaluation of relaxed equality constraint " << iEq + 1 << " (of " << _neq << ") (vector) for CPLEX: constraint does not depend on variables.";
+        throw MAiNGOException(errmsg.str());
     }
     // Loop over all linearization points
     unsigned wantedLins = _differentNumberOfLins ? _DAGobj->chosenLinPoints.size() : _nLinEq[iEq];
@@ -777,8 +771,8 @@ LbpCplex::_update_LP_ineqRelaxationOnly(const vMC &resultRelaxationVMC, const st
     // Linearize relaxation only inequalities
     if (resultRelaxationVMC.nsub() == 0) {
         std::ostringstream errmsg;
-        errmsg << "  Error in evaluation of relaxation-only inequality constraint " << iIneqRelaxationOnly + 1 << " (of " << _nineqRelaxationOnly << ") (vector): constraint does not depend on variables.";
-        throw(MAiNGOException(errmsg.str()));
+        errmsg << "  Error in evaluation of relaxation-only inequality constraint " << iIneqRelaxationOnly + 1 << " (of " << _nineqRelaxationOnly << ") (vector) for CPLEX: constraint does not depend on variables.";
+        throw MAiNGOException(errmsg.str());
     }
     // Loop over all linearization points
     unsigned wantedLins = _differentNumberOfLins ? _DAGobj->chosenLinPoints.size() : _nLinIneqRelaxationOnly[iIneqRelaxationOnly];
@@ -827,8 +821,8 @@ LbpCplex::_update_LP_eqRelaxationOnly(const vMC &resultRelaxationCvVMC, const vM
     // Linearize relaxation only equalities
     if (resultRelaxationCvVMC.nsub() == 0 || resultRelaxationCcVMC.nsub() == 0) {
         std::ostringstream errmsg;
-        errmsg << "  Error in evaluation of relaxation-only equality constraint " << iEqRelaxationOnly + 1 << " (of " << _neqRelaxationOnly << ") (vector): constraint does not depend on variables.";
-        throw(MAiNGOException(errmsg.str()));
+        errmsg << "  Error in evaluation of relaxation-only equality constraint " << iEqRelaxationOnly + 1 << " (of " << _neqRelaxationOnly << ") (vector) for CPLEX: constraint does not depend on variables.";
+        throw MAiNGOException(errmsg.str());
     }
     // Loop over all linearization points
     unsigned wantedLins = _differentNumberOfLins ? _DAGobj->chosenLinPoints.size() : _nLinEqRelaxationOnly[iEqRelaxationOnly];
@@ -909,8 +903,8 @@ LbpCplex::_update_LP_ineq_squash(const vMC &resultRelaxationVMC, const std::vect
     // Linearize inequality constraints:
     if (resultRelaxationVMC.nsub() == 0) {
         std::ostringstream errmsg;
-        errmsg << "  Error in evaluation of relaxed squash inequality constraint " << iIneqSquash + 1 << " (of " << _nineqSquash << ") (vector): constraint does not depend on variables.";
-        throw(MAiNGOException(errmsg.str()));
+        errmsg << "  Error in evaluation of relaxed squash inequality constraint " << iIneqSquash + 1 << " (of " << _nineqSquash << ") (vector) for CPLEX: constraint does not depend on variables.";
+        throw MAiNGOException(errmsg.str());
     }
     // Loop over all linearization points
     unsigned wantedLins = _differentNumberOfLins ? _DAGobj->chosenLinPoints.size() : _nLinIneqSquash[iIneqSquash];
@@ -959,10 +953,10 @@ LbpCplex::_solve_LP(const babBase::BabNode &currentNode)
         cplex.solve();
     }
     catch (std::exception &e) {
-        throw(MAiNGOException("  Error while solving the LP with CPLEX.", e, currentNode));
+        throw MAiNGOException("  Error while solving the LP with CPLEX.", e, currentNode);
     }
     catch (...) {
-        throw(MAiNGOException("  Unknown error while solving the LP with CPLEX.", currentNode));
+        throw MAiNGOException("  Unknown error while solving the LP with CPLEX.", currentNode);
     }
 }
 
@@ -1001,7 +995,7 @@ LbpCplex::_get_solution_point(std::vector<double> &solution, double &etaVal)
         vals.end();
         std::ostringstream errmsg;
         errmsg << "  Could not extract solution point from CPLEX: " << e;
-        throw(MAiNGOException(errmsg.str()));
+        throw MAiNGOException(errmsg.str());
     }
     // Ok, successfully obtained solution point
     solution.clear();
@@ -1037,12 +1031,10 @@ LbpCplex::_get_multipliers(std::vector<double> &multipliers)
         }
         cplxMultipliers.end();
     }
-    catch (IloException &e) {
+    catch (const std::exception &e) {
         // This is okay, not providing multipliers
         cplxMultipliers.end();
-        std::ostringstream errmsg;
-        errmsg << "  Could not extract multipliers from CPLEX: " << e;
-        throw(MAiNGOException(errmsg.str()));
+        throw MAiNGOException("  Could not extract multipliers from CPLEX.", e);
     }
 }
 
@@ -1217,9 +1209,9 @@ LbpCplex::_check_infeasibility(const babBase::BabNode &currentNode)
     }
     catch (IloException &e) {
         std::ostringstream errmsg;
-        errmsg << "  Warning: Variables at dual point of Farkas' certificate of LBP could not be extracted from CPLEX: " << e << std::endl;
-        errmsg << "           CPLEX status is: " << cplex.getStatus() << std::endl;
-        throw(MAiNGOException(errmsg.str(), currentNode));
+        errmsg << "  Error: Variables at dual point of Farkas' certificate of LBP could not be extracted from CPLEX: " << e << std::endl;
+        errmsg << "         CPLEX status is: " << cplex.getStatus() << std::endl;
+        throw MAiNGOException(errmsg.str(), currentNode);
     }
     if (reallyInfeasible) {
         // Check Farkas' Lemma, for the application please read some literature.
@@ -1368,7 +1360,7 @@ LbpCplex::_check_infeasibility(const babBase::BabNode &currentNode)
             outstr << "  Warning: Infeasibility condition violated" << std::endl
                    << "           It holds that (" << std::setprecision(16) << res1 << " =) y^T * b - y^T *A *x (=  " << std::setprecision(16) << res2
                    << ") <= 0. For further information, see Farkas' Lemma." << std::endl;
-            _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+            _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
             return SUBSOLVER_FEASIBLE;
         }
         return SUBSOLVER_INFEASIBLE;
@@ -1404,7 +1396,7 @@ LbpCplex::_check_feasibility(const std::vector<double> &solution)
                         }
                     }
                     outstr << "           Continuing with parent LBD." << std::endl;
-                    _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                    _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                 }
                 return SUBSOLVER_INFEASIBLE;
             }
@@ -1429,7 +1421,7 @@ LbpCplex::_check_feasibility(const std::vector<double> &solution)
                         }
                     }
                     outstr << "           Continuing with parent LBD." << std::endl;
-                    _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                    _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                 }
                 return SUBSOLVER_INFEASIBLE;
             }
@@ -1449,7 +1441,7 @@ LbpCplex::_check_feasibility(const std::vector<double> &solution)
                         }
                     }
                     outstr << "           Continuing with parent LBD." << std::endl;
-                    _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                    _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                 }
                 return SUBSOLVER_INFEASIBLE;
             }
@@ -1474,7 +1466,7 @@ LbpCplex::_check_feasibility(const std::vector<double> &solution)
                         }
                     }
                     outstr << "           Continuing with parent LBD." << std::endl;
-                    _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                    _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                 }
                 return SUBSOLVER_INFEASIBLE;
             }
@@ -1499,7 +1491,7 @@ LbpCplex::_check_feasibility(const std::vector<double> &solution)
                         }
                     }
                     outstr << "           Continuing with parent LBD." << std::endl;
-                    _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                    _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                 }
                 return SUBSOLVER_INFEASIBLE;
             }
@@ -1519,7 +1511,7 @@ LbpCplex::_check_feasibility(const std::vector<double> &solution)
                         }
                     }
                     outstr << "           Continuing with parent LBD." << std::endl;
-                    _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                    _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                 }
                 return SUBSOLVER_INFEASIBLE;
             }
@@ -1544,7 +1536,7 @@ LbpCplex::_check_feasibility(const std::vector<double> &solution)
                         }
                     }
                     outstr << "           Continuing with parent LBD." << std::endl;
-                    _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                    _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                 }
                 return SUBSOLVER_INFEASIBLE;
             }
@@ -1652,7 +1644,7 @@ LbpCplex::_check_optimality(const babBase::BabNode &currentNode, const double ne
     if (!mc::isequal(dual, newLBD, _computationTol * 1e1, _computationTol * 1e1)) {
         std::ostringstream outstr;
         outstr << "  Calculated dual: " << dual << " does not equal the solution value returned by CPLEX: " << newLBD << std::endl;
-        _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+        _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
 #ifdef LP__WRITE_CHECK_FILES
         cplex.exportModel("lpex_optim_check");
 #endif
@@ -1677,7 +1669,7 @@ LbpCplex::_check_optimality(const babBase::BabNode &currentNode, const double ne
             }
         }
         outstr << "  CPLEX failed in returning a correct objective value! Falling back to interval arithmetic and proceeding." << std::endl;
-        _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+        _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
 #ifdef LP__WRITE_CHECK_FILES
         cplex.exportModel("lpex_optim_check");
 #endif
@@ -1706,14 +1698,10 @@ LbpCplex::_write_LP_to_file(std::string &fileName)
         cplex.exportModel(str.c_str());
     }
     catch (IloException &e) {
-        std::ostringstream errmsg;
-        errmsg << "  Error: Could not export model from CPLEX." << e;
-        throw(MAiNGOException(errmsg.str()));
+        throw MAiNGOException("  Error while exporting model from CPLEX.", e);
     }
     catch (...) {
-        std::ostringstream errmsg;
-        errmsg << "  Error: Could not export model from CPLEX.";
-        throw(MAiNGOException(errmsg.str()));
+        throw MAiNGOException("  Unknown error while exporting model from CPLEX.";
     }
 }
 #endif
diff --git a/src/lbpDagObj.cpp b/src/lbpDagObj.cpp
index f64b41928c764b27c941dd1789e279d2a850d819..d30d67414cc865acb04a5afbf13a391c30651d9f 100644
--- a/src/lbpDagObj.cpp
+++ b/src/lbpDagObj.cpp
@@ -7,11 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file lbpDagObj.cpp
- *
- * @brief File containing implementation of member functions of
- *        the lbp::DagObj struct
- *
  **********************************************************************************/
 
 #include "lbpDagObj.h"
@@ -27,7 +22,7 @@ namespace lbp {
 // constructor
 DagObj::DagObj(mc::FFGraph &DAG, const std::vector<mc::FFVar> &DAGvars, const std::vector<mc::FFVar> &DAGfunctions,
                const std::vector<babBase::OptimizationVariable> &variables, const unsigned nineq, const unsigned neq, const unsigned nineqRelaxationOnly,
-               const unsigned neqRelaxationOnly, const unsigned nineqSquash, Settings *settings, std::vector<Constraint> *constraintPropertiesIn):
+               const unsigned neqRelaxationOnly, const unsigned nineqSquash, std::shared_ptr<Settings> settings, std::shared_ptr<std::vector<Constraint>> constraintPropertiesIn):
     _constraintProperties(constraintPropertiesIn)
 {
     const unsigned nvar = variables.size();
diff --git a/src/lbpFactory.cpp b/src/lbpFactory.cpp
index f560317d29db3a4003bbf16fabf7b676c437f62e..d77669d1707bb81db6c69dbcc3ee18286cebeef5 100644
--- a/src/lbpFactory.cpp
+++ b/src/lbpFactory.cpp
@@ -7,17 +7,13 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file lbpFactory.cpp
- *
- * @brief File containing implementation of factory function for initializing
- *        different lower bounding solver wrappers.
- *
  **********************************************************************************/
 
-#include "exceptions.h"
+#include "MAiNGOException.h"
 #include "lbp.h"
 #include "lbpClp.h"
 #include "lbpInterval.h"
+#include "logger.h"
 
 #ifdef HAVE_CPLEX    // If Cmake has found CPLEX this pre-processor variable is set
 #include "lbpCplex.h"
@@ -34,39 +30,40 @@ std::shared_ptr<LowerBoundingSolver>
 lbp::make_lbp_solver(mc::FFGraph &DAG, const std::vector<mc::FFVar> &DAGvars, const std::vector<mc::FFVar> &DAGfunctions,
                      const std::vector<babBase::OptimizationVariable> &variables, const unsigned nineqIn, const unsigned neqIn,
                      const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn,
-                     Settings *settingsIn, Logger *loggerIn, std::vector<Constraint> *constraintPropertiesIn)
+                     std::shared_ptr<Settings> settingsIn, std::shared_ptr<Logger> loggerIn, std::shared_ptr<std::vector<Constraint>> constraintPropertiesIn)
 {
 
     switch (settingsIn->LBP_solver) {
-        case SOLVER_MAiNGO: {
+        case LBP_SOLVER_MAiNGO: {
+            loggerIn->print_message("      Lower bounding: MAiNGO internal solver (McCormick relaxations for objective, intervals for constraints)\n",
+                                    settingsIn->BAB_verbosity, VERB_NORMAL, settingsIn->loggingDestination);
             return std::make_shared<LowerBoundingSolver>(DAG, DAGvars, DAGfunctions, variables, nineqIn, neqIn,
                                                          nineqRelaxationOnlyIn, neqRelaxationOnlyIn, nineqSquashIn, settingsIn, loggerIn, constraintPropertiesIn);
         }
-        case SOLVER_INTERVAL: {
+        case LBP_SOLVER_INTERVAL: {
+            loggerIn->print_message("      Lower bounding: Interval extensions only\n", settingsIn->BAB_verbosity, VERB_NORMAL, settingsIn->loggingDestination);
             return std::make_shared<LbpInterval>(DAG, DAGvars, DAGfunctions, variables, nineqIn, neqIn,
                                                  nineqRelaxationOnlyIn, neqRelaxationOnlyIn, nineqSquashIn, settingsIn, loggerIn, constraintPropertiesIn);
         }
-        case SOLVER_CPLEX: {
+        case LBP_SOLVER_CPLEX: {
 #ifdef HAVE_CPLEX
+            loggerIn->print_message("      Lower bounding: CPLEX\n", settingsIn->BAB_verbosity, VERB_NORMAL, settingsIn->loggingDestination);
             return std::make_shared<LbpCplex>(DAG, DAGvars, DAGfunctions, variables, nineqIn, neqIn,
                                               nineqRelaxationOnlyIn, neqRelaxationOnlyIn, nineqSquashIn, settingsIn, loggerIn, constraintPropertiesIn);
 #else
-            // If MAiNGO does not have CPLEX, we use CLP instead
-            settingsIn->LBP_solver = SOLVER_CLP;
-            loggerIn->print_message("        The option LBP_solver was set to 2 (CPLEX) but your MAiNGO build does not contain CPLEX. Setting it to 3 (CLP).\n",
-                                    settingsIn->writeLog, settingsIn->LBP_verbosity, VERB_NONE, settingsIn->outstreamVerbosity);    // Save information that a change was made
-                                                                                                                                    // Falling through to CLP
+            throw MAiNGOException("  Error in LbpFactory: Cannot use lower bounding strategy LBP_SOLVER_CPLEX: Your MAiNGO build does not contain CPLEX.");
 #endif
         }
-        case SOLVER_CLP: {
+        case LBP_SOLVER_CLP: {
+            loggerIn->print_message("      Lower bounding: CLP\n", settingsIn->BAB_verbosity, VERB_NORMAL, settingsIn->loggingDestination);
             return std::make_shared<LbpClp>(DAG, DAGvars, DAGfunctions, variables, nineqIn, neqIn,
                                             nineqRelaxationOnlyIn, neqRelaxationOnlyIn, nineqSquashIn, settingsIn, loggerIn, constraintPropertiesIn);
         }
         default:
         {
             std::ostringstream errmsg;
-            errmsg << "  Error in LbpFactory: Unknown lower bounding solver: " << settingsIn->LBP_solver << std::endl;
-            throw(MAiNGOException(errmsg.str()));
+            errmsg << "  Error in LbpFactory: Unknown lower bounding solver: " << settingsIn->LBP_solver;
+            throw MAiNGOException(errmsg.str());
         }
     }
 }
\ No newline at end of file
diff --git a/src/lbpInterval.cpp b/src/lbpInterval.cpp
index f7d3dffb37c5c99fef91c6a4d99fbd653c700fdc..a8d40cc499dc9407c0b926e50ffb5b2ed8550930 100644
--- a/src/lbpInterval.cpp
+++ b/src/lbpInterval.cpp
@@ -7,11 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file lbpInterval.cpp
- *
- * @brief File containing implementation of LbpInterval class used for solving
- *        the lower bounding problems based on interval arithmetics only.
- *
  **********************************************************************************/
 
 #include "lbpInterval.h"
@@ -27,7 +22,7 @@ using namespace lbp;
 // constructor for the lower bounding solver
 LbpInterval::LbpInterval(mc::FFGraph &DAG, const std::vector<mc::FFVar> &DAGvars, const std::vector<mc::FFVar> &DAGfunctions, const std::vector<babBase::OptimizationVariable> &variables,
                          const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn,
-                         Settings *settingsIn, Logger *loggerIn, std::vector<Constraint> *constraintPropertiesIn):
+                         std::shared_ptr<Settings> settingsIn, std::shared_ptr<Logger> loggerIn, std::shared_ptr<std::vector<Constraint>> constraintPropertiesIn):
     LowerBoundingSolver(DAG, DAGvars, DAGfunctions, variables, nineqIn, neqIn, nineqRelaxationOnlyIn, neqRelaxationOnlyIn, nineqSquashIn, settingsIn, loggerIn, constraintPropertiesIn)
 {
 
@@ -230,28 +225,28 @@ void
 LbpInterval::_turn_off_specific_options()
 {
 
-    if (_maingoSettings->LBP_solver != SOLVER_INTERVAL) {
-        _logger->print_message("        Warning: Function for turning off specific options not implemented. Not changing any settings. Procedding...\n", _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+    if (_maingoSettings->LBP_solver != LBP_SOLVER_INTERVAL) {
+        _logger->print_message("        Warning: Function for turning off specific options not implemented. Not changing any settings. Procedding...\n", _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
     }
     else {
         if (_maingoSettings->LBP_linPoints != LINP_MID) {
-            _logger->print_message("        The option LBP_linPoints has to be 0 when using the interval-based solver (LBP_solver = 1). Setting it to 0.\n", _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+            _logger->print_message("        The option LBP_linPoints has to be 0 when using the interval-based solver (LBP_solver = 1). Setting it to 0.\n", _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
             _maingoSettings->LBP_linPoints = LINP_MID;    // Note that this already has been used in the constructor!
         }
         if (_maingoSettings->PRE_obbtMaxRounds > 0) {
-            _logger->print_message("        The option PRE_obbtMaxRounds has to be 0 when using the interval-based solver (LBP_solver = 1). Setting it to 0.\n", _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+            _logger->print_message("        The option PRE_obbtMaxRounds has to be 0 when using the interval-based solver (LBP_solver = 1). Setting it to 0.\n", _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
             _maingoSettings->PRE_obbtMaxRounds = 0;
         }
         if (_maingoSettings->BAB_alwaysSolveObbt) {
-            _logger->print_message("        The option BAB_alwaysSolveObbt has to be 0 when using the interval-based solver (LBP_solver = 1). Setting it to 0.\n", _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+            _logger->print_message("        The option BAB_alwaysSolveObbt has to be 0 when using the interval-based solver (LBP_solver = 1). Setting it to 0.\n", _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
             _maingoSettings->BAB_alwaysSolveObbt = false;
         }
         if (_maingoSettings->BAB_probing) {
-            _logger->print_message("        The option BAB_probing has to be 0 when using the interval-based solver (LBP_solver = 1). Setting it to 0.\n", _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+            _logger->print_message("        The option BAB_probing has to be 0 when using the interval-based solver (LBP_solver = 1). Setting it to 0.\n", _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
             _maingoSettings->BAB_probing = false;
         }
         if (_maingoSettings->BAB_dbbt) {
-            _logger->print_message("        The option BAB_dbbt has to be 0 when using the interval-based solver (LBP_solver = 1). Setting it to 0.\n", _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+            _logger->print_message("        The option BAB_dbbt has to be 0 when using the interval-based solver (LBP_solver = 1). Setting it to 0.\n", _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
             _maingoSettings->BAB_dbbt = false;
         }
     }
diff --git a/src/lbpLinearizationStrats.cpp b/src/lbpLinearizationStrats.cpp
index 2a735ca5748e808fdd4dea7d42c9779e78167c96..2bc673fe9ffc58553c81231c68c127c8cf9197e3 100644
--- a/src/lbpLinearizationStrats.cpp
+++ b/src/lbpLinearizationStrats.cpp
@@ -7,15 +7,9 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file lbpLinearizationStrats.cpp
- *
- * @brief File containing implementation of general linearization strategies
- *        declared in the LowerBoundingSolver.
- *
  **********************************************************************************/
 
-
-#include "exceptions.h"
+#include "MAiNGOException.h"
 #include "lbp.h"
 #include "lbpDagObj.h"
 
@@ -91,36 +85,17 @@ LowerBoundingSolver::_linearize_functions_at_linpoint(std::vector<MC> &resultRel
             _DAGobj->DAG.eval(subgraph, _DAGobj->MCarray, functions.size(), functions.data(), resultRelaxation.data(), _nvar, _DAGobj->vars.data(), _DAGobj->McPoint.data());
         }
     }
-#if defined USE_INTERVAL
-    catch (I::Exception &e) {
-        std::ostringstream errmsg;
-        errmsg << "  Error in natural interval extension:" << std::endl
-               << "  " << e.what() << std::endl;
-        throw(MAiNGOException(errmsg.str()));
+    catch (const filib::interval_io_exception &e) {
+        throw MAiNGOException(std::string("  Error in interval extensions: ") + e.what());
     }
-#endif
-#if defined USE_FILIB
-    catch (filib::interval_io_exception &e) {
-        std::ostringstream errmsg;
-        errmsg << "  Error in natural interval extension:" << std::endl
-               << "  " << e.what() << std::endl;
-        throw(MAiNGOException(errmsg.str()));
-    }
-#endif
-#if defined USE_PROFIL
-// Not supported
-#endif
-    catch (MC::Exceptions &e) {
-        std::ostringstream errmsg;
-        errmsg << "  Error " << e.ierr() << " in McCormick relaxation:" << std::endl
-               << "  " << e.what() << std::endl;
-        throw(MAiNGOException(errmsg.str()));
+    catch (const MC::Exceptions &e) {
+        throw MAiNGOException(std::string("  Error in evaluation of McCormick relaxations: ") + e.what());
     }
     catch (const std::exception &e) {
-        throw(MAiNGOException("  Error in evaluation of relaxed Model equations.\n ", e));
+        throw MAiNGOException("  Error in evaluation of relaxed model equations.", e);
     }
     catch (...) {
-        throw(MAiNGOException("  Unknown error in evaluation of relaxed Model equations.\n "));
+        throw MAiNGOException("  Unknown error in evaluation of relaxed model equations.");
     }
 
     if (_maingoSettings->LBP_subgradientIntervals) {
@@ -154,36 +129,17 @@ LowerBoundingSolver::_linearize_functions_at_preset_vector_linpoint(std::vector<
             _DAGobj->DAG.eval(subgraph, _DAGobj->vMCarray, functions.size(), functions.data(), resultRelaxationVMC.data(), _nvar, _DAGobj->vars.data(), _DAGobj->vMcPoint.data());
         }
     }
-#if defined USE_INTERVAL
-    catch (I::Exception &e) {
-        std::ostringstream errmsg;
-        errmsg << "  Error in natural interval extension:" << std::endl
-               << "  " << e.what() << std::endl;
-        throw(MAiNGOException(errmsg.str()));
-    }
-#endif
-#if defined USE_FILIB
-    catch (filib::interval_io_exception &e) {
-        std::ostringstream errmsg;
-        errmsg << "  Error in natural interval extension:" << std::endl
-               << "  " << e.what() << std::endl;
-        throw(MAiNGOException(errmsg.str()));
+    catch (const filib::interval_io_exception &e) {
+        throw MAiNGOException(std::string("  Error in interval extensions: ") + e.what());
     }
-#endif
-#if defined USE_PROFIL
-// Not supported
-#endif
-    catch (vMC::Exceptions &e) {
-        std::ostringstream errmsg;
-        errmsg << "  Error " << e.ierr() << " in vector McCormick relaxation:" << std::endl
-               << "  " << e.what() << std::endl;
-        throw(MAiNGOException(errmsg.str()));
+    catch (const MC::Exceptions &e) {
+        throw MAiNGOException(std::string("  Error in evaluation of McCormick relaxations: ") + e.what());
     }
     catch (const std::exception &e) {
-        throw(MAiNGOException("  Error in evaluation of relaxed Model equations.\n ", e));
+        throw MAiNGOException("  Error in evaluation of relaxed model equations. ", e);
     }
     catch (...) {
-        throw(MAiNGOException("  Unknown error in evaluation of relaxed Model equations.\n "));
+        throw MAiNGOException("  Unknown error in evaluation of relaxed model equations. ");
     }
 
     if (_maingoSettings->LBP_subgradientIntervals) {
@@ -246,7 +202,7 @@ LowerBoundingSolver::_linearization_points_Kelley(const babBase::BabNode &curren
             catch (std::exception &e) {
                 std::ostringstream outstr;
                 outstr << "  Warning: Variables at solution of auxiliary LP in Kelley's algorithm could be not obtained by LP solver:" << e.what() << std::endl;
-                _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                 // Return empty solution instead
                 break;
             }
@@ -533,7 +489,7 @@ LowerBoundingSolver::_linearization_points_Kelley_Simplex(const babBase::BabNode
             catch (std::exception &e) {
                 std::ostringstream outstr;
                 outstr << "  Warning: Variables at solution of auxiliary LP in Kelley's algorithm (with Simplex starting points) could be not obtained by LP solver:" << e.what() << std::endl;
-                _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                _logger->print_message(outstr.str(), _maingoSettings->LBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                 // Return empty solution instead
                 break;
             }
diff --git a/src/logger.cpp b/src/logger.cpp
index 37e29a28f19639843385e7dd5b97a829622fa7c3..8b12de166b1bc9da17d0e1187fc0cc5f3ab6150d 100644
--- a/src/logger.cpp
+++ b/src/logger.cpp
@@ -7,11 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file logger.cpp
- *
- * @brief File implementing the logger class which manages the printing of
- *        output and writing of files.
- *
  **********************************************************************************/
 
 #include "logger.h"
@@ -26,33 +21,31 @@ using namespace maingo;
 /////////////////////////////////////////////////////////////////////////
 // writes a message to outstream and possibly bablog
 void
-Logger::print_message(const std::string& message, bool writeLog, VERB verbosityGiven, VERB verbosityNeeded, OUTSTREAM_VERB givenOutstreamVerbosity)
+Logger::print_message(const std::string& message, const VERB verbosityGiven, const VERB verbosityNeeded, const LOGGING_DESTINATION givenOutstreamVerbosity)
 {
 
     switch (givenOutstreamVerbosity) {
 
-        case OUTSTREAM_OUTSTREAM:
+        case LOGGING_OUTSTREAM:
             // Print to _outStream only
             if (verbosityGiven >= verbosityNeeded) {
                 (*_outStream) << message << std::flush;
             }
             break;
-        case OUTSTREAM_LOG:
+        case LOGGING_FILE:
             // Save message in log queue to be written later
-            if (writeLog && verbosityGiven >= verbosityNeeded) {
+            if (verbosityGiven >= verbosityNeeded) {
                 babLine.push(message);
             }
             break;
-        case OUTSTREAM_BOTH:
+        case LOGGING_FILE_AND_STREAM:
             // Print and write
             if (verbosityGiven >= verbosityNeeded) {
                 (*_outStream) << message << std::flush;
-                if (writeLog) {
-                    babLine.push(message);
-                }
+                babLine.push(message);
             }
             break;
-        case OUTSTREAM_NONE:
+        case LOGGING_NONE:
         default:
             // Don't print or write
             break;
@@ -63,9 +56,9 @@ Logger::print_message(const std::string& message, bool writeLog, VERB verbosityG
 /////////////////////////////////////////////////////////////////////////
 // writes a message to outstream only without asking for vorbosities
 void
-Logger::print_message_to_stream_only(const std::string& message, OUTSTREAM_VERB givenOutstreamVerbosity)
+Logger::print_message_to_stream_only(const std::string& message, const LOGGING_DESTINATION givenOutstreamVerbosity)
 {
-    if (givenOutstreamVerbosity == OUTSTREAM_BOTH || givenOutstreamVerbosity == OUTSTREAM_OUTSTREAM) {
+    if ((givenOutstreamVerbosity == LOGGING_FILE_AND_STREAM) || (givenOutstreamVerbosity == LOGGING_OUTSTREAM)) {
         (*_outStream) << message << std::flush;
     }
 }
@@ -74,7 +67,7 @@ Logger::print_message_to_stream_only(const std::string& message, OUTSTREAM_VERB
 /////////////////////////////////////////////////////////////////////////
 // sets output stream
 void
-Logger::set_output_stream(std::ostream* outputStream)
+Logger::set_output_stream(std::ostream* const outputStream)
 {
     _outStream = outputStream;
 }
@@ -83,9 +76,9 @@ Logger::set_output_stream(std::ostream* outputStream)
 /////////////////////////////////////////////////////////////////////////
 // creates the log file
 void
-Logger::create_log_file(bool writeLog, OUTSTREAM_VERB givenOutstreamVerbosity)
+Logger::create_log_file(const LOGGING_DESTINATION givenOutstreamVerbosity)
 {
-    if (writeLog && (givenOutstreamVerbosity == OUTSTREAM_BOTH || givenOutstreamVerbosity == OUTSTREAM_LOG)) {
+    if ((givenOutstreamVerbosity == LOGGING_FILE_AND_STREAM) || (givenOutstreamVerbosity == LOGGING_FILE)) {
         std::ofstream logFile;
         logFile.open(logFileName, std::ios::out);
         logFile.close();
@@ -94,53 +87,26 @@ Logger::create_log_file(bool writeLog, OUTSTREAM_VERB givenOutstreamVerbosity)
 
 
 /////////////////////////////////////////////////////////////////////////
-// creates the log file
+// creates the csv file
 void
-Logger::create_csv_files(bool pureMultistart, bool printEveryLocalSearch, unsigned int maxLocalSearches, const std::vector<double>& objectivesAtRoot, const std::vector<SUBSOLVER_RETCODE>& feasibleAtRoot)
+Logger::create_iterations_csv_file(const bool writeCsv)
 {
+    if (writeCsv) {
+        std::ofstream iterationsFile(csvIterationsName, std::ios::out);
 
-    std::ofstream outfileIterations(csvIterationsName);
-    outfileIterations << " Iters,"
+        iterationsFile << " Iters,"
 #ifdef MAiNGO_DEBUG_MODE
-                      << " NodeId,"
-                      << " NodeLBD,"
+                       << " NodeId,"
+                       << " NodeLBD,"
 #endif
-                      << " LBD, "
-                      << " UBD,"
-                      << " NodesLeft,"
-                      << " AbsGap,"
-                      << " RelGap,"
-                      << " CPU" << std::endl;
-    outfileIterations.close();
-
-    std::ofstream outfileGeneral(csvGeneralName);
-    if (pureMultistart) {
-        outfileGeneral << "  Pure Multistart " << std::endl;
-        outfileGeneral << "  No of local searches," << maxLocalSearches << std::endl;
-    }
-    if (printEveryLocalSearch) {
-        for (unsigned i = 0; i < maxLocalSearches; i++) {
-            if (feasibleAtRoot[i] == SUBSOLVER_FEASIBLE) {
-                outfileGeneral << "  \tRun No," << i + 1 << ",objective value," << objectivesAtRoot[i] << std::endl;
-            }
-            else {
-                outfileGeneral << "  \tRun No," << i + 1 << ",No feasible point found" << std::endl;
-            }
-        }
-    }
-    outfileGeneral.close();
-}
-
+                       << " LBD, "
+                       << " UBD,"
+                       << " NodesLeft,"
+                       << " AbsGap,"
+                       << " RelGap,"
+                       << " CPU" << std::endl;
 
-/////////////////////////////////////////////////////////////////////////
-// creates the json file
-void
-Logger::create_json_file(bool writeJson, OUTSTREAM_VERB givenOutstreamVerbosity)
-{
-    if (writeJson && (givenOutstreamVerbosity == OUTSTREAM_BOTH || givenOutstreamVerbosity == OUTSTREAM_LOG)) {
-        std::ofstream jsonFile;
-        jsonFile.open(jsonFileName, std::ios::out);
-        jsonFile.close();
+        iterationsFile.close();
     }
 }
 
@@ -148,7 +114,7 @@ Logger::create_json_file(bool writeJson, OUTSTREAM_VERB givenOutstreamVerbosity)
 /////////////////////////////////////////////////////////////////////////
 // writes all lines currently stored in babLine to logFile
 void
-Logger::write_all_lines_to_log(const std::string& errmsg)
+Logger::write_all_lines_to_log(const std::string& errorMessage)
 {
     std::ofstream logFile;
     logFile.open(logFileName, std::ios::app);
@@ -156,41 +122,39 @@ Logger::write_all_lines_to_log(const std::string& errmsg)
         logFile << babLine.front();
         babLine.pop();
     }
-    if (!errmsg.empty()) {
-        logFile << errmsg << std::endl;
+    if (!errorMessage.empty()) {
+        logFile << errorMessage << std::endl;
     }
     logFile.close();
 }
 
 
 /////////////////////////////////////////////////////////////////////////
-// writes all b&B iterations currently stored in babCsv to csv iterations file
+// writes all lines currently stored in babLine to logFile
 void
-Logger::write_all_iterations_to_csv(const std::string& errmsg)
+Logger::write_all_iterations_to_csv()
 {
-    std::ofstream csvFile;
-    csvFile.open(csvIterationsName, std::ios::app);
+    std::ofstream iterationsFile(csvIterationsName, std::ios::app);
+
     while (babLineCsv.size() > 0) {
-        csvFile << babLineCsv.front();
+        iterationsFile << babLineCsv.front();
         babLineCsv.pop();
     }
-    if (!errmsg.empty()) {
-        csvFile << errmsg << std::endl;
-    }
-    csvFile.close();
+
+    iterationsFile.close();
 }
 
 
 /////////////////////////////////////////////////////////////////////////
 // saves a proper string when a user wants to read in a setting file
 void
-Logger::save_settings_file_name(const std::string& fileName, bool fileFound)
+Logger::save_settings_file_name(const std::string& fileName, const bool fileFound)
 {
 
     // User wants to read in a file
     _nSettingFiles++;
-    int mapNumber   = -1 * _nSettingFiles;
-    std::string str = "";
+    const int mapNumber = -1 * _nSettingFiles;
+    std::string str     = "";
     if (fileFound) {
         // If file has been found, generate string
         str = "\n  Read settings from file " + fileName + ".";
@@ -207,7 +171,7 @@ Logger::save_settings_file_name(const std::string& fileName, bool fileFound)
 /////////////////////////////////////////////////////////////////////////
 // save a user-set setting in map
 void
-Logger::save_setting(SETTING_NAMES settingName, const std::string& str)
+Logger::save_setting(const SETTING_NAMES settingName, const std::string& str)
 {
 
     switch (settingName) {
@@ -229,7 +193,7 @@ Logger::save_setting(SETTING_NAMES settingName, const std::string& str)
 /////////////////////////////////////////////////////////////////////////
 // print and or write user-set settings
 void
-Logger::print_settings(bool writeLog, VERB verbosityGiven, VERB verbosityNeeded, OUTSTREAM_VERB givenOutstreamVerbosity)
+Logger::print_settings(const VERB verbosityGiven, const VERB verbosityNeeded, const LOGGING_DESTINATION givenOutstreamVerbosity)
 {
 
     // First check if any setting was changed at all
@@ -253,7 +217,7 @@ Logger::print_settings(bool writeLog, VERB verbosityGiven, VERB verbosityNeeded,
         if (someSettingChanged) {
             str += "  Done.\n";
         }
-        print_message(str, writeLog, verbosityGiven, verbosityNeeded, givenOutstreamVerbosity);
+        print_message(str, verbosityGiven, verbosityNeeded, givenOutstreamVerbosity);
     }
 }
 
@@ -266,19 +230,4 @@ Logger::clear()
     babLine            = std::queue<std::string>();
     babLineCsv         = std::queue<std::string>();
     reachedMinNodeSize = false;
-    if (logFileName.empty()) {
-        logFileName = "bab.log";
-    }
-    if (csvIterationsName.empty()) {
-        csvIterationsName = "bab_Report_Iterations.csv";
-    }
-    if (csvGeneralName.empty()) {
-        csvGeneralName = "bab_Report_General.csv";
-    }
-    if (jsonFileName.empty()) {
-        jsonFileName = "bab.json";
-    }
-    if (resFileName.empty()) {
-        resFileName = "MAiNGO_res.txt";
-    }
 }
\ No newline at end of file
diff --git a/src/programParser.cpp b/src/programParser.cpp
index f854604434febaaad02c3b1dd4c90438a78c8952..5d379cebd1e1cdca909b61e093fc95c5cbd23ed8 100644
--- a/src/programParser.cpp
+++ b/src/programParser.cpp
@@ -7,10 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file programParser.cpp
- *
- * @brief File iplementing member functions of the ProgramParser class.
- *
  **********************************************************************************/
 
 #include "programParser.h"
@@ -127,8 +123,7 @@ ProgramParser::parse_objective(Program& prog)
     std::unique_ptr<value_node<real<0>>> expr;
     std::string note;
     if (match_expression(expr, note)) {
-        prog.mObjective.set(expr.release());
-        prog.mObjective.m_note = note;
+        prog.mObjective.emplace_back(expr.release(), note);
         return;
     }
     report_syntactical();
diff --git a/src/ubp.cpp b/src/ubp.cpp
index 49878a9ed6928a69dbaf87f5bd52508b11d78711..b47afa7f363efb89e9303dd7467578081194bbaa 100644
--- a/src/ubp.cpp
+++ b/src/ubp.cpp
@@ -7,15 +7,10 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file ubp.cpp
- *
- * @brief File containing implementation of UpperBoundingSolver class used as
- *        base class for different upper bounding solver wrappers.
- *
  **********************************************************************************/
 
 #include "ubp.h"
-#include "exceptions.h"
+#include "MAiNGOException.h"
 #include "mpiUtilities.h"
 #include "ubpDagObj.h"
 #include "ubpEvaluators.h"
@@ -33,7 +28,7 @@ using namespace ubp;
 // constructor for the upper bounding solver
 UpperBoundingSolver::UpperBoundingSolver(mc::FFGraph &DAG, const std::vector<mc::FFVar> &DAGvars, const std::vector<mc::FFVar> &DAGfunctions,
                                          const std::vector<babBase::OptimizationVariable> &variables, const unsigned nineqIn, const unsigned neqIn,
-                                         const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector<Constraint> *constraintPropertiesIn, UBS_USE useIn):
+                                         const unsigned nineqSquashIn, std::shared_ptr<Settings> settingsIn, std::shared_ptr<Logger> loggerIn, std::shared_ptr<std::vector<Constraint>> constraintPropertiesIn, UBS_USE useIn):
     _originalVariables(variables),
     _maingoSettings(settingsIn), _logger(loggerIn), _constraintProperties(constraintPropertiesIn), _intendedUse(useIn)
 {
@@ -217,7 +212,7 @@ UpperBoundingSolver::multistart(const babBase::BabNode &currentNode, double &obj
                 foundFeasible = SUBSOLVER_FEASIBLE;
                 optimalObjectives.push_back(initialObjective);
                 outstr << "      User-specified initial point is feasible with objective value " << initialObjective << std::endl;
-                _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->UBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                _logger->print_message(outstr.str(), _maingoSettings->UBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                 if (_maingoSettings->PRE_printEveryLocalSearch) {
                     ++nDifferentFeasible;
                 }
@@ -231,7 +226,7 @@ UpperBoundingSolver::multistart(const babBase::BabNode &currentNode, double &obj
                     outstr.str("");
                     outstr.clear();
                     outstr << "      User-specified initial point is infeasible." << std::endl;
-                    _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->UBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                    _logger->print_message(outstr.str(), _maingoSettings->UBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                 }
                 initialPointFeasible = false;
             }
@@ -306,7 +301,7 @@ UpperBoundingSolver::multistart(const babBase::BabNode &currentNode, double &obj
                         outstr.str("");
                         outstr.clear();
                         outstr << "      Run " << iRun << ": Found feasible point with objective value " << currentObjective << std::endl;
-                        _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->UBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                        _logger->print_message(outstr.str(), _maingoSettings->UBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                         feasible.push_back(SUBSOLVER_FEASIBLE);
                         // Check if we found this point before
                         bool foundPreviously = false;
@@ -325,7 +320,7 @@ UpperBoundingSolver::multistart(const babBase::BabNode &currentNode, double &obj
                         outstr.str("");
                         outstr.clear();
                         outstr << "      Found feasible point with objective value " << currentObjective << std::endl;
-                        _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->UBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                        _logger->print_message(outstr.str(), _maingoSettings->UBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                         optimalObjectives.push_back(currentObjective);
                     }
 
@@ -348,7 +343,7 @@ UpperBoundingSolver::multistart(const babBase::BabNode &currentNode, double &obj
                         outstr.str("");
                         outstr.clear();
                         outstr << "      Run " << iLoc << ": No feasible point found." << std::endl;
-                        _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->UBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                        _logger->print_message(outstr.str(), _maingoSettings->UBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                         feasible.push_back(SUBSOLVER_INFEASIBLE);
                         optimalObjectives.push_back(-42);
                     }
@@ -394,24 +389,24 @@ UpperBoundingSolver::multistart(const babBase::BabNode &currentNode, double &obj
                 outstr.str("");
                 outstr.clear();
                 outstr << "      Out of " << iLoc << " local searches, " << nInfeasible << " (i.e., " << nInfeasible * 100. / (double)iLoc << "%) failed to find a feasible point." << std::endl;
-                _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->UBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                _logger->print_message(outstr.str(), _maingoSettings->UBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                 if (nDifferentFeasible > 1) {
                     outstr.str("");
                     outstr.clear();
                     outstr << "      The successful ones (including user-specified initial point) returned points with " << nDifferentFeasible << " different objective values ranging from " << bestFeasible << " to " << worstFeasible << "." << std::endl;
-                    _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->UBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                    _logger->print_message(outstr.str(), _maingoSettings->UBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                 }
                 else {
                     outstr.str("");
                     outstr.clear();
                     outstr << "      The successful ones (including user-specified initial point) returned exactly one feasible point with objective value " << bestFeasible << "." << std::endl;
-                    _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->UBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                    _logger->print_message(outstr.str(), _maingoSettings->UBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
                 }
             }
         }
         else {
             if (_maingoSettings->PRE_maxLocalSearches > 0) {
-                _logger->print_message("      No feasible point found.\n", _maingoSettings->writeLog, _maingoSettings->UBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+                _logger->print_message("      No feasible point found.\n", _maingoSettings->UBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
             }
         }
 
@@ -528,7 +523,7 @@ maingo::ubp::evaluate_objective(const double *currentPoint, const unsigned nvar,
                 dagObj->warningFlag = true;
                 std::ostringstream outstr;
                 outstr << "    Warning: Evaluation of derivatives of objective resulted in an exception. \n             Reason: " << e.what() << std::endl;
-                dagObj->logger->print_message(outstr.str(), dagObj->maingoSettings->writeLog, dagObj->maingoSettings->UBP_verbosity, VERB_NORMAL, dagObj->maingoSettings->outstreamVerbosity);
+                dagObj->logger->print_message(outstr.str(), dagObj->maingoSettings->UBP_verbosity, VERB_NORMAL, dagObj->maingoSettings->loggingDestination);
             }
         }
         for (unsigned i = 0; i < nvar; i++) {
@@ -564,7 +559,7 @@ maingo::ubp::evaluate_inequalities(const double *currentPoint, const unsigned nv
                 dagObj->warningFlag = true;
                 std::ostringstream outstr;
                 outstr << "    Warning: Evaluation of derivatives of inequalities resulted in an exception. \n             Reason: " << e.what() << std::endl;
-                dagObj->logger->print_message(outstr.str(), dagObj->maingoSettings->writeLog, dagObj->maingoSettings->UBP_verbosity, VERB_NORMAL, dagObj->maingoSettings->outstreamVerbosity);
+                dagObj->logger->print_message(outstr.str(), dagObj->maingoSettings->UBP_verbosity, VERB_NORMAL, dagObj->maingoSettings->loggingDestination);
             }
         }
         if (result) {
@@ -608,7 +603,7 @@ maingo::ubp::evaluate_equalities(const double *currentPoint, const unsigned nvar
                 dagObj->warningFlag = true;
                 std::ostringstream outstr;
                 outstr << "    Warning: Evaluation of derivatives of equalities resulted in an exception. \n             Reason: " << e.what() << std::endl;
-                dagObj->logger->print_message(outstr.str(), dagObj->maingoSettings->writeLog, dagObj->maingoSettings->UBP_verbosity, VERB_NORMAL, dagObj->maingoSettings->outstreamVerbosity);
+                dagObj->logger->print_message(outstr.str(), dagObj->maingoSettings->UBP_verbosity, VERB_NORMAL, dagObj->maingoSettings->loggingDestination);
             }
         }
         if (result) {
@@ -652,7 +647,7 @@ maingo::ubp::evaluate_constraints(const double *currentPoint, const unsigned nva
                 dagObj->warningFlag = true;
                 std::ostringstream outstr;
                 outstr << "    Warning: Evaluation of derivatives of constraints resulted in an exception. \n             Reason: " << e.what() << std::endl;
-                dagObj->logger->print_message(outstr.str(), dagObj->maingoSettings->writeLog, dagObj->maingoSettings->UBP_verbosity, VERB_NORMAL, dagObj->maingoSettings->outstreamVerbosity);
+                dagObj->logger->print_message(outstr.str(), dagObj->maingoSettings->UBP_verbosity, VERB_NORMAL, dagObj->maingoSettings->loggingDestination);
             }
         }
         if (result) {
@@ -697,7 +692,7 @@ maingo::ubp::evaluate_problem(const double *currentPoint, const unsigned nvar, c
                 dagObj->warningFlag = true;
                 std::ostringstream outstr;
                 outstr << "    Warning: Evaluation of derivatives resulted in an exception. \n             Reason: " << e.what() << std::endl;
-                dagObj->logger->print_message(outstr.str(), dagObj->maingoSettings->writeLog, dagObj->maingoSettings->UBP_verbosity, VERB_NORMAL, dagObj->maingoSettings->outstreamVerbosity);
+                dagObj->logger->print_message(outstr.str(), dagObj->maingoSettings->UBP_verbosity, VERB_NORMAL, dagObj->maingoSettings->loggingDestination);
             }
         }
         if (result) {
@@ -739,7 +734,7 @@ maingo::ubp::evaluate_hessian(const double *currentPoint, const unsigned nvar, c
             dagObj->warningFlag = true;
             std::ostringstream outstr;
             outstr << "    Warning: Evaluation of second derivatives resulted in an exception. \n             Reason: " << e.what() << std::endl;
-            dagObj->logger->print_message(outstr.str(), dagObj->maingoSettings->writeLog, dagObj->maingoSettings->UBP_verbosity, VERB_NORMAL, dagObj->maingoSettings->outstreamVerbosity);
+            dagObj->logger->print_message(outstr.str(), dagObj->maingoSettings->UBP_verbosity, VERB_NORMAL, dagObj->maingoSettings->loggingDestination);
         }
     }
     for (unsigned i = 0; i < ncon + 1; i++) {
@@ -763,7 +758,7 @@ UpperBoundingSolver::_check_eq(const std::vector<double> &modelOutput) const
             if (_maingoSettings->UBP_verbosity >= VERB_ALL) {
                 std::ostringstream outstr;
                 outstr << "  No feasible point found for UBP. First constraint violation in equality constraint " << i << "." << std::endl;
-                _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+                _logger->print_message(outstr.str(), _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
             }
             return SUBSOLVER_INFEASIBLE;
         }
@@ -782,7 +777,7 @@ UpperBoundingSolver::_check_ineq(const std::vector<double> &modelOutput) const
             if (_maingoSettings->UBP_verbosity >= VERB_ALL) {
                 std::ostringstream outstr;
                 outstr << "  No feasible point found for UBP. First constraint violation in inequality constraint " << i << "." << std::endl;
-                _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+                _logger->print_message(outstr.str(), _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
             }
             return SUBSOLVER_INFEASIBLE;
         }
@@ -802,7 +797,7 @@ UpperBoundingSolver::_check_ineq_squash(const std::vector<double> &modelOutput)
             if (_maingoSettings->UBP_verbosity >= VERB_ALL) {
                 std::ostringstream outstr;
                 outstr << "  No feasible point found for UBP. First constraint violation in squash inequality constraint " << i << "." << std::endl;
-                _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+                _logger->print_message(outstr.str(), _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
             }
             return SUBSOLVER_INFEASIBLE;
         }
@@ -821,7 +816,7 @@ UpperBoundingSolver::_check_bounds(const std::vector<double> &currentPoint) cons
             if (_maingoSettings->UBP_verbosity >= VERB_ALL) {
                 std::ostringstream outstr;
                 outstr << "  No feasible point found for UBP. Violation of original upper bound for variable " << i << ": " << currentPoint[i] << " > " << _originalUpperBounds[i] << std::endl;
-                _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+                _logger->print_message(outstr.str(), _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
             }
             return SUBSOLVER_INFEASIBLE;
         }
@@ -829,7 +824,7 @@ UpperBoundingSolver::_check_bounds(const std::vector<double> &currentPoint) cons
             if (_maingoSettings->UBP_verbosity >= VERB_ALL) {
                 std::ostringstream outstr;
                 outstr << "  No feasible point found for UBP. Violation of original lower bound for variable " << i << ": " << currentPoint[i] << " < " << _originalLowerBounds[i] << std::endl;
-                _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+                _logger->print_message(outstr.str(), _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
             }
             return SUBSOLVER_INFEASIBLE;
         }
@@ -860,7 +855,7 @@ UpperBoundingSolver::_check_integrality(const std::vector<double> &currentPoint)
                     outstr << "  var(" << i + 1 << ")";
                 }
                 outstr << "   with index " << i << ": " << currentPoint[i] << std::endl;
-                _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+                _logger->print_message(outstr.str(), _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
             }
             return SUBSOLVER_INFEASIBLE;
         }
@@ -879,7 +874,7 @@ UpperBoundingSolver::_check_integrality(const std::vector<double> &currentPoint)
                         outstr << "  var(" << i + 1 << ")";
                     }
                     outstr << "   with index " << i << ": " << currentPoint[i] << std::endl;
-                    _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+                    _logger->print_message(outstr.str(), _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
                 }
                 return SUBSOLVER_INFEASIBLE;
             }
@@ -928,12 +923,12 @@ UpperBoundingSolver::check_feasibility(const std::vector<double> &currentPoint,
                                     for (unsigned int i = 0; i < _nvar; i++) {
                                         outstr << "   x(" << i << "): " << currentPoint[i] << std::endl;
                                     }
-                                    _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+                                    _logger->print_message(outstr.str(), _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
                                 }
                                 return SUBSOLVER_FEASIBLE;
                             }
                             else {
-                                _logger->print_message("  Warning: found point that is feasible but returns objective that is NaN.", _maingoSettings->writeLog, _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+                                _logger->print_message("  Warning: found point that is feasible but returns objective that is NaN.", _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
                             }
                         }
                     }
@@ -945,10 +940,10 @@ UpperBoundingSolver::check_feasibility(const std::vector<double> &currentPoint,
         return SUBSOLVER_INFEASIBLE;
     }
     catch (const std::exception &e) {
-        throw(MAiNGOException("  Error in evaluation of double Model equations while checking feasibility. ", e));
+        throw MAiNGOException("  Error in evaluation of double Model equations while checking feasibility. ", e);
     }
     catch (...) {
-        throw(MAiNGOException("  Unknown error in evaluation of double Model equations while checking feasibility. "));
+        throw MAiNGOException("  Unknown error in evaluation of double Model equations while checking feasibility. ");
     }
 }
 
diff --git a/src/ubpClp.cpp b/src/ubpClp.cpp
index e31e089b487b3cbdd0394e86c0b98a78f310f559..f7f630e1e209ea43377614f300f82a9d6538f7aa 100644
--- a/src/ubpClp.cpp
+++ b/src/ubpClp.cpp
@@ -7,16 +7,10 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file ubpClp.cpp
- *
- * @brief File containing implementation of UbpClp class used for solving the upper
- *        bounding problems (or, rather, the entire problem) in the case when the
- *        original problem is an LP.
- *
  **********************************************************************************/
 
 #include "ubpClp.h"
-#include "exceptions.h"
+#include "MAiNGOException.h"
 #include "ubpDagObj.h"
 #include "ubpQuadExpr.h"
 
@@ -30,20 +24,23 @@ using namespace ubp;
 /////////////////////////////////////////////////////////////////////////
 // constructor for the upper bounding solver
 UbpClp::UbpClp(mc::FFGraph &DAG, const std::vector<mc::FFVar> &DAGvars, const std::vector<mc::FFVar> &DAGfunctions, const std::vector<babBase::OptimizationVariable> &variables,
-               const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector<Constraint> *constraintPropertiesIn, UBS_USE useIn):
+               const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr<Settings> settingsIn, std::shared_ptr<Logger> loggerIn, std::shared_ptr<std::vector<Constraint>> constraintPropertiesIn, UBS_USE useIn):
     UpperBoundingSolver(DAG, DAGvars, DAGfunctions, variables, nineqIn, neqIn, nineqSquashIn, settingsIn, loggerIn, constraintPropertiesIn, useIn)
 {
     try {
         // Suppress output
-        if (_maingoSettings->LBP_verbosity <= VERB_NORMAL || _maingoSettings->outstreamVerbosity == 0 || _maingoSettings->outstreamVerbosity == 2) {
+        if ((_maingoSettings->LBP_verbosity <= VERB_NORMAL) || (_maingoSettings->loggingDestination == LOGGING_NONE) || (_maingoSettings->loggingDestination == LOGGING_FILE)) {
             _clp.messageHandler()->setLogLevel(0);
         }
+        _clp.setPrimalTolerance(_maingoSettings->deltaEq);
+        _clp.setDualTolerance(_maingoSettings->epsilonA);
+        _clp.setRandomSeed(42);    // Make the behavior of CLP deterministic
     }
     catch (const std::exception &e) {
-        throw(MAiNGOException("  Error initializing CLP as Upper Bounding Solver.", e));
+        throw MAiNGOException("  Error initializing UbpClp", e);
     }
     catch (...) {
-        throw(MAiNGOException("  Unknown error initializing CLP as Upper Bounding Solver."));
+        throw MAiNGOException("  Unknown error initializing UbpClp.");
     }
 }
 
@@ -177,10 +174,10 @@ UbpClp::_solve_nlp(const std::vector<double> &lowerVarBounds, const std::vector<
         _clp.dual();
     }
     catch (std::exception &e) {
-        throw(MAiNGOException("  Error while solving the UBP.", e));
+        throw MAiNGOException("  Error while solving the UBP with CLP.", e);
     }
     catch (...) {
-        throw(MAiNGOException("  Unknown error while solving UBP."));
+        throw MAiNGOException("  Unknown error while solving UBP with CLP.");
     }
 
     // Get CLP status
@@ -191,7 +188,7 @@ UbpClp::_solve_nlp(const std::vector<double> &lowerVarBounds, const std::vector<
     if (_maingoSettings->LBP_verbosity >= VERB_ALL) {
         std::ostringstream outstr;
         outstr << "  UBP status: " << clpStatus << std::endl;
-        _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+        _logger->print_message(outstr.str(), _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
     }
 
     // Get objective value
@@ -205,7 +202,7 @@ UbpClp::_solve_nlp(const std::vector<double> &lowerVarBounds, const std::vector<
     catch (std::exception &e) {
         std::ostringstream outstr;
         outstr << "  Warning: Variables at solution of UBP could not be extracted from CLP:" << e.what() << std::endl;
-        _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->UBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+        _logger->print_message(outstr.str(), _maingoSettings->UBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
         // Return empty solution instead
         solutionPoint.clear();
         return SUBSOLVER_FEASIBLE;
@@ -220,7 +217,7 @@ UbpClp::_solve_nlp(const std::vector<double> &lowerVarBounds, const std::vector<
     for (unsigned int i = 0; i < _nvar; i++) {
         outstr << "   x(" << i << "): " << solutionPoint[i] << std::endl;
     }
-    _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+    _logger->print_message(outstr.str(), _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
 
     return SUBSOLVER_FEASIBLE;
 }
\ No newline at end of file
diff --git a/src/ubpCplex.cpp b/src/ubpCplex.cpp
index 842ad8efb28083de8d475d00770939bd5ca57d66..cd040e3d7886663b3e9afe165464a82fef62cf57 100644
--- a/src/ubpCplex.cpp
+++ b/src/ubpCplex.cpp
@@ -7,18 +7,12 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file ubpCplex.cpp
- *
- * @brief File containing implementation of UbpCplex class used for solving
- *        the upper bounding problems in the case if the underlying problem is
- *        an LP, MIP, QCP, or MIQCP.
- *
  **********************************************************************************/
 
 #ifdef HAVE_CPLEX
 
 #include "ubpCplex.h"
-#include "exceptions.h"
+#include "MAiNGOException.h"
 #include "ubpDagObj.h"
 #include "ubpEvaluators.h"
 #include "ubpQuadExpr.h"
@@ -31,7 +25,7 @@ using namespace ubp;
 /////////////////////////////////////////////////////////////////////////
 // constructor for the upper bounding solver
 UbpCplex::UbpCplex(mc::FFGraph &DAG, const std::vector<mc::FFVar> &DAGvars, const std::vector<mc::FFVar> &DAGfunctions, const std::vector<babBase::OptimizationVariable> &variables,
-                   const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector<Constraint> *constraintPropertiesIn, UBS_USE useIn):
+                   const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr<Settings> settingsIn, std::shared_ptr<Logger> loggerIn, std::shared_ptr<std::vector<Constraint>> constraintPropertiesIn, UBS_USE useIn):
     UpperBoundingSolver(DAG, DAGvars, DAGfunctions, variables, nineqIn, neqIn, nineqSquashIn, settingsIn, loggerIn, constraintPropertiesIn, useIn)
 {
     try {
@@ -89,7 +83,7 @@ UbpCplex::UbpCplex(mc::FFGraph &DAG, const std::vector<mc::FFVar> &DAGvars, cons
                 case EQ_REL_ONLY:
                 case AUX_EQ_REL_ONLY:
                 default:
-                    break;    // We don't use relaxation only constraint in upper bounding
+                    break;    // We don't use relaxation only constraints in upper bounding
             }
         }
 
@@ -101,49 +95,40 @@ UbpCplex::UbpCplex(mc::FFGraph &DAG, const std::vector<mc::FFVar> &DAGvars, cons
         cplex.setParam(IloCplex::Param::Barrier::ConvergeTol, _maingoSettings->epsilonA);
         cplex.setParam(IloCplex::Param::Barrier::QCPConvergeTol, _maingoSettings->epsilonA);
         cplex.setParam(IloCplex::EpRHS, std::max(_maingoSettings->deltaIneq, _maingoSettings->deltaEq));
+        cplex.setParam(IloCplex::Param::RandomSeed, 42);    // Make the behavior of CPLEX deterministic
         // Suppress output:
-        if (_maingoSettings->UBP_verbosity <= VERB_NORMAL || _maingoSettings->outstreamVerbosity == 0 || _maingoSettings->outstreamVerbosity == 2) {
+        // Suppress output - unfortunately we cannot redirect the output of CPLEX to our log file right now...
+        if ((_maingoSettings->LBP_verbosity <= VERB_NORMAL) || (_maingoSettings->loggingDestination == LOGGING_NONE) || (_maingoSettings->loggingDestination == LOGGING_FILE)) {
             cplex.setOut(cplxEnv.getNullStream());
-        }
-        if (_maingoSettings->UBP_verbosity <= VERB_NORMAL || _maingoSettings->outstreamVerbosity == 0 || _maingoSettings->outstreamVerbosity == 2) {
             cplex.setWarning(cplxEnv.getNullStream());
         }
         // Obtain global solution of non-convex MIQCPs
         cplex.setParam(IloCplex::OptimalityTarget, CPX_OPTIMALITYTARGET_OPTIMALGLOBAL);
     }
     catch (const std::exception &e) {
-        throw(MAiNGOException("  Error initializing CPLEX as Upper Bounding Solver.", e));
+        throw MAiNGOException("  Error initializing UbpCplex.", e);
     }
     catch (...) {
-        throw(MAiNGOException("  Unknown error initializing CPLEX as Upper Bounding Solver."));
+        throw MAiNGOException("  Unknown error initializing UbpCplex.");
     }
 }
 
 
-/////////////////////////////////////////////////////////////////////////
-// destructor for CPLEX
-UbpCplex::~UbpCplex()
-{
-
-    _terminate_cplex();
-}
-
-
 /////////////////////////////////////////////////////////////////////////
 // solve the underlying problem
 SUBSOLVER_RETCODE
 UbpCplex::_solve_nlp(const std::vector<double> &lowerVarBounds, const std::vector<double> &upperVarBounds, double &objectiveValue, std::vector<double> &solutionPoint)
 {
 
-    // Set correct options and solve
+    // Solve the problem
     try {
         cplex.solve();
     }
     catch (std::exception &e) {
-        throw(MAiNGOException("  Error while solving the UBP.", e));
+        throw MAiNGOException("  Error while solving the UBP with CPLEX.", e);
     }
     catch (...) {
-        throw(MAiNGOException("  Unknown error while solving UBP."));
+        throw MAiNGOException("  Unknown error while solving UBP with CPLEX.");
     }
 
     // Get CPLEX status
@@ -157,7 +142,7 @@ UbpCplex::_solve_nlp(const std::vector<double> &lowerVarBounds, const std::vecto
     if (_maingoSettings->LBP_verbosity >= VERB_ALL) {
         std::ostringstream outstr;
         outstr << "  UBP status: " << cplexStatus << std::endl;
-        _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+        _logger->print_message(outstr.str(), _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
     }
 
     // Get objective value
@@ -187,7 +172,7 @@ UbpCplex::_solve_nlp(const std::vector<double> &lowerVarBounds, const std::vecto
         if (isFeasible != SUBSOLVER_FEASIBLE) {
             std::ostringstream outstr;
             outstr << "  Warning: Variables at solution of UBP could not be extracted from CPLEX:" << e << std::endl;
-            _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->UBP_verbosity, VERB_NORMAL, _maingoSettings->outstreamVerbosity);
+            _logger->print_message(outstr.str(), _maingoSettings->UBP_verbosity, VERB_NORMAL, _maingoSettings->loggingDestination);
             // Return empty solution instead
             vals.end();
             solutionPoint.clear();
@@ -197,6 +182,9 @@ UbpCplex::_solve_nlp(const std::vector<double> &lowerVarBounds, const std::vecto
         }
         return SUBSOLVER_FEASIBLE;
     }
+    catch (...) {
+        throw MAiNGOException("  Unknown error while querying solution point from CPLEX.");
+    }
     // Ok, successfully obtained solution point
     solutionPoint.clear();
     for (unsigned int i = 0; i < _nvar; i++) {
@@ -209,7 +197,7 @@ UbpCplex::_solve_nlp(const std::vector<double> &lowerVarBounds, const std::vecto
     for (unsigned int i = 0; i < _nvar; i++) {
         outstr << "   x(" << i << "): " << solutionPoint[i] << std::endl;
     }
-    _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+    _logger->print_message(outstr.str(), _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
 
     return SUBSOLVER_FEASIBLE;
 }
@@ -220,7 +208,6 @@ UbpCplex::_solve_nlp(const std::vector<double> &lowerVarBounds, const std::vecto
 void
 UbpCplex::_terminate_cplex()
 {
-
     cplex.end();
     cplxVars.endElements();
     cplxVars.end();
diff --git a/src/ubpFactory.cpp b/src/ubpFactory.cpp
index d3d0731e98845cc759df5487c0c230b69393b259..4717e8ae9c3b48887a6fc112ef1dc950f47c42d4 100644
--- a/src/ubpFactory.cpp
+++ b/src/ubpFactory.cpp
@@ -7,14 +7,10 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file ubpFactory.cpp
- *
- * @brief File containing implementation of factory function for initializing 
- *        different upper bounding solver wrappers.
- *
  **********************************************************************************/
 
-#include "exceptions.h"
+#include "MAiNGOException.h"
+#include "logger.h"
 #include "ubp.h"
 #include "ubpClp.h"
 #include "ubpIpopt.h"
@@ -38,57 +34,73 @@ using namespace ubp;
 std::shared_ptr<UpperBoundingSolver>
 ubp::make_ubp_solver(mc::FFGraph &DAG, const std::vector<mc::FFVar> &DAGvars, const std::vector<mc::FFVar> &DAGfunctions,
                      const std::vector<babBase::OptimizationVariable> &variables, const unsigned nineqIn,
-                     const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn,
-                     std::vector<Constraint> *constraintPropertiesIn, UpperBoundingSolver::UBS_USE useIn)
+                     const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr<Settings> settingsIn, std::shared_ptr<Logger> loggerIn,
+                     std::shared_ptr<std::vector<Constraint>> constraintPropertiesIn, UpperBoundingSolver::UBS_USE useIn)
 {
 
     UBP_SOLVER desiredSolver;
+    std::string useDescription;
     switch (useIn) {
         case ubp::UpperBoundingSolver::USE_PRE:
-            desiredSolver = settingsIn->UBP_solverPreprocessing;
+            useDescription = "Multistart";
+            desiredSolver  = settingsIn->UBP_solverPreprocessing;
             break;
         case ubp::UpperBoundingSolver::USE_BAB:
-            desiredSolver = settingsIn->UBP_solverBab;
+            useDescription = "Upper bounding";
+            desiredSolver  = settingsIn->UBP_solverBab;
             break;
         default:
-            throw(MAiNGOException("  Error in UBP factory: unknown intended use for upper bounding solver."));
+            throw MAiNGOException("  Error in UbpFactory: unknown intended use for upper bounding solver.");
     }
 
     switch (desiredSolver) {
-        case SOLVER_EVAL: {
+        case UBP_SOLVER_EVAL: {
+            loggerIn->print_message("      " + useDescription + ": Function evaluation\n", settingsIn->BAB_verbosity, VERB_NORMAL, settingsIn->loggingDestination);
             return std::make_shared<UpperBoundingSolver>(DAG, DAGvars, DAGfunctions, variables, nineqIn, neqIn, nineqSquashIn, settingsIn, loggerIn, constraintPropertiesIn, useIn);
         }
-        case SOLVER_COBYLA:    // Fall through to SLSQP
-        case SOLVER_BOBYQA:    // Fall through to SLSQP
-        case SOLVER_LBFGS:     // Fall through to SLSQP
-        case SOLVER_SLSQP: {
+        case UBP_SOLVER_COBYLA: {
+            loggerIn->print_message("      " + useDescription + ": COBYLA\n", settingsIn->BAB_verbosity, VERB_NORMAL, settingsIn->loggingDestination);
             return std::make_shared<UbpNLopt>(DAG, DAGvars, DAGfunctions, variables, nineqIn, neqIn, nineqSquashIn, settingsIn, loggerIn, constraintPropertiesIn, useIn);
         }
-        case SOLVER_IPOPT: {
-            return std::make_shared<UbpIpopt>(DAG, DAGvars, DAGfunctions, variables, nineqIn, neqIn, nineqSquashIn, settingsIn, loggerIn, constraintPropertiesIn, useIn);
+        case UBP_SOLVER_BOBYQA: {
+            loggerIn->print_message("      " + useDescription + ": BOBYQA\n", settingsIn->BAB_verbosity, VERB_NORMAL, settingsIn->loggingDestination);
+            return std::make_shared<UbpNLopt>(DAG, DAGvars, DAGfunctions, variables, nineqIn, neqIn, nineqSquashIn, settingsIn, loggerIn, constraintPropertiesIn, useIn);
         }
-        case SOLVER_CLP: {
-            return std::make_shared<UbpClp>(DAG, DAGvars, DAGfunctions, variables, nineqIn, neqIn, nineqSquashIn, settingsIn, loggerIn, constraintPropertiesIn, useIn);
+        case UBP_SOLVER_LBFGS: {
+            loggerIn->print_message("      " + useDescription + ": LBFGS\n", settingsIn->BAB_verbosity, VERB_NORMAL, settingsIn->loggingDestination);
+            return std::make_shared<UbpNLopt>(DAG, DAGvars, DAGfunctions, variables, nineqIn, neqIn, nineqSquashIn, settingsIn, loggerIn, constraintPropertiesIn, useIn);
         }
-        case SOLVER_KNITRO: {
+        case UBP_SOLVER_SLSQP: {
+            loggerIn->print_message("      " + useDescription + ": SLSQP\n", settingsIn->BAB_verbosity, VERB_NORMAL, settingsIn->loggingDestination);
+            return std::make_shared<UbpNLopt>(DAG, DAGvars, DAGfunctions, variables, nineqIn, neqIn, nineqSquashIn, settingsIn, loggerIn, constraintPropertiesIn, useIn);
+        }
+        case UBP_SOLVER_IPOPT: {
+            loggerIn->print_message("      " + useDescription + ": IPOPT\n", settingsIn->BAB_verbosity, VERB_NORMAL, settingsIn->loggingDestination);
+            return std::make_shared<UbpIpopt>(DAG, DAGvars, DAGfunctions, variables, nineqIn, neqIn, nineqSquashIn, settingsIn, loggerIn, constraintPropertiesIn, useIn);
+        }
+        case UBP_SOLVER_KNITRO: {
 #ifdef HAVE_KNITRO
+            loggerIn->print_message("      " + useDescription + ": KNITRO\n", settingsIn->BAB_verbosity, VERB_NORMAL, settingsIn->loggingDestination);
             return std::make_shared<UbpKnitro>(DAG, DAGvars, DAGfunctions, variables, nineqIn, neqIn, nineqSquashIn, settingsIn, loggerIn, constraintPropertiesIn, useIn);
 #else
-            throw(MAiNGOException("  Error in UbpFactory: Cannot use upper bounding strategy SOLVER_KNITRO: Your MAiNGO build does not contain KNITRO."));
+            throw MAiNGOException("  Error in UbpFactory: Cannot use upper bounding strategy UBP_SOLVER_KNITRO: Your MAiNGO build does not contain KNITRO.");
 #endif
         }
-        case SOLVER_CPLEX: {
+        case UBP_SOLVER_CPLEX: {
 #ifdef HAVE_CPLEX
             return std::make_shared<UbpCplex>(DAG, DAGvars, DAGfunctions, variables, nineqIn, neqIn, nineqSquashIn, settingsIn, loggerIn, constraintPropertiesIn, useIn);
 #else
-            throw(MAiNGOException("  Error in UbpFactory: Cannot use upper bounding strategy SOLVER_CPLEX: Your MAiNGO build does not contain CPLEX."));
+            throw MAiNGOException("  Error in UbpFactory: Cannot use upper bounding strategy UBP_SOLVER_CPLEX: Your MAiNGO build does not contain CPLEX.");
 #endif
         }
+        case UBP_SOLVER_CLP: {
+            return std::make_shared<UbpClp>(DAG, DAGvars, DAGfunctions, variables, nineqIn, neqIn, nineqSquashIn, settingsIn, loggerIn, constraintPropertiesIn, useIn);
+        }
         default:
         {
             std::ostringstream errmsg;
             errmsg << "  Error in UbpFactory: Unknown upper bounding strategy: " << desiredSolver << std::endl;
-            throw(MAiNGOException(errmsg.str()));
+            throw MAiNGOException("  Error in UbpFactory: Unknown upper bounding strategy: " + std::to_string(desiredSolver));
         }
     }
 }
\ No newline at end of file
diff --git a/src/ubpIpopt.cpp b/src/ubpIpopt.cpp
index 49d797e82655bdc4a688b30aa5d357c4962870d5..7f0a6cb159f145ab0b372b2ca98ec650e895b3f3 100644
--- a/src/ubpIpopt.cpp
+++ b/src/ubpIpopt.cpp
@@ -7,16 +7,11 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file ubpIpopt.cpp
- *
- * @brief File containing implementation of UbpIpopt class used for solving the
- *        upper bounding problems.
- *
  **********************************************************************************/
 
 
 #include "ubpIpopt.h"
-#include "exceptions.h"
+#include "MAiNGOException.h"
 
 #include <iostream>
 
@@ -28,7 +23,7 @@ using namespace ubp;
 /////////////////////////////////////////////////////////////////////////
 // constructor for the upper bounding solver
 UbpIpopt::UbpIpopt(mc::FFGraph &DAG, const std::vector<mc::FFVar> &DAGvars, const std::vector<mc::FFVar> &DAGfunctions, const std::vector<babBase::OptimizationVariable> &variables,
-                   const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector<Constraint> *constraintPropertiesIn, UBS_USE useIn):
+                   const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr<Settings> settingsIn, std::shared_ptr<Logger> loggerIn, std::shared_ptr<std::vector<Constraint>> constraintPropertiesIn, UBS_USE useIn):
     UpperBoundingSolver(DAG, DAGvars, DAGfunctions, variables, nineqIn, neqIn, nineqSquashIn, settingsIn, loggerIn, constraintPropertiesIn, useIn)
 {
 
@@ -84,23 +79,21 @@ UbpIpopt::UbpIpopt(mc::FFGraph &DAG, const std::vector<mc::FFVar> &DAGvars, cons
             }
             default:
             {
-                std::ostringstream errmsg;
-                errmsg << "  Error initializing UbpIpopt: unknown USAGE setting " << _intendedUse << std::endl;
-                throw(MAiNGOException(errmsg.str()));
+                throw "  Unknown USAGE setting " + std::to_string(_intendedUse);
             }
         }
 
         // Initialize
         Ipopt::ApplicationReturnStatus status = _Ipopt->Initialize();
         if (status != Ipopt::Solve_Succeeded) {
-            throw(-1);
+            throw MAiNGOException(" Status of Ipopt initialization: " + std::to_string(status));
         }
     }
     catch (const std::exception &e) {
-        throw(MAiNGOException("  Error initializing Ipopt.", e));
+        throw MAiNGOException("  Error initializing UbpIpopt.", e);
     }
     catch (...) {
-        throw(MAiNGOException("  Unknown error initializing Ipopt."));
+        throw MAiNGOException("  Unknown error initializing UbpIpopt.");
     }
 }
 
@@ -120,12 +113,10 @@ UbpIpopt::_solve_nlp(const std::vector<double> &lowerVarBounds, const std::vecto
         if (_maingoSettings->UBP_verbosity >= VERB_ALL) {
             std::ostringstream outstr;
             outstr << "  Ipopt status: " << status << std::endl;
-            _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+            _logger->print_message(outstr.str(), _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
         }
         if (status == Ipopt::ApplicationReturnStatus::Internal_Error) {
-            std::ostringstream errmsg;
-            errmsg << "  An unknown internal error occurred within Ipopt. Please contact Ipopt mailing list." << std::endl;
-            throw(MAiNGOException(errmsg.str()));
+            throw MAiNGOException("  An unknown internal error occurred within Ipopt. Please contact Ipopt mailing list.");
         }
         else {
             _theIpoptProblem->get_solution(solutionPoint);
@@ -136,14 +127,14 @@ UbpIpopt::_solve_nlp(const std::vector<double> &lowerVarBounds, const std::vecto
             std::ostringstream outstr;
             outstr << "  Warning: Local optimization using Ipopt failed. Continuing without a feasible point (unless initial point happens to be feasible)." << std::endl;
             outstr << "           Reason: " << e.what() << std::endl;
-            _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+            _logger->print_message(outstr.str(), _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
         }
     }
     catch (...) {
         if (_maingoSettings->UBP_verbosity >= VERB_ALL) {
             std::ostringstream outstr;
             outstr << "  Warning: Local optimization using Ipopt failed. Continuing without a feasible point (unless initial point happens to be feasible)." << std::endl;
-            _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+            _logger->print_message(outstr.str(), _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
         }
     }
 
diff --git a/src/ubpKnitro.cpp b/src/ubpKnitro.cpp
index 0ef8e11465fa356c220ee94c82c53efe96046cbd..3ee5f25adbded7a168f4c426350e995c790aba67 100644
--- a/src/ubpKnitro.cpp
+++ b/src/ubpKnitro.cpp
@@ -7,17 +7,12 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file ubpKnitro.cpp
- *
- * @brief File containing implementation of ubpKnitro class used for solving the
- *        upper bounding problems.
- *
  **********************************************************************************/
 
 #ifdef HAVE_KNITRO
 
 #include "ubpKnitro.h"
-#include "exceptions.h"
+#include "MAiNGOException.h"
 
 
 using namespace maingo;
@@ -27,7 +22,7 @@ using namespace ubp;
 /////////////////////////////////////////////////////////////////////////
 // constructor for the upper bounding solver
 UbpKnitro::UbpKnitro(mc::FFGraph &DAG, const std::vector<mc::FFVar> &DAGvars, const std::vector<mc::FFVar> &DAGfunctions, const std::vector<babBase::OptimizationVariable> &variables,
-                     const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector<Constraint> *constraintPropertiesIn, UBS_USE useIn):
+                     const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr<Settings> settingsIn, std::shared_ptr<Logger> loggerIn, std::shared_ptr<std::vector<Constraint>> constraintPropertiesIn, UBS_USE useIn):
     UpperBoundingSolver(DAG, DAGvars, DAGfunctions, variables, nineqIn, neqIn, nineqSquashIn, settingsIn, loggerIn, constraintPropertiesIn, useIn),
     _theKnitroProblem(new KnitroProblem(_nvar, _neq, _nineq, _nineqSquash, variables, &_structure, constraintPropertiesIn, _DAGobj)),
     _Knitro(_theKnitroProblem, /*KN_GRADOPT_FORWARD*/ KN_GRADOPT_EXACT, /*KN_HESSOPT_BFGS*/ KN_HESSOPT_EXACT)
@@ -78,16 +73,16 @@ UbpKnitro::UbpKnitro(mc::FFGraph &DAG, const std::vector<mc::FFVar> &DAGvars, co
             default:
             {
                 std::ostringstream errmsg;
-                errmsg << "  Error initializing UbpKnitro: unknown USAGE setting " << _intendedUse << std::endl;
-                throw(MAiNGOException(errmsg.str()));
+                errmsg << "  Unknown USAGE setting " << _intendedUse << std::endl;
+                throw MAiNGOException(errmsg.str());
             }
         }
     }
     catch (const std::exception &e) {
-        throw(MAiNGOException("  Error initializing Knitro.", e));
+        throw MAiNGOException("  Error initializing UbpKnitro.", e);
     }
     catch (...) {
-        throw(MAiNGOException("  Unknown error initializing Knitro."));
+        throw MAiNGOException("  Unknown error initializing UbpKnitro.");
     }
 }
 
@@ -109,12 +104,10 @@ UbpKnitro::_solve_nlp(const std::vector<double> &lowerVarBounds, const std::vect
         if (_maingoSettings->UBP_verbosity >= VERB_ALL) {
             std::ostringstream outstr;
             outstr << "Knitro status: " << _solverStatus << std::endl;
-            _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+            _logger->print_message(outstr.str(), _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
         }
         if (_solverStatus <= -500) {
-            std::ostringstream errmsg;
-            errmsg << "  An unknown internal error occurred within Knitro. Please contact Knitro mailing list." << std::endl;
-            throw(MAiNGOException(errmsg.str()));
+            throw MAiNGOException("  An unknown internal error occurred within Knitro. Please contact Knitro mailing list.");
         }
         else if (_solverStatus <= -200) {
             // Infeasible point
@@ -130,14 +123,14 @@ UbpKnitro::_solve_nlp(const std::vector<double> &lowerVarBounds, const std::vect
             std::ostringstream outstr;
             outstr << "  Warning: Local optimization using Knitro failed. Continuing without a feasible point (unless initial point happens to be feasible)." << std::endl;
             outstr << "           Reason: " << e.what() << std::endl;
-            _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+            _logger->print_message(outstr.str(), _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
         }
     }
     catch (...) {
         if (_maingoSettings->UBP_verbosity >= VERB_ALL) {
             std::ostringstream outstr;
             outstr << "  Warning: Local optimization using Knitro failed. Continuing without a feasible point (unless initial point happens to be feasible)." << std::endl;
-            _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+            _logger->print_message(outstr.str(), _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
         }
     }
 
diff --git a/src/ubpNLopt.cpp b/src/ubpNLopt.cpp
index 705adaa8fa7323889cd9efe32e576a067ba4de99..3c3fe19dff420b2d84f3b5bfc305643eb9410eb5 100644
--- a/src/ubpNLopt.cpp
+++ b/src/ubpNLopt.cpp
@@ -7,15 +7,10 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file ubpNLopt.cpp
- *
- * @brief File containing implementation of UbpNLopt class used for solving the
- *        upper bounding problems.
- *
  **********************************************************************************/
 
 #include "ubpNLopt.h"
-#include "exceptions.h"
+#include "MAiNGOException.h"
 #include "ubpEvaluators.h"
 
 
@@ -26,7 +21,7 @@ using namespace ubp;
 /////////////////////////////////////////////////////////////////////////
 // constructor for the upper bounding solver
 UbpNLopt::UbpNLopt(mc::FFGraph& DAG, const std::vector<mc::FFVar>& DAGvars, const std::vector<mc::FFVar>& DAGfunctions, const std::vector<babBase::OptimizationVariable>& variables,
-                   const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, Settings* settingsIn, Logger* loggerIn, std::vector<Constraint>* constraintPropertiesIn, UBS_USE useIn):
+                   const unsigned nineqIn, const unsigned neqIn, const unsigned nineqSquashIn, std::shared_ptr<Settings> settingsIn, std::shared_ptr<Logger> loggerIn, std::shared_ptr<std::vector<Constraint>> constraintPropertiesIn, UBS_USE useIn):
     UpperBoundingSolver(DAG, DAGvars, DAGfunctions, variables, nineqIn, neqIn, nineqSquashIn, settingsIn, loggerIn, constraintPropertiesIn, useIn)
 {
 
@@ -42,30 +37,28 @@ UbpNLopt::UbpNLopt(mc::FFGraph& DAG, const std::vector<mc::FFVar>& DAGvars, cons
                 desiredSolver = settingsIn->UBP_solverBab;
                 break;
             default:
-                std::ostringstream errmsg;
-                errmsg << "  Error initializing UbpNlopt: unknown USAGE setting " << _intendedUse << std::endl;
-                throw(MAiNGOException(errmsg.str()));
+                throw MAiNGOException("  Unknown USAGE setting " + std::to_string(_intendedUse));
         }
 
         // Initialize solver (where necessary)
         switch (desiredSolver) {
-            case ubp::SOLVER_COBYLA: {
+            case ubp::UBP_SOLVER_COBYLA: {
                 _NLopt       = nlopt::opt(nlopt::LN_COBYLA, _nvar);    // Initialize NLOPT with solver COBYLA (only derivative-free solver that can handle equalities); set # opt vars
                 _NLoptSubopt = nlopt::opt(nlopt::LN_BOBYQA, _nvar);    // Dummy, not being used! DON'T REMOVE THIS!
                 break;
             }
-            case ubp::SOLVER_SLSQP: {
+            case ubp::UBP_SOLVER_SLSQP: {
                 _NLopt       = nlopt::opt(nlopt::LD_SLSQP, _nvar);     // Initialize NLOPT with solver SLSQP (only gradient-based solver that can handle equalities); set # opt vars
                 _NLoptSubopt = nlopt::opt(nlopt::LN_BOBYQA, _nvar);    // Dummy, not being used! DON'T REMOVE THIS!
                 break;
             }
-            case ubp::SOLVER_LBFGS: {
+            case ubp::UBP_SOLVER_LBFGS: {
                 _NLopt       = nlopt::opt(nlopt::AUGLAG, _nvar);      // Initialize NLOPT with AUGmented LAGrangian solver (--> converts constrained to unconstrained problem)
                 _NLoptSubopt = nlopt::opt(nlopt::LD_LBFGS, _nvar);    // Set unconstrained subsolver to low-storage BFGS
                 _NLopt.set_local_optimizer(_NLoptSubopt);
                 break;
             }
-            case ubp::SOLVER_BOBYQA: {
+            case ubp::UBP_SOLVER_BOBYQA: {
                 _NLopt       = nlopt::opt(nlopt::AUGLAG, _nvar);       // Initialize NLOPT with AUGmented LAGrangian solver (--> converts constrained to unconstrained problem)
                 _NLoptSubopt = nlopt::opt(nlopt::LN_BOBYQA, _nvar);    // Set unconstrained subsolver to BOBYQA
                 _NLopt.set_local_optimizer(_NLoptSubopt);
@@ -73,9 +66,7 @@ UbpNLopt::UbpNLopt(mc::FFGraph& DAG, const std::vector<mc::FFVar>& DAGvars, cons
             }
             default:
             {
-                std::ostringstream errmsg;
-                errmsg << "  Unknown upper bounding solution strategy in UBP: " << desiredSolver << std::endl;
-                throw(MAiNGOException(errmsg.str()));
+                throw MAiNGOException("  Unknown upper bounding solver selected for usage " + std::to_string(_intendedUse) + ": " + std::to_string(desiredSolver));
             }
         }
 
@@ -88,7 +79,7 @@ UbpNLopt::UbpNLopt(mc::FFGraph& DAG, const std::vector<mc::FFVar>& DAGvars, cons
 
         // Equalities
         if (_neq > _nvar) {
-            throw(MAiNGOException("  ERROR: NLopt does not support problems containing more equality constraints than variables."));
+            throw MAiNGOException("  Error iniailizing NLopt: NLopt does not support problems containing more equality constraints than variables.");
         }
         std::vector<double> eqTols(_neq, _maingoSettings->deltaEq);
         _NLopt.add_equality_mconstraint(_NLopt_get_eq, this, eqTols);    // Giving pointer to current object as data since it is needed to get access to the DAG (otherwise, DAG would need to be static)
@@ -118,17 +109,15 @@ UbpNLopt::UbpNLopt(mc::FFGraph& DAG, const std::vector<mc::FFVar>& DAGvars, cons
                 break;
             default:
             {
-                std::ostringstream errmsg;
-                errmsg << "  Error modifying effort for UBP: unknown USAGE setting " << _intendedUse << std::endl;
-                throw(MAiNGOException(errmsg.str()));
+                throw MAiNGOException("  Unknown USAGE setting " + std::to_string(_intendedUse));
             }
         }
     }
     catch (const std::exception& e) {
-        throw(MAiNGOException("  Error initializing NLopt.", e));
+        throw MAiNGOException("  Error initializing NLopt.", e);
     }
     catch (...) {
-        throw(MAiNGOException("  Unknown error initializing NLopt."));
+        throw MAiNGOException("  Unknown error initializing NLopt.");
     }
 }
 
@@ -148,7 +137,7 @@ UbpNLopt::_solve_nlp(const std::vector<double>& lowerVarBounds, const std::vecto
         if (_maingoSettings->UBP_verbosity >= VERB_ALL) {
             std::ostringstream outstr;
             outstr << "  Status of local optimization: " << solveStatus << std::endl;
-            _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+            _logger->print_message(outstr.str(), _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
         }
     }
     catch (const std::exception& e) {
@@ -156,7 +145,7 @@ UbpNLopt::_solve_nlp(const std::vector<double>& lowerVarBounds, const std::vecto
             std::ostringstream outstr;
             outstr << "  Warning: Local optimization using NLOPT failed. Continuing without a feasible point (unless last point happens to be feasible)." << std::endl;
             outstr << "           Reason: " << e.what() << std::endl;
-            _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+            _logger->print_message(outstr.str(), _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
         }
         if (solutionPoint.size() != _nvar) {
             return SUBSOLVER_INFEASIBLE;
@@ -166,7 +155,7 @@ UbpNLopt::_solve_nlp(const std::vector<double>& lowerVarBounds, const std::vecto
         if (_maingoSettings->UBP_verbosity >= VERB_ALL) {
             std::ostringstream outstr;
             outstr << "  Warning: Local optimization using NLOPT failed. Continuing without a feasible point (unless last point happens to be feasible)." << std::endl;
-            _logger->print_message(outstr.str(), _maingoSettings->writeLog, _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->outstreamVerbosity);
+            _logger->print_message(outstr.str(), _maingoSettings->UBP_verbosity, VERB_ALL, _maingoSettings->loggingDestination);
         }
         if (solutionPoint.size() != _nvar) {
             return SUBSOLVER_INFEASIBLE;
diff --git a/switchToHttps b/switchToHttps
index f6ad0b5968825a950d3870606f00d819c5e4b992..9ba7405505aaf5048abf81378e0de5a3c72782d7 100755
--- a/switchToHttps
+++ b/switchToHttps
@@ -1,2 +1 @@
-sed -i -e 's/git\@/https\:\/\//g' .git/config
-sed -i -e 's/aachen\.de\:/aachen\.de\//g' .git/config
+sed -i -e 's/git\@git\.rwth\-aachen\.de\:/https\:\/\/git\.rwth\-aachen\.de\//g' .git/config
diff --git a/switchToSsh b/switchToSsh
index 026a92763ae73f54c5a0e90b413094b298c061e0..155b3c6167dd8203078efcdaf4201b68b4e8fd88 100755
--- a/switchToSsh
+++ b/switchToSsh
@@ -1,2 +1 @@
-sed -i -e 's/https\:\/\//git\@/g' .git/config
-sed -i -e 's/aachen\.de\//aachen\.de\:/g' .git/config
+sed -i -e 's/https\:\/\/git\.rwth-aachen\.de\//git\@\git\.rwth\-aachen\.de\:/g' .git/config
diff --git a/tests/testProblems/libraries/HenryComponent.h b/tests/testProblems/libraries/HenryComponent.h
new file mode 100644
index 0000000000000000000000000000000000000000..6f0c587cbc991df39426a50bc042fcb8a3905f17
--- /dev/null
+++ b/tests/testProblems/libraries/HenryComponent.h
@@ -0,0 +1,689 @@
+/**********************************************************************************
+ * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ **********************************************************************************/
+
+
+#ifndef HENRYCOMPONENT_H_
+#define HENRYCOMPONENT_H_
+
+
+#include "PureComponent.h"
+
+/**
+* @class HenryComponent
+* @brief Class representing a Henry component.
+*
+* It stores all necessary parameters and contains functions for computing temperature- (and possibly pressure-)dependent properties using different models.
+* The models to be used can be selected through the set functions using the respective enums.
+*/
+template <typename U>
+class HenryComponent: public PureComponent<U> {
+
+  public:
+    /** 
+	* @enum HENRY
+	* @brief Enum for selecting the Henry's law constant model to be used.
+	*/
+    enum HENRY {
+        HENRY_UNDEF = 0,
+        HENRY_ASPEN    //!< H_iA = exp(C0 + C1/T + C2*ln(T) + C3*T + C4/T^2)
+    };
+
+    /** 
+	* @enum VSOL
+	* @brief Enum for selecting the infinite dilution volume model to be used.
+	*/
+    enum VSOL {
+        VSOL_UNDEF = 0,
+        VSOL_CONSTANT    //!< vsol = C0
+    };
+
+    /** 
+	* @enum MIX
+	* @brief Enum for selecting the solvent mixing rules to be used.
+	*/
+    enum MIX {
+        MIX_UNDEF = 0,
+        MIX_MOLEFRAC,       //!< ln(H_i) = sum_A x_A * ln(H_iA)
+        MIX_NORMOLEFRAC,    //!< ln(H_i) = sum_A y_A * ln(H_iA),    y_A := x_A /(sum_{B in Solvents} x_B)
+        MIX_ASPEN           //!< ln(H_i) = sum_A w_A* * ln(H_iA),   w_A := x_A*vc_A^2/3 /(sum_{B in Solvents} x_B*vc_B^2/3), 	vc_i: critical volume of solvent
+    };
+
+
+    /**
+	* @brief Constructor. Requires all necessary constant property parameters as arguments.
+	* @param[in] nameIn is the component name.
+	* @param[in] mwIn is the molecular weight in kg/kmol.
+	* @param[in] tcIn is the critical temperature in K.
+	* @param[in] pcIn is the critical pressure in bar.
+	* @param[in] vcIn is the critical volume in cm^3/mol.
+	* @param[in] dh0In is the enthalpy of formation at 298.15 K in kJ/mol
+	* @param[in] dg0In is the Gibbs free energy of formation at 298.15 K in kJ/mol
+	*/
+    HenryComponent(const std::string nameIn, const double mwIn, const double tcIn, const double pcIn, const double vcIn, const double dh0In, const double dg0In):
+        PureComponent<U>(nameIn, mwIn, tcIn, pcIn, vcIn, dh0In, dg0In), _maxLnH(std::log(1.0e12)), _minLnH(std::log(1.0e-12)), _henryModel(HENRY_UNDEF), _vsolModel(VSOL_UNDEF), _mixingRule(MIX_UNDEF) {}
+
+
+    /**
+	* @brief Function for computing the Henry's law constant in a single solvent at a given temperature (and the solvent's vapor pressure, i.e., neglecting the influence of pressure).
+	* @param[in] T is the temperature in K.
+	* @param[in] iSolvent is the index of the solvent (in the full components vector).
+	* @return Henry's law constant in bar
+	*/
+    U calculate_henry_single(const U &T, const int iSolvent) const;
+    U calculate_henry_single_log(const U &T, const int iSolvent) const;
+
+    /**
+	* @brief Function for computing the Henry's law constant in a single solvent at a given temperature and pressure.
+	* @param[in] T is the temperature in K.
+	* @param[in] p is the pressure in bar.
+	* @param[in] ps is the solvents vapor pressure in bar.
+	* @param[in] iSolvent is the index of the solvent (in the full components vector).
+	* @return Henry's law constant in bar
+	*/
+    U calculate_henry_single(const U &T, const U &p, const U &ps, const int iSolvent) const;
+
+
+    /**
+	* @brief Function for computing the Henry's law constant in mixed solvents at a given temperature and solvent composition (neglecting the influence of pressure).
+	* @param[in] T is the temperature in K.
+	* @param[in] x is the vector containing the liquid mole fractions (only the ones of the subcritical components for which Henry coefficients are given will be used).
+	* @return Henry's law constant in bar
+	*/
+    U calculate_henry_mixed(const U &T, const std::vector<U> &x) const;
+
+    /**
+	* @brief Function for computing the Henry's law constant in a single solvent at a given temperature, pressure, and solvent composition.
+	* @param[in] T is the temperature in K.
+	* @param[in] p is the pressure in bar.
+	* @param[in] ps is the vector containing the solvents' vapor pressures in bar.
+	* @param[in] x is the vector containing the liquid mole fractions (only the ones of the subcritical components for which Henry coefficients are given will be used).
+	* @return Henry's law constant in bar
+	*/
+    U calculate_henry_mixed(const U &T, const U &p, const std::vector<U> &ps, const std::vector<U> &x) const;
+
+
+    /**
+	* @brief Function for computing the Henry's law constant divided by the infinite dilution activity coefficient in mixed solvents at a given temperature and composition (neglecting the influence of pressure).
+	* @param[in] T is the temperature in K.
+	* @param[in] gammaInf is the vector containing the natural logarithms of the infinite dilution activity coefficients in the different solvents.
+	* @param[in] x is the vector containing the liquid mole fractions (only the ones of the subcritical components for which Henry coefficients are given will be used).
+	* @return Henry's law constant in bar
+	*/
+    U calculate_henry_by_gamma_mixed(const U &T, const std::vector<U> &logGammaInf, const std::vector<U> &x) const;
+
+    /**
+	* @brief Function for computing the Henry's law constant in a single solvent at a given temperature and pressure (using the solvent's vapor pressure).
+	* @param[in] T is the temperature in K.
+	* @param[in] p is the pressure in bar.
+	* @param[in] ps is the vector containing the solvents' vapor pressures in bar.
+	* @param[in] gammaInf is the vector containing the natural logarithms of the infinite dilution activity coefficients in the different solvents.
+	* @param[in] x is the vector containing the liquid mole fractions (only the ones of the subcritical components for which Henry coefficients are given will be used).
+	* @return Henry's law constant in bar
+	*/
+    U calculate_henry_by_gamma_mixed(const U &T, const U &p, const std::vector<U> &ps, const std::vector<U> &logGammaInf, const std::vector<U> &x) const;
+
+
+    /**
+	* @brief Function for computing the enthalpy of solution in a single solvent at a given temperature (and the solvent's vapor pressure).
+	* @param[in] T is the temperature in K.
+	* @param[in] iSolvent is the index of the solvent (in the full components vector).
+	* @return enthalpy of solution in kJ/kmol
+	*/
+    U calculate_solution_enthalpy_single(const U &T, const int iSolvent) const;
+
+    /**
+	* @brief Function for computing the enthalpy of solution in mixed solvents at a given temperature and solvent composition (neglecting the influence of pressure).
+	* @param[in] T is the temperature in K.
+	* @param[in] x is the vector containing the liquid mole fractions (only the ones of the subcritical components for which Henry coefficients are given will be used).
+	* @return enthalpy of solution in kJ/kmol
+	*/
+    U calculate_solution_enthalpy_mixed(const U &T, const std::vector<U> &x) const;
+
+
+    /**
+	* @brief Functions for selecting the property models to be used.
+	* @param[in] modelId is an enumerator specifying the model.
+	*/
+    void set_henry_model(const HENRY modelId);
+    void set_solute_volume_model(const VSOL modelId);
+    void set_solvent_mixing_rule(const MIX ruleId, const std::vector<double> &parameters = std::vector<double>());
+
+    /**
+	* @brief Functions for adding parameter values.
+	* @param[in] parameters is a vector containing the required parameter values.
+	*/
+    void add_henry_parameters(const std::vector<double> &parameters);
+    void add_volume_parameters(const std::vector<double> &parameters);
+
+  private:
+    const double _minLnH; /*!< Minimum value for natural logarithm of Henry's law constant (to avoid underflow)	*/
+    const double _maxLnH; /*!< Minimum value for natural logarithm of Henry's law constant (to avoid overflow)	*/
+
+    std::vector<std::vector<double>> _paramsHenry; /*!< Pointer to vector containing Henry parameters (at solvent vapor pressure); entry 0 is index of solvent			[K, bar] 		*/
+    std::vector<std::vector<double>> _paramsVsol;  /*!< Pointer to vector containing parameters for infinite dilution volume model; entry 0 is index of solvent		[K, cm^3/mol] 	*/
+    std::vector<double> _paramsMixAspen;           /*!< Pointer to vector containing parameters for Aspen solvent mixing rule, i.e., critical volumes of solvents 		[cm^3/mol]		*/
+
+    HENRY _henryModel; /*!< Enumerator storing which Henry's law constant model is used					*/
+    VSOL _vsolModel;   /*!< Enumerator storing which infinite dilution volume model is used				*/
+    MIX _mixingRule;   /*!< Enumerator storing which solvent mixing rule is used							*/
+
+    U _get_log_henry_single(const U &T, const int iSolventOnly) const;
+    U _get_log_pressure_correction(const U &T, const U &p, const U &ps, const int iSolventOnly) const;
+    U _get_dhsol_single(const U &T, const int iSolventOnly) const;
+};
+
+
+// ------------ Henry's constant ------------
+template <typename U>
+U
+HenryComponent<U>::calculate_henry_single(const U &T, const int iSolvent) const
+{
+
+    if (_paramsHenry.empty()) {
+        throw(std::runtime_error("Error computing Henry's law constant: No Henry parameters given."));
+    }
+
+    for (size_t i = 0; i < _paramsHenry.size(); ++i) {
+        if (_paramsHenry[i][0] == iSolvent) {
+            return exp(_get_log_henry_single(T, i));
+        }
+    }
+
+    throw(std::runtime_error("Error computing Henry's law constant: No Henry parameters found for desired solvent."));
+}
+template <typename U>
+U
+HenryComponent<U>::calculate_henry_single_log(const U &T, const int iSolvent) const
+{
+
+    if (_paramsHenry.empty()) {
+        throw(std::runtime_error("Error computing Henry's law constant: No Henry parameters given."));
+    }
+
+    for (size_t i = 0; i < _paramsHenry.size(); ++i) {
+        if (_paramsHenry[i][0] == iSolvent) {
+            return _get_log_henry_single(T, i);
+        }
+    }
+
+    throw(std::runtime_error("Error computing Henry's law constant: No Henry parameters found for desired solvent."));
+}
+
+
+template <typename U>
+U
+HenryComponent<U>::calculate_henry_single(const U &T, const U &p, const U &ps, const int iSolvent) const
+{
+
+    if (_paramsHenry.empty()) {
+        throw(std::runtime_error("Error computing Henry's law constant: No Henry parameters given."));
+    }
+    if (_paramsVsol.empty()) {
+        throw(std::runtime_error("Error computing pressure correction for Henry's law constant: No infinite dilution volume parameters given."));
+    }
+    if (_paramsHenry.size() != _paramsVsol.size()) {
+        throw(std::runtime_error("Error computing pressure correction for Henry's law constant: Dimension of Henry parameters and infinite dilution volume parameters don't match."));
+    }
+
+    for (size_t i = 0; i < _paramsHenry.size(); ++i) {
+        if (_paramsHenry[i][0] == iSolvent) {
+            U henryAtPs(exp(_get_log_henry_single(T, i)));
+            U pressureCorrection(exp(_get_log_pressure_correction(T, p, ps, i)));
+            return henryAtPs * pressureCorrection;
+        }
+    }
+
+    throw(std::runtime_error("Error computing Henry's law constant: No Henry parameters found for desired solvent."));
+}
+
+
+template <typename U>
+U
+HenryComponent<U>::calculate_henry_mixed(const U &T, const std::vector<U> &x) const
+{
+
+    if (_paramsHenry.empty()) {
+        throw(std::runtime_error("Error computing Henry's law constant: No Henry parameters given."));
+    }
+
+
+    U lnH(0.);
+    switch (_mixingRule) {
+        case MIX_MOLEFRAC: {
+            for (size_t i = 0; i < _paramsHenry.size(); ++i) {
+                U lnHi(_get_log_henry_single(T, i));
+                lnH += x[_paramsHenry[i][0]] * lnHi;
+            }
+            return exp(lnH);
+        }
+        case MIX_NORMOLEFRAC: {
+            U sumXsolv(0.);
+            for (size_t i = 0; i < _paramsHenry.size(); ++i) {
+                sumXsolv += x[_paramsHenry[i][0]];
+                U lnHi(_get_log_henry_single(T, i));
+                lnH += x[_paramsHenry[i][0]] * lnHi;
+            }
+            return exp(bounding_func(lnH / (sumXsolv), _minLnH, _maxLnH));
+        }
+        case MIX_ASPEN: {
+            U sumWsolv(0.);
+            for (size_t i = 0; i < _paramsHenry.size(); ++i) {
+                U wSolv(x[_paramsHenry[i][0]] * _paramsMixAspen[i]);
+                sumWsolv += wSolv;
+                U lnHi(_get_log_henry_single(T, i));
+                lnH += wSolv * lnHi;
+            }
+            return exp(bounding_func(lnH / (sumWsolv), _minLnH, _maxLnH));
+        }
+        case MIX_UNDEF:
+            throw(std::runtime_error("Error: No solute mixing rule specified."));
+
+        default:
+            throw(std::runtime_error("Error: Unknown solute mixing rule."));
+    }
+}
+
+
+template <typename U>
+U
+HenryComponent<U>::calculate_henry_mixed(const U &T, const U &p, const std::vector<U> &ps, const std::vector<U> &x) const
+{
+
+    if (_paramsHenry.empty()) {
+        throw(std::runtime_error("Error computing Henry's law constant: No Henry parameters given."));
+    }
+    if (_paramsVsol.empty()) {
+        throw(std::runtime_error("Error computing pressure correction for Henry's law constant: No infinite dilution volume parameters given."));
+    }
+    if (_paramsHenry.size() != _paramsVsol.size()) {
+        throw(std::runtime_error("Error computing pressure correction for Henry's law constant: Dimension of Henry parameters and infinite dilution volume parameters don't match."));
+    }
+
+    U lnH(0.);
+    switch (_mixingRule) {
+        case MIX_MOLEFRAC: {
+            for (size_t i = 0; i < _paramsHenry.size(); ++i) {
+                U logHiAtPsi(_get_log_henry_single(T, i));
+                U logPressureCorrection(_get_log_pressure_correction(T, p, ps[_paramsHenry[i][0]], i));
+                lnH += x[_paramsHenry[i][0]] * (logHiAtPsi + logPressureCorrection);
+            }
+            return exp(lnH);
+        }
+        case MIX_NORMOLEFRAC: {
+            U sumXsolv(0.);
+            for (size_t i = 0; i < _paramsHenry.size(); ++i) {
+                sumXsolv += x[_paramsHenry[i][0]];
+                U logHiAtPsi(_get_log_henry_single(T, i));
+                U logPressureCorrection(_get_log_pressure_correction(T, p, ps[_paramsHenry[i][0]], i));
+                lnH += x[_paramsHenry[i][0]] * (logHiAtPsi + logPressureCorrection);
+            }
+            return exp(bounding_func(lnH / (sumXsolv), _minLnH, _maxLnH));
+        }
+        case MIX_ASPEN: {
+            U sumWsolv(0.);
+            for (size_t i = 0; i < _paramsHenry.size(); ++i) {
+                U wSolv(x[_paramsHenry[i][0]] * _paramsMixAspen[i]);
+                sumWsolv += wSolv;
+                U logHiAtPsi(_get_log_henry_single(T, i));
+                U logPressureCorrection(_get_log_pressure_correction(T, p, ps[_paramsHenry[i][0]], i));
+                lnH += wSolv * (logHiAtPsi + logPressureCorrection);
+            }
+            return exp(bounding_func(lnH / (sumWsolv), _minLnH, _maxLnH));
+        }
+        case MIX_UNDEF:
+            throw(std::runtime_error("Error: No solute mixing rule specified."));
+
+        default:
+            throw(std::runtime_error("Error: Unknown solute mixing rule."));
+    }
+}
+
+
+template <typename U>
+U
+HenryComponent<U>::calculate_henry_by_gamma_mixed(const U &T, const std::vector<U> &logGammaInf, const std::vector<U> &x) const
+{
+
+    if (_paramsHenry.empty()) {
+        throw(std::runtime_error("Error computing Henry's law constant: No Henry parameters given."));
+    }
+    if (logGammaInf.size() != _paramsHenry.size()) {
+        throw(std::runtime_error("Error computin Henry's law constant: Dimension fo infinite dilution activity coefficient vector inconsistent with number of solvents."));
+    }
+
+    U lnHbyGammaInf(0.);
+    switch (_mixingRule) {
+        case MIX_MOLEFRAC: {
+            for (size_t i = 0; i < _paramsHenry.size(); ++i) {
+                U lnHi(_get_log_henry_single(T, i));
+                lnHbyGammaInf += x[_paramsHenry[i][0]] * (lnHi - logGammaInf[i]);
+            }
+            return exp(bounding_func(lnHbyGammaInf, _minLnH, _maxLnH));
+        }
+        case MIX_NORMOLEFRAC: {
+            U sumXsolv(0.);
+            for (size_t i = 0; i < _paramsHenry.size(); ++i) {
+                sumXsolv += x[_paramsHenry[i][0]];
+                U lnHi(_get_log_henry_single(T, i));
+                lnHbyGammaInf += x[_paramsHenry[i][0]] * (lnHi - logGammaInf[i]);
+            }
+            return exp(bounding_func(lnHbyGammaInf / (sumXsolv), _minLnH, _maxLnH));
+        }
+        case MIX_ASPEN: {
+            U sumWsolv(0.);
+            for (size_t i = 0; i < _paramsHenry.size(); ++i) {
+                U wSolv(x[_paramsHenry[i][0]] * _paramsMixAspen[i]);
+                sumWsolv += wSolv;
+                U lnHi(_get_log_henry_single(T, i));
+                lnHbyGammaInf += wSolv * (lnHi - logGammaInf[i]);
+            }
+            return exp(bounding_func(lnHbyGammaInf / (sumWsolv), _minLnH, _maxLnH));
+        }
+        case MIX_UNDEF:
+            throw(std::runtime_error("Error: No solute mixing rule specified."));
+
+        default:
+            throw(std::runtime_error("Error: Unknown solute mixing rule."));
+    }
+}
+
+
+template <typename U>
+U
+HenryComponent<U>::calculate_henry_by_gamma_mixed(const U &T, const U &p, const std::vector<U> &ps, const std::vector<U> &logGammaInf, const std::vector<U> &x) const
+{
+
+    if (_paramsHenry.empty()) {
+        throw(std::runtime_error("Error computing Henry's law constant: No Henry parameters given."));
+    }
+    if (logGammaInf.size() != _paramsHenry.size()) {
+        throw(std::runtime_error("Error computin Henry's law constant: Dimension fo infinite dilution activity coefficient vector inconsistent with number of solvents."));
+    }
+    if (_paramsHenry.size() != _paramsVsol.size()) {
+        throw(std::runtime_error("Error computing pressure correction for Henry's law constant: Dimension of Henry parameters and infinite dilution volume parameters don't match."));
+    }
+
+    U lnHbyGammaInf(0.);
+    switch (_mixingRule) {
+        case MIX_MOLEFRAC: {
+            for (size_t i = 0; i < _paramsHenry.size(); ++i) {
+                U logHiAtPsi(_get_log_henry_single(T, i));
+                U logPressureCorrection(_get_log_pressure_correction(T, p, ps[_paramsHenry[i][0]], i));
+                lnHbyGammaInf += x[_paramsHenry[i][0]] * (logHiAtPsi + logPressureCorrection - logGammaInf[i]);
+            }
+            return exp(bounding_func(lnHbyGammaInf, _minLnH, _maxLnH));
+        }
+        case MIX_NORMOLEFRAC: {
+            U sumXsolv(0.);
+            for (size_t i = 0; i < _paramsHenry.size(); ++i) {
+                sumXsolv += x[_paramsHenry[i][0]];
+                U logHiAtPsi(_get_log_henry_single(T, i));
+                U logPressureCorrection(_get_log_pressure_correction(T, p, ps[_paramsHenry[i][0]], i));
+                lnHbyGammaInf += x[_paramsHenry[i][0]] * (logHiAtPsi + logPressureCorrection - logGammaInf[i]);
+            }
+            return exp(bounding_func(lnHbyGammaInf / (sumXsolv), _minLnH, _maxLnH));
+        }
+        case MIX_ASPEN: {
+            U sumWsolv(0.);
+            for (size_t i = 0; i < _paramsHenry.size(); ++i) {
+                U wSolv(x[_paramsHenry[i][0]] * _paramsMixAspen[i]);
+                sumWsolv += wSolv;
+                U logHiAtPsi(_get_log_henry_single(T, i));
+                U logPressureCorrection(_get_log_pressure_correction(T, p, ps[_paramsHenry[i][0]], i));
+                lnHbyGammaInf += wSolv * (logHiAtPsi + logPressureCorrection - logGammaInf[i]);
+            }
+            return exp(bounding_func(lnHbyGammaInf / (sumWsolv), _minLnH, _maxLnH));
+        }
+        case MIX_UNDEF:
+            throw(std::runtime_error("Error: No solute mixing rule specified."));
+
+        default:
+            throw(std::runtime_error("Error: Unknown solute mixing rule."));
+    }
+}
+
+
+// ------------ Enthalpy of solution ------------
+template <typename U>
+U
+HenryComponent<U>::calculate_solution_enthalpy_single(const U &T, const int iSolvent) const
+{
+
+    if (_paramsHenry.empty()) {
+        throw(std::runtime_error("Error computing solution enthalpy: No Henry parameters given."));
+    }
+
+    for (size_t i = 0; i < _paramsHenry.size(); ++i) {
+        if (_paramsHenry[i][0] == iSolvent) {
+            return _get_dhsol_single(T, i);
+        }
+    }
+
+    throw(std::runtime_error("Error computing solution enthalpy: No Henry parameters found for desired solvent."));
+}
+
+template <typename U>
+U
+HenryComponent<U>::calculate_solution_enthalpy_mixed(const U &T, const std::vector<U> &x) const
+{
+
+    if (_paramsHenry.empty()) {
+        throw(std::runtime_error("Error computing Henry's law constant: No Henry parameters given."));
+    }
+
+    U dHsol(0.);
+    switch (_mixingRule) {
+        case MIX_MOLEFRAC: {
+            for (size_t i = 0; i < _paramsHenry.size(); ++i) {
+                dHsol += x[_paramsHenry[i][0]] * _get_dhsol_single(T, i);
+            }
+            return dHsol;
+        }
+        case MIX_NORMOLEFRAC: {
+            U sumXsolv(0.);
+            for (size_t i = 0; i < _paramsHenry.size(); ++i) {
+                sumXsolv += x[_paramsHenry[i][0]];
+                dHsol += x[_paramsHenry[i][0]] * _get_dhsol_single(T, i);
+            }
+            return dHsol / (sumXsolv);
+        }
+        case MIX_ASPEN: {
+            U sumWsolv(0.);
+            for (size_t i = 0; i < _paramsHenry.size(); ++i) {
+                U wSolv(x[_paramsHenry[i][0]] * _paramsMixAspen[i]);
+                sumWsolv += wSolv;
+                dHsol += wSolv * _get_dhsol_single(T, i);
+            }
+            return dHsol / (sumWsolv);
+        }
+        case MIX_UNDEF:
+            throw(std::runtime_error("Error: No solute mixing rule specified."));
+
+        default:
+            throw(std::runtime_error("Error: Unknown solute mixing rule."));
+    }
+}
+
+
+// ------------ Model selection ------------
+template <typename U>
+void
+HenryComponent<U>::set_henry_model(HENRY modelId)
+{
+
+    switch (modelId) {
+        case HENRY_ASPEN:
+            break;
+        default:
+            throw(std::runtime_error("Error: Unknown Henry's law constant model."));
+    }
+    _henryModel = modelId;
+    _paramsHenry.clear();
+}
+
+
+template <typename U>
+void
+HenryComponent<U>::set_solute_volume_model(VSOL modelId)
+{
+
+    switch (modelId) {
+        case VSOL_CONSTANT:
+            break;
+        default:
+            throw(std::runtime_error("Error: Unknown infinite dilution volume."));
+    }
+
+    _vsolModel = modelId;
+    _paramsVsol.clear();
+}
+
+
+template <typename U>
+void
+HenryComponent<U>::set_solvent_mixing_rule(MIX ruleId, const std::vector<double> &parameters)
+{
+
+    switch (ruleId) {
+        case MIX_MOLEFRAC:
+            break;
+
+        case MIX_NORMOLEFRAC:
+            break;
+
+        case MIX_ASPEN:
+            if (parameters.empty()) {
+                throw(std::runtime_error("Error setting solvent mixing rule MIX_ASPEN: No vector of solvent critical volumes given."));
+            }
+            _paramsMixAspen = parameters;
+            for (size_t i = 0; i < _paramsMixAspen.size(); ++i) {
+                if (_paramsMixAspen[i] <= 0) {
+                    throw(std::runtime_error("Error setting solvent mixing rule MIX_ASPEN: Negative solvent critical volumes given."));
+                }
+                _paramsMixAspen[i] = pow(_paramsMixAspen[i], 2.0 / 3.0);
+            }
+            break;
+
+        default:
+            throw(std::runtime_error("Error: Unknown solvent mixing rule."));
+    }
+    _mixingRule = ruleId;
+}
+
+
+template <typename U>
+void
+HenryComponent<U>::add_henry_parameters(const std::vector<double> &parameters)
+{
+
+    switch (_henryModel) {
+        case HENRY_ASPEN:
+            if (parameters.size() != 6) {
+                throw(std::runtime_error("Error adding Henry's law constant parameters: Wrong number of parameters."));
+            }
+            break;
+        case HENRY_UNDEF:
+            throw(std::runtime_error("Error adding Henry's law constant parameters: No Henry's law model specified."));
+        default:
+            throw(std::runtime_error("Error adding Henry's law constant parameters: Unknown Henry's law constant model."));
+    }
+
+    for (size_t i = 0; i < _paramsHenry.size(); ++i) {
+        if (_paramsHenry[i][0] == parameters.at(0)) {
+            throw(std::runtime_error("Error adding Henry's law constant parameters: Data for specified solvents already exists."));
+        }
+    }
+    _paramsHenry.push_back(parameters);
+}
+
+
+template <typename U>
+void
+HenryComponent<U>::add_volume_parameters(const std::vector<double> &parameters)
+{
+
+    switch (_vsolModel) {
+        case VSOL_CONSTANT:
+            if (parameters.size() != 2) {
+                throw(std::runtime_error("Error adding infinite dilution volume parameters: wrong number of parameters."));
+            }
+            break;
+        case VSOL_UNDEF:
+            throw(std::runtime_error("Error adding infinite dilution volume parameters: No infinite dilution volume model specified."));
+        default:
+            throw(std::runtime_error("Error adding infinite dilution volume parameters: Unknown infinite dilution  volume model."));
+    }
+    for (size_t i = 0; i < _paramsVsol.size(); ++i) {
+        if (_paramsVsol[i][0] == parameters.at(0)) {
+            throw(std::runtime_error("Error adding infinite dilution volume parameters: Data for specified solvents already exists."));
+        }
+    }
+    _paramsVsol.push_back(parameters);
+}
+
+
+// ------------ Helper functions ------------
+
+template <typename U>
+U
+HenryComponent<U>::_get_log_henry_single(const U &T, const int iSolventOnly) const
+{
+
+    switch (_henryModel) {
+        case HENRY_ASPEN: {
+            U lnHi(_paramsHenry[iSolventOnly][1] + _paramsHenry[iSolventOnly][2] / T + _paramsHenry[iSolventOnly][3] * log(T) + _paramsHenry[iSolventOnly][4] * T + _paramsHenry[iSolventOnly][5] / sqr(T));
+            return bounding_func(lnHi, _minLnH, _maxLnH);
+        }
+        case HENRY_UNDEF:
+            throw(std::runtime_error("Error: No Henry's law constant model specified."));
+
+        default:
+            throw(std::runtime_error("Error: Unknown Henry's law constant model."));
+    }
+}
+
+
+template <typename U>
+U
+HenryComponent<U>::_get_log_pressure_correction(const U &T, const U &p, const U &ps, const int iSolventOnly) const
+{
+
+    switch (_vsolModel) {
+        case VSOL_CONSTANT:
+            return (_paramsVsol[iSolventOnly][1] / (PureComponent<U>::_R * T)) * (p - ps);
+
+        case VSOL_UNDEF:
+            throw(std::runtime_error("Error: No infinite dilution volume model specified."));
+
+        default:
+            throw(std::runtime_error("Error: Unknown infinite dilution volume model."));
+    }
+}
+
+
+template <typename U>
+U
+HenryComponent<U>::_get_dhsol_single(const U &T, const int iSolventOnly) const
+{
+
+    switch (_henryModel) {
+        case HENRY_ASPEN: {
+            return PureComponent<U>::_R * (-_paramsHenry[iSolventOnly][2] + _paramsHenry[iSolventOnly][3] * T + _paramsHenry[iSolventOnly][4] * pow(T, 2) - 2 * _paramsHenry[iSolventOnly][5] / T);
+        }
+        case HENRY_UNDEF:
+            throw(std::runtime_error("Error: No Henry's law constant model specified."));
+
+        default:
+            throw(std::runtime_error("Error: Unknown Henry's law constant model."));
+    }
+}
+
+#endif /* HENRYCOMPONENT_H_ */
diff --git a/tests/testProblems/libraries/Ideal2pStream.h b/tests/testProblems/libraries/Ideal2pStream.h
new file mode 100644
index 0000000000000000000000000000000000000000..1944cf61f650cbb35017b23b320a1cfeb7f243ce
--- /dev/null
+++ b/tests/testProblems/libraries/Ideal2pStream.h
@@ -0,0 +1,297 @@
+/**********************************************************************************
+ * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ **********************************************************************************/
+
+#ifndef IDEAL2PSTREAM_H_
+#define IDEAL2PSTREAM_H_
+
+#include "IdealFluid.h"
+
+using T = mc::FFVar;
+
+//Can calculate h,s,x out of p,t,h,s,x under using the functions of an ideal model
+class Ideal2pStream {
+  private:
+    //variables
+    T _p;          //[bar]
+    T _h;          //[kJ/kg]
+    T _s;          //[kJ/kg*K]
+    T _x;          //[-]
+    T _ts;         //[K]
+    T _hsatliq;    //[kJ/kg]
+    T _hsatvap;    //[kJ/kg]
+    T _ssatliq;    //[kJ/kgK]
+    T _ssatvap;    //[kJ/kgK]
+    //auxiliaries
+    IdealFluid _fluid;
+    DefinedStateVars _isVarDefined;
+    ST _stateType;
+    T _eps;
+    T _p0;    //[bar] Pressure of reference state
+    T _t0;    //[K] Temperature of reference state
+
+
+    //functions for thermodynamic properties (h_pT == h(p,T))
+    //enthalpy ideal gas
+    T hig_T(T t)
+    {
+        T higResult = _fluid.cpig * (t - _t0) + _fluid.deltaH;
+        return higResult;
+    }
+    //enthalpy ideal liquid
+    T hif_pT(T p, T t)
+    {
+        T hifResult = _fluid.cif * (t - _t0) + _fluid.vif * (p - _p0) * 1e2;
+        return hifResult;
+    }
+    //enthalpy in the 2-phase area
+    T hs_x(T x)
+    {
+        T hsResult = (1 - x) * _hsatliq + x * _hsatvap;
+        return hsResult;
+    }
+    //entropy ideal gas
+    T sig_pT(T p, T t)
+    {
+        T sigResult = _fluid.cpig * log(t / _t0) - _fluid.Rm * log(p / _p0) + _fluid.deltaS;
+        return sigResult;
+    }
+    //entropy ideal liquid
+    T sif_T(T t)
+    {
+        T sifResult = _fluid.cif * log(t / _t0);
+        return sifResult;
+    }
+    //entropy in the 2-phase area
+    T ss_x(T x)
+    {
+        T ssResult = (1 - x) * _ssatliq + x * _ssatvap;
+        return ssResult;
+    }
+    //amount-of-substance fraction
+    T x_h(T h)
+    {
+        T xResult = (h - _hsatliq) / (_hsatvap - _hsatliq);
+        return xResult;
+    }
+    T x_s(T s)
+    {
+        T xResult = (s - _ssatliq) / (_ssatvap - _ssatliq);
+        return xResult;
+    }
+
+
+    //Antoine equations
+    T Ts_ps(T p)
+    {
+        //T tsResult = _fluid.B/(_fluid.A - (log(p)/log(10.0))) - _fluid.C;
+        T tsResult = saturation_temperature(p, 2, _fluid.A, _fluid.B, _fluid.C);
+        return tsResult;
+    }
+
+  public:
+    // constructor
+    Ideal2pStream(IdealFluid fluid, T p0, T t0):
+        _fluid(fluid),
+        _p0(p0),
+        _t0(t0)
+    {
+        _isVarDefined.setAllFalse();
+        _stateType = ST_undefined;
+        _eps       = 1e-8;
+    }
+    Ideal2pStream() {}
+    Ideal2pStream(const Ideal2pStream &theStream)
+    {
+        *this = theStream;
+    }
+    Ideal2pStream &operator=(const Ideal2pStream &theStream)
+    {
+        if (this != &theStream) {
+            _p            = theStream._p;
+            _h            = theStream._h;
+            _s            = theStream._s;
+            _x            = theStream._x;
+            _ts           = theStream._ts;
+            _hsatliq      = theStream._hsatliq;
+            _hsatvap      = theStream._hsatvap;
+            _ssatliq      = theStream._ssatliq;
+            _ssatvap      = theStream._ssatvap;
+            _fluid        = theStream._fluid;
+            _p0           = theStream._p0;
+            _t0           = theStream._t0;
+            _eps          = theStream._eps;
+            _stateType    = theStream._stateType;
+            _isVarDefined = theStream._isVarDefined;
+        }
+        return *this;
+    }
+    //setter methods
+    void set_ph(T p, T h)
+    {
+        _isVarDefined.setAllFalse();
+        _p                    = p;
+        _h                    = h;
+        _ts                   = Ts_ps(_p);
+        _hsatliq              = hif_pT(_p, _ts);
+        _hsatvap              = hig_T(_ts);
+        _ssatliq              = sif_T(_ts);
+        _ssatvap              = sig_pT(_p, _ts);
+        _isVarDefined.p       = true;
+        _isVarDefined.h       = true;
+        _isVarDefined.ts      = true;
+        _isVarDefined.hsatliq = true;
+        _isVarDefined.hsatvap = true;
+        _isVarDefined.ssatliq = true;
+        _isVarDefined.ssatvap = true;
+        _stateType            = ST_ph;
+    }
+    void set_ps(T p, T s)
+    {
+        _isVarDefined.setAllFalse();
+        _p                    = p;
+        _s                    = s;
+        _ts                   = Ts_ps(_p);
+        _hsatliq              = hif_pT(_p, _ts);
+        _hsatvap              = hig_T(_ts);
+        _ssatliq              = sif_T(_ts);
+        _ssatvap              = sig_pT(_p, _ts);
+        _isVarDefined.p       = true;
+        _isVarDefined.s       = true;
+        _isVarDefined.ts      = true;
+        _isVarDefined.hsatliq = true;
+        _isVarDefined.hsatvap = true;
+        _isVarDefined.ssatliq = true;
+        _isVarDefined.ssatvap = true;
+        _stateType            = ST_ps;
+    }
+    void set_px(T p, T x)
+    {
+        _isVarDefined.setAllFalse();
+        _p                    = p;
+        _x                    = x;
+        _ts                   = Ts_ps(_p);
+        _hsatliq              = hif_pT(_p, _ts);
+        _hsatvap              = hig_T(_ts);
+        _ssatliq              = sif_T(_ts);
+        _ssatvap              = sig_pT(_p, _ts);
+        _isVarDefined.p       = true;
+        _isVarDefined.x       = true;
+        _isVarDefined.ts      = true;
+        _isVarDefined.hsatliq = true;
+        _isVarDefined.hsatvap = true;
+        _isVarDefined.ssatliq = true;
+        _isVarDefined.ssatvap = true;
+        _stateType            = ST_px;
+    }
+
+    //getter methods
+    T get_h()
+    {
+        if (!_isVarDefined.h) {
+            _isVarDefined.h = true;
+            switch (_stateType) {
+                case ST_undefined:
+                    std::cerr << "Error querying enthalpy of IdealStream: State not fully defined.";
+                    throw(-1);
+                case ST_ps:
+                    if (!_isVarDefined.x) {
+                        _x              = x_s(_s);
+                        _isVarDefined.x = true;
+                    }
+                    _h = hs_x(_x);
+                    return _h;
+                case ST_px:
+                    _h = hs_x(_x);
+                    return _h;
+                case ST_ph:
+                    return _h;
+                default:
+                    std::cerr << "Fatal error: No StateType defined in IdealStream.";
+                    throw(-1);
+            }
+        }
+        else {
+            return _h;
+        }
+    }
+    T get_s()
+    {
+        if (!_isVarDefined.s) {
+            _isVarDefined.s = true;
+            switch (_stateType) {
+                case ST_undefined:
+                    std::cerr << "Error querying enthalpy of IdealStream: State not fully defined.";
+                    throw(-1);
+                case ST_ps:
+                    return _s;
+                case ST_px:
+                    _s = ss_x(_x);
+                    return _s;
+                case ST_ph:
+                    if (!_isVarDefined.x) {
+                        _x              = x_h(_h);
+                        _isVarDefined.x = true;
+                    }
+                    _s = ss_x(_x);
+                    return _s;
+                default:
+                    std::cerr << "Fatal error: No StateType defined in IdealStream.";
+                    throw(-1);
+            }
+        }
+        else {
+            return _s;
+        }
+    }
+    T get_x()
+    {
+        if (!_isVarDefined.x) {
+            _isVarDefined.x = true;
+            switch (_stateType) {
+                case ST_undefined:
+                    std::cerr << "Error querying enthalpy of IdealStream: State not fully defined.";
+                    throw(-1);
+                case ST_ps:
+                    _x = x_s(_s);
+                    return _x;
+                case ST_px:
+                    return _x;
+                case ST_ph:
+                    _x = x_h(_h);
+                    return _x;
+                default:
+                    std::cerr << "Fatal error: No StateType defined in IdealStream.";
+                    throw(-1);
+            }
+        }
+        else {
+            return _x;
+        }
+    }
+    T get_T()
+    {
+        return _ts;
+    }
+    T get_Ts()
+    {
+        return _ts;
+    }
+    T get_hSatLiq()
+    {
+        return _hsatliq;
+    }
+    T get_hSatVap()
+    {
+        return _hsatvap;
+    }
+};
+
+#endif /* IDEAL2PSTREAM_H_ */
diff --git a/tests/testProblems/libraries/IdealFluid.h b/tests/testProblems/libraries/IdealFluid.h
new file mode 100644
index 0000000000000000000000000000000000000000..cd89fef3712ab9ba17b82770b40d72f557d0ed5b
--- /dev/null
+++ b/tests/testProblems/libraries/IdealFluid.h
@@ -0,0 +1,96 @@
+/**********************************************************************************
+ * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ **********************************************************************************/
+
+#ifndef IDEALFLUID_H_
+#define IDEALFLUID_H_
+
+#include "math.h"
+
+// This struct stores all constants needed to solve functions of an ideal stream
+struct IdealFluid {
+    double cpig;      //heat capacity ideal gas		[kJ/kg*K]
+    double cif;       //heat capacity ideal fluid		[kJ/kg*K]
+    double Rm;        //specific gas constant 			[kJ/kg*K]
+    double vif;       //specific volume ideal fluid 	[m^3/kg]
+    double A;         //for Antoine equation (in bar,K)	[-]
+    double B;         //for Antoine equation (in bar,K)	[-]
+    double C;         //for Antoine equation (in bar,K)	[-]
+    double deltaH;    //evaporation enthalpy			[kJ/kg]
+    double deltaS;    //evaporation entropy			[kJ/kg*K]
+
+    IdealFluid():
+        cpig(), cif(), Rm(), vif(), A(), B(), C(), deltaH(), deltaS() {}
+
+    IdealFluid(const double cpigIn, const double cifIn, const double RmIn, const double vifIn, const double AIn, const double BIn, const double CIn, const double deltaHIn, const double deltaSIn):
+        cpig(cpigIn), cif(cifIn), Rm(RmIn), vif(vifIn), A(AIn), B(BIn), C(CIn), deltaH(deltaHIn), deltaS(deltaSIn)
+    {
+    }
+
+    IdealFluid(const IdealFluid &theFluid)
+    {
+        *this = theFluid;
+    }
+
+    IdealFluid &operator=(const IdealFluid &theFluid)
+    {
+        if (this != &theFluid) {
+            cpig   = theFluid.cpig;
+            cif    = theFluid.cif;
+            Rm     = theFluid.Rm;
+            vif    = theFluid.vif;
+            A      = theFluid.A;
+            B      = theFluid.B;
+            C      = theFluid.C;
+            deltaH = theFluid.deltaH;
+            deltaS = theFluid.deltaS;
+        }
+        return *this;
+    }
+};
+
+
+enum ST {    //enables the function to distinguish which variables are set
+    ST_pT,
+    ST_ph,
+    ST_ps,
+    ST_px,
+    ST_undefined
+};
+
+struct DefinedStateVars {    // stores the information on which variables have already been computed
+    bool p;
+    bool t;
+    bool h;
+    bool s;
+    bool ts;
+    bool x;
+    bool hsatvap;
+    bool hsatliq;
+    bool ssatvap;
+    bool ssatliq;
+
+
+    void setAllFalse()
+    {
+        p       = false;
+        t       = false;
+        h       = false;
+        s       = false;
+        ts      = false;
+        x       = false;
+        hsatvap = false;
+        hsatliq = false;
+        ssatvap = false;
+        ssatliq = false;
+    }
+};
+
+#endif /* IDEALFLUID_H_ */
diff --git a/tests/testProblems/libraries/IdealGasStream.h b/tests/testProblems/libraries/IdealGasStream.h
new file mode 100644
index 0000000000000000000000000000000000000000..83185427f421a15154d1b48da425ea8367ca2e5b
--- /dev/null
+++ b/tests/testProblems/libraries/IdealGasStream.h
@@ -0,0 +1,261 @@
+/**********************************************************************************
+ * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ **********************************************************************************/
+
+#ifndef IDEALGASSTREAM_H_
+#define IDEALGASSTREAM_H_
+
+#include "IdealFluid.h"
+
+using T = mc::FFVar;
+
+//Can calculate h,s,x out of p,t,h,s,x under using the functions of an ideal model
+class IdealGasStream {
+  private:
+    //variables
+    T _p;          //[bar]
+    T _t;          //[K]
+    T _h;          //[kJ/kg]
+    T _s;          //[kJ/kg*K]
+    T _ts;         //[K]
+    T _hsatvap;    //[kJ/kg]
+    //auxiliaries
+    IdealFluid _fluid;
+    DefinedStateVars _isVarDefined;
+    ST _stateType;
+    T _eps;
+    T _p0;    //[bar] Pressure of reference state
+    T _t0;    //[K] Temperature of reference state
+
+
+    //functions for thermodynamic properties (h_pT == h(p,T))
+    //enthalpy ideal gas
+    T hig_T(T t)
+    {
+        T higResult = _fluid.cpig * (t - _t0) + _fluid.deltaH;
+        return higResult;
+    }
+    //entropy ideal gas
+    T sig_pT(T p, T t)
+    {
+        T sigResult = _fluid.cpig * log(t / _t0) - _fluid.Rm * log(p / _p0) + _fluid.deltaS;
+        //std::cout << _t0 << std::endl;
+        return sigResult;
+    }
+    //temperature (calculated from s)
+    T t_sigp(T p, T s)
+    {
+        T tResult = _t0 * exp((s + _fluid.Rm * log(p / _p0) - _fluid.deltaS) / _fluid.cpig);
+        return max(_eps, tResult);
+    }
+    //temperature (calculated from h)
+    T t_hig(T h)
+    {
+        T tResult = (h - _fluid.deltaH) / _fluid.cpig + _t0;
+        return max(_eps, tResult);
+    }
+    //Antoine equations
+    T Ts_ps(T p)
+    {
+        //T tsResult = _fluid.B/(_fluid.A - (log(p)/log(10.0))) - _fluid.C;
+        //cout << "h1" << endl;
+        T tsResult = saturation_temperature(p, 2, _fluid.A, _fluid.B, _fluid.C);
+        //cout << "h2" << endl;
+        return tsResult;
+    }
+
+  public:
+    // constructors
+    IdealGasStream(IdealFluid fluid, T p0, T t0):
+        _fluid(fluid),
+        _p0(p0),
+        _t0(t0)
+    {
+        _isVarDefined.setAllFalse();
+        _stateType = ST_undefined;
+        _eps       = 1e-8;
+    }
+    IdealGasStream() {}
+    IdealGasStream(const IdealGasStream &theStream)
+    {
+        *this = theStream;
+    }
+    IdealGasStream &operator=(const IdealGasStream &theStream)
+    {
+        if (this != &theStream) {
+            _p            = theStream._p;
+            _t            = theStream._t;
+            _h            = theStream._h;
+            _s            = theStream._s;
+            _ts           = theStream._ts;
+            _hsatvap      = theStream._hsatvap;
+            _fluid        = theStream._fluid;
+            _p0           = theStream._p0;
+            _t0           = theStream._t0;
+            _eps          = theStream._eps;
+            _stateType    = theStream._stateType;
+            _isVarDefined = theStream._isVarDefined;
+        }
+        return *this;
+    }
+
+    //setter methods
+    void set_pT(T p, T t)
+    {
+        _isVarDefined.setAllFalse();
+        _p               = p;
+        _t               = t;
+        _ts              = Ts_ps(_p);
+        _isVarDefined.p  = true;
+        _isVarDefined.t  = true;
+        _isVarDefined.ts = true;
+        _stateType       = ST_pT;
+    }
+    void set_ph(T p, T h)
+    {
+        _isVarDefined.setAllFalse();
+        _p               = p;
+        _h               = h;
+        _ts              = Ts_ps(_p);
+        _isVarDefined.p  = true;
+        _isVarDefined.h  = true;
+        _isVarDefined.ts = true;
+        _stateType       = ST_ph;
+    }
+    void set_ps(T p, T s)
+    {
+        _isVarDefined.setAllFalse();
+        _p               = p;
+        _s               = s;
+        _ts              = Ts_ps(_p);
+        _isVarDefined.p  = true;
+        _isVarDefined.s  = true;
+        _isVarDefined.ts = true;
+        _stateType       = ST_ps;
+    }
+    void set_px(T p)
+    {
+        _isVarDefined.setAllFalse();
+        _p                    = p;
+        _ts                   = Ts_ps(_p);
+        _t                    = _ts;
+        _hsatvap              = hig_T(_ts);
+        _isVarDefined.p       = true;
+        _isVarDefined.t       = true;
+        _isVarDefined.ts      = true;
+        _isVarDefined.hsatvap = true;
+        _stateType            = ST_px;
+    }
+    //getter methods
+    T get_h()
+    {
+        if (!_isVarDefined.h) {
+            _isVarDefined.h = true;
+            switch (_stateType) {
+                case ST_undefined:
+                    std::cerr << "Error querying enthalpy of IdealStream: State not fully defined.";
+                    throw(-1);
+                case ST_pT:
+                    _h = hig_T(_t);
+                    return _h;
+                case ST_ps:
+                    _t              = t_sigp(_p, _s);
+                    _isVarDefined.t = true;
+                    _h              = hig_T(_t);
+                    return _h;
+                case ST_px:
+                    _h = hig_T(_ts);
+                    return _h;
+                case ST_ph:
+                    return _h;
+                default:
+                    std::cerr << "Fatal error: No StateType defined in IdealStream.";
+                    throw(-1);
+            }
+        }
+        else {
+            return _h;
+        }
+    }
+    T get_s()
+    {
+        if (!_isVarDefined.s) {
+            _isVarDefined.s = true;
+            switch (_stateType) {
+                case ST_undefined:
+                    std::cerr << "Error querying enthalpy of IdealStream: State not fully defined.";
+                    throw(-1);
+                case ST_pT:
+                    _s = sig_pT(_p, _t);
+                    return _s;
+                case ST_ps:
+                    return _s;
+                case ST_px:
+                    _s = sig_pT(_p, _ts);
+                    return _s;
+                case ST_ph:
+                    _t              = t_hig(_h);
+                    _isVarDefined.t = true;
+                    _s              = sig_pT(_p, _t);
+                    return _s;
+                default:
+                    std::cerr << "Fatal error: No StateType defined in IdealStream.";
+                    throw(-1);
+            }
+        }
+        else {
+            return _s;
+        }
+    }
+    T get_T()
+    {
+        if (!_isVarDefined.t) {
+            _isVarDefined.t = true;
+            switch (_stateType) {
+                case ST_undefined:
+                    std::cerr << "Error querying enthalpy of IdealStream: State not fully defined.";
+                    throw(-1);
+                case ST_pT:
+                    return _t;
+                case ST_ps:
+                    _t = t_sigp(_p, _s);
+                    return _t;
+                case ST_px:
+                    return _ts;
+                case ST_ph:
+                    _t = t_hig(_h);
+                    return _t;
+                default:
+                    std::cerr << "Fatal error: No StateType defined in IdealStream.";
+                    throw(-1);
+            }
+        }
+        else {
+            return _t;
+        }
+    }
+    T get_Ts()
+    {
+        return _ts;
+    }
+    T get_hSatVap()
+    {
+        if (!_isVarDefined.hsatvap) {
+            _isVarDefined.hsatvap = true;
+            _hsatvap              = hig_T(_ts);
+            return _hsatvap;
+        }
+        else {
+            return _hsatvap;
+        }
+    }
+};
+
+#endif /* IDEALGASSTREAM_H_ */
diff --git a/tests/testProblems/libraries/IdealLiquidStream.h b/tests/testProblems/libraries/IdealLiquidStream.h
new file mode 100644
index 0000000000000000000000000000000000000000..810f30963132aa152bf532c876256c469ef4bff1
--- /dev/null
+++ b/tests/testProblems/libraries/IdealLiquidStream.h
@@ -0,0 +1,257 @@
+/**********************************************************************************
+ * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ **********************************************************************************/
+
+#ifndef IDEALLIQUIDSTREAM_H_
+#define IDEALLIQUIDSTREAM_H_
+
+#include "IdealFluid.h"
+
+using T = mc::FFVar;
+
+//Can calculate h,s,x out of p,t,h,s,x under using the functions of an ideal model
+class IdealLiquidStream {
+  private:
+    //variables
+    T _p;          //[bar]
+    T _t;          //[K]
+    T _h;          //[kJ/kg]
+    T _s;          //[kJ/kg*K]
+    T _ts;         //[K]
+    T _hsatliq;    //[kJ/kg]
+    //auxiliaries
+    IdealFluid _fluid;
+    DefinedStateVars _isVarDefined;
+    ST _stateType;
+    T _eps;
+    T _p0;    //[bar] Pressure of reference state
+    T _t0;    //[K] Temperature of reference state
+
+
+    //functions for thermodynamic properties (h_pT == h(p,T))
+    //enthalpy ideal liquid
+    T hif_pT(T p, T t)
+    {
+        T hifResult = _fluid.cif * (t - _t0) + _fluid.vif * (p - _p0) * 1.0e2;
+        return hifResult;
+    }
+    //entropy ideal liquid
+    T sif_T(T t)
+    {
+        T sifResult = _fluid.cif * log(t / _t0);
+        return sifResult;
+    }
+    //temperature (calculated from s)
+    T t_sif(T s)
+    {
+        T tResult = _t0 * exp(s / _fluid.cif);
+        return max(_eps, tResult);
+    }
+    //temperature (calculated from h)
+    T t_hifp(T p, T h)
+    {
+        T tResult = (h - _fluid.vif * (p - _p0) * 1.0e2) / _fluid.cif + _t0;
+        return max(_eps, tResult);
+    }
+    //Antoine equations
+    T Ts_ps(T p)
+    {
+        //T tsResult = _fluid.B/(_fluid.A - (log(p)/log(10.0))) - _fluid.C;
+        T tsResult = saturation_temperature(p, 2, _fluid.A, _fluid.B, _fluid.C);
+        return tsResult;
+    }
+
+  public:
+    // constructor
+    IdealLiquidStream(IdealFluid fluid, T p0, T t0):
+        _fluid(fluid),
+        _p0(p0),
+        _t0(t0)
+    {
+        _isVarDefined.setAllFalse();
+        _stateType = ST_undefined;
+        _eps       = 1e-8;
+    }
+    IdealLiquidStream() {}
+    IdealLiquidStream(const IdealLiquidStream &theStream)
+    {
+        *this = theStream;
+    }
+    IdealLiquidStream &operator=(const IdealLiquidStream &theStream)
+    {
+        if (this != &theStream) {
+            _p            = theStream._p;
+            _t            = theStream._t;
+            _h            = theStream._h;
+            _s            = theStream._s;
+            _ts           = theStream._ts;
+            _hsatliq      = theStream._hsatliq;
+            _fluid        = theStream._fluid;
+            _p0           = theStream._p0;
+            _t0           = theStream._t0;
+            _eps          = theStream._eps;
+            _stateType    = theStream._stateType;
+            _isVarDefined = theStream._isVarDefined;
+        }
+        return *this;
+    }
+    //setter methods
+    void set_pT(T p, T t)
+    {
+        _isVarDefined.setAllFalse();
+        _p               = p;
+        _t               = t;
+        _ts              = Ts_ps(_p);
+        _isVarDefined.p  = true;
+        _isVarDefined.t  = true;
+        _isVarDefined.ts = true;
+        _stateType       = ST_pT;
+    }
+    void set_ph(T p, T h)
+    {
+        _isVarDefined.setAllFalse();
+        _p               = p;
+        _h               = h;
+        _ts              = Ts_ps(_p);
+        _isVarDefined.p  = true;
+        _isVarDefined.h  = true;
+        _isVarDefined.ts = true;
+        _stateType       = ST_ph;
+    }
+    void set_ps(T p, T s)
+    {
+        _isVarDefined.setAllFalse();
+        _p               = p;
+        _s               = s;
+        _ts              = Ts_ps(_p);
+        _isVarDefined.p  = true;
+        _isVarDefined.s  = true;
+        _isVarDefined.ts = true;
+        _stateType       = ST_ps;
+    }
+    void set_px(T p)
+    {
+        _isVarDefined.setAllFalse();
+        _p                    = p;
+        _ts                   = Ts_ps(_p);
+        _t                    = _ts;
+        _hsatliq              = hif_pT(_p, _ts);
+        _isVarDefined.p       = true;
+        _isVarDefined.t       = true;
+        _isVarDefined.ts      = true;
+        _isVarDefined.hsatliq = true;
+        _stateType            = ST_px;
+    }
+    //getter methods
+    T get_h()
+    {
+        if (!_isVarDefined.h) {
+            _isVarDefined.h = true;
+            switch (_stateType) {
+                case ST_undefined:
+                    std::cerr << "Error querying enthalpy of IdealStream: State not fully defined.";
+                    throw(-1);
+                case ST_pT:
+                    _h = hif_pT(_p, _t);
+                    return _h;
+                case ST_ps:
+                    _t              = t_sif(_s);
+                    _isVarDefined.t = true;
+                    _h              = hif_pT(_p, _t);
+                    return _h;
+                case ST_px:
+                    _h = hif_pT(_p, _ts);
+                    return _h;
+                case ST_ph:
+                    return _h;
+                default:
+                    std::cerr << "Fatal error: No StateType defined in IdealStream.";
+                    throw(-1);
+            }
+        }
+        else {
+            return _h;
+        }
+    }
+    T get_s()
+    {
+        if (!_isVarDefined.s) {
+            _isVarDefined.s = true;
+            switch (_stateType) {
+                case ST_undefined:
+                    std::cerr << "Error querying enthalpy of IdealStream: State not fully defined.";
+                    throw(-1);
+                case ST_pT:
+                    _s = sif_T(_t);
+                    return _s;
+                case ST_ps:
+                    return _s;
+                case ST_px:
+                    _s = sif_T(_ts);
+                    return _s;
+                case ST_ph:
+                    _t              = t_hifp(_p, _h);
+                    _isVarDefined.t = true;
+                    _s              = sif_T(_t);
+                    return _s;
+                default:
+                    std::cerr << "Fatal error: No StateType defined in IdealStream.";
+                    throw(-1);
+            }
+        }
+        else {
+            return _s;
+        }
+    }
+    T get_T()
+    {
+        if (!_isVarDefined.t) {
+            _isVarDefined.t = true;
+            switch (_stateType) {
+                case ST_undefined:
+                    std::cerr << "Error querying enthalpy of IdealStream: State not fully defined.";
+                    throw(-1);
+                case ST_pT:
+                    return _t;
+                case ST_ps:
+                    _t = t_sif(_s);
+                    return _t;
+                case ST_px:
+                    return _ts;
+                case ST_ph:
+                    _t = t_hifp(_p, _h);
+                    return _t;
+                default:
+                    std::cerr << "Fatal error: No StateType defined in IdealStream.";
+                    throw(-1);
+            }
+        }
+        else {
+            return _t;
+        }
+    }
+    T get_Ts()
+    {
+        return _ts;
+    }
+    T get_hSatLiq()
+    {
+        if (!_isVarDefined.hsatliq) {
+            _isVarDefined.hsatliq = true;
+            _hsatliq              = hif_pT(_p, _ts);
+            return _hsatliq;
+        }
+        else {
+            return _hsatliq;
+        }
+    }
+};
+
+#endif /* IDEALLIQUIDSTREAM_H_ */
diff --git a/tests/testProblems/libraries/NRTL.h b/tests/testProblems/libraries/NRTL.h
new file mode 100644
index 0000000000000000000000000000000000000000..356e0d5e3d05acd05759517cf8f816fdd83b673f
--- /dev/null
+++ b/tests/testProblems/libraries/NRTL.h
@@ -0,0 +1,368 @@
+/**********************************************************************************
+ * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ **********************************************************************************/
+
+#pragma once
+
+#include <iostream>
+
+#define NRTL_ENV    // use this to set whether to use envelopes for nrtl functions (tau,G,Gtau,dGtau,Gdtau) or not -- TO USE THIS IT HAS TO HOLD THAT d = 0
+
+
+//////////////////////////////////////////////////////////////////////////
+// Auxiliary struct for storing the binary interaction parameters
+struct NRTLpars {
+    std::vector<std::vector<double>> a, b, c, d, e, f;
+};
+
+
+//////////////////////////////////////////////////////////////////////////
+// Class for NRTL model
+class NRTL {
+  private:
+    NRTLpars _pars;
+    size_t _ncomp;
+    const double maxLnGamma, minLnGamma;
+
+    template <typename U>
+    std::vector<std::vector<U>> _getTau_env(const U &T);
+    template <typename U>
+    std::vector<std::vector<U>> _getG_env(const U &T, const std::vector<std::vector<U>> &tau);
+    template <typename U>
+    std::vector<std::vector<U>> _getTau(const U &T);
+    template <typename U>
+    std::vector<std::vector<U>> _getG(const U &T, const std::vector<std::vector<U>> &tau);
+    template <typename U>
+    std::vector<std::vector<U>> _getdTaudT(const U &T);
+    template <typename U>
+    std::vector<std::vector<U>> _getdGdT(const U &T, const std::vector<std::vector<U>> &tau, const std::vector<std::vector<U>> &dTaudT);
+
+  public:
+    NRTL():
+        maxLnGamma(std::log(100000000000000000.)), minLnGamma(std::log(1 / 1000000000000000.)) {}
+
+    template <typename U>
+    void setPars(NRTLpars parsIN);
+    template <typename U>
+    std::vector<U> calculateGamma(const U &T, const std::vector<U> &x);
+    template <typename U>
+    std::vector<U> calculateGammaLog(const U &T, const std::vector<U> &x);
+    template <typename U>
+    U calculateInifiniteDilutionGammaLog(const U &T, const unsigned iSolute, const unsigned iSolvent);
+    template <typename U>
+    U calculateHE(const U &T, const std::vector<U> &x);
+};
+
+
+//////////////////////////////////////////////////////////////////////////
+// Member function for specifying binary interaction parameters
+template <typename U>
+void
+NRTL::setPars(NRTLpars parsIn)
+{
+    if ((parsIn.a.size() != parsIn.b.size()) || (parsIn.a.size() != parsIn.c.size())) {
+        std::cerr << "Inconsistent dimensions in specification of NRTL binary interaction parameters." << std::endl;
+        throw(-1);
+    }
+    _pars  = parsIn;
+    _ncomp = parsIn.a.size();
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// Member function for computing the activity coefficient
+template <typename U>
+std::vector<U>
+NRTL::calculateGamma(const U &T, const std::vector<U> &x)
+{
+    if (_ncomp != _pars.a.size()) {
+        std::cerr << "Dimension of composition std::vector inconsistent with size of NRTL binary interaction parameter matrix when querying activity coefficient." << std::endl;
+        throw(-1);
+    }
+    std::vector<std::vector<U>> tau(_getTau<U>(T));
+    std::vector<std::vector<U>> G(_getG<U>(T, tau));
+    std::vector<U> gamma(_ncomp);
+    U sumC1, sumC2, sumC3;
+    std::vector<double> coeff(x.size() + 1, 1.0);
+    for (unsigned k = 0; k < _ncomp; k++) {
+        U sumA = 0.0, sumB = 0.0, sumC = 0.0;
+        std::vector<U> denomA, denomB;
+        for (unsigned i = 0; i < _ncomp; i++) {
+#ifndef NRTL_ENV
+            sumA += tau[i][k] * G[i][k] * x[i];
+#else
+            // sumA += tau[i][k]*G[i][k]*x[i];
+            sumA += nrtl_Gtau(T, _pars.a[i][k], _pars.b[i][k], _pars.e[i][k], _pars.f[i][k], _pars.c[i][k]) * x[i];
+            // sumA += xexpax(nrtl_tau(T,_pars.a[i][k],_pars.b[i][k],_pars.e[i][k],_pars.f[i][k]),-_pars.c[i][k])*x[i];
+#endif
+
+            sumB += G[i][k] * x[i];
+            sumC1 = 0.0;
+            sumC2 = 0.0;
+            sumC3 = 0.0;
+            denomA.clear();
+            denomA.push_back(x[i]);    // actually, G[i][i]*x[i], but G[i][i]=1
+            for (unsigned j = 0; j < _ncomp; j++) {
+                sumC1 += G[j][i] * x[j];
+                if (i != j) {
+                    denomA.push_back(G[j][i] * x[j]);
+                }
+#ifndef NRTL_ENV
+                sumC2 += tau[j][i] * G[j][i] * x[j];
+#else
+                // sumC2 += tau[j][i]*G[j][i]*x[j];
+                sumC2 += nrtl_Gtau(T, _pars.a[j][i], _pars.b[j][i], _pars.e[j][i], _pars.f[j][i], _pars.c[j][i]) * x[j];
+                // sumC2 += xexpax(nrtl_tau(T,_pars.a[j][i],_pars.b[j][i],_pars.e[j][i],_pars.f[j][i]),-_pars.c[j][i])*x[j];
+
+                denomB.clear();
+                denomB.push_back(G[j][i] * x[j]);
+                for (unsigned l = 0; l < _ncomp; l++) {
+                    if (l != j) {
+                        denomB.push_back(G[l][i] * x[l]);
+                    }
+                }
+                if (k == j) {
+                    sumC3 += nrtl_Gtau(T, _pars.a[k][i], _pars.b[k][i], _pars.e[k][i], _pars.f[k][i], _pars.c[k][i]) * sum_div(denomB, coeff);
+                }
+                else {
+                    sumC3 += G[k][i] * tau[j][i] * sum_div(denomB, coeff);
+                }
+#endif
+            }
+#ifndef NRTL_ENV
+            // sumC += x[i]*G[k][i]*(tau[k][i]/pos(sumC1) - sumC2/pos(pow(sumC1,2)));
+            sumC += x[i] * G[k][i] * (tau[k][i] - sumC2 / pos(sumC1)) / pos(sumC1);
+#else
+            // sumC += x[i]*G[k][i]*(tau[k][i] - sumC2/pos(sumC1))/pos(sumC1);
+            // sumC += x[i]/pos(sumC1) *(nrtl_Gtau(T,_pars.a[k][i],_pars.b[k][i],_pars.e[k][i],_pars.f[k][i],_pars.c[k][i]) - G[k][i]*sumC2/pos(sumC1));
+            // sumC += x[i]/pos(sumC1) *(xexpax(nrtl_tau(T,_pars.a[k][i],_pars.b[k][i],_pars.e[k][i],_pars.f[k][i]),-_pars.c[k][i]) - G[k][i]*sumC2/pos(sumC1));
+            // sumC += x[i]/pos(sumC1) *nrtl_Gtau(T,_pars.a[k][i],_pars.b[k][i],_pars.e[k][i],_pars.f[k][i],_pars.c[k][i]) - x[i]*G[k][i]*sumC2/pos(sqr(sumC1));
+            // sumC += sum_div(denomA,coeff)* (nrtl_Gtau(T,_pars.a[k][i],_pars.b[k][i],_pars.e[k][i],_pars.f[k][i],_pars.c[k][i]) - G[k][i]*sumC2/pos(sumC1));
+            sumC += sum_div(denomA, coeff) * (nrtl_Gtau(T, _pars.a[k][i], _pars.b[k][i], _pars.e[k][i], _pars.f[k][i], _pars.c[k][i]) - sumC3);
+            // sumC += sum_div(denomA,coeff)* G[k][i]*(tau[k][i] - sumC3);
+#endif
+        }
+        // gamma[k] = exp( bounding_func(sumA/sumB + sumC,minLnGamma,maxLnGamma) );
+        // gamma[k] = exp( sumA/pos(sumB) + sumC );
+        gamma[k] = exp(bounding_func(sumA / pos(sumB) + sumC, minLnGamma, maxLnGamma));
+        // gamma[k] = exp( ub_func(sumA/pos(sumB) + sumC,maxLnGamma) );
+        // gamma[k] = (xexpax(nrtl_tau(T,_pars.a[k][1],_pars.b[k][1],_pars.e[k][1],_pars.f[k][1]),-_pars.c[k][1]) - G[k][1]*sumC2/pos(sumC1));
+        // gamma[k] = sumC;
+    }
+
+    return gamma;
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// Member function for computing the activity coefficient
+template <typename U>
+std::vector<U>
+NRTL::calculateGammaLog(const U &T, const std::vector<U> &x)
+{
+    if (_ncomp != _pars.a.size()) {
+        std::cerr << "Dimension of composition std::vector inconsistent with size of NRTL binary interaction parameter matrix when querying activity coefficient." << std::endl;
+        throw(-1);
+    }
+    std::vector<std::vector<U>> tau(_getTau<U>(T));
+    std::vector<std::vector<U>> G(_getG<U>(T, tau));
+    std::vector<U> gammaLog(_ncomp);
+    for (unsigned k = 0; k < _ncomp; k++) {
+        U sumA = 0.0, sumB = 0.0, sumC = 0.0;
+        for (unsigned i = 0; i < _ncomp; i++) {
+            sumA += tau[i][k] * G[i][k] * x[i];
+            sumB += G[i][k] * x[i];
+            U sumC1 = 0.0, sumC2 = 0.0;
+            for (unsigned j = 0; j < _ncomp; j++) {
+                sumC1 += G[j][i] * x[j];
+                sumC2 += tau[j][i] * G[j][i] * x[j];
+            }
+            sumC += x[i] * G[k][i] * (tau[k][i] / sumC1 - sumC2 / pow(sumC1, 2));
+        }
+        gammaLog[k] = bounding_func(sumA / sumB + sumC, minLnGamma, maxLnGamma);
+    }
+
+    return gammaLog;
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// Member function for computing the infinite dilution activity coefficient
+template <typename U>
+U
+NRTL::calculateInifiniteDilutionGammaLog(const U &T, const unsigned iSolute, const unsigned iSolvent)
+{
+
+    if (iSolute == iSolvent) {
+        std::cerr << "Error evaluating activity coefficient at infinite dilution using NRTL model: Specified solvent and solute are identical." << std::endl;
+        throw(-1);
+    }
+
+    U tauAi(_pars.a[iSolvent][iSolute] + _pars.b[iSolvent][iSolute] / T);
+    U tauiA(_pars.a[iSolute][iSolvent] + _pars.b[iSolute][iSolvent] / T);
+    U GiA = exp(-_pars.c[iSolute][iSolvent] * tauiA);
+    return tauAi + tauiA * GiA;
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// Member function for computing the excess enthalpy
+template <typename U>
+U
+NRTL::calculateHE(const U &T, const std::vector<U> &x)
+{
+    if (x.size() != _pars.a.size()) {
+        std::cerr << "Dimension of composition std::vector inconsistent with size of NRTL binary interaction parameter matrix when querying excess enthalpy." << std::endl;
+        throw(-1);
+    }
+    std::vector<std::vector<U>> tau    = _getTau<U>(T);
+    std::vector<std::vector<U>> G      = _getG<U>(T, tau);
+    std::vector<std::vector<U>> dTaudT = _getdTaudT<U>(T);
+    std::vector<std::vector<U>> dGdT   = _getdGdT<U>(T, tau, dTaudT);
+    U HE                               = 0;
+    U leftFactor, rightFactor;
+    U div;
+    for (unsigned i = 0; i < x.size(); i++) {
+
+
+        // left factor
+        std::vector<U> denomA;
+        std::vector<double> coeff(x.size() + 1, 1.);
+        denomA.push_back(G[i][i] * x[i]);
+        rightFactor = 0.;
+        for (unsigned j = 0; j < x.size(); j++) {
+            if (j != i) {
+                denomA.push_back(G[j][i] * x[j]);
+            }
+        }
+        leftFactor = sum_div(denomA, coeff);
+
+
+        // right factor
+        div = 0.0;
+        for (unsigned l = 0; l < x.size(); l++) {
+            std::vector<U> denom;
+            denom.push_back(G[l][i] * x[l]);
+            for (unsigned int k = 0; k < x.size(); k++) {
+                if (k != l) {
+                    denom.push_back(G[k][i] * x[k]);
+                }
+            }
+            div += tau[l][i] * sum_div(denom, coeff);
+        }
+        for (unsigned j = 0; j < x.size(); j++) {
+            if (j != i) {
+                rightFactor += nrtl_Gdtau(T, _pars.a[j][i], _pars.b[j][i], _pars.e[j][i], _pars.f[j][i], _pars.c[j][i]) * x[j] * (1 - _pars.c[j][i] * tau[j][i] + _pars.c[j][i] * div);
+                // rightFactor += G[j][i]*dTaudT[j][i]*x[j]*(1 - _pars.c[j][i]*tau[j][i] + _pars.c[j][i]*div);
+            }
+        }
+
+
+        HE += leftFactor * rightFactor;
+    }
+    const double R = 8.3144598;
+    HE             = HE * (-R * sqr(T));
+    // return HE;
+    return HE;
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// Member function for computing tau
+template <typename U>
+std::vector<std::vector<U>>
+NRTL::_getTau(const U &T)
+{
+    std::vector<std::vector<U>> tau(_ncomp, std::vector<U>(_ncomp, 0.0));
+    for (unsigned i = 0; i < _ncomp; i++) {
+        for (unsigned j = 0; j < _ncomp; j++) {
+            if (i != j) {
+#ifndef NRTL_ENV
+                tau[i][j] = _pars.a[i][j] + _pars.b[i][j] / T + (_pars.e[i][j] * log(T)) + _pars.f[i][j] * T;
+#else
+                tau[i][j] = nrtl_tau(T, _pars.a[i][j], _pars.b[i][j], _pars.e[i][j], _pars.f[i][j]);
+#endif
+            }
+        }
+    }
+    return tau;
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// Member function for computing G
+template <typename U>
+std::vector<std::vector<U>>
+NRTL::_getG(const U &T, const std::vector<std::vector<U>> &tau)
+{
+    std::vector<std::vector<U>> G(_ncomp, std::vector<U>(_ncomp, 1.0));
+    for (unsigned i = 0; i < _ncomp; i++) {
+        for (unsigned j = 0; j < _ncomp; j++) {
+            if (i != j) {
+#ifndef NRTL_ENV
+                U alpha = _pars.c[i][j] + _pars.d[i][j] * (T - 273.15);
+                G[i][j] = exp(-alpha * tau[i][j]);
+#else
+                if (_pars.d[i][j] != 0) {
+                    std::cerr << "d <> 0 not allowed when using NRTL envelopes." << std::endl;
+                    throw(-1);
+                }
+                G[i][j]      = nrtl_G(T, _pars.a[i][j], _pars.b[i][j], _pars.e[i][j], _pars.f[i][j], _pars.c[i][j]);
+#endif
+            }
+        }
+    }
+    return G;
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// Member function for computing the partial derivative of tau with respect to T
+template <typename U>
+std::vector<std::vector<U>>
+NRTL::_getdTaudT(const U &T)
+{
+    std::vector<std::vector<U>> dTaudT(_ncomp, std::vector<U>(_ncomp, 0.0));
+    for (unsigned i = 0; i < _ncomp; i++) {
+        for (unsigned j = 0; j < _ncomp; j++) {
+            if (i != j) {
+#ifdef NRTL_ENV
+                dTaudT[i][j] = nrtl_dtau(T, _pars.b[i][j], _pars.e[i][j], _pars.f[i][j]);
+#else
+                dTaudT[i][j] = -_pars.b[i][j] / pow(T, 2) + _pars.e[i][j] / T + _pars.f[i][j];
+#endif
+            }
+        }
+    }
+    return dTaudT;
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// Member function for computing the partial derivative of G with respect to T
+template <typename U>
+std::vector<std::vector<U>>
+NRTL::_getdGdT(const U &T, const std::vector<std::vector<U>> &tau, const std::vector<std::vector<U>> &dTaudT)
+{
+    std::vector<std::vector<U>> dGdT(_ncomp, std::vector<U>(_ncomp, 0.0));
+    for (unsigned i = 0; i < _ncomp; i++) {
+        for (unsigned j = 0; j < _ncomp; j++) {
+            if (i != j) {
+#ifdef NRTL_ENV
+                dGdT[i][j] = -_pars.c[i][j] * nrtl_Gdtau(T, _pars.a[i][j], _pars.b[i][j], _pars.e[i][j], _pars.f[i][j], _pars.c[i][j]);
+#else
+                U alpha      = _pars.c[i][j] + _pars.d[i][j] * (T - 273.15);
+                dGdT[i][j]   = -alpha * dTaudT[i][j] * exp(-alpha * tau[i][j]);
+#endif
+            }
+        }
+    }
+    return dGdT;
+}
diff --git a/tests/testProblems/libraries/PureComponent.h b/tests/testProblems/libraries/PureComponent.h
new file mode 100644
index 0000000000000000000000000000000000000000..0a1be5a22b18d1c62d4644c2fd5305909b43ca16
--- /dev/null
+++ b/tests/testProblems/libraries/PureComponent.h
@@ -0,0 +1,324 @@
+/**********************************************************************************
+ * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ **********************************************************************************/
+
+
+#ifndef PURECOMPONENT_H_
+#define PURECOMPONENT_H_
+
+using namespace mc;
+
+
+/**
+* @class PureComponent
+* @brief Class representing a pure chemical component.
+*
+* It stores all necessary parameters and contains functions for computing temperature- (and possibly pressure-)dependent pure component properties using different models.
+* The models to be used can be selected through the set functions using the respective enums.
+*/
+template <typename U>
+class PureComponent {
+
+  public:
+    /** 
+    * @enum CPIG
+    * @brief Enum for selecting the ideal gas heat capacity model to be used.
+    */
+    enum CPIG {
+        CPIG_UNDEF = 0,
+        CPIG_ASPEN,       //!< cpig = C0 + C1*T + C2*T^2 + C3*T^3 + C4*T^4 + C5*T^5
+        CPIG_NASA,        //!< cpig = R*(C0/T^2 + C1/T + C2 + C3*T + C4*T^2 + C5*T^3 + C6*T^4)
+        CPIG_DIPPR107,    //!< cpig = C0 + C1*((C2/T)/sinh(C2/T))^2 + C3*((C4/T)/cosh(C4/T))^2
+        CPIG_DIPPR127     //!< cpig = C0 + C1*(C2/T)^2*exp(C2/T)/(exp(C2/T)-1)^2 + C3*(C4/T)^2*exp(C24T)/(exp(C4/T)-1)^2 + C5*(C6/T)^2*exp(C6/T)/(exp(C6/T)-1)^2
+    };
+
+
+    /**
+    * @brief Constructor. Requires all necessary constant property paremeters as arguments.
+    * @param[in] nameIn is the component name.
+    * @param[in] mwIn is the molecular weight in kg/kmol.
+    * @param[in] tcIn is the critical temperature in K.
+    * @param[in] pcIn is the critical pressure in bar.
+    * @param[in] vcIn is the critical volume in cm^3/mol.
+    * @param[in] dh0In is the enthalpy of formation at 298.15 K in kJ/mol
+    * @param[in] dg0In is the Gibbs free energy of formation at 298.15 K in kJ/mol
+    */
+    PureComponent(const std::string nameIn, const double mwIn, const double tcIn, const double pcIn, const double vcIn, const double dh0In, const double dg0In):
+        _name(nameIn), _MW(mwIn), _Tc(tcIn), _pc(pcIn), _vc(vcIn), _dh0(dh0In), _dg0(dg0In), _pref(1.0), _Tref(298.15), _R(83.144598), _cpigModel(CPIG_UNDEF) {}
+
+
+    /**
+    * @brief Function for computing the pure component ideal gas enthalpy at a given temperature.
+    * @param[in] T is the temperature in K.
+    * @return Ideal gas enthalpy in kJ/kmol
+    */
+    U calculate_ideal_gas_enthalpy(const U &T) const;
+
+
+    /**
+    * @brief Function for computing the pure component ideal gas enthalpy at a given temperature using the envelope implemented in MC++ ASSUMING THAT IT IS MONOTONICALLY INCREASING AND CONVEX!
+    * @param[in] T is the temperature in K.
+    * @return Ideal gas enthalpy in kJ/kmol
+    */
+    U calculate_ideal_gas_enthalpy_conv(const U &T) const;
+
+
+    /**
+    * @brief Function for computing the pure component ideal gas entropy at a given temperature and pressure. 
+    * @param[in] T is the temperature in K.
+    * @param[in] p is the pressure in bar.
+    * @return Ideal gas entropy in kJ/(kmol K)
+    */
+    U calculate_ideal_gas_entropy(const U &T, const U &p) const;
+
+
+    /**
+    * @brief Function for computing the pure component ideal gas Gibbs free energy at a given temperature and pressure.
+    * @param[in] T is the temperature in K.
+    * @param[in] p is the pressure in bar.
+    * @return Ideal gas Gibbs free energy in kJ/kmol
+    */
+    U calculate_gibbs_free_energy(const U &T, const U &p) const;
+
+
+    /**
+    * @brief Functions for selecting the property models to be used.
+    * @param[in] modelId is an enumerator specifying the model.
+    * @param[in] parameters is a vector containing the required parameter values.
+    */
+    void set_heat_capacity_model(CPIG modelId, const std::vector<double> &parameters);
+
+    /**
+    * @brief Function for querying the molecular weight
+    * @return Molecular weight in kg/kmol
+    */
+    double get_MW() const { return _MW; }
+
+    /**
+    * @brief Function for querying the critical volume
+    * @return Molecular weight in cm^3/mol
+    */
+    double get_vcrit() const { return _vc; }
+
+
+    /**
+    * @brief Function for querying the standard enthalpy of formation
+    * @return Standard enthalpy of formation in kJ/kmol
+    */
+    double get_dh0() const { return _dh0 * 1000; }
+
+    /**
+    * @brief Function for querying the Gibbs free energy of formation
+    * @return Gibbs free energy of formation in kJ/kmol
+    */
+    double get_dg0() const { return _dg0 * 1000; }
+
+  protected:
+    const std::string _name; /*!< Name of the component                                          */
+    const double _MW;        /*!< Molecular weight                           [kg/kmol]           */
+    const double _Tc;        /*!< Critical temperature                       [K]                 */
+    const double _pc;        /*!< Critical pressure                          [bar]               */
+    const double _vc;        /*!< Critical volume                            [cm^3/mol]          */
+    const double _dh0;       /*!< Standard enthalpy of formation             [kJ/mol]            */
+    const double _dg0;       /*!< Standard Gibbs free energy of formation    [kJ/mol]            */
+
+    const double _pref; /*!< Reference pressure                         [bar]               */
+    const double _Tref; /*!< Reference temperature                      [K]                 */
+    const double _R;    /*!< Universal gas constant                     [cm^3*bar/(mol*K)]  */
+
+    std::vector<double> _paramsCpig; /*!< Pointer to heat capacity parameters   [K, kJ/(kmol K)]    */
+
+    CPIG _cpigModel; /*!< Enumerator storing which ideal gas heat capacity model is used            */
+
+  private:
+    PureComponent() {}
+};
+
+
+template <typename U>
+U
+PureComponent<U>::calculate_ideal_gas_enthalpy(const U &T) const
+{
+    if (_paramsCpig.size() != 7) {
+        throw(std::runtime_error("Pure component enthalpy queried before a heat capacity model was specified."));
+    }
+
+    switch (_cpigModel) {
+        case CPIG_ASPEN:
+            return _dh0 * 1000 + _paramsCpig[0] * (T - _Tref) + _paramsCpig[1] / 2 * (pow(T, 2) - pow(_Tref, 2.)) + _paramsCpig[2] / 3 * (pow(T, 3) - pow(_Tref, 3.)) + _paramsCpig[3] / 4 * (pow(T, 4) - pow(_Tref, 4.)) + _paramsCpig[4] / 5 * (pow(T, 5) - pow(_Tref, 5.)) + _paramsCpig[5] / 6 * (pow(T, 6) - pow(_Tref, 6.));
+        case CPIG_NASA:
+            return _dh0 * 1000 + 0.1 * _R * (-_paramsCpig[0] * (1 / T - 1 / _Tref) + _paramsCpig[1] * log(T / _Tref) + _paramsCpig[2] * (T - _Tref) + _paramsCpig[3] / 2 * (pow(T, 2) - pow(_Tref, 2.)) + _paramsCpig[4] / 3 * (pow(T, 3) - pow(_Tref, 3.)) + _paramsCpig[5] / 4 * (pow(T, 4) - pow(_Tref, 4.)) + _paramsCpig[6] / 5 * (pow(T, 5) - pow(_Tref, 5.)));
+        case CPIG_DIPPR107: {
+            // The DIPPR107 model is symmetric w.r.t. the sign of _paramsCpig[2] and _paramsCpig[4]. If for some reason one of them is negative, we just switch the sign to be able to use the standard integrated for
+            U term1;
+            if (std::fabs(_paramsCpig[2]) < mc::machprec()) {
+                term1 = _paramsCpig[1] * (T - _Tref);    // The limit of x*coth(x/T) for x->0 is T
+            }
+            else {
+                term1 = _paramsCpig[1] * std::fabs(_paramsCpig[2]) * (coth(std::fabs(_paramsCpig[2]) / T) - coth(std::fabs(_paramsCpig[2]) / _Tref));
+            }
+            return _dh0 * 1000 + _paramsCpig[0] * (T - _Tref) + term1 - _paramsCpig[3] * std::fabs(_paramsCpig[4]) * (tanh(std::fabs(_paramsCpig[4]) / T) - tanh(std::fabs(_paramsCpig[4]) / _Tref));
+        }
+        case CPIG_DIPPR127: {
+            U term1, term2, term3;
+            if (std::fabs(_paramsCpig[2]) < mc::machprec()) {
+                term1 = _paramsCpig[1] * (T - _Tref);    // The limit of x/(exp(x/T)-1) for x->0 is T
+            }
+            else {
+                term1 = _paramsCpig[1] * _paramsCpig[2] * (1 / (exp(_paramsCpig[2] / T) - 1) - 1 / (exp(_paramsCpig[2] / _Tref) - 1));
+            }
+            if (std::fabs(_paramsCpig[4]) < mc::machprec()) {
+                term2 = _paramsCpig[3] * (T - _Tref);    // The limit of x/(exp(x/T)-1) for x->0 is T
+            }
+            else {
+                term2 = _paramsCpig[3] * _paramsCpig[4] * (1 / (exp(_paramsCpig[4] / T) - 1) - 1 / (exp(_paramsCpig[4] / _Tref) - 1));
+            }
+            if (std::fabs(_paramsCpig[6]) < mc::machprec()) {
+                term3 = _paramsCpig[5] * (T - _Tref);    // The limit of x/(exp(x/T)-1) for x->0 is T
+            }
+            else {
+                term3 = _paramsCpig[5] * _paramsCpig[6] * (1 / (exp(_paramsCpig[6] / T) - 1) - 1 / (exp(_paramsCpig[6] / _Tref) - 1));
+            }
+            return _dh0 * 1000 + _paramsCpig[0] * (T - _Tref) + term1 + term2 + term3;
+        }
+        case CPIG_UNDEF:
+            throw(std::runtime_error("Error: No ideal gas heat capacity model specified."));
+        default:
+            throw(std::runtime_error("Error: Unknown ideal gas heat capacity model."));
+    }
+}
+
+
+template <typename U>
+U
+PureComponent<U>::calculate_ideal_gas_enthalpy_conv(const U &T) const
+{
+    U result{_dh0 * 1000};
+
+    switch (_cpigModel) {
+        case CPIG_ASPEN:
+            return result + aspen_hig(T, _Tref, _paramsCpig[0], _paramsCpig[1], _paramsCpig[2], _paramsCpig[3], _paramsCpig[4], _paramsCpig[5]);
+        case CPIG_NASA:
+            return result + nasa9_hig(T, _Tref, _paramsCpig[0], _paramsCpig[1], _paramsCpig[2], _paramsCpig[3], _paramsCpig[4], _paramsCpig[5], _paramsCpig[6]);
+        case CPIG_DIPPR107:
+            return result + dippr107_hig(T, _Tref, _paramsCpig[0], _paramsCpig[1], _paramsCpig[2], _paramsCpig[3], _paramsCpig[4]);
+        case CPIG_DIPPR127:
+            return result + dippr127_hig(T, _Tref, _paramsCpig[0], _paramsCpig[1], _paramsCpig[2], _paramsCpig[3], _paramsCpig[4], _paramsCpig[5], _paramsCpig[6]);
+        case CPIG_UNDEF:
+            throw(std::runtime_error("Error: No ideal gas heat capacity model specified."));
+        default:
+            throw(std::runtime_error("Error: Unknown ideal gas heat capacity model."));
+    }
+}
+
+
+template <typename U>
+U
+PureComponent<U>::calculate_ideal_gas_entropy(const U &T, const U &p) const
+{
+    if (_paramsCpig.size() != 7) {
+        throw(std::runtime_error("Pure component entropy queried before a heat capacity model was specified."));
+    }
+
+    switch (_cpigModel) {
+        case CPIG_ASPEN:
+            return 1000 * (_dh0 - _dg0) / _Tref + _paramsCpig[0] * log(T / _Tref) + _paramsCpig[1] * (T - _Tref) + _paramsCpig[2] / 2 * (pow(T, 2) - pow(_Tref, 2.)) + _paramsCpig[3] / 3 * (pow(T, 3) - pow(_Tref, 3.)) + _paramsCpig[4] / 4 * (pow(T, 4) - pow(_Tref, 4.)) + _paramsCpig[5] / 5 * (pow(T, 5) - pow(_Tref, 5.)) - 0.1 * _R * log(p / _pref);
+        case CPIG_NASA:
+            return 1000 * (_dh0 - _dg0) / _Tref + 0.1 * _R * (-_paramsCpig[0] / 2 * (1 / pow(T, 2) - 1 / pow(_Tref, 2.)) - _paramsCpig[1] * (1 / T - 1 / _Tref) + _paramsCpig[2] * log(T / _Tref) + _paramsCpig[3] * (T - _Tref) + _paramsCpig[4] / 2 * (pow(T, 2) - pow(_Tref, 2.)) + _paramsCpig[5] / 3 * (pow(T, 3) - pow(_Tref, 3.)) + _paramsCpig[6] / 4 * (pow(T, 4) - pow(_Tref, 4.))) - 0.1 * _R * log(p / _pref);
+        case CPIG_DIPPR107: {
+            // The DIPPR107 model is symmetric w.r.t. the sign of _paramsCpig[2] and _paramsCpig[4]. If for some reason one of them is negative, we just switch the sign to be able to use the standard integrated for
+            U CbT    = std::fabs(_paramsCpig[2]) / T;
+            U CbTref = std::fabs(_paramsCpig[2]) / _Tref;
+            U EbT    = std::fabs(_paramsCpig[4]) / T;
+            U EbTref = std::fabs(_paramsCpig[4]) / _Tref;
+            U term1;
+            if (std::fabs(_paramsCpig[2]) < mc::machprec()) {
+                term1 = _paramsCpig[1] * ((1. - log(sinh(CbT))) - (1. - log(sinh(CbTref))));    // The limit of x*coth(x) for x->0 is 1
+            }
+            else {
+                term1 = _paramsCpig[1] * ((CbT * coth(CbT) - log(sinh(CbT))) - (CbTref * coth(CbTref) - log(sinh(CbTref))));
+            }
+            return 1000 * (_dh0 - _dg0) / _Tref + _paramsCpig[0] * log(T / _Tref) + term1 - _paramsCpig[3] * ((EbT * tanh(EbT) - log(cosh(EbT))) - (EbTref * tanh(EbTref) - log(cosh(EbTref)))) - 0.1 * _R * log(p / _pref);
+        }
+        case CPIG_DIPPR127: {
+            // FIX!!!!
+            // U term1, term2, term3;
+            // if (std::fabs(_paramsCpig[2]) < mc::machprec()) {
+            // term1 = _paramsCpig[1]*((T)-());
+            // } else {
+            // term1 = _paramsCpig[1]*((CbT/(exp(CbT)-1)-log(1-exp(-CbT))) - (CbTref/(exp(CbTref)-1)-log(1-exp(-CbTref))));
+            // }
+            // if (std::fabs(_paramsCpig[4]) < mc::machprec()) {
+            // } else {
+            // }
+            // if (std::fabs(_paramsCpig[6]) < mc::machprec()) {
+            // } else {
+            // }
+            U CbT    = _paramsCpig[2] / T;
+            U CbTref = _paramsCpig[2] / _Tref;
+            U EbT    = _paramsCpig[4] / T;
+            U EbTref = _paramsCpig[4] / _Tref;
+            U GbT    = _paramsCpig[6] / T;
+            U GbTref = _paramsCpig[6] / _Tref;
+            return 1000 * (_dh0 - _dg0) / _Tref + _paramsCpig[0] * log(T / _Tref) + +_paramsCpig[3] * ((EbT / (exp(EbT) - 1) - log(1 - exp(-EbT))) - (EbTref / (exp(EbTref) - 1) - log(1 - exp(-EbTref)))) + _paramsCpig[5] * ((GbT / (exp(GbT) - 1) - log(1 - exp(-GbT))) - (GbTref / (exp(GbTref) - 1) - log(1 - exp(-GbTref)))) - 0.1 * _R * log(p / _pref);
+        }
+        case CPIG_UNDEF:
+            throw(std::runtime_error("Error: No ideal gas heat capacity model specified."));
+        default:
+            throw(std::runtime_error("Error: Unknown ideal gas heat capacity model."));
+    }
+}
+
+
+template <typename U>
+U
+PureComponent<U>::calculate_gibbs_free_energy(const U &T, const U &p) const
+{
+    return calculate_ideal_gas_enthalpy(T) - T * calculate_ideal_gas_entropy(T, p);
+}
+
+
+template <typename U>
+void
+PureComponent<U>::set_heat_capacity_model(CPIG modelId, const std::vector<double> &parameters)
+{
+    switch (modelId) {
+        case CPIG_ASPEN:
+            if (parameters.size() != 6) {
+                throw(std::runtime_error("Error: Aspen polynomial for ideal gas heat capacity initialized with wrong number of parameters."));
+            }
+            break;
+        case CPIG_NASA:
+            if (parameters.size() != 7) {
+                throw(std::runtime_error("Error: NASA polynomial for ideal gas heat capacity initialized with wrong number of parameters."));
+            }
+            break;
+        case CPIG_DIPPR107:
+            if (parameters.size() != 5) {
+                throw(std::runtime_error("Error: DIPPR equation 107 for ideal gas heat capacity initialized with wrong number of parameters."));
+            }
+            break;
+        case CPIG_DIPPR127:
+            if (parameters.size() != 7) {
+                throw(std::runtime_error("Error: DIPPR equation 107 for ideal gas heat capacity  initialized with wrong number of parameters."));
+            }
+            break;
+        default:
+            throw(std::runtime_error("Error: Unknown ideal gas heat capacity model."));
+    }
+    _cpigModel  = modelId;
+    _paramsCpig = parameters;
+    while (_paramsCpig.size() < 7) {
+        _paramsCpig.push_back(0.);
+    }
+}
+
+
+#endif /* PURECOMPONENT_H_ */
diff --git a/tests/testProblems/libraries/SubcriticalComponent.h b/tests/testProblems/libraries/SubcriticalComponent.h
new file mode 100644
index 0000000000000000000000000000000000000000..22b08324b1400179df77fad2d5f3574565108617
--- /dev/null
+++ b/tests/testProblems/libraries/SubcriticalComponent.h
@@ -0,0 +1,366 @@
+/**********************************************************************************
+ * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ **********************************************************************************/
+
+
+#ifndef SUBCRITICALCOMPONENT_H_
+#define SUBCRITICALCOMPONENT_H_
+
+#include "PureComponent.h"
+
+/**
+* @class SubcriticalComponent
+* @brief Class representing a pure chemical component below (or only "somewhat" above) its critical point.
+*
+* It stores all necessary parameters and contains functions for computing temperature- (and possibly pressure-)dependent pure component properties using different models.
+* The models to be used can be selected through the set functions using the respective enums.
+*/
+template <typename U>
+class SubcriticalComponent: public PureComponent<U> {
+
+  public:
+    /** 
+    * @enum PVAP
+    * @brief Enum for selecting the vapor pressure model to be used.
+    */
+    enum PVAP {
+        PVAP_UNDEF = 0,
+        PVAP_XANTOINE,    //!< pvap = exp(C0 + C1/(T+C2) + C3*T + C4*ln(T) + C5*T^C6)
+        PVAP_ANTOINE,     //!< pvap = 10^(C0 - C1/(T+C2))
+        PVAP_WAGNER,      //!< pvap = pc * exp((C0*(1-T/Tc) + C1*(1-T/Tc)^1.5 + C2*(1-T/Tc)^2.5 + C3*(1-T/Tc)^5)/(T/Tc))
+        PVAP_IKCAPE       //!< pvap = exp( C0 + C1*T + C2*T^2 + C3*T^3 + C4*T^4 + C5*T^5 + C6*T^6 + C7*T^7 + C8*T^8 + C9*T^9 )
+    };
+
+    /** 
+    * @enum DHVAP
+    * @brief Enum for selecting the model to be used for enthalpy of vaporization.
+    */
+    enum DHVAP {
+        DHVAP_UNDEF = 0,
+        DHVAP_WATSON,     //!< dhvap = C4 * ((1-T/Tc)/(1-C3/Tc)) ^ (C1 + C2*(1-T/Tc))
+        DHVAP_DIPPR106    //!< dhvap = C1 * (1-T/Tc) ^ (C2+C3*T/Tc+C4*(T/Tc)^2+C5*(T/Tc)^3)
+    };
+
+    /** 
+    * @enum VLIQ
+    * @brief Enum for selecting the model to be used for liquid volume.
+    */
+    enum VLIQ {
+        VLIQ_UNDEF = 0,
+        VLIQ_CONSTANT,    //!< vliq = C0
+        VLIQ_QUADRATIC    //!< vliq = C0 + C1*T + C2*T^2
+    };
+
+
+    /**
+    * @brief Constructor. Requires all necessary constant property paremeters as arguments.
+    * @param[in] nameIn is the component name.
+    * @param[in] mwIn is the molecular weight in kg/kmol.
+    * @param[in] tcIn is the critical temperature in K.
+    * @param[in] pcIn is the critical pressure in bar.
+    * @param[in] vcIn is the critical volume in cm^3/mol.
+    * @param[in] dh0In is the enthalpy of formation at 298.15 K in kJ/mol
+    * @param[in] dg0In is the Gibbs free energy of formation at 298.15 K in kJ/mol
+    */
+    SubcriticalComponent(const std::string nameIn, const double mwIn, const double tcIn, const double pcIn, const double vcIn, const double dh0In, const double dg0In):
+        PureComponent<U>(nameIn, mwIn, tcIn, pcIn, vcIn, dh0In, dg0In), _pvapModel(PVAP_UNDEF), _dhvapModel(DHVAP_UNDEF), _vliqModel(VLIQ_UNDEF) {}
+
+
+    /**
+    * @brief Function for computing the pure component vapor pressure at a given temperature.
+    * @param[in] T is the temperature in K.
+    * @return Vapor pressure in bar.
+    */
+    U calculate_vapor_pressure(const U &T) const;
+
+    /**
+    * @brief Function for computing the pure component vapor pressure at a given temperature using the envelope implemented in MC++ ASSUMING THAT IT IS MONOTONICALLY INCREASING AND CONVEX!
+    * @param[in] T is the temperature in K.
+    * @return Vapor pressure in bar.
+    */
+    U calculate_vapor_pressure_conv(const U &T) const;
+
+    /**
+    * @brief Function for computing the pure component enthalpy of vaporization at a given temperature.
+    * @param[in] T is the temperature in K.
+    * @return Enthalpy of vaporization in kJ/kmol
+    */
+    U calculate_vaporization_enthalpy(const U &T) const;
+
+    /**
+    * @brief Function for computing the pure component enthalpy of vaporization at a given temperature using the envelope implemented in MC++ ASSUMING THAT IT IS MONOTONICALLY DECREASING AND CONCAVE!
+    * @param[in] T is the temperature in K.
+    * @return Enthalpy of vaporization in kJ/kmol
+    */
+    U calculate_vaporization_enthalpy_conv(const U &T) const;
+
+    /**
+    * @brief Function for computing the pressure correction for the pure component liquid enthalpy at a given temperature and pressure. 
+    * @param[in] T is the temperature in K.
+    * @param[in] p is the actual pressure in bar.
+    * @param[in] ps is the pressure from where correction should take place in bar.
+    * @return Pressure correction for enthalpy in kJ/kmol
+    */
+    U calculate_liquid_enthalpy_pressure_correction(const U &T, const U &p, const U &ps) const;
+
+
+    /**
+    * @brief Function for computing the poynting factor at a given temperature and pressure. 
+    * @param[in] T is the temperature in K.
+    * @param[in] p is the actual pressure in bar.
+    * @param[in] ps is the pressure from where correction should take place in bar.
+    * @return Poynting factor
+    */
+    U calculate_poynting_factor(const U &T, const U &p, const U &ps) const;
+
+    /**
+    * @brief Functions for selecting the property models to be used.
+    * @param[in] modelId is an enumerator specifying the model.
+    * @param[in] parameters is a vector containing the required parameter values.
+    */
+    void set_vapor_pressure_model(PVAP modelId, const std::vector<double> &parameters);
+    void set_enthalpy_of_vaporization_model(DHVAP modelId, const std::vector<double> &parameters);
+    void set_liquid_volume_model(VLIQ modelId, const std::vector<double> &parameters);
+
+
+  private:
+    std::vector<double> _paramsPvap;  /*!< Pointer to vapor pressure parameters             [K, bar]        */
+    std::vector<double> _paramsDhvap; /*!< Pointer to enthalpy of vaporization parameters   [K, kJ/kmol]    */
+    std::vector<double> _paramsVliq;  /*!< Pointer to liquid volume parameters              [K, l/kmol]     */
+
+    PVAP _pvapModel;   /*!< Enumerator storing which vapor pressure model is used            */
+    DHVAP _dhvapModel; /*!< Enumerator storing which enthalpy of vaporization model is used  */
+    VLIQ _vliqModel;   /*!< Enumerator storing which liquid volume model is used             */
+};
+
+
+template <typename U>
+U
+SubcriticalComponent<U>::calculate_vapor_pressure(const U &T) const
+{
+    if (_paramsPvap.size() != 10) {
+        throw(std::runtime_error("Vapor pressure queried before a corresponding model was specified."));
+    }
+
+    switch (_pvapModel) {
+        case PVAP_XANTOINE:
+            return exp(_paramsPvap[0] + _paramsPvap[1] / (T + _paramsPvap[2]) + _paramsPvap[3] * T + _paramsPvap[4] * log(T) + _paramsPvap[5] * pow(T, _paramsPvap[6]));
+        case PVAP_ANTOINE:
+            return pow(10.0, _paramsPvap[0] - _paramsPvap[1] / (T + _paramsPvap[2]));
+        case PVAP_WAGNER: {
+            U Tr(T / PureComponent<U>::_Tc);
+            return PureComponent<U>::_pc * exp((_paramsPvap[0] * (1 - Tr) + _paramsPvap[1] * pow(1 - Tr, 1.5) + _paramsPvap[2] * pow(1 - Tr, 2.5) + _paramsPvap[3] * pow(1 - Tr, 5)) / Tr);
+        }
+        case PVAP_IKCAPE:
+            return exp(_paramsPvap[0] + _paramsPvap[1] * T + _paramsPvap[2] * pow(T, 2) + _paramsPvap[3] * pow(T, 3) + _paramsPvap[4] * pow(T, 4) + _paramsPvap[5] * pow(T, 5) + _paramsPvap[6] * pow(T, 6) + _paramsPvap[7] * pow(T, 7) + _paramsPvap[8] * pow(T, 8) + _paramsPvap[9] * pow(T, 9));
+        case PVAP_UNDEF:
+            throw(std::runtime_error("Error: No vapor pressure model specified."));
+        default:
+            throw(std::runtime_error("Error: Unknown vapor pressure model."));
+    }
+}
+
+
+template <typename U>
+U
+SubcriticalComponent<U>::calculate_vapor_pressure_conv(const U &T) const
+{
+    switch (_pvapModel) {
+        case PVAP_XANTOINE:
+            return ext_antoine_psat(T, _paramsPvap[0], _paramsPvap[1], _paramsPvap[2], _paramsPvap[3], _paramsPvap[4], _paramsPvap[5], _paramsPvap[6]);
+        case PVAP_ANTOINE:
+            return antoine_psat(T, _paramsPvap[0], _paramsPvap[1], _paramsPvap[2]);
+        case PVAP_WAGNER:
+            return wagner_psat(T, _paramsPvap[0], _paramsPvap[1], _paramsPvap[2], _paramsPvap[3], _paramsPvap[4], _paramsPvap[5]);
+        case PVAP_IKCAPE:
+            return ik_cape_psat(T, _paramsPvap[0], _paramsPvap[1], _paramsPvap[2], _paramsPvap[3], _paramsPvap[4], _paramsPvap[5], _paramsPvap[6], _paramsPvap[7], _paramsPvap[8], _paramsPvap[9]);
+        case PVAP_UNDEF:
+            throw(std::runtime_error("Error: No vapor pressure model specified."));
+        default:
+            throw(std::runtime_error("Error: Unknown vapor pressure model."));
+    }
+}
+
+template <typename U>
+U
+SubcriticalComponent<U>::calculate_vaporization_enthalpy(const U &T) const
+{
+    if (_paramsDhvap.size() != 6) {
+        throw(std::runtime_error("Enthalpy of vaporization queried before a corresponding model was specified."));
+    }
+
+    U Tr = T / PureComponent<U>::_Tc;
+    switch (_dhvapModel) {
+        case DHVAP_WATSON:
+            return _paramsDhvap[4] * pow(max(1 - Tr, machprec()) / (1 - _paramsDhvap[3] / PureComponent<U>::_Tc), _paramsDhvap[1] + _paramsDhvap[2] * (1 - Tr));
+        case DHVAP_DIPPR106:
+            return _paramsDhvap[1] * pow(max(1 - Tr, machprec()), _paramsDhvap[2] + _paramsDhvap[3] * Tr + _paramsDhvap[4] * pow(Tr, 2) + _paramsDhvap[5] * pow(Tr, 3));
+        case DHVAP_UNDEF:
+            throw(std::runtime_error("Error: No enthalpy of vaporization model specified."));
+        default:
+            throw(std::runtime_error("Error: Unknown enthalpy of vaporization model."));
+    }
+}
+
+
+template <typename U>
+U
+SubcriticalComponent<U>::calculate_vaporization_enthalpy_conv(const U &T) const
+{
+    switch (_dhvapModel) {
+        case DHVAP_WATSON:
+            return watson_dhvap(T, _paramsDhvap[0], _paramsDhvap[1], _paramsDhvap[2], _paramsDhvap[3], _paramsDhvap[4]);
+        case DHVAP_DIPPR106:
+            return dippr106_dhvap(T, _paramsDhvap[0], _paramsDhvap[1], _paramsDhvap[2], _paramsDhvap[3], _paramsDhvap[4], _paramsDhvap[5]);
+        case DHVAP_UNDEF:
+            throw(std::runtime_error("Error: No enthalpy of vaporization model specified."));
+        default:
+            throw(std::runtime_error("Error: Unknown enthalpy of vaporization model."));
+    }
+}
+
+
+template <typename U>
+U
+SubcriticalComponent<U>::calculate_liquid_enthalpy_pressure_correction(const U &T, const U &p, const U &ps) const
+{
+    if (_paramsVliq.size() != 3) {
+        throw(std::runtime_error("Liquid enthalpy pressure correction queried before a liquid volume model was specified."));
+    }
+
+    switch (_vliqModel) {
+        case VLIQ_CONSTANT:
+            return 0.1 * _paramsVliq[0] * (p - ps);
+        case VLIQ_QUADRATIC:
+            return 0.1 * (_paramsVliq[0] - _paramsVliq[2] * pow(T, 2)) * (p - ps);
+        case VLIQ_UNDEF:
+            throw(std::runtime_error("Error: No liquid volume model specified."));
+        default:
+            throw(std::runtime_error("Error: Unknown liquid volume model."));
+    }
+}
+
+
+template <typename U>
+U
+SubcriticalComponent<U>::calculate_poynting_factor(const U &T, const U &p, const U &ps) const
+{
+    if (_paramsVliq.size() != 3) {
+        throw(std::runtime_error("Poynting factor queried before a liquid volume model was specified."));
+    }
+
+    switch (_vliqModel) {
+        case VLIQ_CONSTANT:
+            return exp(_paramsVliq[0] * (p - ps) / (PureComponent<U>::_R * T));
+        case VLIQ_QUADRATIC:
+            return exp((_paramsVliq[0] / T + _paramsVliq[1] + _paramsVliq[2] * T) * (p - ps) / PureComponent<U>::_R);
+        case VLIQ_UNDEF:
+            throw(std::runtime_error("Error: No liquid volume model specified."));
+        default:
+            throw(std::runtime_error("Error: Unknown liquid volume model."));
+    }
+}
+
+
+template <typename U>
+void
+SubcriticalComponent<U>::set_vapor_pressure_model(PVAP modelId, const std::vector<double> &parameters)
+{
+    switch (modelId) {
+        case PVAP_XANTOINE:
+            if (parameters.size() != 7) {
+                throw(std::runtime_error("Error: Extended Antoine equation initialized with wrong number of parameters."));
+            }
+            break;
+        case PVAP_ANTOINE:
+            if (parameters.size() != 3) {
+                throw(std::runtime_error("Error: Antoine equation initialized with wrong number of parameters."));
+            }
+            break;
+        case PVAP_WAGNER:
+            if (parameters.size() != 5) {
+                throw(std::runtime_error("Error: Wagner equation for vapor pressure initialized with wrong number of parameters."));
+            }
+            break;
+        case PVAP_IKCAPE:
+            if (parameters.size() != 10) {
+                throw(std::runtime_error("Error: IK Cape equation for vapor pressure initialized with wrong number of parameters."));
+            }
+            break;
+        default:
+            throw(std::runtime_error("Error: Unknown vapor pressure model."));
+    }
+    _pvapModel  = modelId;
+    _paramsPvap = parameters;
+    if (modelId == PVAP_WAGNER) {
+        _paramsPvap.push_back(PureComponent<U>::_Tc);
+        _paramsPvap.push_back(PureComponent<U>::_pc);
+    }
+    while (_paramsPvap.size() < 10) {
+        _paramsPvap.push_back(0.);
+    }
+}
+
+
+template <typename U>
+void
+SubcriticalComponent<U>::set_enthalpy_of_vaporization_model(DHVAP modelId, const std::vector<double> &parameters)
+{
+    switch (modelId) {
+        case DHVAP_WATSON:
+            if (parameters.size() != 4) {
+                throw(std::runtime_error("Error: Watson model for enthalpy of vaporization initialized with wrong number of parameters."));
+            }
+            break;
+        case DHVAP_DIPPR106:
+            if (parameters.size() != 5) {
+                throw(std::runtime_error("Error: DIPPR equation 106 for enthalpy of vaporization initialized with wrong number of parameters."));
+            }
+            break;
+        default:
+            throw(std::runtime_error("Error: Unknown enthalpy of vaporization model."));
+    }
+    _dhvapModel  = modelId;
+    _paramsDhvap = std::vector<double>{PureComponent<U>::_Tc};
+    _paramsDhvap.insert(_paramsDhvap.end(), parameters.begin(), parameters.end());
+    while (_paramsDhvap.size() < 6) {
+        _paramsDhvap.push_back(0.);
+    }
+}
+
+
+template <typename U>
+void
+SubcriticalComponent<U>::set_liquid_volume_model(VLIQ modelId, const std::vector<double> &parameters)
+{
+    switch (modelId) {
+        case VLIQ_CONSTANT:
+            if (parameters.size() != 1) {
+                throw(std::runtime_error("Error: Constant liquid volume model initialized with wrong number of parameters."));
+            }
+            break;
+        case VLIQ_QUADRATIC:
+            if (parameters.size() != 3) {
+                throw(std::runtime_error("Error: Quadratic liquid volume model initialized with wrong number of parameters."));
+            }
+            break;
+        default:
+            throw(std::runtime_error("Error: Unknown liquid volume model."));
+    }
+
+    _vliqModel  = modelId;
+    _paramsVliq = parameters;
+    while (_paramsVliq.size() < 3) {
+        _paramsVliq.push_back(0.);
+    }
+}
+
+
+#endif /* SUBCRITICALCOMPONENT_H_ */
diff --git a/tests/testProblems/libraries/problemExternalFunctions.h b/tests/testProblems/libraries/problemExternalFunctions.h
new file mode 100644
index 0000000000000000000000000000000000000000..1f7167b420d687e341ff6ef1bbcd9e72d06d4882
--- /dev/null
+++ b/tests/testProblems/libraries/problemExternalFunctions.h
@@ -0,0 +1,150 @@
+/**********************************************************************************
+ * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ **********************************************************************************/
+
+#ifndef EXTERNALFUNCTIONS_H_
+#define EXTERNALFUNCTIONS_H_
+
+#define MY_PI 3.14159265358979323846 /* pi */
+
+
+using Var = mc::FFVar;    // this allows us to write Var instead of mc::FFVar
+
+
+/**
+* @class SomeExternalClass
+* @brief Exemplary class needed in problem.h 
+*
+* This class provides some exemplary functions called in problem.h
+*/
+class SomeExternalClass {
+
+  public:
+    /**
+		* @brief Constructor setting parameter _p1 to p1 and _p2 to p2
+		*
+		* @param[in] p1 is the parameter value	
+		* @param[in] p2 is the parameter value	
+		*/
+    SomeExternalClass(Var p1, Var p2):
+        _p1(p1), _p2(p2)
+    {
+    }
+
+    /**
+		* @brief Constructor setting parameter _p1 to p1 and _p2 to 5
+		*
+		* @param[in] p1 is the parameter value	
+		*/
+    SomeExternalClass(Var p1):
+        _p1(p1)
+    {
+        _p2 = 5;
+    }
+
+    /**
+		* @brief Default constructor setting parameter _p1 to 3 and _p2 to 5
+		*/
+    SomeExternalClass()
+    {
+        _p1 = 3;
+        _p2 = 5;
+    }
+
+    /**
+		* @brief Copy constructor 
+		*
+		* @param[in] mySomeExternalClass is some other object of class SomeExternalClass
+		*/
+    SomeExternalClass(const SomeExternalClass &mySomeExternalClass)
+    {
+        *this = mySomeExternalClass;
+    }
+
+    /**
+		* @brief Copy constructor via = operator
+		*
+		* @param[in] mySomeExternalClass is some other object of class SomeExternalClass
+		*/
+    SomeExternalClass &operator=(const SomeExternalClass &mySomeExternalClass)
+    {
+        if (this != &mySomeExternalClass) {
+            _p1 = mySomeExternalClass._p1;
+            _p2 = mySomeExternalClass._p2;
+        }
+
+        return *this;
+    }
+
+    /**
+		* @brief Function for setting _p1 to p1 
+		*
+		* @param[in] p1 is the parameter value	
+		*/
+    void set_p1(Var p1)
+    {
+        _p1 = p1;
+    }
+
+    /**
+		* @brief Function for setting _p2 to p2 
+		*
+		* @param[in] p2 is the parameter value	
+		*/
+    void set_p2(Var p2)
+    {
+        _p2 = p2;
+    }
+
+    /**
+		* @brief Function for setting parameter _p1 to p1 and _p2 to p2
+		*
+		* @param[in] p1 is the parameter value	
+		* @param[in] p2 is the parameter value	
+		*/
+    void set_p1_p2(Var p1, Var p2)
+    {
+        _p1 = p1;
+        _p2 = p2;
+    }
+
+    /**
+		* @brief Exemplary function 
+		*
+		* @param[in] x is the first variable
+		* @param[in] y is the second variable
+		
+		*/
+    Var functionOne(Var x, Var y)
+    {
+        Var result = -_p1 * sqrt((sqr(x) + sqr(y)) / 2.);
+        return result;
+    }
+
+    /**
+		* @brief Exemplary function 
+		*
+		* @param[in] x is the first variable
+		* @param[in] y is the second variable
+		
+		*/
+    Var functionTwo(Var x, Var y)
+    {
+        Var result = (cos(_p2 * x) + cos(_p2 * y)) / 2.;
+        return result;
+    }
+
+  private:
+    // parameters
+    Var _p1;
+    Var _p2;
+};
+
+#endif
diff --git a/tests/testProblems/main.cpp b/tests/testProblems/main.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..44866f9c83230250ea59bc2f73840a7e774ab956
--- /dev/null
+++ b/tests/testProblems/main.cpp
@@ -0,0 +1,332 @@
+/**********************************************************************************
+ * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ **********************************************************************************/
+
+#include "mpiUtilities.h"
+
+#include "problem_Henry_RS_IdealGasFlash.h"
+#include "problem_LP.h"
+#include "problem_MILP.h"
+#include "problem_NRTL_RS_Flash.h"
+#include "problem_OME_RS_IdealGasFlash.h"
+#include "problem_bin1.h"
+#include "problem_case1_lcoe.h"
+#include "problem_case2_lcoe.h"
+#include "problem_case3_wnet.h"
+#include "problem_ex8_1_3.h"
+#include "problem_int1.h"
+#include "problem_unusedVars.h"
+
+#include "MAiNGO.h"
+#include "getTime.h"
+
+#ifdef HAVE_MAiNGO_PARSER
+#include "aleModel.h"
+#include "programParser.h"
+#include "symbol_table.hpp"
+#endif
+
+#include <iostream>
+#include <memory>
+#include <string>
+
+
+bool
+print_testResults(std::shared_ptr<maingo::MAiNGO> theMAiNGO, maingo::RETCODE maingoStatus, const double correctSolution, const double epsilonA, const double epsilonR, double &CPUofAllProcesses)
+{
+    bool correctA = true;
+    bool correctR = true;
+
+#ifdef HAVE_MAiNGO_MPI
+    int _rank;
+    MPI_Comm_rank(MPI_COMM_WORLD, &_rank);
+#endif
+
+    MAiNGO_IF_BAB_MANAGER
+        CPUofAllProcesses += theMAiNGO->get_cpu_solution_time();
+        if (maingoStatus != maingo::RETCODE::GLOBALLY_OPTIMAL) {
+            std::cout << "ERROR - model did not converge globally. Return code: " << maingoStatus << std::endl;
+            correctA = false;
+            correctR = false;
+        }
+        else {
+            if (std::fabs(theMAiNGO->get_objective_value() - correctSolution) > epsilonA) {
+                correctA = false;
+            }
+            if ((std::fabs(theMAiNGO->get_objective_value() - correctSolution)) > epsilonR * std::fabs(theMAiNGO->get_objective_value())) {
+                correctR = false;
+            }
+            if (correctA || correctR) {
+                std::cout << "OK  "
+                          << " Time needed: " << std::setw(7) << std::right << theMAiNGO->get_cpu_solution_time() << "s";
+                std::cout << " Time needed (wallclock): " << std::setw(7) << std::right << theMAiNGO->get_wallclock_solution_time() << "s";
+                std::cout << std::endl;
+            }
+            else {
+                if (!correctA) {
+                    std::cout << "ERROR - incorrect objective value (absolute tolerance): " << theMAiNGO->get_objective_value() << " instead of " << correctSolution << std::endl;
+                }
+                else if (!correctR) {
+                    std::cout << "ERROR - incorrect objective value (relative tolerance): " << theMAiNGO->get_objective_value() << " instead of " << correctSolution << std::endl;
+                }
+            }
+        }
+    MAiNGO_END_IF
+    return (correctA || correctR);
+}
+
+bool
+run_test(std::shared_ptr<maingo::MAiNGO> theMAiNGO, const std::string &name, const double correctSolution, const double epsilonA, const double epsilonR, double &CPUofAllProcesses,
+         bool testAle = false, bool useMinMax = true, bool useTrig = true, bool ignoreBoundingFuncs = false, bool useRelOnly = true)
+{
+
+#ifdef HAVE_MAiNGO_MPI
+    int _rank;
+    MPI_Comm_rank(MPI_COMM_WORLD, &_rank);
+#endif
+
+    std::cout << std::left << std::setw(40) << name << ": ";
+    const maingo::RETCODE maingoStatus                            = theMAiNGO->solve();
+    MAiNGO_MPI_BARRIER
+    const bool default_success = print_testResults(theMAiNGO, maingoStatus, correctSolution, epsilonA, epsilonR, CPUofAllProcesses);
+
+#ifdef HAVE_MAiNGO_PARSER
+    MAiNGO_IF_BAB_MANAGER
+        theMAiNGO->write_model_to_file_in_other_language(maingo::WRITING_LANGUAGE::LANG_ALE, name + ".txt", "", useMinMax, useTrig, ignoreBoundingFuncs, useRelOnly);
+    MAiNGO_END_IF
+    MAiNGO_MPI_BARRIER
+        std::shared_ptr<maingo::AleModel>
+            myModel;
+    std::ifstream input(name + ".txt");
+    ale::symbol_table symbols;
+
+    try {
+        maingo::ProgramParser par(input, symbols);
+        maingo::Program prog;
+        par.parse(prog);
+        if (par.fail()) {
+            throw std::invalid_argument("Encountered an error while parsing the problem file.");
+        }
+        myModel = std::make_shared<maingo::AleModel>(prog, symbols);
+    }
+    catch (std::exception &e) {
+        MAiNGO_IF_BAB_MANAGER
+            std::cout << std::left << std::setw(40) << name + " (parsed)"
+                      << ": ERROR - " << e.what() << std::endl;
+        MAiNGO_END_IF
+        MAiNGO_MPI_FINALIZE return false;
+    }
+    catch (...) {
+        MAiNGO_IF_BAB_MANAGER
+            std::cout << std::left << std::setw(40) << name + " (parsed)"
+                      << ": ERROR - Encountered an unknown fatal error." << std::endl;
+        MAiNGO_END_IF
+        MAiNGO_MPI_FINALIZE return false;
+    }
+
+    theMAiNGO->set_model(myModel);
+    std::cout << std::left << std::setw(40) << name + " (parsed)"
+              << ": ";
+    const maingo::RETCODE parsed_maingoStatus = theMAiNGO->solve();
+    const bool parsed_success = print_testResults(theMAiNGO, parsed_maingoStatus, correctSolution, epsilonA, epsilonR, CPUofAllProcesses);
+    return (default_success && parsed_success);
+#else
+    return default_success;
+#endif
+
+}
+
+
+/**
+ * @brief Main function for testing MAiNGO on given instances
+ *
+ * Sets options and calls the branch-and-bound solver
+ */
+int
+main(int argc, char *argv[])
+{
+
+#ifdef HAVE_MAiNGO_MPI
+    // Initialize MPI stuff
+    MPI_Init(&argc, &argv);
+    int _rank;
+    int nProcs;
+    MPI_Comm_rank(MPI_COMM_WORLD, &_rank);
+    MPI_Comm_size(MPI_COMM_WORLD, &nProcs);
+#endif
+
+    // Define model and MAiNGO objects
+    std::shared_ptr<Model_bin1> myModel_bin1;
+    std::shared_ptr<Model_int1> myModel_int1;
+    std::shared_ptr<Model_case1_lcoe> myModel_case1_lcoe;
+    std::shared_ptr<Model_case2_lcoe> myModel_case2_lcoe;
+    std::shared_ptr<Model_case3_wnet> myModel_case3_wnet;
+    std::shared_ptr<Model_ex8_1_3> myModel_ex8_1_3;
+    std::shared_ptr<Model_Henry_RS_IdealGasFlash> myModel_Henry_RS_IdealGasFlash;
+    std::shared_ptr<Model_NRTL_RS_Flash> myModel_NRTL_RS_Flash;
+    std::shared_ptr<Model_OME_RS_IdealGasFlash> myModel_OME_RS_IdealGasFlash;
+    std::shared_ptr<Model_unusedVars> myModel_unusedVars;
+    std::shared_ptr<Model_LP> myModel_LP;
+    std::shared_ptr<Model_MILP> myModel_MILP;
+    std::shared_ptr<maingo::MAiNGO> myMAiNGO;
+    try {
+        myModel_bin1                   = std::make_shared<Model_bin1>();                      // Define a model object implemented in problem_bin1.h
+        myModel_int1                   = std::make_shared<Model_int1>();                      // Define a model object implemented in problem_int1.h
+        myModel_case1_lcoe             = std::make_shared<Model_case1_lcoe>();                // Define a model object implemented in problem_case1_lcoe.h
+        myModel_case2_lcoe             = std::make_shared<Model_case2_lcoe>();                // Define a model object implemented in problem_case2_lcoe.h
+        myModel_case3_wnet             = std::make_shared<Model_case3_wnet>();                // Define a model object implemented in problem_case3_wnet.h
+        myModel_ex8_1_3                = std::make_shared<Model_ex8_1_3>();                   // Define a model object implemented in problem_ex8_1_3.h
+        myModel_Henry_RS_IdealGasFlash = std::make_shared<Model_Henry_RS_IdealGasFlash>();    // Define a model object implemented in problem_Henry_RS_IdealGasFlash.h
+        myModel_NRTL_RS_Flash          = std::make_shared<Model_NRTL_RS_Flash>();             // Define a model object implemented in problem_NRTL_RS_Flash.h
+        myModel_OME_RS_IdealGasFlash   = std::make_shared<Model_OME_RS_IdealGasFlash>();      // Define a model object implemented in problem_OME_RS_IdealGasFlash.h
+        myModel_unusedVars             = std::make_shared<Model_unusedVars>();                // Define a model object implemented in problem_unusedVars.h
+        myModel_LP                     = std::make_shared<Model_LP>();                        // Define a model object implemented in problem_LP.h
+        myModel_MILP                   = std::make_shared<Model_MILP>();                      // Define a model object implemented in problem_MILP.h
+
+        // Start with problem_bin1 and initialize MAiNGO object
+        myMAiNGO = std::shared_ptr<maingo::MAiNGO>(new maingo::MAiNGO(myModel_bin1));
+    }
+    catch (std::exception &e) {
+        MAiNGO_IF_BAB_MANAGER
+            std::cerr << std::endl
+                      << e.what() << std::endl;
+        MAiNGO_END_IF
+        MAiNGO_MPI_FINALIZE return -1;
+    }
+    catch (...) {
+        MAiNGO_IF_BAB_MANAGER
+            std::cerr << std::endl
+                      << "Encountered an unknown fatal error during initialization. Terminating." << std::endl;
+        MAiNGO_END_IF
+        MAiNGO_MPI_FINALIZE return -1;
+    }
+
+#ifdef HAVE_MAiNGO_MPI
+    // Mute cout for workers
+    std::ostringstream mutestream;
+    std::streambuf *coutBuf = std::cout.rdbuf();
+    MAiNGO_IF_BAB_WORKER
+        std::cout.rdbuf(mutestream.rdbuf());    // Note that all workers would return "ERROR - model did not converge globally."
+        MAiNGO_ELSE
+            std::cout
+                << std::endl
+                << "Running testproblems with " << nProcs << " processes (1 Master and " << nProcs - 1 << " Slaves)." << std::endl;
+        MAiNGO_END_IF
+#endif
+
+        std::cout
+            << std::endl
+            << "Setting tolerances and other options." << std::endl;
+        const double epsilonA = 1e-4;
+        const double epsilonR = 1e-4;
+        myMAiNGO->set_option("epsilonA", epsilonA);
+        myMAiNGO->set_option("epsilonR", epsilonR);
+        myMAiNGO->set_option("deltaIneq", 1e-6);
+        myMAiNGO->set_option("deltaEq", 1e-6);
+        myMAiNGO->set_option("LBP_solver", maingo::lbp::LBP_SOLVER_CPLEX);
+        std::cout << "Disabling all output." << std::endl;
+        myMAiNGO->set_option("loggingDestination", maingo::LOGGING_NONE);
+        std::cout << std::endl;
+
+        double CPUofAllProcesses = 0;
+        const double startCPU          = maingo::get_cpu_time();
+        const double startWall         = maingo::get_wall_time();
+
+        // Solve the problems
+        try {
+            // Problem bin 1
+            // The model is already set
+            run_test(myMAiNGO, "Problem_bin1", 1, epsilonA, epsilonR, CPUofAllProcesses);
+
+            // Problem int 1
+            myMAiNGO->set_model(myModel_int1);
+            run_test(myMAiNGO, "Problem_int1", -0.869297426825, epsilonA, epsilonR, CPUofAllProcesses);
+
+            // Problem case 1 lcoe
+            myMAiNGO->set_model(myModel_case1_lcoe);
+            run_test(myMAiNGO, "Problem_case1_lcoe", 50.2488287676, epsilonA, epsilonR, CPUofAllProcesses);
+
+            // Problem case 2 lcoe
+            myMAiNGO->set_model(myModel_case2_lcoe);
+            run_test(myMAiNGO, "Problem_case2_lcoe", 48.946254947, epsilonA, epsilonR, CPUofAllProcesses);
+
+            // Problem case 3 wnet
+            myMAiNGO->set_model(myModel_case3_wnet);
+            run_test(myMAiNGO, "Problem_case3_wnet", -39349.2554447061, epsilonA, epsilonR, CPUofAllProcesses);
+
+            // Problem ex8 1 3
+            myMAiNGO->set_model(myModel_ex8_1_3);
+            run_test(myMAiNGO, "Problem_ex8_1_3", 3, epsilonA, epsilonR, CPUofAllProcesses);
+
+            // Problem Henry RS Ideal Gas Flash
+            myMAiNGO->set_model(myModel_Henry_RS_IdealGasFlash);
+            run_test(myMAiNGO, "Problem_Henry_RS_IdealGasFlash", -0.931661985716, epsilonA, epsilonR, CPUofAllProcesses);
+
+
+            // Problem NRTL RS Flash
+            myMAiNGO->set_model(myModel_NRTL_RS_Flash);
+            run_test(myMAiNGO, "Problem_NRTL_RS_Flash", 1064.34, epsilonA, epsilonR, CPUofAllProcesses);
+
+
+            // Problem OME RS Ideal Gas Flash
+            myMAiNGO->set_model(myModel_OME_RS_IdealGasFlash);
+            run_test(myMAiNGO, "Problem_OME_RS_IdealGasFlash", -0.385131174192, epsilonA, epsilonR, CPUofAllProcesses);
+
+
+            // Problem unused variables
+            myMAiNGO->set_model(myModel_unusedVars);
+            run_test(myMAiNGO, "Problem_unusedVars", 4.355812920567349, epsilonA, epsilonR, CPUofAllProcesses);
+
+
+            // Problem LP
+            myMAiNGO->set_model(myModel_LP);
+            run_test(myMAiNGO, "Problem_LP", 153.675, epsilonA, epsilonR, CPUofAllProcesses);
+
+            // Problem MILP
+            myMAiNGO->set_model(myModel_MILP);
+            run_test(myMAiNGO, "Problem_MILP", -2, epsilonA, epsilonR, CPUofAllProcesses);
+        }
+        catch (std::exception &e) {
+            MAiNGO_IF_BAB_MANAGER
+                std::cerr << std::endl
+                          << e.what() << std::endl;
+            MAiNGO_END_IF
+            MAiNGO_MPI_FINALIZE return -1;
+        }
+        catch (...) {
+            MAiNGO_IF_BAB_MANAGER
+                std::cerr << std::endl
+                          << "Encountered an unknown fatal error during solution. Terminating." << std::endl;
+            MAiNGO_END_IF
+            MAiNGO_MPI_FINALIZE return -1;
+        }
+
+        std::cout << "Done." << std::endl
+                  << std::endl;
+
+        const double endCPU              = maingo::get_cpu_time();
+        const double endWall             = maingo::get_wall_time();
+        const unsigned int cpuAllMinutes = std::floor(CPUofAllProcesses / 60.);
+        const unsigned int cpuMinutes    = std::floor((endCPU - startCPU) / 60.);
+        const unsigned int wallMinutes   = std::floor((endWall - startWall) / 60.);
+#ifdef HAVE_MAiNGO_MPI
+        std::cout << "Total CPU time:  " << CPUofAllProcesses << " s = " << cpuAllMinutes << " m " << (CPUofAllProcesses)-cpuAllMinutes * (60.) << "s." << std::endl;
+#else
+    std::cout << "Total CPU time:  " << endCPU - startCPU << " s = " << cpuMinutes << " m " << (endCPU - startCPU) - cpuMinutes * (60.) << "s." << std::endl;
+#endif
+        std::cout << "Total wall time: " << endWall - startWall << " s = " << wallMinutes << " m " << (endWall - startWall) - wallMinutes * (60.) << "s." << std::endl
+                  << std::endl;
+
+#ifdef HAVE_MAiNGO_MPI
+        std::cout.rdbuf(coutBuf);
+#endif
+
+        MAiNGO_MPI_FINALIZE return 0;
+}
\ No newline at end of file
diff --git a/tests/testProblems/problem_Henry_RS_IdealGasFlash.h b/tests/testProblems/problem_Henry_RS_IdealGasFlash.h
new file mode 100644
index 0000000000000000000000000000000000000000..47d915919ea9da6336a6aa2e64e875c80a126ebd
--- /dev/null
+++ b/tests/testProblems/problem_Henry_RS_IdealGasFlash.h
@@ -0,0 +1,243 @@
+/**********************************************************************************
+ * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ **********************************************************************************/
+
+#pragma once
+
+#include "MAiNGOmodel.h"
+#include "libraries/HenryComponent.h"
+#include "libraries/SubcriticalComponent.h"
+
+
+using Var = mc::FFVar;
+
+
+//////////////////////////////////////////////////////////////////////////
+// Model class to be passed to MAiNGO
+class Model_Henry_RS_IdealGasFlash: public maingo::MAiNGOmodel {
+
+  public:
+    Model_Henry_RS_IdealGasFlash();
+    maingo::EvaluationContainer evaluate(const std::vector<Var> &optVars);
+    std::vector<maingo::OptimizationVariable> get_variables();
+
+
+  private:
+    // Specify constant model parameters here:
+    double F, Tf, pf;
+    std::vector<double> z;
+    size_t ncompSubcritical, ncompHenry, ncomp;
+    std::vector<SubcriticalComponent<Var>> componentsSubcritical;
+    std::vector<HenryComponent<Var>> componentsHenry;
+    // Declare model variables here if desired:
+    std::vector<Var> ps, hig, deltahv, deltahsol, x, y, henry, K;
+    Var psi, hl, hv, Q, V, L, VbF, T, p, hf, sumX, sumY;
+};
+
+
+//////////////////////////////////////////////////////////////////////////
+// function for providing optimization variable data to the Branch-and-Bound solver
+std::vector<maingo::OptimizationVariable>
+Model_Henry_RS_IdealGasFlash::get_variables()
+{
+
+    std::vector<maingo::OptimizationVariable> variables;
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(0, 1), "V/F-1"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(300, 512), "T-1"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(1, 66.5), "p-1"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(1e-6, 1), "xH2-1"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(1e-6, 1), "xCO2-1"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(1e-6, 1), "xCO-1"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(1e-6, 1), "xMeOH-1"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(1e-6, 1), "xH2O-1"));
+    return variables;
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// constructor for the model
+Model_Henry_RS_IdealGasFlash::Model_Henry_RS_IdealGasFlash()
+{
+
+    // Initialize data if necessary:
+    // Component models:
+    componentsHenry.push_back(HenryComponent<Var>("H2", 2.01588, 273.15 - 252.76, 13.13, 64.147, 0, -1));
+    componentsHenry.push_back(HenryComponent<Var>("CO2", 44.0098, 273.15 + 31.06, 73.83, 94, -393.510, -1));
+    componentsHenry.push_back(HenryComponent<Var>("CO", 28.0104, 273.15 - 140.23, 34.99, 94.4, -110.530, -1));
+    componentsSubcritical.push_back(SubcriticalComponent<Var>("MeOH", 32.04, 512.5, 80.84, 117, -200.940, -1));
+    componentsSubcritical.push_back(SubcriticalComponent<Var>("Water", 18.0154, 647.096, 220.64, 55.9472, -241.818, -1));
+    ncompHenry       = componentsHenry.size();
+    ncompSubcritical = componentsSubcritical.size();
+    ncomp            = ncompSubcritical + ncompHenry;
+
+    // Henry component property parameters
+    // H2
+    componentsHenry[0].set_henry_model(HenryComponent<Var>::HENRY_ASPEN);
+    componentsHenry[0].add_henry_parameters(std::vector<double>{3, -61.4347, 1867.4, 12.643, -0.027187, 0});
+    componentsHenry[0].add_henry_parameters(std::vector<double>{4, 180.066, -6993.51, -26.3119, 0.0150431, 0});
+    componentsHenry[0].set_solvent_mixing_rule(HenryComponent<Var>::MIX_ASPEN, std::vector<double>{117, 55.9472});
+    componentsHenry[0].set_heat_capacity_model(HenryComponent<Var>::CPIG_DIPPR107, std::vector<double>{27.617, 9.56, 2466, 3.76, 567.6});
+    // CO2
+    componentsHenry[1].set_henry_model(HenryComponent<Var>::HENRY_ASPEN);
+    componentsHenry[1].add_henry_parameters(std::vector<double>{3, 15.4699, -3426.7, 1.5108, -0.025451, 0});
+    componentsHenry[1].add_henry_parameters(std::vector<double>{4, 159.865, -8741.55, -21.669, 0.00110259, 0});
+    componentsHenry[1].set_solvent_mixing_rule(HenryComponent<Var>::MIX_ASPEN, std::vector<double>{117, 55.9472});
+    componentsHenry[1].set_heat_capacity_model(HenryComponent<Var>::CPIG_DIPPR107, std::vector<double>{29.37, 34.54, 1428, 26.4, 588});
+    // CO
+    componentsHenry[2].set_henry_model(HenryComponent<Var>::HENRY_ASPEN);
+    componentsHenry[2].add_henry_parameters(std::vector<double>{3, 4.21187, 1144.4, 0, 0, 0});
+    componentsHenry[2].add_henry_parameters(std::vector<double>{4, 171.775, -8296.75, -23.3372, 0, 0});
+    componentsHenry[2].set_solvent_mixing_rule(HenryComponent<Var>::MIX_ASPEN, std::vector<double>{117, 55.9472});
+    componentsHenry[2].set_heat_capacity_model(HenryComponent<Var>::CPIG_DIPPR107, std::vector<double>{29.108, 8.773, 3085.1, 8.4553, 1538.2});
+    // Subcritical component property parameters
+    // Extended Antoine
+    componentsSubcritical[0].set_vapor_pressure_model(SubcriticalComponent<Var>::PVAP_XANTOINE, std::vector<double>{71.2051, -6904.5, 0.0, 0.0, -8.8622, 7.4664e-6, 2});
+    componentsSubcritical[1].set_vapor_pressure_model(SubcriticalComponent<Var>::PVAP_XANTOINE, std::vector<double>{62.1361, -7258.2, 0.0, 0.0, -7.3037, 4.1653e-6, 2});
+    // Enthalpy of vaporization
+    componentsSubcritical[0].set_enthalpy_of_vaporization_model(SubcriticalComponent<Var>::DHVAP_DIPPR106, std::vector<double>{32615, -1.0407, 1.8695, -0.60801, 0});
+    componentsSubcritical[1].set_enthalpy_of_vaporization_model(SubcriticalComponent<Var>::DHVAP_DIPPR106, std::vector<double>{56600, 0.61204, -0.6257, 0.3988, 0});
+    // Heat capacity
+    componentsSubcritical[0].set_heat_capacity_model(SubcriticalComponent<Var>::CPIG_DIPPR107, std::vector<double>{39.252, 87.9, 1916.5, 53.654, 896.7});
+    componentsSubcritical[1].set_heat_capacity_model(SubcriticalComponent<Var>::CPIG_DIPPR107, std::vector<double>{33.363, 26.79, 2610.5, 8.896, 1169});
+
+
+    // Resizing
+    ps.resize(ncomp);
+    hig.resize(ncomp);
+    deltahv.resize(ncomp);
+    deltahsol.resize(ncomp);
+    x.resize(ncomp);
+    y.resize(ncomp);
+    z.resize(ncomp);
+    henry.resize(ncomp);
+    K.resize(ncomp);
+
+
+    // Feed:
+    F    = 1;                                // [kmol/s]
+    Tf   = 250 + 273.15;                     // [K]
+    pf   = 66.5;                             // [bar]
+    z[0] = 0.644;                            // H2
+    z[1] = 0.195;                            // CO2
+    z[2] = 0.025;                            // CO
+    z[3] = 0.072;                            // MeOH
+    z[4] = 1 - z[0] - z[1] - z[2] - z[3];    // H2O
+
+    hf = 0;    // kJ/kmol
+    for (size_t i = 0; i < ncompHenry; ++i) {
+        Var higfi = componentsHenry[i].calculate_ideal_gas_enthalpy_conv(Tf);
+        hf += z[i] * higfi;
+    }
+    for (size_t i = 0; i < ncompSubcritical; ++i) {
+        Var higfi = componentsSubcritical[i].calculate_ideal_gas_enthalpy_conv(Tf);
+        hf += z[i + ncompHenry] * higfi;
+    }
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// Evaluate the model
+maingo::EvaluationContainer
+Model_Henry_RS_IdealGasFlash::evaluate(const std::vector<Var> &optVars)
+{
+
+    // Rename / prepare inputs
+
+    VbF = optVars[0];
+    T   = optVars[1];
+    p   = optVars[2];
+    for (size_t i = 0; i < ncomp; ++i) {
+        x[i] = optVars[3 + i];
+    }
+
+    // Model
+    // FLASH 1:
+    // 1. Overall mass balance
+    V = F * VbF;
+    L = F - V;
+    // 2. Calculate phase equilibrium residual & enthalpies
+    psi = 0, hl = 0, hv = 0, sumX = 0, sumY = 0;
+    for (size_t i = 0; i < ncompHenry; ++i) {
+
+        // Phase equilibrium
+        henry[i] = componentsHenry[i].calculate_henry_mixed(T, x);
+        K[i]     = henry[i] / p;
+        y[i]     = K[i] * x[i];
+        sumX += x[i];
+        sumY += y[i];
+        psi += x[i] - y[i];
+        // Enthalpies
+        hig[i]       = componentsHenry[i].calculate_ideal_gas_enthalpy_conv(T);
+        deltahsol[i] = componentsHenry[i].calculate_solution_enthalpy_mixed(T, x);
+        hv += y[i] * hig[i];
+        hl += x[i] * (hig[i] - deltahsol[i]);
+    }
+    for (unsigned i = 0; i < ncompSubcritical; i++) {
+
+        // Phase equilibrium
+        ps[i + ncompHenry] = componentsSubcritical[i].calculate_vapor_pressure_conv(T);
+        K[i + ncompHenry]  = ps[i + ncompHenry] / p;
+        y[i + ncompHenry]  = K[i + ncompHenry] * x[i + ncompHenry];
+        sumX += x[i + ncompHenry];
+        sumY += y[i + ncompHenry];
+        psi += x[i + ncompHenry] - y[i + ncompHenry];
+        // Enthalpies
+        hig[i + ncompHenry]     = componentsSubcritical[i].calculate_ideal_gas_enthalpy_conv(T);
+        deltahv[i + ncompHenry] = componentsSubcritical[i].calculate_vaporization_enthalpy_conv(T);
+        hv += y[i + ncompHenry] * hig[i + ncompHenry];
+        hl += x[i + ncompHenry] * (hig[i + ncompHenry] - deltahv[i + ncompHenry]);
+    }
+
+    // 3. Energy balance:
+    Q = V * hv + L * hl - F * hf;
+
+
+    // Prepare output
+    maingo::EvaluationContainer result; /*!< variable holding the actual result consisting of an objective, inequalities, equalities, relaxation only inequalities and relaxation only equalities */
+    // Objective:
+    result.objective = -L * x[3] / (F * z[3]);
+    // result.objective = V*y[3]/(F*z[3]);
+    // // Inequalities (<=0):
+    result.ineq.push_back((x[1] - 0.01) / 1e-2);
+
+    // // Equalities (=0):
+    for (size_t i = 0; i < ncomp; ++i) {
+        result.eq.push_back((z[i] - (VbF * y[i] + (1 - VbF) * x[i])) / 1.0);
+    }
+    result.eq.push_back((psi - 0.0) / 1.0);
+
+    result.eqRelaxationOnly.push_back((sumX - 1.0) / 1.0);
+    result.eqRelaxationOnly.push_back((sumY - 1.0) / 1.0);
+
+    // Additional Output:
+    result.output.push_back(maingo::OutputVariable("L", L));
+    result.output.push_back(maingo::OutputVariable("V", V));
+    result.output.push_back(maingo::OutputVariable("psi", psi));
+    result.output.push_back(maingo::OutputVariable("x[0]", x[0]));
+    result.output.push_back(maingo::OutputVariable("x[1]", x[1]));
+    result.output.push_back(maingo::OutputVariable("x[2]", x[2]));
+    result.output.push_back(maingo::OutputVariable("x[3]", x[3]));
+    result.output.push_back(maingo::OutputVariable("x[4]", x[4]));
+    result.output.push_back(maingo::OutputVariable("y[0]", y[0]));
+    result.output.push_back(maingo::OutputVariable("y[1]", y[1]));
+    result.output.push_back(maingo::OutputVariable("y[2]", y[2]));
+    result.output.push_back(maingo::OutputVariable("y[3]", y[3]));
+    result.output.push_back(maingo::OutputVariable("y[4]", y[4]));
+    result.output.push_back(maingo::OutputVariable("henry[0]", henry[0]));
+    result.output.push_back(maingo::OutputVariable("henry[1]", henry[1]));
+    result.output.push_back(maingo::OutputVariable("henry[2]", henry[2]));
+    result.output.push_back(maingo::OutputVariable("Fraction of MeOH lost", (V * y[3]) / (F * z[3])));
+    result.output.push_back(maingo::OutputVariable("hf", hf));
+    result.output.push_back(maingo::OutputVariable("hl", hl));
+    result.output.push_back(maingo::OutputVariable("hv", hv));
+    result.output.push_back(maingo::OutputVariable("Q", Q));
+
+    return result;
+}
diff --git a/tests/testProblems/problem_LP.h b/tests/testProblems/problem_LP.h
new file mode 100644
index 0000000000000000000000000000000000000000..9900a727186ee4db6679e8a9b03154b4f8b26f04
--- /dev/null
+++ b/tests/testProblems/problem_LP.h
@@ -0,0 +1,144 @@
+/**********************************************************************************
+ * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ **********************************************************************************/
+
+#pragma once
+
+#include "MAiNGOmodel.h"
+
+
+using Var = mc::FFVar;    // This allows us to write Var instead of mc::FFVar
+
+
+/**
+* @class Model
+* @brief Class defining the actual model implemented by the user
+*
+* This class is used by the user to implement the model
+*/
+class Model_LP: public maingo::MAiNGOmodel {
+
+  public:
+    /**
+    * @brief Default constructor
+    */
+    Model_LP();
+
+    /**
+    * @brief Main function used to evaluate the model and construct a directed acyclic graph
+    *
+    * @param[in] optVars is the optimization variables vector
+    * @param[in] writeAdditionalOutput defines whether to write additional output
+    */
+    maingo::EvaluationContainer evaluate(const std::vector<Var> &optVars);
+
+    /**
+    * @brief Function for getting optimization variables data
+    */
+    std::vector<maingo::OptimizationVariable> get_variables();
+
+    /**
+    * @brief Function for getting initial point data
+    */
+    std::vector<double> get_initial_point();
+
+  private:
+};
+
+
+//////////////////////////////////////////////////////////////////////////
+// function for providing optimization variable data to the Branch-and-Bound solver
+std::vector<maingo::OptimizationVariable>
+Model_LP::get_variables()
+{
+
+    std::vector<maingo::OptimizationVariable> variables;
+    // Required: Define optimization variables by specifying lower bound, upper bound (, optionally variable type, branching priority and a name)
+    // Continuous variables
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(0, 10000000000), maingo::VT_CONTINUOUS, "x1"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(0, 10000000000), maingo::VT_CONTINUOUS, "x2"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(0, 10000000000), maingo::VT_CONTINUOUS, "x3"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(0, 10000000000), maingo::VT_CONTINUOUS, "x4"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(0, 10000000000), maingo::VT_CONTINUOUS, "x5"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(0, 10000000000), maingo::VT_CONTINUOUS, "x6"));
+    // Binary variables
+    // Integer variables
+
+    return variables;
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// function for providing initial point data to the Branch-and-Bound solver
+std::vector<double>
+Model_LP::get_initial_point()
+{
+
+    // Here you can provide an initial point for the local search
+    std::vector<double> initialPoint;
+    // Continuous variables
+    initialPoint.push_back(0);
+    initialPoint.push_back(0);
+    initialPoint.push_back(0);
+    initialPoint.push_back(0);
+    initialPoint.push_back(0);
+    initialPoint.push_back(0);
+    // Binary variables
+    // Integer variables
+
+    return initialPoint;
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// constructor for the model
+Model_LP::Model_LP()
+{
+    // Initialize data if necessary:
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// Evaluate the model
+maingo::EvaluationContainer
+Model_LP::evaluate(const std::vector<Var> &optVars)
+{
+
+    // Rename  inputs
+    // Continuous variables
+    Var x1 = optVars[0];
+    Var x2 = optVars[1];
+    Var x3 = optVars[2];
+    Var x4 = optVars[3];
+    Var x5 = optVars[4];
+    Var x6 = optVars[5];
+    // Binary variables
+    // Integer variables
+
+    // Prepare output
+    maingo::EvaluationContainer result; /*!< variable holding the actual result consisting of an objective, inequalities, equalities, relaxation only inequalities and relaxation only equalities */
+    // Objective function
+    result.objective = -(-0.225 * x1 - 0.153 * x2 - 0.162 * x3 - 0.225 * x4 - 0.162 * x5 - 0.126 * x6);
+
+    // Inequalities (<=0)
+    result.ineq.push_back(x1 + x2 + x3 - (350));
+    result.ineq.push_back(x4 + x5 + x6 - (600));
+    result.ineq.push_back(-(x1 + x4) + (325));
+    result.ineq.push_back(-(x2 + x5) + (300));
+    result.ineq.push_back(-(x3 + x6) + (275));
+
+    // Equalities (=0)
+
+    // relaxation only inequalities (<=0):
+
+    // relaxation only equalities (=0):
+
+    return result;
+}
diff --git a/tests/testProblems/problem_MILP.h b/tests/testProblems/problem_MILP.h
new file mode 100644
index 0000000000000000000000000000000000000000..8f54d629f6d119b4715f998b1cc0e20e9d6b0af2
--- /dev/null
+++ b/tests/testProblems/problem_MILP.h
@@ -0,0 +1,129 @@
+/**********************************************************************************
+ * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ **********************************************************************************/
+
+#pragma once
+
+#include "MAiNGOmodel.h"
+
+
+using Var = mc::FFVar;    // This allows us to write Var instead of mc::FFVar
+
+
+/**
+* @class Model
+* @brief Class defining the actual model implemented by the user
+*
+* This class is used by the user to implement the model
+*/
+class Model_MILP: public maingo::MAiNGOmodel {
+
+  public:
+    /**
+    * @brief Default constructor
+    */
+    Model_MILP();
+
+    /**
+    * @brief Main function used to evaluate the model and construct a directed acyclic graph
+    *
+    * @param[in] optVars is the optimization variables vector
+    * @param[in] writeAdditionalOutput defines whether to write additional output
+    */
+    maingo::EvaluationContainer evaluate(const std::vector<Var> &optVars);
+
+    /**
+    * @brief Function for getting optimization variables data
+    */
+    std::vector<maingo::OptimizationVariable> get_variables();
+
+    /**
+    * @brief Function for getting initial point data
+    */
+    std::vector<double> get_initial_point();
+
+  private:
+};
+
+
+//////////////////////////////////////////////////////////////////////////
+// function for providing optimization variable data to the Branch-and-Bound solver
+std::vector<maingo::OptimizationVariable>
+Model_MILP::get_variables()
+{
+
+    std::vector<maingo::OptimizationVariable> variables;
+    // Required: Define optimization variables by specifying lower bound, upper bound (, optionally variable type, branching priority and a name)
+    // Continuous variables
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(0, 10000000000), maingo::VT_INTEGER, "x"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(0, 10000000000), maingo::VT_INTEGER, "y"));
+    // Binary variables
+    // Integer variables
+
+    return variables;
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// function for providing initial point data to the Branch-and-Bound solver
+std::vector<double>
+Model_MILP::get_initial_point()
+{
+
+    // Here you can provide an initial point for the local search
+    std::vector<double> initialPoint;
+    // Continuous variables
+    initialPoint.push_back(0);
+    initialPoint.push_back(0);
+    // Binary variables
+    // Integer variables
+
+    return initialPoint;
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// constructor for the model
+Model_MILP::Model_MILP()
+{
+
+    // Initialize data if necessary:
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// Evaluate the model
+maingo::EvaluationContainer
+Model_MILP::evaluate(const std::vector<Var> &optVars)
+{
+    // Prepare output
+    maingo::EvaluationContainer result; /*!< variable holding the actual result consisting of an objective, inequalities, equalities, relaxation only inequalities and relaxation only equalities */    // Rename  inputs
+    // Continuous variables
+    Var x = optVars[0];
+    Var y = optVars[1];
+    // Binary variables
+    // Integer variables
+
+    // Objective function
+    result.objective = -y;
+
+    // Inequalities (<=0)
+    result.ineq.push_back(-x + y - 1);
+    result.ineq.push_back(3 * x + 2 * y - 12);
+    result.ineq.push_back(2 * x + 3 * y - 12);
+
+    // Equalities (=0)
+
+    // relaxation only inequalities (<=0):
+
+    // relaxation only equalities (=0):
+
+    return result;
+}
diff --git a/tests/testProblems/problem_NRTL_RS_Flash.h b/tests/testProblems/problem_NRTL_RS_Flash.h
new file mode 100644
index 0000000000000000000000000000000000000000..f39740b42c1bcb7bfe9ae793baaa39bbbf791a3d
--- /dev/null
+++ b/tests/testProblems/problem_NRTL_RS_Flash.h
@@ -0,0 +1,245 @@
+/**********************************************************************************
+ * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ **********************************************************************************/
+
+#pragma once
+
+#include "MAiNGOmodel.h"
+#include "libraries/NRTL.h"
+#include "libraries/SubcriticalComponent.h"
+
+#define USENRTL
+
+
+using Var = mc::FFVar;
+
+
+//////////////////////////////////////////////////////////////////////////
+// Model class to be passed to MAiNGO
+class Model_NRTL_RS_Flash: public maingo::MAiNGOmodel {
+
+  public:
+    Model_NRTL_RS_Flash();
+    maingo::EvaluationContainer evaluate(const std::vector<Var> &optVars);
+    std::vector<maingo::OptimizationVariable> get_variables();
+
+
+  private:
+    // Constant model parameters:
+    double F, Tf, pf;
+    std::vector<double> z;
+    unsigned int ncomp;
+    std::vector<std::vector<double>> aNRTL, bNRTL, cNRTL;
+    // Declaration of model variables:
+    std::vector<SubcriticalComponent<Var>> components;
+    std::vector<Var> ps, hig, deltahv, x, y, gamma, K;
+    Var psi, hl, hv, Q, V, L, HE, VbF, T, p, hf, sumX, sumY;
+    NRTL NRTLmodel;
+};
+
+
+//////////////////////////////////////////////////////////////////////////
+// function for providing optimization variable data to the Branch-and-Bound solver
+std::vector<maingo::OptimizationVariable>
+Model_NRTL_RS_Flash::get_variables()
+{
+
+    std::vector<maingo::OptimizationVariable> variables;
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(0, 1), "V/F"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(200, 298), "T"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(1, 15), "p"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(1e-6, 1), "xMeOH"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(1e-6, 1), "xH2O"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(1e-6, 1), "xDME"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(1e-6, 1), "yMeOH"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(1e-6, 1), "yH2O"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(1e-6, 1), "yDME"));
+    // std::cout << "#variables: " << variables.size() << std::endl;
+
+    return variables;
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// constructor for the model
+Model_NRTL_RS_Flash::Model_NRTL_RS_Flash()
+{
+
+    // Initialize data if necessary:
+    // Pure component models:
+    components.push_back(SubcriticalComponent<Var>("MeOH", 32.04, 512.5, 80.84, 117, -200.93, -1));
+    components.push_back(SubcriticalComponent<Var>("Water", 18.0154, 647.1, 220.64, 56, -241.818, -1));
+    components.push_back(SubcriticalComponent<Var>("DME", 46.07, 400.1, 54.0, 164, -184.1, -1));
+    // Pure component property parameters
+    // Extended Antoine
+    components[0].set_vapor_pressure_model(SubcriticalComponent<Var>::PVAP_XANTOINE, std::vector<double>{71.2051, -6904.5, 0.0, 0.0, -8.8622, 7.4664e-6, 2});
+    components[1].set_vapor_pressure_model(SubcriticalComponent<Var>::PVAP_XANTOINE, std::vector<double>{62.1361, -7258.2, 0.0, 0.0, -7.3037, 4.1653e-6, 2});
+    components[2].set_vapor_pressure_model(SubcriticalComponent<Var>::PVAP_XANTOINE, std::vector<double>{51.72, -4020, 0.0, 0.0, -6.546, 9.44e-6, 2});
+    // Enthalpy of vaporization
+    components[0].set_enthalpy_of_vaporization_model(SubcriticalComponent<Var>::DHVAP_DIPPR106, std::vector<double>{32615, -1.0407, 1.8695, -0.60801, 0});
+    components[1].set_enthalpy_of_vaporization_model(SubcriticalComponent<Var>::DHVAP_DIPPR106, std::vector<double>{56600, 0.61204, -0.6257, 0.3988, 0});
+    components[2].set_enthalpy_of_vaporization_model(SubcriticalComponent<Var>::DHVAP_DIPPR106, std::vector<double>{26377, -0.072806, 0.54324, -0.13977, 0});
+    // Heat capacity
+    components[0].set_heat_capacity_model(SubcriticalComponent<Var>::CPIG_DIPPR107, std::vector<double>{39.252, 87.9, 1916.5, 53.654, 896.7});
+    components[1].set_heat_capacity_model(SubcriticalComponent<Var>::CPIG_DIPPR107, std::vector<double>{33.363, 26.79, 2610.5, 8.896, 1169});
+    components[2].set_heat_capacity_model(SubcriticalComponent<Var>::CPIG_DIPPR107, std::vector<double>{57.431, 94.494, 895.51, 65.065, 2467.4});
+    ncomp = components.size();
+    ps.resize(ncomp);
+    hig.resize(ncomp);
+    deltahv.resize(ncomp);
+    x.resize(ncomp);
+    y.resize(ncomp);
+    z.resize(ncomp);
+    K.resize(ncomp);
+    // NRTL Parameters; 0: MeOH, 1: H2O, 2: DME
+    NRTLpars tmpNRTLpars;
+    std::vector<std::vector<double>> tmpMatrix(ncomp, std::vector<double>(ncomp, 0.0));
+    tmpNRTLpars.a       = tmpMatrix;
+    tmpNRTLpars.b       = tmpMatrix;
+    tmpNRTLpars.c       = tmpMatrix;
+    tmpNRTLpars.d       = tmpMatrix;
+    tmpNRTLpars.e       = tmpMatrix;
+    tmpNRTLpars.f       = tmpMatrix;
+    tmpNRTLpars.a[0][1] = -0.693;
+    tmpNRTLpars.a[1][0] = 2.7322;
+    tmpNRTLpars.a[0][2] = 0.0;
+    tmpNRTLpars.a[2][0] = 0.0;
+    tmpNRTLpars.a[1][2] = 3.59543;
+    tmpNRTLpars.a[2][1] = -0.223052;
+
+    tmpNRTLpars.b[0][1] = 172.987;
+    tmpNRTLpars.b[1][0] = -617.269;
+    tmpNRTLpars.b[0][2] = 653.006;
+    tmpNRTLpars.b[2][0] = -18.9372;
+    tmpNRTLpars.b[1][2] = -550.5;
+    tmpNRTLpars.b[2][1] = 611.456;
+
+    tmpNRTLpars.c[0][1] = 0.3;
+    tmpNRTLpars.c[1][0] = 0.3;
+    tmpNRTLpars.c[0][2] = 0.2951;
+    tmpNRTLpars.c[2][0] = 0.2951;
+    tmpNRTLpars.c[1][2] = 0.362916;
+    tmpNRTLpars.c[2][1] = 0.362916;
+    NRTLmodel.setPars<Var>(tmpNRTLpars);
+
+    // Feed:
+    F    = 1;                  // [kmol/s]
+    Tf   = 72 + 273.15;        // [K]
+    pf   = 15;                 // [bar]
+    z[0] = 0.1668;             // MeOH
+    z[2] = 0.4161;             // DME
+    z[1] = 1 - z[0] - z[2];    // H2O
+    hf   = 0.;
+    for (unsigned int i = 0; i < ncomp; i++) {
+        Var higfi     = components[i].calculate_ideal_gas_enthalpy_conv(Tf);
+        Var deltahvfi = components[i].calculate_vaporization_enthalpy_conv(Tf);
+        hf += z[i] * (higfi - deltahvfi);
+    }
+#ifdef USENRTL
+    hf += NRTLmodel.calculateHE<double>(Tf, z);
+#endif
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// Evaluate the model
+maingo::EvaluationContainer
+Model_NRTL_RS_Flash::evaluate(const std::vector<Var> &optVars)
+{
+
+
+    // Rename / prepare inputs
+    VbF = optVars[0];
+    T   = optVars[1];
+    p   = optVars[2];
+    for (size_t i = 0; i < ncomp; ++i) {
+        x[i] = optVars[3 + i];
+    }
+    for (size_t i = 0; i < ncomp; ++i) {
+        y[i] = optVars[3 + ncomp + i];
+    }
+
+
+    // Model
+    // FLASH:
+    // 1. Overall mass balance
+    V = F * VbF;
+    L = F - V;
+    // 2. Calculate phase equilibrium residual & enthalpies
+#ifdef USENRTL
+    gamma = NRTLmodel.calculateGamma<Var>(T, x);
+    HE    = NRTLmodel.calculateHE<Var>(T, x);
+#endif
+    psi = 0, hl = 0, hv = 0, sumX = 0, sumY = 0;
+    for (unsigned i = 0; i < ncomp; i++) {
+        // Phase equilibrium
+        ps[i] = components[i].calculate_vapor_pressure_conv(T);
+#ifdef USENRTL
+        K[i] = gamma[i] * ps[i] / p;
+#else
+        K[i] = ps[i] / p;
+#endif
+        psi += y[i] - x[i];
+        sumX += x[i];
+        sumY += y[i];
+        // Enthalpies
+        hig[i]     = components[i].calculate_ideal_gas_enthalpy_conv(T);
+        deltahv[i] = components[i].calculate_vaporization_enthalpy_conv(T);
+        hv += y[i] * hig[i];
+        hl += x[i] * (hig[i] - deltahv[i]);
+    }
+#ifdef USENRTL
+    hl += HE;
+#endif
+    // 3. Energy balance:
+    Q = V * hv + L * hl - F * hf;
+
+    // Prepare output
+    maingo::EvaluationContainer result; /*!< variable holding the actual result consisting of an objective, inequalities, equalities, relaxation only inequalities and relaxation only equalities */
+    // Objective:
+    result.objective = -Q;
+    // Inequalities (<=0):
+    result.ineq.push_back((0.99 - y[2]) / 1.0);
+    // Equalities (=0):
+    for (unsigned int i = 0; i < ncomp; i++) {
+        result.eq.push_back((F * z[i] - (V * y[i] + L * x[i])) / 1.0);
+        result.eq.push_back((y[i] - (K[i] * x[i])) / 1.0);
+    }
+    result.eq.push_back((psi - 0.0) / 1.0);
+
+    result.eqRelaxationOnly.push_back(sumX - 1.0);
+    result.eqRelaxationOnly.push_back(sumY - 1.0);
+
+    // Additional Output:
+    result.output.push_back(maingo::OutputVariable("L", L));
+    result.output.push_back(maingo::OutputVariable("V", V));
+    result.output.push_back(maingo::OutputVariable("psi", psi));
+    result.output.push_back(maingo::OutputVariable("sumX", sumX));
+    result.output.push_back(maingo::OutputVariable("sumY", sumY));
+    result.output.push_back(maingo::OutputVariable("Fraction of DME lost", L * x[2] / (F * z[2])));
+    result.output.push_back(maingo::OutputVariable("Q [kW]", Q));
+    result.output.push_back(maingo::OutputVariable("ps[0]", ps[0]));
+    result.output.push_back(maingo::OutputVariable("ps[1]", ps[1]));
+    result.output.push_back(maingo::OutputVariable("ps[2]", ps[2]));
+    result.output.push_back(maingo::OutputVariable("hf", hf));
+    result.output.push_back(maingo::OutputVariable("hv", hv));
+    result.output.push_back(maingo::OutputVariable("hl", hl));
+    result.output.push_back(maingo::OutputVariable("hig[0]", hig[0]));
+    result.output.push_back(maingo::OutputVariable("hig[1]", hig[1]));
+    result.output.push_back(maingo::OutputVariable("hig[2]", hig[2]));
+    result.output.push_back(maingo::OutputVariable("deltahv[0]", deltahv[0]));
+    result.output.push_back(maingo::OutputVariable("deltahv[1]", deltahv[1]));
+    result.output.push_back(maingo::OutputVariable("deltahv[2]", deltahv[2]));
+
+    // std::cout << "#ineq: " << result.ineq.size() << std::endl;
+    // std::cout << "#eq: " << result.eq.size() << std::endl;
+
+    return result;
+}
diff --git a/tests/testProblems/problem_OME_RS_IdealGasFlash.h b/tests/testProblems/problem_OME_RS_IdealGasFlash.h
new file mode 100644
index 0000000000000000000000000000000000000000..24a3c21df602b81c90a8967c5643b53c12721f51
--- /dev/null
+++ b/tests/testProblems/problem_OME_RS_IdealGasFlash.h
@@ -0,0 +1,228 @@
+/**********************************************************************************
+ * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ **********************************************************************************/
+
+#pragma once
+
+#include "MAiNGOmodel.h"
+#include "libraries/SubcriticalComponent.h"
+
+
+using Var = mc::FFVar;
+
+
+//////////////////////////////////////////////////////////////////////////
+// Model class to be passed to MAiNGO
+class Model_OME_RS_IdealGasFlash: public maingo::MAiNGOmodel {
+
+  public:
+    Model_OME_RS_IdealGasFlash();
+    maingo::EvaluationContainer evaluate(const std::vector<Var> &optVars);
+    std::vector<maingo::OptimizationVariable> get_variables();
+
+
+  private:
+    // Constant model parameters:
+    double F, Tf, pf;
+    std::vector<double> z;
+    unsigned int ncomp;
+    // Declaration of model variables:
+    std::vector<SubcriticalComponent<Var>> components;
+    std::vector<Var> ps, hig, deltahv, dhpliq, x, y, K;
+    Var psi, hl, hv, Q, V, L, VbF, T, p, hf;
+};
+
+
+//////////////////////////////////////////////////////////////////////////
+// function for providing optimization variable data to the Branch-and-Bound solver
+std::vector<maingo::OptimizationVariable>
+Model_OME_RS_IdealGasFlash::get_variables()
+{
+
+    std::vector<maingo::OptimizationVariable> variables;
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(0, 1), "V/F"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(318, 523), "T"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(0.1, 1), "p"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(0, 1), "x-0"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(0, 1), "x-1"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(0, 1), "x-2"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(0, 1), "x-3"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(0, 1), "x-4"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(0, 1), "x-5"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(0, 1), "x-6"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(0, 1), "x-7"));
+
+    return variables;
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// constructor for the model
+Model_OME_RS_IdealGasFlash::Model_OME_RS_IdealGasFlash()
+{
+
+    // Initialize data if necessary:
+    // Pure component models:
+    components.push_back(SubcriticalComponent<Var>("OME3", 136.147, 603.4, -1, -1, -1, -1));
+    components.push_back(SubcriticalComponent<Var>("OME4", 166.173, 646.9, -1, -1, -1, -1));
+    components.push_back(SubcriticalComponent<Var>("OME5", 196.199, 683.7, -1, -1, -1, -1));
+    components.push_back(SubcriticalComponent<Var>("OME6", 226.225, 714.8, -1, -1, -1, -1));
+    components.push_back(SubcriticalComponent<Var>("OME7", 256.251, 743.0, -1, -1, -1, -1));
+    components.push_back(SubcriticalComponent<Var>("OME8", 286.277, 769.2, -1, -1, -1, -1));
+    components.push_back(SubcriticalComponent<Var>("OME9", 316.303, 794.6, -1, -1, -1, -1));
+    components.push_back(SubcriticalComponent<Var>("OME10", 346.329, 819.9, -1, -1, -1, -1));
+    ncomp = components.size();
+    ps.resize(ncomp);
+    hig.resize(ncomp);
+    deltahv.resize(ncomp);
+    dhpliq.resize(ncomp);
+    x.resize(ncomp);
+    y.resize(ncomp);
+    z.resize(ncomp);
+    K.resize(ncomp);
+    // Pure component property parameters
+    // Extended Antoine [bar,K]
+    components[0].set_vapor_pressure_model(SubcriticalComponent<Var>::PVAP_XANTOINE, std::vector<double>{63.682, -8042.31, 0, 0, -7.4100, 0, 1});
+    components[1].set_vapor_pressure_model(SubcriticalComponent<Var>::PVAP_XANTOINE, std::vector<double>{81.214, -10017.28, 0, 0, -9.7511, 0, 1});
+    components[2].set_vapor_pressure_model(SubcriticalComponent<Var>::PVAP_XANTOINE, std::vector<double>{86.939, -11323.17, 0, 0, -10.3994, 0, 1});
+    components[3].set_vapor_pressure_model(SubcriticalComponent<Var>::PVAP_XANTOINE, std::vector<double>{93.494, -12720.0, 0, 0, -11.1491, 0, 1});
+    components[4].set_vapor_pressure_model(SubcriticalComponent<Var>::PVAP_XANTOINE, std::vector<double>{99.812, -14090.9, 0, 0, -11.8697, 0, 1});
+    components[5].set_vapor_pressure_model(SubcriticalComponent<Var>::PVAP_XANTOINE, std::vector<double>{106.13, -15462, 0, 0, -12.5903, 0, 1});
+    components[6].set_vapor_pressure_model(SubcriticalComponent<Var>::PVAP_XANTOINE, std::vector<double>{112.448, -16833, 0, 0, -13.3109, 0, 1});
+    components[7].set_vapor_pressure_model(SubcriticalComponent<Var>::PVAP_XANTOINE, std::vector<double>{118.766, -18204, 0, 0, -14.0315, 0, 1});
+    // DIPPR106 [kJ/kmol,K]
+    components[0].set_enthalpy_of_vaporization_model(SubcriticalComponent<Var>::DHVAP_DIPPR106, std::vector<double>{58.545 * 1000, 0.29380, 0, 0, 0});
+    components[1].set_enthalpy_of_vaporization_model(SubcriticalComponent<Var>::DHVAP_DIPPR106, std::vector<double>{72.458 * 1000, 0.36130, 0, 0, 0});
+    components[2].set_enthalpy_of_vaporization_model(SubcriticalComponent<Var>::DHVAP_DIPPR106, std::vector<double>{81.911 * 1000, 0.35950, 0, 0, 0});
+    components[3].set_enthalpy_of_vaporization_model(SubcriticalComponent<Var>::DHVAP_DIPPR106, std::vector<double>{92.022 * 1000, 0.35810, 0, 0, 0});
+    components[4].set_enthalpy_of_vaporization_model(SubcriticalComponent<Var>::DHVAP_DIPPR106, std::vector<double>{101.940 * 1000, 0.35750, 0, 0, 0});
+    components[5].set_enthalpy_of_vaporization_model(SubcriticalComponent<Var>::DHVAP_DIPPR106, std::vector<double>{111.860 * 1000, 0.35800, 0, 0, 0});
+    components[6].set_enthalpy_of_vaporization_model(SubcriticalComponent<Var>::DHVAP_DIPPR106, std::vector<double>{121.760 * 1000, 0.36000, 0, 0, 0});
+    components[7].set_enthalpy_of_vaporization_model(SubcriticalComponent<Var>::DHVAP_DIPPR106, std::vector<double>{131.660 * 1000, 0.36360, 0, 0, 0});
+    // Heat capacity - DIPPR107 [kJ/kmolK,K]
+    components[0].set_heat_capacity_model(PureComponent<Var>::CPIG_DIPPR107, std::vector<double>{112.74, 277.19, -769.63, 0, 0});
+    components[1].set_heat_capacity_model(PureComponent<Var>::CPIG_DIPPR107, std::vector<double>{130.39, 338.31, -758.08, 0, 0});
+    components[2].set_heat_capacity_model(PureComponent<Var>::CPIG_DIPPR107, std::vector<double>{147.95, 399.59, -750.07, 0, 0});
+    components[3].set_heat_capacity_model(PureComponent<Var>::CPIG_DIPPR107, std::vector<double>{165.45, 460.97, -744.20, 0, 0});
+    components[4].set_heat_capacity_model(PureComponent<Var>::CPIG_DIPPR107, std::vector<double>{182.91, 522.41, -739.71, 0, 0});
+    components[5].set_heat_capacity_model(PureComponent<Var>::CPIG_DIPPR107, std::vector<double>{200.34, 583.89, -736.16, 0, 0});
+    components[6].set_heat_capacity_model(PureComponent<Var>::CPIG_DIPPR107, std::vector<double>{217.75, 645.40, -733.29, 0, 0});
+    components[7].set_heat_capacity_model(PureComponent<Var>::CPIG_DIPPR107, std::vector<double>{235.15, 706.94, -730.91, 0, 0});
+
+
+    // Feed:
+    F    = 1;                                                     // [kmol/s]
+    Tf   = 458;                                                   // [K]
+    pf   = 1;                                                     // [bar]
+    z[0] = 0.30;                                                  // OME3
+    z[1] = 0.24;                                                  // OME4
+    z[2] = 0.17;                                                  // OME5
+    z[3] = 0.11;                                                  // OME6
+    z[4] = 0.08;                                                  // OME7
+    z[5] = 0.05;                                                  // OME8
+    z[6] = 0.03;                                                  // OME9
+    z[7] = 1 - z[0] - z[1] - z[2] - z[3] - z[4] - z[5] - z[6];    // OME10
+    hf   = 0;                                                     // kJ/kmol
+    for (unsigned int i = 0; i < ncomp; i++) {
+        Var deltahvfi = components[i].calculate_vaporization_enthalpy_conv(Tf);
+        Var higfi     = components[i].calculate_ideal_gas_enthalpy_conv(Tf);
+        hf += z[i] * (higfi - deltahvfi);
+    }
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// Evaluate the model
+maingo::EvaluationContainer
+Model_OME_RS_IdealGasFlash::evaluate(const std::vector<Var> &optVars)
+{
+
+
+    // Rename / prepare inputs
+    VbF = optVars[0];
+    T   = optVars[1];
+    p   = optVars[2];
+    for (size_t i = 0; i < ncomp; ++i) {
+        x[i] = optVars[3 + i];
+    }
+
+
+    // Model
+    // FLASH:
+    // 1. Overall mass balance
+    V = F * VbF;
+    L = F - V;
+    // 2. Calculate phase equilibrium residual & enthalpies
+    psi = 0, hl = 0, hv = 0;
+    Var sumX(0), sumY(0);
+    // Var tmpQ(0);
+    for (unsigned i = 0; i < ncomp; i++) {
+        // Phase equilibrium
+        ps[i]      = components[i].calculate_vapor_pressure_conv(T);
+        hig[i]     = components[i].calculate_ideal_gas_enthalpy_conv(T);
+        deltahv[i] = components[i].calculate_vaporization_enthalpy_conv(T);
+        K[i]       = ps[i] / p;
+        psi += x[i];
+        sumX += x[i];
+        y[i] = K[i] * x[i];
+        psi -= y[i];
+        sumY += y[i];
+        // Enthalpies
+        hv += y[i] * hig[i];
+        hl += x[i] * (hig[i] - deltahv[i]);
+    }
+    // 3. Energy balance:
+    Q = V * hv + L * hl - F * hf;
+
+    // Prepare output
+    maingo::EvaluationContainer result; /*!< variable holding the actual result consisting of an objective, inequalities, equalities, relaxation only inequalities and relaxation only equalities */
+    // Objective:
+    result.objective = -V * (y[0] + y[1] + y[2]);
+    // Inequalities (<=0):
+    result.ineq.push_back((0.98 - (y[0] + y[1] + y[2])) / 1.0);
+    // Equalities (=0):
+    result.eq.push_back(psi / 1.0);
+    result.eq.push_back((0 - Q) / 1);
+    for (size_t i = 0; i < ncomp; ++i) {
+        result.eq.push_back(((F * z[i]) - (V * y[i] + L * x[i])) / 1.0);
+    }
+
+    result.eqRelaxationOnly.push_back((1.0 - sumX) / 1.0);
+    result.eqRelaxationOnly.push_back((1.0 - sumY) / 1.0);
+    // result.eq.push_back( (1.0-sumX)/1.0 );
+    // result.eq.push_back( (1.0-sumY)/1.0 );
+
+    // Additional Output:
+    result.output.push_back(maingo::OutputVariable("L", L));
+    result.output.push_back(maingo::OutputVariable("V", V));
+    result.output.push_back(maingo::OutputVariable("psi", psi));
+    result.output.push_back(maingo::OutputVariable("VbF", VbF));
+    result.output.push_back(maingo::OutputVariable("x[0]", x[0]));
+    result.output.push_back(maingo::OutputVariable("x[1]", x[1]));
+    result.output.push_back(maingo::OutputVariable("x[2]", x[2]));
+    result.output.push_back(maingo::OutputVariable("x[3]", x[3]));
+    result.output.push_back(maingo::OutputVariable("x[4]", x[4]));
+    result.output.push_back(maingo::OutputVariable("x[5]", x[5]));
+    result.output.push_back(maingo::OutputVariable("x[6]", x[6]));
+    result.output.push_back(maingo::OutputVariable("x[7]", x[7]));
+    result.output.push_back(maingo::OutputVariable("y[0]", y[0]));
+    result.output.push_back(maingo::OutputVariable("y[1]", y[1]));
+    result.output.push_back(maingo::OutputVariable("y[2]", y[2]));
+    result.output.push_back(maingo::OutputVariable("y[3]", y[3]));
+    result.output.push_back(maingo::OutputVariable("y[4]", y[4]));
+    result.output.push_back(maingo::OutputVariable("y[5]", y[5]));
+    result.output.push_back(maingo::OutputVariable("y[6]", y[6]));
+    result.output.push_back(maingo::OutputVariable("y[7]", y[7]));
+    result.output.push_back(maingo::OutputVariable("Mole fraction of OME3-5 in vapor:", y[0] + y[1] + y[2]));
+    result.output.push_back(maingo::OutputVariable("Fraction of OME3-5 recovered:", V * (y[0] + y[1] + y[2]) / (F * (z[0] + z[1] + z[2]))));
+    result.output.push_back(maingo::OutputVariable("Q [kW]", Q));
+
+    return result;
+}
diff --git a/tests/testProblems/problem_bin1.h b/tests/testProblems/problem_bin1.h
new file mode 100644
index 0000000000000000000000000000000000000000..6e68edc46925a0f4dfed5fad61db17c2c697fbdc
--- /dev/null
+++ b/tests/testProblems/problem_bin1.h
@@ -0,0 +1,103 @@
+/**********************************************************************************
+ * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * @brief File containing a testcase for VT_BINARY. Correct binary solution: (0,0).
+ *         Integer solution = continuous solution: (1,2).
+ *
+ **********************************************************************************/
+
+#pragma once
+
+#include "MAiNGOmodel.h"
+
+
+using Var = mc::FFVar;    // This allows us to write Var instead of mc::FFVar
+
+/**
+* @class Model
+* @brief Class defining the actual model implemented by the user
+*
+* This class is used by the user to implement the model
+*/
+class Model_bin1: public maingo::MAiNGOmodel {
+
+  public:
+    /**
+        * @brief Default constructor
+        */
+    Model_bin1();
+
+    /**
+    * @brief Main function used to evaluate the model and construct a directed acyclic graph
+    *
+    * @param[in] optVars is the optimization variables vector
+    * @param[in] writeAdditionalOutput defines whether to write additional output
+    */
+    maingo::EvaluationContainer evaluate(const std::vector<Var> &optVars);
+
+    /**
+    * @brief Function for getting optimization variables data
+    */
+    std::vector<maingo::OptimizationVariable> get_variables();
+
+    /**
+    * @brief Function for getting initial point data
+    */
+    std::vector<double> get_initial_point();
+
+  private:
+};
+
+
+//////////////////////////////////////////////////////////////////////////
+// function for providing optimization variable data to the Branch-and-Bound solver
+std::vector<maingo::OptimizationVariable>
+Model_bin1::get_variables()
+{
+
+    std::vector<maingo::OptimizationVariable> variables;
+    // Required: Define optimization variables by specifying lower bound, upper bound (, optionally variable type, branching priority and a name)
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(0, 1), maingo::VT_BINARY, "x"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(0, 1), maingo::VT_BINARY, "y"));
+
+    return variables;
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// function for providing initial point data to the Branch-and-Bound solver
+std::vector<double>
+Model_bin1::get_initial_point()
+{
+    // Here you can provide an initial point for the local search
+    std::vector<double> initialPoint;
+    return initialPoint;
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// constructor for the model
+Model_bin1::Model_bin1() {}
+
+//////////////////////////////////////////////////////////////////////////
+// Evaluate the model
+maingo::EvaluationContainer
+Model_bin1::evaluate(const std::vector<Var> &optVars)
+{
+    // Rename  inputs
+    Var x = optVars[0];
+    Var y = optVars[1];
+
+    // Prepare output
+    maingo::EvaluationContainer result; /*!< variable holding the actual result consisting of an objective, inequalities, equalities, relaxation only inequalities and relaxation only equalities */
+    // Objective
+    result.objective = exp(4.5 * pow(x, 2) - 5 * x * y + pow(y, 2));
+
+    return result;
+}
diff --git a/tests/testProblems/problem_case1_lcoe.h b/tests/testProblems/problem_case1_lcoe.h
new file mode 100644
index 0000000000000000000000000000000000000000..8be01d5465d2fa47b297092af7fbde1bf477dfba
--- /dev/null
+++ b/tests/testProblems/problem_case1_lcoe.h
@@ -0,0 +1,220 @@
+/**********************************************************************************
+ * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ **********************************************************************************/
+
+#pragma once
+
+#include "MAiNGOmodel.h"
+#include "libraries/Ideal2pStream.h"
+#include "libraries/IdealGasStream.h"
+#include "libraries/IdealLiquidStream.h"
+//Case Study I minimizing LCOE
+//dobo Paper: Deterministic global optimization of process flowsheets in a reduced space using McCormick relaxations
+
+using U = mc::FFVar;
+using namespace maingo;
+
+
+//////////////////////////////////////////////////////////////////////////
+// Model class:
+class Model_case1_lcoe: public MAiNGOmodel {
+  public:
+    Model_case1_lcoe();
+    EvaluationContainer evaluate(const std::vector<U>& x);
+    std::vector<OptimizationVariable> get_variables();
+    std::vector<double> get_initial_point();
+
+  private:
+    // Specify constant Model parameters here:
+    const double p0, vif, etap, etat, deltahv, cpig, cif, R, A, B, C, Tmax, mcp, TGin, TGout, deltaTap, xmin, p1, kEco, kEvap, kSH, kCond, k1A, k2A, k3A, c1A, c2A, c3A, FmA, B1A, B2A, Tcin, Tcout;
+    const double Inv_GT, Work_GT, Fuel_heat, Fuel_cost, f_phi, f_annu, Teq, Varcost;
+    double T0;
+    U zero, Amin, eps, deltaTmin;
+    // Declare Model variables here if desired:
+    IdealLiquidStream S1, S2, S3;
+    IdealGasStream S4, S5;
+    Ideal2pStream S6, S6s;
+};
+
+
+//////////////////////////////////////////////////////////////////////////
+// free function for providing initialization data to the Branch-and-Bound solver
+std::vector<OptimizationVariable>
+Model_case1_lcoe::get_variables()
+{
+
+    std::vector<maingo::OptimizationVariable> variables;
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(3, 100), "p2"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(5, 100), "mdot"));
+
+    return variables;
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// function for providing initial point data to the Branch-and-Bound solver
+std::vector<double>
+Model_case1_lcoe::get_initial_point()
+{
+
+    //here you can provide an initial point for the local search
+    std::vector<double> initialPoint;
+    //initialPoint.push_back(3);
+    //initialPoint.push_back(-3);
+
+    return initialPoint;
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// Constructor for the Model
+Model_case1_lcoe::Model_case1_lcoe():
+    p0(10e-3), vif(1e-3), etap(0.8), etat(0.9), deltahv(2480), cpig(2.08), cif(4.18), R(0.462), A(3.55959), B(643.748), C(-198.043), Tmax(873), mcp(200), TGin(900), TGout(448), deltaTmin(15), deltaTap(10), xmin(0.85), p1(0.2),
+    kEco(0.06), kEvap(0.06), kSH(0.03), kCond(0.35), k1A(4.3247), k2A(-0.303), k3A(0.1634), c1A(0.03881), c2A(-0.11272), c3A(0.08183), FmA(2.75), B1A(1.63), B2A(1.66), Tcin(298), Tcout(303),
+    Inv_GT(22.7176e6), Work_GT(69676), Fuel_heat(182359), Fuel_cost(14), f_phi(1.06), f_annu(0.1875), Teq(4000), Varcost(4), Amin(10), eps(1e-16), zero(0)
+{
+    // Initialize data if necessary:
+    T0 = B / (A - log(p0) / log(10.0)) - C;
+    IdealFluid water(cpig, cif, R, vif, A, B, C, deltahv, deltahv / T0);
+    S1  = IdealLiquidStream(water, p0, T0);
+    S2  = IdealLiquidStream(water, p0, T0);
+    S3  = IdealLiquidStream(water, p0, T0);
+    S4  = IdealGasStream(water, p0, T0);
+    S5  = IdealGasStream(water, p0, T0);
+    S6  = Ideal2pStream(water, p0, T0);
+    S6s = Ideal2pStream(water, p0, T0);
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// Evaluate the Model
+maingo::EvaluationContainer
+Model_case1_lcoe::evaluate(const std::vector<U>& currentPoint)
+{    // <-- Specify Model equations
+    // Rename inputs
+    U p2   = currentPoint[0];
+    U mdot = currentPoint[1];
+
+    // Model
+    // Condenser outlet
+    S1.set_px(p1);
+    // Feedwater Pump
+    U wp        = vif * (p2 - p1) * 100 / etap;
+    U Work_Pump = mdot * wp;
+    Work_Pump   = max(eps, Work_Pump);
+    S2.set_ph(p2, (S1.get_h() + wp));
+    // Boiler
+    // Overall balance
+    U Qzu = mcp * (TGin - TGout);
+    S5.set_ph(p2, (S2.get_h() + Qzu / mdot));
+    // Superheater
+    S4.set_px(p2);
+    U Q_SH = mdot * (S5.get_h() - S4.get_h());
+    U TG2  = TGin - Q_SH / mcp;
+    // Evaporator
+    S3.set_pT(p2, (S2.get_Ts() - deltaTap));
+    U Q_Eco  = mdot * (S3.get_h() - S2.get_h());
+    U TG3    = TGout + Q_Eco / mcp;
+    U Q_Evap = Qzu - Q_SH - Q_Eco;
+    // Turbine
+    S6s.set_ps(p1, S5.get_s());
+    U wt        = etat * (S5.get_h() - S6s.get_h());
+    U Work_Turb = mdot * wt;
+    Work_Turb   = max(eps, Work_Turb);
+    S6.set_ph(p1, (S5.get_h() - wt));
+    U Work_net = Work_Turb - Work_Pump;
+    Work_net   = max(eps, Work_net);
+    U eta_ST   = Work_net / Qzu;
+    // Condenser
+    U Q_Cond = mdot * (S6.get_h() - S1.get_h());
+
+    // Investment cost
+    // Condenser
+    U dT1 = S6.get_T() - Tcout;
+    U dT2 = S1.get_T() - Tcin;
+    dT1   = max(deltaTmin, dT1) + zero * mdot;
+    dT2   = max(deltaTmin, dT2) + zero * mdot;
+    //U LMTD = pow(dT1*dT2*(dT1+dT2)/2,0.33333333333333);
+    U LMTD     = lmtd(dT1, dT2);
+    U A_Cond   = Q_Cond / (kCond * LMTD);
+    A_Cond     = max(0.9 * Amin, A_Cond) + zero * mdot;
+    U Cp0      = pow(10., k1A + k2A * log(A_Cond) / log(10.0) + k3A * pow(log(A_Cond) / log(10.0), 2));
+    U Fp       = 1.0;
+    U Inv_Cond = 1.18 * (B1A + B2A * FmA * Fp) * Cp0;
+    // Pump
+    U Inv_Pump = 3540 * pow(Work_Pump, 0.71);
+    // Turbine incl. generator
+    U Inv_Turb = 6000 * pow(Work_Turb, 0.7) + 60 * pow(Work_Turb, 0.95);
+    // Economizer
+    dT1 = TGout - S2.get_T();
+    dT2 = TG3 - S3.get_T();
+    dT1 = max(deltaTmin, dT1) + zero * mdot;
+    dT2 = max(deltaTmin, dT2) + zero * mdot;
+    //LMTD = pow(dT1*dT2*(dT1+dT2)/2,0.33333333333333);
+    LMTD      = lmtd(dT1, dT2);
+    U A_Eco   = Q_Eco / (kEco * LMTD);
+    A_Eco     = max(0.9 * Amin, A_Eco) + zero * mdot;
+    Cp0       = pow(10., k1A + k2A * log(A_Eco) / log(10.0) + k3A * pow(log(A_Eco) / log(10.0), 2));
+    Fp        = pow(10., c1A + c2A * log(p2) / log(10.0) + c3A * pow(log(p2) / log(10.0), 2));
+    U Inv_Eco = 1.18 * (B1A + B2A * FmA * Fp) * Cp0;
+    // Evaporator
+    dT1 = TG3 - S4.get_T();
+    dT2 = TG2 - S4.get_T();
+    dT1 = max(deltaTmin, dT1) + zero * mdot;
+    dT2 = max(deltaTmin, dT2) + zero * mdot;
+    //LMTD = pow(dT1*dT2*(dT1+dT2)/2,0.33333333333333);
+    LMTD       = lmtd(dT1, dT2);
+    U A_Evap   = Q_Evap / (kEvap * LMTD);
+    A_Evap     = max(0.9 * Amin, A_Evap) + zero * mdot;
+    Cp0        = pow(10., k1A + k2A * log(A_Evap) / log(10.0) + k3A * pow(log(A_Evap) / log(10.0), 2));
+    U Inv_Evap = 1.18 * (B1A + B2A * FmA * Fp) * Cp0;
+    // Superheater
+    dT1 = dT2;
+    dT2 = TGin - S5.get_T();
+    dT1 = max(deltaTmin, dT1) + zero * mdot;
+    dT2 = max(deltaTmin, dT2) + zero * mdot;
+    //LMTD = pow(dT1*dT2*(dT1+dT2)/2,0.33333333333333);
+    LMTD     = lmtd(dT1, dT2);
+    U A_SH   = Q_SH / (kSH * LMTD);
+    A_SH     = max(0.9 * Amin, A_SH) + zero * mdot;
+    Cp0      = pow(10., k1A + k2A * log(A_SH) / log(10.0) + k3A * pow(log(A_SH) / log(10.0), 2));
+    U Inv_SH = 1.18 * (B1A + B2A * FmA * Fp) * Cp0;
+    // Cycle
+    U Inv = Inv_Cond + Inv_Pump + Inv_Eco + Inv_Evap + Inv_SH + Inv_Turb;
+
+    // Combined Cycle Plant
+    U Work_Total = Work_net + Work_GT;
+    U eta_CC     = Work_Total / Fuel_heat;
+    U Inv_Total  = Inv + Inv_GT;
+    U CAPEX      = Inv_Total * f_phi * f_annu / (Work_Total / 1000 * Teq);
+    U OPEX       = Fuel_cost / eta_CC;
+    U LCOE       = CAPEX + OPEX + Varcost;
+
+
+    // Prepare output
+    maingo::EvaluationContainer result; /*!< variable holding the actual result consisting of an objective, inequalities, equalities, relaxation only inequalities and relaxation only equalities */
+    // Objective:
+    result.objective = LCOE;
+    // Inequalities (<=0):
+    result.ineq.push_back((S5.get_T() - Tmax) / 100);
+    result.ineq.push_back((S4.get_Ts() + deltaTmin - TG3) / 100);
+    result.ineq.push_back((S5.get_hSatVap() - S5.get_h()) / 1000);
+    result.ineq.push_back(xmin - S6.get_x());
+    result.ineq.push_back(S6.get_x() - 1.0);
+    result.ineq.push_back((Amin - A_Cond) / 10);
+    result.ineq.push_back((Amin - A_Eco) / 10);
+    result.ineq.push_back((Amin - A_Evap) / 10);
+    result.ineq.push_back((Amin - A_SH) / 10);
+    // Equalities (=0):
+    // Additional Output:
+
+
+    return result;
+}
diff --git a/tests/testProblems/problem_case2_lcoe.h b/tests/testProblems/problem_case2_lcoe.h
new file mode 100644
index 0000000000000000000000000000000000000000..20ab0f7c93dd3230cc87f9b3b5ecc2cf26f461d5
--- /dev/null
+++ b/tests/testProblems/problem_case2_lcoe.h
@@ -0,0 +1,283 @@
+/**********************************************************************************
+ * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ **********************************************************************************/
+
+#pragma once
+
+#include "MAiNGOmodel.h"
+#include "libraries/Ideal2pStream.h"
+#include "libraries/IdealGasStream.h"
+#include "libraries/IdealLiquidStream.h"
+
+using U = mc::FFVar;
+
+//////////////////////////////////////////////////////////////////////////
+// Model class:
+class Model_case2_lcoe: public maingo::MAiNGOmodel {
+  public:
+    Model_case2_lcoe();
+    EvaluationContainer evaluate(const std::vector<U>& currentPoint);
+    std::vector<maingo::OptimizationVariable> get_variables();
+    std::vector<double> get_initial_point();
+
+  private:
+    // Specify constant Model parameters here:
+    const double p0, vif, etap, etat, deltahv, cpig, cif, R, A, B, C, Tmax, mcp, TGin, TGout, deltaTap, xmin, p1, kEco, kEvap, kSH, kCond, k1A, k2A, k3A, c1A, c2A, c3A, FmA, B1A, B2A, k1B, k2B, k3B, FmB, B1B, B2B, Tcin, Tcout;
+    const double Inv_GT, Work_GT, Fuel_heat, Fuel_cost, f_phi, f_annu, Teq, Varcost, Vmin;
+    double T0;
+    U eps, zero, Amin, deltaTmin;
+    // Declare Model variables here if desired:
+    IdealFluid water;
+    IdealLiquidStream S1, S2, S3, S4, S5;
+    IdealGasStream S6, S7;
+    Ideal2pStream S8, S8s, S9, S9s;
+};
+
+//////////////////////////////////////////////////////////////////////////
+// Free function for providing initialization data to the Branch-and-Bound solver
+std::vector<maingo::OptimizationVariable>
+Model_case2_lcoe::get_variables()
+{
+
+    std::vector<maingo::OptimizationVariable> variables;
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(0.2, 5), "p2"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(3, 100), "p4"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(5, 100), "mdot"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(2480, 3750), "h7"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(0.01, 0.2), "k"));
+
+    return variables;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// function for providing initial point data to the Branch-and-Bound solver
+std::vector<double>
+Model_case2_lcoe::get_initial_point()
+{
+
+    //here you can provide an initial point for the local search
+    std::vector<double> initialPoint;
+    //initialPoint.push_back(3);
+    //initialPoint.push_back(-3);
+
+    return initialPoint;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Constructor for the Model
+Model_case2_lcoe::Model_case2_lcoe():
+    p0(10e-3), vif(1e-3), etap(0.8), etat(0.9), deltahv(2480), cpig(2.08), cif(4.18), R(0.462), A(3.55959), B(643.748), C(-198.043), Tmax(873), mcp(200),
+    TGin(900), TGout(423), deltaTmin(15), deltaTap(10), xmin(0.85), p1(0.05), eps(1e-12), zero(0), kEco(0.06), kEvap(0.06), kSH(0.03), kCond(0.35),
+    k1A(4.3247), k2A(-0.303), k3A(0.1634), c1A(0.03881), c2A(-0.11272), c3A(0.08183), FmA(2.75), B1A(1.63), B2A(1.66), k1B(3.5565), k2B(0.3776), k3B(0.0905),
+    FmB(1), B1B(1.49), B2B(1.52), Tcin(298), Tcout(303), Inv_GT(22.7176e6), Work_GT(69676), Fuel_heat(182359), Fuel_cost(14), f_phi(1.06), f_annu(0.1875),
+    Teq(4000), Varcost(4), Amin(10), Vmin(1)
+{
+    // Initialize data if necessary:
+    T0    = B / (A - log(p0) / log(10.0)) - C;
+    water = IdealFluid(cpig, cif, R, vif, A, B, C, deltahv, deltahv / T0);
+    S1    = IdealLiquidStream(water, p0, T0);
+    S2    = IdealLiquidStream(water, p0, T0);
+    S3    = IdealLiquidStream(water, p0, T0);
+    S4    = IdealLiquidStream(water, p0, T0);
+    S5    = IdealLiquidStream(water, p0, T0);
+    S6    = IdealGasStream(water, p0, T0);
+    S7    = IdealGasStream(water, p0, T0);
+    S8    = Ideal2pStream(water, p0, T0);
+    S8s   = Ideal2pStream(water, p0, T0);
+    S9    = Ideal2pStream(water, p0, T0);
+    S9s   = Ideal2pStream(water, p0, T0);
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// Evaluate the Model
+maingo::EvaluationContainer
+Model_case2_lcoe::evaluate(const std::vector<U>& currentPoint)
+{
+    // Rename inputs
+    U p2   = currentPoint[0];
+    U p4   = currentPoint[1];
+    U mdot = currentPoint[2];
+    U h7   = currentPoint[3];
+    U k    = currentPoint[4];
+
+
+    // Model
+    // Turbines:
+    // Inlet:
+    S7.set_ph(p4, h7);
+    // Turbine 1 (bleed):
+    S8s.set_ps(p2, S7.get_s());
+    U wt8 = etat * (S7.get_h() - S8s.get_h());
+    S8.set_ph(p2, (S7.get_h() - wt8));
+    // Turbine 2 (main):
+    S9s.set_ps(p1, S7.get_s());
+    U wt9 = etat * (S7.get_h() - S9s.get_h());
+    S9.set_ph(p1, (S7.get_h() - wt9));
+    // Feedwater line
+    // Condensate pump
+    S1.set_px(p1);
+    U wp1 = vif * (p2 - p1) * 100 / etap;
+    S2.set_ph(p2, (S1.get_h() + wp1));
+    // Deaerator
+    S3.set_ph(p2, (k * S8.get_h() + (1 - k) * S2.get_h()));
+    // Feedwater pump
+    U wp2 = vif * (p4 - p2) * 100 / etap;
+    S4.set_ph(p4, (S3.get_h() + wp2));
+    // Boiler
+    // Superheater
+    S6.set_px(p4);
+    U Q_SH = mdot * (S7.get_h() - S6.get_h());
+    Q_SH   = max(eps, Q_SH);
+    U TG2  = TGin - Q_SH / mcp;
+    // Evaporator
+    S5.set_pT(p4, S4.get_Ts() - deltaTap);
+    U Q_Evap = mdot * (S6.get_h() - S5.get_h());
+    Q_Evap   = max(eps, Q_Evap);
+    U TG3    = TG2 - Q_Evap / mcp;
+    // Eco
+    U Q_Eco = mdot * (S5.get_h() - S4.get_h());
+    Q_Eco   = max(eps, Q_Eco);
+    U TGout = TG3 - Q_Eco / mcp;
+    // Condenser
+    U Q_Cond = mdot * (1 - k) * (S9.get_h() - S1.get_h());
+
+    U Work_Pump1 = mdot * (1 - k) * wp1;
+    Work_Pump1   = max(eps, Work_Pump1);
+    U Work_Pump2 = mdot * wp2;
+    Work_Pump2   = max(eps, Work_Pump2);
+    U Work_Turb8 = mdot * k * wt8;
+    Work_Turb8   = max(eps, Work_Turb8);
+    U Work_Turb9 = mdot * (1 - k) * wt9;
+    Work_Turb9   = max(eps, Work_Turb9);
+    U Work_net   = Work_Turb8 + Work_Turb9 - Work_Pump1 - Work_Pump2;
+    Work_net     = max(eps, Work_net);
+    U Qzu        = Q_Eco + Q_Evap + Q_SH;
+    U eta        = Work_net / Qzu;
+
+
+    // Investment cost
+    // Condenser
+    U dT1 = S9.get_T() - Tcout;
+    U dT2 = S1.get_T() - Tcin;
+    dT1   = max(deltaTmin, dT1) + zero * mdot;
+    dT2   = max(deltaTmin, dT2) + zero * mdot;
+    //U LMTDa = pow(dT1*dT2*(dT1+dT2)/2,0.33333333333333);
+    U LMTDa  = lmtd(dT1, dT2);
+    U A_Cond = Q_Cond / (kCond * LMTDa);
+    //U RLMTDa = rlmtd(dT1,dT2);
+    //U A_Cond = Q_Cond / kCond * RLMTDa;
+    A_Cond = max(0.9 * Amin, A_Cond);
+    // U Cp0a = pow(10.,k1A+k2A*log(A_Cond)/log(10.0)+k3A*pow(log(A_Cond)/log(10.0),2));
+    //U Cp0a = pow(10.,k1A+log(A_Cond)/log(10.0)*(k2A+k3A*log(A_Cond)/log(10.0)));
+    U Cp0a     = cost_function(A_Cond, 1, k1A, k2A, k3A);
+    U Fpa      = 1.0;
+    U Inv_Cond = 1.18 * (B1A + B2A * FmA * Fpa) * Cp0a;
+    // Pumps
+    U Inv_Pump1 = 3540 * pow(Work_Pump1, 0.71);
+    U Inv_Pump2 = 3540 * pow(Work_Pump2, 0.71);
+    // Turbines incl. generator
+    U Inv_Turb = 6000 * pow(Work_Turb8 + Work_Turb9, 0.7);
+    U Inv_Gen  = 60 * pow(Work_Turb8 + Work_Turb9, 0.95);
+    // Economizer
+    dT1 = TGout - S4.get_T();
+    dT2 = TG3 - S5.get_T();
+    dT1 = max(deltaTmin, dT1);
+    dT2 = max(deltaTmin, dT2);
+    //U LMTDb = pow(dT1*dT2*(dT1+dT2)/2,0.33333333333333);
+    U LMTDb = lmtd(dT1, dT2);
+    U A_Eco = Q_Eco / (kEco * LMTDb);
+    //U RLMTDb = rlmtd(dT1,dT2);
+    //U A_Eco = Q_Eco / kEco * RLMTDb;
+    A_Eco = max(0.9 * Amin, A_Eco) + zero * mdot;
+    // U Cp0b = pow(10.,k1A+k2A*log(A_Eco)/log(10.0)+k3A*pow(log(A_Eco)/log(10.0),2));
+    //U Cp0b = pow(10.,k1A+log(A_Eco)/log(10.0)*(k2A+k3A*log(A_Eco)/log(10.0)));
+    U Cp0b = cost_function(A_Eco, 1, k1A, k2A, k3A);
+    // U Fpb = pow(10.,c1A+c2A*log(p4)/log(10.0)+c3A*pow(log(p4)/log(10.0),2));
+    // U Fpb = pow(10.,c1A+log(p4)/log(10.0)*(c2A+c3A*log(p4)/log(10.0)));
+    U Fpb     = cost_function(p4, 1, c1A, c2A, c3A);
+    U Inv_Eco = 1.18 * (B1A + B2A * FmA * Fpb) * Cp0b;
+    // Evaporator
+    dT1 = TG3 - S6.get_T();
+    dT2 = TG2 - S6.get_T();
+    dT1 = max(deltaTmin, dT1) + zero * mdot;
+    dT2 = max(deltaTmin, dT2) + zero * mdot;
+    //U LMTDc = pow(dT1*dT2*(dT1+dT2)/2,0.33333333333333);
+    U LMTDc  = lmtd(dT1, dT2);
+    U A_Evap = Q_Evap / (kEvap * LMTDc);
+    //U RLMTDc = rlmtd(dT1,dT2);
+    //U A_Evap = Q_Evap / kEvap * RLMTDc;
+    A_Evap = max(0.9 * Amin, A_Evap);
+    // U Cp0c = pow(10.,k1A+k2A*log(A_Evap)/log(10.0)+k3A*pow(log(A_Evap)/log(10.0),2));
+    //U Cp0c = pow(10.,k1A+log(A_Evap)/log(10.0)*(k2A+k3A*log(A_Evap)/log(10.0)));
+    U Cp0c     = cost_function(A_Evap, 1, k1A, k2A, k3A);
+    U Inv_Evap = 1.18 * (B1A + B2A * FmA * Fpb) * Cp0c;
+    // Superheater
+    dT1 = dT2;
+    dT2 = TGin - S7.get_T();
+    dT1 = max(deltaTmin, dT1) + zero * mdot;
+    dT2 = max(deltaTmin, dT2) + zero * mdot;
+    //U LMTDd = pow(dT1*dT2*(dT1+dT2)/2,0.33333333333333);
+    U LMTDd = lmtd(dT1, dT2);
+    U A_SH  = Q_SH / (kSH * LMTDd);
+    //U RLMTDd = rlmtd(dT1,dT2);
+    //U A_SH = Q_SH / kSH * RLMTDd;
+    A_SH = max(0.9 * Amin, A_SH) + zero * mdot;
+    // U Cp0d = pow(10.,k1A+k2A*log(A_SH)/log(10.0)+k3A*pow(log(A_SH)/log(10.0),2));
+    //U Cp0d = pow(10.,k1A+log(A_SH)/log(10.0)*(k2A+k3A*log(A_SH)/log(10.0)));
+    U Cp0d   = cost_function(A_SH, 1, k1A, k2A, k3A);
+    U Inv_SH = 1.18 * (B1A + B2A * FmA * Fpb) * Cp0d;
+    // Deaerator
+    U V_Dae = 1.5 * 600 * mdot * vif;
+    // U Cp0DAE = pow(10.,k1B+k2B*log(V_Dae)/log(10.0)+k3B*pow(log(V_Dae)/log(10.0),2));
+    //U Cp0DAE = pow(10.,k1B+log(V_Dae)/log(10.0)*(k2B+k3B*log(V_Dae)/log(10.0)));
+    U Cp0DAE  = cost_function(V_Dae, 1, k1B, k2B, k3B);
+    U FpDAE   = 1.25;
+    U Inv_Dae = 1.18 * (B1B + B2B * FmB * FpDAE) * Cp0DAE;
+    // Cycle
+    U Inv = Inv_Cond + Inv_Pump1 + Inv_Dae + Inv_Pump2 + Inv_Eco + Inv_Evap + Inv_SH + Inv_Turb + Inv_Gen;
+
+    // Combined Cycle Plant
+    U Work_Total = Work_net + Work_GT;
+    U eta_CC     = Work_Total / Fuel_heat;
+    U Inv_Total  = Inv + Inv_GT;
+    U CAPEX      = Inv_Total * f_phi * f_annu / (Work_Total / 1000 * Teq);
+    U OPEX       = Fuel_cost / eta_CC;
+    U LCOE       = CAPEX + OPEX + Varcost;
+
+
+    // Prepare output
+    maingo::EvaluationContainer result; /*!< variable holding the actual result consisting of an objective, inequalities, equalities, relaxation only inequalities and relaxation only equalities */
+
+    // Objective:
+    result.objective = LCOE;
+    // Inequalities (<=0):
+    result.ineq.push_back((S7.get_hSatVap() - S7.get_h()) / 1000);
+    result.ineq.push_back((S5.get_Ts() + deltaTmin - TG3) / 100);
+    result.ineq.push_back((S4.get_T() + deltaTmin - TGout) / 100);
+    result.ineq.push_back((S7.get_T() - Tmax) / 100);
+    result.ineq.push_back(xmin - S9.get_x());
+    result.ineq.push_back(S8.get_x() - 1);
+    result.ineq.push_back((p2 - p4) / 100);
+
+    result.ineq.push_back((Amin - A_Cond) / 10);
+    result.ineq.push_back((Amin - A_Eco) / 10);
+    result.ineq.push_back((Amin - A_Evap) / 10);
+    result.ineq.push_back((Amin - A_SH) / 10);
+    result.ineq.push_back(Vmin - V_Dae);
+    // Equalities
+    result.eq.push_back((S3.get_h() - S3.get_hSatLiq()) / 100);
+
+    // Additional Output:
+    result.output.push_back(OutputVariable("x9", S9.get_x()));
+
+
+    return result;
+}
diff --git a/tests/testProblems/problem_case3_wnet.h b/tests/testProblems/problem_case3_wnet.h
new file mode 100644
index 0000000000000000000000000000000000000000..7fb78e961fd8b535643f90563c0615424879c24d
--- /dev/null
+++ b/tests/testProblems/problem_case3_wnet.h
@@ -0,0 +1,372 @@
+/**********************************************************************************
+ * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ **********************************************************************************/
+
+#pragma once
+
+#include "MAiNGOmodel.h"
+#include "libraries/Ideal2pStream.h"
+#include "libraries/IdealGasStream.h"
+#include "libraries/IdealLiquidStream.h"
+
+using U = mc::FFVar;
+
+
+//////////////////////////////////////////////////////////////////////////
+// Model class:
+class Model_case3_wnet: public maingo::MAiNGOmodel {
+  public:
+    Model_case3_wnet();
+    EvaluationContainer evaluate(const std::vector<U>& currentPoint);
+    std::vector<maingo::OptimizationVariable> get_variables();
+    std::vector<double> get_initial_point();
+
+  private:
+    // Specify constant Model parameters here:
+    const double p0, vif, etap, etat, deltahv, cpig, cif, R, A, B, C, Tmax, mcp, TGin, deltaTap, xmin, p1, kEco, kEvap, kSH, kCond, k1A, k2A, k3A, c1A, c2A, c3A, FmA, B1A, B2A, k1B, k2B, k3B, FmB, B1B, B2B, Tcin, Tcout;
+    const double Inv_GT, Work_GT, Fuel_heat, Fuel_cost, f_phi, f_annu, Teq, Varcost, Vmin;
+    double T0;
+    U eps, zero, Amin, deltaTmin;
+    // Declare Model variables here if desired:
+    IdealLiquidStream S1, S2, S3, S4, S5, S8, S9;
+    IdealGasStream S6, S7, S10, S11, S12, S12s, S13;
+    Ideal2pStream S14, S14s, S15, S15s;
+};
+
+//////////////////////////////////////////////////////////////////////////
+// Free function for providing initialization data to the Branch-and-Bound solver
+std::vector<maingo::OptimizationVariable>
+Model_case3_wnet::get_variables()
+{
+
+    std::vector<maingo::OptimizationVariable> variables;
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(0.2, 3), "p2"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(3, 15), "p4"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(10, 100), "p8"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(5, 100), "mdot"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(2480, 3750), "h7"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(2480, 3750), "h11"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(0.05, 0.5), "kLP"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(0.01, 0.2), "kBl"));
+
+    return variables;
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// function for providing initial point data to the Branch-and-Bound solver
+std::vector<double>
+Model_case3_wnet::get_initial_point()
+{
+
+    //here you can provide an initial point for the local search
+    std::vector<double> initialPoint;
+    //initialPoint.push_back(3);
+    //initialPoint.push_back(-3);
+
+    return initialPoint;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Constructor for the Model
+Model_case3_wnet::Model_case3_wnet():
+    p0(10e-3), vif(1e-3), etap(0.8), etat(0.9), deltahv(2480), cpig(2.08), cif(4.18), R(0.462), A(3.55959), B(643.748), C(-198.043), Tmax(873), mcp(200), TGin(900), deltaTmin(15), deltaTap(10), xmin(0.85), p1(0.05), eps(1e-16), zero(0),
+    kEco(0.06), kEvap(0.06), kSH(0.03), kCond(0.35), k1A(4.3247), k2A(-0.303), k3A(0.1634), c1A(0.03881), c2A(-0.11272), c3A(0.08183), FmA(2.75), B1A(1.63), B2A(1.66), k1B(3.5565), k2B(0.3776), k3B(0.0905), FmB(1), B1B(1.49), B2B(1.52), Tcin(298), Tcout(303),
+    Inv_GT(22.7176e6), Work_GT(69676), Fuel_heat(182359), Fuel_cost(14), f_phi(1.06), f_annu(0.1875), Teq(4000), Varcost(4), Amin(10), Vmin(1)
+{
+    // Initialize data if necessary:
+    T0 = B / (A - log(p0) / log(10.0)) - C;
+    IdealFluid water(cpig, cif, R, vif, A, B, C, deltahv, deltahv / T0);
+    S1   = IdealLiquidStream(water, p0, T0);
+    S2   = IdealLiquidStream(water, p0, T0);
+    S3   = IdealLiquidStream(water, p0, T0);
+    S4   = IdealLiquidStream(water, p0, T0);
+    S5   = IdealLiquidStream(water, p0, T0);
+    S8   = IdealLiquidStream(water, p0, T0);
+    S9   = IdealLiquidStream(water, p0, T0);
+    S6   = IdealGasStream(water, p0, T0);
+    S7   = IdealGasStream(water, p0, T0);
+    S10  = IdealGasStream(water, p0, T0);
+    S11  = IdealGasStream(water, p0, T0);
+    S12  = IdealGasStream(water, p0, T0);
+    S12s = IdealGasStream(water, p0, T0);
+    S13  = IdealGasStream(water, p0, T0);
+    S14  = Ideal2pStream(water, p0, T0);
+    S14s = Ideal2pStream(water, p0, T0);
+    S15  = Ideal2pStream(water, p0, T0);
+    S15s = Ideal2pStream(water, p0, T0);
+    // <-- Reserve memory for required number of constraints:
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// Evaluate the Model
+maingo::EvaluationContainer
+Model_case3_wnet::evaluate(const std::vector<U>& currentPoint)
+{    // <-- Specify Model equations
+     // Rename inputs
+    U p2   = currentPoint[0];
+    U p4   = currentPoint[1];
+    U p8   = currentPoint[2];
+    U mdot = currentPoint[3];
+    U h7   = currentPoint[4];
+    U h11  = currentPoint[5];
+    U kLP  = currentPoint[6];
+    U kBl  = currentPoint[7];
+
+
+    // Model
+    U mLP    = mdot * kLP;
+    U mHP    = mdot * (1 - kLP);
+    U mBleed = mdot * kBl;
+    U mMain  = mdot * (1 - kBl);
+    // HP Turbine
+    S11.set_ph(p8, h11);
+    S12s.set_ps(p4, S11.get_s());
+    U wt12        = etat * (S11.get_h() - S12s.get_h());
+    U Work_Turb12 = mHP * wt12;
+    Work_Turb12   = max(Work_Turb12, eps);
+    S12.set_ph(p4, (S11.get_h() - wt12));
+    // LP Turbine
+    //Inlet
+    S7.set_ph(p4, h7);
+    S13.set_ph(p4, (kLP * S7.get_h() + (1 - kLP) * S12.get_h()));
+    // Bleed
+    S14s.set_ps(p2, S13.get_s());
+    U wt14        = etat * (S13.get_h() - S14s.get_h());
+    U Work_Turb14 = mBleed * wt14;
+    Work_Turb14   = max(Work_Turb14, eps);
+    S14.set_ph(p2, (S13.get_h() - wt14));
+    // Main
+    S15s.set_ps(p1, S13.get_s());
+    U wt15        = etat * (S13.get_h() - S15s.get_h());
+    U Work_Turb15 = mMain * wt15;
+    Work_Turb15   = max(Work_Turb15, eps);
+    S15.set_ph(p1, (S13.get_h() - wt15));
+    // Feedwater line
+    // Condenser
+    S1.set_px(p1);
+    U Q_Cond = mMain * (S15.get_h() - S1.get_h());
+    // Condensate pump
+    U wp2        = vif * (p2 - p1) * 100 / etap;
+    U Work_Pump2 = mMain * wp2;
+    S2.set_ph(p2, (S1.get_h() + wp2));
+    // Deaerator
+    S3.set_ph(p2, (kBl * S14.get_h() + (1 - kBl) * S2.get_h()));
+    // LP pump
+    U wp4        = vif * (p4 - p2) * 100 / etap;
+    U Work_Pump4 = mdot * wp4;
+    Work_Pump4   = max(Work_Pump4, eps);
+    S4.set_ph(p4, (S3.get_h() + wp4));
+    // HP pump
+    S5.set_pT(p4, (S4.get_Ts() - deltaTap));
+    U wp8        = vif * (p8 - p4) * 100 / etap;
+    U Work_Pump8 = mHP * wp8;
+    Work_Pump8   = max(Work_Pump8, eps);
+    S8.set_ph(p8, (S5.get_h() + wp8));
+    // Boiler
+    // HP Superheater
+    S10.set_px(p8);
+    U Q_HPSH = mHP * (S11.get_h() - S10.get_h());
+    Q_HPSH   = max(Q_HPSH, eps);
+    U TG2    = TGin - Q_HPSH / mcp;
+    // HP Evaporator
+    S9.set_pT(p8, S10.get_Ts() - deltaTap);
+    U Q_HPEV = mHP * (S10.get_h() - S9.get_h());
+    Q_HPEV   = max(Q_HPEV, eps);
+    U TG3    = TG2 - Q_HPEV / mcp;
+    // LP Superheater
+    S6.set_px(p4);
+    U Q_LPSH = mLP * (S7.get_h() - S6.get_h());
+    Q_LPSH   = max(Q_LPSH, eps);
+    U TG4    = TG3 - Q_LPSH / mcp;
+    // HP Eco
+    U Q_HPEC = mHP * (S9.get_h() - S8.get_h());
+    Q_HPEC   = max(Q_HPEC, eps);
+    U TG5    = TG4 - Q_HPEC / mcp;
+    // LP Evaporator
+    U Q_LPEV = mLP * (S6.get_h() - S5.get_h());
+    Q_LPEV   = max(Q_LPEV, eps);
+    U TG6    = TG5 - Q_LPEV / mcp;
+    // LP Eco
+    U Q_LPEC = mdot * (S5.get_h() - S4.get_h());
+    Q_LPEC   = max(Q_LPEC, eps);
+    U TG7    = TG6 - Q_LPEC / mcp;
+
+    U Work_net = Work_Turb12 + Work_Turb14 + Work_Turb15 - Work_Pump2 - Work_Pump4 - Work_Pump8;
+    U Qzu      = Q_LPEC + Q_LPEV + Q_LPSH + Q_HPEC + Q_HPEV + Q_HPSH;
+    U eta      = Work_net / Qzu;
+
+
+    // Investment cost
+    // Condenser
+    /* U dT1 = S15.get_T()-Tcout;
+        U dT2 = S1.get_T()-Tcin;
+        dT1 = max(deltaTmin,dT1)+zero*mdot;
+        dT2 = max(deltaTmin,dT2)+zero*mdot;
+        //U LMTD = pow(dT1*dT2*(dT1+dT2)/2,0.33333333333333);
+        //U LMTD = lmtd(dT1,dT2);
+        //U A_Cond = Q_Cond / (kCond * LMTD);
+        U RLMTD = rlmtd(dT1,dT2);
+        U A_Cond = Q_Cond /kCond * RLMTD;
+        A_Cond = max(0.9*Amin,A_Cond);
+        // U Cp0 = pow(10,k1A+k2A*log(A_Cond)/log(10.0)+k3A*pow(log(A_Cond)/log(10.0),2));
+        U Cp0 = cost_function(A_Cond,1,k1A,k2A,k3A);
+        U Fp = 1.0;
+        U Inv_Cond = 1.18 * (B1A+B2A*FmA*Fp) * Cp0;
+        // Pumps
+        U Inv_Pump2 = 3540*pow(Work_Pump2,0.71);
+        U Inv_Pump4 = 3540*pow(Work_Pump4,0.71);
+        U Inv_Pump8 = 3540*pow(Work_Pump8,0.71);
+        // Turbines incl. generator
+        U Inv_TurbLP = 6000*pow(Work_Turb14+Work_Turb15,0.7);
+        U Inv_TurbHP = 6000*pow(Work_Turb12,0.7);
+        U Inv_Gen = 60*pow(Work_Turb12+Work_Turb14+Work_Turb15,0.95);
+        // LP-Economizer
+        dT1 = TG7 - S4.get_T();
+        dT2 = TG6 - S5.get_T();
+        dT1 = max(deltaTmin,dT1)+zero*mdot;
+        dT2 = max(deltaTmin,dT2)+zero*mdot;
+        //LMTD = pow(dT1*dT2*(dT1+dT2)/2,0.33333333333333);
+        //LMTD = lmtd(dT1,dT2);
+        //U A_LPEC = Q_LPEC / (kEco * LMTD);
+        RLMTD = rlmtd(dT1,dT2);
+        U A_LPEC = Q_LPEC /kEco * RLMTD;
+        A_LPEC = max(0.9*Amin,A_LPEC);
+        // Cp0 = pow(10,k1A+k2A*log(A_LPEC)/log(10.0)+k3A*pow(log(A_LPEC)/log(10.0),2));
+        Cp0 = cost_function(A_LPEC,1,k1A,k2A,k3A);
+        // Fp = pow(10,c1A+c2A*log(p4)/log(10.0)+c3A*pow(log(p4)/log(10.0),2));
+        Fp = cost_function(p4,1,c1A,c2A,c3A);
+        U Inv_LPEC = 1.18 * (B1A+B2A*FmA*Fp) * Cp0;
+        // LP-Evaporator
+        dT1 = TG6 - S6.get_Ts();
+        dT2 = TG5 - S6.get_Ts();
+        dT1 = max(deltaTmin,dT1)+zero*mdot;
+        dT2 = max(deltaTmin,dT2)+zero*mdot;
+        //LMTD = pow(dT1*dT2*(dT1+dT2)/2,0.33333333333333);
+        //LMTD = lmtd(dT1,dT2);
+        //U A_LPEV = Q_LPEV / (kEvap * LMTD);
+        RLMTD = rlmtd(dT1,dT2);
+        U A_LPEV = Q_LPEV /kEvap * RLMTD;
+        A_LPEV = max(0.9*Amin,A_LPEV);
+        // Cp0 = pow(10,k1A+k2A*log(A_LPEV)/log(10.0)+k3A*pow(log(A_LPEV)/log(10.0),2));
+        Cp0 = cost_function(A_LPEV,1,k1A,k2A,k3A);
+        U Inv_LPEV = 1.18 * (B1A+B2A*FmA*Fp) * Cp0;
+        // LP - Superheater
+        dT1 = TG4 - S6.get_T();
+        dT2 = TG3 - S7.get_T();
+        dT1 = max(deltaTmin,dT1)+zero*mdot;
+        dT2 = max(deltaTmin,dT2)+zero*mdot;
+        //LMTD = pow(dT1*dT2*(dT1+dT2)/2,0.33333333333333);
+        //LMTD = lmtd(dT1,dT2);
+        //U A_LPSH = Q_LPSH / (kSH * LMTD);
+        RLMTD = rlmtd(dT1,dT2);
+        U A_LPSH = Q_LPSH /kSH * RLMTD;
+        A_LPSH = max(0.9*Amin,A_LPSH);
+        // Cp0 = pow(10,k1A+k2A*log(A_LPSH)/log(10.0)+k3A*pow(log(A_LPSH)/log(10.0),2));
+        Cp0 = cost_function(A_LPSH,1,k1A,k2A,k3A);
+        U Inv_LPSH = 1.18 * (B1A+B2A*FmA*Fp) * Cp0;
+        // HP-Economizer
+        dT1 = TG5 - S8.get_T();
+        dT2 = TG4 - S9.get_T();
+        dT1 = max(deltaTmin,dT1)+zero*mdot;
+        dT2 = max(deltaTmin,dT2)+zero*mdot;
+        //LMTD = pow(dT1*dT2*(dT1+dT2)/2,0.33333333333333);
+        //LMTD = lmtd(dT1,dT2);
+        //U A_HPEC = Q_HPEC / (kEco * LMTD);
+        RLMTD = rlmtd(dT1,dT2);
+        U A_HPEC = Q_HPEC /kEco * RLMTD;
+        A_HPEC = max(0.9*Amin,A_HPEC);
+        // Cp0 = pow(10,k1A+k2A*log(A_HPEC)/log(10.0)+k3A*pow(log(A_HPEC)/log(10.0),2));
+        Cp0 = cost_function(A_HPEC,1,k1A,k2A,k3A);
+        // Fp = pow(10,c1A+c2A*log(p8)/log(10.0)+c3A*pow(log(p8)/log(10.0),2));
+        Fp = cost_function(p8,1,c1A,c2A,c3A);
+        U Inv_HPEC = 1.18 * (B1A+B2A*FmA*Fp) * Cp0;
+        // HP-Evaporator
+        dT1 = TG3 - S10.get_Ts();
+        dT2 = TG2 - S10.get_Ts();
+        dT1 = max(deltaTmin,dT1)+zero*mdot;
+        dT2 = max(deltaTmin,dT2)+zero*mdot;
+        //LMTD = pow(dT1*dT2*(dT1+dT2)/2,0.33333333333333);
+        //LMTD = lmtd(dT1,dT2);
+        //U A_HPEV = Q_HPEV / (kEvap * LMTD);
+        RLMTD = rlmtd(dT1,dT2);
+        U A_HPEV = Q_HPEV /kEvap * RLMTD;
+        A_HPEV = max(0.9*Amin,A_HPEV);
+        // Cp0 = pow(10,k1A+k2A*log(A_HPEV)/log(10.0)+k3A*pow(log(A_HPEV)/log(10.0),2));
+        Cp0 = cost_function(A_HPEV,1,k1A,k2A,k3A);
+        U Inv_HPEV = 1.18 * (B1A+B2A*FmA*Fp) * Cp0;
+        // HP - Superheater
+        dT1 = TG2 - S10.get_T();
+        dT2 = TGin - S11.get_T();
+        dT1 = max(deltaTmin,dT1)+zero*mdot;
+        dT2 = max(deltaTmin,dT2)+zero*mdot;
+        //LMTD = pow(dT1*dT2*(dT1+dT2)/2,0.33333333333333);
+        //LMTD = lmtd(dT1,dT2);
+        //U A_HPSH = Q_HPSH / (kSH * LMTD);
+        RLMTD = rlmtd(dT1,dT2);
+        U A_HPSH = Q_HPSH / kSH * RLMTD;
+        A_HPSH = max(0.9*Amin,A_HPSH);
+        // Cp0 = pow(10,k1A+k2A*log(A_HPSH)/log(10.0)+k3A*pow(log(A_HPSH)/log(10.0),2));
+        Cp0 = cost_function(A_HPSH,1,k1A,k2A,k3A);
+        U Inv_HPSH = 1.18 * (B1A+B2A*FmA*Fp) * Cp0;
+        // Deaerator
+        U V_Dae = 1.5 * 600 * mdot * vif;
+        // Cp0 = pow(10,k1B+k2B*log(V_Dae)/log(10.0)+k3B*pow(log(V_Dae)/log(10.0),2));
+        Cp0 = cost_function(V_Dae,1,k1B,k2B,k3B);
+        Fp = 1.25;
+        U Inv_Dae = 1.18 * (B1B+B2B*FmB*Fp) * Cp0;
+        // Cycle
+        U Inv = Inv_Cond + Inv_Pump2 + Inv_Dae + Inv_Pump4 + Inv_LPEC + Inv_LPEV + Inv_LPSH + Inv_Pump8 + Inv_HPEC + Inv_HPEV + Inv_HPSH + Inv_TurbLP + Inv_TurbHP + Inv_Gen;
+
+        // Combined Cycle Plant
+        U Work_Total = Work_net + Work_GT;
+        U eta_CC = Work_Total / Fuel_heat;
+        U Inv_Total = Inv + Inv_GT;
+        U CAPEX = Inv_Total*f_phi*f_annu/(Work_Total/1000*Teq);
+        U OPEX = Fuel_cost/eta_CC;
+        U LCOE = CAPEX + OPEX  + Varcost; */
+
+    // Prepare output
+    maingo::EvaluationContainer result; /*!< variable holding the actual result consisting of an objective, inequalities, equalities, relaxation only inequalities and relaxation only equalities */
+
+    // Objective:
+    // result.objective = LCOE;
+    result.objective = -Work_net;
+    // Inequalities (<=0):
+    result.ineq.push_back(((S7.get_hSatVap() - S7.get_h()) / 1000));
+    result.ineq.push_back(((S11.get_hSatVap() - S11.get_h()) / 1000));
+    result.ineq.push_back(((S7.get_T() - Tmax) / 100));
+    result.ineq.push_back(((S11.get_T() - Tmax) / 100));
+    result.ineq.push_back((xmin - S15.get_x()));
+    result.ineq.push_back((S14.get_x() - 1.0));
+    result.ineq.push_back(((S12s.get_hSatVap() - S12s.get_h()) / 1000));
+    result.ineq.push_back(((S10.get_Ts() + deltaTmin - TG3) / 100));
+    result.ineq.push_back(((S7.get_T() + deltaTmin - TG3) / 100));
+    result.ineq.push_back(((S9.get_T() + deltaTmin - TG4) / 100));
+    result.ineq.push_back(((S6.get_Ts() + deltaTmin - TG6) / 100));
+    result.ineq.push_back(((S4.get_T() + deltaTmin - TG7) / 100));
+    result.ineq.push_back(((p2 - p4) / 100));
+    result.ineq.push_back(((p4 - p8) / 100));
+
+    // result.ineq[14] = ((Amin-A_LPEC)/10);
+    // result.ineq[15] = ((Amin-A_LPEV)/10);
+    // result.ineq[16] = ((Amin-A_LPSH)/10);
+    // result.ineq[17] = ((Amin-A_HPEC)/10);
+    // result.ineq[18] = ((Amin-A_HPEV)/10);
+    // result.ineq[19] = ((Amin-A_HPSH)/10);
+    // result.ineq[20] = ((Amin-A_Cond)/10);
+    // result.ineq[21] = (Vmin-V_Dae);
+    // Equalities
+    result.eq.push_back(((S3.get_h() - S3.get_hSatLiq()) / 100));
+    // Additional Output:
+
+    return result;
+}
\ No newline at end of file
diff --git a/tests/testProblems/problem_ex8_1_3.h b/tests/testProblems/problem_ex8_1_3.h
new file mode 100644
index 0000000000000000000000000000000000000000..53daaa3e21167ffbdb0d4461a4b77fdf6763d556
--- /dev/null
+++ b/tests/testProblems/problem_ex8_1_3.h
@@ -0,0 +1,119 @@
+/**********************************************************************************
+ * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ **********************************************************************************/
+ 
+#pragma once
+
+#include "MAiNGOmodel.h"
+
+
+using Var = mc::FFVar;    // This allows us to write Var instead of mc::FFVar
+
+
+/**
+* @class Model
+* @brief Class defining the actual model implemented by the user 
+*
+* This class is used by the user to implement the model 
+*/
+class Model_ex8_1_3: public maingo::MAiNGOmodel {
+
+  public:
+    /**
+    * @brief Default constructor
+    */
+    Model_ex8_1_3();
+
+    /**
+    * @brief Main function used to evaluate the model and construct a directed acyclic graph
+    *
+    * @param[in] optVars is the optimization variables vector
+    * @param[in] writeAdditionalOutput defines whether to write additional output
+    */
+    maingo::EvaluationContainer evaluate(const std::vector<Var> &optVars);
+
+    /**
+    * @brief Function for getting optimization variables data
+    */
+    std::vector<maingo::OptimizationVariable> get_variables();
+
+    /**
+    * @brief Function for getting initial point data
+    */
+    std::vector<double> get_initial_point();
+
+  private:
+};
+
+
+//////////////////////////////////////////////////////////////////////////
+// function for providing optimization variable data to the Branch-and-Bound solver
+std::vector<maingo::OptimizationVariable>
+Model_ex8_1_3::get_variables()
+{
+
+    std::vector<maingo::OptimizationVariable> variables;
+    // Required: Define optimization variables by specifying lower bound, upper bound (, optionally variable type, branching priority and a name)
+    // Some variables are missing bounds completely.
+
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(-9, 9), "x1"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(-9, 9), "x2"));
+
+    return variables;
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// function for providing initial point data to the Branch-and-Bound solver
+std::vector<double>
+Model_ex8_1_3::get_initial_point()
+{
+
+    //here you can provide an initial point for the local search
+    std::vector<double> initialPoint;
+    // GAMS file did not provide initial values for all variables
+    return initialPoint;
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// constructor for the model
+Model_ex8_1_3::Model_ex8_1_3()
+{
+
+    // Initialize data if necessary:
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// Evaluate the model
+maingo::EvaluationContainer
+Model_ex8_1_3::evaluate(const std::vector<Var> &optVars)
+{
+
+    // rename  inputs
+    Var x1 = optVars[0];
+    Var x2 = optVars[1];
+
+    // Prepare output
+    maingo::EvaluationContainer result; /*!< variable holding the actual result consisting of an objective, inequalities, equalities, relaxation only inequalities and relaxation only equalities */
+    // objective function:
+    result.objective = -(-(1 + sqr(1 + x1 + x2) * (19 + 3 * sqr(x1) - 14 * x1 + 6 * x1 * x2 - 14 * x2 + 3 * sqr(x2))) * (30 + sqr(2 * x1 - 3 * x2) * (18 + 12 * sqr(x1) - 32 * x1 - 36 * x1 * x2 + 48 * x2 + 27 * sqr(x2))) - (0));
+
+    // inequalities (<=0):
+
+    // equalities (=0):
+
+    // relaxation only inequalities (<=0):
+
+    // relaxation only equalities (=0):
+
+    return result;
+}
diff --git a/tests/testProblems/problem_int1.h b/tests/testProblems/problem_int1.h
new file mode 100644
index 0000000000000000000000000000000000000000..4fa6d34212e1b4b8591efa66d87c686f3bc89219
--- /dev/null
+++ b/tests/testProblems/problem_int1.h
@@ -0,0 +1,103 @@
+/**********************************************************************************
+ * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ **********************************************************************************/
+
+#pragma once
+
+#include "MAiNGOmodel.h"
+
+
+using Var = mc::FFVar;    // this allows us to write Var instead of mc::FFVar
+
+/**
+* @class Model
+* @brief Class defining the actual model implemented by the user
+*
+* This class is used by the user to implement the model
+*/
+class Model_int1: public maingo::MAiNGOmodel {
+
+  public:
+    /**
+    * @brief Default constructor
+    */
+    Model_int1();
+
+    /**
+    * @brief Main function used to evaluate the model and construct a directed acyclic graph
+    * @param[in] optVars is the optimization variables vector
+    * @param[in] writeAdditionalOutput defines whether to write additional output
+    */
+    maingo::EvaluationContainer evaluate(const std::vector<Var> &optVars);
+
+    /**
+    * @brief Function for getting optimization variables data
+    */
+    std::vector<maingo::OptimizationVariable> get_variables();
+
+    /**
+    * @brief Function for getting initial point data
+    */
+    std::vector<double> get_initial_point();
+
+  private:
+};
+
+
+//////////////////////////////////////////////////////////////////////////
+// function for providing optimization variable data to the Branch-and-Bound solver
+std::vector<maingo::OptimizationVariable>
+Model_int1::get_variables()
+{
+
+    std::vector<maingo::OptimizationVariable> variables;
+    // Required: Define optimization variables by specifying lower bound, upper bound (, optionally variable type, branching priority and a name)
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(-3, 3), maingo::VT_INTEGER, "x"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(-3, 3), maingo::VT_INTEGER, "y"));
+
+    return variables;
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// function for providing initial point data to the Branch-and-Bound solver
+std::vector<double>
+Model_int1::get_initial_point()
+{
+
+    // Here you can provide an initial point for the local search
+    std::vector<double> initialPoint;
+
+    return initialPoint;
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// constructor for the model
+Model_int1::Model_int1() {}
+
+
+//////////////////////////////////////////////////////////////////////////
+// Evaluate the model
+maingo::EvaluationContainer
+Model_int1::evaluate(const std::vector<Var> &optVars)
+{
+
+    // Rename  inputs
+    Var x = optVars[0];
+    Var y = optVars[1];
+
+    // Prepare output
+    maingo::EvaluationContainer result; /*!< variable holding the actual result consisting of an objective, inequalities, equalities, relaxation only inequalities and relaxation only equalities */
+    // Objective
+    result.objective = sin(x) + pow(y - 2.2, 2);
+
+    return result;
+}
diff --git a/tests/testProblems/problem_unusedVars.h b/tests/testProblems/problem_unusedVars.h
new file mode 100644
index 0000000000000000000000000000000000000000..96f4d283c89b1db6c25d56cb204170743c260b21
--- /dev/null
+++ b/tests/testProblems/problem_unusedVars.h
@@ -0,0 +1,138 @@
+/**********************************************************************************
+ * Copyright (c) 2019 Process Systems Engineering (AVT.SVT), RWTH Aachen University
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ **********************************************************************************/
+
+#pragma once
+
+#include "MAiNGOmodel.h"
+#include "libraries/problemExternalFunctions.h"    // We can also include other headers where we define classes and functions
+
+
+using Var = mc::FFVar;    // This allows us to write Var instead of mc::FFVar
+
+
+/**
+* @class Model
+* @brief Class defining the actual model implemented by the user 
+*
+* This class is used by the user to implement the model 
+*/
+class Model_unusedVars: public maingo::MAiNGOmodel {
+
+  public:
+    /**
+    * @brief Default constructor
+    */
+    Model_unusedVars();
+
+    /**
+    * @brief Main function used to evaluate the model and construct a directed acyclic graph
+    *
+    * @param[in] optVars is the optimization variables vector
+    * @param[in] writeAdditionalOutput defines whether to write additional output
+    */
+    maingo::EvaluationContainer evaluate(const std::vector<Var> &optVars);
+
+    /**
+    * @brief Function for getting optimization variables data
+    */
+    std::vector<maingo::OptimizationVariable> get_variables();
+
+    /**
+    * @brief Function for getting initial point data
+    */
+    std::vector<double> get_initial_point();
+
+  private:
+    // Constants
+    const double a; /*!< constant a */
+
+    // External objects
+    SomeExternalClass ext; /*!< externally implemented object */
+};
+
+
+//////////////////////////////////////////////////////////////////////////
+// function for providing optimization variable data to the Branch-and-Bound solver
+std::vector<maingo::OptimizationVariable>
+Model_unusedVars::get_variables()
+{
+
+    std::vector<maingo::OptimizationVariable> variables;
+    // Required: Define optimization variables by specifying lower bound, upper bound (, optionally variable type, branching priority and a name)
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(0, 1), maingo::VT_BINARY, "x"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(-2, 2), maingo::VT_CONTINUOUS, 1, "y"));    // A branching priority 'n' means that we will branch log(n) times more often on that specific variable
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(-100, 100), maingo::VT_CONTINUOUS, "unusedVar1"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(0, 1), maingo::VT_BINARY, "unusedVar2"));
+    variables.push_back(maingo::OptimizationVariable(maingo::Bounds(-2, 2), maingo::VT_INTEGER, "unusedVar3"));
+
+    return variables;
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// function for providing initial point data to the Branch-and-Bound solver
+std::vector<double>
+Model_unusedVars::get_initial_point()
+{
+
+    // Here you can provide an initial point for the local search
+    std::vector<double> initialPoint;    // Make sure that the size of the initialPoint equals the size of the variables vector
+    //initialPoint.push_back(3);
+    //initialPoint.push_back(-3);
+
+    return initialPoint;
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// constructor for the model
+Model_unusedVars::Model_unusedVars():
+    a(20)
+{
+
+    // Initialize data if necessary:
+    ext = SomeExternalClass(0.2, M_PI);
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+// evaluate the model
+maingo::EvaluationContainer
+Model_unusedVars::evaluate(const std::vector<Var> &optVars)
+{
+
+    // Rename inputs
+    Var x = optVars.at(0);    // We use .at() here to get a vector exception if a wrong access occurs
+    Var y = optVars.at(1);
+
+    // Model
+    Var temp1 = ext.functionOne(x, y);
+    Var temp2 = ext.functionTwo(x, y);
+
+    // Prepare output
+    maingo::EvaluationContainer result; /*!< variable holding the actual result consisting of an objective, inequalities, equalities, relaxation only inequalities and relaxation only equalities */
+    // Objective given as the Ackel Path function:
+    result.objective = -a * exp(temp1) - exp(temp2) + a + exp(1);
+
+    // Inequalities (<=0):
+
+    // Equalities (=0) given as the circle equality with radius 1:
+    result.eq.push_back(pow(y, 2) + pow(x, 2) - 1);
+
+    // Relaxation only inequalities (<=0):
+
+    // Relaxation only equalities (=0):
+
+    // Additional output:
+    result.output.push_back(maingo::OutputVariable("Result of temp1: ", temp1));
+
+    return result;
+}
diff --git a/utilities/MAiNGO_Reader_Writer/inc/MAiNGOReaderWriter.h b/utilities/MAiNGO_Reader_Writer/inc/MAiNGOReaderWriter.h
index 9ab4fb36a60246258f97735566ec963f6f77e6b7..dd3c44900e13e11b1ce16fcef222fca1d5e79c79 100644
--- a/utilities/MAiNGO_Reader_Writer/inc/MAiNGOReaderWriter.h
+++ b/utilities/MAiNGO_Reader_Writer/inc/MAiNGOReaderWriter.h
@@ -7,12 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file MAiNGOReaderWriter.h
- *
- * @brief File containing declaration of class for reading a GAMS convert file
- *        and writing problem.h file out of it. It can also read in
- *        a MAiNGO bab.log.
- *
  **********************************************************************************/
 
 #pragma once
diff --git a/utilities/MAiNGO_Reader_Writer/inc/manualMAiNGOReaderWriter.h b/utilities/MAiNGO_Reader_Writer/inc/manualMAiNGOReaderWriter.h
index 47b9107617b3dbc533d8f5f9acd5777fbb4c31cd..e114e0c82e7f85b85398ecdd57921336a131b1ea 100644
--- a/utilities/MAiNGO_Reader_Writer/inc/manualMAiNGOReaderWriter.h
+++ b/utilities/MAiNGO_Reader_Writer/inc/manualMAiNGOReaderWriter.h
@@ -7,10 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file manualMAiNGOReaderWriter.h
- *
- * @brief File containing the front page of the MAiNGO Reader Writer documentation
- *
  **********************************************************************************/
 
 #pragma once
diff --git a/utilities/MAiNGO_Reader_Writer/main.cpp b/utilities/MAiNGO_Reader_Writer/main.cpp
index 5f8388d2aba02dd0e99661b614048502113491aa..b5a895e3b2dfbd08aca58a277079f286add26345 100644
--- a/utilities/MAiNGO_Reader_Writer/main.cpp
+++ b/utilities/MAiNGO_Reader_Writer/main.cpp
@@ -7,15 +7,15 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file main.cpp
- *
- * @brief Program for reading GAMS convert files and writing MAiNGO problem
- *        files out of it. It can also read MAiNGO log files.
- *
  **********************************************************************************/
 
 #include "MAiNGOReaderWriter.h"
 
+/**
+* @brief Main function for reading GAMS convert files and writing MAiNGO problem
+ *        files out of it. It can also read MAiNGO log files.
+*
+*/
 int
 main(int argc, char *argv[])
 {
diff --git a/utilities/MAiNGO_Reader_Writer/src/MAiNGOReaderWriter.cpp b/utilities/MAiNGO_Reader_Writer/src/MAiNGOReaderWriter.cpp
index bf7410e751f57abad04cf0959a678269d7381410..ec23e44c2ed8b9614bbf2f2cb8a0e596c350a19c 100644
--- a/utilities/MAiNGO_Reader_Writer/src/MAiNGOReaderWriter.cpp
+++ b/utilities/MAiNGO_Reader_Writer/src/MAiNGOReaderWriter.cpp
@@ -7,12 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file MAiNGOReaderWriter.cpp
- *
- * @brief File containing implementation of class for reading a GAMS convert
- *        file and writing problem.h file out of it. It can also read
- *        in a MAiNGO bab.log.
- *
  **********************************************************************************/
 
 #include "MAiNGOReaderWriter.h"
diff --git a/utilities/MAiNGO_Reader_Writer/src/MAiNGOReaderWriterGetter.cpp b/utilities/MAiNGO_Reader_Writer/src/MAiNGOReaderWriterGetter.cpp
index 479a544087c9616507e83eef49d20f219e66dac3..fdccff4a86c0cf29d991298b217209172ef12596 100644
--- a/utilities/MAiNGO_Reader_Writer/src/MAiNGOReaderWriterGetter.cpp
+++ b/utilities/MAiNGO_Reader_Writer/src/MAiNGOReaderWriterGetter.cpp
@@ -7,12 +7,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *
- * @file MAiNGOReaderWriterGetter.cpp
- *
- * @brief File containing implementation of getter functions of class for
- *        reading a GAMS convert file and writing a problem.h file out of it.
- *        It can also read in a MAiNGO bab.log.
- *
  **********************************************************************************/
 
 #include "MAiNGOReaderWriter.h"